All of lore.kernel.org
 help / color / mirror / Atom feed
* [meta-oe][PATCH v2 1/3] nodejs: Update to 14.16.1
@ 2021-04-17 18:19 Khem Raj
  2021-04-17 18:19 ` [meta-oe][PATCH v2 2/3] nodejs: Fix build with icu-69 Khem Raj
  2021-04-17 18:19 ` [meta-oe][PATCH v2 3/3] nodejs: Do not use native host nodejs binaries Khem Raj
  0 siblings, 2 replies; 4+ messages in thread
From: Khem Raj @ 2021-04-17 18:19 UTC (permalink / raw)
  To: openembedded-devel; +Cc: Khem Raj

This is latest maintained LTS release
Forward patches and drop backported patch

License-Update: Update  copyright year and drop license of
deps/http_parser as this component is  removed in this version

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
v2: Rebased

 ...e-running-gyp-files-for-bundled-deps.patch | 15 +++---
 ...gister-r7-because-llvm-now-issues-an.patch | 53 -------------------
 ...Install-both-binaries-and-use-libdir.patch | 37 ++++++-------
 .../{nodejs_12.21.0.bb => nodejs_14.16.1.bb}  |  5 +-
 4 files changed, 25 insertions(+), 85 deletions(-)
 delete mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/0001-Remove-use-of-register-r7-because-llvm-now-issues-an.patch
 rename meta-oe/recipes-devtools/nodejs/{nodejs_12.21.0.bb => nodejs_14.16.1.bb} (96%)

diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
index 4dd121f485..d6e439ba22 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
@@ -1,4 +1,4 @@
-From c2aff16cc196a61f4ab1cdae4a91c7926123c239 Mon Sep 17 00:00:00 2001
+From 7d94bfe53beeb2d25eb5f2ff6b1d509df7e6ab80 Mon Sep 17 00:00:00 2001
 From: Zuzana Svetlikova <zsvetlik@redhat.com>
 Date: Thu, 27 Apr 2017 14:25:42 +0200
 Subject: [PATCH] Disable running gyp on shared deps
@@ -8,18 +8,15 @@ Subject: [PATCH] Disable running gyp on shared deps
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/Makefile b/Makefile
-index 0947300f24..6c98691984 100644
+index 93d63110..79caaec2 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -141,7 +141,7 @@ test-code-cache: with-code-cache
- 	echo "'test-code-cache' target is a noop"
+@@ -138,7 +138,7 @@ with-code-cache test-code-cache:
+ 	$(warning '$@' target is a noop)
  
  out/Makefile: config.gypi common.gypi node.gyp \
--	deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/zlib/zlib.gyp \
-+	deps/http_parser/http_parser.gyp \
+-	deps/uv/uv.gyp deps/llhttp/llhttp.gyp deps/zlib/zlib.gyp \
++	deps/llhttp/llhttp.gyp \
  	tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \
  	tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp
  	$(PYTHON) tools/gyp_node.py -f make
--- 
-2.20.1
-
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-Remove-use-of-register-r7-because-llvm-now-issues-an.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-Remove-use-of-register-r7-because-llvm-now-issues-an.patch
deleted file mode 100644
index a23f1c243e..0000000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0001-Remove-use-of-register-r7-because-llvm-now-issues-an.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From be8d3cd6eab4b8f9849133060abb1aba4400276b Mon Sep 17 00:00:00 2001
-From: Amy Huang <akhuang@google.com>
-Date: Thu, 23 Apr 2020 11:25:53 -0700
-Subject: [PATCH] Remove use of register r7 because llvm now issues an error
- when "r7" is used (starting in commit d85b3877)
-
-Bug: chromium:1073270
-Change-Id: I7ec8112f170b98d2edaf92bc9341e738f8de07a3
-Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2163435
-Reviewed-by: Nico Weber <thakis@chromium.org>
-Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
-Commit-Queue: Nico Weber <thakis@chromium.org>
-Cr-Commit-Position: refs/heads/master@{#67371}
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Backport [https://chromium.googlesource.com/v8/v8/+/00604cd2806b5d26bef592dd19989a234bd07a4b%5E%21/]
- deps/v8/src/codegen/arm/cpu-arm.cc | 13 -------------
- 1 file changed, 13 deletions(-)
-
-diff --git a/deps/v8/src/codegen/arm/cpu-arm.cc b/deps/v8/src/codegen/arm/cpu-arm.cc
-index 868f360..654d68f 100644
---- a/deps/v8/src/codegen/arm/cpu-arm.cc
-+++ b/deps/v8/src/codegen/arm/cpu-arm.cc
-@@ -30,18 +30,6 @@ V8_NOINLINE void CpuFeatures::FlushICache(void* start, size_t size) {
-   register uint32_t end asm("r1") = beg + size;
-   register uint32_t flg asm("r2") = 0;
- 
--#ifdef __clang__
--  // This variant of the asm avoids a constant pool entry, which can be
--  // problematic when LTO'ing. It is also slightly shorter.
--  register uint32_t scno asm("r7") = __ARM_NR_cacheflush;
--
--  asm volatile("svc 0\n"
--               :
--               : "r"(beg), "r"(end), "r"(flg), "r"(scno)
--               : "memory");
--#else
--  // Use a different variant of the asm with GCC because some versions doesn't
--  // support r7 as an asm input.
-   asm volatile(
-       // This assembly works for both ARM and Thumb targets.
- 
-@@ -59,7 +47,6 @@ V8_NOINLINE void CpuFeatures::FlushICache(void* start, size_t size) {
-       : "r"(beg), "r"(end), "r"(flg), [scno] "i"(__ARM_NR_cacheflush)
-       : "memory");
- #endif
--#endif
- #endif  // !USE_SIMULATOR
- }
- 
--- 
-2.29.2
-
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0003-Install-both-binaries-and-use-libdir.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0003-Install-both-binaries-and-use-libdir.patch
index 92386fa779..6223920990 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0003-Install-both-binaries-and-use-libdir.patch
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0003-Install-both-binaries-and-use-libdir.patch
@@ -1,28 +1,31 @@
-From 5bfeffdf4b5de1c60a2ff0d1ddf65db2bb9a1533 Mon Sep 17 00:00:00 2001
+From 5b22fac923d1ca3e9fefb97f5a171124a88f5e22 Mon Sep 17 00:00:00 2001
 From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
 Date: Tue, 19 Mar 2019 23:22:40 -0400
-Subject: [PATCH 3/3] Install both binaries and use libdir.
+Subject: [PATCH] Install both binaries and use libdir.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
 
 This allows us to build with a shared library for other users while
 still providing the normal executable.
 
-Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
-
-Stolen from [1]
-
-[1] https://src.fedoraproject.org/rpms/nodejs/raw/master/f/0003-Install-both-binaries-and-use-libdir.patch
+Taken from - https://src.fedoraproject.org/rpms/nodejs/raw/rawhide/f/0002-Install-both-binaries-and-use-libdir.patch
 
 Upstream-Status: Pending
 
+Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
 ---
  configure.py     |  7 +++++++
- tools/install.py | 31 ++++++++++++++-----------------
- 2 files changed, 21 insertions(+), 17 deletions(-)
+ tools/install.py | 21 +++++++++------------
+ 2 files changed, 16 insertions(+), 12 deletions(-)
 
+diff --git a/configure.py b/configure.py
+index e6f7e4db..6cf5c45d 100755
 --- a/configure.py
 +++ b/configure.py
-@@ -602,6 +602,12 @@ parser.add_option('--shared',
+@@ -626,6 +626,12 @@ parser.add_option('--shared',
      help='compile shared library for embedding node in another project. ' +
           '(This mode is not officially supported for regular applications)')
  
@@ -35,7 +38,7 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
  parser.add_option('--without-v8-platform',
      action='store_true',
      dest='without_v8_platform',
-@@ -1168,6 +1174,7 @@ def configure_node(o):
+@@ -1202,6 +1208,7 @@ def configure_node(o):
    o['variables']['node_no_browser_globals'] = b(options.no_browser_globals)
  
    o['variables']['node_shared'] = b(options.shared)
@@ -43,9 +46,11 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
    node_module_version = getmoduleversion.get_version()
  
    if options.dest_os == 'android':
+diff --git a/tools/install.py b/tools/install.py
+index 729b416f..9bfc6234 100755
 --- a/tools/install.py
 +++ b/tools/install.py
-@@ -121,26 +121,23 @@ def subdir_files(path, dest, action):
+@@ -121,22 +121,19 @@ def subdir_files(path, dest, action):
  
  def files(action):
    is_windows = sys.platform == 'win32'
@@ -64,16 +69,8 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
 -      output_file += '.dll'
 -    else:
 -      output_file = 'lib' + output_file + '.' + variables.get('shlib_suffix')
--      # GYP will output to lib.target except on OS X, this is hardcoded
--      # in its source - see the _InstallableTargetInstallPath function.
--      if sys.platform != 'darwin':
--        output_prefix += 'lib.target/'
 +    output_bin = 'node'
 +    output_lib = 'libnode.' + variables.get('shlib_suffix')
-+    # GYP will output to lib.target except on OS X, this is hardcoded
-+    # in its source - see the _InstallableTargetInstallPath function.
-+    if sys.platform != 'darwin':
-+      output_libprefix += 'lib.target/'
  
 -  if 'false' == variables.get('node_shared'):
 -    action([output_prefix + output_file], 'bin/' + output_file)
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_12.21.0.bb b/meta-oe/recipes-devtools/nodejs/nodejs_14.16.1.bb
similarity index 96%
rename from meta-oe/recipes-devtools/nodejs/nodejs_12.21.0.bb
rename to meta-oe/recipes-devtools/nodejs/nodejs_14.16.1.bb
index 9b86bf3373..b24a6d6567 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs_12.21.0.bb
+++ b/meta-oe/recipes-devtools/nodejs/nodejs_14.16.1.bb
@@ -1,7 +1,7 @@
 DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
 HOMEPAGE = "http://nodejs.org"
 LICENSE = "MIT & BSD & Artistic-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8c66ff8861d9f96076a7cb61e3d75f54"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=85bf260d8b6de1588f57abc5dc66587c"
 
 DEPENDS = "openssl"
 DEPENDS_append_class-target = " nodejs-native"
@@ -21,12 +21,11 @@ SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
            file://0004-v8-don-t-override-ARM-CFLAGS.patch \
            file://big-endian.patch \
            file://mips-warnings.patch \
-           file://0001-Remove-use-of-register-r7-because-llvm-now-issues-an.patch \
            "
 SRC_URI_append_class-target = " \
            file://0002-Using-native-binaries.patch \
            "
-SRC_URI[sha256sum] = "052f37ace6f569b513b5a1154b2a45d3c4d8b07d7d7c807b79f1566db61e979d"
+SRC_URI[sha256sum] = "e44adbbed6756c2c1a01258383e9f00df30c147b36e438f6369b5ef1069abac3"
 
 S = "${WORKDIR}/node-v${PV}"
 
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [meta-oe][PATCH v2 2/3] nodejs: Fix build with icu-69
  2021-04-17 18:19 [meta-oe][PATCH v2 1/3] nodejs: Update to 14.16.1 Khem Raj
@ 2021-04-17 18:19 ` Khem Raj
  2021-04-21  6:55   ` [oe] " Martin Jansa
  2021-04-17 18:19 ` [meta-oe][PATCH v2 3/3] nodejs: Do not use native host nodejs binaries Khem Raj
  1 sibling, 1 reply; 4+ messages in thread
From: Khem Raj @ 2021-04-17 18:19 UTC (permalink / raw)
  To: openembedded-devel; +Cc: Khem Raj

backport relevant v8 patch to fix the build issue

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
v2: Rebased

 ...all-new-ListFormatter-createInstance.patch | 93 +++++++++++++++++++
 .../recipes-devtools/nodejs/nodejs_14.16.1.bb |  1 +
 2 files changed, 94 insertions(+)
 create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/v8-call-new-ListFormatter-createInstance.patch

diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/v8-call-new-ListFormatter-createInstance.patch b/meta-oe/recipes-devtools/nodejs/nodejs/v8-call-new-ListFormatter-createInstance.patch
new file mode 100644
index 0000000000..806360084c
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/v8-call-new-ListFormatter-createInstance.patch
@@ -0,0 +1,93 @@
+From 035c305ce7761f51328b45f1bd83e26aef267c9d Mon Sep 17 00:00:00 2001
+From: Frank Tang <ftang@chromium.org>
+Date: Thu, 15 Oct 2020 22:44:27 -0700
+Subject: [PATCH] [Intl] call new ListFormatter::createInstance
+
+The one we currently using is now marked as internal and to be removed
+for 68. Migrating to the style which already avaiable in ICU 67-1.
+
+Upstream-Status: Backport
+Bug: v8:11031
+Change-Id: I668382a2e1b8602ddca02bf231c5008a6c92bf2d
+Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2477751
+Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
+Commit-Queue: Frank Tang <ftang@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#70638}
+---
+ deps/v8/src/objects/js-list-format.cc | 55 ++++++++++++-----------------------
+ 1 file changed, 18 insertions(+), 37 deletions(-)
+
+--- a/deps/v8/src/objects/js-list-format.cc
++++ b/deps/v8/src/objects/js-list-format.cc
+@@ -29,46 +29,27 @@ namespace v8 {
+ namespace internal {
+ 
+ namespace {
+-const char* kStandard = "standard";
+-const char* kOr = "or";
+-const char* kUnit = "unit";
+-const char* kStandardShort = "standard-short";
+-const char* kOrShort = "or-short";
+-const char* kUnitShort = "unit-short";
+-const char* kStandardNarrow = "standard-narrow";
+-const char* kOrNarrow = "or-narrow";
+-const char* kUnitNarrow = "unit-narrow";
+ 
+-const char* GetIcuStyleString(JSListFormat::Style style,
+-                              JSListFormat::Type type) {
++UListFormatterWidth GetIcuWidth(JSListFormat::Style style) {
++  switch (style) {
++    case JSListFormat::Style::LONG:
++      return ULISTFMT_WIDTH_WIDE;
++    case JSListFormat::Style::SHORT:
++      return ULISTFMT_WIDTH_SHORT;
++    case JSListFormat::Style::NARROW:
++      return ULISTFMT_WIDTH_NARROW;
++  }
++  UNREACHABLE();
++}
++
++UListFormatterType GetIcuType(JSListFormat::Type type) {
+   switch (type) {
+     case JSListFormat::Type::CONJUNCTION:
+-      switch (style) {
+-        case JSListFormat::Style::LONG:
+-          return kStandard;
+-        case JSListFormat::Style::SHORT:
+-          return kStandardShort;
+-        case JSListFormat::Style::NARROW:
+-          return kStandardNarrow;
+-      }
++      return ULISTFMT_TYPE_AND;
+     case JSListFormat::Type::DISJUNCTION:
+-      switch (style) {
+-        case JSListFormat::Style::LONG:
+-          return kOr;
+-        case JSListFormat::Style::SHORT:
+-          return kOrShort;
+-        case JSListFormat::Style::NARROW:
+-          return kOrNarrow;
+-      }
++      return ULISTFMT_TYPE_OR;
+     case JSListFormat::Type::UNIT:
+-      switch (style) {
+-        case JSListFormat::Style::LONG:
+-          return kUnit;
+-        case JSListFormat::Style::SHORT:
+-          return kUnitShort;
+-        case JSListFormat::Style::NARROW:
+-          return kUnitNarrow;
+-      }
++      return ULISTFMT_TYPE_UNITS;
+   }
+   UNREACHABLE();
+ }
+@@ -143,7 +124,7 @@ MaybeHandle<JSListFormat> JSListFormat::
+   icu::Locale icu_locale = r.icu_locale;
+   UErrorCode status = U_ZERO_ERROR;
+   icu::ListFormatter* formatter = icu::ListFormatter::createInstance(
+-      icu_locale, GetIcuStyleString(style_enum, type_enum), status);
++      icu_locale, GetIcuType(type_enum), GetIcuWidth(style_enum), status);
+   if (U_FAILURE(status) || formatter == nullptr) {
+     delete formatter;
+     THROW_NEW_ERROR(isolate, NewRangeError(MessageTemplate::kIcuError),
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_14.16.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_14.16.1.bb
index b24a6d6567..32bdd713b5 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs_14.16.1.bb
+++ b/meta-oe/recipes-devtools/nodejs/nodejs_14.16.1.bb
@@ -21,6 +21,7 @@ SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
            file://0004-v8-don-t-override-ARM-CFLAGS.patch \
            file://big-endian.patch \
            file://mips-warnings.patch \
+           file://v8-call-new-ListFormatter-createInstance.patch \
            "
 SRC_URI_append_class-target = " \
            file://0002-Using-native-binaries.patch \
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [meta-oe][PATCH v2 3/3] nodejs: Do not use native host nodejs binaries
  2021-04-17 18:19 [meta-oe][PATCH v2 1/3] nodejs: Update to 14.16.1 Khem Raj
  2021-04-17 18:19 ` [meta-oe][PATCH v2 2/3] nodejs: Fix build with icu-69 Khem Raj
@ 2021-04-17 18:19 ` Khem Raj
  1 sibling, 0 replies; 4+ messages in thread
From: Khem Raj @ 2021-04-17 18:19 UTC (permalink / raw)
  To: openembedded-devel; +Cc: Khem Raj

the wordlength of the binaries which are used for generating inputs
during build should match the target, currently, if world lengths are
not same for build host and target then wrong code is being generated,
so we have two options, use qemu usermode to run the target binaries as
it is during build, which works but takes longer to build and qemu
segfaults on some architectures e.g. mips, second option is to require
multilib toolchain on host and then use matching wordlength for host
binaries. It also means nodejs-native dependency can be dropped which is
kind of nice

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
v2: Use host binaries instead of qemu usermode

 meta-oe/README                                |  2 +-
 ...te-additional-libs-for-host-binaries.patch | 93 +++++++++++++++++++
 .../nodejs/0002-Using-native-binaries.patch   | 71 --------------
 .../recipes-devtools/nodejs/nodejs_14.16.1.bb | 24 ++---
 4 files changed, 103 insertions(+), 87 deletions(-)
 create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/0001-Delete-additional-libs-for-host-binaries.patch
 delete mode 100644 meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-binaries.patch

diff --git a/meta-oe/README b/meta-oe/README
index 98f671d7c2..f9aad66f6b 100644
--- a/meta-oe/README
+++ b/meta-oe/README
@@ -7,7 +7,7 @@ URI: git://github.com/openembedded/openembedded-core.git
 branch: master
 revision: HEAD
 
-luajit recipe requires host compiler to be able to generate 32bit code when target is 32bit
+luajit and nodejs recipes require host compiler to be able to generate 32bit code when target is 32bit
 e.g. arm, so ensure that $CC -m32 is functional on build host, if building this recipe, needed
 packages to fullfit this might have different names on different host distributions
 e.g. on archlinux based distributions install prerequisites like below
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0001-Delete-additional-libs-for-host-binaries.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-Delete-additional-libs-for-host-binaries.patch
new file mode 100644
index 0000000000..e3d1afbaf9
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-Delete-additional-libs-for-host-binaries.patch
@@ -0,0 +1,93 @@
+From fbf9c3dedc4114065a6db8718daed3dbc98a743c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 17 Apr 2021 09:39:27 -0700
+Subject: [PATCH] Delete additional libs for host binaries
+
+While building host tools during cross build, these libs are not needed
+and would need additional deps if desired to be linked in
+
+Upstream-Status: Inappropriate [Cross-compile specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/icu/icu-generic.gyp | 4 ++++
+ tools/v8_gypfiles/v8.gyp  | 7 +++++++
+ 2 files changed, 11 insertions(+)
+
+--- a/tools/icu/icu-generic.gyp
++++ b/tools/icu/icu-generic.gyp
+@@ -522,6 +522,7 @@
+       'target_name': 'genrb',
+       'type': 'executable',
+       'toolsets': [ 'host' ],
++      'libraries!':[ '-lcrypto', '-lssl', '-lz', '-lhttp_parser', '-luv', '-lnghttp2', '-lcares', '-lbrotlienc', '-lbrotlidec' ],
+       'dependencies': [ 'icutools' ],
+       'sources': [
+         '<@(icu_src_genrb)'
+@@ -538,6 +539,7 @@
+       'target_name': 'iculslocs',
+       'toolsets': [ 'host' ],
+       'type': 'executable',
++      'libraries!':[ '-lcrypto', '-lssl', '-lz', '-lhttp_parser', '-luv', '-lnghttp2', '-lcares', '-lbrotlienc', '-lbrotlidec' ],
+       'dependencies': [ 'icutools' ],
+       'sources': [
+         'iculslocs.cc',
+@@ -550,6 +552,7 @@
+       'target_name': 'icupkg',
+       'toolsets': [ 'host' ],
+       'type': 'executable',
++      'libraries!':[ '-lcrypto', '-lssl', '-lz', '-lhttp_parser', '-luv', '-lnghttp2', '-lcares', '-lbrotlienc', '-lbrotlidec' ],
+       'dependencies': [ 'icutools' ],
+       'sources': [
+         '<@(icu_src_icupkg)',
+@@ -561,6 +564,7 @@
+       'target_name': 'genccode',
+       'toolsets': [ 'host' ],
+       'type': 'executable',
++      'libraries!':[ '-lcrypto', '-lssl', '-lz', '-lhttp_parser', '-luv', '-lnghttp2', '-lcares', '-lbrotlienc', '-lbrotlidec' ],
+       'dependencies': [ 'icutools' ],
+       'sources': [
+         '<@(icu_src_genccode)',
+--- a/tools/v8_gypfiles/v8.gyp
++++ b/tools/v8_gypfiles/v8.gyp
+@@ -1310,6 +1310,7 @@
+     {
+       'target_name': 'bytecode_builtins_list_generator',
+       'type': 'executable',
++      'libraries!':[ '-licui18n', '-licuuc', '-licudata', '-lcrypto', '-lssl', '-lz', '-lhttp_parser', '-luv', '-lnghttp2', '-lcares', '-lbrotlienc', '-lbrotlidec' ],
+       'conditions': [
+         ['want_separate_host_toolset', {
+           'toolsets': ['host'],
+@@ -1333,6 +1334,8 @@
+     {
+       'target_name': 'mksnapshot',
+       'type': 'executable',
++      'libraries!':[ '-lcrypto', '-lssl', '-lz', '-lhttp_parser', '-luv', '-lnghttp2', '-lcares', '-lbrotlienc', '-lbrotlidec' ],
++      'library_dirs':[ '../../../../staging_dir/hostpkg/share/icu/current/lib' ],
+       'dependencies': [
+         'v8_base_without_compiler',
+         'v8_compiler_for_mksnapshot',
+@@ -1354,6 +1357,7 @@
+     {
+       'target_name': 'torque',
+       'type': 'executable',
++      'libraries!':[ '-licui18n', '-licuuc', '-licudata', '-lcrypto', '-lssl', '-lz', '-lhttp_parser', '-luv', '-lnghttp2', '-lcares', '-lbrotlienc', '-lbrotlidec' ],
+       'dependencies': [
+         'torque_base',
+         # "build/win:default_exe_manifest",
+@@ -1392,6 +1396,7 @@
+     {
+       'target_name': 'torque-language-server',
+       'type': 'executable',
++      'libraries!':[ '-licui18n', '-licuuc', '-licudata', '-lcrypto', '-lssl', '-lz', '-lhttp_parser', '-luv', '-lnghttp2', '-lcares', '-lbrotlienc', '-lbrotlidec' ],
+       'conditions': [
+         ['want_separate_host_toolset', {
+           'toolsets': ['host'],
+@@ -1419,6 +1424,8 @@
+     {
+       'target_name': 'gen-regexp-special-case',
+       'type': 'executable',
++      'libraries!':[ '-lcrypto', '-lssl', '-lz', '-lhttp_parser', '-luv', '-lnghttp2', '-lcares', '-lbrotlienc', '-lbrotlidec' ],
++      'library_dirs':[ '../../../../staging_dir/hostpkg/share/icu/current/lib' ],
+       'dependencies': [
+         'v8_libbase',
+         # "build/win:default_exe_manifest",
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-binaries.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-binaries.patch
deleted file mode 100644
index b5142dc9c1..0000000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-binaries.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 6c3ac20477a4bac643088f24df3c042e627fafa9 Mon Sep 17 00:00:00 2001
-From: Guillaume Burel <guillaume.burel@stormshield.eu>
-Date: Fri, 3 Jan 2020 11:25:54 +0100
-Subject: [PATCH] Using native binaries
-
----
- node.gyp                 |  4 ++--
- tools/v8_gypfiles/v8.gyp | 11 ++++-------
- 2 files changed, 6 insertions(+), 9 deletions(-)
-
-diff --git a/node.gyp b/node.gyp
-index 8f4dc518..d9389190 100644
---- a/node.gyp
-+++ b/node.gyp
-@@ -446,7 +446,7 @@
-                 '<(SHARED_INTERMEDIATE_DIR)/node_code_cache.cc',
-               ],
-               'action': [
--                '<@(_inputs)',
-+                'mkcodecache',
-                 '<@(_outputs)',
-               ],
-             },
-@@ -471,7 +471,7 @@
-                 '<(SHARED_INTERMEDIATE_DIR)/node_snapshot.cc',
-               ],
-               'action': [
--                '<@(_inputs)',
-+                'node_mksnapshot',
-                 '<@(_outputs)',
-               ],
-             },
-diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp
-index a506a67d..c91f7dde 100644
---- a/tools/v8_gypfiles/v8.gyp
-+++ b/tools/v8_gypfiles/v8.gyp
-@@ -140,7 +140,8 @@
-             '<@(torque_outputs)',
-           ],
-           'action': [
--            '<@(_inputs)',
-+            'torque',
-+            '<@(torque_files)',
-             '-o', '<(torque_output_root)/torque-generated',
-             '-v8-root', '<(V8_ROOT)'
-           ],
-@@ -247,9 +248,7 @@
-             '<(generate_bytecode_builtins_list_output)',
-           ],
-           'action': [
--            'python',
--            '<(V8_ROOT)/tools/run.py',
--            '<@(_inputs)',
-+            'bytecode_builtins_list_generator',
-             '<@(_outputs)',
-           ],
-         },
-@@ -1396,9 +1395,7 @@
-             '<(SHARED_INTERMEDIATE_DIR)/src/regexp/special-case.cc',
-           ],
-           'action': [
--            'python',
--            '<(V8_ROOT)/tools/run.py',
--            '<@(_inputs)',
-+            'gen-regexp-special-case',
-             '<@(_outputs)',
-           ],
-         },
--- 
-2.20.1
-
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_14.16.1.bb b/meta-oe/recipes-devtools/nodejs/nodejs_14.16.1.bb
index 32bdd713b5..3cf69cea00 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs_14.16.1.bb
+++ b/meta-oe/recipes-devtools/nodejs/nodejs_14.16.1.bb
@@ -4,9 +4,8 @@ LICENSE = "MIT & BSD & Artistic-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=85bf260d8b6de1588f57abc5dc66587c"
 
 DEPENDS = "openssl"
-DEPENDS_append_class-target = " nodejs-native"
 
-inherit pkgconfig python3native
+inherit pkgconfig python3native siteinfo
 
 COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*"
 COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*"
@@ -22,9 +21,7 @@ SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
            file://big-endian.patch \
            file://mips-warnings.patch \
            file://v8-call-new-ListFormatter-createInstance.patch \
-           "
-SRC_URI_append_class-target = " \
-           file://0002-Using-native-binaries.patch \
+           file://0001-Delete-additional-libs-for-host-binaries.patch \
            "
 SRC_URI[sha256sum] = "e44adbbed6756c2c1a01258383e9f00df30c147b36e438f6369b5ef1069abac3"
 
@@ -61,20 +58,17 @@ PACKAGECONFIG[nghttp2] = "--shared-nghttp2,,nghttp2"
 PACKAGECONFIG[shared] = "--shared"
 PACKAGECONFIG[zlib] = "--shared-zlib,,zlib"
 
-# We don't want to cross-compile during target compile,
-# and we need to use the right flags during host compile,
-# too.
 EXTRA_OEMAKE = "\
-    CC.host='${CC}' \
-    CFLAGS.host='${CPPFLAGS} ${CFLAGS}' \
-    CXX.host='${CXX}' \
-    CXXFLAGS.host='${CPPFLAGS} ${CXXFLAGS}' \
-    LDFLAGS.host='${LDFLAGS}' \
-    AR.host='${AR}' \
-    \
     builddir_name=./ \
 "
 
+FORCE32BIT = "${@['-m32',''][d.getVar('SITEINFO_BITS') != '32']}"
+EXTRA_OEMAKE_append_class-target = "\
+    CC.host='${BUILD_CC} ${FORCE32BIT}' \
+    CXX.host='${BUILD_CXX} ${FORCE32BIT}' \
+    AR.host='${BUILD_AR}' \
+"
+
 python do_unpack() {
     import shutil
 
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [oe] [meta-oe][PATCH v2 2/3] nodejs: Fix build with icu-69
  2021-04-17 18:19 ` [meta-oe][PATCH v2 2/3] nodejs: Fix build with icu-69 Khem Raj
@ 2021-04-21  6:55   ` Martin Jansa
  0 siblings, 0 replies; 4+ messages in thread
From: Martin Jansa @ 2021-04-21  6:55 UTC (permalink / raw)
  To: Khem Raj; +Cc: openembedded-devel

[-- Attachment #1: Type: text/plain, Size: 5438 bytes --]

all 3
Acked-by: Martin Jansa <Martin.Jansa@gmail.com>

On Sat, Apr 17, 2021 at 8:19 PM Khem Raj <raj.khem@gmail.com> wrote:

> backport relevant v8 patch to fix the build issue
>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
> v2: Rebased
>
>  ...all-new-ListFormatter-createInstance.patch | 93 +++++++++++++++++++
>  .../recipes-devtools/nodejs/nodejs_14.16.1.bb |  1 +
>  2 files changed, 94 insertions(+)
>  create mode 100644
> meta-oe/recipes-devtools/nodejs/nodejs/v8-call-new-ListFormatter-createInstance.patch
>
> diff --git
> a/meta-oe/recipes-devtools/nodejs/nodejs/v8-call-new-ListFormatter-createInstance.patch
> b/meta-oe/recipes-devtools/nodejs/nodejs/v8-call-new-ListFormatter-createInstance.patch
> new file mode 100644
> index 0000000000..806360084c
> --- /dev/null
> +++
> b/meta-oe/recipes-devtools/nodejs/nodejs/v8-call-new-ListFormatter-createInstance.patch
> @@ -0,0 +1,93 @@
> +From 035c305ce7761f51328b45f1bd83e26aef267c9d Mon Sep 17 00:00:00 2001
> +From: Frank Tang <ftang@chromium.org>
> +Date: Thu, 15 Oct 2020 22:44:27 -0700
> +Subject: [PATCH] [Intl] call new ListFormatter::createInstance
> +
> +The one we currently using is now marked as internal and to be removed
> +for 68. Migrating to the style which already avaiable in ICU 67-1.
> +
> +Upstream-Status: Backport
> +Bug: v8:11031
> +Change-Id: I668382a2e1b8602ddca02bf231c5008a6c92bf2d
> +Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2477751
> +Reviewed-by
> <https://chromium-review.googlesource.com/c/v8/v8/+/2477751+Reviewed-by>:
> Jakob Kummerow <jkummerow@chromium.org>
> +Commit-Queue: Frank Tang <ftang@chromium.org>
> +Cr-Commit-Position: refs/heads/master@{#70638}
> +---
> + deps/v8/src/objects/js-list-format.cc | 55
> ++++++++++++-----------------------
> + 1 file changed, 18 insertions(+), 37 deletions(-)
> +
> +--- a/deps/v8/src/objects/js-list-format.cc
> ++++ b/deps/v8/src/objects/js-list-format.cc
> +@@ -29,46 +29,27 @@ namespace v8 {
> + namespace internal {
> +
> + namespace {
> +-const char* kStandard = "standard";
> +-const char* kOr = "or";
> +-const char* kUnit = "unit";
> +-const char* kStandardShort = "standard-short";
> +-const char* kOrShort = "or-short";
> +-const char* kUnitShort = "unit-short";
> +-const char* kStandardNarrow = "standard-narrow";
> +-const char* kOrNarrow = "or-narrow";
> +-const char* kUnitNarrow = "unit-narrow";
> +
> +-const char* GetIcuStyleString(JSListFormat::Style style,
> +-                              JSListFormat::Type type) {
> ++UListFormatterWidth GetIcuWidth(JSListFormat::Style style) {
> ++  switch (style) {
> ++    case JSListFormat::Style::LONG:
> ++      return ULISTFMT_WIDTH_WIDE;
> ++    case JSListFormat::Style::SHORT:
> ++      return ULISTFMT_WIDTH_SHORT;
> ++    case JSListFormat::Style::NARROW:
> ++      return ULISTFMT_WIDTH_NARROW;
> ++  }
> ++  UNREACHABLE();
> ++}
> ++
> ++UListFormatterType GetIcuType(JSListFormat::Type type) {
> +   switch (type) {
> +     case JSListFormat::Type::CONJUNCTION:
> +-      switch (style) {
> +-        case JSListFormat::Style::LONG:
> +-          return kStandard;
> +-        case JSListFormat::Style::SHORT:
> +-          return kStandardShort;
> +-        case JSListFormat::Style::NARROW:
> +-          return kStandardNarrow;
> +-      }
> ++      return ULISTFMT_TYPE_AND;
> +     case JSListFormat::Type::DISJUNCTION:
> +-      switch (style) {
> +-        case JSListFormat::Style::LONG:
> +-          return kOr;
> +-        case JSListFormat::Style::SHORT:
> +-          return kOrShort;
> +-        case JSListFormat::Style::NARROW:
> +-          return kOrNarrow;
> +-      }
> ++      return ULISTFMT_TYPE_OR;
> +     case JSListFormat::Type::UNIT:
> +-      switch (style) {
> +-        case JSListFormat::Style::LONG:
> +-          return kUnit;
> +-        case JSListFormat::Style::SHORT:
> +-          return kUnitShort;
> +-        case JSListFormat::Style::NARROW:
> +-          return kUnitNarrow;
> +-      }
> ++      return ULISTFMT_TYPE_UNITS;
> +   }
> +   UNREACHABLE();
> + }
> +@@ -143,7 +124,7 @@ MaybeHandle<JSListFormat> JSListFormat::
> +   icu::Locale icu_locale = r.icu_locale;
> +   UErrorCode status = U_ZERO_ERROR;
> +   icu::ListFormatter* formatter = icu::ListFormatter::createInstance(
> +-      icu_locale, GetIcuStyleString(style_enum, type_enum), status);
> ++      icu_locale, GetIcuType(type_enum), GetIcuWidth(style_enum),
> status);
> +   if (U_FAILURE(status) || formatter == nullptr) {
> +     delete formatter;
> +     THROW_NEW_ERROR(isolate, NewRangeError(MessageTemplate::kIcuError),
> diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_14.16.1.bb
> b/meta-oe/recipes-devtools/nodejs/nodejs_14.16.1.bb
> index b24a6d6567..32bdd713b5 100644
> --- a/meta-oe/recipes-devtools/nodejs/nodejs_14.16.1.bb
> +++ b/meta-oe/recipes-devtools/nodejs/nodejs_14.16.1.bb
> @@ -21,6 +21,7 @@ SRC_URI = "
> http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
>             file://0004-v8-don-t-override-ARM-CFLAGS.patch \
>             file://big-endian.patch \
>             file://mips-warnings.patch \
> +           file://v8-call-new-ListFormatter-createInstance.patch \
>             "
>  SRC_URI_append_class-target = " \
>             file://0002-Using-native-binaries.patch \
> --
> 2.31.1
>
>
> 
>
>

[-- Attachment #2: Type: text/html, Size: 7093 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-04-21  6:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-17 18:19 [meta-oe][PATCH v2 1/3] nodejs: Update to 14.16.1 Khem Raj
2021-04-17 18:19 ` [meta-oe][PATCH v2 2/3] nodejs: Fix build with icu-69 Khem Raj
2021-04-21  6:55   ` [oe] " Martin Jansa
2021-04-17 18:19 ` [meta-oe][PATCH v2 3/3] nodejs: Do not use native host nodejs binaries Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.