FAIL: plugin claimfile lost symbol - binutils-2.21

Allan McRae allan@archlinux.org
Thu Dec 9 11:56:00 GMT 2010


Hi,

I am getting the following test failure for ld with binutils-2.21:
FAIL: plugin claimfile lost symbol

(As an aside, I am also getting 13 failures in the gold test suite but I 
will investigate those later...)

This is on i686-pc-linux-gnu with gcc-4.5.2-RC and the current head of 
the glibc-2.12 branch (effectively a 2.12.2-RC), built using:

../binutils/configure --prefix=/usr \
     --enable-ld=default --enable-gold \
     --enable-shared

CFLAGS="-march=i686 -mtune=generic -O2 -pipe"
LDFLAGS="-Wl,--hash-style=gnu -Wl,--as-needed"

So nothing too exotic...

I think this is all the relevant output from ld/ld.log:

/home/arch/svn/core/binutils/trunk/src/binutils-build/ld/ld-new   -o 
tmpdir/main.x 
-L/home/arch/svn/core/binutils/trunk/src/binutils/ld/testsuite/ld-plugin 
-plugin 
/home/arch/svn/core/binutils/trunk/src/binutils-build/ld/.libs/libldtestplug.so.0 
-plugin-opt registerclaimfile  -plugin-opt registerallsymbolsread 
-plugin-opt registercleanup -plugin-opt claim:tmpdir/func.o 
tmpdir/main.o tmpdir/func.o tmpdir/text.o --defsym __stack_chk_fail=0 
--defsym printf=0 --defsym puts=0
Executing on host: sh -c 
{/home/arch/svn/core/binutils/trunk/src/binutils-build/ld/ld-new   -o 
tmpdir/main.x 
-L/home/arch/svn/core/binutils/trunk/src/binutils/ld/testsuite/ld-plugin 
-plugin 
/home/arch/svn/core/binutils/trunk/src/binutils-build/ld/.libs/libldtestplug.so.0 
-plugin-opt registerclaimfile  -plugin-opt registerallsymbolsread 
-plugin-opt registercleanup -plugin-opt claim:tmpdir/func.o 
tmpdir/main.o tmpdir/func.o tmpdir/text.o --defsym __stack_chk_fail=0 
--defsym printf=0 --defsym puts=0  2>&1}  /dev/null ld.tmp (timeout = 300)
spawn [open ...]
Hello from testplugin.
tv[0]: LDPT_MESSAGE func@0x0x8065f80
tv[1]: LDPT_API_VERSION value        0x1 (1)
tv[2]: LDPT_GNU_LD_VERSION value       0xdd (221)
tv[3]: LDPT_LINKER_OUTPUT value        0x1 (1)
tv[4]: LDPT_OUTPUT_NAME 'tmpdir/main.x'
tv[5]: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x0x8065c20
tv[6]: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x0x8065bd0
tv[7]: LDPT_REGISTER_CLEANUP_HOOK func@0x0x8065b80
tv[8]: LDPT_ADD_SYMBOLS func@0x0x8065d80
tv[9]: LDPT_GET_INPUT_FILE func@0x0x8065b40
tv[10]: LDPT_RELEASE_INPUT_FILE func@0x0x8065b00
tv[11]: LDPT_GET_SYMBOLS func@0x0x8065860
tv[12]: LDPT_ADD_INPUT_FILE func@0x0x8065d20
tv[13]: LDPT_ADD_INPUT_LIBRARY func@0x0x8065cc0
tv[14]: LDPT_SET_EXTRA_LIBRARY_PATH func@0x0x8065c70
tv[15]: LDPT_OPTION 'registerclaimfile'
tv[16]: LDPT_OPTION 'registerallsymbolsread'
tv[17]: LDPT_OPTION 'registercleanup'
tv[18]: LDPT_OPTION 'claim:tmpdir/func.o'
tv[19]: LDPT_NULL value        0x0 (0)

hook called: claim_file tmpdir/main.o [@0/864] not claimed
hook called: claim_file tmpdir/func.o [@0/764] CLAIMED
hook called: claim_file tmpdir/text.o [@0/808] not claimed
hook called: all symbols read.
/home/arch/svn/core/binutils/trunk/src/binutils-build/ld/.libs/lt-ld-new: warning: 
cannot find entry symbol _start; defaulting to 080480a0
tmpdir/main.o: In function `main':
main.c:(.text+0x17): undefined reference to `func'
hook called: cleanup.
Hello from testplugin.
tv[0]: LDPT_MESSAGE func@0x0x8065f80
tv[1]: LDPT_API_VERSION value        0x1 (1)
tv[2]: LDPT_GNU_LD_VERSION value       0xdd (221)
tv[3]: LDPT_LINKER_OUTPUT value        0x1 (1)
tv[4]: LDPT_OUTPUT_NAME 'tmpdir/main.x'
tv[5]: LDPT_REGISTER_CLAIM_FILE_HOOK func@0x0x8065c20
tv[6]: LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK func@0x0x8065bd0
tv[7]: LDPT_REGISTER_CLEANUP_HOOK func@0x0x8065b80
tv[8]: LDPT_ADD_SYMBOLS func@0x0x8065d80
tv[9]: LDPT_GET_INPUT_FILE func@0x0x8065b40
tv[10]: LDPT_RELEASE_INPUT_FILE func@0x0x8065b00
tv[11]: LDPT_GET_SYMBOLS func@0x0x8065860
tv[12]: LDPT_ADD_INPUT_FILE func@0x0x8065d20
tv[13]: LDPT_ADD_INPUT_LIBRARY func@0x0x8065cc0
tv[14]: LDPT_SET_EXTRA_LIBRARY_PATH func@0x0x8065c70
tv[15]: LDPT_OPTION 'registerclaimfile'
tv[16]: LDPT_OPTION 'registerallsymbolsread'
tv[17]: LDPT_OPTION 'registercleanup'
tv[18]: LDPT_OPTION 'claim:tmpdir/func.o'
tv[19]: LDPT_NULL value        0x0 (0)

hook called: claim_file tmpdir/main.o [@0/864] not claimed
hook called: claim_file tmpdir/func.o [@0/764] CLAIMED
hook called: claim_file tmpdir/text.o [@0/808] not claimed
hook called: all symbols read.
/home/arch/svn/core/binutils/trunk/src/binutils-build/ld/.libs/lt-ld-new: warning: 
cannot find entry symbol _start; defaulting to 080480a0
tmpdir/main.o: In function `main':
main.c:(.text+0x17): undefined reference to `func'
hook called: cleanup.
regexp_diff match failure
regexp "^.*ld/testsuite/ld-plugin/main.c:12: undefined reference to `func'$"
line   "main.c:(.text+0x17): undefined reference to `func'"
FAIL: plugin claimfile lost symbol


Any ideas?

Allan



More information about the Binutils mailing list