I have tried to compile prelink-20021002-r1. I got the error: ../src/prelink: /var/tmp/portage/prelink-20021002-r1/work/prelink/testsuite/reloc1: Could not find variable copy reloc is against The exact same error occurs in all of the following tests: reloc{1,3,6,7} and shuffle{1-5}. I've noticed this error mentioned once, on a Redhat forum, and it was in reference to Gentoo users. I'm using binutils-2.13.90.0.16-r1, gcc-3.2.1-r6, glibc-2.3.1-r2, all compiled last night. Reproducible: Always Steps to Reproduce: 1. 'emerge prelink' 2. less /var/tmp/portage/prelink-*/work/prelink/test/reloc1.log Actual Results: Lots of test failures Expected Results: Portage 2.0.46-r9 (default-x86-1.4, gcc-3.2.1, glibc-2.3.1-r2) ================================================================= System uname: 2.4.19-gentoo-r10 i586 AMD-K6(tm) 3D processor GENTOO_MIRRORS="http://www.ibiblio.org/pub/Linux/distributions/gentoo" CONFIG_PROTECT="/etc /var/qmail/control /usr/share/config /usr/kde/2/share/config /usr/kde/3/share/config" CONFIG_PROTECT_MASK="/etc/gconf /etc/env.d" PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR_OVERLAY="/usr/portage.local" USE="x86 apm avi crypt cups encode gif jpeg libg++ libwww mikmod mpeg ncurses nls pdflib png qtmt spell truetype xml2 xmms xv zlib gdbm berkdb readline svga java X sdl gpm tcpd pam ssl perl python imlib oggvorbis gnome gtk opengl * -mmx -alsa -slang -arts -tcltk -guile -ruby -postgres -esd -kde -gphoto2 -cdr -scanner -quicktime -alpha -mips -sparc -ppc -qt -motif -static 3dfx voodoo3 3dnow oss" COMPILER="gcc3" CHOST="i586-pc-linux-gnu" CFLAGS="-march=k6-2 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=k6-2 -O3 -pipe -fomit-frame-pointer" ACCEPT_KEYWORDS="x86" MAKEOPTS="-j2" AUTOCLEAN="yes" SYNC="rsync://rsync.gentoo.org/gentoo-portage" FEATURES="sandbox ccache" (Also: tried without -O3 -fomit-frame-pointer)
Could be a gcc problem related to the bad loop bug on K6 and gcc-3.2.1. Upgrade to gcc-3.2.2, and remerge glibc, elfutils and prelink.
And?
I have an almost identical bug. Rebuilding my Gentoo system using 1.4rc3 from Stage 1 off the CD, using portage 2.0.47-r7, everything built fresh since that release. I'm using gcc 3.2.2 on an Athlon XP ; have also tried reemerging gcc glibc and binutils with much lower optimisation ; the alternative prelink ebuilds in portage ; removing libelf and adding elfutils. Still same results on success/fail on prelink. Reloc 1,3,6 and all the shuffles fail, Reloc 2,8,9 and the layouts pass. Same setup worked on a 1.4rc2 Stage 1 build with the same optimisations.
Further to my previous comment ; I rebuilt binutils, gcc and glibc with -O2 -arch=i686 (e.g. the default make.conf) & it still gave the same errors. Using the same data (burnt to CDROM, no net access), built a new Gentoo system on the same level, prelink built. Changed to -O3 -arch=athlon-xp etc etc and rebuilt it, didn't work. Changed it back and it still didn't work. The hardware was almost identical KT266 VIA board + RIVATNT2. A bit stuck now as to what to try next :(
Created attachment 9533 [details, diff] Patch to fix copy reloc problem. This is a bit of a hack, but it works for me. I was debugging the prelink utility because I was getting this problem. I managed to produce a patch that fixed the problem for me. I will send this patch to the prelink author, so he can produce something better. This patch will break 64 bit machines, and for what I found, this problem only seems to happen on 32 bit machines. At least it happens on my pentium3.
Added the patch, I recomend using a newer version of prelik though! The current stable version is way old!