Boost logo

Boost-Build :

Subject: Re: [Boost-build] generating headers out of Jamfile
From: Oliver Kowalke (oliver.kowalke_at_[hidden])
Date: 2011-01-30 11:15:13

Am 30.01.2011 16:37, schrieb Vladimir Prus:
> Oliver Kowalke wrote:
>> Am 30.01.2011 16:13, schrieb Vladimir Prus:
>>> I think the question here is what Boost.Build should do when you build with MIPS gcc
>>> and don't specify any abi explicitly:
>>> 1. Just invoke gcc without any options, and set<abi> property to whatever default value gcc
>>> has.
>>> 2. Invoke gcc with the option that matches OS built properties. In that case, we need a
>>> way to discover how OS was built.
>>> It seems to me that (1) might be better approach, because it is easlier to explain and
>>> understand. Further, if default abi of system gcc differs from the abi used for the system, it
>>> means that gcc was invoked with explicit abi options to build that system, and it's reasonable
>>> to ask the user to specify abi=xxx explicitly when using Boost.Build, too.
>>> What do you think?
>> I would prefer the second item but I'm not familiar with - I
>> thought it could evaluate the environment and set the related properties
>> (if<abi> is not an optional property).
>> If possible it has to compile and execute a test app:
>> #if defined(__gcc__)
>> #if defined(__mips__)
>> #if _MIPS_SIM == _ABIO32
>> fprintf(stdout,"o32 abi\n");
>> #elif _MIPS_SIM == _ABIN32
>> fprintf(stdout,"n32 abi\n");
>> #elif _MIPS_SIM == _ABI64
>> fprintf(stdout,"n64 abi\n");
>> #else
>> #error "unknown MIPS ABI"
>> #endif
>> #elif defined(__ppc__)
>> ...
>> I can help a little bit to collect the predefined macros.
> Wait -- but it this will test GCC default ABI. To check what the system (=kernel, libc)
> was built with you probably need to look at /proc, and that's only possible when
> building natively.

you are correct - depending on architecture, target-os and address-model
you set the <abi> and <binary-format>.
your first suggestion is correct in this way.


Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at