Xen - nosegneg broken on hardy
Binary package hint: linux-image-
Error occurs on:
Ubuntu 126.96.36.199 (Server installation CD with online updates)
After freshly installing Hardy and switching to the xen kernel (install ubuntu-xen-server) the wrong tls libraries are used. The following warning is displayed during boot:
** WARNING: Currently emulating unsupported memory accesses **
** in /lib/tls glibc libraries. The emulation is **
** slow. To ensure full performance you should **
** install a 'xen-friendly' (nosegneg) version of **
** the library, or disable tls support by executing **
** the following as root: **
** mv /lib/tls /lib/tls.disabled **
** Offending process: init (pid=2710) **
ldd /bin/bash also show that the cmov variant of the libc is used, not the nosegneg.
Moving /lib/tls to /lib/tls.disabled fixes the warning, but this is prone to break again by installing updates.
The correct solution would be to use the nosegneg version of libc.
libc6-xen is installed and the neccessary libraries are in /lib/tls/
Creating the missing file with the content "hwcap 1 nosegneg" and running ldconfig doesn't help. (Note: On Ubunto 7.10 the file had to read "hwcap 0 nosegneg" The flag has been changed to 1. This is documented in the kernel sources: linux-2.
ldd /bin/bash prove that the nosegneg libraries are now prefered.
Therfore I assume the linker itself is ok and the hwcap flag must be missing in the kernel. Unfortunatelly I'm unable to find an way to display the hwcap flags from the running kernel.
# uname -a
Linux Xen 2.6.24-19-xen #1 SMP Sat Jul 12 03:55:08 UTC 2008 i686 GNU/Linux
# cat /proc/version_