|
1 | 1 | diff --git a/cmake/compilers/GNU.cmake b/cmake/compilers/GNU.cmake |
2 | | -index da6b408a..3730919a 100644 |
| 2 | +index 4f552091..9f613dd9 100644 |
3 | 3 | --- a/cmake/compilers/GNU.cmake |
4 | 4 | +++ b/cmake/compilers/GNU.cmake |
5 | | -@@ -47,19 +47,24 @@ endif() |
| 5 | +@@ -47,26 +47,12 @@ endif() |
6 | 6 | # >=2.31.1). Capturing the output in CMake can be done like below. The version |
7 | 7 | # information is written to either stdout or stderr. To not make any |
8 | 8 | # assumptions, both are captured. |
9 | 9 | -execute_process( |
10 | | -- COMMAND ${CMAKE_COMMAND} -E env "LANG=C" ${CMAKE_CXX_COMPILER} -xc -c /dev/null -Wa,-v -o/dev/null |
| 10 | +- COMMAND ${CMAKE_COMMAND} -E env "LC_ALL=C" "LANG=C" ${CMAKE_CXX_COMPILER} -xc -c /dev/null -Wa,-v -o/dev/null |
11 | 11 | - OUTPUT_VARIABLE ASSEMBLER_VERSION_LINE_OUT |
12 | 12 | - ERROR_VARIABLE ASSEMBLER_VERSION_LINE_ERR |
13 | 13 | - OUTPUT_STRIP_TRAILING_WHITESPACE |
14 | 14 | - ERROR_STRIP_TRAILING_WHITESPACE |
15 | 15 | -) |
16 | 16 | -set(ASSEMBLER_VERSION_LINE ${ASSEMBLER_VERSION_LINE_OUT}${ASSEMBLER_VERSION_LINE_ERR}) |
17 | | --string(REGEX REPLACE ".*GNU assembler version ([0-9]+)\\.([0-9]+).*" "\\1" _tbb_gnu_asm_major_version "${ASSEMBLER_VERSION_LINE}") |
18 | | --string(REGEX REPLACE ".*GNU assembler version ([0-9]+)\\.([0-9]+).*" "\\2" _tbb_gnu_asm_minor_version "${ASSEMBLER_VERSION_LINE}") |
19 | | --unset(ASSEMBLER_VERSION_LINE_OUT) |
20 | | --unset(ASSEMBLER_VERSION_LINE_ERR) |
21 | | --unset(ASSEMBLER_VERSION_LINE) |
22 | | -+if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.29) |
23 | | -+ string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*" "\\1" _tbb_gnu_asm_major_version "${CMAKE_CXX_COMPILER_LINKER_VERSION}") |
24 | | -+ string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*" "\\2" _tbb_gnu_asm_minor_version "${CMAKE_CXX_COMPILER_LINKER_VERSION}") |
25 | | -+else() |
26 | | -+ execute_process( |
27 | | -+ COMMAND ${CMAKE_COMMAND} -E env "LANG=C" ${CMAKE_CXX_COMPILER} -xc -c /dev/null -Wa,-v -o/dev/null |
28 | | -+ OUTPUT_VARIABLE ASSEMBLER_VERSION_LINE_OUT |
29 | | -+ ERROR_VARIABLE ASSEMBLER_VERSION_LINE_ERR |
30 | | -+ OUTPUT_STRIP_TRAILING_WHITESPACE |
31 | | -+ ERROR_STRIP_TRAILING_WHITESPACE |
32 | | -+ ) |
33 | | -+ set(ASSEMBLER_VERSION_LINE ${ASSEMBLER_VERSION_LINE_OUT}${ASSEMBLER_VERSION_LINE_ERR}) |
34 | | -+ string(REGEX REPLACE ".*GNU assembler version ([0-9]+)\\.([0-9]+).*" "\\1" _tbb_gnu_asm_major_version "${ASSEMBLER_VERSION_LINE}") |
35 | | -+ string(REGEX REPLACE ".*GNU assembler version ([0-9]+)\\.([0-9]+).*" "\\2" _tbb_gnu_asm_minor_version "${ASSEMBLER_VERSION_LINE}") |
36 | | -+ unset(ASSEMBLER_VERSION_LINE_OUT) |
37 | | -+ unset(ASSEMBLER_VERSION_LINE_ERR) |
38 | | -+ unset(ASSEMBLER_VERSION_LINE) |
39 | | -+endif() |
40 | | - message(TRACE "Extracted GNU assembler version: major=${_tbb_gnu_asm_major_version} minor=${_tbb_gnu_asm_minor_version}") |
| 17 | +-if ("${ASSEMBLER_VERSION_LINE}" MATCHES "GNU assembler version") |
| 18 | +- string(REGEX REPLACE ".*GNU assembler version ([0-9]+)\\.([0-9]+).*" "\\1" _tbb_gnu_asm_major_version "${ASSEMBLER_VERSION_LINE}") |
| 19 | +- string(REGEX REPLACE ".*GNU assembler version ([0-9]+)\\.([0-9]+).*" "\\2" _tbb_gnu_asm_minor_version "${ASSEMBLER_VERSION_LINE}") |
| 20 | +- unset(ASSEMBLER_VERSION_LINE_OUT) |
| 21 | +- unset(ASSEMBLER_VERSION_LINE_ERR) |
| 22 | +- unset(ASSEMBLER_VERSION_LINE) |
| 23 | +- message(TRACE "Extracted GNU assembler version: major=${_tbb_gnu_asm_major_version} minor=${_tbb_gnu_asm_minor_version}") |
| 24 | +- |
| 25 | +- math(EXPR _tbb_gnu_asm_version_number "${_tbb_gnu_asm_major_version} * 1000 + ${_tbb_gnu_asm_minor_version}") |
| 26 | +- set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} "-D__TBB_GNU_ASM_VERSION=${_tbb_gnu_asm_version_number}") |
| 27 | +- message(STATUS "GNU Assembler version: ${_tbb_gnu_asm_major_version}.${_tbb_gnu_asm_minor_version} (${_tbb_gnu_asm_version_number})") |
| 28 | +-endif() |
| 29 | ++string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*" "\\1" _tbb_gnu_asm_major_version "${CMAKE_CXX_COMPILER_LINKER_VERSION}") |
| 30 | ++string(REGEX REPLACE "^([0-9]+)\\.([0-9]+).*" "\\2" _tbb_gnu_asm_minor_version "${CMAKE_CXX_COMPILER_LINKER_VERSION}") |
| 31 | ++message(TRACE "Extracted GNU assembler version: major=${_tbb_gnu_asm_major_version} minor=${_tbb_gnu_asm_minor_version}") |
| 32 | ++math(EXPR _tbb_gnu_asm_version_number "${_tbb_gnu_asm_major_version} * 1000 + ${_tbb_gnu_asm_minor_version}") |
| 33 | ++set(TBB_COMMON_COMPILE_FLAGS ${TBB_COMMON_COMPILE_FLAGS} "-D__TBB_GNU_ASM_VERSION=${_tbb_gnu_asm_version_number}") |
| 34 | ++message(STATUS "GNU Assembler version: ${_tbb_gnu_asm_major_version}.${_tbb_gnu_asm_minor_version} (${_tbb_gnu_asm_version_number})") |
41 | 35 |
|
42 | | - math(EXPR _tbb_gnu_asm_version_number "${_tbb_gnu_asm_major_version} * 1000 + ${_tbb_gnu_asm_minor_version}") |
| 36 | + # Enable Intel(R) Transactional Synchronization Extensions (-mrtm) and WAITPKG instructions support (-mwaitpkg) on relevant processors |
| 37 | + if (CMAKE_SYSTEM_PROCESSOR MATCHES "(AMD64|amd64|i.86|x86)" AND NOT EMSCRIPTEN) |
0 commit comments