gcc -m32 option on amd64.

Tom Evans tevans.uk at googlemail.com
Fri Jul 27 16:32:39 UTC 2007

On Fri, 2007-07-27 at 20:20 +1000, Peter Jeremy wrote:
> On 2007-Jul-27 15:13:48 +0530, Sharad Chandra <sharadc at niksun.com> wrote:
> >I am trying gcc -m32 on freebsd 6.1 amd64 env, but it does not seems to be 
> >working. i also installed /usr/port/lang/linux-libgcc/ but did not help
> >what i did is=>
> >echo "main () {}" > t.c; gcc -m32 t.c
> >/usr/bin/ld: skipping 
> >incompatible /usr/local/lib/gcc/x86_64-portbld-freebsd6.1/4.2.0/gcc/x86_64-portbld-freebsd6.1/4.2.0/libgcc.a 
> >when searching for -lgcc
> >/usr/bin/ld: cannot find -lgcc
> >collect2: ld returned 1 exit status
> >
> >how can we make this working?
> You are using gcc 4.2 from ports.  I suspect this only includes the
> 64-bit libraries.  gcc in the base system includes both 32-bit and
> 64-bit libraries by default but it still suffers the same problem.
> I had a go at fixing the problem in amd64/112215 but this has other
> problems and needs more work.  Note that non-trivial code will break
> because <machine/XXXX.h> points at amd64 headers whilst the -m32
> compiler needs i386 headers in many cases.  There's a non-trivial
> amount of work needed to actually get cross-building working.  I
> suggest you look throught the FreeBSD-amd64 archives.

gcc on amd64 is capable of generating i386 code, but ld on amd64 is
incapable of linking i386 code together without serious amounts of work.

At work, we use a large number of amd64 boxes as compile farm servers
for i386 development, using distcc and a wrapper to invoke gcc correctly
on the external boxes.

To verify that it works (it compiles to i386 code), do this:
$ uname -a; echo "main() { } " > t.c ; gcc -c -m32 -o t.o t.c; file t.o
FreeBSD chef.mintel.co.uk 6.1-STABLE FreeBSD 6.1-STABLE #1: Fri Jun 23
12:48:28 BST 2006
operator at chef.mintel.co.uk:/usr/obj/usr/src/sys/CHEF  amd64
t.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (FreeBSD), not

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: This is a digitally signed message part
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20070727/5ad63507/attachment.pgp

More information about the freebsd-hackers mailing list