Skip to content

Commit b4a9128

Browse files
committed
QNX: fix multiple build config errors
* QNX does not implement VA_RESTART * DISABLE_STRING_VIEW for asio * Add the appropriate linker flags * Set the FD_SETSIZE to max since asio only uses a select() based backend for QNX Issues: SILKIT-1779 Signed-off-by: Jan Kraemer <jan.kraemer@vector.com>
1 parent 96e7500 commit b4a9128

3 files changed

Lines changed: 12 additions & 6 deletions

File tree

SilKit/cmake/qnx-cross-base-toolchain.cmake

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ endif()
6868
add_compile_definitions(_QNX_SOURCE) #include all non-posix headers
6969
link_libraries(-lsocket) # link against QNX TCP/IP Stack
7070

71+
# Add compile options for asio. QNX does not implement SA_RESTART and ASIO does
72+
# not have a seperate check for QNX when using it
73+
# Also increase FD_SETSIZE globally from 256 to 1000 (QNX maximum)
74+
add_compile_definitions(SA_RESTART=0 FD_SETSIZE=1000)
75+
7176
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
7277
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
7378
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
@@ -78,14 +83,16 @@ set(CMAKE_C_COMPILER_TARGET ${qcc_arch})
7883

7984
set(CMAKE_CXX_COMPILER ${QPP_EXE})
8085
set(CMAKE_CXX_COMPILER_TARGET ${qcc_arch})
81-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wc,-std=c++14")
86+
87+
# Use LLVM stdlib for now, since GNU is segfaulting with future.waits
88+
# -Y and -stdlib should be redundant
89+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Y_cxx -stdlib=libc++ -Wc,-std=c++14")
90+
set(CMAKE_EXE_LINKER_FLAGS "-Wl,-z,origin")
8291

8392
set(CMAKE_ASM_COMPILER "${QCC_EXE}" -V${qcc_arch})
8493
set(CMAKE_ASM_DEFINE_FLAG "-Wa,--defsym,")
8594

8695
set(CMAKE_RANLIB ${RANLIB_EXE} CACHE PATH "QNX ranlib" FORCE)
8796
set(CMAKE_AR ${AR_EXE} CACHE PATH "QNX ranlib" FORCE)
8897

89-
set(CMAKE_MAKE_PROGRAM ${MAKE_EXE} CACHE PATH "QNX make" FORCE)
90-
91-
set(CMAKE_SKIP_BUILD_RPATH ON)
98+
set(CMAKE_SKIP_BUILD_RPATH ON)

SilKit/cmake/toolchain-qnx-x86_64.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@
2020
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2121

2222
#NB: Call <<QNX_INSTALLATION_DIR>>/qnxsdp-env.sh before building
23-
set(SILKIT_TARGET_TOOLSET "gcc_ntox86_64_gpp")
23+
set(SILKIT_TARGET_TOOLSET "gcc_ntox86_64")
2424
set(SILKIT_TARGET_ARCHITECTURE "x86_64")
2525
include(${CMAKE_CURRENT_LIST_DIR}/qnx-cross-base-toolchain.cmake)

SilKit/source/util/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ if(MINGW)
3939
target_compile_definitions(I_SilKit_Util INTERFACE _WIN32_WINNT=0x0601)
4040
endif()
4141

42-
4342
add_subdirectory(tests)
4443

4544

0 commit comments

Comments
 (0)