libv8-node 17.9.1.0 → 17.9.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/libv8-node/builder.rb +1 -1
- data/ext/libv8-node/extconf.rb +6 -0
- data/ext/libv8-node/location.rb +1 -1
- data/lib/libv8/node/version.rb +1 -1
- data/libexec/build-libv8 +9 -7
- data/libexec/build-monolith +4 -3
- data/libexec/extract-node +1 -0
- data/libexec/inject-libv8 +29 -2
- data/libexec/platform +21 -0
- data/patch/v8-prefinalizer-h-utility.patch +10 -0
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca9188ddf638912731789be80c87f997f40381a0be3567adbc3cd55962a69a05
|
4
|
+
data.tar.gz: 76b3e45554806ae36bd0f93ec5660f0a1c000481bf50a9fa6bda9c1bce59af69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 665bee5f4f1588e8dcdaf1f642775a21d08b47236c1ab665d26795ad1e7288c11e5c8fc4273cf24f4d7883c871f8b0fcaeeffb5b275f46c1bb971131cd2a0ab8
|
7
|
+
data.tar.gz: b7e80764d4808a41cc66053ed740155a65e01c5a8d98fb6708c8454bf274772ef16e53d619f4792ea0fa94d571264b35e27709e82c55ee3ee185f96bc2d9c287
|
data/ext/libv8-node/builder.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
unless $LOAD_PATH.include?(File.expand_path('../../lib', __dir__))
|
1
|
+
unless $LOAD_PATH.include?(File.expand_path('../../lib', __dir__)) # rubocop:disable Style/IfUnlessModifier
|
2
2
|
$LOAD_PATH.unshift(File.expand_path('../../lib', __dir__))
|
3
3
|
end
|
4
4
|
require 'libv8/node/version'
|
data/ext/libv8-node/extconf.rb
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'mkmf'
|
4
|
+
|
5
|
+
if RUBY_ENGINE == 'truffleruby'
|
6
|
+
File.write('Makefile', dummy_makefile($srcdir).join('')) # rubocop:disable Style/GlobalVars
|
7
|
+
return
|
8
|
+
end
|
9
|
+
|
4
10
|
create_makefile('libv8-node')
|
5
11
|
|
6
12
|
require File.expand_path('location', __dir__)
|
data/ext/libv8-node/location.rb
CHANGED
@@ -45,7 +45,7 @@ module Libv8::Node
|
|
45
45
|
def verify_installation!
|
46
46
|
include_paths = Libv8::Node::Paths.include_paths
|
47
47
|
|
48
|
-
unless include_paths.detect { |p| Pathname(p).join('v8.h').exist? }
|
48
|
+
unless include_paths.detect { |p| Pathname(p).join('v8.h').exist? } # rubocop:disable Style/IfUnlessModifier
|
49
49
|
raise(HeaderNotFound, "Unable to locate 'v8.h' in the libv8 header paths: #{include_paths.inspect}")
|
50
50
|
end
|
51
51
|
|
data/lib/libv8/node/version.rb
CHANGED
data/libexec/build-libv8
CHANGED
@@ -17,12 +17,6 @@ BUILDTYPE="${BUILDTYPE:-Release}"
|
|
17
17
|
|
18
18
|
cd "${src}/node-v${version}"
|
19
19
|
|
20
|
-
if command -v python3 >/dev/null 2>&1; then
|
21
|
-
PYTHON="${PYTHON:-python3}"
|
22
|
-
else
|
23
|
-
PYTHON="${PYTHON:-python2}"
|
24
|
-
fi
|
25
|
-
|
26
20
|
configure_flags='--openssl-no-asm --without-npm --shared --with-intl=full-icu'
|
27
21
|
eval "$("${libexec}/platform")"
|
28
22
|
|
@@ -33,10 +27,18 @@ ${CC} -v
|
|
33
27
|
${CXX} -v
|
34
28
|
|
35
29
|
# shellcheck disable=SC2086
|
36
|
-
|
30
|
+
./configure ${configure_flags}
|
37
31
|
|
38
32
|
make BUILDTYPE="${BUILDTYPE}" config.gypi
|
39
33
|
make BUILDTYPE="${BUILDTYPE}" "out/Makefile"
|
40
34
|
|
35
|
+
# workaround for node specifying `-msign-return-address=all` in ALL `CFLAGS` for aarch64 builds
|
36
|
+
# (if the host isn't also aarch64, this flag causes a compiler error)
|
37
|
+
|
38
|
+
# shellcheck disable=SC2154 # these variables are defined by `eval`ing the output of the platform script above
|
39
|
+
if [ "$host_platform" != "$target_platform" ] && [ "${target_platform%%-*}" = "aarch64" ]; then
|
40
|
+
find . -iname "*.host.mk" -exec sed -i '/-msign-return-address/d' {} ';'
|
41
|
+
fi
|
42
|
+
|
41
43
|
export PATH="${PWD}/out/tools/bin:${PATH}"
|
42
44
|
make -j"${NJOBS}" -C out BUILDTYPE="${BUILDTYPE}" V=0
|
data/libexec/build-monolith
CHANGED
@@ -21,13 +21,14 @@ platform=$(uname)
|
|
21
21
|
rm -f "${LIBV8_MONOLITH}"
|
22
22
|
case "${platform}" in
|
23
23
|
"SunOS")
|
24
|
-
/usr/xpg4/bin/find . -path "./torque_*/**/*.o" -or -path "./v8*/**/*.o" -or -path "./icu*/**/*.o" | sort | uniq | xargs ar cq "${LIBV8_MONOLITH}"
|
24
|
+
/usr/xpg4/bin/find . '(' '!' -path './icutools/deps/icu-small/source/stubdata/stubdata.o' ')' -path "./torque_*/**/*.o" -or -path "./v8*/**/*.o" -or -path "./icu*/**/*.o" | sort | uniq | xargs ar cq "${LIBV8_MONOLITH}"
|
25
25
|
;;
|
26
26
|
"Darwin")
|
27
|
-
/usr/bin/find . -path "./torque_*/**/*.o" -or -path "./v8*/**/*.o" -or -path "./icu*/**/*.o" | sort | uniq | xargs /usr/bin/ar -cq "${LIBV8_MONOLITH}"
|
27
|
+
/usr/bin/find . '(' '!' -path './icutools/deps/icu-small/source/stubdata/stubdata.o' ')' -path "./torque_*/**/*.o" -or -path "./v8*/**/*.o" -or -path "./icu*/**/*.o" | sort | uniq | xargs /usr/bin/ar -cq "${LIBV8_MONOLITH}"
|
28
28
|
;;
|
29
29
|
"Linux")
|
30
|
-
find . -path "./torque_*/**/*.o" -or -path "./v8*/**/*.o" -or -path "./icu*/**/*.o" | sort | uniq | xargs ar -
|
30
|
+
find . '(' '!' -path './icutools/deps/icu-small/source/stubdata/stubdata.o' ')' -and '(' -path "./torque_*/**/*.o" -or -path "./v8*/**/*.o" -or -path "./icu*/**/*.o" ')' | sort | uniq | xargs ar -cqSP "${LIBV8_MONOLITH}"
|
31
|
+
ar -sP "${LIBV8_MONOLITH}"
|
31
32
|
;;
|
32
33
|
*)
|
33
34
|
echo "Unsupported platform: ${platform}"
|
data/libexec/extract-node
CHANGED
@@ -32,6 +32,7 @@ cd "${src}/node-v${version}"
|
|
32
32
|
#patch -p1 < "${top}"/patch/gyp-libv8_monolith.patch
|
33
33
|
patch -p1 < "${top}"/patch/py2-icutrim.patch
|
34
34
|
patch -p1 < "${top}"/patch/py2-genv8constants.patch
|
35
|
+
patch -p0 < "${top}"/patch/v8-prefinalizer-h-utility.patch
|
35
36
|
|
36
37
|
# TODO: the following still fails on py3 so the above one forcing py2 is needed
|
37
38
|
# patch -p1 < ../../py3-genv8constants.patch
|
data/libexec/inject-libv8
CHANGED
@@ -39,8 +39,35 @@ for lib in libv8_monolith.a; do
|
|
39
39
|
mkdir -p "${dir}"
|
40
40
|
rm -f "${dir}/${lib}"
|
41
41
|
|
42
|
-
|
43
|
-
|
42
|
+
if [ "$STRIP_NEEDS_EXTRACT" = "y" ]; then
|
43
|
+
# manual extract/strip objects/build archive sequence
|
44
|
+
# because `strip` can't deal with these
|
45
|
+
# (presumably due to that folder issue mentioned below)
|
46
|
+
(
|
47
|
+
tmpdir="$(mktemp -d)"
|
48
|
+
trap 'rm -r "$tmpdir"' EXIT
|
49
|
+
mkdir "$tmpdir/stage"
|
50
|
+
cd "$tmpdir/stage"
|
51
|
+
|
52
|
+
# create folders named in `ar` archive (`ar -x` fails to create these)
|
53
|
+
"$AR" "$ARLISTFLAGS" "$BASEDIR/out/$BUILDTYPE/$lib" | while read -r path; do
|
54
|
+
dirname "$path"
|
55
|
+
done | uniq | xargs mkdir -p
|
56
|
+
"$AR" "$AREXTRACTFLAGS" "$BASEDIR/out/${BUILDTYPE}/$lib"
|
57
|
+
|
58
|
+
# strip all objects
|
59
|
+
"$FIND" -type f -exec "$STRIP" -Sx {} +
|
60
|
+
|
61
|
+
# rebuild the archive
|
62
|
+
"$FIND" -type f -exec "$AR" "$ARCOLLECTFLAGS" "../$lib" {} +
|
63
|
+
$ARBUILDSYMBOLS "../$lib"
|
64
|
+
mv "../$lib" "$dir/$lib"
|
65
|
+
)
|
66
|
+
echo "${BASEDIR}/out/${BUILDTYPE}/${lib} -> ${dir}/${lib}"
|
67
|
+
else
|
68
|
+
echo "${BASEDIR}/out/${BUILDTYPE}/${lib} -> ${dir}/${lib}"
|
69
|
+
"${STRIP}" -S -x -o "${dir}/${lib}" "${lib}"
|
70
|
+
fi
|
44
71
|
done
|
45
72
|
|
46
73
|
mkdir -p "${top}/ext/libv8-node"
|
data/libexec/platform
CHANGED
@@ -15,6 +15,14 @@ elif command -v cc >/dev/null 2>&1; then
|
|
15
15
|
fi
|
16
16
|
|
17
17
|
STRIP="${STRIP:-strip}"
|
18
|
+
AR="${AR:-ar}"
|
19
|
+
AREXTRACTFLAGS="${AREXTRACTFLAGS:--x}"
|
20
|
+
ARLISTFLAGS="${ARLISTFLAGS:--t}"
|
21
|
+
ARCOLLECTFLAGS="${ARCOLLECTFLAGS:-cqS}"
|
22
|
+
# this is the command to build the symbol table in an ar archive.
|
23
|
+
ARBUILDSYMBOLS="${ARBUILDSYMBOLS:-ranlib}"
|
24
|
+
FIND="${FIND:-find}"
|
25
|
+
STRIP_NEEDS_EXTRACT="${STRIP_NEEDS_EXTRACT:-n}"
|
18
26
|
|
19
27
|
triple=$(${CC} -dumpmachine)
|
20
28
|
host_platform="${triple}"
|
@@ -63,6 +71,11 @@ case "${host_platform}" in
|
|
63
71
|
CXX="${CXX:-/opt/local/gcc7/bin/g++}"
|
64
72
|
STRIP="gstrip"
|
65
73
|
;;
|
74
|
+
*linux*)
|
75
|
+
STRIP_NEEDS_EXTRACT="y"
|
76
|
+
ARCOLLECTFLAGS="-cqSP"
|
77
|
+
ARBUILDSYMBOLS="${AR} -sP"
|
78
|
+
;;
|
66
79
|
esac
|
67
80
|
|
68
81
|
if [ "${host_platform}" != "${target_platform}" ]; then
|
@@ -146,6 +159,14 @@ export CC='${CC}'
|
|
146
159
|
export CXX='${CXX}'
|
147
160
|
host_platform='${host_platform}'
|
148
161
|
target_platform='${target_platform}'
|
162
|
+
STRIP='$STRIP'
|
163
|
+
AR='$AR'
|
164
|
+
AREXTRACTFLAGS='$AREXTRACTFLAGS'
|
165
|
+
ARLISTFLAGS='$ARLISTFLAGS'
|
166
|
+
ARCOLLECTFLAGS='$ARCOLLECTFLAGS'
|
167
|
+
ARBUILDSYMBOLS='$ARBUILDSYMBOLS'
|
168
|
+
FIND='$FIND'
|
169
|
+
STRIP_NEEDS_EXTRACT='$STRIP_NEEDS_EXTRACT'
|
149
170
|
EOF
|
150
171
|
|
151
172
|
if [ -n "${CC_host:-}" ]; then cat <<EOF; fi
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libv8-node
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 17.9.1.
|
4
|
+
version: 17.9.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.44.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 1.44.0
|
41
41
|
description: Node.JS's V8 JavaScript engine for multiplatform goodness
|
42
42
|
email:
|
43
43
|
- ''
|
@@ -67,6 +67,7 @@ files:
|
|
67
67
|
- patch/py2-genv8constants.patch
|
68
68
|
- patch/py2-icutrim.patch
|
69
69
|
- patch/py3-genv8constants.patch
|
70
|
+
- patch/v8-prefinalizer-h-utility.patch
|
70
71
|
- sums/v16.10.0.sum
|
71
72
|
- sums/v16.11.1.sum
|
72
73
|
- sums/v16.3.0.sum
|
@@ -98,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
99
|
- !ruby/object:Gem::Version
|
99
100
|
version: '0'
|
100
101
|
requirements: []
|
101
|
-
rubygems_version: 3.
|
102
|
+
rubygems_version: 3.3.20
|
102
103
|
signing_key:
|
103
104
|
specification_version: 4
|
104
105
|
summary: Node.JS's V8 JavaScript engine
|