[cmake-developers] Apple tests for target_link_libraries failing

Stephen Kelly steveire at gmail.com
Thu Oct 13 12:01:14 EDT 2011


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.

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?

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]$
>>>
>>
>>
>
>



More information about the cmake-developers mailing list