1
2# Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
3#
4# This program is free software; you can redistribute it and/or modify
5# it under the terms of the GNU General Public License, version 2.0,
6# as published by the Free Software Foundation.
7#
8# This program is also distributed with certain software (including
9# but not limited to OpenSSL) that is licensed under separate terms,
10# as designated in a particular file or component or in included license
11# documentation.  The authors of MySQL hereby grant you an additional
12# permission to link the program and your derivative works with the
13# separately licensed software that they have included with MySQL.
14#
15# This program is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18# GNU General Public License, version 2.0, for more details.
19#
20# You should have received a copy of the GNU General Public License
21# along with this program; if not, write to the Free Software
22# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
23
24# This file includes Linux specific options and quirks, related to system checks
25
26INCLUDE(CheckSymbolExists)
27
28# Something that needs to be set on legacy reasons
29SET(TARGET_OS_LINUX 1)
30SET(_GNU_SOURCE 1)
31
32# Fix CMake (< 2.8) flags. -rdynamic exports too many symbols.
33FOREACH(LANG C CXX)
34  STRING(REPLACE "-rdynamic" ""
35  CMAKE_SHARED_LIBRARY_LINK_${LANG}_FLAGS
36  ${CMAKE_SHARED_LIBRARY_LINK_${LANG}_FLAGS}
37  )
38ENDFOREACH()
39
40# Ensure we have clean build for shared libraries
41# without unresolved symbols
42# Not supported with AddressSanitizer
43IF(NOT WITH_ASAN)
44  SET(LINK_FLAG_NO_UNDEFINED "-Wl,--no-undefined")
45ENDIF()
46
47# 64 bit file offset support flag
48SET(_FILE_OFFSET_BITS 64)
49ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64)
50
51# Linux specific HUGETLB /large page support
52CHECK_SYMBOL_EXISTS(SHM_HUGETLB sys/shm.h  HAVE_DECL_SHM_HUGETLB)
53IF(HAVE_DECL_SHM_HUGETLB)
54  SET(HAVE_LARGE_PAGES 1)
55  SET(HUGETLB_USE_PROC_MEMINFO 1)
56  SET(HAVE_LARGE_PAGE_OPTION 1)
57ENDIF()
58