https://bugs.kde.org/show_bug.cgi?id=469049

--- Comment #5 from Paul Floyd <pjfl...@wanadoo.fr> ---
This is an LTO issue. On gccfarm gcc203 which is

paulf@gcc203:~/scratch/valgrind$ lscpu
Architecture:            ppc64
  CPU op-mode(s):        32-bit, 64-bit
  Byte Order:            Big Endian

Then with 

./configure --enable-lto=yes

(from git HEAD but surely the same as the RC tarball)

I get


s.o ../coregrind/libcoregrind-ppc64be-linux.a ../VEX/libvex-ppc64be-linux.a
-lgcc ../coregrind/libgcc-sup-ppc64be-linux.a 
/usr/bin/ld: /tmp/ccKRxaHx.ltrans0.ltrans.o: in function `vg_SP_update_pass':
/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393: undefined
reference to `vgPlain_unknown_SP_update_w_ECU'
/usr/bin/ld:
/tmp/ccKRxaHx.ltrans0.ltrans.o:/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393:
undefined reference to `vgPlain_unknown_SP_update_w_ECU'
/usr/bin/ld: /tmp/ccKRxaHx.ltrans0.ltrans.o: in function `vg_SP_update_pass':
/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393: undefined
reference to `vgPlain_unknown_SP_update'
/usr/bin/ld:
/tmp/ccKRxaHx.ltrans0.ltrans.o:/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393:
undefined reference to `vgPlain_unknown_SP_update'
/usr/bin/ld: /tmp/ccKRxaHx.ltrans0.ltrans.o: in function `vg_SP_update_pass':
/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393: undefined
reference to `vgPlain_unknown_SP_update_w_ECU'
/usr/bin/ld:
/tmp/ccKRxaHx.ltrans0.ltrans.o:/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393:
undefined reference to `vgPlain_unknown_SP_update_w_ECU'
/usr/bin/ld: /tmp/ccKRxaHx.ltrans0.ltrans.o: in function `vg_SP_update_pass':
/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393: undefined
reference to `vgPlain_unknown_SP_update'
/usr/bin/ld:
/tmp/ccKRxaHx.ltrans0.ltrans.o:/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393:
undefined reference to `vgPlain_unknown_SP_update'
/usr/bin/ld: /tmp/ccKRxaHx.ltrans0.ltrans.o: in function
`vgMemCheck_instrument':
/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393: undefined
reference to `vgMemCheck_helperc_MAKE_STACK_UNINIT_no_o'
/usr/bin/ld:
/tmp/ccKRxaHx.ltrans0.ltrans.o:/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393:
undefined reference to `vgMemCheck_helperc_MAKE_STACK_UNINIT_no_o'
/usr/bin/ld: /tmp/ccKRxaHx.ltrans0.ltrans.o: in function
`vgMemCheck_instrument':
/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393: undefined
reference to `vgMemCheck_helperc_MAKE_STACK_UNINIT_w_o'
/usr/bin/ld:
/tmp/ccKRxaHx.ltrans0.ltrans.o:/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393:
undefined reference to `vgMemCheck_helperc_MAKE_STACK_UNINIT_w_o'
/usr/bin/ld: /tmp/ccKRxaHx.ltrans0.ltrans.o: in function
`vgMemCheck_instrument':
/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393: undefined
reference to `vgMemCheck_helperc_MAKE_STACK_UNINIT_128_no_o'
/usr/bin/ld:
/tmp/ccKRxaHx.ltrans0.ltrans.o:/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393:
undefined reference to `vgMemCheck_helperc_MAKE_STACK_UNINIT_128_no_o'
/usr/bin/ld: /tmp/ccKRxaHx.ltrans0.ltrans.o: in function
`tool_instrument_then_gdbserver_if_needed':
/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393: undefined
reference to `vgPlain_helperc_CallDebugger'
/usr/bin/ld:
/tmp/ccKRxaHx.ltrans0.ltrans.o:/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393:
undefined reference to `vgPlain_helperc_CallDebugger'
/usr/bin/ld: /tmp/ccKRxaHx.ltrans0.ltrans.o: in function
`tool_instrument_then_gdbserver_if_needed':
/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393: undefined
reference to `vgPlain_helperc_invalidate_if_not_gdbserved'
/usr/bin/ld:
/tmp/ccKRxaHx.ltrans0.ltrans.o:/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393:
undefined reference to `vgPlain_helperc_invalidate_if_not_gdbserved'

$ nm coregrind/libcoregrind-ppc64be-linux.a | grep  vgPlain_unknown_SP_update
00000000 T vgPlain_unknown_SP_update
00000000 T vgPlain_unknown_SP_update_w_ECU

The same nm without lto

$ nm coregrind/libcoregrind-ppc64be-linux.a | grep  vgPlain_unknown_SP_update
00000000000000a8 D vgPlain_unknown_SP_update
0000000000000090 D vgPlain_unknown_SP_update_w_ECU

If I move m_stacks.c to NOLTO_COREGRIND_SOURCES_COMMON then I get fewer link
errors

/usr/bin/ld: /tmp/ccOzIZRr.ltrans0.ltrans.o: in function
`vgMemCheck_instrument':
/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393: undefined
reference to `vgMemCheck_helperc_MAKE_STACK_UNINIT_no_o'
/usr/bin/ld:
/tmp/ccOzIZRr.ltrans0.ltrans.o:/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393:
undefined reference to `vgMemCheck_helperc_MAKE_STACK_UNINIT_no_o'
/usr/bin/ld: /tmp/ccOzIZRr.ltrans0.ltrans.o: in function
`vgMemCheck_instrument':
/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393: undefined
reference to `vgMemCheck_helperc_MAKE_STACK_UNINIT_w_o'
/usr/bin/ld:
/tmp/ccOzIZRr.ltrans0.ltrans.o:/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393:
undefined reference to `vgMemCheck_helperc_MAKE_STACK_UNINIT_w_o'
/usr/bin/ld: /tmp/ccOzIZRr.ltrans0.ltrans.o: in function
`vgMemCheck_instrument':
/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393: undefined
reference to `vgMemCheck_helperc_MAKE_STACK_UNINIT_128_no_o'
/usr/bin/ld:
/tmp/ccOzIZRr.ltrans0.ltrans.o:/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393:
undefined reference to `vgMemCheck_helperc_MAKE_STACK_UNINIT_128_no_o'
/usr/bin/ld: /tmp/ccOzIZRr.ltrans0.ltrans.o: in function
`tool_instrument_then_gdbserver_if_needed':
/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393: undefined
reference to `vgPlain_helperc_CallDebugger'
/usr/bin/ld:
/tmp/ccOzIZRr.ltrans0.ltrans.o:/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393:
undefined reference to `vgPlain_helperc_CallDebugger'
/usr/bin/ld: /tmp/ccOzIZRr.ltrans0.ltrans.o: in function
`tool_instrument_then_gdbserver_if_needed':
/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393: undefined
reference to `vgPlain_helperc_invalidate_if_not_gdbserved'
/usr/bin/ld:
/tmp/ccOzIZRr.ltrans0.ltrans.o:/home/paulf/scratch/valgrind/memcheck/../coregrind/m_machine.c:2393:
undefined reference to `vgPlain_helperc_invalidate_if_not_gdbserved'

and the nm looks OK.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to