[cmake-developers] Apple tests for target_link_libraries failing

David Cole david.cole at kitware.com
Thu Oct 13 12:09:01 EDT 2011


On Thu, Oct 13, 2011 at 12:01 PM, Stephen Kelly <steveire at gmail.com> wrote:
> On Thu, Oct 13, 2011 at 4:33 PM, Richard Wackerbarth <richard at nfsnet.org> wrote:
>> Steve,
>>
>> Here is the output from the version of test19 that you sent privately.
>> The version of cmake was built with last night's dashboard.
>> I don't see the failure here. Am I doing something wrong?
>
> Hi,
>
> it doesn't look like you're doing anything wrong. I'm definitely not
> an expert in linker flags, options and outputs though.
>

Not an expert...? You will be soon. :-)

> I don't know what to look for to find out why that is linking
> successfully anyway even though it does not link to libB.
>
> The only thing I was looking for was the linker invocation which shows
> that the executable is linked to libC but not libB.
>
> Does any cmake developer have any idea how this could happen?
>

Not I. Also not an expert in linker flags.


> Thanks,
>
> Steve.
>
>>
>> Richard
>>
>> [rkw at Chameleon-12 ~/test19-build]$ rm -rf *
>> [rkw at Chameleon-12 ~/test19-build]$ /usr/local/bin/cmake --version
>> cmake version 2.8.6.20111012-gb6440
>> [rkw at Chameleon-12 ~/test19-build]$ cmake ../test19
>> -- The C compiler identification is GNU
>> -- The CXX compiler identification is GNU
>> -- Check for working C compiler: /usr/bin/gcc
>> -- Check for working C compiler: /usr/bin/gcc -- works
>> -- Detecting C compiler ABI info
>> -- Detecting C compiler ABI info - done
>> -- Check for working CXX compiler: /usr/bin/c++
>> -- Check for working CXX compiler: /usr/bin/c++ -- works
>> -- Detecting CXX compiler ABI info
>> -- Detecting CXX compiler ABI info - done
>> -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
>> -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
>> -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
>> -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
>> -- Performing Test COMPILER_HAS_DEPRECATED_ATTR
>> -- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
>> -- Configuring done
>> -- Generating done
>> -- Build files have been written to: /home/rkw/test19-build
>> [rkw at Chameleon-12 ~/test19-build]$ make
>> /usr/local/bin/cmake -H/home/rkw/test19 -B/home/rkw/test19-build --check-build-system CMakeFiles/Makefile.cmake 0
>> /usr/local/bin/cmake -E cmake_progress_start /home/rkw/test19-build/CMakeFiles /home/rkw/test19-build/CMakeFiles/progress.marks
>> make -f CMakeFiles/Makefile2 all
>> make -f lib/CMakeFiles/libA.dir/build.make lib/CMakeFiles/libA.dir/depend
>> cd /home/rkw/test19-build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/rkw/test19 /home/rkw/test19/lib /home/rkw/test19-build /home/rkw/test19-build/lib /home/rkw/test19-build/lib/CMakeFiles/libA.dir/DependInfo.cmake --color=
>> Scanning dependencies of target libA
>> make -f lib/CMakeFiles/libA.dir/build.make lib/CMakeFiles/libA.dir/build
>> /usr/local/bin/cmake -E cmake_progress_report /home/rkw/test19-build/CMakeFiles 2
>> [ 25%] Building CXX object lib/CMakeFiles/libA.dir/classA.cpp.o
>> cd /home/rkw/test19-build/lib && /usr/bin/c++   -DlibA_EXPORTS -fPIC -I/home/rkw/test19-build/lib -I/home/rkw/test19/lib -o CMakeFiles/libA.dir/classA.cpp.o -c /home/rkw/test19/lib/classA.cpp
>> Linking CXX shared library liblibA.so
>> cd /home/rkw/test19-build/lib && /usr/local/bin/cmake -E cmake_link_script CMakeFiles/libA.dir/link.txt --verbose=1
>> /usr/bin/c++  -fPIC    -shared -Wl,-soname,liblibA.so -o liblibA.so CMakeFiles/libA.dir/classA.cpp.o
>> /usr/local/bin/cmake -E cmake_progress_report /home/rkw/test19-build/CMakeFiles  2
>> [ 25%] Built target libA
>> make -f lib/CMakeFiles/libB.dir/build.make lib/CMakeFiles/libB.dir/depend
>> cd /home/rkw/test19-build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/rkw/test19 /home/rkw/test19/lib /home/rkw/test19-build /home/rkw/test19-build/lib /home/rkw/test19-build/lib/CMakeFiles/libB.dir/DependInfo.cmake --color=
>> Scanning dependencies of target libB
>> make -f lib/CMakeFiles/libB.dir/build.make lib/CMakeFiles/libB.dir/build
>> /usr/local/bin/cmake -E cmake_progress_report /home/rkw/test19-build/CMakeFiles 3
>> [ 50%] Building CXX object lib/CMakeFiles/libB.dir/classB.cpp.o
>> cd /home/rkw/test19-build/lib && /usr/bin/c++   -DlibB_EXPORTS -fPIC -I/home/rkw/test19-build/lib -I/home/rkw/test19/lib -o CMakeFiles/libB.dir/classB.cpp.o -c /home/rkw/test19/lib/classB.cpp
>> Linking CXX shared library liblibB.so
>> cd /home/rkw/test19-build/lib && /usr/local/bin/cmake -E cmake_link_script CMakeFiles/libB.dir/link.txt --verbose=1
>> /usr/bin/c++  -fPIC    -shared -Wl,-soname,liblibB.so -o liblibB.so CMakeFiles/libB.dir/classB.cpp.o liblibA.so -Wl,-rpath,/home/rkw/test19-build/lib
>> /usr/local/bin/cmake -E cmake_progress_report /home/rkw/test19-build/CMakeFiles  3
>> [ 50%] Built target libB
>> make -f lib/CMakeFiles/libC.dir/build.make lib/CMakeFiles/libC.dir/depend
>> cd /home/rkw/test19-build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/rkw/test19 /home/rkw/test19/lib /home/rkw/test19-build /home/rkw/test19-build/lib /home/rkw/test19-build/lib/CMakeFiles/libC.dir/DependInfo.cmake --color=
>> Scanning dependencies of target libC
>> make -f lib/CMakeFiles/libC.dir/build.make lib/CMakeFiles/libC.dir/build
>> /usr/local/bin/cmake -E cmake_progress_report /home/rkw/test19-build/CMakeFiles 4
>> [ 75%] Building CXX object lib/CMakeFiles/libC.dir/classC.cpp.o
>> cd /home/rkw/test19-build/lib && /usr/bin/c++   -DlibC_EXPORTS -fPIC -I/home/rkw/test19-build/lib -I/home/rkw/test19/lib -o CMakeFiles/libC.dir/classC.cpp.o -c /home/rkw/test19/lib/classC.cpp
>> Linking CXX shared library liblibC.so
>> cd /home/rkw/test19-build/lib && /usr/local/bin/cmake -E cmake_link_script CMakeFiles/libC.dir/link.txt --verbose=1
>> /usr/bin/c++  -fPIC    -shared -Wl,-soname,liblibC.so -o liblibC.so CMakeFiles/libC.dir/classC.cpp.o liblibA.so liblibB.so liblibA.so -Wl,-rpath,/home/rkw/test19-build/lib
>> /usr/local/bin/cmake -E cmake_progress_report /home/rkw/test19-build/CMakeFiles  4
>> [ 75%] Built target libC
>> make -f CMakeFiles/exec.dir/build.make CMakeFiles/exec.dir/depend
>> cd /home/rkw/test19-build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /home/rkw/test19 /home/rkw/test19 /home/rkw/test19-build /home/rkw/test19-build /home/rkw/test19-build/CMakeFiles/exec.dir/DependInfo.cmake --color=
>> Scanning dependencies of target exec
>> make -f CMakeFiles/exec.dir/build.make CMakeFiles/exec.dir/build
>> /usr/local/bin/cmake -E cmake_progress_report /home/rkw/test19-build/CMakeFiles 1
>> [100%] Building CXX object CMakeFiles/exec.dir/main.cpp.o
>> /usr/bin/c++    -I/home/rkw/test19-build -I/home/rkw/test19 -I/home/rkw/test19/lib -I/home/rkw/test19-build/lib -o CMakeFiles/exec.dir/main.cpp.o -c /home/rkw/test19/main.cpp
>> Linking CXX executable exec
>> /usr/local/bin/cmake -E cmake_link_script CMakeFiles/exec.dir/link.txt --verbose=1
>> /usr/bin/c++       CMakeFiles/exec.dir/main.cpp.o  -o exec  lib/liblibC.so -Wl,-rpath,/home/rkw/test19-build/lib -Wl,-rpath-link,/home/rkw/test19-build/lib
>> /usr/local/bin/cmake -E cmake_progress_report /home/rkw/test19-build/CMakeFiles  1
>> [100%] Built target exec
>> /usr/local/bin/cmake -E cmake_progress_start /home/rkw/test19-build/CMakeFiles 0
>> [rkw at Chameleon-12 ~/test19-build]$
>>
>>
>> On Oct 13, 2011, at 1:43 AM, Stephen Kelly wrote:
>>
>>> On 10/12/2011 08:18 PM, Richard Wackerbarth wrote:
>>>> Stephen,
>>>>
>>>> I'm not sure what you were expecting.
>>>> The testing starts was with the version of test19 from the email thread. The second run is from the file that you attached.
>>>>
>>>> Let me know what else you would find useful.
>>>
>>> Hi Richard,
>>>
>>> You didn't actually build the code. You only ran cmake. You need to run make to attempt to build it (which should fail).
>>>
>>> Please send the result to the mailing list.
>>>
>>> Thanks,
>>>
>>> Steve.
>>>
>>>> Richard
>>>>
>>>> [rkw at Chameleon-12 ~/test19-build]$ ~/Chameleon-12/CMake/Experimental/CMake-build/bin/cmake ../test19
>>>> -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
>>>> -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
>>>> -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
>>>> -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
>>>> -- Performing Test COMPILER_HAS_DEPRECATED_ATTR
>>>> -- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
>>>> -- Configuring done
>>>> -- Generating done
>>>> -- Build files have been written to: /home/rkw/test19-build
>>>> [rkw at Chameleon-12 ~/test19-build]$ ls
>>>> CMakeCache.txt               CMakeFiles              Makefile                cmake_install.cmake     lib
>>>> [rkw at Chameleon-12 ~/test19-build]$ cd
>>>> [rkw at Chameleon-12 ~]$ ls
>>>> test19               build_should_also_fail.tar.gz   test19-build
>>>> [rkw at Chameleon-12 ~]$ mv test19 test19-save
>>>> [rkw at Chameleon-12 ~]$ tar -xzf build_should_also_fail.tar.gz
>>>> [rkw at Chameleon-12 ~]$ diff -r test19 test19-save/
>>>> diff -r test19/lib/CMakeLists.txt test19-save/lib/CMakeLists.txt
>>>> 13,14c13
>>>> <  # This is commented out:
>>>> <  # set(CMAKE_LINK_INTERFACE_LIBRARIES "")
>>>> ---
>>>>> set(CMAKE_LINK_INTERFACE_LIBRARIES "")
>>>> 26,30d24
>>>> <
>>>> <  target_link_libraries(libA LINK_INTERFACE_LIBRARIES "")
>>>> <  target_link_libraries(libB LINK_INTERFACE_LIBRARIES "")
>>>> <  target_link_libraries(libC LINK_INTERFACE_LIBRARIES "")
>>>> <
>>>> [rkw at Chameleon-12 ~]$ cd test19-build/
>>>> [rkw at Chameleon-12 ~/test19-build]$ rm -rf *
>>>> [rkw at Chameleon-12 ~/test19-build]$ ls -la
>>>> total 4
>>>> drwxr-xr-x   2 rkw  rkw  512 Oct 12 13:09 .
>>>> drwxr-xr-x  11 rkw  rkw  512 Oct 12 13:08 ..
>>>> [rkw at Chameleon-12 ~/test19-build]$ ~/Chameleon-12/CMake/Experimental/CMake-build/bin/cmake ../test19
>>>> -- The C compiler identification is GNU
>>>> -- The CXX compiler identification is GNU
>>>> -- Check for working C compiler: /usr/bin/gcc
>>>> -- Check for working C compiler: /usr/bin/gcc -- works
>>>> -- Detecting C compiler ABI info
>>>> -- Detecting C compiler ABI info - done
>>>> -- Check for working CXX compiler: /usr/bin/c++
>>>> -- Check for working CXX compiler: /usr/bin/c++ -- works
>>>> -- Detecting CXX compiler ABI info
>>>> -- Detecting CXX compiler ABI info - done
>>>> -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
>>>> -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
>>>> -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
>>>> -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
>>>> -- Performing Test COMPILER_HAS_DEPRECATED_ATTR
>>>> -- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
>>>> -- Configuring done
>>>> -- Generating done
>>>> -- Build files have been written to: /home/rkw/test19-build
>>>> [rkw at Chameleon-12 ~/test19-build]$ /usr/bin/gcc -v
>>>> Using built-in specs.
>>>> Target: amd64-undermydesk-freebsd
>>>> Configured with: FreeBSD/amd64 system compiler
>>>> Thread model: posix
>>>> gcc version 4.2.2 20070831 prerelease [FreeBSD]
>>>> [rkw at Chameleon-12 ~/test19-build]$
>>>>
>>>
>>>
>>
>>
> --
>
> 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
>



More information about the cmake-developers mailing list