From f568cd712c435f8a7d3f8b3d743881f2fae73365 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= Date: Mon, 10 Jan 2022 10:07:19 +0000 Subject: [PATCH] Resolves: rhbz#2038807 fix annocheck warning about missing .note.gnu.property-stack --- ...g-about-missing-.note.gnu.property-s.patch | 143 ++++++++++++++++++ libreoffice.spec | 6 +- 2 files changed, 148 insertions(+), 1 deletion(-) create mode 100644 0001-annocheck-warning-about-missing-.note.gnu.property-s.patch diff --git a/0001-annocheck-warning-about-missing-.note.gnu.property-s.patch b/0001-annocheck-warning-about-missing-.note.gnu.property-s.patch new file mode 100644 index 0000000..aabe104 --- /dev/null +++ b/0001-annocheck-warning-about-missing-.note.gnu.property-s.patch @@ -0,0 +1,143 @@ +From 6de192ad5ffe9ec04328bfd178050cb8a33e1cbb Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= +Date: Wed, 15 Dec 2021 12:46:24 +0000 +Subject: [PATCH] annocheck warning about missing .note.gnu.property section +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +copy and paste recommendation from: +https://sourceware.org/annobin/annobin.html/Test-cf-protection.html + +and adapt like: +https://github.com/openssl/openssl/commit/51994e505dbb1cd0dd76869ec962e2948b77b585 +where https://bugs.ruby-lang.org/attachments/8962 is similar + +Intel docs have "The ENDBR32 and ENDBR64 (collectively ENDBRANCH) are +two new instructions that are used to mark valid indirect CALL/JMP +target locations in the program." + +Change-Id: Ie867c263a888763db4478720ba189c9ec6cc974d +Reviewed-on: https://gerrit.libreoffice.org/c/core/+/126859 +Tested-by: Jenkins +Tested-by: Caolán McNamara +Reviewed-by: Caolán McNamara +(cherry picked from commit af55dc3891f7950d392175004b2090cb0e54828e) +--- + .../source/cpp_uno/gcc3_linux_intel/call.s | 16 ++++++++++++++++ + .../source/cpp_uno/gcc3_linux_x86-64/call.s | 19 +++++++++++++++++++ + config_host.mk.in | 1 + + configure.ac | 14 ++++++++++++++ + solenv/gbuild/platform/com_GCC_class.mk | 1 + + 5 files changed, 51 insertions(+) + +diff --git a/bridges/source/cpp_uno/gcc3_linux_intel/call.s b/bridges/source/cpp_uno/gcc3_linux_intel/call.s +index 6be583247733..0a5870defcf3 100644 +--- a/bridges/source/cpp_uno/gcc3_linux_intel/call.s ++++ b/bridges/source/cpp_uno/gcc3_linux_intel/call.s +@@ -290,3 +290,19 @@ privateSnippetExecutorClass: + .align 4 + .LEFDEc: + .section .note.GNU-stack,"",@progbits ++ .section .note.gnu.property,"a" ++ .p2align 2 ++ .long 1f - 0f ++ .long 4f - 1f ++ .long 5 ++0: ++ .string "GNU" ++1: ++ .p2align 2 ++ .long 0xc0000002 ++ .long 3f - 2f ++2: ++ .long 0x3 ++3: ++ .p2align 2 ++4: +diff --git a/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s b/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s +index 447ac0cecfdd..2e9346dff8a0 100644 +--- a/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s ++++ b/bridges/source/cpp_uno/gcc3_linux_x86-64/call.s +@@ -22,6 +22,9 @@ + .type privateSnippetExecutor, @function + privateSnippetExecutor: + .LFB3: ++#if defined(END_BRANCH_INS_SUPPORT) ++ endbr64 ++#endif + pushq %rbp + .LCFI0: + movq %rsp, %rbp +@@ -115,3 +118,19 @@ privateSnippetExecutor: + .align 8 + .LEFDE1: + .section .note.GNU-stack,"",@progbits ++ .section .note.gnu.property,"a" ++ .p2align 3 ++ .long 1f - 0f ++ .long 4f - 1f ++ .long 5 ++0: ++ .string "GNU" ++1: ++ .p2align 3 ++ .long 0xc0000002 ++ .long 3f - 2f ++2: ++ .long 0x3 ++3: ++ .p2align 3 ++4: +diff --git a/config_host.mk.in b/config_host.mk.in +index d6edba704b21..6ac2a90695e2 100644 +--- a/config_host.mk.in ++++ b/config_host.mk.in +@@ -260,6 +260,7 @@ export GTK3_CFLAGS=$(gb_SPACE)@GTK3_CFLAGS@ + export GTK3_LIBS=$(gb_SPACE)@GTK3_LIBS@ + export USING_X11=@USING_X11@ + export HAMCREST_JAR=@HAMCREST_JAR@ ++export HAVE_ASM_END_BRANCH_INS_SUPPORT=@HAVE_ASM_END_BRANCH_INS_SUPPORT@ + export HAVE_BROKEN_GCC_WMAYBE_UNINITIALIZED=@HAVE_BROKEN_GCC_WMAYBE_UNINITIALIZED@ + export HAVE_CLANG_DEBUG_INFO_KIND_CONSTRUCTOR=@HAVE_CLANG_DEBUG_INFO_KIND_CONSTRUCTOR@ + export HAVE_LO_CLANG_DLLEXPORTINLINES=@HAVE_LO_CLANG_DLLEXPORTINLINES@ +diff --git a/configure.ac b/configure.ac +index bd28bc6eb38e..ef03408e8e98 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -7730,6 +7730,20 @@ _ACEOF + + CPPFLAGS="$save_CPPFLAGS" + ++ AC_MSG_CHECKING([if CET endbranch is recognized]) ++cat > endbr.s <<_ACEOF ++endbr32 ++_ACEOF ++ HAVE_ASM_END_BRANCH_INS_SUPPORT= ++ if $CXX -c endbr.s -o endbr.o >/dev/null 2>&5; then ++ AC_MSG_RESULT([yes]) ++ HAVE_ASM_END_BRANCH_INS_SUPPORT=TRUE ++ else ++ AC_MSG_RESULT([no]) ++ fi ++ rm -f endbr.s endbr.o ++ AC_SUBST(HAVE_ASM_END_BRANCH_INS_SUPPORT) ++ + AC_LANG_POP([C++]) + fi + +diff --git a/solenv/gbuild/platform/com_GCC_class.mk b/solenv/gbuild/platform/com_GCC_class.mk +index c29e2a979fd9..e2056abf9682 100644 +--- a/solenv/gbuild/platform/com_GCC_class.mk ++++ b/solenv/gbuild/platform/com_GCC_class.mk +@@ -44,6 +44,7 @@ $(call gb_Helper_abbreviate_dirs,\ + -x assembler-with-cpp \ + $(gb_LTOFLAGS) \ + $(gb_AFLAGS) \ ++ $(if $(HAVE_ASM_END_BRANCH_INS_SUPPORT),-DEND_BRANCH_INS_SUPPORT) \ + -c $(3) \ + -o $(1)) \ + $(INCLUDE) && \ +-- +2.33.1 + diff --git a/libreoffice.spec b/libreoffice.spec index 25ae061..9764784 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -50,7 +50,7 @@ Summary: Free Software Productivity Suite Name: libreoffice Epoch: 1 Version: %{libo_version}.1 -Release: 1%{?libo_prerelease}%{?dist} +Release: 2%{?libo_prerelease}%{?dist} License: (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and MPLv2.0 and CC0 URL: http://www.libreoffice.org/ @@ -263,6 +263,7 @@ Patch14: 0001-Resolves-tdf-145567-restore-focus-to-the-usual-frame.patch Patch15: 0001-Resolves-tdf-140250-don-t-share-adjustments-between-.patch Patch16: 0001-fix-comparison-when-searching-cache.patch Patch17: 0001-tdf-121546-sw-don-t-use-undo-array-s-m_pOutlineNodes.patch +Patch18: 0001-annocheck-warning-about-missing-.note.gnu.property-s.patch # not upstreamed Patch500: 0001-disable-libe-book-support.patch @@ -2252,6 +2253,9 @@ gtk-update-icon-cache -q %{_datadir}/icons/hicolor &>/dev/null || : %{_includedir}/LibreOfficeKit %changelog +* Mon Jan 10 2022 Caolán McNamara - 1:7.1.8.1-2 +- fix annocheck warning about missing .note.gnu.property-stack + * Tue Dec 14 2021 Caolán McNamara - 1:7.1.8.1-1 - upgrade to 7.1.8