Skip to content

Commit ccd5be0

Browse files
beef9999lihuiba
authored andcommitted
CMake: Some gcc does not recognize -faligned-new. It's only for g++
1 parent 6df3d04 commit ccd5be0

2 files changed

Lines changed: 11 additions & 16 deletions

File tree

CMakeLists.txt

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,13 @@ if (NOT (${ARCH} STREQUAL x86_64) AND NOT (${ARCH} STREQUAL aarch64) AND NOT (${
5959
endif ()
6060

6161
# Global compile options, only effective within this project
62-
set(global_compile_options "-Wall -Wno-error=pragmas")
63-
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8.0)
64-
# Hint: -faligned-new is enabled by default after -std=c++17
65-
set(global_compile_options "${global_compile_options} -Werror -faligned-new")
66-
endif ()
62+
set(global_compile_options "-Werror -Wall -Wno-error=pragmas")
6763
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${global_compile_options}")
6864
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${global_compile_options}")
65+
if (${CMAKE_CXX_COMPILER_ID} STREQUAL GNU AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8.0)
66+
# Hint: -faligned-new is enabled by default after -std=c++17
67+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -faligned-new")
68+
endif ()
6969

7070
if (PHOTON_BUILD_WITH_ASAN)
7171
if ((NOT CMAKE_BUILD_TYPE STREQUAL "Debug") OR (NOT CMAKE_SYSTEM_NAME STREQUAL "Linux"))
@@ -82,6 +82,9 @@ set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
8282
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
8383
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -DNDEBUG -g")
8484
set(CMAKE_CXX_FLAGS_MINSIZEREL "-O2 -march=native") # Only for CI test
85+
set(CMAKE_C_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
86+
set(CMAKE_C_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
87+
set(CMAKE_C_FLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
8588
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
8689
set(CMAKE_BUILD_RPATH_USE_ORIGIN ON)
8790
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
@@ -90,23 +93,15 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
9093
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-packed-bitfield-compat")
9194
endif()
9295

93-
if (${ARCH} STREQUAL x86_64)
94-
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
95-
elseif (${ARCH} STREQUAL aarch64)
96-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=native -fsigned-char -fno-stack-protector -fomit-frame-pointer")
97-
endif ()
98-
9996
if (${ARCH} STREQUAL x86_64)
10097
check_cxx_compiler_flag(-mcrc32 COMPILER_HAS_MCRC32_FLAG)
10198
if (COMPILER_HAS_MCRC32_FLAG)
10299
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcrc32")
103100
endif ()
101+
elseif (${ARCH} STREQUAL aarch64)
102+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=native -fsigned-char -fno-stack-protector -fomit-frame-pointer")
104103
endif ()
105104

106-
set(CMAKE_C_FLAGS ${CMAKE_CXX_FLAGS})
107-
set(CMAKE_C_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
108-
set(CMAKE_C_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
109-
110105
# Default build type is Release
111106
if (NOT CMAKE_BUILD_TYPE)
112107
set(CMAKE_BUILD_TYPE Release)

doc/docs/api/env.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ The `io_engine` will setup ancillary threads running in the background, if neces
3838
- `event_engine` Supported types are:
3939
4040
- `INIT_EVENT_NONE` None, only used in test.
41-
- `INIT_EVENT_DEFAULT` It will first try `io_uring`, then choose `epoll` if io_uring failed.
41+
- `INIT_EVENT_DEFAULT` The default engine in Linux is `epoll`, and the one in macOS is `kqueue`.
4242
- `INIT_EVENT_EPOLL`
4343
- `INIT_EVENT_IOURING`
4444
- `INIT_EVENT_KQUEUE` Only avalaible on macOS or FreeBSD.

0 commit comments

Comments
 (0)