Boost 1.35 Multi-architecture and Static Build Failures on OS X 10.5 Intel
Several problems with configurations not properly propagating through the long build chain it seems.That is if I am setting this up correctly--there is always the possibility this is pilot error in the setup. 1) configure architecture=combined should be the default and provide a universal 32-bit architecture file: but the build is done for only the i386 architecture (no ppc) for the dylibs # all libraries are built as dynamic libraries supporting only the native architecture, in this case i386, and are not multi-architecture $find ./bin.v2 -type f -regex ".*dylib" -exec lipo -info {} \; Non-fat file: ./bin.v2/libs/date_time/build/darwin/release/macosx-version-10.4/threading-multi/libboost_date_time-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/filesystem/build/darwin/release/macosx-version-10.4/threading-multi/libboost_filesystem-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/graph/build/darwin/release/macosx-version-10.4/threading-multi/libboost_graph-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/iostreams/build/darwin/release/macosx-version-10.4/threading-multi/libboost_iostreams-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/program_options/build/darwin/release/macosx-version-10.4/threading-multi/libboost_program_options-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/python/build/darwin/release/macosx-version-10.4/threading-multi/libboost_python-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/regex/build/darwin/release/macosx-version-10.4/threading-multi/libboost_regex-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/serialization/build/darwin/release/macosx-version-10.4/threading-multi/libboost_serialization-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/serialization/build/darwin/release/macosx-version-10.4/threading-multi/libboost_wserialization-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/signals/build/darwin/release/macosx-version-10.4/threading-multi/libboost_signals-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/system/build/darwin/release/macosx-version-10.4/threading-multi/libboost_system-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/test/build/darwin/release/macosx-version-10.4/threading-multi/libboost_prg_exec_monitor-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/test/build/darwin/release/macosx-version-10.4/threading-multi/libboost_unit_test_framework-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/thread/build/darwin/release/macosx-version-10.4/threading-multi/libboost_thread-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/wave/build/darwin/release/macosx-version-10.4/threading-multi/libboost_wave-mt-1_35.dylib is architecture: i386 [08:26:15] daniello@Mercury ~/Projects/Dev/UniversalL 2) configure architecture=combined link=static should result in a combined architecture static library build: but only two files end up as static and neither is multi-architecture: # searching for static libraries yields only two matches and neither is multi-architecture $find ./bin.v2 -type f -regex ".*a" -exec lipo -info {} \; input file ./bin.v2/libs/test/build/darwin/release/link-static/macosx-version-10.4/threading-multi/libboost_test_exec_monitor-mt-1_35.a is not a fat file Non-fat file: ./bin.v2/libs/test/build/darwin/release/link-static/macosx-version-10.4/threading-multi/libboost_test_exec_monitor-mt-1_35.a is architecture: i386 # the rest of the libraries are still built as dynamic libraries and none are multi-architecture $find ./bin.v2 -type f -regex ".*dylib" -exec lipo -info {} \; Non-fat file: ./bin.v2/libs/date_time/build/darwin/release/macosx-version-10.4/threading-multi/libboost_date_time-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/filesystem/build/darwin/release/macosx-version-10.4/threading-multi/libboost_filesystem-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/graph/build/darwin/release/macosx-version-10.4/threading-multi/libboost_graph-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/iostreams/build/darwin/release/macosx-version-10.4/threading-multi/libboost_iostreams-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/program_options/build/darwin/release/macosx-version-10.4/threading-multi/libboost_program_options-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/python/build/darwin/release/macosx-version-10.4/threading-multi/libboost_python-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/regex/build/darwin/release/macosx-version-10.4/threading-multi/libboost_regex-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/serialization/build/darwin/release/macosx-version-10.4/threading-multi/libboost_serialization-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/serialization/build/darwin/release/macosx-version-10.4/threading-multi/libboost_wserialization-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/signals/build/darwin/release/macosx-version-10.4/threading-multi/libboost_signals-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/system/build/darwin/release/macosx-version-10.4/threading-multi/libboost_system-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/test/build/darwin/release/macosx-version-10.4/threading-multi/libboost_prg_exec_monitor-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/test/build/darwin/release/macosx-version-10.4/threading-multi/libboost_unit_test_framework-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/thread/build/darwin/release/macosx-version-10.4/threading-multi/libboost_thread-mt-1_35.dylib is architecture: i386 Non-fat file: ./bin.v2/libs/wave/build/darwin/release/macosx-version-10.4/threading-multi/libboost_wave-mt-1_35.dylib is architecture: i386
Daniel Lord wrote:
Several problems with configurations not properly propagating through the long build chain it seems.That is if I am setting this up correctly--there is always the possibility this is pilot error in the setup.
1) configure architecture=combined should be the default and provide a universal 32-bit architecture file:
What do you mean "configure"? If you're using the "configure" script, then stop, and invoke bjam directly. - Volodya
participants (2)
-
Daniel Lord
-
Vladimir Prus