ok, the problem is that you cannot compile c++ into ppc64 machine code on Snow Leopard because it doesn't ship with a ppc64 bit version of the SDK.

The following is the culprit in darwin.jam

arch-addr-flags darwin OPTIONS : combined : 64 : -arch x86_64 -arch ppc64 ;

My last post demonstrated the failure but you cannot build through Xcode because it will bail with the same error. My take is that Apple is dropping support for ppc64 but I have no confirmation other than they do not ship the ability to target this anymore.

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