Bug 993641

Summary: ldd show wrong dependencies on ia64 architecture
Product: Red Hat Enterprise Linux 5 Reporter: Robin Hack <rhack>
Component: glibcAssignee: Carlos O'Donell <codonell>
Status: CLOSED WONTFIX QA Contact: qe-baseos-tools-bugs
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 5.10CC: ashankar, fweimer, law, mcermak, mfranc, pfrankli, rhack, sgraf, spoyarek
Target Milestone: rcKeywords: Reopened
Target Release: ---   
Hardware: ia64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-11-13 13:51:07 UTC Type: Bug
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 Flags
debug file none

Description Robin Hack 2013-08-06 10:49:55 UTC
Created attachment 783265 [details]
debug file

Description of problem:
Call ldd on different arch on rpcclient.debug file.
Maybe it's static linker problem.

Version-Release number of selected component (if applicable):
glibc-common-2.5-107.el5_9.5

How reproducible:
always

Steps to Reproduce:
1.
$ uname -m
x86_64

$ ldd ./rpcclient.debug
	not a dynamic executable

2.
Switch to ia64 arch.
# uname -m
ia64

# ldd /usr/lib/debug/usr/bin/rpcclient.debug
	linux-gate.so.1 =>  (0xa000000000000000)
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
	ELF => not found
(some chars are not printable - ldd prints part of ELF file header).

Comment 1 Carlos O'Donell 2013-08-06 21:18:18 UTC
The ldd script runs the native dynamic loader to read the ELF file and the implementation does not support cross-loading an ELF file for another architecture. The result of "not a dynamic executable" is the expected result when running ldd against a dynamic executable from another architecture.

Adding some minimal cross support to the dynamic loader, such that it can print "ELF file architecture not supported" is something that needs to be taken up with upstream. Even better would be to enhance the dynamic loader to provide better support for non-native ELF files, at least while in trace mode. Lastly we could rewrite ldd to to use libelf. Any of these options should be taken up with upstream glibc.

Please file a bug upstream against the glibc component at http://sourceware.org/bugzilla/

I'm closing this as CLOSED/UPSTREAM.

Comment 2 Robin Hack 2013-08-07 07:17:25 UTC
Ok. Multiarchitecture problem is out of game.
But what about strange ldd output on attached file ONLY on ia64?
I know, that ldd is only wrapper script and troubles can be in dynamic linker.

Comment 4 Carlos O'Donell 2013-08-07 19:51:51 UTC
(In reply to Robin Hack from comment #2)
> Ok. Multiarchitecture problem is out of game.
> But what about strange ldd output on attached file ONLY on ia64?
> I know, that ldd is only wrapper script and troubles can be in dynamic
> linker.

The debuginfo files violate some of the expectations that the dynamic loader has about dynamically shared ELF objects. Keep in mind that debuginfo files are ELF files but only with debug information and everything else removed.

We have bug 812859 open to fix this issue for RHEL6, but I can't comment on a timeline for the fix, and it might never be fixed in RHEL5.

If you would like I could close this bug as a duplicate of 812859?

Comment 5 Jeff Law 2013-11-13 13:51:07 UTC
"This Bugzilla has been reviewed by Red Hat and is not planned on being
addressed in Red Hat Enterprise Linux 5, and therefore will be closed.
If this bug is critical to production systems, please contact your Red
Hat support representative and provide sufficient business
justification. Issue is being tracked via bugzilla 812859 for RHEL 6"

Comment 6 Robin Hack 2014-12-22 12:37:18 UTC
Removed needinfo flag.