Opened 13 years ago
Last modified 13 years ago
#8093 closed bug
Haiku build system using system libstdc++.so on Haiku — at Initial Version
Reported by: | leavengood | Owned by: | bonefish |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | Build System | Version: | R1/Development |
Keywords: | libstdc++ | Cc: | |
Blocked By: | Blocking: | ||
Platform: | x86 |
Description
I'm on a pure GCC4 Haiku. I'm not sure if that affects this issue though. The revision is hrev41768.
My Haiku source is completely up-to-date though, at hrev43193.
I compiled and installed the latest GCC4 (4.5.3), where I had previously had 4.4.4. I set 4.5.3 as the current GCC. I reconfigured my Haiku source directory to make sure it was using the latest GCC.
When building the notification_server, I received this error:
Link /Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/servers/notification/notification_server /Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/servers/notification/NotificationView.o: In function `NotificationView::SetText(float)': NotificationView.cpp:(.text+0x114a): undefined reference to `std::_List_node_base::_M_hook(std::_List_node_base*)' NotificationView.cpp:(.text+0x135d): undefined reference to `std::_List_node_base::_M_hook(std::_List_node_base*)' collect2: ld returned 1 exit status rm -f "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/servers/notification/notification_server" gcc -fno-strict-aliasing -fno-tree-vrp -Xlinker --no-undefined -Xlinker -soname=_APP_ -nostdlib -Xlinker --no-undefined -o "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/servers/notification/notification_server" "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/system/glue/arch/x86/crti.o" "/boot/develop/abi/x86/gcc4/tools/gcc-4.5.3-haiku-111101/lib/gcc/i586-pc-haiku/4.5.3/crtbegin.o" "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/system/glue/start_dyn.o" "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/system/glue/init_term_dyn.o" "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/servers/notification/AppGroupView.o" "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/servers/notification/NotificationServer.o" "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/servers/notification/NotificationView.o" "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/servers/notification/NotificationWindow.o" \ "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/kits/libbe.so" "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/debug_1/kits/translation/libtranslation.so" "/boot/system/lib/libstdc++.so" "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/servers/notification/libnotification.a" "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/kits/locale/liblocale.so" "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/kits/locale/liblocalestub.a" "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/system/libroot/libroot.so" "/boot/develop/abi/x86/gcc4/tools/gcc-4.5.3-haiku-111101/lib/gcc/i586-pc-haiku/4.5.3/crtend.o" "/Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/system/glue/arch/x86/crtn.o" \ ...failed Link /Data/develop/haiku_svn/trunk/generated-gcc4/objects/haiku/x86/release/servers/notification/notification_server ... BUILD FAILURE: ...failed updating 1 target(s)... ...updated 4 target(s)...
Searching Google showed me someone else had run into this issue with GCC 4.5 (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43882), and in his case it was due to compiling with GCC 4.5 but linking against a system libstdc++.so. If you look at the link line above, you can see it is using /boot/system/lib/libstdc++.so.
So it seems we have the same problem. When I updated my system libstdc++.so with the one from GCC 4.5.3, the code linked fine.
Now maybe my situation is unusual bit it seems like the build system should make use of the libstdc++.so from the GCC it is building with, not from the system. Even if the system is Haiku.