[Buildroot] [PATCH 1/1] package/exiv2: fix build without SSP
Yann E. MORIN
yann.morin.1998 at free.fr
Sat Jul 31 09:53:20 UTC 2021
Fabrice, All,
On 2021-07-01 19:47 +0200, Fabrice Fontaine spake thusly:
> Build without SSP fails since bump to version 0.27.4 in commit
> bcace429426ee91aac56f3dcc33b69e22141d384
>
> This is due to the fact that
> https://github.com/Exiv2/exiv2/commit/bbe0b70840cf28b7dd8c0b7e9bb1b741aeda2efd
> removed the wrong GCC_ prefix from HAS_FSTACK_PROTECTOR_STRONG variable
>
> Fixes:
> - http://autobuild.buildroot.org/results/ae4635899124c602c70d2b342a76f95c34aa4a3d
>
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> ---
> ...dd-BUILD_WITH_STACK_PROTECTOR-option.patch | 52 +++++++++++++++++++
This patch does not apply:
>>> exiv2 0.27.4 Patching
Applying 0001-add-BUILD_WITH_STACK_PROTECTOR-option.patch using patch:
patching file CMakeLists.txt
Hunk #1 succeeded at 47 with fuzz 1 (offset -5 lines).
patching file cmake/compilerFlags.cmake
Hunk #1 FAILED at 44 (different line endings).
1 out of 1 hunk FAILED -- saving rejects to file cmake/compilerFlags.cmake.rej
make[1]: *** [package/pkg-generic.mk:227: /home/ymorin/dev/buildroot/O/build/exiv2-0.27.4/.stamp_patched] Error 1
make: *** [Makefile:23: _all] Error 2
Could you look into this, please?
Regards,
Yann E. MORIN.
> package/exiv2/exiv2.mk | 4 +-
> 2 files changed, 55 insertions(+), 1 deletion(-)
> create mode 100644 package/exiv2/0001-add-BUILD_WITH_STACK_PROTECTOR-option.patch
>
> diff --git a/package/exiv2/0001-add-BUILD_WITH_STACK_PROTECTOR-option.patch b/package/exiv2/0001-add-BUILD_WITH_STACK_PROTECTOR-option.patch
> new file mode 100644
> index 0000000000..aced5ab311
> --- /dev/null
> +++ b/package/exiv2/0001-add-BUILD_WITH_STACK_PROTECTOR-option.patch
> @@ -0,0 +1,52 @@
> +From 8651c9f823ace70b6609b10aeef0c0740636b570 Mon Sep 17 00:00:00 2001
> +From: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> +Date: Thu, 1 Jul 2021 19:31:25 +0200
> +Subject: [PATCH] add BUILD_WITH_STACK_PROTECTOR option
> +
> +Add BUILD_WITH_STACK_PROTECTOR to avoid the following build failure with
> +toolchains that don't support stack-protector:
> +
> +/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'
> +
> +Indeed, support for -fstack-protector-strong can't be detected through
> +check_cxx_compiler_flag as some toolchains need to link with -lssp to
> +enable SSP support
> +
> +Fixes:
> + - http://autobuild.buildroot.org/results/ae4635899124c602c70d2b342a76f95c34aa4a3d
> +
> +Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
> +[Upstream status: https://github.com/Exiv2/exiv2/pull/1756]
> +---
> + CMakeLists.txt | 1 +
> + cmake/compilerFlags.cmake | 2 +-
> + 2 files changed, 2 insertions(+), 1 deletion(-)
> +
> +diff --git a/CMakeLists.txt b/CMakeLists.txt
> +index 9fe8b5f9..aabb3dca 100644
> +--- a/CMakeLists.txt
> ++++ b/CMakeLists.txt
> +@@ -52,6 +52,7 @@ mark_as_advanced(
> + EXIV2_TEAM_USE_SANITIZERS
> + )
> +
> ++option( BUILD_WITH_STACK_PROTECTOR "Build with stack protector" ON )
> + option( BUILD_WITH_CCACHE "Use ccache to speed up compilations" OFF )
> + option( BUILD_WITH_COVERAGE "Add compiler flags to generate coverage stats" OFF )
> + include(cmake/gcovr.cmake REQUIRED)
> +diff --git a/cmake/compilerFlags.cmake b/cmake/compilerFlags.cmake
> +index c8a85c59..20f6ac53 100644
> +--- a/cmake/compilerFlags.cmake
> ++++ b/cmake/compilerFlags.cmake
> +@@ -44,7 +44,7 @@ if ( MINGW OR UNIX OR MSYS ) # MINGW, Linux, APPLE, CYGWIN
> + if(HAS_FCF_PROTECTION)
> + add_compile_options(-fcf-protection)
> + endif()
> +- if(HAS_FSTACK_PROTECTOR_STRONG)
> ++ if(BUILD_WITH_STACK_PROTECTOR AND HAS_FSTACK_PROTECTOR_STRONG)
> + add_compile_options(-fstack-protector-strong)
> + endif()
> + endif()
> +--
> +2.30.2
> +
> diff --git a/package/exiv2/exiv2.mk b/package/exiv2/exiv2.mk
> index 52bf03fc63..33222e6381 100644
> --- a/package/exiv2/exiv2.mk
> +++ b/package/exiv2/exiv2.mk
> @@ -12,7 +12,9 @@ EXIV2_LICENSE = GPL-2.0+
> EXIV2_LICENSE_FILES = COPYING
> EXIV2_CPE_ID_VENDOR = exiv2
>
> -EXIV2_CONF_OPTS += -DEXIV2_BUILD_SAMPLES=OFF
> +EXIV2_CONF_OPTS += \
> + -DBUILD_WITH_STACK_PROTECTOR=OFF \
> + -DEXIV2_BUILD_SAMPLES=OFF
>
> ifeq ($(BR2_PACKAGE_EXIV2_LENSDATA),y)
> EXIV2_CONF_OPTS += -DEXIV2_ENABLE_LENSDATA=ON
> --
> 2.30.2
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
More information about the buildroot
mailing list