Upgrade to glibc 2.11
Status: in progress
The main reason for upgrading to 2.11 is that, although Ubuntu has not yet switched from 2.10 to 2.11, it has "backported" the addition of __abort_msg@GLIBC_PRIVATE from 2.11 and some libraries in Ubuntu are improperly relying on this symbol. See PlashIssues/AbortMsgNotDefined.
Notes
checking cpuid.h usability... no checking cpuid.h presence... no checking for cpuid.h... no configure: error: gcc must provide the <cpuid.h> header
This happens because we're still specifying CC=gcc-4.1. Need to use a newer gcc. See http://bugs.gentoo.org/292174.
In file included from ../sysdeps/unix/sysv/linux/syslog.c:10: ../misc/syslog.c: In function '__vsyslog_chk': ../misc/syslog.c:123: sorry, unimplemented: inlining failed in call to 'syslog': function body not available ../misc/syslog.c:155: sorry, unimplemented: called from here
Need to add -U_FORTIFY_SOURCE to the gcc invocation. I found this in Ubuntu's Debian packaging for glibc.
I have added these build errors to GlibcBuildIssues.
When the glibc build runs ld.so for the first time, I get this error:
/work/plash/plash/glibc-build/sunrpc/rpcgen: error while loading shared libraries: /work/plash/plash/glibc-build/sunrpc/rpcgen: cannot open shared object file: Error 38
stracing shows that ld.so is giving up without making any syscalls. It must be reading the environment variables and giving up. It turns out that getenv() doesn't work -- it always returns NULL -- because strncmp() is broken in amd64 when included in ld.so. I raised a bug on glibc in the hope that others won't be caught by this.
