Prelinking /usr/bin/Xvfb prelink: /usr/bin/Xvfb: NOBITS section followed by non-NOBITS section in the same segment Prelinking /usr/bin/Xnest prelink: /usr/bin/Xnest: NOBITS section followed by non-NOBITS section in the same segment Same problem on two systems -- one 2005.1 selinux x86 P4 and one 2006.1 x86 PIII-S. No problems with xorg 1.0.2 Portage 2.1.1 (selinux/2005.1/x86, gcc-3.4.6, glibc-2.4-r3, 2.6.17-gentoo-r8 i686) ================================================================= System uname: 2.6.17-gentoo-r8 i686 Intel(R) Pentium(R) 4 CPU 2.53GHz Gentoo Base System version 1.12.5 Last Sync: Fri, 13 Oct 2006 23:50:01 +0000 ccache version 2.3 [enabled] app-admin/eselect-compiler: [Not Present] dev-java/java-config: 1.2.11-r1 dev-lang/python: 2.4.3-r4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.3 dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.16.1-r3 sys-devel/gcc-config: 1.3.13-r4 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -pipe -march=pentium4 -momit-leaf-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb /var/bind" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo" CXXFLAGS="-O2 -pipe -march=pentium4 -momit-leaf-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig ccache distlocks metadata-transfer sandbox selinux sesandbox sfperms strict userfetch userpriv usersandbox" GENTOO_MIRRORS="http://open-systems.ufl.edu/mirrors/gentoo http://prometheus.cs.wmich.edu/gentoo http://www.gtlib.gatech.edu/pub/gentoo" LDFLAGS="-Wl,-O1" LINGUAS="" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.us.gentoo.org/gentoo-portage" USE="X acpi alsa apache2 berkdb caps crypt cups dri eds elibc_glibc fam gdbm gif gnome gtk idn input_devices_keyboard input_devices_mouse ipv6 jpeg kernel_linux logrotate mad mbox mmap mmx motif ncurses nfs nis nls nptl nptlonly offensive pam pcre perl pic png posix python qt4 readline sdl seamonkey selinux spell spl sse sse2 ssl tcpd threads truetype userland_GNU video_cards_radeon video_cards_vesa x86 xml zlib" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
Dumping the sections of Xnest with eu-readelf -S gives: There are 30 section headers, starting at offset 0x32e654: Section Headers: [Nr] Name Type Addr Off Size ES Flags Lk Inf Al [ 0] NULL 00000000 000000 000000 0 0 0 0 [ 1] .interp PROGBITS 08048174 000174 000013 0 A 0 0 1 [ 2] .note.ABI-tag NOTE 08048188 000188 000020 0 A 0 0 4 [ 3] .hash HASH 080481a8 0001a8 0027ac 4 A 4 0 4 [ 4] .dynsym DYNSYM 0804a954 002954 006140 16 A 5 1 4 [ 5] .dynstr STRTAB 08050a94 008a94 006d74 0 A 0 0 1 [ 6] .gnu.version GNU_versym 08057808 00f808 000c28 2 A 4 0 2 [ 7] .gnu.version_r GNU_verneed 08058430 010430 000090 0 A 5 3 4 [ 8] .rel.dyn REL 080584c0 0104c0 002668 8 A 4 0 4 [ 9] .rel.plt REL 0805ab28 012b28 000930 8 A 4 11 4 [10] .init PROGBITS 0805b458 013458 000017 0 AX 0 0 4 [11] .plt PROGBITS 0805b470 013470 001270 4 AX 0 0 4 [12] .text PROGBITS 0805c6e0 0146e0 2a88b4 0 AX 0 0 16 [13] .fini PROGBITS 08304f94 2bcf94 00001a 0 AX 0 0 4 [14] .rodata PROGBITS 08304fc0 2bcfc0 0432ac 0 A 0 0 32 [15] .eh_frame_hdr PROGBITS 0834826c 30026c 000014 0 A 0 0 4 [16] .eh_frame PROGBITS 08348280 300280 00003c 0 A 0 0 4 [17] .tdata PROGBITS 08349000 301000 000004 0 WAT 0 0 4 [18] .tbss NOBITS 08349004 301004 000004 0 WAT 0 0 4 [19] .ctors PROGBITS 08349004 301004 000008 0 WA 0 0 4 [20] .dtors PROGBITS 0834900c 30100c 000008 0 WA 0 0 4 [21] .jcr PROGBITS 08349014 301014 000004 0 WA 0 0 4 [22] .data.rel.ro PROGBITS 08349020 301020 00207c 0 WA 0 0 32 [23] .dynamic DYNAMIC 0834b09c 30309c 000120 8 WA 5 0 4 [24] .got PROGBITS 0834b1bc 3031bc 001334 4 WA 0 0 4 [25] .got.plt PROGBITS 0834c4f0 3044f0 0004a4 4 WA 0 0 4 [26] .data PROGBITS 0834c9a0 3049a0 023ec4 0 WA 0 0 32 [27] .bss NOBITS 08370880 328864 016754 0 WA 0 0 32 [28] .comment PROGBITS 00000000 328864 005d00 0 0 0 1 [29] .shstrtab STRTAB 00000000 32e564 0000ef 0 0 0 1
How would one fix this problem?
(In reply to comment #2) > How would one fix this problem? > I'd start by examining what's changed in the linking process between versions, and asking upstreams and the prelink maintainers. As a stop-gap measure until it has been fixed, I recommend the ebuild creating a new file, /etc/env.d/20xorg-server containing this: PRELINK_PATH_MASK="/usr/bin/Xvfb:/usr/bin/Xnest" After the emerge runs env-update, these two files will then be added to the exlusion list in /etc/prelink.conf for users who run prelink. It doesn't solve the problem, but it's a viable workaround while avenues of fixing it can be persued.
Referring to http://bugzilla.ximian.com/show_bug.cgi?id=74822 -- here's what it says: This seems to be more of a problem with prelink than with mono. The mono runtime uses thread-local variables, which are put by the linker into the .tbss section. Seems that prelink can't handle it.
I've been running the ~x86/~amd64 prelink-20060712 (which fixes this issue) for a couple of weeks now, on four boxes: 1: Athlon-4, gcc 3.4.6, gentoo 2006.1 2: Pentium IIIs, gcc 3.4.6, gentoo 2006.1 3: Pentium 4, gcc 3.4.6, selinux 2005.1 4: Opteron 1xx, gcc 3.4.6, gentoo 2006.1 It appears to work stably on all four, although as others upstream has noted, executables can become rather big after prelinking. Also, I have not tested with gcc 4.1, so I'm reluctant to request zonking the ~ just yet, based only on my experience. I do, however, STRONGLY recommend that the xorg-server people add an env.d exclusion as outlined in detail in comment #3, until the newer prelink goes stable. This should be standard for any package that doesn't prelink with the latest stable, and indeed most packages who need it do so.
latest versions in portage should have this issue fixed