Bug 1153

Summary: Buildroot fails to build packages if BR2_GCC_SHARED_LIBGCC=y
Product: buildroot Reporter: Andy Kennedy <andy.kennedy>
Component: OtherAssignee: unassigned
Status: RESOLVED WORKSFORME    
Severity: major CC: buildroot
Priority: P2 Keywords: link-failure
Version: unspecified   
Target Milestone: 2010.02   
Hardware: PC   
OS: Linux   
Host: i686 Target: ARM
Build:
Attachments: Config file for building an NFS buildroot for development purposes.

Description Andy Kennedy 2010-02-19 15:58:58 UTC
Created attachment 1153 [details]
Config file for building an NFS buildroot for development purposes.

The config file attached has left off these two, but these were giving me errors as well:

docker
xstroke

These would NOT compile unless BR2_GCC_SHARED_LIBGCC is not set:
uemacs
nano
vim

The error was undefined hidden symbol in libgcc.a(xxxxxxx.o)  '__xxxxx()' referenced by DSO.

The xxx was different for each of these (I attempted to compile each with a shared libgcc) but seemed to center on references to g_printerr, g_print, g_slist_length, g_malloc0, g_free, g_slist_append, g_slist_Remove_link, and g_strdup_printf.  These seem to be calling functions from the EABI as some were like ul_div32_helper() -- though some were not referred to as EABI but AABI, which greatly confuse me.

It appeared that the source of the problem was in glib2, but I cannot verify this and could not locate any way around this issue.

My gut tells me that linking libgcc.a in statically is "bad" and I prefer not to do that, but I'm in a bit over my head with where the problem is.
Comment 1 Andy Kennedy 2010-02-19 16:49:59 UTC
Oh, forgot to mention that the build I'm working with is a snapshot of 20100129.
Comment 2 Andy Kennedy 2010-02-24 18:11:11 UTC
After shutting down my computer over the weekend, and then attempting to build again today, the build was successful.  This must mean that, after the many attempts to build the system, I had an environmental variable set that was mucking around with the build.  I'm closing this issue for now, but I will attempt the build again today to see if it still works (If it fails, I'll reopen with an env dump).

-- This makes me feel all dirty, like working with Windows.
Comment 3 busybox 2013-09-23 10:07:03 UTC
I just want to let everybody know what might be the source of this problem.

undefined hidden symbol in libgcc.a(xxxxxxx.o)  '__xxxxx()' referenced by DSO.

These kind of errors are usually due to libgcc.a not being linked into a library. So when creating a library that process went wrong.
If you delete the specific library so that Buildroot (usually) re-creates them, you have a good chance that the build will succeed.

These undefined hidden symbol errors happen to me in Buildroot 2009.11 when I build the util-linux package until I delete statging/usr/lib/libncurses.so.5.6 before building.

I know this does not exactly track down the problem but might still be an important info of what to look for.
Comment 4 Thomas Petazzoni 2013-09-23 13:18:13 UTC
When you change some toolchain settings, do you always do a complete "make clean && make" ?