Boost logo

Boost Users :

Subject: Re: [Boost-users] 1.40.0 - 32_64 broken on OS X 10.6 Snow Leopard
From: JungleCat (junglecat_at_[hidden])
Date: 2009-09-05 18:44:45


Simply doing this "g++ -arch ppc64 foo.cpp" breaks it. This is a ppc64
only problem. The SDK paths are MISSING for ppc64 and therefore
breaking g++ as I said in my previous email and this will require an
update from Apple, Inc. You can switch the SDK paths and it will work
or you can not use Xcode 3.2 because this wasn't a problem until Xcode
3.2 and the iPhone SDK additions.

Julian

On Sep 5, 2009, at 3:14 PM, Howard Hinnant wrote:

> 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 mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users


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