libv8-node 16.19.0.0 → 16.19.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: 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
  - ''