emerge of glibc 2.5 fails on sparc and sparc64 with the following message in sparc32: ld-sparc32-sparc-unknown-linux-gnu-linuxthreads/posix/wait.o.dt -MT /var/tmp/por tage/sys-libs/glibc-2.5/work/build-sparc32-sparc-unknown-linux-gnu-linuxthreads/ posix/wait.o .././scripts/mkinstalldirs /var/tmp/portage/sys-libs/glibc-2.5/work/build-sparc3 2-sparc-unknown-linux-gnu-linuxthreads/posix (echo '#include <sysdep-cancel.h>'; \ echo 'PSEUDO (__waitpid, waitpid, 3)'; \ echo ' ret'; \ echo 'PSEUDO_END(__waitpid)'; \ echo 'libc_hidden_def (__waitpid)'; \ echo 'weak_alias (__waitpid, waitpid)'; \ echo 'libc_hidden_weak (waitpid)'; \ echo 'weak_alias (__waitpid, __libc_waitpid)'; \ echo 'libc_hidden_weak (__libc_waitpid)'; \ ) | sparc-unknown-linux-gnu-gcc -c -I../include -I/var/tmp/portage/sys-l ibs/glibc-2.5/work/build-sparc32-sparc-unknown-linux-gnu-linuxthreads/posix -I/vls.h -DASSEMBLER -D__ASSEMBLY__ -Wa,--noexecstack -Wa,--noexecstack -x assembler -with-cpp -o /var/tmp/portage/sys-libs/glibc-2.5/work/build-sparc32-sparc-unknow n-linux-gnu-linuxthreads/posix/waitpid.o - <stdin>: Assembler messages: <stdin>:2: Error: Unknown opcode: `syscall_error_handler SYSCALL_ERROR_HANDLER_E NTRY(__syscall_error_handler2).global __errno_location' make[2]: *** [/var/tmp/portage/sys-libs/glibc-2.5/work/build-sparc32-sparc-unkno wn-linux-gnu-linuxthreads/posix/waitpid.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/sys-libs/glibc-2.5/work/glibc-2.5/p osix' make[1]: *** [posix/subdir_lib] Error 2 make[1]: Leaving directory `/var/tmp/portage/sys-libs/glibc-2.5/work/glibc-2.5' make: *** [all] Error 2 !!! ERROR: sys-libs/glibc-2.5 failed. Call stack: ebuild.sh, line 1614: Called dyn_compile ebuild.sh, line 971: Called qa_call 'src_compile' environment, line 4115: Called src_compile glibc-2.5.ebuild, line 1130: Called toolchain-glibc_src_compile glibc-2.5.ebuild, line 235: Called die !!! make for sparc32 failed !!! If you need support, post the topmost build error, and the call stack if rel evant. !!! A complete build log is located at '/var/tmp/portage/sys-libs/glibc-2.5/temp /build.log'. Reproducible: Always Steps to Reproduce: 1.emerge -u glibc Actual Results: see description Expected Results: build of glibc make.conf for 32bit system USE="-X" CHOST="sparc-unknown-linux-gnu" CFLAGS="-mcpu=v8 -O3 -pipe" CXXFLAGS="${CFLAGS}"
emerge --info please. also please note sparc32 machines are no longer supported.
Portage 2.1.2.2 (default-linux/sparc/sparc64/2006.1, gcc-3.4.6, glibc-2.3.6-r5, 2.4.34-sparc-grsec sparc64) ================================================================= System uname: 2.4.34-sparc-grsec sparc64 sun4u Gentoo Base System release 1.12.9 Timestamp of tree: Sun, 22 Apr 2007 22:00:10 +0000 dev-lang/python: 2.4.3-r4 dev-python/pycrypto: 2.0.1-r5 sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.61 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.17 sys-devel/gcc-config: 1.3.15-r1 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.19.2-r2 ACCEPT_KEYWORDS="sparc" AUTOCLEAN="yes" CBUILD="sparc-unknown-linux-gnu" CFLAGS="-mcpu=ultrasparc -O3 -pipe" CHOST="sparc-unknown-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/terminfo" CXXFLAGS="-O2 -mcpu=ultrasparc -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks metadata-transfer sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/ distributions/gentoo" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/di stfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X apache2 arts berkdb bitmap-fonts caps cli cracklib crypt cups dri eds emb oss encode esd fbcon foomaticdb fortran gcc64 gdbm gif gnome gstreamer gtk gtk2 iconv imlib ipv6 isdnlog ithreads jpeg kde ldap libwww mad midi mikmod motif mpe g ncurses nls ogg opengl oss pam pcre perl png pppd python qt3 readline reflecti on sdl session sparc spell spl ssl tcpd truetype truetype-fonts type1-fonts vorb is xml xorg xv zlib" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop e mpty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi nul l plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lc dm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="sunffb sunleo" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGU AS, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS , PORTDIR_OVERLAY also please note that it happens in the sparc32 part of the compilation on a 64bit machine
You're using the wrong kernel or profile depending on your perspective. Either switch to 2006.1/2.4 if you plan on sticking with a 2.4 kernel or switch to a 2.6 kernel. The 2006.0 and 2006.1 profiles (without trailing /2.4) are intended for 2.6 kernels ONLY. Actually your system might be broken in a way that your machine won't be able to reboot, so i suggest you change to a 2.6 kernel or change back to a 2.4 profile (which won't be supported for long) and rebuild linux-headers & glibc. glibc-2.5 must use nptl btw, it's masked on 2.4 profiles to avoid this kind of problems.
ah ok... so is it worth using 'sparc-sources' or shall I simply switch to gentoo-sources for a sparc machine as well?
sparc-sources = 2.4 kernel only. gentoo-sources = 2.6 recommended now. if you want grsec you can use hardened-sources but you'll need to package.keywords enable it (it's just ~sparc). also note that we don't fully support these with sparc patches (should work mostly fine depending on machine model).
Created attachment 117232 [details] Buildlog of glibc ebuild on sparc system
note that this is basically bug #173263 and the workaround is USE=nptlonly (on sparc32). apparently linuxthreads/sparc got some bitrot and no longer compiles, hence the need for nptlonly, which then forces the use of linux 2.6 of course. now this works for sparc32, sparc64 still fails because the glibc ebuild explicitly disables TLS support there which in turn still enables linuxthreads... i guess the want_nptl or the want_tls logic needs a change (want_tls says something about TLS already being supported on sparc64 since glibc-2.3.6).
*** Bug 182477 has been marked as a duplicate of this bug. ***