On 08/21/12 08:44, John Baldwin wrote:
On Tuesday, August 21, 2012 4:49:30 am Konstantin Belousov wrote:
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 ?
I think we should probably follow Tijl's model since we are on that path.
I originally preferred the /usr/include/i386 approach, but have come around
to Tjil's approach instead.


I just wanted to add that the unified 32/64 header route is where we went on PowerPC (and MIPS?) and it works very well for -m32.
-Nathan
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to