diff options
author | Vladislav Vaintroub <vvaintroub@mysql.com> | 2010-01-26 15:56:50 +0100 |
---|---|---|
committer | Vladislav Vaintroub <vvaintroub@mysql.com> | 2010-01-26 15:56:50 +0100 |
commit | 7ce02039af008b724c98cba231749d43d3b1d3d2 (patch) | |
tree | 92fb241d2189e6f4395e0fd84188c222fa01e44d /cmake/os/Linux.cmake | |
parent | a8c47397fc3ede7d3452e48baf56bbb9bc28ea8f (diff) | |
download | mariadb-git-7ce02039af008b724c98cba231749d43d3b1d3d2.tar.gz |
WL#5161, implement Mats' suggeston to move platform specifics into own files
under cmake/os. This patch does it for Linux
Diffstat (limited to 'cmake/os/Linux.cmake')
-rw-r--r-- | cmake/os/Linux.cmake | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/cmake/os/Linux.cmake b/cmake/os/Linux.cmake new file mode 100644 index 00000000000..946e020d6f4 --- /dev/null +++ b/cmake/os/Linux.cmake @@ -0,0 +1,47 @@ + +# Copyright (C) 2010 Sun Microsystems, Inc +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +# This file includes Linux specific options and quirks, related to system checks + +INCLUDE(CheckSymbolExists) + +# Something that needs to be set on legacy reasons +SET(TARGET_OS_LINUX 1) +SET(HAVE_NPTL 1) +SET(_GNU_SOURCE 1) + +# Fix CMake (< 2.8) flags. -rdynamic exports too many symbols. +FOREACH(LANG C CXX) + STRING(REPLACE "-rdynamic" "" + CMAKE_SHARED_LIBRARY_LINK_${LANG}_FLAGS + ${CMAKE_SHARED_LIBRARY_LINK_${LANG}_FLAGS} + ) +ENDFOREACH() + +# Ensure we have clean build for shared libraries +# without unresolved symbols +SET(LINK_FLAG_NO_UNDEFINED "--Wl,--no-undefined") + +# 64 bit file offset support flag +SET(_FILE_OFFSET_BITS 64) + +# Linux specific HUGETLB /large page support +CHECK_SYMBOL_EXISTS(SHM_HUGETLB sys/shm.h HAVE_DECL_SHM_HUGETLB) +IF(HAVE_DECL_SHM_HUGETLB) + SET(HAVE_LARGE_PAGES 1) + SET(HUGETLB_USE_PROC_MEMINFO 1) + SET(HAVE_LARGE_PAGE_OPTION 1) +ENDIF() |