| Summary: | Broken binutils build for arm uclibc | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Dmitriy Falko <d.falko.work> |
| Component: | devtools / tool chain | Assignee: | Khem Raj <raj.khem> |
| Status: | RESOLVED MOVED | QA Contact: | |
| Severity: | normal | ||
| Priority: | Low | CC: | meta.mr.watcher, meta.watcher |
| Version: | 2.1 | ||
| Target Milestone: | 2.2 | ||
| Hardware: | Other | ||
| OS: | arm | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | --- |
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |
|
Description
Dmitriy Falko
2016-06-15 11:38:54 UTC
obstack enabled in uclibc UCLIBC_HAS_OBSTACK=y but binutils can't find _obstack_free from libiberty/obstack.c nm -g obstack.o(exported functions) is empty. from libiberty/obstack.c: Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself, and the installed library supports the same library interface we do. This code is part of the GNU C Library, but also included in many other GNU distributions. Compiling and linking in this code is a waste when using the GNU C library (especially if it is a shared library). Seems that binutils use obstack from libc(in my case uclibc). In uclibc i found that code: # if 0 /* Older versions of libc used a function _obstack_free intended to be called by non-GCC compilers. */ strong_alias (obstack_free, _obstack_free) # endif changing to # if 1 fix problem (In reply to comment #2) > from libiberty/obstack.c: > > Comment out all this code if we are using the GNU C Library, and are not > actually compiling the library itself, and the installed library > supports the same library interface we do. This code is part of the GNU > C Library, but also included in many other GNU distributions. Compiling > and linking in this code is a waste when using the GNU C library > (especially if it is a shared library). > > Seems that binutils use obstack from libc(in my case uclibc). > > In uclibc i found that code: > > # if 0 > /* Older versions of libc used a function _obstack_free intended to be > called by non-GCC compilers. */ > strong_alias (obstack_free, _obstack_free) > # endif > > changing to # if 1 fix problem This is right fix. Can you just remove #if 0 and #endif here and send a patch for uclibc ? I send patch to mailing list [PATCH] Alias _obstack_free to fix binutils build Sorry wrong patch? i will resend email Resend write patch to mailing list uclibc is no longer maintained in core. |