uringmachine 0.24.0 → 0.26.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.gitmodules +0 -3
  4. data/CHANGELOG.md +13 -0
  5. data/Gemfile +11 -0
  6. data/README.md +266 -112
  7. data/Rakefile +8 -0
  8. data/TODO.md +14 -21
  9. data/benchmark/common.rb +2 -0
  10. data/benchmark/openssl.rb +77 -0
  11. data/benchmark/openssl_socketpair.rb +112 -0
  12. data/benchmark/sqlite.rb +1 -1
  13. data/docs/design/buffer_pool.md +1 -1
  14. data/docs/wroclove.rb.md +52 -0
  15. data/ext/um/extconf.rb +15 -0
  16. data/ext/um/um.c +392 -358
  17. data/ext/um/um.h +48 -23
  18. data/ext/um/um_async_op.c +9 -8
  19. data/ext/um/um_async_op_class.c +34 -3
  20. data/ext/um/um_class.c +705 -19
  21. data/ext/um/um_const.c +31 -0
  22. data/ext/um/um_mutex_class.c +12 -0
  23. data/ext/um/um_op.c +15 -1
  24. data/ext/um/um_queue_class.c +16 -0
  25. data/ext/um/um_ssl.c +109 -0
  26. data/ext/um/um_stream.c +9 -8
  27. data/ext/um/um_sync.c +18 -11
  28. data/ext/um/um_utils.c +17 -8
  29. data/grant-2025/interim-report.md +1 -1
  30. data/grant-2025/journal.md +4 -4
  31. data/grant-2025/tasks.md +6 -4
  32. data/lib/uringmachine/dns_resolver.rb +38 -0
  33. data/lib/uringmachine/fiber_scheduler.rb +7 -5
  34. data/lib/uringmachine/version.rb +1 -1
  35. data/lib/uringmachine.rb +106 -6
  36. data/test/helper.rb +15 -0
  37. data/test/test_async_op.rb +3 -2
  38. data/test/test_fiber_scheduler.rb +41 -1
  39. data/test/test_ssl.rb +85 -0
  40. data/test/test_stream.rb +11 -0
  41. data/test/test_um.rb +445 -11
  42. data/uringmachine.gemspec +1 -7
  43. data/vendor/liburing/examples/send-zerocopy.c +43 -31
  44. data/vendor/liburing/examples/zcrx.c +260 -69
  45. data/vendor/liburing/liburing.spec +1 -1
  46. data/vendor/liburing/src/include/liburing/io_uring.h +12 -0
  47. data/vendor/liburing/src/include/liburing.h +3 -2
  48. data/vendor/liburing/src/liburing-ffi.map +4 -0
  49. data/vendor/liburing/src/liburing.map +4 -0
  50. data/vendor/liburing/src/queue.c +12 -0
  51. data/vendor/liburing/src/register.c +1 -0
  52. data/vendor/liburing/src/setup.c +15 -7
  53. data/vendor/liburing/test/Makefile +8 -4
  54. data/vendor/liburing/test/conn-unreach.c +1 -1
  55. data/vendor/liburing/test/epwait.c +32 -6
  56. data/vendor/liburing/test/io-wq-exit.c +131 -0
  57. data/vendor/liburing/test/iowait.c +1 -1
  58. data/vendor/liburing/test/min-timeout.c +3 -1
  59. data/vendor/liburing/test/open-close.c +39 -0
  60. data/vendor/liburing/test/poll-update-trigger.c +85 -0
  61. data/vendor/liburing/test/recvsend_bundle.c +14 -11
  62. data/vendor/liburing/test/sendzc-bug.c +146 -0
  63. data/vendor/liburing/test/sqe-mixed-nop.c +151 -7
  64. data/vendor/liburing/test/test.h +2 -0
  65. data/vendor/liburing/test/timestamp-bug.c +135 -0
  66. data/vendor/liburing/test/timestamp.c +5 -0
  67. data/vendor/liburing/test/vec-regbuf.c +136 -1
  68. metadata +38 -283
  69. data/vendor/libressl/.github/scripts/changelog.sh +0 -74
  70. data/vendor/libressl/.github/workflows/android.yml +0 -35
  71. data/vendor/libressl/.github/workflows/cifuzz.yml +0 -33
  72. data/vendor/libressl/.github/workflows/cmake-config.yml +0 -98
  73. data/vendor/libressl/.github/workflows/coverity.yml +0 -69
  74. data/vendor/libressl/.github/workflows/emscripten.yml +0 -71
  75. data/vendor/libressl/.github/workflows/fedora-rawhide.yml +0 -39
  76. data/vendor/libressl/.github/workflows/freebsd.yml +0 -71
  77. data/vendor/libressl/.github/workflows/linux.yml +0 -71
  78. data/vendor/libressl/.github/workflows/macos.yml +0 -37
  79. data/vendor/libressl/.github/workflows/release.yml +0 -81
  80. data/vendor/libressl/.github/workflows/rust-openssl.yml +0 -47
  81. data/vendor/libressl/.github/workflows/solaris.yml +0 -37
  82. data/vendor/libressl/.github/workflows/windows.yml +0 -70
  83. data/vendor/libressl/.gitignore +0 -333
  84. data/vendor/libressl/CMakeLists.txt +0 -581
  85. data/vendor/libressl/COPYING +0 -133
  86. data/vendor/libressl/ChangeLog +0 -3280
  87. data/vendor/libressl/FindLibreSSL.cmake +0 -232
  88. data/vendor/libressl/LibreSSLConfig.cmake.in +0 -36
  89. data/vendor/libressl/Makefile.am +0 -60
  90. data/vendor/libressl/Makefile.am.common +0 -20
  91. data/vendor/libressl/OPENBSD_BRANCH +0 -1
  92. data/vendor/libressl/README.md +0 -238
  93. data/vendor/libressl/README.mingw.md +0 -43
  94. data/vendor/libressl/apps/CMakeLists.txt +0 -18
  95. data/vendor/libressl/apps/Makefile.am +0 -5
  96. data/vendor/libressl/apps/nc/CMakeLists.txt +0 -67
  97. data/vendor/libressl/apps/nc/Makefile.am +0 -64
  98. data/vendor/libressl/apps/nc/compat/accept4.c +0 -17
  99. data/vendor/libressl/apps/nc/compat/readpassphrase.c +0 -205
  100. data/vendor/libressl/apps/nc/compat/socket.c +0 -29
  101. data/vendor/libressl/apps/nc/compat/sys/socket.h +0 -30
  102. data/vendor/libressl/apps/ocspcheck/CMakeLists.txt +0 -44
  103. data/vendor/libressl/apps/ocspcheck/Makefile.am +0 -45
  104. data/vendor/libressl/apps/ocspcheck/compat/.gitignore +0 -0
  105. data/vendor/libressl/apps/openssl/CMakeLists.txt +0 -97
  106. data/vendor/libressl/apps/openssl/Makefile.am +0 -108
  107. data/vendor/libressl/apps/openssl/apps_win.c +0 -138
  108. data/vendor/libressl/apps/openssl/certhash_win.c +0 -13
  109. data/vendor/libressl/apps/openssl/compat/clock_gettime_osx.c +0 -26
  110. data/vendor/libressl/apps/openssl/compat/poll_win.c +0 -329
  111. data/vendor/libressl/appveyor.yml +0 -53
  112. data/vendor/libressl/autogen.sh +0 -15
  113. data/vendor/libressl/check-release.sh +0 -86
  114. data/vendor/libressl/cmake_export_symbol.cmake +0 -71
  115. data/vendor/libressl/cmake_uninstall.cmake.in +0 -36
  116. data/vendor/libressl/config +0 -17
  117. data/vendor/libressl/configure.ac +0 -165
  118. data/vendor/libressl/crypto/CMakeLists.txt +0 -863
  119. data/vendor/libressl/crypto/Makefile.am +0 -962
  120. data/vendor/libressl/crypto/Makefile.am.arc4random +0 -46
  121. data/vendor/libressl/crypto/Makefile.am.elf-mips +0 -14
  122. data/vendor/libressl/crypto/Makefile.am.elf-mips64 +0 -14
  123. data/vendor/libressl/crypto/Makefile.am.elf-x86_64 +0 -35
  124. data/vendor/libressl/crypto/Makefile.am.macosx-x86_64 +0 -35
  125. data/vendor/libressl/crypto/Makefile.am.masm-x86_64 +0 -22
  126. data/vendor/libressl/crypto/Makefile.am.mingw64-x86_64 +0 -23
  127. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_darwin.c +0 -60
  128. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_linux.c +0 -62
  129. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_none.c +0 -26
  130. data/vendor/libressl/crypto/arch/aarch64/crypto_cpu_caps_windows.c +0 -36
  131. data/vendor/libressl/crypto/arch/loongarch64/crypto_arch.h +0 -21
  132. data/vendor/libressl/crypto/arch/mips/crypto_arch.h +0 -21
  133. data/vendor/libressl/crypto/bn/arch/loongarch64/bn_arch.h +0 -23
  134. data/vendor/libressl/crypto/bn/arch/mips/bn_arch.h +0 -24
  135. data/vendor/libressl/crypto/compat/.gitignore +0 -31
  136. data/vendor/libressl/crypto/compat/arc4random.h +0 -41
  137. data/vendor/libressl/crypto/compat/b_win.c +0 -55
  138. data/vendor/libressl/crypto/compat/bsd-asprintf.c +0 -96
  139. data/vendor/libressl/crypto/compat/crypto_lock_win.c +0 -56
  140. data/vendor/libressl/crypto/compat/explicit_bzero_win.c +0 -13
  141. data/vendor/libressl/crypto/compat/freezero.c +0 -32
  142. data/vendor/libressl/crypto/compat/getdelim.c +0 -78
  143. data/vendor/libressl/crypto/compat/getline.c +0 -40
  144. data/vendor/libressl/crypto/compat/getopt_long.c +0 -528
  145. data/vendor/libressl/crypto/compat/getpagesize.c +0 -18
  146. data/vendor/libressl/crypto/compat/getprogname_linux.c +0 -23
  147. data/vendor/libressl/crypto/compat/getprogname_unimpl.c +0 -7
  148. data/vendor/libressl/crypto/compat/getprogname_windows.c +0 -13
  149. data/vendor/libressl/crypto/compat/posix_win.c +0 -296
  150. data/vendor/libressl/crypto/compat/syslog_r.c +0 -19
  151. data/vendor/libressl/crypto/compat/ui_openssl_win.c +0 -334
  152. data/vendor/libressl/dist.sh +0 -22
  153. data/vendor/libressl/gen-coverage-report.sh +0 -58
  154. data/vendor/libressl/gen-openbsd-tags.sh +0 -20
  155. data/vendor/libressl/include/CMakeLists.txt +0 -61
  156. data/vendor/libressl/include/Makefile.am +0 -79
  157. data/vendor/libressl/include/arch/loongarch64/opensslconf.h +0 -150
  158. data/vendor/libressl/include/arch/mips/opensslconf.h +0 -150
  159. data/vendor/libressl/include/compat/arpa/inet.h +0 -15
  160. data/vendor/libressl/include/compat/arpa/nameser.h +0 -25
  161. data/vendor/libressl/include/compat/cet.h +0 -19
  162. data/vendor/libressl/include/compat/dirent.h +0 -17
  163. data/vendor/libressl/include/compat/dirent_msvc.h +0 -611
  164. data/vendor/libressl/include/compat/endian.h +0 -161
  165. data/vendor/libressl/include/compat/err.h +0 -95
  166. data/vendor/libressl/include/compat/fcntl.h +0 -32
  167. data/vendor/libressl/include/compat/getopt.h +0 -50
  168. data/vendor/libressl/include/compat/limits.h +0 -25
  169. data/vendor/libressl/include/compat/netdb.h +0 -10
  170. data/vendor/libressl/include/compat/netinet/in.h +0 -19
  171. data/vendor/libressl/include/compat/netinet/ip.h +0 -49
  172. data/vendor/libressl/include/compat/netinet/tcp.h +0 -10
  173. data/vendor/libressl/include/compat/poll.h +0 -63
  174. data/vendor/libressl/include/compat/pthread.h +0 -122
  175. data/vendor/libressl/include/compat/readpassphrase.h +0 -44
  176. data/vendor/libressl/include/compat/resolv.h +0 -24
  177. data/vendor/libressl/include/compat/stdint.h +0 -31
  178. data/vendor/libressl/include/compat/stdio.h +0 -65
  179. data/vendor/libressl/include/compat/stdlib.h +0 -57
  180. data/vendor/libressl/include/compat/string.h +0 -98
  181. data/vendor/libressl/include/compat/sys/_null.h +0 -18
  182. data/vendor/libressl/include/compat/sys/ioctl.h +0 -11
  183. data/vendor/libressl/include/compat/sys/mman.h +0 -19
  184. data/vendor/libressl/include/compat/sys/param.h +0 -15
  185. data/vendor/libressl/include/compat/sys/queue.h +0 -536
  186. data/vendor/libressl/include/compat/sys/select.h +0 -10
  187. data/vendor/libressl/include/compat/sys/socket.h +0 -18
  188. data/vendor/libressl/include/compat/sys/stat.h +0 -129
  189. data/vendor/libressl/include/compat/sys/time.h +0 -37
  190. data/vendor/libressl/include/compat/sys/tree.h +0 -1006
  191. data/vendor/libressl/include/compat/sys/types.h +0 -69
  192. data/vendor/libressl/include/compat/sys/uio.h +0 -17
  193. data/vendor/libressl/include/compat/syslog.h +0 -38
  194. data/vendor/libressl/include/compat/time.h +0 -59
  195. data/vendor/libressl/include/compat/unistd.h +0 -83
  196. data/vendor/libressl/include/compat/win32netcompat.h +0 -57
  197. data/vendor/libressl/include/openssl/Makefile.am.tpl +0 -45
  198. data/vendor/libressl/libcrypto.pc.in +0 -28
  199. data/vendor/libressl/libressl.pub +0 -2
  200. data/vendor/libressl/libssl.pc.in +0 -28
  201. data/vendor/libressl/libtls.pc.in +0 -28
  202. data/vendor/libressl/m4/ax_add_fortify_source.m4 +0 -80
  203. data/vendor/libressl/m4/ax_check_compile_flag.m4 +0 -53
  204. data/vendor/libressl/m4/check-hardening-options.m4 +0 -110
  205. data/vendor/libressl/m4/check-libc.m4 +0 -189
  206. data/vendor/libressl/m4/check-os-options.m4 +0 -181
  207. data/vendor/libressl/m4/disable-compiler-warnings.m4 +0 -44
  208. data/vendor/libressl/man/CMakeLists.txt +0 -26
  209. data/vendor/libressl/man/links +0 -2780
  210. data/vendor/libressl/man/update_links.sh +0 -25
  211. data/vendor/libressl/openssl.pc.in +0 -11
  212. data/vendor/libressl/patches/bn_shift.patch +0 -34
  213. data/vendor/libressl/patches/crypto_arch.h.patch +0 -34
  214. data/vendor/libressl/patches/crypto_namespace.h.patch +0 -22
  215. data/vendor/libressl/patches/netcat.c.patch +0 -178
  216. data/vendor/libressl/patches/openssl.c.patch +0 -12
  217. data/vendor/libressl/patches/opensslfeatures.h.patch +0 -49
  218. data/vendor/libressl/patches/patch-amd64-crypto-cpu-caps.c.patch +0 -20
  219. data/vendor/libressl/patches/patch-i386-crypto-cpu-caps.c.patch +0 -20
  220. data/vendor/libressl/patches/speed.c.patch +0 -114
  221. data/vendor/libressl/patches/ssl_namespace.h.patch +0 -21
  222. data/vendor/libressl/patches/tls.h.patch +0 -16
  223. data/vendor/libressl/patches/tls_config.c.patch +0 -15
  224. data/vendor/libressl/patches/win32_amd64_bn_arch.h.patch +0 -28
  225. data/vendor/libressl/patches/windows_headers.patch +0 -80
  226. data/vendor/libressl/scripts/config.guess +0 -1774
  227. data/vendor/libressl/scripts/config.sub +0 -1907
  228. data/vendor/libressl/scripts/i686-w64-mingw32.cmake +0 -9
  229. data/vendor/libressl/scripts/test +0 -210
  230. data/vendor/libressl/scripts/wrap-compiler-for-flag-check +0 -31
  231. data/vendor/libressl/scripts/x86_64-w64-mingw32.cmake +0 -9
  232. data/vendor/libressl/ssl/CMakeLists.txt +0 -183
  233. data/vendor/libressl/ssl/Makefile.am +0 -187
  234. data/vendor/libressl/tests/CMakeLists.txt +0 -970
  235. data/vendor/libressl/tests/Makefile.am +0 -944
  236. data/vendor/libressl/tests/aeadtest.sh +0 -30
  237. data/vendor/libressl/tests/arc4randomforktest.sh +0 -21
  238. data/vendor/libressl/tests/asn1time_small.test +0 -10
  239. data/vendor/libressl/tests/cmake/CMakeLists.txt +0 -52
  240. data/vendor/libressl/tests/cmake/crypto.c +0 -7
  241. data/vendor/libressl/tests/cmake/ssl.c +0 -6
  242. data/vendor/libressl/tests/cmake/tls.c +0 -6
  243. data/vendor/libressl/tests/compat/pipe2.c +0 -186
  244. data/vendor/libressl/tests/dtlstest.sh +0 -28
  245. data/vendor/libressl/tests/evptest.sh +0 -22
  246. data/vendor/libressl/tests/keypairtest.sh +0 -27
  247. data/vendor/libressl/tests/mlkem_tests.sh +0 -39
  248. data/vendor/libressl/tests/ocsptest.bat +0 -25
  249. data/vendor/libressl/tests/ocsptest.sh +0 -23
  250. data/vendor/libressl/tests/openssl.cnf +0 -29
  251. data/vendor/libressl/tests/optionstest.c +0 -381
  252. data/vendor/libressl/tests/pidwraptest.c +0 -85
  253. data/vendor/libressl/tests/pidwraptest.sh +0 -26
  254. data/vendor/libressl/tests/quictest.bat +0 -27
  255. data/vendor/libressl/tests/quictest.sh +0 -30
  256. data/vendor/libressl/tests/renegotiation_test.bat +0 -27
  257. data/vendor/libressl/tests/renegotiation_test.sh +0 -30
  258. data/vendor/libressl/tests/rfc5280time_small.test +0 -10
  259. data/vendor/libressl/tests/servertest.bat +0 -27
  260. data/vendor/libressl/tests/servertest.sh +0 -30
  261. data/vendor/libressl/tests/shutdowntest.bat +0 -27
  262. data/vendor/libressl/tests/shutdowntest.sh +0 -30
  263. data/vendor/libressl/tests/ssltest.bat +0 -32
  264. data/vendor/libressl/tests/ssltest.sh +0 -48
  265. data/vendor/libressl/tests/testdsa.bat +0 -47
  266. data/vendor/libressl/tests/testdsa.sh +0 -57
  267. data/vendor/libressl/tests/testenc.bat +0 -85
  268. data/vendor/libressl/tests/testenc.sh +0 -93
  269. data/vendor/libressl/tests/testrsa.bat +0 -47
  270. data/vendor/libressl/tests/testrsa.sh +0 -57
  271. data/vendor/libressl/tests/testssl.bat +0 -171
  272. data/vendor/libressl/tests/tlstest.bat +0 -27
  273. data/vendor/libressl/tests/tlstest.sh +0 -28
  274. data/vendor/libressl/tls/CMakeLists.txt +0 -125
  275. data/vendor/libressl/tls/Makefile.am +0 -76
  276. data/vendor/libressl/tls/compat/ftruncate.c +0 -17
  277. data/vendor/libressl/tls/compat/pread.c +0 -29
  278. data/vendor/libressl/tls/compat/pwrite.c +0 -29
  279. data/vendor/libressl/update.sh +0 -460
@@ -1,86 +0,0 @@
1
- #!/bin/sh
2
- #
3
- # Copyright (c) 2014 Brent Cook
4
- #
5
- # Permission to use, copy, modify, and distribute this software for any
6
- # purpose with or without fee is hereby granted, provided that the above
7
- # copyright notice and this permission notice appear in all copies.
8
- #
9
- # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
- # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
- # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
- # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
- # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
- # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
- # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
-
17
- set -e
18
-
19
- ver=$1
20
- dir=libressl-$ver
21
- tarball=$dir.tar.gz
22
- tag=v$ver
23
-
24
- if [ -z "$LIBRESSL_SSH" ]; then
25
- if ! curl -v 1>/dev/null 2>&1; then
26
- download="curl -O"
27
- elif echo quit | ftp 1>/dev/null 2>&1; then
28
- download=ftp
29
- else
30
- echo "need 'ftp' or 'curl' to verify"
31
- exit
32
- fi
33
- fi
34
-
35
- if [ "$ver" = "" ]; then
36
- echo "please specify a version to check, e.g. $0 2.1.2"
37
- exit
38
- fi
39
-
40
- if [ ! -e releases/$tarball ]; then
41
- mkdir -p releases
42
- rm -f $tarball
43
- if [ -z "$LIBRESSL_SSH" ]; then
44
- $download https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/$tarball releases/
45
- mv $tarball releases
46
- else
47
- scp $LIBRESSL_SSH/$tarball releases
48
- fi
49
- (cd releases; tar zxvf $tarball)
50
- fi
51
-
52
- if [ ! -e gen-releases/$tarball ]; then
53
- rm -fr tests man include ssl crypto libtls-standalone/VERSION INSTALL
54
- git checkout OPENBSD_BRANCH update.sh tests man include ssl crypto
55
- git checkout $tag
56
- echo "libressl-$tag" > OPENBSD_BRANCH
57
- sed -i 's/git pull --rebase//' update.sh
58
- ./autogen.sh
59
- ./configure --enable-libtls
60
- make dist
61
-
62
- mkdir -p gen-releases
63
- mv $tarball gen-releases
64
-
65
- git checkout OPENBSD_BRANCH update.sh
66
- git checkout master
67
- fi
68
-
69
- (cd gen-releases; rm -fr $dir; tar zxf $tarball)
70
- (cd releases; rm -fr $dir; tar zxf $tarball)
71
-
72
- echo "differences between release and regenerated release tag:"
73
- diff -urN \
74
- -x *.3 \
75
- -x *.5 \
76
- -x Makefile.in \
77
- -x aclocal.m4 \
78
- -x compile \
79
- -x config.guess \
80
- -x config.sub \
81
- -x configure \
82
- -x depcomp \
83
- -x install-sh \
84
- -x missing \
85
- -x test-driver \
86
- releases/$dir gen-releases/$dir
@@ -1,71 +0,0 @@
1
- #
2
- # Copyright (c) 2017 Kinichiro Inoguchi
3
- #
4
- # Permission to use, copy, modify, and distribute this software for any
5
- # purpose with or without fee is hereby granted, provided that the above
6
- # copyright notice and this permission notice appear in all copies.
7
- #
8
- # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9
- # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10
- # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11
- # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12
- # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13
- # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
- # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
-
16
- macro(export_symbol TARGET SYMBOLS_PATH)
17
-
18
- set(FLAG "")
19
- get_filename_component(FILENAME ${SYMBOLS_PATH} NAME)
20
-
21
- if(WIN32)
22
- string(REPLACE ".sym" ".def" DEF_FILENAME ${FILENAME})
23
- file(TO_CMAKE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${DEF_FILENAME}" DEF_PATH)
24
- file(WRITE ${DEF_PATH} "EXPORTS\n")
25
- file(READ ${SYMBOLS_PATH} SYMBOLS)
26
- file(APPEND ${DEF_PATH} "${SYMBOLS}")
27
- target_sources(${TARGET} PRIVATE ${DEF_PATH})
28
-
29
- elseif(APPLE)
30
- file(READ ${SYMBOLS_PATH} SYMBOLS)
31
- string(REGEX REPLACE "\n$" "" SYMBOLS ${SYMBOLS})
32
- string(REPLACE "\n" "\n_" SYMBOLS ${SYMBOLS})
33
- string(REGEX REPLACE "(.)$" "\\1\\n" SYMBOLS ${SYMBOLS})
34
- string(REPLACE ".sym" ".exp" EXP_FILENAME ${FILENAME})
35
- file(TO_CMAKE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${EXP_FILENAME}" EXP_PATH)
36
- file(WRITE ${EXP_PATH} "_${SYMBOLS}")
37
- set(FLAG "-exported_symbols_list ${EXP_PATH}")
38
- set_target_properties(${TARGET} PROPERTIES LINK_FLAGS ${FLAG})
39
-
40
- elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
41
- file(READ ${SYMBOLS_PATH} SYMBOLS)
42
- string(REGEX REPLACE "\n$" "" SYMBOLS ${SYMBOLS})
43
- string(REPLACE "\n" "\n+e " SYMBOLS ${SYMBOLS})
44
- string(REPLACE ".sym" ".opt" OPT_FILENAME ${FILENAME})
45
- file(TO_CMAKE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${OPT_FILENAME}" OPT_PATH)
46
- file(WRITE ${OPT_PATH} "+e ${SYMBOLS}")
47
- set(FLAG "-Wl,-c,${OPT_PATH}")
48
- set_target_properties(${TARGET} PROPERTIES LINK_FLAGS ${FLAG})
49
-
50
- elseif(CMAKE_SYSTEM_NAME MATCHES "SunOS")
51
- file(READ ${SYMBOLS_PATH} SYMBOLS)
52
- string(REPLACE "\n" ";\n" SYMBOLS ${SYMBOLS})
53
- string(REPLACE ".sym" ".ver" VER_FILENAME ${FILENAME})
54
- file(TO_CMAKE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${VER_FILENAME}" VER_PATH)
55
- file(WRITE ${VER_PATH}
56
- "{\nglobal:\n${SYMBOLS}\nlocal:\n*;\n};\n")
57
- set(FLAG "-Wl,-M${VER_PATH}")
58
- set_target_properties(${TARGET} PROPERTIES LINK_FLAGS ${FLAG})
59
-
60
- elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
61
- file(READ ${SYMBOLS_PATH} SYMBOLS)
62
- string(REPLACE "\n" ";\n" SYMBOLS ${SYMBOLS})
63
- string(REPLACE ".sym" ".ver" VER_FILENAME ${FILENAME})
64
- file(TO_CMAKE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${VER_FILENAME}" VER_PATH)
65
- file(WRITE ${VER_PATH}
66
- "{\nglobal:\n${SYMBOLS}\nlocal:\n*;\n};\n")
67
- set(FLAG "-Wl,--version-script,\"${VER_PATH}\"")
68
- set_target_properties(${TARGET} PROPERTIES LINK_FLAGS ${FLAG})
69
- endif()
70
-
71
- endmacro()
@@ -1,36 +0,0 @@
1
- #
2
- # Copyright (c) 2016 Kinichiro Inoguchi
3
- #
4
- # Permission to use, copy, modify, and distribute this software for any
5
- # purpose with or without fee is hereby granted, provided that the above
6
- # copyright notice and this permission notice appear in all copies.
7
- #
8
- # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9
- # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10
- # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11
- # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12
- # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13
- # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
- # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
-
16
- if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
17
- message(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
18
- endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
19
-
20
- file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
21
- string(REGEX REPLACE "\n" ";" files "${files}")
22
- foreach(file ${files})
23
- message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
24
- if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
25
- exec_program(
26
- "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
27
- OUTPUT_VARIABLE rm_out
28
- RETURN_VALUE rm_retval
29
- )
30
- if(NOT "${rm_retval}" STREQUAL 0)
31
- message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
32
- endif(NOT "${rm_retval}" STREQUAL 0)
33
- else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
34
- message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
35
- endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
36
- endforeach(file)
@@ -1,17 +0,0 @@
1
- #!/bin/sh
2
-
3
- # This file exists for backwards-compatibility with build systems that expect a
4
- # config script similar to OpenSSL's.
5
-
6
- # New software should prefer the native configure script over this one.
7
-
8
- ARGS=""
9
- for var in "$@"; do
10
- case $var in
11
- no-shared ) ARGS="$ARGS --disable-shared";;
12
- no-asm ) ARGS="$ARGS --disable-asm";;
13
- --prefix* ) ARGS="$ARGS $var";;
14
- esac
15
- done
16
-
17
- ./configure $ARGS
@@ -1,165 +0,0 @@
1
- #
2
- # Copyright (c) 2014-2015 Brent Cook
3
- #
4
- # Permission to use, copy, modify, and distribute this software for any
5
- # purpose with or without fee is hereby granted, provided that the above
6
- # copyright notice and this permission notice appear in all copies.
7
- #
8
- # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9
- # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10
- # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11
- # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12
- # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13
- # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14
- # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15
-
16
- AC_INIT([libressl], m4_esyscmd(tr -d '\n' < VERSION))
17
- AC_SUBST([LIBCRYPTO_VERSION], m4_esyscmd([tr -d '\n' < crypto/VERSION]))
18
- AC_SUBST([LIBSSL_VERSION], m4_esyscmd([tr -d '\n' < ssl/VERSION]))
19
- AC_SUBST([LIBTLS_VERSION], m4_esyscmd([tr -d '\n' < tls/VERSION]))
20
-
21
- AC_CANONICAL_HOST
22
- AM_INIT_AUTOMAKE([subdir-objects foreign])
23
- AC_CONFIG_MACRO_DIR([m4])
24
-
25
- m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
26
-
27
- # This must be saved before AC_PROG_CC
28
- USER_CFLAGS="$CFLAGS"
29
-
30
- AC_PROG_CC([cc gcc])
31
- AM_PROG_CC_C_O
32
- LT_INIT([pic-only])
33
-
34
- CHECK_OS_OPTIONS
35
-
36
- CHECK_C_HARDENING_OPTIONS
37
-
38
- DISABLE_AS_EXECUTABLE_STACK
39
- AM_PROG_AS
40
-
41
- DISABLE_COMPILER_WARNINGS
42
-
43
- # Check if the certhash command should be built
44
- AC_CHECK_FUNCS([symlink])
45
- AM_CONDITIONAL([BUILD_CERTHASH], [test "x$ac_cv_func_symlink" = xyes])
46
-
47
- # Check if funopen exists
48
- AC_CHECK_FUNC([funopen])
49
-
50
- CHECK_LIBC_COMPAT
51
- CHECK_SYSCALL_COMPAT
52
- CHECK_CRYPTO_COMPAT
53
- CHECK_VA_COPY
54
- CHECK_B64_NTOP
55
-
56
- AC_ARG_WITH([openssldir],
57
- AS_HELP_STRING([--with-openssldir],
58
- [Set the default openssl directory]),
59
- OPENSSLDIR="$withval"
60
- AC_SUBST(OPENSSLDIR)
61
- )
62
- AM_CONDITIONAL([OPENSSLDIR_DEFINED], [test x$with_openssldir != x])
63
-
64
- AC_ARG_ENABLE([extratests],
65
- AS_HELP_STRING([--enable-extratests], [Enable extra tests that may be unreliable on some platforms]))
66
- AM_CONDITIONAL([ENABLE_EXTRATESTS], [test "x$enable_extratests" = xyes])
67
-
68
- AC_ARG_ENABLE([tests],
69
- [AS_HELP_STRING([--disable-tests], [Disable tests @<:@default=enabled@:>@])],
70
- [
71
- if ! test "x${enable_tests}" = "xyes"; then
72
- enable_tests="no"
73
- fi],
74
- [enable_tests="yes"])
75
- AM_CONDITIONAL([ENABLE_TESTS], [test "x$enable_tests" = xyes])
76
-
77
- AS_CASE([$host_cpu],
78
- [arm64], [host_cpu=aarch64],
79
- [*arm*], [host_cpu=arm],
80
- [*amd64*], [host_cpu=x86_64 HOSTARCH=intel],
81
- [i?86], [host_cpu=i386 HOSTARCH=intel enable_asm=no],
82
- [mips64*], [host_cpu=mips64 enable_asm=no],
83
- [mips*], [host_cpu=mips enable_asm=no],
84
- [powerpc*], [host_cpu=powerpc],
85
- [ppc64*], [host_cpu=powerpc64],
86
- [x86_64], [HOSTARCH=intel]
87
- )
88
- AM_CONDITIONAL([HOST_CPU_IS_INTEL], [test "x$HOSTARCH" = "xintel"])
89
-
90
- AM_CONDITIONAL([HOST_AARCH64], [test "$host_cpu" = "aarch64"])
91
- AM_CONDITIONAL([HOST_ARM], [test "$host_cpu" = "arm"])
92
- AM_CONDITIONAL([HOST_I386], [test "$host_cpu" = "i386"])
93
- AM_CONDITIONAL([HOST_LOONGARCH64], [test "$host_cpu" = "loongarch64"])
94
- AM_CONDITIONAL([HOST_MIPS], [test "$host_cpu" = "mips"])
95
- AM_CONDITIONAL([HOST_MIPS64], [test "$host_cpu" = "mips64"])
96
- AM_CONDITIONAL([HOST_POWERPC], [test "$host_cpu" = "powerpc"])
97
- AM_CONDITIONAL([HOST_POWERPC64], [test "$host_cpu" = "ppc64"])
98
- AM_CONDITIONAL([HOST_RISCV64], [test "$host_cpu" = "riscv64"])
99
- AM_CONDITIONAL([HOST_SPARC64], [test "$host_cpu" = "sparc64"])
100
- AM_CONDITIONAL([HOST_X86_64], [test "$host_cpu" = "x86_64"])
101
-
102
- AC_MSG_CHECKING([if .gnu.warning accepts long strings])
103
- AC_LINK_IFELSE([AC_LANG_SOURCE([[
104
- extern void SSLv3_method();
105
- __asm__(".section .gnu.warning.SSLv3_method\n\t.ascii \"SSLv3_method is insecure\"\n\t.text");
106
- int main() {return 0;}
107
- ]])], [
108
- AC_DEFINE(HAS_GNU_WARNING_LONG, 1, [Define if .gnu.warning accepts long strings.])
109
- AC_MSG_RESULT(yes)
110
- ], [
111
- AC_MSG_RESULT(no)
112
- ])
113
-
114
- AC_ARG_ENABLE([asm], AS_HELP_STRING([--disable-asm], [Disable assembly]))
115
- AM_CONDITIONAL([OPENSSL_NO_ASM], [test "x$enable_asm" = "xno"])
116
-
117
- # Conditionally enable assembly by default
118
- AM_CONDITIONAL([HOST_ASM_ELF_MIPS],
119
- [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "mips" -a "x$enable_asm" != "xno"])
120
- AM_CONDITIONAL([HOST_ASM_ELF_MIPS64],
121
- [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "mips64" -a "x$enable_asm" != "xno"])
122
- AM_CONDITIONAL([HOST_ASM_ELF_X86_64],
123
- [test "x$HOST_ABI" = "xelf" -a "$host_cpu" = "x86_64" -a "x$enable_asm" != "xno"])
124
- AM_CONDITIONAL([HOST_ASM_MACOSX_X86_64],
125
- [test "x$HOST_ABI" = "xmacosx" -a "$host_cpu" = "x86_64" -a "x$enable_asm" != "xno"])
126
- AM_CONDITIONAL([HOST_ASM_MASM_X86_64],
127
- [test "x$HOST_ABI" = "xmasm" -a "$host_cpu" = "x86_64" -a "x$enable_asm" != "xno"])
128
- AM_CONDITIONAL([HOST_ASM_MINGW64_X86_64],
129
- [test "x$HOST_ABI" = "xmingw64" -a "$host_cpu" = "x86_64" -a "x$enable_asm" != "xno"])
130
-
131
- AC_CONFIG_FILES([
132
- Makefile
133
- include/Makefile
134
- include/openssl/Makefile
135
- crypto/Makefile
136
- ssl/Makefile
137
- tls/Makefile
138
- tests/Makefile
139
- apps/Makefile
140
- apps/ocspcheck/Makefile
141
- apps/openssl/Makefile
142
- apps/nc/Makefile
143
- man/Makefile
144
- libcrypto.pc
145
- libssl.pc
146
- libtls.pc
147
- openssl.pc
148
- ])
149
-
150
- AC_ARG_ENABLE([nc],
151
- AS_HELP_STRING([--enable-nc], [Enable installing TLS-enabled nc(1)]))
152
- AM_CONDITIONAL([ENABLE_NC], [test "x$enable_nc" = xyes])
153
- AM_CONDITIONAL([BUILD_NC], [test x$BUILD_NC = xyes -o "x$enable_nc" = xyes])
154
-
155
- AC_ARG_ENABLE([libtls-only],
156
- AS_HELP_STRING([--enable-libtls-only], [Enable installing libtls only]))
157
- AM_CONDITIONAL([ENABLE_LIBTLS_ONLY], [test "x$enable_libtls_only" = xyes])
158
-
159
- AC_REQUIRE_AUX_FILE([tap-driver.sh])
160
-
161
- AC_OUTPUT
162
-
163
- if test "$HOST_OS" = "unsupported"; then
164
- AC_MSG_WARN([unsupported platform: $host_os])
165
- fi