Skip to content

Commit

Permalink
Fix Flatbuffer build issue. (#19296)
Browse files Browse the repository at this point in the history
### Description

Building on g++ 13.2.0 results in -Wstringop-overread errors on Linux.
This commit addresses the flatbuffer build issue with the following
changes:
1. Remove the Werror flag in the flarbuffer patch.
2. Add a compilation option to suppress the 'stringop-overflow' error in
the Flatbuffers within the xnnpack provider.

### Motivation and Context
google/flatbuffers#8119
#19239

Signed-off-by: Phoebe Chen <[email protected]>
phoebesv authored Jan 31, 2024
1 parent d87f73a commit 2b361c0
Showing 3 changed files with 8 additions and 1 deletion.
1 change: 1 addition & 0 deletions cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -641,6 +641,7 @@ else()
check_cxx_compiler_flag(-Wunused-but-set-variable HAS_UNUSED_BUT_SET_VARIABLE)
check_cxx_compiler_flag(-Wunused-variable HAS_UNUSED_VARIABLE)
check_cxx_compiler_flag(-Wuseless-cast HAS_USELESS_CAST)
check_cxx_compiler_flag(-Wstringop-overflow HAS_STRINGOP_OVERFLOW)
check_function_exists(reallocarray HAS_REALLOCARRAY)
if (NOT APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten" AND onnxruntime_target_platform STREQUAL "aarch64")
check_cxx_compiler_flag(-march=armv8.2-a+bf16 HAS_ARM64_BFLOAT16)
6 changes: 6 additions & 0 deletions cmake/onnxruntime_providers_xnnpack.cmake
Original file line number Diff line number Diff line change
@@ -19,6 +19,12 @@
flatbuffers::flatbuffers Boost::mp11 safeint_interface
)

# TODO fix stringop-overflow warnings
# Add compile option to suppress stringop-overflow error in Flatbuffers.
if (HAS_STRINGOP_OVERFLOW)
target_compile_options(onnxruntime_providers_xnnpack PRIVATE -Wno-error=stringop-overflow)
endif()

add_dependencies(onnxruntime_providers_xnnpack onnx ${onnxruntime_EXTERNAL_DEPENDENCIES})
set_target_properties(onnxruntime_providers_xnnpack PROPERTIES FOLDER "ONNXRuntime")

2 changes: 1 addition & 1 deletion cmake/patches/flatbuffers/flatbuffers.patch
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ index 3987eac9..5e5462f1 100644
endif(CYGWIN)
set(CMAKE_CXX_FLAGS
- "${CMAKE_CXX_FLAGS} -Wall -pedantic -Werror -Wextra -Werror=shadow")
+ "${CMAKE_CXX_FLAGS} -Wall -pedantic -Werror -Wextra -Werror=shadow -Wno-error=stringop-overflow")
+ "${CMAKE_CXX_FLAGS} -Wall -pedantic -Wextra -Werror=shadow -Wno-error=stringop-overflow")
set(FLATBUFFERS_PRIVATE_CXX_FLAGS "-Wold-style-cast")
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.4)
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 7.0)

0 comments on commit 2b361c0

Please sign in to comment.