Bug 236532

Summary: find-requires has a bug when analysing objdump output with private flags
Product: [Fedora] Fedora Reporter: Miao ZhiCheng <hellwolf.misty>
Component: redhat-rpm-configAssignee: Jon Masters <jcm>
Status: CLOSED INSUFFICIENT_DATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 6CC: triage
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard: bzcl34nup
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-04-16 00:27:03 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:

Description Miao ZhiCheng 2007-04-16 08:00:24 UTC
Description of problem:
find-requires use awk to parse the output of objdump -p to get version
definations, sample output like this:
Version References:
  required from ld-linux.so.2:
    0x0963cf85 0x00 18 GLIBC_PRIVATE
    0x0d696911 0x00 16 GLIBC_2.1
the $4 in awk is GLIBC_2.1, then rpm requires ld-linux.so.2(GLIBC_2.1), but some
times, the objdump -p will output like this:
Version References:
  required from ld-linux.so.2:
    0x0963cf85 0x00 18 GLIBC_PRIVATE
    0x0d696911 0x00 16 GLIBC_2.1
  required from libc.so.6:
    0x09691f73 0x00 19 GLIBC_2.1.3
    0x0d696913 0x00 17 GLIBC_2.3
    0x09691972 0x00 15 GLIBC_2.3.2
    0x0d696911 0x00 14 GLIBC_2.1
    0x0963cf85 0x00 13 GLIBC_PRIVATE
    0x0d696912 0x00 12 GLIBC_2.2
    0x0d696910 0x00 11 GLIBC_2.0
private flags = 2: [APCS-32] [FPA float format] [has entry point]

As the last line shows, the rpm will require things like libc.so.6(2:) which is
ridiculous.

I made a dirty patch to work around this :

--- /usr/lib/rpm/redhat/find-requires   2007-03-28 14:24:43.000000000 +0800
+++ /home/hellwolf/mydoc/prog/ybuild/ycross/tools/rpm-extension/find-requires 
2007-04-13 09:20:47.000000000 +0800
@@ -90,6 +90,7 @@
 
 #
 # --- Weak symbol versions (from glibc).
+#@hellwolf  priavate flag bug
 [ -n "$mark64" ] && mark64="(64bit)"
 for f in $liblist $exelist ; do
     [ -r $f ] || continue
@@ -111,7 +112,7 @@
            sub(/:/, "", $3);
            LIBNAME=$3;
        }
-       (START==2) && (LIBNAME!="") && ($4!="") {
+       (START==2) && (LIBNAME!="") && ($4!="") && ($1!="private"){
            print LIBNAME "(" $4 ")'$lib64'";
        }
     '



Version-Release number of selected component (if applicable):
redhat-rpm-config-8.0.45-9.fc6

How reproducible:
I found this problem when cross comipling and reset %__objdump to
arm-linux-objdump. Some .so showed the private flags, which I don't very understand.

Comment 1 Jon Masters 2008-04-03 06:52:52 UTC
Is this still a problem affecting you in F8?

Comment 2 Bug Zapper 2008-04-04 06:52:00 UTC
Fedora apologizes that these issues have not been resolved yet. We're
sorry it's taken so long for your bug to be properly triaged and acted
on. We appreciate the time you took to report this issue and want to
make sure no important bugs slip through the cracks.

If you're currently running a version of Fedora Core between 1 and 6,
please note that Fedora no longer maintains these releases. We strongly
encourage you to upgrade to a current Fedora release. In order to
refocus our efforts as a project we are flagging all of the open bugs
for releases which are no longer maintained and closing them.
http://fedoraproject.org/wiki/LifeCycle/EOL

If this bug is still open against Fedora Core 1 through 6, thirty days
from now, it will be closed 'WONTFIX'. If you can reporduce this bug in
the latest Fedora version, please change to the respective version. If
you are unable to do this, please add a comment to this bug requesting
the change.

Thanks for your help, and we apologize again that we haven't handled
these issues to this point.

The process we are following is outlined here:
http://fedoraproject.org/wiki/BugZappers/F9CleanUp

We will be following the process here:
http://fedoraproject.org/wiki/BugZappers/HouseKeeping to ensure this
doesn't happen again.

And if you'd like to join the bug triage team to help make things
better, check out http://fedoraproject.org/wiki/BugZappers