Date: Fri, 13 Aug 2010 11:24:30 -0500 From: Dan Nelson <dnelson@allantgroup.com> To: Yuri <yuri@rawbw.com> Cc: freebsd-questions@freebsd.org Subject: Re: Documentation on how to build 32bit applications on amd64? Message-ID: <20100813162429.GE18896@dan.emsphone.com> In-Reply-To: <4C656E8F.8090105@rawbw.com> References: <4C656E8F.8090105@rawbw.com>
next in thread | previous in thread | raw e-mail | index | archive | help
In the last episode (Aug 13), Yuri said: > 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? Try adding -B/usr/lib32 to your first gcc line. The specs file should be modified to add this automatically when you pass -m32, imho. -- Dan Nelson dnelson@allantgroup.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100813162429.GE18896>