Summary: | sys-libs/glibc-2.32-r6: binary merge without binutils fails (No __thread support in gcc!) | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Joakim Tjernlund <joakim.tjernlund> |
Component: | Current packages | Assignee: | Gentoo Toolchain Maintainers <toolchain> |
Status: | RESOLVED DUPLICATE | ||
Severity: | normal | CC: | gentoo, ionen, sam |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Considering gcc also provides some shared libraries (needed at runtime), you'll have trouble removing it binutils' varied tools also get used for things other than building/linking, you are also losing things like bin/strings and bin/ar with other uses. That aside, ebuilds should still try to avoid compiler tests if MERGE_TYPE == binary. glibc already makes most of these non-fatal for binpkgs but running tc-has-tls appears to be an oversight. (In reply to Ionen Wolkens from comment #1) > Considering gcc also provides some shared libraries (needed at runtime), > you'll have trouble removing it Yes, I am hoping for a gcc-libs package > > binutils' varied tools also get used for things other than building/linking, > you are also losing things like bin/strings and bin/ar with other uses. Didn't know that: ls /usr/x86_64-pc-linux-gnu/binutils-bin/2.35.2/ addr2line* as* dwp* gprof* ld.bfd* nm* objdump* readelf* strings* ar* c++filt* elfedit* ld* ld.gold* objcopy* ranlib* size* strip* Some of these are useful, what to do ...? > > That aside, ebuilds should still try to avoid compiler tests if MERGE_TYPE > == binary. glibc already makes most of these non-fatal for binpkgs but > running tc-has-tls appears to be an oversight. Thanks I hit this with binpkgs while recovering from a broken gcc/glibc too. Could the check for merge type please be added? ping? The check happens in https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-libs/glibc/glibc-9999.ebuild#n676 # When we actually have to compile something... if ! just_headers ; then ebegin "Checking gcc for __thread support" if ! eend $(want__thread ; echo $?) ; then echo eerror "Could not find a gcc that supports the __thread directive!" eerror "Please update your binutils/gcc and try again." die "No __thread support in gcc!" fi A few lines above similar compiler check is avoided with `[[ ${MERGE_TYPE} != "binary" ]]`. You can double-check what minimal subset of checks could be safely bypassed in binary-only merge and attach the patch. That should speed the review up. Same problem here with arm64 Following @sam suggestion, I have fixed running "# emerge -1 gcc-config" Do not follow my previous statement, it still does not emerge Set thin in your portage make.conf: WANT__THREAD=0 *** This bug has been marked as a duplicate of bug 786570 *** |
On a system without binutils installed, binary glibc merge fails: emerge -1a -k y sys-libs/glibc These are the packages that would be merged, in order: Calculating dependencies... done! [binary R ] sys-libs/glibc-2.32-r6 Would you like to merge these packages? [Yes/No] >>> Running pre-merge checks for sys-libs/glibc-2.32-r6 * Checking general environment sanity. * Checking gcc for __thread support ... [ !! ] * Could not find a gcc that supports the __thread directive! * Please update your binutils/gcc and try again. * ERROR: sys-libs/glibc-2.32-r6::gentoo failed (pretend phase): * No __thread support in gcc! * * Call stack: * ebuild.sh, line 125: Called pkg_pretend * environment, line 2668: Called sanity_prechecks * environment, line 3293: Called die * The specific snippet of code: * die "No __thread support in gcc!"; Also, I figure binary glibc merge also fails without gcc installed? gcc is a big pkg and I would like to remove it from binary only systems. I guess then need a gcc-libs pkg? Has this been discussed before?