From 8b57d2caf98003154c4873c7887347669435ca9f Mon Sep 17 00:00:00 2001 From: Takatoshi Kondo Date: Sun, 5 Jun 2022 19:18:20 +0900 Subject: [PATCH 1/2] Added additional address sanitizer for CI. Except install, and except SHARED=OFF. --- .github/workflows/gha.yml | 12 ++++++++++-- ci/build_cmake.sh | 3 ++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/gha.yml b/.github/workflows/gha.yml index a63e84ae..d31de9e8 100644 --- a/.github/workflows/gha.yml +++ b/.github/workflows/gha.yml @@ -31,10 +31,12 @@ jobs: export ARCH="64" if [ ${{ matrix.pattern }} == 0 ]; then export SHARED="ON" + export SAN="-fsanitize=address -fno-omit-frame-pointer" export CHAR_SIGN="unsigned" fi if [ ${{ matrix.pattern }} == 1 ]; then export SHARED="ON" + export SAN="-fsanitize=address -fno-omit-frame-pointer" export CHAR_SIGN="signed" fi if [ ${{ matrix.pattern }} == 2 ]; then @@ -61,7 +63,7 @@ jobs: cd .. # build and test - CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" GTEST_ROOT="${BASE}/usr" CFLAGS="-Werror -g -fsanitize=undefined" CXXFLAGS="-Werror -g -fsanitize=undefined" ${ACTION} + CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" GTEST_ROOT="${BASE}/usr" CFLAGS="-Werror -g -fsanitize=undefined -fno-sanitize-recover=all" CXXFLAGS="-Werror -g -ggdb3 -fsanitize=undefined -fno-sanitize-recover=all" ${ACTION} linux: runs-on: ubuntu-18.04 @@ -87,6 +89,7 @@ jobs: ACTION="ci/build_cmake.sh" export ARCH="64" export SHARED="ON" + export SAN="-fsanitize=address -fno-omit-frame-pointer" export CHAR_SIGN="unsigned" fi if [ ${{ matrix.pattern }} == 1 ]; then @@ -95,6 +98,7 @@ jobs: ACTION="ci/build_cmake.sh" export ARCH="32" export SHARED="ON" + export SAN="-fsanitize=address -fno-omit-frame-pointer" export CHAR_SIGN="signed" fi if [ ${{ matrix.pattern }} == 2 ]; then @@ -103,6 +107,7 @@ jobs: ACTION="ci/build_cmake.sh" export ARCH="64" export SHARED="ON" + export SAN="-fsanitize=address -fno-omit-frame-pointer" export CHAR_SIGN="signed" fi if [ ${{ matrix.pattern }} == 3 ]; then @@ -119,6 +124,7 @@ jobs: ACTION="ci/build_cmake.sh" export ARCH="64" export SHARED="ON" + export SAN="-fsanitize=address -fno-omit-frame-pointer" export CHAR_SIGN="signed" fi if [ ${{ matrix.pattern }} == 5 ]; then @@ -127,6 +133,7 @@ jobs: ACTION="ci/build_cmake.sh" export ARCH="32" export SHARED="ON" + export SAN="-fsanitize=address -fno-omit-frame-pointer" export CHAR_SIGN="unsigned" fi if [ ${{ matrix.pattern }} == 6 ]; then @@ -135,6 +142,7 @@ jobs: ACTION="ci/build_cmake.sh" export ARCH="64" export SHARED="ON" + export SAN="-fsanitize=address -fno-omit-frame-pointer" export CHAR_SIGN="unsigned" fi if [ ${{ matrix.pattern }} == 7 ]; then @@ -172,7 +180,7 @@ jobs: fi # build and test - CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" GTEST_ROOT="${BASE}/usr" CFLAGS="-Werror -g -fsanitize=undefined" CXXFLAGS="-Werror -g -fsanitize=undefined" MSGPACK_SAN="${SAN}" ${ACTION} + CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" GTEST_ROOT="${BASE}/usr" CFLAGS="-Werror -g -fsanitize=undefined -fno-sanitize-recover=all" CXXFLAGS="-Werror -g -ggdb3 -fsanitize=undefined -fno-sanitize-recover=all" ${ACTION} windows: runs-on: windows-2019 diff --git a/ci/build_cmake.sh b/ci/build_cmake.sh index 83ee2f12..e915c090 100755 --- a/ci/build_cmake.sh +++ b/ci/build_cmake.sh @@ -25,7 +25,7 @@ else export ARCH_FLAG="-m64" fi -cmake -DMSGPACK_32BIT=${BIT32} -DBUILD_SHARED_LIBS=${SHARED} -DMSGPACK_CHAR_SIGN=${CHAR_SIGN} -DCMAKE_CXX_FLAGS="${ARCH_FLAG} ${CXXFLAGS}" -DCMAKE_C_FLAGS="${CFLAGS}" .. +cmake -DMSGPACK_32BIT=${BIT32} -DBUILD_SHARED_LIBS=${SHARED} -DMSGPACK_CHAR_SIGN=${CHAR_SIGN} -DCMAKE_CXX_FLAGS="${ARCH_FLAG} ${CXXFLAGS} ${SAN}" -DCMAKE_C_FLAGS="${CFLAGS} ${SAN}" .. ret=$? if [ $ret -ne 0 ] @@ -49,6 +49,7 @@ then exit $ret fi +cmake -DMSGPACK_32BIT=${BIT32} -DBUILD_SHARED_LIBS=${SHARED} -DMSGPACK_CHAR_SIGN=${CHAR_SIGN} -DCMAKE_CXX_FLAGS="${ARCH_FLAG} ${CXXFLAGS}" -DCMAKE_C_FLAGS="${CFLAGS}" .. make install DESTDIR=`pwd`/install ret=$? From 63d3b093f0837c139d520907fd3b89406d880430 Mon Sep 17 00:00:00 2001 From: Takatoshi Kondo Date: Sun, 5 Jun 2022 20:35:54 +0900 Subject: [PATCH 2/2] Updated appveyor zlib version. --- appveyor.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index ba1c221b..eeed4724 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -22,10 +22,10 @@ build_script: - cmake --build . --config Release - cd .. - cd .. -- appveyor DownloadFile http://zlib.net/zlib-1.2.11.tar.gz -FileName zlib-1.2.11.tar.gz -- 7z x zlib-1.2.11.tar.gz > NUL -- 7z x zlib-1.2.11.tar > NUL -- cd zlib-1.2.11 +- appveyor DownloadFile http://zlib.net/zlib-1.2.12.tar.gz -FileName zlib-1.2.12.tar.gz +- 7z x zlib-1.2.12.tar.gz > NUL +- 7z x zlib-1.2.12.tar > NUL +- cd zlib-1.2.12 - md build - cd build - cmake -G %msvc% .. @@ -35,9 +35,9 @@ build_script: - cd .. - md build - cd build -- cmake -G %msvc% -DGTEST_LIBRARY=%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release\gtest.lib -DGTEST_MAIN_LIBRARY=%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release\gtest_main.lib -DGTEST_INCLUDE_DIR=%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\include -DZLIB_LIBRARY=%APPVEYOR_BUILD_FOLDER%\zlib-1.2.11\build\Release\zlib.lib -DZLIB_INCLUDE_DIR=%APPVEYOR_BUILD_FOLDER%\zlib-1.2.11 -DCMAKE_CXX_FLAGS='"/D_VARIADIC_MAX=10 /EHsc"' .. +- cmake -G %msvc% -DGTEST_LIBRARY=%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release\gtest.lib -DGTEST_MAIN_LIBRARY=%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release\gtest_main.lib -DGTEST_INCLUDE_DIR=%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\include -DZLIB_LIBRARY=%APPVEYOR_BUILD_FOLDER%\zlib-1.2.12\build\Release\zlib.lib -DZLIB_INCLUDE_DIR=%APPVEYOR_BUILD_FOLDER%\zlib-1.2.12 -DCMAKE_CXX_FLAGS='"/D_VARIADIC_MAX=10 /EHsc"' .. - cmake --build . --config Release -v test_script: -- set PATH=%PATH%;%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release;%APPVEYOR_BUILD_FOLDER%\zlib-1.2.11\build\Release;%APPVEYOR_BUILD_FOLDER%\build\release +- set PATH=%PATH%;%APPVEYOR_BUILD_FOLDER%\googletest-release-1.7.0\build\Release;%APPVEYOR_BUILD_FOLDER%\zlib-1.2.12\build\Release;%APPVEYOR_BUILD_FOLDER%\build\release - ctest -V