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

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to