Hi,
I'm having an issue to link a boost unit test application on a Linux
box, which is 64 bit - but I want to create a 32 bit application.
I saw the following bug report: https://svn.boost.org/trac/boost/ticket/2525
and applied to patches attached, but to no avail. I also tried the
latest svn trunk of boost, but still no luck.
I'm trying to compile & link the following simple sample app:
#include
using namespace boost::unit_test;
test_suite *
init_unit_test_suite(int, char ** const) {
test_suite *ts = BOOST_TEST_SUITE("test_suite");
framework::master_test_suite().add(ts);
return 0;
}
I get the following results:
$ make tests
g++ -m32 -L/home/maroy/src/tyrell/src/darksweep/usr/lib
-I/home/maroy/src/tyrell/src/darksweep/usr/include/boost-1_39 -o tests
tests.cpp -lboost_test_exec_monitor-gcc43-mt-s
-lboost_unit_test_framework-gcc43-mt-s
/home/maroy/src/tyrell/src/darksweep/usr/lib/libboost_test_exec_monitor-gcc43-mt-s.a(framework.o):
In function
`boost::unit_test::framework::register_test_unit(boost::unit_test::test_suite*)':
framework.cpp:(.text+0x4a4): undefined reference to `__sync_fetch_and_add_4'
/home/maroy/src/tyrell/src/darksweep/usr/lib/libboost_test_exec_monitor-gcc43-mt-s.a(framework.o):
In function
`boost::unit_test::framework::register_test_unit(boost::unit_test::test_case*)':
framework.cpp:(.text+0x648): undefined reference to `__sync_fetch_and_add_4'
framework.cpp:(.text+0x713): undefined reference to `__sync_fetch_and_add_4'
/home/maroy/src/tyrell/src/darksweep/usr/lib/libboost_test_exec_monitor-gcc43-mt-s.a(framework.o):
In function `boost::unit_test::framework::get(unsigned long,
boost::unit_test::test_unit_type)':
framework.cpp:(.text+0x14fb): undefined reference to
`__sync_fetch_and_add_4'
/home/maroy/src/tyrell/src/darksweep/usr/lib/libboost_test_exec_monitor-gcc43-mt-s.a(framework.o):
In function `boost::unit_test::framework::run(unsigned long, bool)':
framework.cpp:(.text+0x3151): undefined reference to
`__sync_fetch_and_add_4'
/home/maroy/src/tyrell/src/darksweep/usr/lib/libboost_test_exec_monitor-gcc43-mt-s.a(framework.o):framework.cpp:(.text._ZN5boost9unit_test9framework11setup_errorC1ENS0_13basic_cstringIKcEE[boost::unit_test::framework::setup_error::setup_error(boost::unit_test::basic_cstring<char
const>)]+0x5c): more undefined references to `__sync_fetch_and_add_4' follow
collect2: ld returned 1 exit status
make: *** [tests] Error 1
I compiled boost using the following command:
bjam architecture=x86 address-model=32 link=static runtime-link=static
--prefix=../../usr --includedir=../../usr/include --libdir=../../usr/lib
install
I have the following:
$ g++ --version
g++ (Ubuntu 4.3.2-1ubuntu12) 4.3.2
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ uname -a
Linux tomodachi 2.6.27-11-generic #1 SMP Wed Apr 1 20:53:41 UTC 2009
x86_64 GNU/Linux
(basically Ubuntu 8.10 64 bit)
am I doing something wrong?