Bug 314051

Summary: Prelinking frysk binaries takes eons
Product: [Fedora] Fedora Reporter: Andrew Cagney <cagney>
Component: prelinkAssignee: Jakub Jelinek <jakub>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: 7   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: 0.4.0-1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-10-09 17:59:48 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: 312331    

Description Andrew Cagney 2007-10-01 15:27:11 UTC
Is this frysk, or prelink?

+++ This bug was initially created as a clone of Bug #312331 +++

When prelinking binaries with, e.g., "prelink -avmR" all frysk binaries (fcatch,
fcore, fstep, etc) take even minutes to prelink on a system where even
OpenOffice.org binaries are prelinked in few seconds.

Steps to reproduce:
1. prelink -au
2. prelink -avmR
3. See how prelink spends minutes in frysk binaries while all the others are
processed quickly

Comment 1 Jakub Jelinek 2007-10-01 19:51:37 UTC
Most of the time is spent in the C++ conflict optimizations.
The problem is that frysk utilities have huge number of conflicts against
a library with a huge number of symbols (libgcj).
I can certainly experiment with creating some search tree if it is queried
enough times, nevertheless it is IMHO very much desirable to compile frysk
stuff with -fpie or -fPIE and thus avoid (most of) copy relocations and most of
the conflicts.

Comment 2 Andrew Cagney 2007-10-05 18:52:15 UTC
So in addition to -fPIC, all frysk object files should be compiled with -fPIE
and executables linked with with -pie?


Comment 3 Jakub Jelinek 2007-10-09 17:59:48 UTC
Fixed in prelink-0.4.0-1 in rawhide.
rpm -Uvh prelink-0.4.0-1.i386.rpm
time /etc/cron.daily/prelink 

real    2m58.764s
user    1m43.620s
sys     1m27.751s

(as prelink was upgraded, this was full reprelinking of all libraries and
binaries).