@@ -13,7 +13,6 @@ include(PHP/CheckSegmentsAlignment)
1313
1414include_guard (GLOBAL )
1515
16- include (CheckLinkerFlag)
1716include (CheckSourceRuns)
1817include (CMakePushCheckState)
1918
@@ -30,129 +29,105 @@ if(
3029 return ()
3130endif ()
3231
33- check_linker_flag(
34- C
35- "LINKER:-z,common-page-size=2097152;LINKER:-z,max-page-size=2097152"
36- _HAVE_ALIGNMENT_FLAGS_C
37- )
32+ cmake_push_check_state(RESET)
33+ set (
34+ CMAKE_REQUIRED_LINK_OPTIONS
35+ LINKER:-z,common-page-size=2097152
36+ LINKER:-z,max-page-size=2097152
37+ )
38+ set (CMAKE_REQUIRED_QUIET TRUE )
3839
39- if (_HAVE_ALIGNMENT_FLAGS_C)
40+ check_source_runs(
41+ C
42+ [[int main(void) { return 0; }]]
43+ PHP_HAVE_ALIGNMENT_FLAGS_C
44+ )
45+ cmake_pop_check_state()
46+
47+ if (PHP_HAVE_ALIGNMENT_FLAGS_C)
48+ target_link_options (
49+ php_config
50+ INTERFACE
51+ $<$<AND :$<STREQUAL :$<TARGET_PROPERTY:TYPE >,EXECUTABLE>,$<LINK_LANGUAGE:ASM,C>>:LINKER:-z,common-page-size=2097152;LINKER:-z,max-page-size=2097152>
52+ )
53+ else ()
4054 cmake_push_check_state(RESET)
4155 set (
4256 CMAKE_REQUIRED_LINK_OPTIONS
43- LINKER:-z,common-page-size=2097152
4457 LINKER:-z,max-page-size=2097152
4558 )
59+ set (CMAKE_REQUIRED_QUIET TRUE )
60+
4661 check_source_runs(
4762 C
4863 [[int main(void) { return 0; }]]
49- PHP_HAVE_ALIGNMENT_FLAGS_C
64+ PHP_HAVE_MAX_PAGE_SIZE_C
5065 )
5166 cmake_pop_check_state()
5267
53- if (PHP_HAVE_ALIGNMENT_FLAGS_C )
68+ if (PHP_HAVE_MAX_PAGE_SIZE_C )
5469 target_link_options (
5570 php_config
5671 INTERFACE
57- $<$<AND :$<STREQUAL :$<TARGET_PROPERTY:TYPE >,EXECUTABLE>,$<LINK_LANGUAGE:ASM,C>>:LINKER:-z,common-page-size=2097152;LINKER:-z, max-page-size=2097152>
72+ $<$<AND :$<STREQUAL :$<TARGET_PROPERTY:TYPE >,EXECUTABLE>,$<LINK_LANGUAGE:ASM,C>>:LINKER:-z,max-page-size=2097152>
5873 )
5974 endif ()
60- else ()
61- check_linker_flag(
62- C
63- "LINKER:-z,max-page-size=2097152"
64- _HAVE_ZMAX_PAGE_SIZE_C
65- )
66-
67- if (_HAVE_ZMAX_PAGE_SIZE_C)
68- cmake_push_check_state(RESET)
69- set (
70- CMAKE_REQUIRED_LINK_OPTIONS
71- LINKER:-z,max-page-size=2097152
72- )
73- check_source_runs(
74- C
75- [[int main(void) { return 0; }]]
76- PHP_HAVE_ZMAX_PAGE_SIZE_C
77- )
78- cmake_pop_check_state()
79-
80- if (PHP_HAVE_ZMAX_PAGE_SIZE_C)
81- target_link_options (
82- php_config
83- INTERFACE
84- $<$<AND :$<STREQUAL :$<TARGET_PROPERTY:TYPE >,EXECUTABLE>,$<LINK_LANGUAGE:ASM,C>>:LINKER:-z,max-page-size=2097152>
85- )
86- endif ()
87- endif ()
8875endif ()
8976
9077get_property (enabledLanguages GLOBAL PROPERTY ENABLED_LANGUAGES )
9178
9279if (CXX IN_LIST enabledLanguages)
93- check_linker_flag(
94- CXX
95- "LINKER:-z,common-page-size=2097152;LINKER:-z,max-page-size=2097152"
96- _HAVE_ALIGNMENT_FLAGS_CXX
97- )
80+ cmake_push_check_state(RESET)
81+ set (
82+ CMAKE_REQUIRED_LINK_OPTIONS
83+ LINKER:-z,common-page-size=2097152
84+ LINKER:-z,max-page-size=2097152
85+ )
86+ set (CMAKE_REQUIRED_QUIET TRUE )
87+
88+ check_source_runs(
89+ CXX
90+ [[int main(void) { return 0; }]]
91+ PHP_HAVE_ALIGNMENT_FLAGS_CXX
92+ )
93+ cmake_pop_check_state()
9894
99- if (_HAVE_ALIGNMENT_FLAGS_CXX)
95+ if (PHP_HAVE_ALIGNMENT_FLAGS_CXX)
96+ target_link_options (
97+ php_config
98+ INTERFACE
99+ $<$<AND :$<STREQUAL :$<TARGET_PROPERTY:TYPE >,EXECUTABLE>,$<LINK_LANGUAGE:CXX>>:LINKER:-z,common-page-size=2097152;LINKER:-z,max-page-size=2097152;>
100+ )
101+ else ()
100102 cmake_push_check_state(RESET)
101103 set (
102104 CMAKE_REQUIRED_LINK_OPTIONS
103- LINKER:-z,common-page-size=2097152
104105 LINKER:-z,max-page-size=2097152
105106 )
107+ set (CMAKE_REQUIRED_QUIET TRUE )
108+
106109 check_source_runs(
107110 CXX
108111 [[int main(void) { return 0; }]]
109- PHP_HAVE_ALIGNMENT_FLAGS_CXX
112+ PHP_HAVE_MAX_PAGE_SIZE_CXX
110113 )
111114 cmake_pop_check_state()
112115
113- if (PHP_HAVE_ALIGNMENT_FLAGS_CXX )
116+ if (PHP_HAVE_MAX_PAGE_SIZE_CXX )
114117 target_link_options (
115118 php_config
116119 INTERFACE
117- $<$<AND :$<STREQUAL :$<TARGET_PROPERTY:TYPE >,EXECUTABLE>,$<LINK_LANGUAGE:CXX>>:LINKER:-z,common-page-size=2097152;LINKER:-z, max-page-size=2097152; >
120+ $<$<AND :$<STREQUAL :$<TARGET_PROPERTY:TYPE >,EXECUTABLE>,$<LINK_LANGUAGE:CXX>>:LINKER:-z,max-page-size=2097152>
118121 )
119122 endif ()
120- else ()
121- check_linker_flag(
122- CXX
123- "LINKER:-z,max-page-size=2097152"
124- _HAVE_ZMAX_PAGE_SIZE_CXX
125- )
126-
127- if (_HAVE_ZMAX_PAGE_SIZE_CXX)
128- cmake_push_check_state(RESET)
129- set (
130- CMAKE_REQUIRED_LINK_OPTIONS
131- LINKER:-z,max-page-size=2097152
132- )
133- check_source_runs(
134- CXX
135- [[int main(void) { return 0; }]]
136- PHP_HAVE_ZMAX_PAGE_SIZE_CXX
137- )
138- cmake_pop_check_state()
139-
140- if (PHP_HAVE_ZMAX_PAGE_SIZE_CXX)
141- target_link_options (
142- php_config
143- INTERFACE
144- $<$<AND :$<STREQUAL :$<TARGET_PROPERTY:TYPE >,EXECUTABLE>,$<LINK_LANGUAGE:CXX>>:LINKER:-z,max-page-size=2097152>
145- )
146- endif ()
147- endif ()
148123 endif ()
149124endif ()
150125
151126if (
152127 PHP_HAVE_ALIGNMENT_FLAGS_C
153128 OR PHP_HAVE_ALIGNMENT_FLAGS_CXX
154- OR PHP_HAVE_ZMAX_PAGE_SIZE_C
155- OR PHP_HAVE_ZMAX_PAGE_SIZE_CXX
129+ OR PHP_HAVE_MAX_PAGE_SIZE_C
130+ OR PHP_HAVE_MAX_PAGE_SIZE_CXX
156131)
157132 message (CHECK_PASS "done" )
158133else ()
0 commit comments