Re: Error building 32 bit on 64 bit linux system - Mailing list pgsql-hackers
From | Doug Knight |
---|---|
Subject | Re: Error building 32 bit on 64 bit linux system |
Date | |
Msg-id | 1203346673.25327.3.camel@arc-dknightlx.wsicorp.com Whole thread Raw |
In response to | Re: Error building 32 bit on 64 bit linux system (Andrew Dunstan <andrew@dunslane.net>) |
List | pgsql-hackers |
Thanks Andrew, I missed the little -o in front of the SUBSYS.o. I did find that if I did "export LDEMULATION=elf_i386" Iwas able to link successfully. Now I just need to tell configure that I want to use the 32 bit perl libs, not the 64 bitones it keeps finding by using:<br /><br /> $PERL -MConfig -e 'print $Config{archlibexp}'<br /><br /> Both 32 and 64 bitlibraries 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 CentOSVM I have setup.<br /><br /> Doug<br /><br /> On Mon, 2008-02-18 at 09:48 -0500, Andrew Dunstan wrote: <blockquotetype="CITE"><pre> <font color="#000000">Doug Knight wrote:</font> <font color="#000000">> All,</font> <font color="#000000">> I am trying to build 8.2.5, forcing to a 32 bit build on a 64 bit </font> <font color="#000000">> system. I have set CFLAGS=-m32, and I run the configure and make/make </font> <font color="#000000">> install as follows:</font> <font color="#000000">></font> <font color="#000000">> setarch i386 ./configure</font> <font color="#000000">> setarch i386 make</font> <font color="#000000">> setarch i386 make install</font> <font color="#000000">></font> <font color="#000000">> However, I get the following error (using timezone for example):</font> <font color="#000000">></font> <font color="#000000">> $ make</font> <font color="#000000">> gcc -m32 -Wall -Wmissing-prototypes -Wpointer-arith -Winline </font> <font color="#000000">> -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing </font> <font color="#000000">> -I../../src/include -D_GNU_SOURCE -c -o localtime.o localtime.c</font> <font color="#000000">> gcc -m32 -Wall -Wmissing-prototypes -Wpointer-arith -Winline </font> <font color="#000000">> -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing </font> <font color="#000000">> -I../../src/include -D_GNU_SOURCE -c -o strftime.o strftime.c</font> <font color="#000000">> gcc -m32 -Wall -Wmissing-prototypes -Wpointer-arith -Winline </font> <font color="#000000">> -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing </font> <font color="#000000">> -I../../src/include -D_GNU_SOURCE -c -o pgtz.o pgtz.c</font> <font color="#000000">> /usr/bin/ld -r -o SUBSYS.o localtime.o strftime.o pgtz.o</font> <font color="#000000">> /usr/bin/ld: Relocatable linking with relocations from format </font> <font color="#000000">> elf32-i386 (localtime.o) to format elf64-x86-64 (SUBSYS.o) is not </font> <font color="#000000">> supported</font> <font color="#000000">> make: *** [SUBSYS.o] Error 1</font> <font color="#000000">></font> <font color="#000000">> Funny thing is, there is no SUBSYS.o in my current directory. If I </font> <font color="#000000">> build from the top, I see this same error in each dirctory/makefile </font> <font color="#000000">> where a SUBSYS.o is linked with. If I search my build tree after a </font> <font color="#000000">> top-down build, I do not see any SUBSYS.O files at all. Where is this </font> <font color="#000000">> SUBSYS.o getting created, and why isn't it being created as a 32 bit </font> <font color="#000000">> file instead of 64 bit?</font> <font color="#000000">></font> <font color="#000000">"man ld" IYF.</font> <font color="#000000">It looks like you need the --oformat option to tell the linker you want </font> <font color="#000000">32bit output.</font> <font color="#000000">Of course you won't find the SUBSYS.o files - it it the creation of </font> <font color="#000000">those that is failing.</font> <font color="#000000">cheers</font> <font color="#000000">andrew</font> </pre></blockquote>
pgsql-hackers by date: