libv8-node 16.19.0.0 → 16.19.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 327a2f9c98fe778c96c787d7321a5e577ba6b50ba7723d26eccdae055a2efd46
4
- data.tar.gz: 0cbf761e59ea78731424d51e45bc88dfecaf20195d1fa21cc5c20ab423835d6b
3
+ metadata.gz: d6d0f0ae89b885ef1c2761e3cc942ef637cfa994a726987ae14815515a1995ee
4
+ data.tar.gz: dd5a6d96552a1eb7e42d6cd42a86629526ea481ff513483d70aae3cbe3e0d868
5
5
  SHA512:
6
- metadata.gz: 453dec4e84d08058751dded318d1f733068e8dc497ae45c71e9a2540faab5dc1e52f550221b6fb4e78bf0804dc0dcf698b4b7fb2550043be025d6ffb7affd175
7
- data.tar.gz: 6bfea07b2965d54284bd34bca1d4cb1d737c0271abb74561041bcad33524e221bb66f07c22dc008a44cb19255686081750d11e21884f8634766b9a50c03c89a2
6
+ metadata.gz: 398094fffb007d3fb244bef0e0609feb7ee2d08102a8207a1a1b83313b33cf0e2110f9bd4bce428360ef414f97e56217720cad43a96bdace5815629476d8df93
7
+ data.tar.gz: 33295e04a118c72c5123c87780ace7e3c61d8958b01fa065c999cccec2588a7a207d50f78df5d07537bd6d830539ec4e3400291a7b89ed5331a7f7cbe0ca4653
@@ -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 = '16.19.0.0'.freeze
4
+ VERSION = '16.19.0.1'.freeze
5
5
  NODE_VERSION = '16.19.0'.freeze
6
6
  LIBV8_VERSION = '9.4.146.26'.freeze # from v8/include/v8-version.h
7
7
  end
data/libexec/build-libv8 CHANGED
@@ -38,5 +38,13 @@ ${CXX} -v
38
38
  make BUILDTYPE="${BUILDTYPE}" config.gypi
39
39
  make BUILDTYPE="${BUILDTYPE}" "out/Makefile"
40
40
 
41
+ # workaround for node specifying `-msign-return-address=all` in ALL `CFLAGS` for aarch64 builds
42
+ # (if the host isn't also aarch64, this flag causes a compiler error)
43
+
44
+ # shellcheck disable=SC2154 # these variables are defined by `eval`ing the output of the platform script above
45
+ if [ "$host_platform" != "$target_platform" ] && [ "${target_platform%%-*}" = "aarch64" ]; then
46
+ find . -iname "*.host.mk" -exec sed -i '/-msign-return-address/d' {} ';'
47
+ fi
48
+
41
49
  export PATH="${PWD}/out/tools/bin:${PATH}"
42
50
  make -j"${NJOBS}" -C out BUILDTYPE="${BUILDTYPE}" V=0
@@ -21,21 +21,20 @@ 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 | while read -r obj; do
24
+ /usr/xpg4/bin/find . '(' '!' -path './icutools/deps/icu-small/source/stubdata/stubdata.o' ')' -and '(' -path "./torque_*/**/*.o" -or -path "./v8*/**/*.o" -or -path "./icu*/**/*.o" ')' | sort | uniq | while read -r obj; do
25
25
  ar cqS "${LIBV8_MONOLITH}" "${obj}"
26
26
  done
27
27
  ranlib "${LIBV8_MONOLITH}"
28
28
  ;;
29
29
  "Darwin")
30
- /usr/bin/find . -path "./torque_*/**/*.o" -or -path "./v8*/**/*.o" -or -path "./icu*/**/*.o" | sort | uniq | while read -r obj; do
30
+ /usr/bin/find . '(' '!' -path './icutools/deps/icu-small/source/stubdata/stubdata.o' ')' -and '(' -path "./torque_*/**/*.o" -or -path "./v8*/**/*.o" -or -path "./icu*/**/*.o" ')' | sort | uniq | while read -r obj; do
31
31
  /usr/bin/ar -cqS "${LIBV8_MONOLITH}" "${obj}"
32
32
  done
33
33
  /usr/bin/ranlib "${LIBV8_MONOLITH}"
34
34
  ;;
35
35
  "Linux")
36
- find . -path "./torque_*/**/*.o" -or -path "./v8*/**/*.o" -or -path "./icu*/**/*.o" | sort | uniq | while read -r obj; do
37
- ar -cq "${LIBV8_MONOLITH}" "${obj}"
38
- done
36
+ 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}"
37
+ ar -sP "${LIBV8_MONOLITH}"
39
38
  ;;
40
39
  *)
41
40
  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: 16.19.0.0
4
+ version: 16.19.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-08 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
  - ''