Bug 444628

Summary: ld: --export-dynamic fails if no undefined symbols
Product: [Fedora] Fedora Reporter: John Reiser <jreiser>
Component: binutilsAssignee: Jakub Jelinek <jakub>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: rawhide   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-04-29 16:49: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:

Description John Reiser 2008-04-29 16:20:26 UTC
Description of problem: If there are no undefined symbols then there is no
Dynamic section, no DT_SYMTAB, and no DT_HASH/DT_GNU_HASH; and --export-dynamic
fails silently.  So there is no way to have a module (ET_EXEC or ET_DYN) that
has no undefined symbols, yet exports some of its own symbols for use by other
modules.

Version-Release number of selected component (if applicable):
binutils-2.18.50.0.6-2.i386


How reproducible: always


Steps to Reproduce:
1. cat <<EOF  >export.S
_start: .globl _start
	movl foo,%ebx
	movl $1,%eax
	int $0x80

	.data
foo: .globl foo
	.int 42
EOF
2. gcc -o export -nostartfiles -nostdlib -Wl,--export-dynamic export.S
3. readelf --all export  |  grep -i dynamic
  
Actual results:
There is no dynamic section in this file.


Expected results:
Dynamic section at offset 0x.... contains .. entries:


Additional info:

Comment 1 Jakub Jelinek 2008-04-29 16:49:48 UTC
I don't see what that would be useful for, dlopen in statically linked programs
is something we certainly don't want to encourage.
If you want to make this supported, try filing it in upstream bugzilla.