xref: /OK3568_Linux_fs/buildroot/package/exiv2/0001-add-BUILD_WITH_STACK_PROTECTOR-option.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFrom 4bb57da5fb0bb0d7e747b9e325e9ec0876ffc1f9 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Fabrice Fontaine <fontaine.fabrice@gmail.com>
3*4882a593SmuzhiyunDate: Sat, 31 Jul 2021 16:36:50 +0200
4*4882a593SmuzhiyunSubject: [PATCH] add BUILD_WITH_STACK_PROTECTOR option
5*4882a593Smuzhiyun
6*4882a593SmuzhiyunAdd BUILD_WITH_STACK_PROTECTOR to avoid the following build failure with
7*4882a593Smuzhiyuntoolchains that don't support stack-protector:
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun/home/buildroot/autobuild/instance-3/output-1/host/opt/ext-toolchain/bin/../lib/gcc/mipsel-buildroot-linux-uclibc/9.3.0/../../../../mipsel-buildroot-linux-uclibc/bin/ld: utils.cpp:(.text._ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag[_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag]+0xd0): undefined reference to `__stack_chk_fail'
10*4882a593Smuzhiyun
11*4882a593SmuzhiyunIndeed, support for -fstack-protector-strong can't be detected through
12*4882a593Smuzhiyuncheck_cxx_compiler_flag as some toolchains need to link with -lssp to
13*4882a593Smuzhiyunenable SSP support
14*4882a593Smuzhiyun
15*4882a593SmuzhiyunFixes:
16*4882a593Smuzhiyun - http://autobuild.buildroot.org/results/ae4635899124c602c70d2b342a76f95c34aa4a3d
17*4882a593Smuzhiyun
18*4882a593SmuzhiyunUpstream: https://github.com/Exiv2/exiv2/commit/f31c0eba098889899d29b7b0da830aee2b62a7b8
19*4882a593SmuzhiyunSigned-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
20*4882a593Smuzhiyun---
21*4882a593Smuzhiyun CMakeLists.txt            | 1 +
22*4882a593Smuzhiyun cmake/compilerFlags.cmake | 4 ++--
23*4882a593Smuzhiyun 2 files changed, 3 insertions(+), 2 deletions(-)
24*4882a593Smuzhiyun
25*4882a593Smuzhiyundiff --git a/CMakeLists.txt b/CMakeLists.txt
26*4882a593Smuzhiyunindex 6f0da06a..0746ee14 100644
27*4882a593Smuzhiyun--- a/CMakeLists.txt
28*4882a593Smuzhiyun+++ b/CMakeLists.txt
29*4882a593Smuzhiyun@@ -47,6 +47,7 @@ mark_as_advanced(
30*4882a593Smuzhiyun     EXIV2_TEAM_USE_SANITIZERS
31*4882a593Smuzhiyun )
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun+option( BUILD_WITH_STACK_PROTECTOR    "Build with stack protector"                            ON )
34*4882a593Smuzhiyun option( BUILD_WITH_CCACHE             "Use ccache to speed up compilations"                   OFF )
35*4882a593Smuzhiyun option( BUILD_WITH_COVERAGE           "Add compiler flags to generate coverage stats"         OFF )
36*4882a593Smuzhiyun
37*4882a593Smuzhiyundiff --git a/cmake/compilerFlags.cmake b/cmake/compilerFlags.cmake
38*4882a593Smuzhiyunindex 35faf501..0a646e50 100644
39*4882a593Smuzhiyun--- a/cmake/compilerFlags.cmake
40*4882a593Smuzhiyun+++ b/cmake/compilerFlags.cmake
41*4882a593Smuzhiyun@@ -33,8 +33,8 @@ if ( MINGW OR UNIX OR MSYS ) # MINGW, Linux, APPLE, CYGWIN
42*4882a593Smuzhiyun             endif()
43*4882a593Smuzhiyun             if(HAS_FCF_PROTECTION)
44*4882a593Smuzhiyun                 add_compile_options(-fcf-protection)
45*4882a593Smuzhiyun-            endif()
46*4882a593Smuzhiyun-            if(HAS_FSTACK_PROTECTOR_STRONG)
47*4882a593Smuzhiyun+              endif()
48*4882a593Smuzhiyun+	    if(BUILD_WITH_STACK_PROTECTOR AND HAS_FSTACK_PROTECTOR_STRONG)
49*4882a593Smuzhiyun                 add_compile_options(-fstack-protector-strong)
50*4882a593Smuzhiyun             endif()
51*4882a593Smuzhiyun         endif()
52*4882a593Smuzhiyun--
53*4882a593Smuzhiyun2.31.1
54*4882a593Smuzhiyun
55