libv8-node 18.13.0.0 → 18.13.0.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: 35fd68b64f8e29d80ee3a76ca66add77198fe2c8c9f334827f7e7345aaf20f95
4
- data.tar.gz: 66e9b5d7df9931b72c0a1c76799b27b956f95c9a0821c71ff566f8b96ef625c0
3
+ metadata.gz: cb59feaa011e639270b24edf6d6df98ae2b485b8b63753429eba15b0dddc9033
4
+ data.tar.gz: dd79936cd88f9e81780dd0de11a2405ff9911c45bb14e48944524f21dcabe6b1
5
5
  SHA512:
6
- metadata.gz: 15245c17f78fb9a1cb2d476cde4b75a3b88244567fd0b60f73f67b4991ebac3675d05aef3ecf82a2b757fdab4bffc5f485543b3d78b62d964366a7346cb7f29d
7
- data.tar.gz: 2b3510634d364ed07b651fbb77539deb0833f1219b71a76c3dbd8e5125899acd6d19ca5c5224fef0f48cae14fead543035a100949dbcfb9ac3883cef714c286b
6
+ metadata.gz: d03f54eaa07ee37af63c17d1162be8eb3bfac6e8c7ce34c3461f5bc479aaec9682fd46025575f9b24b9c540a17c184222d6d641f9d398d22704ba2faefbc7ca8
7
+ data.tar.gz: 63f4374a5f1e5ad8481e738e3a4e8cfe53f671a1349d7e13c757383867a976e27741c7808d39e4996b7682eb4227fff3da0d04e20a06e38fbf217dbb67f91794
@@ -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 = '18.13.0.0'.freeze
4
+ VERSION = '18.13.0.1'.freeze
5
5
  NODE_VERSION = '18.13.0'.freeze
6
6
  LIBV8_VERSION = '10.2.154.23'.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/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
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: 18.13.0.0
4
+ version: 18.13.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-07 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
  - ''