diff options
Diffstat (limited to 'community/nodejs')
-rw-r--r-- | community/nodejs/PKGBUILD | 20 | ||||
-rw-r--r-- | community/nodejs/node-17.1.0-atomic.patch | 40 |
2 files changed, 59 insertions, 1 deletions
diff --git a/community/nodejs/PKGBUILD b/community/nodejs/PKGBUILD index efbf8000..0a1713cb 100644 --- a/community/nodejs/PKGBUILD +++ b/community/nodejs/PKGBUILD @@ -2,7 +2,7 @@ eval "$( declare -f build | \ sed ' - s|./configure|./configure --dest-cpu ia32|g + s|./configure|./configure --dest-cpu x86|g ' )" @@ -15,3 +15,21 @@ eval "$( 3 i CXXFLAGS+=" -g1" ' )" + +# add -latomic where needed (i486) +if [ "$CARCH" = 'i486' ]; then + source+=('node-17.1.0-atomic.patch') + sha512sums+=('a2acca076dc0f65e17ffb5ac0bbf4dc9b8be845a400b66b5f83f5efbfca16e01ecc675a307eb0c28527874dea6464699f3969c3ee9a94226af568fb18feca331') + eval "$( + declare -f prepare | \ + sed ' + $i patch -Np1 -i "../node-17.1.0-atomic.patch" + ' + )" + eval "$( + declare -f build | \ + sed ' + 3 i LDFLAGS+=" -latomic" + ' + )" +fi diff --git a/community/nodejs/node-17.1.0-atomic.patch b/community/nodejs/node-17.1.0-atomic.patch new file mode 100644 index 00000000..fce9e21f --- /dev/null +++ b/community/nodejs/node-17.1.0-atomic.patch @@ -0,0 +1,40 @@ +diff -rauN node-17.1.0/node.gyp node-17.1.0-atomic-patch/node.gyp +--- node-17.1.0/node.gyp 2021-11-08 16:40:59.000000000 +0100 ++++ node-17.1.0-atomic-patch/node.gyp 2021-12-09 09:16:58.041503560 +0100 +@@ -116,6 +116,11 @@ + '-Wl,-bnoerrmsg', + ], + }], ++ [ 'target_arch=="ia32"', { ++ 'link_settings': { ++ 'libraries': [ '-latomic' ], ++ }, ++ }], + ['OS == "linux" and llvm_version != "0.0"', { + 'libraries': ['-latomic'], + }], +diff -rauN node-17.1.0/tools/v8_gypfiles/toolchain.gypi node-17.1.0-atomic-patch/tools/v8_gypfiles/toolchain.gypi +--- node-17.1.0/tools/v8_gypfiles/toolchain.gypi 2021-11-08 16:40:59.000000000 +0100 ++++ node-17.1.0-atomic-patch/tools/v8_gypfiles/toolchain.gypi 2021-12-09 09:14:54.281212315 +0100 +@@ -1030,9 +1030,6 @@ + or OS=="netbsd" or OS=="mac" or OS=="android" or OS=="qnx") and \ + v8_target_arch=="ia32"', { + 'cflags': [ +- '-msse2', +- '-mfpmath=sse', +- '-mmmx', # Allows mmintrin.h for MMX intrinsics. + ], + }], + ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ +diff -rauN node-17.1.0/tools/v8_gypfiles/v8.gyp node-17.1.0-atomic-patch/tools/v8_gypfiles/v8.gyp +--- node-17.1.0/tools/v8_gypfiles/v8.gyp 2021-11-08 16:40:59.000000000 +0100 ++++ node-17.1.0-atomic-patch/tools/v8_gypfiles/v8.gyp 2021-12-09 09:10:15.947439079 +0100 +@@ -965,7 +965,7 @@ + }], + # Platforms that don't have Compare-And-Swap (CAS) support need to link atomic library + # to implement atomic memory access +- ['v8_current_cpu in ["mips", "mipsel", "mips64", "mips64el", "ppc", "arm", "riscv64"]', { ++ ['v8_current_cpu in ["mips", "mipsel", "mips64", "mips64el", "ppc", "arm", "riscv64", "x86"]', { + 'link_settings': { + 'libraries': ['-latomic', ], + }, |