From 8195a2404f122d25814b851cd738cf0ff1e91d89 Mon Sep 17 00:00:00 2001 From: Othmane AHL ZOUAOUI Date: Wed, 10 May 2023 10:39:00 +0200 Subject: [PATCH 5/5] onnxruntime: avoid using unsupported Eigen headers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch removes the suspected Unsupported/Eigen/CXX11 headers and uses Onnx internal headers instead. It enables also the pragma for HAS_CLASS_MEMACCESS to treat the class-memaccess as warnings. This allows fixing the following build error: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘Eigen::internal::Packet4c’{aka ‘const signed char’} [-Werror=class-memaccess] Signed-off-by: Othmane AHL ZOUAOUI %% original patch: 0006-onnxruntime-avoid-using-unsupported-Eigen-headers.patch --- onnxruntime/test/onnx/microbenchmark/eigen.cc | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/onnxruntime/test/onnx/microbenchmark/eigen.cc b/onnxruntime/test/onnx/microbenchmark/eigen.cc index b3b2c55600..00c317da50 100644 --- a/onnxruntime/test/onnx/microbenchmark/eigen.cc +++ b/onnxruntime/test/onnx/microbenchmark/eigen.cc @@ -6,6 +6,13 @@ #pragma GCC diagnostic ignored "-Wunused-parameter" #pragma GCC diagnostic ignored "-Wunused-result" #pragma GCC diagnostic ignored "-Wmaybe-uninitialized" +// cmake/external/eigen/unsupported/Eigen/CXX11/../../../Eigen/src/Core/arch/NEON/PacketMath.h:1633:9: +// error: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘Eigen::internal::Packet4c’ +// {aka ‘struct Eigen::internal::eigen_packet_wrapper’} from an array of ‘const int8_t’ +// {aka ‘const signed char’} [-Werror=class-memaccess] +#ifdef HAS_CLASS_MEMACCESS +#pragma GCC diagnostic ignored "-Wclass-memaccess" +#endif #elif defined(_MSC_VER) // build\windows\debug\external\eigen3\unsupported\eigen\cxx11\src/Tensor/Tensor.h(76): // warning C4554: '&': check operator precedence for possible error; use parentheses to clarify precedence @@ -22,9 +29,11 @@ #define EIGEN_USE_THREADS #endif -#include -#include -#include +#include "core/platform/threadpool.h" +#include "core/common/eigen_common_wrapper.h" +#include "core/util/thread_utils.h" +#include + #if defined(__GNUC__) #pragma GCC diagnostic pop #elif defined(_MSC_VER) -- 2.25.1