make 18.limits.traps linker errors due to bad library order
-----------------------------------------------------------
Key: STDCXX-354
URL: https://issues.apache.org/jira/browse/STDCXX-354
Project: C++ Standard Library
Issue Type: Bug
Components: Tests
Affects Versions: 4.1.3
Environment: all
Reporter: Martin Sebor
Tests such 18.limits.traps fail to link when make is invoked explicitly with
their name as a target because make places the stdcxx library before the object
file in the rule. Notice the command attempts to both compile and link the
target.
$ make 18.limits.traps
gcc -pedantic -nostdinc++ -g -Wall -W -Wcast-qual -Winline -Wshadow
-Wwrite-strings -Wno-long-long -I/build/sebor/stdcxx-4.1.3/include/ansi
-D_RWSTDDEBUG -D_RWSTD_USE_CONFIG
-I/build/sebor/stdcxx-4.1.3-gcc-4.1.0-11s/include
-I/build/sebor/stdcxx-4.1.3/include -I/build/sebor/stdcxx-4.1.3/../rwtest
-I/build/sebor/stdcxx-4.1.3/../rwtest/include
-I/build/sebor/stdcxx-4.1.3/tests/include
-L/build/sebor/stdcxx-4.1.3-gcc-4.1.0-11s/rwtest -lrwtest11s
-L/build/sebor/stdcxx-4.1.3-gcc-4.1.0-11s/lib -lstd11s
/build/sebor/stdcxx-4.1.3/tests/support/18.limits.traps.cpp
/build/sebor/stdcxx-4.1.3-gcc-4.1.0-11s/lib/libstd11s.a
/build/sebor/stdcxx-4.1.3-gcc-4.1.0-11s/rwtest/librwtest11s.a -lsupc++ -lm -o
18.limits.traps
/build/sebor/stdcxx-4.1.3-gcc-4.1.0-11s/rwtest/librwtest11s.a(printf.o): In
function `_rw_fmtstr':
/build/sebor/stdcxx-4.1.3/tests/src/printf.cpp:2497: undefined reference to
`__rw::__rw_memattr(void const*, unsigned int, int)'
/build/sebor/stdcxx-4.1.3-gcc-4.1.0-11s/rwtest/librwtest11s.a(printf.o): In
function `libstd_vasnprintf':
/build/sebor/stdcxx-4.1.3/tests/src/printf.cpp:3169: undefined reference to
`std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t>
>::data() const'
/build/sebor/stdcxx-4.1.3/tests/src/printf.cpp:3170: undefined reference to
`std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t>
>::size() const'
/build/sebor/stdcxx-4.1.3/tests/src/printf.cpp:3178: undefined reference to
`std::basic_string<char, std::char_traits<char>, std::allocator<char> >::data()
const'
/build/sebor/stdcxx-4.1.3/tests/src/printf.cpp:3179: undefined reference to
`std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size()
const'
/build/sebor/stdcxx-4.1.3-gcc-4.1.0-11s/rwtest/librwtest11s.a(printf.o): In
function `__static_initialization_and_destruction_0':
/build/sebor/stdcxx-4.1.3/include/iostream:39: undefined reference to
`std::ios_base::Init::Init()'
/build/sebor/stdcxx-4.1.3/include/iostream:39: undefined reference to
`std::ios_base::Init::~Init()'
/build/sebor/stdcxx-4.1.3-gcc-4.1.0-11s/rwtest/librwtest11s.a(printf.o): In
function `_rw_vasnprintf_c99':
/build/sebor/stdcxx-4.1.3/tests/src/printf.cpp:520: undefined reference to
`__rw::__rw_assert_fail(char const*, char const*, int, char const*)'
/build/sebor/stdcxx-4.1.3-gcc-4.1.0-11s/rwtest/librwtest11s.a(printf.o): In
function `int rw_quotestr<unsigned char>(FmtSpec const&, char**, unsigned int*,
unsigned char const*, unsigned int, int)':
/build/sebor/stdcxx-4.1.3/tests/src/printf.cpp:2297: undefined reference to
`__rw::__rw_memattr(void const*, unsigned int, int)'
/build/sebor/stdcxx-4.1.3-gcc-4.1.0-11s/rwtest/librwtest11s.a(printf.o): In
function `int rw_quotestr<unsigned short>(FmtSpec const&, char**, unsigned
int*, unsigned short const*, unsigned int, int)':
/build/sebor/stdcxx-4.1.3/tests/src/printf.cpp:2297: undefined reference to
`__rw::__rw_memattr(void const*, unsigned int, int)'
/build/sebor/stdcxx-4.1.3-gcc-4.1.0-11s/rwtest/librwtest11s.a(printf.o): In
function `int rw_quotestr<unsigned int>(FmtSpec const&, char**, unsigned int*,
unsigned int const*, unsigned int, int)':
/build/sebor/stdcxx-4.1.3/tests/src/printf.cpp:2297: undefined reference to
`__rw::__rw_memattr(void const*, unsigned int, int)'
/build/sebor/stdcxx-4.1.3-gcc-4.1.0-11s/rwtest/librwtest11s.a(printf.o): In
function `int rw_quotestr<unsigned long long>(FmtSpec const&, char**, unsigned
int*, unsigned long long const*, unsigned int, int)':
/build/sebor/stdcxx-4.1.3/tests/src/printf.cpp:2297: undefined reference to
`__rw::__rw_memattr(void const*, unsigned int, int)'
/build/sebor/stdcxx-4.1.3-gcc-4.1.0-11s/rwtest/librwtest11s.a(printf.o): In
function `int rw_quotestr<wchar_t>(FmtSpec const&, char**, unsigned int*,
wchar_t const*, unsigned int, int)':
/build/sebor/stdcxx-4.1.3/tests/src/printf.cpp:2297: undefined reference to
`__rw::__rw_memattr(void const*, unsigned int, int)'
/build/sebor/stdcxx-4.1.3-gcc-4.1.0-11s/rwtest/librwtest11s.a(printf.o):/build/sebor/stdcxx-4.1.3/tests/src/printf.cpp:2297:
more undefined references to `__rw::__rw_memattr(void const*, unsigned int,
int)' follow
collect2: ld returned 1 exit status
make: *** [18.limits.traps] Error 1
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.