cmake_modules/compilerchecks.cmake
changeset 9206 4788b24fee05
parent 9169 ef53201e95ec
child 9207 16373565692a
equal deleted inserted replaced
9205:abce6011f86c 9206:4788b24fee05
    70     list(APPEND pascal_flags "-k--dynamicbase")
    70     list(APPEND pascal_flags "-k--dynamicbase")
    71     list(APPEND haskell_flags "-optl" "--dynamicbase")
    71     list(APPEND haskell_flags "-optl" "--dynamicbase")
    72     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_REQUIRED_FLAGS}")
    72     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_REQUIRED_FLAGS}")
    73 endif()
    73 endif()
    74 
    74 
       
    75 #this is actually an optimisation
       
    76 set(CMAKE_REQUIRED_FLAGS "-Wl,--as-needed")
       
    77 check_c_compiler_flag("" HAVE_ASNEEDED)
       
    78 if(HAVE_ASNEEDED)
       
    79     list(APPEND pascal_flags "-k--as-needed")
       
    80     list(APPEND haskell_flags "-optl" "--as-needed")
       
    81     set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_REQUIRED_FLAGS}")
       
    82 endif()
    75 
    83 
    76 #always unset or these flags will be spread everywhere
    84 #always unset or these flags will be spread everywhere
    77 unset(CMAKE_REQUIRED_FLAGS)
    85 unset(CMAKE_REQUIRED_FLAGS)
    78 
    86