Documentation on how to build 32bit applications on amd64?

Yuri yuri at rawbw.com
Fri Aug 13 16:11:18 UTC 2010


I need to build 32 bit apps the same way as they would be built on i386.

When I run 64-bit gcc I get this:
gcc -m32 -o m m.c
/usr/bin/ld: skipping incompatible /usr/lib/libgcc.a when searching for 
-lgcc
/usr/bin/ld: skipping incompatible /usr/lib/libgcc.a when searching for 
-lgcc
/usr/bin/ld: cannot find -lgcc

When I run 32bit gcc I get this:
/gcc-4.5.0-32/bin/gcc -m32 -o m m.c
/var/tmp//ccif89DB.s: Assembler messages:
/var/tmp//ccif89DB.s:11: Error: suffix or operands invalid for `push'
/var/tmp//ccif89DB.s:14: Error: `-12(%ebp)' is not a valid 64 bit 
base/index expression

In first case libgcc.so isn't found, and specifying -L/usr/lib32 doesn't 
help.
In the second case 32bit compiler runs 64-bit assembler which is wrong.

Is there a documentation how to cross compile 32 bit apps on 64 bit 
platform?

Yuri



More information about the freebsd-questions mailing list