Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Nov 2010 16:01:20 +1100 (EST)
From:      Bruce Evans <brde@optusnet.com.au>
To:        Warner Losh <imp@bsdimp.com>
Cc:        Tijl Coosemans <tijl@coosemans.org>, Dimitry Andric <dim@freebsd.org>, Garrett Cooper <gcooper@freebsd.org>, freebsd-arch@freebsd.org, Warner Losh <imp@freebsd.org>
Subject:   Re: Support for cc -m32
Message-ID:  <20101118154920.S3472@besplex.bde.org>
In-Reply-To: <4CE46602.9000303@bsdimp.com>
References:  <201007291718.12687.tijl@coosemans.org> <4CE417B3.3030102@bsdimp.com> <201011172058.05683.tijl@coosemans.org> <201011171718.37798.jhb@freebsd.org> <4CE46602.9000303@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 17 Nov 2010, Warner Losh wrote:

> On 11/17/2010 15:18, John Baldwin wrote:
>> ...
>> I'd prefer something that autogenerated headers in /usr/include/machine 
>> that
>> #include the appropriate version similar to what Warner suggested.
>> 
>> However, one issue with that approach (and this one) are headers that only
>> exist for one platform.  The end result would be that that header would now
>> exist for both platforms (in that if you do 'if [ -r
>> /usr/include/machine/foo.h ]' it will be true).  We can make it #error or
>> otherwise fail (by including a non-existing file for example), but if there
>> was some way to have cc -m32 "magically" substitute "i386/" for "machine",
>> that is what I would most prefer.  (This has problems too in that #include
>> <machine/foo.h>  would work with -m32 even though 
>> /usr/include/machine/foo.h
>> doesn't exist, but /usr/include/i386/foo.h does.
> "magically" converting machine -> i386 requires cpp hacking.
>
> However, the if [] test is beyond the scope of the API that we support. 
> Scripts that use -m32 will have to cope with other issues.
>
> We could 'solve' this by having an /usr/include32, but even that still isn't 
> complete.

Doesn't seem so hard to hack cpp for a subdirectory (but harder than adding
-I for the whole include path).

> I contend that the least bad solution is to auto generate the machine 
> directory from the sys/{i386,amd64}/include.  If we do that, we could 
> implement -m64 on i386 too, but that needs a lot more infrastructure.

Maybe auto-generate machine32 and hack cpp to use that instead of `machine'?

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20101118154920.S3472>