BoostのUnivarsal Binary化 - Leopardで試してみた
Leopardで下記のオプションを指定してビルドすると正常にビルドできた。
architecture=combined address-model=32_64
Boost 1.39.0をLeopsrdでビルド
ビルド結果
iMac:boost_1_39_0 kuru$ ./bjam --toolset=darwin --with-thread link=static runtime-link=static architecture=combined address-model=32_64 Building C++ Boost. After the build, the headers will be located at /Users/kuru/Documents/00_Atotok/11.atotok-dev/13.Projects/library/boost_1_39_0 The libraries will be located at /Users/kuru/Documents/00_Atotok/11.atotok-dev/13.Projects/library/boost_1_39_0/stage/lib Use 'bjam install --prefix=<path>' if you wish to install headers and libraries to a different location and remove the source tree. ...patience... ...found 763 targets... ...updating 25 targets... common.mkdir bin.v2/libs/thread/build/darwin-4.0.1 common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/release common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64 common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread darwin.compile.c++ bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread/thread.o darwin.compile.c++ bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread/exceptions.o darwin.compile.c++ bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread/once.o darwin.archive bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/libboost_thread-xgcc40-mt-s-1_39.a common.copy stage/lib/libboost_thread-xgcc40-mt-s-1_39.a ln-UNIX stage/lib/libboost_thread-xgcc40-mt-s.a common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/debug common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/debug/address-model-32_64 common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/debug/address-model-32_64/architecture-combined common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/debug/address-model-32_64/architecture-combined/link-static common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/debug/address-model-32_64/architecture-combined/link-static/runtime-link-static common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/debug/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/debug/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread darwin.compile.c++ bin.v2/libs/thread/build/darwin-4.0.1/debug/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread/thread.o darwin.compile.c++ bin.v2/libs/thread/build/darwin-4.0.1/debug/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread/exceptions.o darwin.compile.c++ bin.v2/libs/thread/build/darwin-4.0.1/debug/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread/once.o darwin.archive bin.v2/libs/thread/build/darwin-4.0.1/debug/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/libboost_thread-xgcc40-mt-sd-1_39.a ...updated 25 targets...
iMac:boost_1_39_0 kuru$ ls stage/lib libboost_thread-xgcc40-mt-s-1_39.a libboost_thread-xgcc40-mt-s.a
Boost 1.40.0をLeopsrdでビルド
Boost 1.40.0 だとうまくいかない。
ビルド結果
iMac:boost_1_40_0 kuru$ ./bjam --toolset=darwin --with-thread link=static runtime-link=static architecture=combined address-model=32_64 Building the Boost C++ Libraries. After the build, the headers will be located at /Users/kuru/Documents/00_Atotok/11.atotok-dev/13.Projects/library/boost_1_40_0 The libraries will be located at /Users/kuru/Documents/00_Atotok/11.atotok-dev/13.Projects/library/boost_1_40_0/stage/lib Use 'bjam install --prefix=<path>' if you wish to install headers and libraries to a different location and remove the source tree. ...patience... ...found 512 targets... ...updating 19 targets... common.mkdir stage common.mkdir stage/lib common.mkdir bin.v2 common.mkdir bin.v2/libs common.mkdir bin.v2/libs/thread common.mkdir bin.v2/libs/thread/build common.mkdir bin.v2/libs/thread/build/darwin-4.0.1 common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/release common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64 common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi common.mkdir bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread darwin.compile.c++ bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread/thread.o lipo: /var/folders/yP/yP4WlLcMGYS9W7bSAtI90U+++TI/-Tmp-//cc8dmCqR.out and /var/folders/yP/yP4WlLcMGYS9W7bSAtI90U+++TI/-Tmp-//cc9tHeHZ.out have the same architectures (x86_64) and can't be in the same fat output file "g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -no-cpp-precomp -gdwarf-2 -Wno-long-double -arch i386 -arch ppc -arch x86_64 -arch ppc64 -m64 -DBOOST_ALL_NO_LIB=1 -DBOOST_THREAD_BUILD_LIB=1 -DBOOST_THREAD_POSIX -DNDEBUG -I"." -c -o "bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread/thread.o" "libs/thread/src/pthread/thread.cpp" ...failed darwin.compile.c++ bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread/thread.o... darwin.compile.c++ bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread/exceptions.o lipo: /var/folders/yP/yP4WlLcMGYS9W7bSAtI90U+++TI/-Tmp-//ccNmH8LE.out and /var/folders/yP/yP4WlLcMGYS9W7bSAtI90U+++TI/-Tmp-//ccTCwYiw.out have the same architectures (x86_64) and can't be in the same fat output file "g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -no-cpp-precomp -gdwarf-2 -Wno-long-double -arch i386 -arch ppc -arch x86_64 -arch ppc64 -m64 -DBOOST_ALL_NO_LIB=1 -DBOOST_THREAD_BUILD_LIB=1 -DBOOST_THREAD_POSIX -DNDEBUG -I"." -c -o "bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread/exceptions.o" "libs/thread/src/pthread/exceptions.cpp" ...failed darwin.compile.c++ bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread/exceptions.o... darwin.compile.c++ bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread/once.o lipo: /var/folders/yP/yP4WlLcMGYS9W7bSAtI90U+++TI/-Tmp-//cc21R6PC.out and /var/folders/yP/yP4WlLcMGYS9W7bSAtI90U+++TI/-Tmp-//cc76OXyX.out have the same architectures (x86_64) and can't be in the same fat output file "g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -no-cpp-precomp -gdwarf-2 -Wno-long-double -arch i386 -arch ppc -arch x86_64 -arch ppc64 -m64 -DBOOST_ALL_NO_LIB=1 -DBOOST_THREAD_BUILD_LIB=1 -DBOOST_THREAD_POSIX -DNDEBUG -I"." -c -o "bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread/once.o" "libs/thread/src/pthread/once.cpp" ...failed darwin.compile.c++ bin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi/pthread/once.o... ...skipped <pbin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi>libboost_thread.a for lack of <pbin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi>pthread/thread.o... ...skipped <pstage/lib>libboost_thread.a for lack of <pbin.v2/libs/thread/build/darwin-4.0.1/release/address-model-32_64/architecture-combined/link-static/runtime-link-static/threading-multi>libboost_thread.a... ...failed updating 3 targets... ...skipped 2 targets... ...updated 14 targets...
とりあえず、これは保留にして Boost 1.39が使えるか試してみる。