> Stephen Kelly wrote: > >> The tests can be enabled on APPLE again later, I've flipped the if >> condition so we can see why it fails on some non-APPLE platforms too. >> > > This is even more interesting now. > > http://www.cdash.org/CDash/testDetails.php?test=118872016&build=1620094 > > On gentoo, the build of the exec executable succeeds, even though it only > links to libC, and that only links to libA, even though it uses classB > from > libB (which is not linked to).
libB is in the needed section (see below). The only special thing that I can think of is the -Wl,--unique=.text.* flag I put into C_FLAGS, as CMake itself would otherwise not link because of a binutils breakage. No idea if that is related. buildbot@voyager ~/repos/build/cmake/Tests/CMakeCommands/target_link_libraries/fail19 $ ll total 36 -rw-r--r-- 1 buildbot buildbot 9772 Oct 13 15:51 CMakeCache.txt drwxr-xr-x 3 buildbot buildbot 4096 Oct 13 16:04 CMakeFiles -rw-r--r-- 1 buildbot buildbot 1753 Oct 13 15:51 cmake_install.cmake -rwxr-xr-x 1 buildbot buildbot 7768 Oct 13 16:04 exec -rw-r--r-- 1 buildbot buildbot 4956 Oct 13 16:04 Makefile buildbot@voyager ~/repos/build/cmake/Tests/CMakeCommands/target_link_libraries/fail19 $ ./exec buildbot@voyager ~/repos/build/cmake/Tests/CMakeCommands/target_link_libraries/fail19 $ echo $? 0 buildbot@voyager ~/repos/build/cmake/Tests/CMakeCommands/target_link_libraries/fail19 $ ldd exec liblibC.so => /home/buildbot/repos/build/cmake/Tests/CMakeCommands/target_link_libraries/libs_build_True_False/liblibC.so (0x401ca000) libstdc++.so.6 => /usr/lib/gcc/hppa2.0-unknown-linux-gnu/4.5.3/libstdc++.so.6 (0x403a5000) libm.so.6 => /lib/libm.so.6 (0x405b3000) libgcc_s.so.4 => /usr/lib/gcc/hppa2.0-unknown-linux-gnu/4.5.3/libgcc_s.so.4 (0x407d3000) libc.so.6 => /lib/libc.so.6 (0x4096b000) liblibB.so => /home/buildbot/repos/build/cmake/Tests/CMakeCommands/target_link_libraries/libs_build_True_False/liblibB.so (0x401c5000) liblibA.so => /home/buildbot/repos/build/cmake/Tests/CMakeCommands/target_link_libraries/libs_build_True_False/liblibA.so (0x40241000) /lib/ld.so.1 (0x40063000) buildbot@voyager ~/repos/build/cmake/Tests/CMakeCommands/target_link_libraries/fail19 $ objdump -x exec exec: file format elf32-hppa-linux exec architecture: hppa1.1, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x00010650 Program Header: PHDR off 0x00000034 vaddr 0x00010034 paddr 0x00010034 align 2**2 filesz 0x00000100 memsz 0x00000100 flags r-x INTERP off 0x00000134 vaddr 0x00010134 paddr 0x00010134 align 2**0 filesz 0x0000000d memsz 0x0000000d flags r-- LOAD off 0x00000000 vaddr 0x00010000 paddr 0x00010000 align 2**12 filesz 0x00000be4 memsz 0x00000be4 flags r-x LOAD off 0x00001000 vaddr 0x00011000 paddr 0x00011000 align 2**12 filesz 0x0000019c memsz 0x000001b0 flags rwx DYNAMIC off 0x00001014 vaddr 0x00011014 paddr 0x00011014 align 2**2 filesz 0x00000108 memsz 0x00000108 flags rw- NOTE off 0x00000144 vaddr 0x00010144 paddr 0x00010144 align 2**2 filesz 0x00000020 memsz 0x00000020 flags r-- EH_FRAME off 0x00000b74 vaddr 0x00010b74 paddr 0x00010b74 align 2**2 filesz 0x0000001c memsz 0x0000001c flags r-- PAX_FLAGS off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2 filesz 0x00000000 memsz 0x00000000 flags --- 2800 Dynamic Section: NEEDED liblibC.so NEEDED libstdc++.so.6 NEEDED libm.so.6 NEEDED libgcc_s.so.4 NEEDED libc.so.6 NEEDED liblibB.so RPATH /home/buildbot/repos/build/cmake/Tests/CMakeCommands/target_link_libraries/libs_build_True_False RUNPATH /home/buildbot/repos/build/cmake/Tests/CMakeCommands/target_link_libraries/libs_build_True_False INIT 0x000105e8 FINI 0x00010a54 HASH 0x00010164 GNU_HASH 0x00010200 STRTAB 0x000103a8 SYMTAB 0x00010268 STRSZ 0x00000179 SYMENT 0x00000010 PLTGOT 0x0001111c DEBUG 0x00000000 PLTRELSZ 0x00000060 PLTREL 0x00000007 JMPREL 0x00010578 RELA 0x0001056c RELASZ 0x0000000c RELAENT 0x0000000c VERNEED 0x0001054c VERNEEDNUM 0x00000001 VERSYM 0x00010522 Version References: required from libc.so.6: 0x0d696912 0x00 02 GLIBC_2.2 Sections: Idx Name Size VMA LMA File off Algn 0 .interp 0000000d 00010134 00010134 00000134 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 1 .note.ABI-tag 00000020 00010144 00010144 00000144 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 2 .hash 0000009c 00010164 00010164 00000164 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 3 .gnu.hash 00000068 00010200 00010200 00000200 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 4 .dynsym 00000140 00010268 00010268 00000268 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 5 .dynstr 00000179 000103a8 000103a8 000003a8 2**0 CONTENTS, ALLOC, LOAD, READONLY, DATA 6 .gnu.version 00000028 00010522 00010522 00000522 2**1 CONTENTS, ALLOC, LOAD, READONLY, DATA 7 .gnu.version_r 00000020 0001054c 0001054c 0000054c 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 8 .rela.dyn 0000000c 0001056c 0001056c 0000056c 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 9 .rela.plt 00000060 00010578 00010578 00000578 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 10 .init 00000048 000105d8 000105d8 000005d8 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 11 .text 00000434 00010620 00010620 00000620 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 12 .fini 00000028 00010a54 00010a54 00000a54 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 13 .rodata 00000018 00010a7c 00010a7c 00000a7c 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 14 .PARISC.unwind 000000e0 00010a94 00010a94 00000a94 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 15 .eh_frame_hdr 0000001c 00010b74 00010b74 00000b74 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 16 .eh_frame 00000054 00010b90 00010b90 00000b90 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 17 .ctors 00000008 00011000 00011000 00001000 2**2 CONTENTS, ALLOC, LOAD, DATA 18 .dtors 00000008 00011008 00011008 00001008 2**2 CONTENTS, ALLOC, LOAD, DATA 19 .jcr 00000004 00011010 00011010 00001010 2**2 CONTENTS, ALLOC, LOAD, DATA 20 .dynamic 00000108 00011014 00011014 00001014 2**2 CONTENTS, ALLOC, LOAD, DATA 21 .data 00000008 0001111c 0001111c 0000111c 2**2 CONTENTS, ALLOC, LOAD, DATA 22 .plt 0000005c 00011124 00011124 00001124 2**2 CONTENTS, ALLOC, LOAD, CODE 23 .got 0000001c 00011180 00011180 00001180 2**2 CONTENTS, ALLOC, LOAD, DATA 24 .bss 00000014 0001119c 0001119c 0000119c 2**2 ALLOC 25 .comment 0000002d 00000000 00000000 0000119c 2**0 CONTENTS, READONLY 26 .note 00000014 00000000 00000000 000011c9 2**0 CONTENTS, READONLY SYMBOL TABLE: 00010134 l d .interp 00000000 .interp 00010144 l d .note.ABI-tag 00000000 .note.ABI-tag 00010164 l d .hash 00000000 .hash 00010200 l d .gnu.hash 00000000 .gnu.hash 00010268 l d .dynsym 00000000 .dynsym 000103a8 l d .dynstr 00000000 .dynstr 00010522 l d .gnu.version 00000000 .gnu.version 0001054c l d .gnu.version_r 00000000 .gnu.version_r 0001056c l d .rela.dyn 00000000 .rela.dyn 00010578 l d .rela.plt 00000000 .rela.plt 000105d8 l d .init 00000000 .init 00010620 l d .text 00000000 .text 00010a54 l d .fini 00000000 .fini 00010a7c l d .rodata 00000000 .rodata 00010a94 l d .PARISC.unwind 00000000 .PARISC.unwind 00010b74 l d .eh_frame_hdr 00000000 .eh_frame_hdr 00010b90 l d .eh_frame 00000000 .eh_frame 00011000 l d .ctors 00000000 .ctors 00011008 l d .dtors 00000000 .dtors 00011010 l d .jcr 00000000 .jcr 00011014 l d .dynamic 00000000 .dynamic 0001111c l d .data 00000000 .data 00011124 l d .plt 00000000 .plt 00011180 l d .got 00000000 .got 0001119c l d .bss 00000000 .bss 00000000 l d .comment 00000000 .comment 00000000 l d .note 00000000 .note 00010a7c l .rodata 00000000 .Lpmain 00010a88 l .rodata 00000000 .Lp__libc_csu_init 00010a84 l .rodata 00000000 .Lp__libc_csu_fini 00011008 l O .dtors 00000000 __DTOR_LIST__ 00011010 l O .jcr 00000000 __JCR_LIST__ 000106a4 l F .text 00000094 __do_global_dtors_aux 0001119c l O .bss 00000001 completed.5781 000111a0 l O .bss 00000004 dtor_idx.5783 0001074c l F .text 0000003c frame_dummy 00011004 l O .ctors 00000000 __CTOR_END__ 000109c4 l F .text 00000078 __do_global_ctors_aux ffffffec l *ABS* 00000000 r31_slot fffffff0 l *ABS* 00000000 sr0_slot ffffffec l *ABS* 00000000 mrp_slot 000111a4 l O .bss 00000004 fixup.1205 000111a8 l O .bss 00000008 fixup_plabel.1204 00011120 l O .data 00000000 __dso_handle 0001100c l O .dtors 00000000 __DTOR_END__ 00010800 l F .text 00000114 __canonicalize_funcptr_for_compare 00011000 l .ctors 00000000 __init_array_end 000107e8 l .text 00000018 $$dyncall 00011000 l .ctors 00000000 __init_array_start 00011014 l O .dynamic 00000000 _DYNAMIC 0001111c w .data 00000000 data_start 000109c0 g F .text 00000004 __libc_csu_fini 00010650 g F .text 00000050 _start 00000000 F *UND* 00000000 _ZN6classCC1Ev 00010a50 w F .text 00000004 __gmon_start__ 00000000 w *UND* 00000000 _Jv_RegisterClasses 00010a54 g F .fini 00000000 _fini 00011180 g O *ABS* 00000000 _GLOBAL_OFFSET_TABLE_ 00010a8c g O .rodata 00000004 _IO_stdin_used 0001111c g .data 00000000 __data_start 0001111c g O .data 00000000 $global$ 00010914 g F .text 000000ac __libc_csu_init 0001119c g *ABS* 00000000 __bss_start 00000000 F *UND* 00000000 __libc_start_main@@GLIBC_2.2 00000000 F *UND* 00000000 _ZN6classBC1Ev 000111b0 g *ABS* 00000000 _end 0001119c g *ABS* 00000000 _edata 0001079c g F .text 0000004c main 000105e8 g F .init 00000000 _init buildbot@voyager ~/repos/build/cmake/Tests/CMakeCommands/target_link_libraries/fail19 $ cat CMakeFiles/exec.dir/link.txt /usr/bin/g++-4.5.3 -Wl,--unique=.text.* CMakeFiles/exec.dir/main.cpp.o -o exec -rdynamic /home/buildbot/repos/build/cmake/Tests/CMakeCommands/target_link_libraries/libs_build_True_False/liblibC.so -Wl,-rpath,/home/buildbot/repos/build/cmake/Tests/CMakeCommands/target_link_libraries/libs_build_True_False -Wl,-rpath-link,/home/buildbot/repos/build/cmake/Tests/CMakeCommands/target_link_libraries/libs_build_True_False What else do you need? Eike -- Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Follow this link to subscribe/unsubscribe: http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers