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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 77d656afd7388f0880caf7e7dd87f11f52e1433d78251bc830ce079dfd08e13f
4
- data.tar.gz: 6f26a9758e57478e432686ef6763df7387d988cdb32c6c3895d2cb7e699f5c54
3
+ metadata.gz: ca9188ddf638912731789be80c87f997f40381a0be3567adbc3cd55962a69a05
4
+ data.tar.gz: 76b3e45554806ae36bd0f93ec5660f0a1c000481bf50a9fa6bda9c1bce59af69
5
5
  SHA512:
6
- metadata.gz: 638aad097efa406f29de95569a28ba12d35c711d374dc011612704658e2552ba058abaa18d5a3730e06cfe5e20b189154c6e83f2628c19a1753c847e583b101f
7
- data.tar.gz: c0cc5d4664da75583e892eaeac8b5293943a93a0b4e8374f02e64df1504de1bfe3493a9f6f628a45cbbd1312b5746beb41a42bff046df1d75aef090325e81bfb
6
+ metadata.gz: 665bee5f4f1588e8dcdaf1f642775a21d08b47236c1ab665d26795ad1e7288c11e5c8fc4273cf24f4d7883c871f8b0fcaeeffb5b275f46c1bb971131cd2a0ab8
7
+ data.tar.gz: b7e80764d4808a41cc66053ed740155a65e01c5a8d98fb6708c8454bf274772ef16e53d619f4792ea0fa94d571264b35e27709e82c55ee3ee185f96bc2d9c287
@@ -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'
@@ -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__)
@@ -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
 
@@ -1,7 +1,7 @@
1
1
  module Libv8; end
2
2
 
3
3
  module Libv8::Node
4
- VERSION = '17.9.1.0'.freeze
4
+ VERSION = '17.9.1.1'.freeze
5
5
  NODE_VERSION = '17.9.1'.freeze
6
6
  LIBV8_VERSION = '9.6.180.15'.freeze # from v8/include/v8-version.h
7
7
  end
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
- "${PYTHON}" configure ${configure_flags}
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
@@ -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 -cq "${LIBV8_MONOLITH}"
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
- echo "${BASEDIR}/out/${BUILDTYPE}/${lib} -> ${dir}/${lib}"
43
- "${STRIP}" -S -x -o "${dir}/${lib}" "${lib}"
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
@@ -0,0 +1,10 @@
1
+ --- deps/v8/src/heap/cppgc/prefinalizer-handler.h
2
+ +++ deps/v8/src/heap/cppgc/prefinalizer-handler.h
3
+ @@ -6,6 +6,7 @@
4
+ #define V8_HEAP_CPPGC_PREFINALIZER_HANDLER_H_
5
+
6
+ #include <vector>
7
+ +#include <utility>
8
+
9
+ #include "include/cppgc/prefinalizer.h"
10
+
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.0
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: 2022-08-29 00:00:00.000000000 Z
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: 0.50.0
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: 0.50.0
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.2.26
102
+ rubygems_version: 3.3.20
102
103
  signing_key:
103
104
  specification_version: 4
104
105
  summary: Node.JS's V8 JavaScript engine