New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 647733 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Sep 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 0
Type: Bug



Sign in to add a comment

Builder chromiumos-sdk is failing when building glibc

Project Member Reported by laszio@chromium.org, Sep 16 2016

Issue description

https://uberchromegw.corp.google.com/i/chromiumos/builders/chromiumos-sdk/builds/7453/steps/SDKBuildToolchains/logs/stdio

 * Messages for package cross-armv6j-cros-linux-gnueabi/glibc-2.19-r12:

 * PIE hardening not applied, as your compiler doesn't default to PIE
 * Could not find a gcc that supports the __thread directive!
 * Please update your binutils/gcc and try again.
 * ERROR: cross-armv6j-cros-linux-gnueabi/glibc-2.19-r12::crossdev failed (unpack phase):
 *   No __thread support in gcc!
 * 
 * Call stack:
 *          ebuild.sh, line   93:  Called src_unpack
 *        environment, line 3584:  Called eblit-run 'src_unpack'
 *        environment, line 1180:  Called eblit-glibc-src_unpack
 *   src_unpack.eblit, line  158:  Called toolchain-glibc_src_unpack
 *   src_unpack.eblit, line   82:  Called check_nptl_support
 *   src_unpack.eblit, line   38:  Called die
 * The specific snippet of code:
 *   		die "No __thread support in gcc!"
 * 
 * If you need support, post the output of `emerge --info '=cross-armv6j-cros-linux-gnueabi/glibc-2.19-r12::crossdev'`,
 * the complete build log and the output of `emerge -pqv '=cross-armv6j-cros-linux-gnueabi/glibc-2.19-r12::crossdev'`.
 * The complete build log is located at '/var/log/portage/cross-armv6j-cros-linux-gnueabi:glibc-2.19-r12:20160916-073746.log'.
 * For convenience, a symlink to the build log is located at '/var/tmp/portage/cross-armv6j-cros-linux-gnueabi/glibc-2.19-r12/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/cross-armv6j-cros-linux-gnueabi/glibc-2.19-r12/temp/environment'.
 * Working directory: '/var/tmp/portage/cross-armv6j-cros-linux-gnueabi/glibc-2.19-r12/work'
 * S: '/var/tmp/portage/cross-armv6j-cros-linux-gnueabi/glibc-2.19-r12/work/glibc-2.19'


 * glibc failed :(
 * 
 * If you file a bug, please attach the following logfiles:
 * /var/log/portage/cross-armv6j-cros-linux-gnueabi-info.log
 * /var/log/portage/cross-armv6j-cros-linux-gnueabi-glibc.log.xz
 * /var/tmp/portage/cross-armv6j-cros-linux-gnueabi/glibc*/temp/glibc-config.logs.tar.xz
cros_setup_toolchains: Unhandled exception:
Traceback (most recent call last):
  File "/mnt/host/source/chromite/bin/cros_setup_toolchains", line 164, in <module>
    commandline.ScriptWrapperMain(FindTarget)
  File "/mnt/host/source/chromite/lib/commandline.py", line 834, in ScriptWrapperMain
    ret = target(argv[1:])
  File "/mnt/host/source/chromite/scripts/cros_setup_toolchains.py", line 1188, in main
    root=root)
  File "/mnt/host/source/chromite/scripts/cros_setup_toolchains.py", line 642, in UpdateToolchains
    Crossdev.UpdateTargets(crossdev_targets, usepkg)
  File "/mnt/host/source/chromite/scripts/cros_setup_toolchains.py", line 194, in UpdateTargets
    cros_build_lib.RunCommand(cmd)
  File "/mnt/host/source/chromite/lib/cros_build_lib.py", line 624, in RunCommand
    raise RunCommandError(msg, cmd_result)
chromite.lib.cros_build_lib.RunCommandError: return code: 1; command: crossdev --show-fail-log --env 'FEATURES=splitdebug' -P --oneshot --overlays '/usr/local/portage/chromiumos /usr/local/portage/eclass-overlay /usr/local/portage/stable' --ov-output /usr/local/portage/crossdev -t armv6j-cros-linux-gnueabi --binutils '[stable]' --gcc '[stable]' --kernel '[stable]' --libc '[stable]' --ex-gdb
cwd=None
00:37:51: ERROR: 
return code: 1; command: /b/cbuild/external_master/chromite/bin/cros_sdk -- sudo -n 'PARALLEL_EMERGE_STATUS_FILE=/tmp/tmpQorFi2' 'CROS_CACHEDIR=/b/cbuild/external_master/.cache' 'CROS_SUDO_KEEP_ALIVE=unknown' -- /mnt/host/source/chromite/bin/cros_setup_toolchains --nousepkg
cwd=/b/cbuild/external_master

 

Comment 1 by laszio@chromium.org, Sep 16 2016

Cc: vapier@chromium.org
GCC doesn't implement Thumb-1 with hard-float VFP ABI:
  (cros) ~ $ armv6j-cros-linux-gnueabi-gcc -c tls.c                                                                                                              
  tls.c: In function ‘foo’:
  tls.c:1:1: sorry, unimplemented: Thumb-1 hard-float VFP ABI

Also, armv6j-cros-linux-gnueabi-gcc is configured without --with-mode=thumb[1]:
  cross-armv6j-cros-linux-gnueabi/gcc   hardfp -thumb

Two simple ways to fix this:
1. Only supply -mthumb when the arch is armv6t2
2. Don't supply -mthumb when gcc is used; Use gcc's default.

Or both, since we want it be as close to gcc as possible while leaving gcc untouched.

[1] https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/master/profiles/default/linux/package.use#50

Sign in to add a comment