#10898 NORM Not Tri: prelink has non-deterministic output
Zarro Boogs per Child
bugtracker at laptop.org
Fri May 20 05:32:12 EDT 2011
#10898: prelink has non-deterministic output
------------------------------------+---------------------------------------
Reporter: dsd | Owner: dsd
Type: defect | Status: new
Priority: normal | Milestone: Not Triaged
Component: build-system | Version: not specified
Resolution: | Keywords:
Next_action: never set | Verified: 0
Deployment_affected: | Blockedby:
Blocking: |
------------------------------------+---------------------------------------
Comment(by dsd):
As a 2nd workaround approach, I wrote a program that uses libelf to tweak
the timestamp value that prelink has written into a library, to be run as
a postprocessing tool. Attached as prelink_timestamp_remover.c.
This seemed to work on my test case of libxml2, but when I moved to
running it on all files that were prelinked in the build process, bad
things happened. I couldn't even chroot into the build environment
afterwards due to segfault.
I investigated further and found that my program was breaking libraries
such as libc. I investigated further and produced a simplistic testcase
(libelf_library_eater) which shows that my trivial libelf usage breaks
libraries. Not sure what I'm doing wrong. prelink itself also uses libelf
for its work.
{{{
$ gcc libelf_library_eater.c -lelf -o eater
$ cp /lib/libc-2.13.so .
$ ./libc-2.13.so
GNU C Library stable release version 2.13, by Roland McGrath et al.
$ ldd libc-2.13.so
/lib/ld-linux.so.2 (0x0030d000)
linux-gate.so.1 => (0x00909000)
$ ./eater libc-2.13.so
$ ./libc-2.13.so
Segmentation fault
$ ldd libc-2.13.so
statically linked
}}}
--
Ticket URL: <http://dev.laptop.org/ticket/10898#comment:2>
One Laptop Per Child <http://laptop.org/>
OLPC bug tracking system
More information about the Bugs
mailing list