Build 32 bit binaries on amd64

Konstantin Belousov kostikbel at gmail.com
Tue Aug 21 08:49:35 UTC 2012


On Mon, Aug 20, 2012 at 08:32:41PM -0600, Dan McGregor wrote:
> Hi.
> 
> I've been working on porting compiler-rt/clang's support for address
> sanitization (asan) to FreeBSD.  So far I have it building and it
> appears to work properly, however the build system expects to be able
> to build 32 bit binaries on amd64.
> 
> amd64 doesn't include i386's machine/foo headers.  The included patch
> is my proposed solution:
> 
> Add i386 headers to /usr/include/i386, and in machine/foo.h, check if
> it's a 32 bit build and include the appropriate header from i386.
> 
> For example machine/ucontext.h will include i386/ucontext.h if
> compiled with -m32.
> 
> Thoughts?
> 
> If anyone's curious about the compiler_rt port, I have it at
> github.com/dannomac/compiler-rt on the branch named freebsd.

There was a work by Tijl Coosemans in the similar, but somewhat less hacky
direction. The headers are moved into sys/x86/include and unified as much
as possible, while machine/ counterpart includes corresponding header
from x86/include.

I even lost track of how much more headers is left to convert. In fact,
not all headers are equal, some are only useful for kernel or base system.
Also, parts of the critically important headers do not live in machine/
at all, e.g. the headers from libm.

The work seems to be stale, do you want to cooperate with Tijl or continue ?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20120821/52aa879d/attachment.pgp


More information about the freebsd-hackers mailing list