Re: [boost] [integer] Can anyone double-check this test?

Daryle Walker wrote:
I'm trying to tweak Boost.Integer, and I noticed that only 3 of the 6 test files there are being used. I changed the jam-file there, but I don't use Boost.Build myself, so can someone here confirm that the changes work. You can check out the exact changes with Change-set 47123 at <http://svn.boost.org/trac/boost/changeset/47123>.
In other words, you've checked in something, and you don't know if that works? You really better learn how to use Boost.Build -- for the mainstream toolsets and operating systems, it's trivial. - Volodya

On Jul 6, 2008, at 3:49 AM, Vladimir Prus wrote:
Daryle Walker wrote:
I'm trying to tweak Boost.Integer, and I noticed that only 3 of the 6 test files there are being used. I changed the jam-file there, but I don't use Boost.Build myself, so can someone here confirm that the changes work. You can check out the exact changes with Change-set 47123 at <http://svn.boost.org/trac/boost/changeset/47123>.
In other words, you've checked in something, and you don't know if that works? You really better learn how to use Boost.Build -- for the mainstream toolsets and operating systems, it's trivial.
I did read the documentation first.... (And it's a copy & paste of an existing line in the file.) .. OK, I tried Boost.Build out: 1. Since I'm loading from SVN, I'm have to make sure bjam is always generated after an update. I have this in a shell script: //================================= MY_HOME=~ MY_PROGRAMMING="$MY_HOME"/Documents/Programming MY_BOOST="$MY_PROGRAMMING"/Boost MY_BOOST_SVN="$MY_BOOST"/main-svn/boost-trunk echo "Updating Boost Main SVN" cd "$MY_BOOST_SVN" svn update echo "Rebuilding Boost.Jam for SVN" cd "$MY_BOOST_SVN"/tools/jam/src sh ./build.sh cp bin.macosxppc/bjam "$MY_HOME"/bin/bjam-svn rm -rf bootstrap rm -rf bin.macosxppc //================================= Is there a better way to do this? Is making the final executable be named "bjam-svn" bad? Calling "bjam-svn --version" gets me "Boost.Build V2 (Milestone 12) Boost.Jam 03.1.17" (on two lines). It properly uses the "darwin" toolset when building. 2. I put $MY_BOOST down as my $BOOST_BUILD_PATH, so I wouldn't have to put the *-config.jam files in my home directory. My copies of the latest Boost download and the subversion repository are also in this directory. Will that mess anything up? What's the "site-config.jam" file for anyway? Only one line was uncommented in "user-config.jam", the "using gcc ;" line. Is this suitable for a Mac OS X (10.4.11) system? 3. When I tried out the hello example, I got: //================================= daryle[example]$ cd hello daryle[hello]$ ls Jamroot hello.cpp daryle[hello]$ bjam-svn ..found 9 targets... ..updating 5 targets... MkDir1 bin MkDir1 bin/gcc-4.0.1 MkDir1 bin/gcc-4.0.1/debug gcc.compile.c++ bin/gcc-4.0.1/debug/hello.o gcc.link bin/gcc-4.0.1/debug/hello /usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: unknown flag: -- start-group collect2: ld returned 1 exit status "g++" -o "bin/gcc-4.0.1/debug/hello" -Wl,--start-group "bin/ gcc-4.0.1/debug/hello.o" -Wl,-Bstatic -Wl,-Bdynamic -Wl,--end- group -g ..failed gcc.link bin/gcc-4.0.1/debug/hello... ..failed updating 1 target... ..updated 4 targets... //================================= Attempts to specify "darwin," based on Googling "boost '--start- group'," got //================================= daryle[hello]$ bjam-svn toolset=darwin ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ build/feature.jam:466: in feature.validate-value-string from module feature error: "10.2" is not a known value of feature <macosx-version> error: legal values: "10.5" "10.4" "10.3" "iphone-2.0" "iphone-1.x" "iphonesim-2.0" ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ build/property.jam:274: in validate1 from module property ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ build/property.jam:299: in validate from module property ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ build/property.jam:308: in property.validate-property-sets from module property ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ build/toolset.jam:151: in flags from module toolset ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ tools/darwin.jam:227: in init-available-sdk-versions from module darwin ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ tools/darwin.jam:178: in darwin.init from module darwin ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ build/toolset.jam:38: in toolset.using from module toolset ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ build-system.jam:434: in process-explicit-toolset-requests from module build-system ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ build-system.jam:513: in load from module build-system ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ example/../kernel/modules.jam:281: in import from module modules ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ example/../kernel/bootstrap.jam:128: in boost-build from module ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ example/boost-build.jam:6: in module scope from module //================================= (Home directory sanitized to "~" for my protection.) Am I missing something in user-config.jam? -- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com

Daryle Walker wrote:
OK, I tried Boost.Build out:
1. Since I'm loading from SVN, I'm have to make sure bjam is always generated after an update. I have this in a shell script:
//================================= MY_HOME=~ MY_PROGRAMMING="$MY_HOME"/Documents/Programming MY_BOOST="$MY_PROGRAMMING"/Boost MY_BOOST_SVN="$MY_BOOST"/main-svn/boost-trunk
echo "Updating Boost Main SVN" cd "$MY_BOOST_SVN" svn update echo "Rebuilding Boost.Jam for SVN" cd "$MY_BOOST_SVN"/tools/jam/src sh ./build.sh cp bin.macosxppc/bjam "$MY_HOME"/bin/bjam-svn rm -rf bootstrap rm -rf bin.macosxppc //=================================
Is there a better way to do this? Is making the final executable be named "bjam-svn" bad? Calling "bjam-svn --version" gets me "Boost.Build V2 (Milestone 12) Boost.Jam 03.1.17" (on two lines). It properly uses the "darwin" toolset when building.
This looks fine. I'm not sure about "better" way -- if this one works, then it works.
2. I put $MY_BOOST down as my $BOOST_BUILD_PATH, so I wouldn't have to put the *-config.jam files in my home directory. My copies of the latest Boost download and the subversion repository are also in this directory. Will that mess anything up? What's the "site-config.jam" file for anyway? Only one line was uncommented in "user-config.jam", the "using gcc ;" line. Is this suitable for a Mac OS X (10.4.11) system?
No, you need "darwin" as tools.
daryle[hello]$ bjam-svn toolset=darwin ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ build/feature.jam:466: in feature.validate-value-string from module feature error: "10.2" is not a known value of feature <macosx-version>
Oh, you actually have 10.2 SDK installed? Can you "svn up" and try again? - Volodya

On Jul 6, 2008, at 7:35 AM, Vladimir Prus wrote:
Daryle Walker wrote:
OK, I tried Boost.Build out:
1. Since I'm loading from SVN, I'm have to make sure bjam is always generated after an update. I have this in a shell script:
//================================= MY_HOME=~ MY_PROGRAMMING="$MY_HOME"/Documents/Programming MY_BOOST="$MY_PROGRAMMING"/Boost MY_BOOST_SVN="$MY_BOOST"/main-svn/boost-trunk
echo "Updating Boost Main SVN" cd "$MY_BOOST_SVN" svn update echo "Rebuilding Boost.Jam for SVN" cd "$MY_BOOST_SVN"/tools/jam/src sh ./build.sh cp bin.macosxppc/bjam "$MY_HOME"/bin/bjam-svn rm -rf bootstrap rm -rf bin.macosxppc //=================================
Is there a better way to do this? Is making the final executable be named "bjam-svn" bad? Calling "bjam-svn --version" gets me "Boost.Build V2 (Milestone 12) Boost.Jam 03.1.17" (on two lines). It properly uses the "darwin" toolset when building.
This looks fine. I'm not sure about "better" way -- if this one works, then it works.
But I don't think Boost.Jam gets updated that often, but I'm building each time (and cleaning afterwards). I wonder if there's a way to use "svn info --xml" to get the date of the last Boost.Jam repository update, do some comparisons, and use that to activate the need for a rebuild. (My scripting skills are minimal.)
2. I put $MY_BOOST down as my $BOOST_BUILD_PATH, so I wouldn't have to put the *-config.jam files in my home directory. My copies of the latest Boost download and the subversion repository are also in this directory. Will that mess anything up? What's the "site-config.jam" file for anyway? Only one line was uncommented in "user-config.jam", the "using gcc ;" line. Is this suitable for a Mac OS X (10.4.11) system?
No, you need "darwin" as tools.
Do you mean changing the "using gcc ;" line to "using gcc : : : <linker-type>darwin ;"? But doing "bjam-svn --help gcc.init" makes it seems that the "linker-type" should have been chosen by default? .. Hmm, doing that change made it work! However, I got a help message from doing "bjam-svn --help darwin.init" too. Does this mean I should add a "using darwin ;" line in my user-config.jam? Would that line complement or replace the current GCC line?
daryle[hello]$ bjam-svn toolset=darwin ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ build/feature.jam:466: in feature.validate-value-string from module feature error: "10.2" is not a known value of feature <macosx-version>
Oh, you actually have 10.2 SDK installed? Can you "svn up" and try again?
Building the Hello example after my last SVN update didn't change anything. Are you assuming that I'm actively using the 10.2 SDK? I'm not, but... ..I have all of the SDKs I can support. I'm on a Mac OS X 10.4 (PowerPC) system. The versions of XCode that my OS supports can retain multiple SDKs. Besides the native 10.4 (Universal) SDK, I also have the SDKs for 10.3.9, 10.2.8, and the super secret 10.1(.5?) [1] loaded. So far, I've only used the native 10.4 one. Boost.Build must be able to deal with the presence of multiple SDKs, and (generally) pick the latest; if it can't, then a bug report needs to be filed. I don't have a 10.5 system, but the setup has changed from what I've read. The version of xcode that come with 10.5, xcode 3.0, made a clean break from sub-10.5 systems; they will only build 10.5 programs. The last version of xcode for 10.4, xcode 2.5, is made to be loaded onto a 10.5 system (in a separate directory) to serve all sub-10.5 programming needs. [1] The sub-10.4 SDKs are targeted to the last free point-version of each line. There's no 10.0 SDK because 10.1 was a free upgrade from it. -- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com

Daryle Walker wrote:
Do you mean changing the "using gcc ;" line to "using gcc : : : <linker-type>darwin ;"?
No.
But doing "bjam-svn --help gcc.init" makes it seems that the "linker-type" should have been chosen by default?
..
Hmm, doing that change made it work! However, I got a help message from doing "bjam-svn --help darwin.init" too. Does this mean I should add a "using darwin ;" line in my user-config.jam?
Yes. The darwin.jam support the Xcode Apple GCC compilers, which is decidedly different than the stock GNU GCC compilers on MacOSX.
Would that line complement or replace the current GCC line?
If you are using *only* Xcode only use the darwin toolset.
Building the Hello example after my last SVN update didn't change anything. Are you assuming that I'm actively using the 10.2 SDK? I'm not, but...
Not really assuming. It's just that we have a fixed list of SDK versions. And I didn't initially include 10.2, my mistake.
..I have all of the SDKs I can support. I'm on a Mac OS X 10.4 (PowerPC) system. The versions of XCode that my OS supports can retain multiple SDKs. Besides the native 10.4 (Universal) SDK, I also have the SDKs for 10.3.9, 10.2.8, and the super secret 10.1(.5?)[1] loaded. So far, I've only used the native 10.4 one. Boost.Build must be able to deal with the presence of multiple SDKs, and (generally) pick the latest; if it can't, then a bug report needs to be filed.
It does, and it automatically detects which ones you have. But you have more SDKs than is usual. I haven't heard of anyone still mucking about with 10.1. Heck, I don't even know where you can download the thing. -- -- Grafik - Don't Assume Anything -- Redshift Software, Inc. - http://redshift-software.com -- rrivera/acm.org (msn) - grafik/redshift-software.com -- 102708583/icq - grafikrobot/aim,yahoo,skype,efnet,gmail

On Jul 6, 2008, at 10:30 PM, Rene Rivera wrote:
Daryle Walker wrote:
Do you mean changing the "using gcc ;" line to "using gcc : : : <linker-type>darwin ;"?
No.
But doing "bjam-svn --help gcc.init" makes it seems that the "linker-type" should have been chosen by default? .. Hmm, doing that change made it work! However, I got a help message from doing "bjam-svn --help darwin.init" too. Does this mean I should add a "using darwin ;" line in my user-config.jam?
Yes. The darwin.jam support the Xcode Apple GCC compilers, which is decidedly different than the stock GNU GCC compilers on MacOSX.
Would that line complement or replace the current GCC line?
If you are using *only* Xcode only use the darwin toolset.
Before reading this, I tried building with the configuration described in my last message in the Boost.Integer test directory. It failed like this: //======================================== daryle[hello]$ bin/gcc-4.0.1/debug/hello Hello! daryle[hello]$ rm -rf bin daryle[hello]$ cd ../../../../../ daryle[boost-trunk]$ cd libs/integer daryle[integer]$ cd test daryle[test]$ ls Jamfile.v2 integer_test.cpp static_min_max_test.cpp cstdint_test.cpp integer_traits_test.cpp integer_mask_test.cpp static_log2_test.cpp daryle[test]$ bjam-svn warning: Graph library does not contain optional GraphML reader. note: to enable GraphML support, set EXPAT_INCLUDE and EXPAT_LIBPATH to the note: directories containing the Expat headers and libraries, respectively. warning: skipping optional Message Passing Interface (MPI) library. note: to enable MPI support, add "using mpi ;" to user-config.jam. note: to suppress this message, pass "--without-mpi" to bjam. note: otherwise, you can safely ignore this message. Building Boost.Regex with the optional Unicode/ICU support disabled. Please refer to the Boost.Regex documentation for more information (don't panic: this is a strictly optional feature). warning: No toolsets are configured. warning: Configuring default toolset "gcc". warning: If the default is wrong, your build may not work correctly. warning: Use the "--toolset=xxxxx" option to override our guess. warning: For more configuration options, please consult warning: http://boost.org/boost-build2/doc/html/bbv2/advanced/ configuration.html ..patience... ..found 648 targets... ..updating 70 targets... MkDir1 ../../../bin.v2 MkDir1 ../../../bin.v2/libs MkDir1 ../../../bin.v2/libs/integer MkDir1 ../../../bin.v2/libs/integer/test MkDir1 ../../../bin.v2/libs/integer/test/cstdint_test.test MkDir1 ../../../bin.v2/libs/integer/test/cstdint_test.test/gcc-4.0.1 MkDir1 ../../../bin.v2/libs/integer/test/cstdint_test.test/gcc-4.0.1/ debug gcc.compile.c++ ../../../bin.v2/libs/integer/test/cstdint_test.test/ gcc-4.0.1/debug/cstdint_test.o cstdint_test.cpp: In function 'void integral_constant_type_check(T1, T2) [with T1 = unsigned char, T2 = unsigned int]': cstdint_test.cpp:146: instantiated from here cstdint_test.cpp:126: warning: comparison is always false due to limited range of data type cstdint_test.cpp: In function 'void integral_constant_type_check(T1, T2) [with T1 = short unsigned int, T2 = unsigned int]': cstdint_test.cpp:148: instantiated from here cstdint_test.cpp:126: warning: comparison is always false due to limited range of data type gcc.link ../../../bin.v2/libs/integer/test/cstdint_test.test/ gcc-4.0.1/debug/cstdint_test /usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: unknown flag: -- start-group collect2: ld returned 1 exit status "g++" -o "../../../bin.v2/libs/integer/test/cstdint_test.test/ gcc-4.0.1/debug/cstdint_test" -Wl,--start-group "../../../bin.v2/libs/ integer/test/cstdint_test.test/gcc-4.0.1/debug/cstdint_test.o" -Wl,- Bstatic -Wl,-Bdynamic -Wl,--end-group -g ..failed gcc.link ../../../bin.v2/libs/integer/test/ cstdint_test.test/gcc-4.0.1/debug/cstdint_test... ..skipped <p../../../bin.v2/libs/integer/test/cstdint_test.test/ gcc-4.0.1/debug>cstdint_test.run for lack of <p../../../bin.v2/libs/ integer/test/cstdint_test.test/gcc-4.0.1/debug>cstdint_test... MkDir1 ../../../bin.v2/libs/integer/test/integer_test.test MkDir1 ../../../bin.v2/libs/integer/test/integer_test.test/gcc-4.0.1 MkDir1 ../../../bin.v2/libs/integer/test/integer_test.test/gcc-4.0.1/ debug gcc.compile.c++ ../../../bin.v2/libs/integer/test/integer_test.test/ gcc-4.0.1/debug/integer_test.o gcc.link ../../../bin.v2/libs/integer/test/integer_test.test/ gcc-4.0.1/debug/integer_test /usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: unknown flag: -- start-group collect2: ld returned 1 exit status "g++" -o "../../../bin.v2/libs/integer/test/integer_test.test/ gcc-4.0.1/debug/integer_test" -Wl,--start-group "../../../bin.v2/libs/ integer/test/integer_test.test/gcc-4.0.1/debug/integer_test.o" -Wl,- Bstatic -Wl,-Bdynamic -Wl,--end-group -g ..failed gcc.link ../../../bin.v2/libs/integer/test/ integer_test.test/gcc-4.0.1/debug/integer_test... ..skipped <p../../../bin.v2/libs/integer/test/integer_test.test/ gcc-4.0.1/debug>integer_test.run for lack of <p../../../bin.v2/libs/ integer/test/integer_test.test/gcc-4.0.1/debug>integer_test... MkDir1 ../../../bin.v2/libs/integer/test/integer_traits_test.test MkDir1 ../../../bin.v2/libs/integer/test/integer_traits_test.test/ gcc-4.0.1 MkDir1 ../../../bin.v2/libs/integer/test/integer_traits_test.test/ gcc-4.0.1/debug gcc.compile.c++ ../../../bin.v2/libs/integer/test/ integer_traits_test.test/gcc-4.0.1/debug/integer_traits_test.o MkDir1 ../../../bin.v2/libs/test MkDir1 ../../../bin.v2/libs/test/build MkDir1 ../../../bin.v2/libs/test/build/gcc-4.0.1 MkDir1 ../../../bin.v2/libs/test/build/gcc-4.0.1/debug MkDir1 ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link-static gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/compiler_log_formatter.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/debug.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/execution_monitor.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/framework.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/plain_report_formatter.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/progress_monitor.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/results_collector.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/results_reporter.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/test_main.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/test_tools.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/unit_test_log.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/unit_test_main.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/unit_test_monitor.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/unit_test_parameters.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/unit_test_suite.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/xml_log_formatter.o gcc.compile.c++ ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/xml_report_formatter.o gcc.archive ../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link- static/libboost_test_exec_monitor-gcc40-d-1_36.a gcc.link ../../../bin.v2/libs/integer/test/integer_traits_test.test/ gcc-4.0.1/debug/integer_traits_test /usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: unknown flag: -- start-group collect2: ld returned 1 exit status "g++" -o "../../../bin.v2/libs/integer/test/ integer_traits_test.test/gcc-4.0.1/debug/integer_traits_test" -Wl,-- start-group "../../../bin.v2/libs/integer/test/ integer_traits_test.test/gcc-4.0.1/debug/integer_traits_test.o" "../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link-static/ libboost_test_exec_monitor-gcc40-d-1_36.a" -Wl,-Bstatic -Wl,- Bdynamic -Wl,--end-group -g ..failed gcc.link ../../../bin.v2/libs/integer/test/ integer_traits_test.test/gcc-4.0.1/debug/integer_traits_test... ..skipped <p../../../bin.v2/libs/integer/test/ integer_traits_test.test/gcc-4.0.1/debug>integer_traits_test.run for lack of <p../../../bin.v2/libs/integer/test/integer_traits_test.test/ gcc-4.0.1/debug>integer_traits_test... MkDir1 ../../../bin.v2/libs/integer/test/integer_mask_test.test MkDir1 ../../../bin.v2/libs/integer/test/integer_mask_test.test/ gcc-4.0.1 MkDir1 ../../../bin.v2/libs/integer/test/integer_mask_test.test/ gcc-4.0.1/debug gcc.compile.c++ ../../../bin.v2/libs/integer/test/ integer_mask_test.test/gcc-4.0.1/debug/integer_mask_test.o integer_mask_test.cpp: In function 'int test_main(int, char**)': integer_mask_test.cpp:77: warning: left shift count >= width of type integer_mask_test.cpp:77: warning: left shift count >= width of type gcc.link ../../../bin.v2/libs/integer/test/integer_mask_test.test/ gcc-4.0.1/debug/integer_mask_test /usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: unknown flag: -- start-group collect2: ld returned 1 exit status "g++" -o "../../../bin.v2/libs/integer/test/ integer_mask_test.test/gcc-4.0.1/debug/integer_mask_test" -Wl,--start- group "../../../bin.v2/libs/integer/test/integer_mask_test.test/ gcc-4.0.1/debug/integer_mask_test.o" "../../../bin.v2/libs/test/build/ gcc-4.0.1/debug/link-static/libboost_test_exec_monitor-gcc40- d-1_36.a" -Wl,-Bstatic -Wl,-Bdynamic -Wl,--end-group -g ..failed gcc.link ../../../bin.v2/libs/integer/test/ integer_mask_test.test/gcc-4.0.1/debug/integer_mask_test... ..skipped <p../../../bin.v2/libs/integer/test/integer_mask_test.test/ gcc-4.0.1/debug>integer_mask_test.run for lack of <p../../../bin.v2/ libs/integer/test/integer_mask_test.test/gcc-4.0.1/ debug>integer_mask_test... MkDir1 ../../../bin.v2/libs/integer/test/static_log2_test.test MkDir1 ../../../bin.v2/libs/integer/test/static_log2_test.test/gcc-4.0.1 MkDir1 ../../../bin.v2/libs/integer/test/static_log2_test.test/ gcc-4.0.1/debug gcc.compile.c++ ../../../bin.v2/libs/integer/test/ static_log2_test.test/gcc-4.0.1/debug/static_log2_test.o gcc.link ../../../bin.v2/libs/integer/test/static_log2_test.test/ gcc-4.0.1/debug/static_log2_test /usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: unknown flag: -- start-group collect2: ld returned 1 exit status "g++" -o "../../../bin.v2/libs/integer/test/ static_log2_test.test/gcc-4.0.1/debug/static_log2_test" -Wl,--start- group "../../../bin.v2/libs/integer/test/static_log2_test.test/ gcc-4.0.1/debug/static_log2_test.o" "../../../bin.v2/libs/test/build/ gcc-4.0.1/debug/link-static/libboost_test_exec_monitor-gcc40- d-1_36.a" -Wl,-Bstatic -Wl,-Bdynamic -Wl,--end-group -g ..failed gcc.link ../../../bin.v2/libs/integer/test/ static_log2_test.test/gcc-4.0.1/debug/static_log2_test... ..skipped <p../../../bin.v2/libs/integer/test/static_log2_test.test/ gcc-4.0.1/debug>static_log2_test.run for lack of <p../../../bin.v2/ libs/integer/test/static_log2_test.test/gcc-4.0.1/ debug>static_log2_test... MkDir1 ../../../bin.v2/libs/integer/test/static_min_max_test.test MkDir1 ../../../bin.v2/libs/integer/test/static_min_max_test.test/ gcc-4.0.1 MkDir1 ../../../bin.v2/libs/integer/test/static_min_max_test.test/ gcc-4.0.1/debug gcc.compile.c++ ../../../bin.v2/libs/integer/test/ static_min_max_test.test/gcc-4.0.1/debug/static_min_max_test.o gcc.link ../../../bin.v2/libs/integer/test/static_min_max_test.test/ gcc-4.0.1/debug/static_min_max_test /usr/libexec/gcc/powerpc-apple-darwin8/4.0.1/ld: unknown flag: -- start-group collect2: ld returned 1 exit status "g++" -o "../../../bin.v2/libs/integer/test/ static_min_max_test.test/gcc-4.0.1/debug/static_min_max_test" -Wl,-- start-group "../../../bin.v2/libs/integer/test/ static_min_max_test.test/gcc-4.0.1/debug/static_min_max_test.o" "../../../bin.v2/libs/test/build/gcc-4.0.1/debug/link-static/ libboost_test_exec_monitor-gcc40-d-1_36.a" -Wl,-Bstatic -Wl,- Bdynamic -Wl,--end-group -g ..failed gcc.link ../../../bin.v2/libs/integer/test/ static_min_max_test.test/gcc-4.0.1/debug/static_min_max_test... ..skipped <p../../../bin.v2/libs/integer/test/ static_min_max_test.test/gcc-4.0.1/debug>static_min_max_test.run for lack of <p../../../bin.v2/libs/integer/test/static_min_max_test.test/ gcc-4.0.1/debug>static_min_max_test... ..failed updating 6 targets... ..skipped 12 targets... ..updated 52 targets... daryle[test]$ //======================================== It seems that it crapped out on not understanding "--start-group" again. Hmm, I'll put a "using darwin ;" line in my user-config.jam before the GCC line.... (I also added a "using mpi ;" line before the darwin line.) Nope, didn't work. I got the same results and errors. I even got the same warnings about Graph, MPI, Regex, and.... Woah, the warnings are saying that "No toolsets are configured". Why doesn't anything work here, but it did for the Hello example? Also, I ran "bjam-svn --clean-all" (and "bjam-svn --clean") between these two runs, to try a reset. The results of the second run weren't exactly the same. The results given here give 70 targets starting to update with 52 updated at the end. The second run reduced those numbers to 43 and 25, respectively. This means that my cleaning didn't get rid of 27 old targets. Why is that? (And how do I find them to clear them out? Doing "svn status" on "boost-trunk" didn't show any added files or directories.) You know, I just thought: if almost every Mac user is going to use Apple's special GCC, and almost never create programs with a generic GCC, why doesn't the Boost.Build documentation and example configuration files FULLY support Mac OS X out of the box? I shouldn't be struggling with this over a mailing list! In fact, I added ticket #2079 over this. (I tried to look for duplicates first, but Trac's group-bugs-by-library listing crashed. It automatically let me file a bug on _that_. That bug is ticket #2078.) Could we put a darwin case within the example "user-config.jam" file? BTW, I didn't create any of the libraries in advance; I don't know if that makes a difference.
Building the Hello example after my last SVN update didn't change anything. Are you assuming that I'm actively using the 10.2 SDK? I'm not, but...
Not really assuming. It's just that we have a fixed list of SDK versions. And I didn't initially include 10.2, my mistake.
..I have all of the SDKs I can support. I'm on a Mac OS X 10.4 (PowerPC) system. The versions of XCode that my OS supports can retain multiple SDKs. Besides the native 10.4 (Universal) SDK, I also have the SDKs for 10.3.9, 10.2.8, and the super secret 10.1(. 5?) loaded. So far, I've only used the native 10.4 one. Boost.Build must be able to deal with the presence of multiple SDKs, and (generally) pick the latest; if it can't, then a bug report needs to be filed.
It does, and it automatically detects which ones you have. But you have more SDKs than is usual. I haven't heard of anyone still mucking about with 10.1. Heck, I don't even know where you can download the thing.
I saw it once on some Apple web site or mailing list. (I'm not sure that I can find it again.) It does make a good worst-case scenario, though! -- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com

Daryle Walker wrote:
On Jul 6, 2008, at 7:35 AM, Vladimir Prus wrote:
Daryle Walker wrote:
OK, I tried Boost.Build out:
1. Since I'm loading from SVN, I'm have to make sure bjam is always generated after an update. I have this in a shell script:
//================================= MY_HOME=~ MY_PROGRAMMING="$MY_HOME"/Documents/Programming MY_BOOST="$MY_PROGRAMMING"/Boost MY_BOOST_SVN="$MY_BOOST"/main-svn/boost-trunk
echo "Updating Boost Main SVN" cd "$MY_BOOST_SVN" svn update echo "Rebuilding Boost.Jam for SVN" cd "$MY_BOOST_SVN"/tools/jam/src sh ./build.sh cp bin.macosxppc/bjam "$MY_HOME"/bin/bjam-svn rm -rf bootstrap rm -rf bin.macosxppc //=================================
Is there a better way to do this? Is making the final executable be named "bjam-svn" bad? Calling "bjam-svn --version" gets me "Boost.Build V2 (Milestone 12) Boost.Jam 03.1.17" (on two lines). It properly uses the "darwin" toolset when building.
This looks fine. I'm not sure about "better" way -- if this one works, then it works.
But I don't think Boost.Jam gets updated that often, but I'm building each time (and cleaning afterwards). I wonder if there's a way to use "svn info --xml" to get the date of the last Boost.Jam repository update, do some comparisons, and use that to activate the need for a rebuild. (My scripting skills are minimal.)
I don't think you need to bother, as building bjam takes about zero time. Furthermore, bjam is not changed very often, so you may use the last released version.
2. I put $MY_BOOST down as my $BOOST_BUILD_PATH, so I wouldn't have to put the *-config.jam files in my home directory. My copies of the latest Boost download and the subversion repository are also in this directory. Will that mess anything up? What's the "site-config.jam" file for anyway? Only one line was uncommented in "user-config.jam", the "using gcc ;" line. Is this suitable for a Mac OS X (10.4.11) system?
No, you need "darwin" as tools.
Do you mean changing the "using gcc ;" line to "using gcc : : : <linker-type>darwin ;"? But doing "bjam-svn --help gcc.init" makes it seems that the "linker-type" should have been chosen by default?
No, I mean "using darwin ; "
Hmm, doing that change made it work! However, I got a help message from doing "bjam-svn --help darwin.init" too. Does this mean I should add a "using darwin ;" line in my user-config.jam? Would that line complement or replace the current GCC line?
The version of gcc provided by apple goes by the name 'darwnin'. You'd need 'gcc' toolset only if you have a FSF gcc somewhere.
daryle[hello]$ bjam-svn toolset=darwin ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ build/feature.jam:466: in feature.validate-value-string from module feature error: "10.2" is not a known value of feature <macosx-version>
Oh, you actually have 10.2 SDK installed? Can you "svn up" and try again?
Building the Hello example after my last SVN update didn't change anything.
Is the error message *exactly* the same? Or it now complains about 10.1?
Are you assuming that I'm actively using the 10.2 SDK? I'm not, but...
..I have all of the SDKs I can support. I'm on a Mac OS X 10.4 (PowerPC) system. The versions of XCode that my OS supports can retain multiple SDKs. Besides the native 10.4 (Universal) SDK, I also have the SDKs for 10.3.9, 10.2.8, and the super secret 10.1(.5?)
Oh, you have 10.1 too? Please update, make sure tools/build/v2/tools/darwin.jam is of revision 47164 and try again. - Volodya

[I tried to send this out an hour ago, but I sent it through the wrong e-mail address. That ended up being a good thing since I fixed the problem!] On Jul 7, 2008, at 12:15 AM, Vladimir Prus wrote:
Daryle Walker wrote:
On Jul 6, 2008, at 7:35 AM, Vladimir Prus wrote:
Daryle Walker wrote:
OK, I tried Boost.Build out: [SNIP] 2. I put $MY_BOOST down as my $BOOST_BUILD_PATH, so I wouldn't have to put the *-config.jam files in my home directory. My copies of the latest Boost download and the subversion repository are also in this directory. Will that mess anything up? What's the "site- config.jam" file for anyway? Only one line was uncommented in "user- config.jam", the "using gcc ;" line. Is this suitable for a Mac OS X (10.4.11) system?
No, you need "darwin" as tools.
Do you mean changing the "using gcc ;" line to "using gcc : : : <linker-type>darwin ;"? But doing "bjam-svn --help gcc.init" makes it seems that the "linker-type" should have been chosen by default?
No, I mean "using darwin ; "
Rene also sent a response to my last e-mail, I've changed my file to add a "using darwin ;" line. Since reading this letter,...
Hmm, doing that change made it work! However, I got a help message from doing "bjam-svn --help darwin.init" too. Does this mean I should add a "using darwin ;" line in my user-config.jam? Would that line complement or replace the current GCC line?
The version of gcc provided by apple goes by the name 'darwnin'. You'd need 'gcc' toolset only if you have a FSF gcc somewhere.
..I've commented out the GCC line.
daryle[hello]$ bjam-svn toolset=darwin ~/Documents/Programming/Boost/main-svn/boost-trunk/tools/build/v2/ build/feature.jam:466: in feature.validate-value-string from module feature error: "10.2" is not a known value of feature <macosx-version>
Oh, you actually have 10.2 SDK installed? Can you "svn up" and try again?
Building the Hello example after my last SVN update didn't change anything.
Is the error message *exactly* the same? Or it now complains about 10.1?
I don't think it did, but I had to reset my computer between runs.
Are you assuming that I'm actively using the 10.2 SDK? I'm not, but...
..I have all of the SDKs I can support. I'm on a Mac OS X 10.4 (PowerPC) system. The versions of XCode that my OS supports can retain multiple SDKs. Besides the native 10.4 (Universal) SDK, I also have the SDKs for 10.3.9, 10.2.8, and the super secret 10.1(.5?)
Oh, you have 10.1 too? Please update, make sure tools/build/v2/ tools/darwin.jam is of revision 47164 and try again.
OK, I did another update and have revision 47170. Going to the Boost.Integer test directory and running bjam.... Nope, the same failure results that I posted in response to Rene, except that the number of updat(ing|ed) targets has reduced by one to 42 & 24, respectively. Hmm, I added the "using mpi ;" line to my user- config.jam, but I still get warnings about it. That and the fact that the warnings also complain about that there's no toolset configured makes me think that my configuration file is being ignored. Let's see what happens when I retry my (seemingly) successful Hello example again: //===================================== daryle[hello]$ ls Jamroot hello.cpp daryle[hello]$ bjam-svn MPI auto-detection failed: unknown wrapper compiler mpic++ Please report this error to the Boost mailing list: http://www.boost.org You will need to manually configure MPI support. ..found 9 targets... ..updating 5 targets... MkDir1 bin MkDir1 bin/darwin-4.0.1 MkDir1 bin/darwin-4.0.1/debug darwin.compile.c++ bin/darwin-4.0.1/debug/hello.o darwin.link bin/darwin-4.0.1/debug/hello ..updated 5 targets... daryle[hello]$ //===================================== Here, it paid attention to the MPI line I put in the file. (Of course, since it doesn't work, that means that I have a new problem now....) And the "hello" program works! Why isn't the regular case reading my configuration file? POST-MAIL-SCREW-UP ADDENDUM: I got it to work. The warnings about no configuration triggered something. I recalled that I put my user-config.jam file in my general Boost directory and used the $BOOST_BUILD_PATH shell variable to let bjam know where the file is. It is an alternative to putting the configuration file in my home directory. (I used to have it there in a previous attempt.) As soon as I put a soft-link to user-config.jam in my home directory, the Boost.Integer tests worked! This isn't good, though. The BOOST_BUILD_PATH method worked just fine for the Hello example. This means that the Boost.Integer test Jamfile, or one of the Jam-files above it in the hierarchy, broke the BOOST_BUILD_PATH capability. Can you check the Boost.Integer test file to make sure that's not the problem? If it is, let me know how to fix it. Otherwise, I'll leave the hierarchical file problem to you. (I made a copy of this problem as ticket #2082.) -- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT mac DOT com
participants (3)
-
Daryle Walker
-
Rene Rivera
-
Vladimir Prus