Boost logo

Boost Users :

Subject: Re: [Boost-users] 1.40.0 - 32_64 broken on OS X 10.6 Snow Leopard
From: Howard Hinnant (howard.hinnant_at_[hidden])
Date: 2009-09-05 18:14:16


On Sep 5, 2009, at 3:32 PM, Vladimir Prus wrote:

> Howard Hinnant wrote:
>
>> On Sep 5, 2009, at 7:34 AM, JungleCat wrote:
>>
>>> This isn't a compiler problem as I was able to compile OpenSSL into
>>> 32_64.
>>>
>>> The error starts off when:
>>>
>>> #include <exception>
>>>
>>> is included from boost, date_time in my case:
>>>
>>> /usr/include/c++/4.2.1/exception:42:28: error: bits/c++config.h: No
>>> such file or directory
>>>
>>> So:
>>>
>>> /usr/include/c++/4.2.1/exception
>>>
>>> Includes: bit/c++config.h
>>>
>>> However bit/c++config.h doesn't exist, they are rooted in the /usr/
>>> include/c++/4.2.1/i686-apple-darwin* /usr/include/c++/4.2.1/powerpc-
>>> apple-darwin* and /usr/include/c++/4.2.1/x86_64-apple-darwin*
>>> folders.
>>>
>>> I have not looked into the darwin.jam but I bet it's getting tricked
>>> up with the SDK changes to paths, etc.. it's late, zzz..
>>
>> This is an include path problem. Unfortunately I don't know anything
>> about bjam or the boost build process. However I do know where you
>> can find bits/c++config.h.
>>
>> For each platform (32/64, 10.4/5/6) there is a platform-specific
>> directory, e.g.:
>>
>> /usr/include/c++/4.2.1/i686-apple-darwin10/ // 32 bit Snow
>> Leopard
>> /usr/include/c++/4.2.1/x86_64-apple-darwin10/ // 64 bit Snow
>> Leopard
>>
>> Inside of each of these you will find bits/c++config.h. So you need
>> an include path to /usr/include/c++/4.2.1/<correct platform>.
>
> Do you suggest such a path should be manually passed to compiler?
> Still
> counts as compiler bug by my book :-/

I would have to see the command line being used to make any further
guesses as to where the problem lies. However on 10.6 I'm seeing the
following behavior:

$ cat test.cpp
#include <iostream>

int main()
{
     std::cout << "Hello World\n";
}
$ g++ -arch i386 -arch x86_64 test.cpp
$ a.out
Hello World
$ nm -arch all a.out |grep a.out
a.out (for architecture i386):
a.out (for architecture x86_64):

-Howard


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net