Bug 213252
| Summary: | glibc breaks compatibility between fc5 and fc6 | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Arjan van de Ven <arjan> | ||||
| Component: | glibc | Assignee: | Jakub Jelinek <jakub> | ||||
| Status: | CLOSED NOTABUG | QA Contact: | Brian Brock <bbrock> | ||||
| Severity: | medium | Docs Contact: | |||||
| Priority: | medium | ||||||
| Version: | 6 | ||||||
| Target Milestone: | --- | ||||||
| Target Release: | --- | ||||||
| Hardware: | All | ||||||
| OS: | Linux | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2006-10-31 14:53:38 UTC | Type: | --- | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
|
Description
Arjan van de Ven
2006-10-31 14:35:16 UTC
Created attachment 139854 [details]
Binary that shows this behavior when run on FC5
glibc only provides backward compatibility, not forward compatibility. So, if you compile/link against glibc 2.4, you can expect it to run against glibc 2.5, but not vice versa. Often new functions are added or their ABI changes and glibc just adds a new symbol version; as soon as that happens, you really can't run the program compiled/linked against newer glibc on a system with older glibc. The .gnu.hash stuff is similar, only glibc 2.5 and later supports DT_GNU_HASH, so programs/dsos which only have .gnu.hash and don't have .hash section can't be run against older glibc. All this is caught by rpm dependencies, if you have a program/dso which only has .gnu.hash and not .hash, it will have a rtld(GNU_HASH) rpm dependency which is only satisfied by glibc 2.5+. You can link with -Wl,--hash-style=both or -Wl,--hash-style=sysv to link binaries/dsos which can be loaded even by pre-2.5 ld.so (but even then it is a pure luck if you don't use any *@GLIBC_2.5 symbols). since I use the fc5 glibc for linking it's not quite pure luck :) |