
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@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users