[armel-cross] Shared libgcc broken
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Linaro GCC |
Invalid
|
Undecided
|
Unassigned | ||
armel-cross-toolchain-base (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
When building a trivial program with arm-linux-
/usr/lib/
This is caused by a bogus DT_NEEDED entry in the shared libgcc file /usr/arm-
0x00000001 (NEEDED) Shared library: [libc.so]
A dynamic dependency always needs to point to the per-major-level version of the library (i.e. libc.so.6); the file name without any suffix is only intended for use at static link time. This does not matter much with most libraries since the one name links to the other, but libc is a special case: libc.so is just a linker script, which is not understood by the dynamic loader.
The version of libgcc_s.so.1 that is actually installed on the native armel port is correct:
0x00000001 (NEEDED) Shared library: [libc.so.6]
Looking at the oneric version of the libgcc1-armel-cross package, the library does not contain any DT_NEEDED records at all. While this probably prevent link error I'm seeing on Natty, it is still not quite correct since libgcc_s.so.1 actually does have a dependency on libc ...
I have not analyzed the libgcc1-armel-cross build process to understand how exactly the wrong DT_NEEDED record is generated.
Changed in gcc-linaro: | |
status: | New → Invalid |
Changed in armel-cross-toolchain-base (Ubuntu): | |
status: | New → Fix Committed |
no longer affects: | gcc-4.5-armel-cross (Ubuntu) |
Changed in armel-cross-toolchain-base (Ubuntu): | |
assignee: | nobody → Marcin Juszkiewicz (hrw) |
This bug was fixed in the package armel-cross- toolchain- base - 1.77
--------------- toolchain- base (1.77) precise; urgency=low
armel-cross-
* Fixed paths for eglibc/stage1 - binaries moved from /lib to lib/triplet/
/usr/
* Added build-gcc3 stamp to get libgcc1_s.so depending properly on libc.so.6
- closes LP: #805581
* Added hacky fix for debian/control generation - LP: #913734
* Use all cpu cores during build of gcc.
* PPA updates:
- take care of linux-source dependency too
- bumped versions
* Debian updates:
- rules: updated versions and handling of linux step under Debian
- control: added lsb-release to build dependencies
- eglibc: refreshed stages under Debian
- linux: apply patches under Debian
* removed code duplication for unpacking binutils
* gcc: dropped merged patches
* eglibc: refreshed patches
* eglibc: disabled dh_shlibdeps as build was unable to find libraries dependencies
* eglibc: dropped one patch as cross is using fortify now
-- Marcin Juszkiewicz <email address hidden> Wed, 18 Jan 2012 08:03:12 +0100