diff options
author | Roger Leigh <rleigh@codelibre.net> | 2021-02-06 22:08:25 +0000 |
---|---|---|
committer | Roger Leigh <rleigh@codelibre.net> | 2021-02-13 12:24:53 +0000 |
commit | 6d4c815ddf27325890344980ec09b6bbcbf4979a (patch) | |
tree | 696afcd02a078244f2c433e793fd43a7d25319a1 /cmake/LinkerChecks.cmake | |
parent | af6cca4c0a4441e69bbde31d54615ea91b257ca4 (diff) | |
download | libtiff-git-6d4c815ddf27325890344980ec09b6bbcbf4979a.tar.gz |
cmake: Move linker checks to LinkerChecks.cmake
Diffstat (limited to 'cmake/LinkerChecks.cmake')
-rw-r--r-- | cmake/LinkerChecks.cmake | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/cmake/LinkerChecks.cmake b/cmake/LinkerChecks.cmake new file mode 100644 index 00000000..ad1f0f9f --- /dev/null +++ b/cmake/LinkerChecks.cmake @@ -0,0 +1,50 @@ +# Check linker capabilities +# +# Copyright © 2015 Open Microscopy Environment / University of Dundee +# Copyright © 2021 Roger Leigh <rleigh@codelibre.net> +# Written by Roger Leigh <rleigh@codelibre.net> +# +# Permission to use, copy, modify, distribute, and sell this software and +# its documentation for any purpose is hereby granted without fee, provided +# that (i) the above copyright notices and this permission notice appear in +# all copies of the software and related documentation, and (ii) the names of +# Sam Leffler and Silicon Graphics may not be used in any advertising or +# publicity relating to the software without the specific, prior written +# permission of Sam Leffler and Silicon Graphics. +# +# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, +# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY +# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. +# +# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR +# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, +# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF +# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE +# OF THIS SOFTWARE. + + +include(CheckCSourceCompiles) + + +option(ld-version-script "Enable linker version script" ON) + +# Check if LD supports linker scripts. +file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/conftest.map" "VERS_1 { + global: sym; +}; + +VERS_2 { + global: sym; +} VERS_1; +") +set(CMAKE_REQUIRED_FLAGS_SAVE ${CMAKE_REQUIRED_FLAGS}) +set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS} "-Wl,--version-script=${CMAKE_CURRENT_BINARY_DIR}/conftest.map") +check_c_source_compiles("int main(void){return 0;}" HAVE_LD_VERSION_SCRIPT) +set(CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS_SAVE}) +file(REMOVE "${CMAKE_CURRENT_BINARY_DIR}/conftest.map") +if (ld-version-script AND HAVE_LD_VERSION_SCRIPT) + set(HAVE_LD_VERSION_SCRIPT TRUE) +else() + set(HAVE_LD_VERSION_SCRIPT FALSE) +endif() |