From 9a1e2e5dc07c6e79f02a396bd10e46723bad7988 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 17 Jan 2024 14:25:26 +0000 Subject: [PATCH] GCC Plugin: Do not use section groups with string notes. Resolves: RHEL-21772 --- .annobin.metadata | 1 + annobin-strings-no-attach.patch | 36 +++++++++++++++++++++++++++++++++ annobin.spec | 7 +++++-- 3 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 .annobin.metadata create mode 100644 annobin-strings-no-attach.patch diff --git a/.annobin.metadata b/.annobin.metadata new file mode 100644 index 0000000..33808fe --- /dev/null +++ b/.annobin.metadata @@ -0,0 +1 @@ +07f5617e6d0f8cb6c3efd66004e38f9081e6b8f5 annobin-12.31.tar.xz diff --git a/annobin-strings-no-attach.patch b/annobin-strings-no-attach.patch new file mode 100644 index 0000000..dc85ecf --- /dev/null +++ b/annobin-strings-no-attach.patch @@ -0,0 +1,36 @@ +--- annobin.orig/gcc-plugin/annobin.cc 2024-01-17 14:00:26.889983192 +0000 ++++ annobin-12.31/gcc-plugin/annobin.cc 2024-01-17 14:01:27.517055850 +0000 +@@ -3261,18 +3261,24 @@ plugin_init (struct plugin_name_args * + target_start_sym_bias = annobin_target_start_symbol_bias (); + if (annobin_attach_type == not_set) + { +- /* Choose a default attachment type. Link ordering is preferable +- as it is more resistant to changes in compiler section building. +- But it can only be used if the target assembler supports link_order sections +- and the target linker is sufficiently new that it implements them correctly. +- For now we use a test of the GCC version as an approximation to the binutils +- versions that are needed. (Note - 2.35.2, as used by RHEL-9, is insufficient). +- See BZ 2016458 for an example of where this solution is needed. */ ++ if (annobin_note_format == string) ++ /* String format notes do not need section groups. */ ++ annobin_attach_type = none; ++ else ++ { ++ /* Choose a default attachment type. Link ordering is preferable ++ as it is more resistant to changes in compiler section building. ++ But it can only be used if the target assembler supports link_order sections ++ and the target linker is sufficiently new that it implements them correctly. ++ For now we use a test of the GCC version as an approximation to the binutils ++ versions that are needed. (Note - 2.35.2, as used by RHEL-9, is insufficient). ++ See BZ 2016458 for an example of where this solution is needed. */ + #if GCCPLUGIN_VERSION_MAJOR >= 12 +- annobin_attach_type = link_order; ++ annobin_attach_type = link_order; + #else +- annobin_attach_type = group; ++ annobin_attach_type = group; + #endif ++ } + } + annobin_inform (INFORM_VERBOSE, "Attach mode: %s", attach_mode_name (annobin_attach_type)); + diff --git a/annobin.spec b/annobin.spec index 49e58d1..d5b0b9c 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.31 -Release: 1%{?dist} +Release: 2%{?dist} License: GPL-3.0-or-later AND LGPL-2.0-or-later AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (LGPL-2.0-or-later WITH GCC-exception-2.0) AND GFDL-1.3-or-later # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -62,7 +62,7 @@ Source: https://nickc.fedorapeople.org/%{annobin_sources} %global annobin_source_dir %{_usrsrc}/annobin # Insert patches here, if needed. Eg: -# Patch01: annobin-foo.patch +Patch01: annobin-strings-no-attach.patch #--------------------------------------------------------------------------------- @@ -366,6 +366,9 @@ exit $res #--------------------------------------------------------------------------------- %changelog +* Wed Jan 17 2024 Nick Clifron - 12.31-2 +- GCC Plugin: Do not use section groups with string notes. (RHEL-21772) + * Wed Nov 15 2023 Nick Clifron - 12.31-1 - Update glibc detection heuristics for PPC64. (RHEL-16453) - Fix another atexit test failure. (#2247481)