As anyone had luck with rebuilding RHE3 for x86_64? glibc: RH does something really weird here, they install two glibc packages, one built for x86_64 and another built for i686. These packages actually conflict with each other since they both own files in /etc, /sbin, /usr/lib/gconv, etc. The i686 package puts libs into /lib and the x86_64 package puts libs into /lib64. It seems that normal rpm tools will have problems with this arrangement.
I figure I have three choices: rename the 32bit version to "glibc32" and leave out the common files already owned by the 64bit glibc, completely leave out the 32bit glibc and see if everything still works (foregoing 32bit operability), copy RH and deal with other eventual maintenance problems. I like the first solution best, the second is probably OK for me. No matter what, I can't get a 32bit version to build: $ setarch i686 rpmbuild -ba --target=i686-redhat-linux-gnu glibc.spec [...snip...] ../sysdeps/unix/i386/sysdep.S: Assembler messages: ../sysdeps/unix/i386/sysdep.S:54: Error: suffix or operands invalid for `push' ../sysdeps/unix/i386/sysdep.S:58: Error: suffix or operands invalid for `pop' ../sysdeps/unix/i386/sysdep.S:59: Error: `(%eax)' is not a valid 64 bit base/index expression make[2]: *** [/home/garrick/rpm/BUILD/glibc-2.3.2-200309260658/build-i686-linux/csu/sysdep.o] Error 1 I think I might build a "glibc32" on a real i686 machine that leaves out the common files. gcc: Not nearly as complicated as glibc, rebuilding results in an error about not finding crti.o: ./xgcc -B./ -B/usr/x86_64-redhat-linux/bin/ -isystem /usr/x86_64-redhat-linux/include -isystem /usr/x86_64-redhat-linux/sys-include -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -shared -nodefaultlibs -Wl,--soname=libgcc_s.so.1 -Wl,--version-script=libgcc/32/libgcc.map -o 32/libgcc_s.so.1 -m32 libgcc/32/_muldi3.o libgcc/32/_negdi2.o libgcc/32/_lshrdi3 .o libgcc/32/_ashldi3.o libgcc/32/_ashrdi3.o libgcc/32/_ffsdi2.o libgcc/32/_clz.o libgcc/32/_cmpdi2.o libgcc/32/_ucmpdi2.o libgcc/32/_floatdidf.o libgcc/32/_floatdisf.o libgcc/32/_fixunsdfsi.o libgcc/32/_fixunssfsi.o libgcc/32/_fixunsdfdi.o libgcc/32/_fixdfdi.o libgcc/32/_fixunssfdi.o libgcc/32/_fixsfdi.o libgcc/32/_fixxfdi.o libgcc/32/_fixunsxfdi.o libgcc/32/_floatdixf.o libgcc/32/_fixunsxfsi.o libgcc/32/_fixtfdi.o libgcc/32/_fixunstfdi.o libgcc/32/_floatditf.o libgcc/32/_clear_cache.o libgcc/32/_trampoline.o libgcc/32/__main.o libgcc/32/_exit.o libgcc/32/_absvsi2.o libgcc/32/_absvdi2.o libgcc/32/_addvsi3.o libgcc/32/_addvdi3.o libgcc/32/_subvsi3.o libgcc/32/_subvdi3.o libgcc/32/_mulvsi3.o libgcc/32/_mulvdi3.o libgcc/32/_negvsi2.o libgcc/32/_negvdi2.o libgcc/32/_ctors.o libgcc/32/_divdi3.o libgcc/32/_moddi3.o libgcc/32/_udivdi3.o libgcc/32/_umoddi3.o libgcc/32/_udiv_w_sdiv.o libgcc/32/_udivmoddi4.o libgcc/32/unwind-dw2.o libgcc/32/unwind-dw2-fde-glibc.o libgcc/32/unwind-sjlj.o libgcc/32/unwind-c.o -lc && rm -f libgcc_s_32.so && ln -s 32/libgcc_s.so.1 libgcc_s_32.so /usr/bin/ld: cannot open crti.o: No such file or directory collect2: ld returned 1 exit status make[3]: *** [32/libgcc_s_32.so] Error 1 make[3]: Leaving directory `/home/garrick/rpm/BUILD/gcc-3.2.3-20030829/obj-x86_64-redhat-linux/gcc' grub: Basicly the same error as gcc. -- Garrick Staples, Linux/HPCC Administrator University of Southern California
pgp00000.pgp
Description: PGP signature