diff options
author | Yi Zhao <yi.zhao@windriver.com> | 2020-10-28 13:26:04 +0800 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2020-11-02 09:00:51 -0800 |
commit | c697727db79465b4df11dabf701e56277469b9bd (patch) | |
tree | 83859d6950588de230d9e9c60db90e6a11e1282b /meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb | |
parent | 260809cffdaad4fcd42b0977090f2c467a5474ef (diff) | |
download | meta-openembedded-contrib-c697727db79465b4df11dabf701e56277469b9bd.tar.gz |
minifi-cpp: specify GCC_AR and GCC_RANLIB
We encountered a minifi-cpp build error on a self-hosted image:
[snip]
/build/tmp-glibc/work/corei7-64-wrs-linux/minifi-cpp/0.7.0-r0/recipe-sysroot-native/usr/bin/x86_64-wrs-linux/x86_64-wrs-linux-ranlib:
thirdparty/civetweb-1.10/src/libcivetweb-cpp.a(CivetServer.cpp.o): plugin needed to handle lto object
/build/tmp-glibc/work/corei7-64-wrs-linux/minifi-cpp/0.7.0-r0/recipe-sysroot-native/usr/bin/x86_64-wrs-linux/x86_64-wrs-linux-ranlib:
thirdparty/civetweb-1.10/src/libcivetweb.a(civetweb.c.o): plugin needed to handle lto object
[snip]
/build/tmp-glibc/work/corei7-64-wrs-linux/minifi-cpp/0.7.0-r0/recipe-sysroot-native/usr/bin/x86_64-wrs-linux/../../libexec/x86_64-wrs-linux/gcc/x86_64-wrs-linux/10.2.0/ld: DWARF error: could not find variable specification at offset c960f
/build/tmp-glibc/work/corei7-64-wrs-linux/minifi-cpp/0.7.0-r0/recipe-sysroot-native/usr/bin/x86_64-wrs-linux/../../libexec/x86_64-wrs-linux/gcc/x86_64-wrs-linux/10.2.0/ld: DWARF error: could not find variable specification at offset c961d
[snip]
extensions/civetweb/libminifi-civet-extensions.a(ListenHTTP.cpp.o):
in function `org::apache::nifi::minifi::processors::ListenHTTP::WriteCallback::process(std::shared_ptr<org::apache::nifi::minifi::io::BaseStream>)':
/usr/src/debug/minifi-cpp/0.7.0-r0/git/extensions/civetweb/processors/ListenHTTP.cpp:464: undefined reference to `mg_read'
[snip]
When using GCC's link-time optimization with static linked libraries, we
should use gcc-ar and gcc-ranlib to create the static libraries. By
default, it will search gcc-ar and gcc-ranlib in the system. But if the
gcc-ranlib is not found, it will use ranlib instead which causes this
issue.
Specify GCC_AR and GCC_RANLIB in EXTRA_OECMAKE to make sure it can find
the correct gcc-ar/gcc-ranlib.
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb')
-rw-r--r-- | meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb index 9113fa67ad..9b66c48e37 100644 --- a/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb +++ b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb @@ -27,6 +27,7 @@ SRC_URI = "git://github.com/apache/nifi-minifi-cpp.git \ file://0001-CMakeLists.txt-use-curl-local-source-tarball.patch \ file://0002-cmake-LibreSSL.cmake-use-libressl-local-source-tarba.patch \ file://0003-cmake-BundledOSSPUUID.cmake-use-ossp-uuid-local-sour.patch \ + file://0001-civetweb-CMakeLists.txt-do-not-search-gcc-ar-and-gcc.patch \ file://minifi.service \ file://systemd-volatile.conf \ file://sysvinit-volatile.conf \ @@ -52,6 +53,8 @@ OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH" EXTRA_OECMAKE += " \ -DHOST_SYS=${HOST_SYS} -DBUILD_SYS=${BUILD_SYS} \ -DSKIP_TESTS=ON \ + -DGCC_AR=${STAGING_BINDIR_TOOLCHAIN}/${AR} \ + -DGCC_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \ " EXTRA_OECMAKE_append_toolchain-clang = " -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib" LDFLAGS_append_toolchain-clang = " -fuse-ld=lld" |