Skip to content

Commit bfcb3d1

Browse files
santigimenotargos
authored andcommitted
deps: upgrade to libuv 1.45.0
- linux: introduce io_uring support libuv/libuv#3952 - src: add new metrics APIs libuv/libuv#3749 - unix,win: give thread pool threads an 8 MB stack libuv/libuv#3787 - win,unix: change execution order of timers libuv/libuv#3927 Fixes: #43931 Fixes: #42496 Fixes: #47715 Fixes: #47259 Fixes: #47241 PR-URL: #48078 Reviewed-By: Ben Noordhuis <[email protected]> Reviewed-By: Mohammed Keyvanzadeh <[email protected]> Reviewed-By: Debadree Chatterjee <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Tobias Nießen <[email protected]> Reviewed-By: Jiawen Geng <[email protected]>
1 parent 750e53c commit bfcb3d1

File tree

267 files changed

+6911
-4722
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

267 files changed

+6911
-4722
lines changed

deps/uv/.mailmap

+3
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ Keno Fischer <[email protected]> <[email protected]>
2929
3030
3131
32+
3233
3334
3435
@@ -60,5 +61,7 @@ gengjiawen <[email protected]>
6061
6162
6263
ptlomholt <[email protected]>
64+
6365
66+
6467

deps/uv/.readthedocs.yaml

+4-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ sphinx:
55
configuration: null
66
fail_on_warning: false
77

8+
build:
9+
tools:
10+
python: "3.9"
11+
812
python:
9-
version: 3.8
1013
install:
1114
- requirements: docs/requirements.txt

deps/uv/AUTHORS

+25
Original file line numberDiff line numberDiff line change
@@ -517,3 +517,28 @@ chucksilvers <[email protected]>
517517
Sergey Fedorov <[email protected]>
518518
theanarkh <[email protected]>
519519
Samuel Cabrero <[email protected]>
520+
自发对称破缺 <[email protected]>
521+
Luan Devecchi <[email protected]>
522+
Steven Schveighoffer <[email protected]>
523+
number201724 <[email protected]>
524+
525+
Christian Clason <[email protected]>
526+
527+
jensbjorgensen <[email protected]>
528+
529+
530+
Edward Humes <[email protected]>
531+
Tim Besard <[email protected]>
532+
Sergey Rubanov <[email protected]>
533+
Stefan Stojanovic <[email protected]>
534+
535+
dundargoc <[email protected]>
536+
Jack·Boos·Yu <[email protected]>
537+
538+
Tamás Bálint Misius <[email protected]>
539+
Bruno Passeri <[email protected]>
540+
Jason Zhang <[email protected]>
541+
Lewis Russell <[email protected]>
542+
sivadeilra <[email protected]>
543+
cui fliter <[email protected]>
544+
Mohammed Keyvanzadeh <[email protected]>

deps/uv/CMakeLists.txt

+132-62
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,13 @@
11
cmake_minimum_required(VERSION 3.4)
2-
project(libuv LANGUAGES C)
32

4-
cmake_policy(SET CMP0057 NEW) # Enable IN_LIST operator
5-
cmake_policy(SET CMP0064 NEW) # Support if (TEST) operator
3+
if(POLICY CMP0091)
4+
cmake_policy(SET CMP0091 NEW) # Enable MSVC_RUNTIME_LIBRARY setting
5+
endif()
6+
if(POLICY CMP0092)
7+
cmake_policy(SET CMP0092 NEW) # disable /W3 warning, if possible
8+
endif()
9+
10+
project(libuv LANGUAGES C)
611

712
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
813

@@ -17,38 +22,75 @@ set(CMAKE_C_STANDARD_REQUIRED ON)
1722
set(CMAKE_C_EXTENSIONS ON)
1823
set(CMAKE_C_STANDARD 90)
1924

25+
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
26+
27+
option(LIBUV_BUILD_SHARED "Build shared lib" ON)
28+
2029
cmake_dependent_option(LIBUV_BUILD_TESTS
2130
"Build the unit tests when BUILD_TESTING is enabled and we are the root project" ON
22-
"BUILD_TESTING;CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR" OFF)
31+
"BUILD_TESTING;LIBUV_BUILD_SHARED;CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR" OFF)
2332
cmake_dependent_option(LIBUV_BUILD_BENCH
2433
"Build the benchmarks when building unit tests and we are the root project" ON
2534
"LIBUV_BUILD_TESTS" OFF)
2635

2736
# Qemu Build
2837
option(QEMU "build for qemu" OFF)
2938
if(QEMU)
30-
add_definitions(-D__QEMU__=1)
39+
list(APPEND uv_defines __QEMU__=1)
3140
endif()
3241

42+
# Note: these are mutually exclusive.
3343
option(ASAN "Enable AddressSanitizer (ASan)" OFF)
44+
option(MSAN "Enable MemorySanitizer (MSan)" OFF)
3445
option(TSAN "Enable ThreadSanitizer (TSan)" OFF)
46+
option(UBSAN "Enable UndefinedBehaviorSanitizer (UBSan)" OFF)
3547

36-
if((ASAN OR TSAN) AND NOT (CMAKE_C_COMPILER_ID MATCHES "AppleClang|GNU|Clang"))
37-
message(SEND_ERROR "Sanitizer support requires clang or gcc. Try again with -DCMAKE_C_COMPILER.")
48+
if(MSAN AND NOT CMAKE_C_COMPILER_ID MATCHES "AppleClang|Clang")
49+
message(SEND_ERROR "MemorySanitizer requires clang. Try again with -DCMAKE_C_COMPILER=clang")
3850
endif()
3951

4052
if(ASAN)
41-
add_definitions(-D__ASAN__=1)
42-
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
43-
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
44-
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
53+
list(APPEND uv_defines __ASAN__=1)
54+
if(CMAKE_C_COMPILER_ID MATCHES "AppleClang|GNU|Clang")
55+
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
56+
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
57+
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
58+
elseif(MSVC)
59+
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fsanitize=address")
60+
else()
61+
message(SEND_ERROR "AddressSanitizer support requires clang, gcc, or msvc. Try again with -DCMAKE_C_COMPILER.")
62+
endif()
63+
endif()
64+
65+
if(MSAN)
66+
list(APPEND uv_defines __MSAN__=1)
67+
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=memory")
68+
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=memory")
69+
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=memory")
4570
endif()
4671

4772
if(TSAN)
48-
add_definitions(-D__TSAN__=1)
49-
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=thread")
50-
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=thread")
51-
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=thread")
73+
list(APPEND uv_defines __TSAN__=1)
74+
if(CMAKE_C_COMPILER_ID MATCHES "AppleClang|GNU|Clang")
75+
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=thread")
76+
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=thread")
77+
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=thread")
78+
else()
79+
message(SEND_ERROR "ThreadSanitizer support requires clang or gcc. Try again with -DCMAKE_C_COMPILER.")
80+
endif()
81+
endif()
82+
83+
if(UBSAN)
84+
list(APPEND uv_defines __UBSAN__=1)
85+
if(CMAKE_C_COMPILER_ID MATCHES "AppleClang|GNU|Clang")
86+
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=undefined")
87+
set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=undefined")
88+
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=undefined")
89+
elseif(MSVC)
90+
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /fsanitize=undefined")
91+
else()
92+
message(SEND_ERROR "UndefinedBehaviorSanitizer support requires clang, gcc, or msvc. Try again with -DCMAKE_C_COMPILER.")
93+
endif()
5294
endif()
5395

5496
# Compiler check
@@ -126,6 +168,7 @@ set(uv_sources
126168
src/random.c
127169
src/strscpy.c
128170
src/strtok.c
171+
src/thread-common.c
129172
src/threadpool.c
130173
src/timer.c
131174
src/uv-common.c
@@ -140,7 +183,10 @@ if(WIN32)
140183
advapi32
141184
iphlpapi
142185
userenv
143-
ws2_32)
186+
ws2_32
187+
dbghelp
188+
ole32
189+
uuid)
144190
list(APPEND uv_sources
145191
src/win/async.c
146192
src/win/core.c
@@ -216,15 +262,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Android")
216262
list(APPEND uv_defines _GNU_SOURCE)
217263
list(APPEND uv_libraries dl)
218264
list(APPEND uv_sources
219-
src/unix/linux-core.c
220-
src/unix/linux-inotify.c
221-
src/unix/linux-syscalls.c
265+
src/unix/linux.c
222266
src/unix/procfs-exepath.c
223-
src/unix/pthread-fixes.c
224267
src/unix/random-getentropy.c
225268
src/unix/random-getrandom.c
226-
src/unix/random-sysctl-linux.c
227-
src/unix/epoll.c)
269+
src/unix/random-sysctl-linux.c)
228270
endif()
229271

230272
if(APPLE OR CMAKE_SYSTEM_NAME MATCHES "Android|Linux")
@@ -270,22 +312,14 @@ if(CMAKE_SYSTEM_NAME STREQUAL "GNU")
270312
src/unix/hurd.c)
271313
endif()
272314

273-
if(CMAKE_SYSTEM_NAME STREQUAL "kFreeBSD")
274-
list(APPEND uv_defines _GNU_SOURCE)
275-
list(APPEND uv_libraries dl freebsd-glue)
276-
endif()
277-
278315
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
279316
list(APPEND uv_defines _GNU_SOURCE _POSIX_C_SOURCE=200112)
280317
list(APPEND uv_libraries dl rt)
281318
list(APPEND uv_sources
282-
src/unix/linux-core.c
283-
src/unix/linux-inotify.c
284-
src/unix/linux-syscalls.c
319+
src/unix/linux.c
285320
src/unix/procfs-exepath.c
286321
src/unix/random-getrandom.c
287-
src/unix/random-sysctl-linux.c
288-
src/unix/epoll.c)
322+
src/unix/random-sysctl-linux.c)
289323
endif()
290324

291325
if(CMAKE_SYSTEM_NAME STREQUAL "NetBSD")
@@ -316,7 +350,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "OS390")
316350
list(APPEND uv_defines _XOPEN_SOURCE=600)
317351
list(APPEND uv_defines _XOPEN_SOURCE_EXTENDED)
318352
list(APPEND uv_sources
319-
src/unix/pthread-fixes.c
320353
src/unix/os390.c
321354
src/unix/os390-syscalls.c
322355
src/unix/os390-proctitle.c)
@@ -354,6 +387,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL "OS400")
354387
endif()
355388

356389
if(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
390+
if(CMAKE_SYSTEM_VERSION STREQUAL "5.10")
391+
list(APPEND uv_defines SUNOS_NO_IFADDRS)
392+
list(APPEND uv_libraries rt)
393+
endif()
357394
list(APPEND uv_defines __EXTENSIONS__ _XOPEN_SOURCE=500 _REENTRANT)
358395
list(APPEND uv_libraries kstat nsl sendfile socket)
359396
list(APPEND uv_sources
@@ -388,25 +425,42 @@ if(APPLE OR CMAKE_SYSTEM_NAME MATCHES "DragonFly|FreeBSD|Linux|NetBSD|OpenBSD")
388425
list(APPEND uv_test_libraries util)
389426
endif()
390427

391-
add_library(uv SHARED ${uv_sources})
392-
target_compile_definitions(uv
393-
INTERFACE
394-
USING_UV_SHARED=1
395-
PRIVATE
396-
BUILDING_UV_SHARED=1
397-
${uv_defines})
398-
target_compile_options(uv PRIVATE ${uv_cflags})
399-
target_include_directories(uv
400-
PUBLIC
401-
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
402-
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
403-
PRIVATE
404-
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>)
405-
if(CMAKE_SYSTEM_NAME STREQUAL "OS390")
406-
target_include_directories(uv PUBLIC $<BUILD_INTERFACE:${ZOSLIB_DIR}/include>)
407-
set_target_properties(uv PROPERTIES LINKER_LANGUAGE CXX)
428+
if(CYGWIN OR MSYS)
429+
list(APPEND uv_defines _GNU_SOURCE)
430+
list(APPEND uv_sources
431+
src/unix/cygwin.c
432+
src/unix/bsd-ifaddrs.c
433+
src/unix/no-fsevents.c
434+
src/unix/no-proctitle.c
435+
src/unix/posix-hrtime.c
436+
src/unix/posix-poll.c
437+
src/unix/procfs-exepath.c
438+
src/unix/sysinfo-loadavg.c
439+
src/unix/sysinfo-memory.c)
440+
endif()
441+
442+
if(LIBUV_BUILD_SHARED)
443+
add_library(uv SHARED ${uv_sources})
444+
target_compile_definitions(uv
445+
INTERFACE
446+
USING_UV_SHARED=1
447+
PRIVATE
448+
BUILDING_UV_SHARED=1
449+
${uv_defines})
450+
target_compile_options(uv PRIVATE ${uv_cflags})
451+
target_include_directories(uv
452+
PUBLIC
453+
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
454+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
455+
PRIVATE
456+
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/src>)
457+
if(CMAKE_SYSTEM_NAME STREQUAL "OS390")
458+
target_include_directories(uv PUBLIC $<BUILD_INTERFACE:${ZOSLIB_DIR}/include>)
459+
set_target_properties(uv PROPERTIES LINKER_LANGUAGE CXX)
460+
endif()
461+
target_link_libraries(uv ${uv_libraries})
462+
set_target_properties(uv PROPERTIES OUTPUT_NAME "uv")
408463
endif()
409-
target_link_libraries(uv ${uv_libraries})
410464

411465
add_library(uv_a STATIC ${uv_sources})
412466
target_compile_definitions(uv_a PRIVATE ${uv_defines})
@@ -422,6 +476,10 @@ if(CMAKE_SYSTEM_NAME STREQUAL "OS390")
422476
set_target_properties(uv_a PROPERTIES LINKER_LANGUAGE CXX)
423477
endif()
424478
target_link_libraries(uv_a ${uv_libraries})
479+
set_target_properties(uv_a PROPERTIES OUTPUT_NAME "uv")
480+
if(MSVC)
481+
set_target_properties(uv_a PROPERTIES PREFIX "lib")
482+
endif()
425483

426484
if(LIBUV_BUILD_TESTS)
427485
# Small hack: use ${uv_test_sources} now to get the runner skeleton,
@@ -584,6 +642,7 @@ if(LIBUV_BUILD_TESTS)
584642
test/test-tcp-rst.c
585643
test/test-tcp-shutdown-after-write.c
586644
test/test-tcp-try-write.c
645+
test/test-tcp-write-in-a-row.c
587646
test/test-tcp-try-write-error.c
588647
test/test-tcp-unexpected-read.c
589648
test/test-tcp-write-after-connect.c
@@ -592,6 +651,7 @@ if(LIBUV_BUILD_TESTS)
592651
test/test-tcp-write-to-half-open-connection.c
593652
test/test-tcp-writealot.c
594653
test/test-test-macros.c
654+
test/test-thread-affinity.c
595655
test/test-thread-equal.c
596656
test/test-thread.c
597657
test/test-threadpool-cancel.c
@@ -624,6 +684,7 @@ if(LIBUV_BUILD_TESTS)
624684
test/test-udp-sendmmsg-error.c
625685
test/test-udp-send-unreachable.c
626686
test/test-udp-try-send.c
687+
test/test-udp-recv-in-a-row.c
627688
test/test-uname.c
628689
test/test-walk-handles.c
629690
test/test-watcher-cross-stop.c)
@@ -667,27 +728,36 @@ string(REPLACE ";" " " LIBS "${LIBS}")
667728
file(STRINGS configure.ac configure_ac REGEX ^AC_INIT)
668729
string(REGEX MATCH "([0-9]+)[.][0-9]+[.][0-9]+" PACKAGE_VERSION "${configure_ac}")
669730
set(UV_VERSION_MAJOR "${CMAKE_MATCH_1}")
670-
# The version in the filename is mirroring the behaviour of autotools.
671-
set_target_properties(uv PROPERTIES
672-
VERSION ${UV_VERSION_MAJOR}.0.0
673-
SOVERSION ${UV_VERSION_MAJOR})
731+
674732
set(includedir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR})
675733
set(libdir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
676734
set(prefix ${CMAKE_INSTALL_PREFIX})
677-
configure_file(libuv.pc.in libuv.pc @ONLY)
678735
configure_file(libuv-static.pc.in libuv-static.pc @ONLY)
679736

680737
install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
681738
install(FILES LICENSE DESTINATION ${CMAKE_INSTALL_DOCDIR})
682-
install(FILES ${PROJECT_BINARY_DIR}/libuv.pc ${PROJECT_BINARY_DIR}/libuv-static.pc
739+
install(FILES LICENSE-extra DESTINATION ${CMAKE_INSTALL_DOCDIR})
740+
install(FILES ${PROJECT_BINARY_DIR}/libuv-static.pc
683741
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
684-
install(TARGETS uv EXPORT libuvConfig
685-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
686-
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
687-
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
688742
install(TARGETS uv_a EXPORT libuvConfig
689743
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
690-
install(EXPORT libuvConfig DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libuv)
744+
install(EXPORT libuvConfig
745+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/libuv
746+
NAMESPACE libuv::)
747+
748+
if(LIBUV_BUILD_SHARED)
749+
# The version in the filename is mirroring the behaviour of autotools.
750+
set_target_properties(uv PROPERTIES
751+
VERSION ${UV_VERSION_MAJOR}.0.0
752+
SOVERSION ${UV_VERSION_MAJOR})
753+
configure_file(libuv.pc.in libuv.pc @ONLY)
754+
install(FILES ${PROJECT_BINARY_DIR}/libuv.pc
755+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
756+
install(TARGETS uv EXPORT libuvConfig
757+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
758+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
759+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
760+
endif()
691761

692762
if(MSVC)
693763
set(CMAKE_DEBUG_POSTFIX d)

0 commit comments

Comments
 (0)