Download raw body.
Enable threads support in openssl/3.3
On Mon, Jun 16, 2025 at 09:45:00PM +0200, Theo Buehler wrote:
> On Mon, Jun 16, 2025 at 09:36:57PM +0200, Volker Schlecht wrote:
> > Hi,
> >
> > Fabien Romano found out that lang/node is assuming that threads support
> > is enabled in OpenSSL. In our port, it isn't - which means that some
> > (all?) async crypto functions of the NodeJS API are mostly broken.
> >
> > With the attached patch, lang/node seems happier.
> >
> > opinions? oks?
>
> I'm fine with this, but it needs to be done for all three openssl copies
> we have. Since everybody else will have this option enabled, it feels
> like a bad idea to deviate. Unless there are objections I will take care
> of this in a few days along with the required bumping of the dependent
> statically linked ports.
>
> It looks like something that was copied over from the initial port
> for 1.0.1h and never revisited.
So here is the diff I plan to commit. Tested on aarch64, amd64, i386
and sparc64. I also ran node regress on aarch64 and i386, where the
former was happy and the latter complained about an atexit thing. Shrug.
I switched sparc64 to ports-gcc since the old gcc 4.2.1 is too old for
C11 atomics, and the fallback code was just as poorly tested as it was
written - and it would require a horrid patch fest. If you must know:
https://github.com/openssl/openssl/issues/26740
I don't trust that fallback code (patched or not) one millimeter.
Any concerns?
Index: 3.3/Makefile
===================================================================
RCS file: /cvs/ports/security/openssl/3.3/Makefile,v
diff -u -p -r1.14 Makefile
--- 3.3/Makefile 16 Jun 2025 13:56:20 -0000 1.14
+++ 3.3/Makefile 16 Jun 2025 20:24:19 -0000
@@ -12,13 +12,16 @@ PKGNAME= openssl-${V}
PKGSPEC= openssl->=3.3v0,<3.4v0
EPOCH= 0
-REVISION= 0
+REVISION= 1
SHLIBVER= 27.0
SHARED_LIBS= crypto ${SHLIBVER} \
ssl ${SHLIBVER}
-WANTLIB= c
+COMPILER= base-clang ports-gcc
+COMPILER_LANGS= c
+
+WANTLIB= c pthread
DEBUG_PACKAGES = ${BUILD_PACKAGES}
@@ -26,7 +29,7 @@ CONFIGURE_STYLE= simple
CONFIGURE_SCRIPT= config
CONFIGURE_ARGS+= --prefix=${PREFIX} \
--openssldir=/etc/ssl \
- no-threads no-rc5 no-ssl3 \
+ no-rc5 no-ssl3 \
no-devcryptoeng \
shared
Index: 3.4/Makefile
===================================================================
RCS file: /cvs/ports/security/openssl/3.4/Makefile,v
diff -u -p -r1.5 Makefile
--- 3.4/Makefile 10 Mar 2025 13:52:44 -0000 1.5
+++ 3.4/Makefile 16 Jun 2025 21:34:04 -0000
@@ -9,13 +9,16 @@ PKGNAME= openssl-${V}
PKGSPEC= openssl->=3.4v0,<3.5v0
EPOCH= 0
-REVISION= 0
+REVISION= 1
SHLIBVER= 32.0
SHARED_LIBS= crypto ${SHLIBVER} \
ssl ${SHLIBVER}
-WANTLIB= c
+COMPILER= base-clang ports-gcc
+COMPILER_LANGS= c
+
+WANTLIB= c pthread
DEBUG_PACKAGES = ${BUILD_PACKAGES}
@@ -23,7 +26,7 @@ CONFIGURE_STYLE= simple
CONFIGURE_SCRIPT= config
CONFIGURE_ARGS+= --prefix=${PREFIX} \
--openssldir=/etc/ssl \
- no-threads no-rc5 no-ssl3 \
+ no-rc5 no-ssl3 \
no-devcryptoeng \
shared
Index: 3.5/Makefile
===================================================================
RCS file: /cvs/ports/security/openssl/3.5/Makefile,v
diff -u -p -r1.2 Makefile
--- 3.5/Makefile 16 Jun 2025 13:56:20 -0000 1.2
+++ 3.5/Makefile 17 Jun 2025 15:39:12 -0000
@@ -12,11 +12,16 @@ PKGNAME= openssl-${V}
PKGSPEC= openssl->=3.5v0,<3.6v0
EPOCH= 0
+REVISION= 0
+
SHLIBVER= 37.0
SHARED_LIBS= crypto ${SHLIBVER} \
ssl ${SHLIBVER}
-WANTLIB= c
+COMPILER= base-clang ports-gcc
+COMPILER_LANGS= c
+
+WANTLIB= c pthread
DEBUG_PACKAGES = ${BUILD_PACKAGES}
@@ -24,7 +29,7 @@ CONFIGURE_STYLE= simple
CONFIGURE_SCRIPT= config
CONFIGURE_ARGS+= --prefix=${PREFIX} \
--openssldir=/etc/ssl \
- no-threads no-rc5 no-ssl3 \
+ no-rc5 no-ssl3 \
no-devcryptoeng \
shared
Enable threads support in openssl/3.3