Bug 993641 - ldd show wrong dependencies on ia64 architecture
Summary: ldd show wrong dependencies on ia64 architecture
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: glibc
Version: 5.10
Hardware: ia64
OS: Linux
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Carlos O'Donell
QA Contact: qe-baseos-tools-bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-08-06 10:49 UTC by Robin Hack
Modified: 2016-11-24 12:32 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-11-13 13:51:07 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
debug file (15.27 MB, application/x-sharedlib)
2013-08-06 10:49 UTC, Robin Hack
no flags Details

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.


Note You need to log in before you can comment on or make changes to this bug.