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が使えるか試してみる。