[Buildroot] [PATCH 1/1] package/exiv2: fix build without SSP

Fabrice Fontaine fontaine.fabrice at gmail.com
Sat Jul 31 11:29:10 UTC 2021


Yann,

Le sam. 31 juil. 2021 à 11:53, Yann E. MORIN <yann.morin.1998 at free.fr> a écrit :
>
> 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?
I can't fix it as it is due to git send-email which replaces LF
line-endings by CRLF.
>
> 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.  |
> '------------------------------^-------^------------------^--------------------'
Best Regards,

Fabrice


More information about the buildroot mailing list