[CMake] [CMAKE] cmake_device_link.o: nvcc fatal: Unknown option 'Wl, -start-group'

Marc CHEVRIER marc.chevrier at gmail.com
Sat Sep 8 02:45:39 EDT 2018


Hi,

To avoid this, put link flags in ‘LINK_FLAGS’ target properly.
´target_link_libraries’ is populating ´LINK_LIBRARIES’ target property.

Le sam. 8 sept. 2018 à 01:40, Alvin Chu <chujingjun at gmail.com> a écrit :

> Hi cmake team,
> I'm using cmake 3.12.1, and building a project which has cuda codes, the
> cmake file looks like,
> list(APPEND ALL_OBJECTS  $<TARGET_OBJECTS: normal_obj>)
> list(APPEND ALL_OBJECTS  $<TARGET_OBJECTS: cuda_obj>)
> add_library(lib1 SHARED ${ALL_OBJECTS})
> list(APPEND ALL_LIBRARIES -Wl,-start-group)
> list(APPEND ALL_LIBRARIES  ${SOME_LIBS})
> list(APPEND ALL_LIBRARIES -Wl,-end-group)
> target_link_libraries(lib1 ${ALL_LIBRARIES})
>
> Now for this project, cmake will generate a cmake_device_link.o, using
> the link flags in lib1, then I got error
> nvcc   fatal   : Unknown option 'Wl,-start-group'
>
> I checked cmake source code, and seems cmake doesn't check if the link
> flags in lib1 is supported by nvcc or not, and it directly passed all the
> flag to nvcc which caused the problem. Maybe this is one way to fix this
> issue.
>
> I also noticed cmMakefileLibraryTargetGenerator::WriteStaticLibraryRules
> will check CUDA_RESOLVE_DEVICE_SYMBOLS to decide if need generate
> cmake_device_link.o or not,
> but cmMakefileLibraryTargetGenerator::WriteSharedLibraryRules don't, I
> tried add this check in cmMakefileLibraryTargetGenerator::WriteSharedLibraryRules,
> and my build can success w/o cmake_device_link.o, so maybe this is also a
> way to fix the issue.
>
> I'm new to cmake, so if there's any better way to solve my problem, please
> let me know.
>
> Thanks.
> Alvin
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at:
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> https://cmake.org/mailman/listinfo/cmake
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20180908/56154114/attachment-0001.html>


More information about the CMake mailing list