@@ -34,7 +34,8 @@ option(ASAN "Enable AddressSanitizer (ASan)" OFF)
3434if (ASAN AND CMAKE_C_COMPILER_ID MATCHES "AppleClang|GNU|Clang" )
3535 add_definitions (-D__ASAN__=1)
3636 set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address" )
37- set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address" )
37+ set (CMAKE_SHARED_LINKER_FLAGS_DEBUG "${CMAKE_SHARED_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address" )
38+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address" )
3839endif ()
3940
4041# Compiler check
@@ -209,10 +210,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Android")
209210 src/unix /pthread-fixes.c
210211 src/unix /random-getentropy.c
211212 src/unix /random-getrandom.c
212- src/unix /random-sysctl-linux.c)
213+ src/unix /random-sysctl-linux.c
214+ src/unix /epoll.c)
213215endif ()
214216
215- if (APPLE OR CMAKE_SYSTEM_NAME MATCHES "Android|Linux|OS390 " )
217+ if (APPLE OR CMAKE_SYSTEM_NAME MATCHES "Android|Linux" )
216218 list (APPEND uv_sources src/unix /proctitle.c)
217219endif ()
218220
@@ -253,7 +255,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
253255 src/unix /linux-syscalls.c
254256 src/unix /procfs-exepath.c
255257 src/unix /random-getrandom.c
256- src/unix /random-sysctl-linux.c)
258+ src/unix /random-sysctl-linux.c
259+ src/unix /epoll.c)
257260endif ()
258261
259262if (CMAKE_SYSTEM_NAME STREQUAL "NetBSD" )
@@ -266,9 +269,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD")
266269endif ()
267270
268271if (CMAKE_SYSTEM_NAME STREQUAL "OS390" )
269- list (APPEND uv_defines PATH_MAX=255)
272+ enable_language (CXX)
273+ list (APPEND uv_defines PATH_MAX=1024)
270274 list (APPEND uv_defines _AE_BIMODAL)
271275 list (APPEND uv_defines _ALL_SOURCE)
276+ list (APPEND uv_defines _ENHANCED_ASCII_EXT=0xFFFFFFFF)
272277 list (APPEND uv_defines _ISOC99_SOURCE)
273278 list (APPEND uv_defines _LARGE_TIME_API)
274279 list (APPEND uv_defines _OPEN_MSGQ_EXT)
@@ -279,14 +284,31 @@ if(CMAKE_SYSTEM_NAME STREQUAL "OS390")
279284 list (APPEND uv_defines _UNIX03_SOURCE)
280285 list (APPEND uv_defines _UNIX03_THREADS)
281286 list (APPEND uv_defines _UNIX03_WITHDRAWN)
287+ list (APPEND uv_defines _XOPEN_SOURCE=600)
282288 list (APPEND uv_defines _XOPEN_SOURCE_EXTENDED)
283289 list (APPEND uv_sources
284290 src/unix /pthread-fixes.c
285291 src/unix /os390.c
286- src/unix /os390-syscalls.c)
287- list (APPEND uv_cflags -Wc,DLL -Wc,exportall -Wc,xplink)
288- list (APPEND uv_libraries -Wl,xplink)
289- list (APPEND uv_test_libraries -Wl,xplink)
292+ src/unix /os390-syscalls.c
293+ src/unix /os390-proctitle.c)
294+ list (APPEND uv_cflags
295+ -q64
296+ -qascii
297+ -qexportall
298+ -qgonumber
299+ -qlongname
300+ -qlibansi
301+ -qfloat=IEEE
302+ -qtune=10
303+ -qarch=10
304+ -qasm
305+ -qasmlib=sys1.maclib:sys1.modgen)
306+ find_library (ZOSLIB
307+ NAMES zoslib
308+ PATHS ${ZOSLIB_DIR}
309+ PATH_SUFFIXES lib
310+ )
311+ list (APPEND uv_libraries ${ZOSLIB} )
290312endif ()
291313
292314if (CMAKE_SYSTEM_NAME STREQUAL "OS400" )
@@ -303,9 +325,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "OS400")
303325endif ()
304326
305327if (CMAKE_SYSTEM_NAME STREQUAL "SunOS" )
306- list (APPEND uv_defines __EXTENSIONS__ _XOPEN_SOURCE=500)
328+ list (APPEND uv_defines __EXTENSIONS__ _XOPEN_SOURCE=500 _REENTRANT )
307329 list (APPEND uv_libraries kstat nsl sendfile socket)
308- list (APPEND uv_sources src/unix /no -proctitle.c src/unix /sunos.c)
330+ list (APPEND uv_sources
331+ src/unix /no -proctitle.c
332+ src/unix /sunos.c)
309333endif ()
310334
311335if (CMAKE_SYSTEM_NAME STREQUAL "Haiku" )
@@ -349,6 +373,10 @@ target_include_directories(uv
349373 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >
350374 PRIVATE
351375 $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR} /src>)
376+ if (CMAKE_SYSTEM_NAME STREQUAL "OS390" )
377+ target_include_directories (uv PUBLIC $<BUILD_INTERFACE:${ZOSLIB_DIR} /include >)
378+ set_target_properties (uv PROPERTIES LINKER_LANGUAGE CXX)
379+ endif ()
352380target_link_libraries (uv ${uv_libraries} )
353381
354382add_library (uv_a STATIC ${uv_sources} )
@@ -360,6 +388,10 @@ target_include_directories(uv_a
360388 $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >
361389 PRIVATE
362390 $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR} /src>)
391+ if (CMAKE_SYSTEM_NAME STREQUAL "OS390" )
392+ target_include_directories (uv_a PUBLIC $<BUILD_INTERFACE:${ZOSLIB_DIR} /include >)
393+ set_target_properties (uv_a PROPERTIES LINKER_LANGUAGE CXX)
394+ endif ()
363395target_link_libraries (uv_a ${uv_libraries} )
364396
365397if (LIBUV_BUILD_TESTS)
@@ -457,6 +489,9 @@ if(LIBUV_BUILD_TESTS)
457489 test /test -metrics.c
458490 test /test -multiple-listen.c
459491 test /test -mutexes.c
492+ test /test -not -readable-nor-writable-on -read-error.c
493+ test /test -not -readable-on -eof.c
494+ test /test -not -writable-after-shutdown.c
460495 test /test -osx-select.c
461496 test /test -pass-always.c
462497 test /test -ping-pong.c
@@ -489,6 +524,7 @@ if(LIBUV_BUILD_TESTS)
489524 test /test -semaphore.c
490525 test /test -shutdown-close.c
491526 test /test -shutdown-eof.c
527+ test /test -shutdown-simultaneous.c
492528 test /test -shutdown-twice.c
493529 test /test -signal-multiple-loops.c
494530 test /test -signal-pending-on -close.c
@@ -582,6 +618,11 @@ if(LIBUV_BUILD_TESTS)
582618 add_test (NAME uv_test_a
583619 COMMAND uv_run_tests_a
584620 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
621+ if (CMAKE_SYSTEM_NAME STREQUAL "OS390" )
622+ set_target_properties (uv_run_benchmarks_a PROPERTIES LINKER_LANGUAGE CXX)
623+ set_target_properties (uv_run_tests PROPERTIES LINKER_LANGUAGE CXX)
624+ set_target_properties (uv_run_tests_a PROPERTIES LINKER_LANGUAGE CXX)
625+ endif ()
585626endif ()
586627
587628if (UNIX OR MINGW)
0 commit comments