Boost logo

Boost :

From: Daryle Walker (darylew_at_[hidden])
Date: 2008-07-07 02:54:23


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

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk