From 14b897485db8cfbf8a608c9a2d4487738c593e2c Mon Sep 17 00:00:00 2001 From: Tom Hochstein Date: Wed, 3 Nov 2021 21:16:48 -0500 Subject: opencv: Backport updates from OE-Core 2178fd7386 opencv: remove setup_vars_opencv4.sh cafcc65e74 opencv: fix build with protobuf-3.18 when dnn PACKAGECONFIG is enabled 3c022cd50d opencv: Do not lock to gcc only compiler Signed-off-by: Tom Hochstein (cherry picked from commit dc3ea70ff53a3989636d98768c1f510cc6baedd8) --- ...ne-argument-version-of-SetTotalBytesLimit.patch | 41 ++++++++++++++++++++++ recipes-support/opencv/opencv_4.5.2.imx.bb | 13 +++++-- 2 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 recipes-support/opencv/opencv/0001-Use-the-one-argument-version-of-SetTotalBytesLimit.patch diff --git a/recipes-support/opencv/opencv/0001-Use-the-one-argument-version-of-SetTotalBytesLimit.patch b/recipes-support/opencv/opencv/0001-Use-the-one-argument-version-of-SetTotalBytesLimit.patch new file mode 100644 index 00000000..5d88d1a6 --- /dev/null +++ b/recipes-support/opencv/opencv/0001-Use-the-one-argument-version-of-SetTotalBytesLimit.patch @@ -0,0 +1,41 @@ +From 9cfa84313c5833d7295fcf57be93d5d2aaadfd88 Mon Sep 17 00:00:00 2001 +From: Vincent Rabaud +Date: Sat, 10 Jul 2021 00:21:52 +0200 +Subject: [PATCH] Use the one argument version of SetTotalBytesLimit. + +The two argument versions has been deprecated, cf +https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.io.coded_stream + +Upstream-Status: Backport [9cfa84313c5833d7295fcf57be93d5d2aaadfd88 - from master after 4.5.3 tag] +Signed-off-by: Martin Jansa +--- + modules/dnn/src/caffe/caffe_io.cpp | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp +index 2fc4d84f46..ebecf95eea 100644 +--- a/modules/dnn/src/caffe/caffe_io.cpp ++++ b/modules/dnn/src/caffe/caffe_io.cpp +@@ -92,6 +92,7 @@ + #ifdef HAVE_PROTOBUF + #include + #include ++#include + #include + + #include +@@ -1111,7 +1112,11 @@ static const int kProtoReadBytesLimit = INT_MAX; // Max size of 2 GB minus 1 by + + bool ReadProtoFromBinary(ZeroCopyInputStream* input, Message *proto) { + CodedInputStream coded_input(input); ++#if GOOGLE_PROTOBUF_VERSION >= 3006000 ++ coded_input.SetTotalBytesLimit(kProtoReadBytesLimit); ++#else + coded_input.SetTotalBytesLimit(kProtoReadBytesLimit, 536870912); ++#endif + + return proto->ParseFromCodedStream(&coded_input); + } +-- +2.32.0 + diff --git a/recipes-support/opencv/opencv_4.5.2.imx.bb b/recipes-support/opencv/opencv_4.5.2.imx.bb index 8e76783a..79b87bef 100644 --- a/recipes-support/opencv/opencv_4.5.2.imx.bb +++ b/recipes-support/opencv/opencv_4.5.2.imx.bb @@ -58,6 +58,7 @@ SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \ file://download.patch \ file://0001-Make-ts-module-external.patch \ file://0001-sfm-link-with-Glog_LIBS.patch;patchdir=../contrib \ + file://0001-Use-the-one-argument-version-of-SetTotalBytesLimit.patch \ " SRC_URI:append:riscv64 = " file://0001-Use-Os-to-compile-tinyxml2.cpp.patch;patchdir=../contrib" @@ -112,6 +113,12 @@ PACKAGECONFIG ??= "gapi python3 eigen jpeg png tiff v4l libv4l gstreamer samples ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \ ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}" +# TBB does not build for powerpc so disable that package config +PACKAGECONFIG:remove:powerpc = "tbb" +# tbb now needs getcontect/setcontext which is not there for all arches on musl +PACKAGECONFIG:remove:libc-musl:riscv64 = "tbb" +PACKAGECONFIG:remove:libc-musl:riscv32 = "tbb" + PACKAGECONFIG[gapi] = "-DWITH_ADE=ON -Dade_DIR=${STAGING_LIBDIR},-DWITH_ADE=OFF,ade" PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas," PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft," @@ -229,10 +236,12 @@ do_install:append() { sed -e 's@${STAGING_DIR_HOST}@@g' \ -i ${D}${libdir}/cmake/opencv4/OpenCVModules.cmake fi + # remove setup_vars_opencv4.sh as its content is confusing and useless + if [ -f ${D}${bindir}/setup_vars_opencv4.sh ]; then + rm -rf ${D}${bindir}/setup_vars_opencv4.sh + fi } -TOOLCHAIN = "gcc" - ########## End of meta-openembedded copy ########## ########## i.MX overrides ########## -- cgit v1.2.3-54-g00ecf