Thanks Andrew, I missed the little -o in front of the SUBSYS.o. I did
find that if I did "export LDEMULATION=elf_i386" I was able to link
successfully. Now I just need to tell configure that I want to use the
32 bit perl libs, not the 64 bit ones it keeps finding by using:

$PERL -MConfig -e 'print $Config{archlibexp}'

Both 32 and 64 bit libraries are installed on my system, but the return
from the above command within configure points to the 64 bit libs, as
the perl executable is a 64 bit file. I think my better option is to
build my 32 bit versions on a 32 bit CentOS VM I have setup.

Doug

On Mon, 2008-02-18 at 09:48 -0500, Andrew Dunstan wrote:

> 
> Doug Knight wrote:
> > All,
> > I am trying to build 8.2.5, forcing to a 32 bit build on a 64 bit 
> > system. I have set CFLAGS=-m32, and I run the configure and make/make 
> > install as follows:
> >
> > setarch i386 ./configure
> > setarch i386 make
> > setarch i386 make install
> >
> > However, I get the following error (using timezone for example):
> >
> > $ make
> > gcc -m32 -Wall -Wmissing-prototypes -Wpointer-arith -Winline 
> > -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing 
> > -I../../src/include -D_GNU_SOURCE   -c -o localtime.o localtime.c
> > gcc -m32 -Wall -Wmissing-prototypes -Wpointer-arith -Winline 
> > -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing 
> > -I../../src/include -D_GNU_SOURCE   -c -o strftime.o strftime.c
> > gcc -m32 -Wall -Wmissing-prototypes -Wpointer-arith -Winline 
> > -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing 
> > -I../../src/include -D_GNU_SOURCE   -c -o pgtz.o pgtz.c
> > /usr/bin/ld -r -o SUBSYS.o localtime.o strftime.o pgtz.o
> > /usr/bin/ld: Relocatable linking with relocations from format 
> > elf32-i386 (localtime.o) to format elf64-x86-64 (SUBSYS.o) is not 
> > supported
> > make: *** [SUBSYS.o] Error 1
> >
> > Funny thing is, there is no SUBSYS.o in my current directory. If I 
> > build from the top, I see this same error in each dirctory/makefile 
> > where a SUBSYS.o is linked with. If I search my build tree after a 
> > top-down build, I do not see any SUBSYS.O files at all. Where is this 
> > SUBSYS.o getting created, and why isn't it being created as a 32 bit 
> > file instead of 64 bit?
> >
> 
> "man ld" IYF.
> 
> It looks like you need the --oformat option to tell the linker you want 
> 32bit output.
> 
> Of course you won't find the SUBSYS.o files - it it the creation of 
> those that is failing.
> 
> cheers
> 
> andrew
> 

Reply via email to