
I am trying to use linux-x86 platform to cross-build for linux-ppc. I have followed Vladimir’s suggestion to specify my cross-compiler/archiver by updating user-config.jam with: using gcc : : /path/to/my/linux-ppc-g++ : <archiver>/path/to/my/linux-ppc-ar ; I have confirmed this works IF I build one of the [header-only] example programs. This proves that user-config.jam (located in my home directory) is being found, and the compiler/archiver are specified correctly, since the resulting executable runs on the correct target (ppc) platform. However, when attempting to apply the same user-config.jam file to build boost/serialization, it appears my cross-compiler/archiver directives are ignored, and the resulting libraries are in the native x86 format, since attempting to build a program with one of them using my ppc-g++ compiler produces a spew of link errors. Modifying my makefile to use the native g++ compiler permits a successful linkage with the boost/serialization library, and the resulting executable runs fine on the x86 platform. The command I used to build boost/serialization is: bjam --toolset=gcc --with-serialization --prefix=/my/prefix/path --exec-prefix=/my/exec-prefix/path/linux_ppc --libdir=/my/exec-prefix/path/linux_ppc/lib install I also saved the output from the build, but can’t see any clues to explain where things went wrong. Any ideas why I seem to be so close, but still cannot produce boost library binaries for the desired target platform?