[haiku-bugs] Re: [Haiku] #8093: Haiku build system using system libstdc++.so on Haiku

  • From: "leavengood" <trac@xxxxxxxxxxxx>
  • Date: Sun, 06 Nov 2011 00:41:56 -0000

#8093: Haiku build system using system libstdc++.so on Haiku
----------------------------+----------------------------
   Reporter:  leavengood    |      Owner:  bonefish
       Type:  bug           |     Status:  new
   Priority:  normal        |  Milestone:  R1
  Component:  Build System  |    Version:  R1/Development
 Resolution:                |   Keywords:  libstdc++
 Blocked By:                |   Blocking:
Has a Patch:  0             |   Platform:  x86
----------------------------+----------------------------
Description changed by leavengood:

Old description:

> I'm on a pure GCC4 Haiku. I'm not sure if that affects this issue though.
> The revision is r41768.
>
> My Haiku source is completely up-to-date though, at r43193.
>
> 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.

New description:

 I'm on a pure GCC4 Haiku. I'm not sure if that affects this issue though.
 The revision is r41768.

 My Haiku source is completely up-to-date though, at r43193.

 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 but 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.

--

-- 
Ticket URL: <http://dev.haiku-os.org/ticket/8093#comment:1>
Haiku <http://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: