Bug 133680
Summary: | ia64 x86_64 gaim-1.0.0 PIE fails | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Warren Togami <wtogami> |
Component: | gaim | Assignee: | Daniel Reed <djr> |
Status: | CLOSED RAWHIDE | QA Contact: | |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | drepper, eblanton, jakub, lschiere+bugs, mark, stu, wtogami |
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: | 2004-09-30 14:28:04 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: | |||
Bug Depends On: | |||
Bug Blocks: | 123268 |
Description
Warren Togami
2004-09-26 07:30:25 UTC
<jakub> warren: some arches allow non-fpie objects in -pie binaries <jakub> warren: look at DT_TEXTREL tag on PIEs, if it is set in readelf -d output, it was built wrongly [builder@fedora64 .libs]$ readelf -d eggtrayicon.o [builder@fedora64 .libs]$ <warren> jakub, if readelf -d has absolutely no output, what does that mean? <jakub> warren: that would be either non-ELF file, or statically linked one <jakub> warren: well, actually for non-ELF it will shout that it is not ELF and on statically linked will say There is no dynamic section in this file. <jakub> warren: I can't imagine where readelf -d would give no output (Warren tests the same thing on i386, no output there either.) FC3 Blocker due to multiple votes. Libtool drops -pie unless you armor it (LDFLAGS="${LDFLAGS} -Wl,-pie"). The Perl module does not use Libtool, and ignores LDFLAGS entirely. Even with -fPIC -fPIE added to CFLAGS and -Wl,-pie added to LDFLAGS, there are still problems. I will try to track down what might be going wrong today. If anyone on the Cc: can suggest a way to modify the linker flags used by the Perl module's build scripts, please do. Jakub Jelinek has informed me that libraries and dlopenable modules should not be compiled/linked in such a modified way, so enabling PIE can not be done simply by modifying CFLAGS or LDFLAGS. That's not very much different from -fPIC or -shared. You also put -fPIC only for objects linked into shared libraries, and you can't just put -shared into your CFLAGS. Current build tools know how to use -fPIC and -shared, but apparently not -fPIE and -pie :/ It may be that compiling PIE should be handled by Libtool or Automake, neither of which change is likely in the FC3 time frame. As for doing a one-off for gaim, is it reasonable to just add -fPIE to the CFLAGS and -pie to the LDFLAGS in src/Makefile (which generates the only two installed files in /usr/bin) without modifying the build files for any of the to-be-installed libraries or dlopenable modules? > As for doing a one-off for gaim, is it reasonable to just add -fPIE to
> the CFLAGS and -pie to the LDFLAGS in src/Makefile (which generates
> the only two installed files in /usr/bin) without modifying the build
> files for any of the to-be-installed libraries or dlopenable modules?
That is all that is needed anyway. The dlopen-able code must not be
copmiled with -fpie, it must be compiled with -fpic. Using
f-pie/f_PIE is a bug!
So, if these directories really contain all the code included into the
executables this is exactly what is needed. But you must be aware of
archives which are used. Building on x86-64 or ia64 will tell you.
This is fixed as of 1.0.0-4. |