[ https://issues.apache.org/jira/browse/STDCXX-354?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Sebor closed STDCXX-354. ------------------------------- Resolution: Fixed Fix Version/s: 4.2 > 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 > Assigned To: Martin Sebor > Fix For: 4.2 > > Attachments: stdcxx-354.patch > > > 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.