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:

Previous
From: Andrew Dunstan
Date:
Subject: Re: Error"Failed to run initdb: 128!"
Next
From: Alvaro Herrera
Date:
Subject: Re: CVS repository invalid revision