Tuesday, May 27, 2025

Re: Help with porting Node.js 20 to OpenBSD 7.7

Hello Stuart,
thank you very much for your helpfulness. I followed your instructions and came quite a step forward. But now I am stuck at the following error:

ld.lld: error: stray --end-group
c++: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[1]: *** [overlapped-checker.target.mk:134: /usr/obj/ports/node-20.18.2/node-v20.18.2/out/Release/overlapped-checker] Error 1

The complete error message is below. Any suggestions will be appreciated.

Best regards,
Martin
--------------------------------------------------------------------------------------


  cc -o /usr/obj/ports/node-20.18.2/node-v20.18.2/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/cmp_mock_srv.o ../deps/openssl/openssl/apps/lib/cmp_mock_srv.c '-D_GLIBCXX_USE_CXX11_ABI=1' '-DNODE_OPENSSL_CONF_NAME=nodejs_conf' '-DNODE_OPENSSL_HAS_QUIC' '-DICU_NO_USER_DATA_OVERRIDE' '-D__STDC_FORMAT_MACROS' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DOPENSSL_API_COMPAT=0x10100001L' '-DNDEBUG' '-DOPENSSL_USE_NODELETE' '-DL_ENDIAN' '-DOPENSSL_BUILDING_OPENSSL' '-DAES_ASM' '-DBSAES_ASM' '-DCMLL_ASM' '-DECP_NISTZ256_ASM' '-DGHASH_ASM' '-DKECCAK1600_ASM' '-DMD5_ASM' '-DOPENSSL_BN_ASM_GF2m' '-DOPENSSL_BN_ASM_MONT' '-DOPENSSL_BN_ASM_MONT5' '-DOPENSSL_CPUID_OBJ' '-DOPENSSL_IA32_SSE2' '-DPADLOCK_ASM' '-DPOLY1305_ASM' '-DRC4_ASM' '-DSHA1_ASM' '-DSHA256_ASM' '-DSHA512_ASM' '-DVPAES_ASM' '-DWHIRLPOOL_ASM' '-DX25519_ASM' '-DOPENSSL_PIC' '-DOPENSSLDIR="/etc/ssl"' '-DENGINESDIR="/dev/null"' '-DTERMIOS' -I../deps/openssl/openssl/apps/include -I/usr/local/include -I../deps/openssl/openssl -I../deps/openssl/openssl/include -I../deps/openssl/openssl/crypto -I../deps/openssl/openssl/crypto/include -I../deps/openssl/openssl/crypto/modes -I../deps/openssl/openssl/crypto/ec/curve448 -I../deps/openssl/openssl/crypto/ec/curve448/arch_32 -I../deps/openssl/openssl/providers/common/include -I../deps/openssl/openssl/providers/implementations/include -I../deps/openssl/config -I../deps/openssl/config/archs/linux-x86_64/asm/include -I../deps/openssl/openssl/include -I../deps/openssl/openssl/crypto/include -I../deps/openssl/config/archs/linux-x86_64/asm_avx2/include -I../deps/openssl/config/archs/linux-x86_64/asm_avx2  -pthread -Wall -Wextra -Wno-unused-parameter -Wa,--noexecstack -Wall -O3 -pthread -m64 -Wall -O3 -Wno-missing-field-initializers -I/usr/local/include -m64 -fno-omit-frame-pointer  -MMD -MF /usr/obj/ports/node-20.18.2/node-v20.18.2/out/Release/.deps//usr/obj/ports/node-20.18.2/node-v20.18.2/out/Release/obj.target/openssl-cli/deps/openssl/openssl/apps/lib/cmp_mock_srv.o.d.raw  -O2 -pipe -c
ld.lld: error: stray --end-group
c++: error: linker command failed with exit code 1 (use -v to see invocation)
gmake[1]: *** [overlapped-checker.target.mk:134: /usr/obj/ports/node-20.18.2/node-v20.18.2/out/Release/overlapped-checker] Error 1
gmake[1]: *** Waiting for unfinished jobs....
rm 1220881f73d137aa5ecdd16be3158ba788b8464a.intermediate
gmake: *** [Makefile:135: node] Error 2
*** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:3069 '/usr/obj/ports/node-20.18.2/.build_done': @cd /usr/obj/ports/node-20.18.2/n...)
*** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2241 '/usr/packages/amd64/all/node-20.18.2v0.tgz': @cd /usr/ports/lang/node20 && ...)
*** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2733 '_internal-package': @case X${_DEPENDS_CACHE} in  X) _DEPENDS_CACHE=$( mktem...)
*** Error 2 in /usr/ports/lang/node20 (/usr/ports/infrastructure/mk/bsd.port.mk:2712 'package': @lock=node-20.18.2v0;  export _LOCKS_HELD=" ...)

Am Di., 27. Mai 2025 um 11:50 Uhr schrieb Stuart Henderson <stu@spacehopper.org>:
If you need the older version I would get a CVS checkout of the
OPENBSD_7_7 ports tree (see the faq), then

cd /usr/ports/lang
cp -r node node20
cd node20
cvs up -r OPENBSD_7_6 -Pd
make prepare FETCH_PACKAGES=
make package

(or e.g. "make package MAKE_JOBS=4" to use multiple cores to speed up
the build)

this is not "supported" but will likely work with no or minimal changes
to the port.

On 2025/05/25 12:29, Martin Ivanov wrote:
> Hello,
>
> I'm trying to build Node.js 20 on OpenBSD 7.7 (uname -a: OpenBSD marto.OpenBSD 7.7 GENERIC.MP#
> 625 amd64).
>
> I noticed that Node.js 20 was available in the ports tree for OpenBSD 7.6, but it no longer
> appears to be available for 7.7. I would prefer not to downgrade the OS just to get access to
> this specific Node version.
>
> Before I spend too much time trying to patch things manually, I wanted to ask:
> - Is there any known reason Node.js 20 was dropped from the 7.7 ports?
> - Would it be feasible to port it forward from the 7.6 tree?
> - If so, are there known blockers or incompatibilities I should be aware of?
>
> I tried building it manually using gmake and NVM's cached source, but ran into issues with GYP
> and missing or problematic flags (e.g., `ldl`, `lcrypt`, `lrt`), and patching around them
> hasn't been successful so far.
>
> Any advice or pointers would be greatly appreciated.
>
> Thank you,  
> Marto

No comments:

Post a Comment