I fixed this myself. I had to comment out the gcc in /etc/site-config.jam and change the gcc entry in user-config.jam to gcc : 4.3.2 : g++-4.3 : <compileflags>-m32 <linkflags>-m32 ; This works, but it's pain to have to do that when I've asked for the address model in the bjam command already and I have to comment it out for 64-bit builds. Damien From: Damien Hocking [mailto:damien@khubla.com] To: boost-users@lists.boost.org Sent: Sun, 01 Mar 2009 17:29:24 -0700 Subject: [Boost-users] problems with 32-bit Boost libs on Linux 64-bit with multilib gcc Hi all, I'm having some problems with building a 32-bit Boost on a 64-bit Linux. I'm building 1.38 and I need 64 and 32-bit version of the libraries. The compiler is gcc 4.3.2 with the multilibs installed (Ubuntu 8.10). My builds go through successfully, but when I link my 32-bit version of my application to what should be 32-bit Boost libraries, I get the "skipping incompatible" warning from the linker, which means that the address model is wrong. For example: /usr/bin/ld: skipping incompatible 3rdparty/boost/linux/x86/debug/libboost_serialization-gcc43-mt-d-1_38.so The 64-bit libraries are fine and the application links and runs correctly. I noticed in gcc.jam there's a comment about not being able to build a clean 32-bit binary with a 64-bit compiler. This is my bjam command for a 32-bit Boost build: bjam --build-dir=./build32 address-model=32 --build-type=complete --stagedir=./stage32 stage Do I need a -m32 in a config file or something extra on that command line? Damien