[oe-commits] [meta-openembedded] 28/32: nodejs: ensure to use correct compiler & flags always

git at git.openembedded.org git at git.openembedded.org
Wed Nov 13 15:17:51 UTC 2019


This is an automated email from the git hooks/post-receive script.

khem pushed a commit to branch master-next
in repository meta-openembedded.

commit 08956bdd8962ca44eeea3772ea6be8061d1f5735
Author: André Draszik <git at andred.net>
AuthorDate: Wed Nov 13 09:58:11 2019 +0000

    nodejs: ensure to use correct compiler & flags always
    
    NodeJS comes with an embedded, patched, version of gyp.
    
    Normally, gyp supports compiling for the build machine, e.g.
    native tools that need to be compiled to run during the build,
    and for the host, using different variables, e.g. CC and
    CC.host, etc.
    Most of this has been patched out in the NodeJS version of gyp,
    and essentially it only supports compiling using one compiler -
    ${CC}. This modification excludes LDFLAGS for native tools, and
    those still evaluate LDFLAGS.host (only).
    
    While this modified behaviour is OK for the OE use-case of building
    native and target tools separately, it means that this recipe can
    not work as-is with standard gyp, and wrong LDFLAGS are being used
    for some of the tools compiled (torque) in either case.
    
    By setting the make variables that gyp-generated makefiles inspect,
    we support use of unpatched gyp, and we ensure that all tools
    are compiled with correct LDFLAGS in either case.
    
    This now also allows us to drop the patch that had been applied to
    work-around this problem.
    
    Signed-off-by: André Draszik <git at andred.net>
    Signed-off-by: Khem Raj <raj.khem at gmail.com>
---
 .../nodejs/nodejs/0006-Use-target-ldflags.patch    | 24 ----------------------
 meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb  | 13 +++++++++++-
 2 files changed, 12 insertions(+), 25 deletions(-)

diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0006-Use-target-ldflags.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0006-Use-target-ldflags.patch
deleted file mode 100644
index f6569cd..0000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0006-Use-target-ldflags.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-The target LDFLAGS have been ignored. Tools like torque
-have been loaded from system libraries, even if a native
-one was the target.
-|$ ldd torque 
-|    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1
-|    libcrypto.so.1.1 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
-|    libssl.so.1.1 => /usr/lib/x86_64-linux-gnu/libssl.so.1.1
-|    libicui18n.so.63 => not found
-|    libicuuc.so.63 => not found
-...
-
-Signed-off-by: Andrej Valek <andrej.valek at siemens.com>
-
-diff -Naur node-v10.15.1/deps/v8/gypfiles/toolchain.gypi node-v10.15.1/deps/v8/gypfiles/toolchain.gypi
---- node-v10.15.1/deps/v8/gypfiles/toolchain.gypi	2019-03-18 15:01:39.000000000 +0100
-+++ node-v10.15.1/deps/v8/gypfiles/toolchain.gypi	2019-03-18 15:04:08.628361308 +0100
-@@ -1106,6 +1106,7 @@
-             'cflags': [ '-fno-strict-aliasing' ],
-           }],
-         ],  # conditions
-+        'ldflags+': [ '$(LDFLAGS)' ],
-       }],
-       ['OS=="solaris"', {
-         'defines': [ '__C99FEATURES__=1' ],  # isinf() etc.
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb b/meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb
index 4013c69..9af0d99 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb
+++ b/meta-oe/recipes-devtools/nodejs/nodejs_10.17.0.bb
@@ -19,7 +19,6 @@ SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
            file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
            file://0004-Make-compatibility-with-gcc-4.8.patch \
            file://0005-Link-atomic-library.patch \
-           file://0006-Use-target-ldflags.patch \
            "
 SRC_URI_append_class-target = " \
            file://0002-Using-native-torque.patch \
@@ -58,6 +57,18 @@ PACKAGECONFIG[libuv] = "--shared-libuv,,libuv"
 PACKAGECONFIG[nghttp2] = "--shared-nghttp2,,nghttp2"
 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}' \
+"
+
 # Node is way too cool to use proper autotools, so we install two wrappers to forcefully inject proper arch cflags to workaround gypi
 do_configure () {
     rm -rf ${S}/deps/openssl

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list