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:
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.