
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