From b6d4688b8a8659038dad5c8097f3f7cd0cf294d8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 19 Aug 2019 10:45:35 +0100 Subject: [PATCH 001/459] Allow compiler used to run tests to be specified on the command line. Resolves: #1723401 --- .gitignore | 1 + annobin.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 597e467..af5806b 100644 --- a/.gitignore +++ b/.gitignore @@ -105,3 +105,4 @@ /annobin-8.76.tar.xz /annobin-8.77.tar.xz /annobin-8.78.tar.xz +/annobin-8.79.tar.xz diff --git a/annobin.spec b/annobin.spec index 8a28543..622999f 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 8.78 +Version: 8.79 Release: 1%{?dist} License: GPLv3+ @@ -220,6 +220,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Aug 06 2019 Nick Clifton - 8.79-1 +- Allow compiler used to run tests to be specified on the command line. (#1723401) + * Tue Aug 06 2019 Nick Clifton - 8.78-1 - Fix a memory allocation error in the annobin plugin. (#1737306) diff --git a/sources b/sources index b815d12..ea7edcf 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-8.78.tar.xz) = 63073981b1d92d724dd70be64084cfd5e146735dd128455721fe5750c2f63d8fc0984e2907729fa39f9c5b2827e8f83c9c0801a143bff4a41d51b3a01e8a8a92 +SHA512 (annobin-8.79.tar.xz) = 6a66d3d2e4125881965aee9ae55af9cb6e289f47581e8aebfa7f4ab708d0280d331d55a8261fa1ff7cb70c1daf08daf622c4c851a5fb449eb6c93d2a8808f6a8 From 16503862ea5a4dd7c33f477b33d5c2c6e297d9dc Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 4 Sep 2019 08:30:12 +0100 Subject: [PATCH 002/459] NVR bump to allow rebuild against latest gcc. Resolves: #1748529 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 622999f..03b3005 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Binary annotation plugin for GCC Version: 8.79 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ URL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -220,6 +220,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Sep 04 2019 Nick Clifton - 8.79-2 +- NVR bump to allow rebuild against latest gcc. (#1748529) + * Tue Aug 06 2019 Nick Clifton - 8.79-1 - Allow compiler used to run tests to be specified on the command line. (#1723401) From af41c06a9f9df54c2dd1d580d5431e6b993476f5 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 23 Sep 2019 13:39:55 +0100 Subject: [PATCH 003/459] Improve detection of GO binaries. Add gcc version information to annobin notes. Do not complain about missing FORTIFY_SOURCE and GLIBCXX_ASSERTIONS in LTO compilations. --- .gitignore | 1 + annobin.spec | 9 +++++++-- sources | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index af5806b..a9169f5 100644 --- a/.gitignore +++ b/.gitignore @@ -106,3 +106,4 @@ /annobin-8.77.tar.xz /annobin-8.78.tar.xz /annobin-8.79.tar.xz +/annobin-8.81.tar.xz diff --git a/annobin.spec b/annobin.spec index 03b3005..730c790 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 8.79 -Release: 2%{?dist} +Version: 8.81 +Release: 1%{?dist} License: GPLv3+ URL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -220,6 +220,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Sep 23 2019 Nick Clifton - 8.81-1 +- Improve detection of GO binaries. +- Add gcc version information to annobin notes. +- Do not complain about missing FORTIFY_SOURCE and GLIBCXX_ASSERTIONS in LTO compilations. + * Wed Sep 04 2019 Nick Clifton - 8.79-2 - NVR bump to allow rebuild against latest gcc. (#1748529) diff --git a/sources b/sources index ea7edcf..846cbdd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-8.79.tar.xz) = 6a66d3d2e4125881965aee9ae55af9cb6e289f47581e8aebfa7f4ab708d0280d331d55a8261fa1ff7cb70c1daf08daf622c4c851a5fb449eb6c93d2a8808f6a8 +SHA512 (annobin-8.81.tar.xz) = 5b7d6ab619be5666cae0e0742ce650babd7bb18f9f5f93724a2d14b2100191360fa640a861be3bf807fe5bff598b008fe83276e568d7d2bae229e7642a8f2508 From c240981e82c6e5890ff981efa871b6073aa025ef Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 4 Oct 2019 07:59:55 +0100 Subject: [PATCH 004/459] - If notes cannot be found in the executable look for them in the debuginfo file, if available. - Generate a FAIL if notes are missing from the executable/debuginfo file. - Record and report the setting of the AArcht64 specific -mbranch-protection option. --- .gitignore | 1 + annobin.spec | 10 ++++++++-- sources | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index a9169f5..5ec2ced 100644 --- a/.gitignore +++ b/.gitignore @@ -107,3 +107,4 @@ /annobin-8.78.tar.xz /annobin-8.79.tar.xz /annobin-8.81.tar.xz +/annobin-8.83.tar.xz diff --git a/annobin.spec b/annobin.spec index 730c790..cd5f79c 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 8.81 +Version: 8.83 Release: 1%{?dist} License: GPLv3+ @@ -185,7 +185,8 @@ rm %{_tmppath}/tmp_annobin.so %if %{with tests} %check -# On RHEL7 the assembler does not support all of the annobin tests. +# Change the following line to "make check || :" on RHEL7 or if you need to see the +# test suite logs in order to diagnose a test failure. make check if [ -f tests/test-suite.log ]; then cat tests/test-suite.log @@ -220,6 +221,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Oct 03 2019 Nick Clifton - 8.83-1 +- If notes cannot be found in the executable look for them in the debuginfo file, if available. +- Generate a FAIL if notes are missing from the executable/debuginfo file. +- Record and report the setting of the AArcht64 specific -mbranch-protection option. + * Mon Sep 23 2019 Nick Clifton - 8.81-1 - Improve detection of GO binaries. - Add gcc version information to annobin notes. diff --git a/sources b/sources index 846cbdd..4e0eec6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-8.81.tar.xz) = 5b7d6ab619be5666cae0e0742ce650babd7bb18f9f5f93724a2d14b2100191360fa640a861be3bf807fe5bff598b008fe83276e568d7d2bae229e7642a8f2508 +SHA512 (annobin-8.83.tar.xz) = 2f5bf0efc11bb269956fd0d19149484877f96ec3e11efb87903c075edb11c27447c50116dd6cc262a1a36db647c6cab52a79244c7fbe78ea9e058254426aa18f From 59663eb6dc3fbe05b8e5aa58a6fa2e73f7e2b333 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 10 Oct 2019 14:40:50 +0100 Subject: [PATCH 005/459] Generate FAIL results if -Wall or -Wformat-security are missing. --- .gitignore | 1 + annobin.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 5ec2ced..f171c5d 100644 --- a/.gitignore +++ b/.gitignore @@ -108,3 +108,4 @@ /annobin-8.79.tar.xz /annobin-8.81.tar.xz /annobin-8.83.tar.xz +/annobin-8.84.tar.xz diff --git a/annobin.spec b/annobin.spec index cd5f79c..14ea744 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 8.83 +Version: 8.84 Release: 1%{?dist} License: GPLv3+ @@ -221,6 +221,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Oct 10 2019 Nick Clifton - 8.84-1 +- Generate FAIL results if -Wall or -Wformat-security are missing. + * Thu Oct 03 2019 Nick Clifton - 8.83-1 - If notes cannot be found in the executable look for them in the debuginfo file, if available. - Generate a FAIL if notes are missing from the executable/debuginfo file. diff --git a/sources b/sources index 4e0eec6..df195dd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-8.83.tar.xz) = 2f5bf0efc11bb269956fd0d19149484877f96ec3e11efb87903c075edb11c27447c50116dd6cc262a1a36db647c6cab52a79244c7fbe78ea9e058254426aa18f +SHA512 (annobin-8.84.tar.xz) = 32633c812d80ff0e53a13feb7d04038cbaa70cdac77bda264e2c510a4f51ddc5227d4dd6549f688644544c2eef4799662c753d19bf136b2d16182274cf30295d From 07e0a5ab8fd5f3041517aa6c27e80b6668420e11 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 16 Oct 2019 16:35:21 +0100 Subject: [PATCH 006/459] Skip generation of global notes for hot/cold sections. --- .gitignore | 1 + annobin.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index f171c5d..83527c8 100644 --- a/.gitignore +++ b/.gitignore @@ -109,3 +109,4 @@ /annobin-8.81.tar.xz /annobin-8.83.tar.xz /annobin-8.84.tar.xz +/annobin-8.85.tar.xz diff --git a/annobin.spec b/annobin.spec index 14ea744..1e9b523 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 8.84 +Version: 8.85 Release: 1%{?dist} License: GPLv3+ @@ -221,6 +221,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Oct 16 2019 Nick Clifton - 8.85-1 +- Skip generation of global notes for hot/cold sections. + * Thu Oct 10 2019 Nick Clifton - 8.84-1 - Generate FAIL results if -Wall or -Wformat-security are missing. diff --git a/sources b/sources index df195dd..a6bf7b6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-8.84.tar.xz) = 32633c812d80ff0e53a13feb7d04038cbaa70cdac77bda264e2c510a4f51ddc5227d4dd6549f688644544c2eef4799662c753d19bf136b2d16182274cf30295d +SHA512 (annobin-8.85.tar.xz) = 473982ad858da69bf8187891dfc696353525fc5f323a85b9041d9be7a383da7735f69bb9da806e647315ec256991396b974c7aaab6f380bc93c31380cf321722 From 046883693bcb6dd818f996bf0ab637eba8132b70 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 21 Oct 2019 16:51:56 +0100 Subject: [PATCH 007/459] Use libabigail like checking to ensure variable address consistency. --- .gitignore | 1 + annobin.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 83527c8..ed6bb47 100644 --- a/.gitignore +++ b/.gitignore @@ -110,3 +110,4 @@ /annobin-8.83.tar.xz /annobin-8.84.tar.xz /annobin-8.85.tar.xz +/annobin-8.86.tar.xz diff --git a/annobin.spec b/annobin.spec index 1e9b523..aa6bf8c 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 8.85 +Version: 8.86 Release: 1%{?dist} License: GPLv3+ @@ -221,6 +221,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Oct 21 2019 Nick Clifton - 8.86-1 +- Use libabigail like checking to ensure variable address consistency. + * Wed Oct 16 2019 Nick Clifton - 8.85-1 - Skip generation of global notes for hot/cold sections. diff --git a/sources b/sources index a6bf7b6..c01c22e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-8.85.tar.xz) = 473982ad858da69bf8187891dfc696353525fc5f323a85b9041d9be7a383da7735f69bb9da806e647315ec256991396b974c7aaab6f380bc93c31380cf321722 +SHA512 (annobin-8.86.tar.xz) = e63b3fcf7a46b29ecf0018fcf7f7d8c27dbb9fda6cd839566f23edda8807af64b6d866877a781d4832a656e955c59420df8582e7831dd94b11cff1b4346859a0 From fff201eb4fcc8e6ce15f04a66873f9cd1342a4fa Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 22 Oct 2019 16:55:27 +0100 Subject: [PATCH 008/459] Replace address checks with dladdr1. --- .gitignore | 1 + annobin.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index ed6bb47..993a164 100644 --- a/.gitignore +++ b/.gitignore @@ -111,3 +111,4 @@ /annobin-8.84.tar.xz /annobin-8.85.tar.xz /annobin-8.86.tar.xz +/annobin-8.87.tar.xz diff --git a/annobin.spec b/annobin.spec index aa6bf8c..94de382 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 8.86 +Version: 8.87 Release: 1%{?dist} License: GPLv3+ @@ -221,6 +221,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Oct 22 2019 Nick Clifton - 8.87-1 +- Replace address checks with dladdr1. + * Mon Oct 21 2019 Nick Clifton - 8.86-1 - Use libabigail like checking to ensure variable address consistency. diff --git a/sources b/sources index c01c22e..b7ff264 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-8.86.tar.xz) = e63b3fcf7a46b29ecf0018fcf7f7d8c27dbb9fda6cd839566f23edda8807af64b6d866877a781d4832a656e955c59420df8582e7831dd94b11cff1b4346859a0 +SHA512 (annobin-8.87.tar.xz) = 1f47554e8fe908382734019af2006157b1ee6fefeda71162676d81cf68b15a51c3b4aff67a50cab956dc250a997cbd2ac038662a1237f2d311a282ee8ca0e23b From d97bf868e78fc84668dc4057c058558f1275dc8a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 1 Nov 2019 13:58:20 +0000 Subject: [PATCH 009/459] Generate a WARN result for code compiled with instrumentation enabled. Relates: #1753918 --- .gitignore | 1 + annobin.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 993a164..3f43477 100644 --- a/.gitignore +++ b/.gitignore @@ -112,3 +112,4 @@ /annobin-8.85.tar.xz /annobin-8.86.tar.xz /annobin-8.87.tar.xz +/annobin-8.88.tar.xz diff --git a/annobin.spec b/annobin.spec index 94de382..97ac622 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 8.87 +Version: 8.88 Release: 1%{?dist} License: GPLv3+ @@ -221,6 +221,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Nov 01 2019 Nick Clifton - 8.88-1 +- Generate a WARN result for code compiled with instrumentation enabled. (#1753918) + * Tue Oct 22 2019 Nick Clifton - 8.87-1 - Replace address checks with dladdr1. diff --git a/sources b/sources index b7ff264..30dbbf5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-8.87.tar.xz) = 1f47554e8fe908382734019af2006157b1ee6fefeda71162676d81cf68b15a51c3b4aff67a50cab956dc250a997cbd2ac038662a1237f2d311a282ee8ca0e23b +SHA512 (annobin-8.88.tar.xz) = 7c93cd8490bd85bd595f89e1b6ffeef157429d3fe5b4f77d47d9936a4e9398b13bb3da50f9c295ad7225f7ac388e026bd265d7a0fa75332371f8554da326898a From 9f8f0cdd012f6557078b556f48bbbd05a2bb6f85 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 15 Nov 2019 15:59:54 +0000 Subject: [PATCH 010/459] Annocheck: Do not skip positive results. --- .gitignore | 1 + annobin.spec | 3 +++ sources | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 3f43477..d4024bc 100644 --- a/.gitignore +++ b/.gitignore @@ -113,3 +113,4 @@ /annobin-8.86.tar.xz /annobin-8.87.tar.xz /annobin-8.88.tar.xz +/annobin-8.90.tar.xz diff --git a/annobin.spec b/annobin.spec index 97ac622..1878137 100644 --- a/annobin.spec +++ b/annobin.spec @@ -221,6 +221,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Nov 15 2019 Nick Clifton - 8.90-1 +- Do not skip positive results. + * Fri Nov 01 2019 Nick Clifton - 8.88-1 - Generate a WARN result for code compiled with instrumentation enabled. (#1753918) diff --git a/sources b/sources index 30dbbf5..aabc197 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-8.88.tar.xz) = 7c93cd8490bd85bd595f89e1b6ffeef157429d3fe5b4f77d47d9936a4e9398b13bb3da50f9c295ad7225f7ac388e026bd265d7a0fa75332371f8554da326898a +SHA512 (annobin-8.90.tar.xz) = 7006379b40d98c82664c789e405f37c3d011a341954ecd7c2dbd1ac830c3c3e6cd551d948247f2697c1cff62e628304cba52fbe872280a2aa622ed7b2237fb02 From df1c169d82c3b995e0bd5b069656741ebed9f3e8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 15 Nov 2019 16:04:03 +0000 Subject: [PATCH 011/459] oops - set correct NVR. --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 1878137..0b425a8 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 8.88 +Version: 8.90 Release: 1%{?dist} License: GPLv3+ From 27da4aee96936182b72c773ac2553f120f85b212 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 18 Nov 2019 17:37:38 +0000 Subject: [PATCH 012/459] Improve checking of gcc versions. --- .gitignore | 1 + annobin.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index d4024bc..fd5f8c8 100644 --- a/.gitignore +++ b/.gitignore @@ -114,3 +114,4 @@ /annobin-8.87.tar.xz /annobin-8.88.tar.xz /annobin-8.90.tar.xz +/annobin-8.91-1.fc32.src.rpm diff --git a/annobin.spec b/annobin.spec index 0b425a8..31f8887 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 8.90 +Version: 8.91 Release: 1%{?dist} License: GPLv3+ @@ -221,6 +221,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Nov 18 2019 Nick Clifton - 8.91-1 +- Improve checking of gcc versions. + * Fri Nov 15 2019 Nick Clifton - 8.90-1 - Do not skip positive results. diff --git a/sources b/sources index aabc197..b128a91 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-8.90.tar.xz) = 7006379b40d98c82664c789e405f37c3d011a341954ecd7c2dbd1ac830c3c3e6cd551d948247f2697c1cff62e628304cba52fbe872280a2aa622ed7b2237fb02 +SHA512 (annobin-8.91-1.fc32.src.rpm) = ef332f4fe2db14d9daa5f59eb9201e949ad971b9c93b94b5e0ea7682ac11e828775aec75e39584e7505f8fde7d3a58a59e2dcfaee25b251818dbdbab0170dd74 From 9c95399d00036a842dee4783b3b4ac56df7c923d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 18 Nov 2019 21:31:07 +0000 Subject: [PATCH 013/459] Add new sources --- .gitignore | 1 + sources | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index fd5f8c8..8be7b2b 100644 --- a/.gitignore +++ b/.gitignore @@ -115,3 +115,4 @@ /annobin-8.88.tar.xz /annobin-8.90.tar.xz /annobin-8.91-1.fc32.src.rpm +/annobin-8.91.tar.xz diff --git a/sources b/sources index b128a91..13ad312 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-8.91-1.fc32.src.rpm) = ef332f4fe2db14d9daa5f59eb9201e949ad971b9c93b94b5e0ea7682ac11e828775aec75e39584e7505f8fde7d3a58a59e2dcfaee25b251818dbdbab0170dd74 +SHA512 (annobin-8.91.tar.xz) = aeb02ea15e34e6180b367ef373784be79e2cbcae762e602898e445d1438d683685b5c6a5efd4308ddf461e11d39ceeea660e1f6d3840f97aede492d611c79808 From 8997d89f3de817ac6d557eb1421dd3ca87ba71ac Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 6 Dec 2019 14:43:08 +0000 Subject: [PATCH 014/459] Have annocheck ignore notes with an end address of 0. --- .gitignore | 1 + annobin.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 8be7b2b..0bb526f 100644 --- a/.gitignore +++ b/.gitignore @@ -116,3 +116,4 @@ /annobin-8.90.tar.xz /annobin-8.91-1.fc32.src.rpm /annobin-8.91.tar.xz +/annobin-8.92.tar.xz diff --git a/annobin.spec b/annobin.spec index 31f8887..24f04b1 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 8.91 +Version: 8.92 Release: 1%{?dist} License: GPLv3+ @@ -221,6 +221,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Dec 06 2019 Nick Clifton - 8.92-1 +- Have annocheck ignore notes with an end address of 0. + * Mon Nov 18 2019 Nick Clifton - 8.91-1 - Improve checking of gcc versions. diff --git a/sources b/sources index 13ad312..e0a7bb7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-8.91.tar.xz) = aeb02ea15e34e6180b367ef373784be79e2cbcae762e602898e445d1438d683685b5c6a5efd4308ddf461e11d39ceeea660e1f6d3840f97aede492d611c79808 +SHA512 (annobin-8.92.tar.xz) = f2a1266f00a7c454396e19befa06833a4b4b8d256598a1ffdbc209a5e36b856a84efa26abb269259e14af877e8ca26a220d91f0cb863b13e9026c4a7bb68d447 From 476968a31a7cf461c6af5c67182efde93670f922 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 20 Jan 2020 11:38:51 +0000 Subject: [PATCH 015/459] Version bump in order to allow rebuilding with gcc-10. --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 24f04b1..7ddcda9 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Binary annotation plugin for GCC Version: 8.92 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ URL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -221,6 +221,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Jan 20 2020 Nick Clifton - 8.92-2 +- Version bump in order to allow rebuilding with gcc-10. + * Fri Dec 06 2019 Nick Clifton - 8.92-1 - Have annocheck ignore notes with an end address of 0. From 980573dc2eacddfbc9dbf2736d5368f3badb94ec Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 20 Jan 2020 12:38:03 +0000 Subject: [PATCH 016/459] Add experimental clang plugin and rebuild with gcc-10. --- .gitignore | 1 + annobin-9.01.tar.xz | Bin 0 -> 460496 bytes annobin.spec | 8 ++++---- sources | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 annobin-9.01.tar.xz diff --git a/.gitignore b/.gitignore index 0bb526f..f883c67 100644 --- a/.gitignore +++ b/.gitignore @@ -117,3 +117,4 @@ /annobin-8.91-1.fc32.src.rpm /annobin-8.91.tar.xz /annobin-8.92.tar.xz +/annobin-9.01.tar.xz diff --git a/annobin-9.01.tar.xz b/annobin-9.01.tar.xz new file mode 100644 index 0000000000000000000000000000000000000000..8854e2575a50a64daf72da0a6dcf611d14687038 GIT binary patch literal 460496 zcmV+aKLEh}H+ooF000E$*0e?f03iV!0000G&sfamOds$6T>vnftlnc(k2BB`A7?ZqwvP~5f z*C?^wIv(C)*GXCv4o#@DUtrRZSHt;hN8xAmoB?_zHcQWwh@frw`j|am!};ADHs$2e zq_ZU57v4?Mslo@y9BBhOI%(lF+SQvE#g4&|Ue#}H#^9pM7qN|cr>BJvnS&qYqHVPn zr}JM2`m)3qqQdO_yn^)VzKf(&`KQU1|871#*w!nEFB5Ow0Y==n;8FbUEm-SX)c@>0 z$ZG4K-9qqlw=*7G7pr&yi<_~GRwo*6kKjk+2@W6odQBXeNMub9LqvXQ%aL;2@r;jB zYBx56nNNooL~YiAYj)6cRBdD0vgInLsfOq=yAcFK z6lk~9ffI1|E32b9hQ$V8W2|nB_w=d5E~JR=Y!9yM`$Tj(#Io8^Y&ATu38w(>gQRhF zEIx5F;mO|n>yy`)Tha2QO%&N(95uC5?b>#qd|#KbqM*jf?t?{8Zd|AtWYUPzB%sr! zAyfl~h6~=hV>?da*8wGNbAc`Oyfq=xQp-IlqpT{pMm1k2}c z9&Z(sQ=!cPrGKpnUt}G^@y#3rYHFJEF08EvkLe(&)&N1v)+4 zp*4vk>~wYb0jo((a1&+~36PZ+Q2O5!jH zhBa?|LUd~#x)210b@3SlabSt%@~9}yRl!{AwE4t%@5=uqDjQ?Wfj(7LcOXiBGx}_cgWEL_>d|vo&Yww<(Uj)AZgt zqo_O7t)0Wbkjq5Bhqnxea(JN)H$VXO8$D3e_R`~?#a@B_&j44&)eW?`-%Rz}N#<6-PwyW@>5C6t_cd9ZSky4XG+ylg=cj+ASO$I%; zx6#89kB#R}W-Jsvb7uml;8NufwXNOro>^n?!u6X%cJDZu94vG>646D~fD`mQ!_TFL zBzg}UZZR@*VY&`pOMz=E{~`FT2{s3+fgUZ?Zi>KBc!YTZ>NTYoAH-pT!~k@>MEB?6 zxdo27Vd* z@d9+XWH@<+5R+S-SHC62*KONNpDk~+yCAXqmG6qr!+(}pII>0e#KU6vI?!C;3ND>9 z7M=wX2G?r>V(hEDt${WTZ6t#%6sBQbJo$P3U(!;@^+=fLF?#jk@-T5KJ? z;y8u(Ebbg15uMGSgJ?n5x5Qr`xea0`?R3#d_a|6&dlT%&)QZEAaAOdeYyJ0#Prx9 z9%UDa?sXM<%?&hmQah(GQcvJ$$l`R^xh%wcefCnY%=pK1TGQ2Y`I_nnF6D-O0=)V` zkE>nwR(Y!46cZ?|t1O1ZQjrT)Qm_wn$OWnx*!WUQ{am{iwT&}!KW?AG7ogW}!@}96j*%=@RDQ$x1bB{`_^io=%QSm z$QrHaKZ1||)Alm>K{>KLr^F4SpI+a|YW1%NoL3JJq9z~7RExoLXU~PWVul5(UBBct z&E74fui8G5E(^WmpdA27*QjRV=*3uHxln5=^_?9gru?khP3D6SvwoGA&@3N>b}Cy4 z&d~KSOJls}75jLR=gPmNut*0JM2f^P(Y}(D%dJRX7Qq;&k4Ss|4DRf)NTN2eu1

+OTnGU%^4@smHBOEbWX)gYsF)) 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

scBf7xN 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

6zfMk67#-!rd~w=K*A3^`&chu8)+HINV` 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 - 8.92-2 -- Version bump in order to allow rebuilding with gcc-10. +* Mon Jan 20 2020 Nick Clifton - 9.01-1 +- Add clang plugin (experimental). * Fri Dec 06 2019 Nick Clifton - 8.92-1 - Have annocheck ignore notes with an end address of 0. diff --git a/sources b/sources index e0a7bb7..f21bc7f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-8.92.tar.xz) = f2a1266f00a7c454396e19befa06833a4b4b8d256598a1ffdbc209a5e36b856a84efa26abb269259e14af877e8ca26a220d91f0cb863b13e9026c4a7bb68d447 +SHA512 (annobin-9.01.tar.xz) = 60db676559ddb280739cc1e269f143ac8a86a53424af18101a565bcb5945540161473499df6b733e30f896684e0ef373f0e01bea4dd017df4c32ea31a5de4d0b From 3755b69778280357effa0024ac2568fd801d6df1 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 24 Jan 2020 10:54:37 +0000 Subject: [PATCH 017/459] NVR bumo --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 2a2a284..e639819 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Binary annotation plugin for GCC Version: 9.01 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ URL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -221,6 +221,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Jan 20 2020 Nick Clifton - 9.01-2 +- Rebuild againt latest gcc-10. + * Mon Jan 20 2020 Nick Clifton - 9.01-1 - Add clang plugin (experimental). From 23baf8b1d3f18dd88a3a4b2b52cb660309b5ad8f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 24 Jan 2020 11:19:26 +0000 Subject: [PATCH 018/459] Disable annobin whilst building annobin - in order to allow it to be rebuilt --- annobin.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/annobin.spec b/annobin.spec index e639819..2cbbecc 100644 --- a/annobin.spec +++ b/annobin.spec @@ -35,6 +35,9 @@ URL: https://fedoraproject.org/wiki/Toolchain/Watermark # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 +# Enable this if it is necessary to build annobin without using annobin. +%undefine _annotated_build + #--------------------------------------------------------------------------------- Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz # For the latest sources use: git clone git://sourceware.org/git/annobin.git From b22155004cdd0a04aa5a2006333ef3bd46d24c1f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 28 Jan 2020 11:36:19 +0000 Subject: [PATCH 019/459] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 2cbbecc..e278e0b 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Binary annotation plugin for GCC Version: 9.01 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ URL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -224,6 +224,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Jan 28 2020 Fedora Release Engineering - 9.01-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Mon Jan 20 2020 Nick Clifton - 9.01-2 - Rebuild againt latest gcc-10. From 3317ae10db545cbb449fe8de964912a053e74218 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 30 Jan 2020 16:46:33 +0000 Subject: [PATCH 020/459] Add support for debuginfod (disabled by default) --- .gitignore | 1 + annobin.spec | 26 ++++++++++++++++++++++---- sources | 2 +- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index f883c67..15a611f 100644 --- a/.gitignore +++ b/.gitignore @@ -118,3 +118,4 @@ /annobin-8.91.tar.xz /annobin-8.92.tar.xz /annobin-9.01.tar.xz +/annobin-9.03.tar.xz diff --git a/annobin.spec b/annobin.spec index e278e0b..d53e14a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,9 +1,8 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 9.01 -Release: 3%{?dist} - +Version: 9.03 +Release: 1%{?dist} License: GPLv3+ URL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -30,13 +29,20 @@ URL: https://fedoraproject.org/wiki/Toolchain/Watermark # Use "--without annocheck" to disable the installation of the annocheck program. %bcond_without annocheck +# Use "--with debuginfod" to enable support for debuginfod in the annocheck program. +%bcond_with debuginfod + # Set this to zero to disable the requirement for a specific version of gcc. # This should only be needed if there is some kind of problem with the version # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 # Enable this if it is necessary to build annobin without using annobin. -%undefine _annotated_build +# This is useful for example if the annobin plugin fails because of a change +# in the size of gcc's global_options structure. In order to rebuild annobin +# against the changed gcc it is necessary to disable annobin as otherwise +# the configuration step of annobin's build will fail. +# %%undefine _annotated_build #--------------------------------------------------------------------------------- Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz @@ -127,6 +133,9 @@ of the resulting files. Summary: A tool for checking the security hardening status of binaries BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel +%if %{with debuginfod} +BuildRequires: libdebuginfod +%endif %description annocheck Installs the annocheck program which uses the notes generated by annobin to @@ -162,7 +171,13 @@ touch doc/annobin.info #--------------------------------------------------------------------------------- %build + +%if %{with debuginfod} +%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_PLUGIN_DIR} --with-debuginfod +%else %configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_PLUGIN_DIR} +%endif + %make_build # Rebuild the plugin, this time using the plugin itself! This # ensures that the plugin works, and that it contains annotations @@ -224,6 +239,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Jan 30 2020 Nick Clifton - 9.03-1 +- Add debuginfod support. + * Tue Jan 28 2020 Fedora Release Engineering - 9.01-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild diff --git a/sources b/sources index f21bc7f..9c9cb16 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.01.tar.xz) = 60db676559ddb280739cc1e269f143ac8a86a53424af18101a565bcb5945540161473499df6b733e30f896684e0ef373f0e01bea4dd017df4c32ea31a5de4d0b +SHA512 (annobin-9.03.tar.xz) = 3b2bbadcc700abaf9a927bc07fb7b9f577590b64025ce182a179b523bc033ab5ef8060ca04c6796ed672c80a5f7d92de81d429e565096b8791cddb7142110cec From 30290e7bd6d0734a4a2d4615a107e45f5ee58b2a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 30 Jan 2020 17:18:38 +0000 Subject: [PATCH 021/459] Correct the build requirement for building with debuginfod support. --- annobin.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index d53e14a..ff60d36 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Binary annotation plugin for GCC Version: 9.03 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ URL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -134,7 +134,7 @@ Summary: A tool for checking the security hardening status of binaries BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel %if %{with debuginfod} -BuildRequires: libdebuginfod +BuildRequires: elfutils-debuginfod-client-devel %endif %description annocheck @@ -239,6 +239,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Jan 30 2020 Nick Clifton - 9.03-2 +- Correct the build requirement for building with debuginfod support. + * Thu Jan 30 2020 Nick Clifton - 9.03-1 - Add debuginfod support. From 4c77fc39e7923348cd89bb2423875dc50e848331 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 31 Jan 2020 12:05:43 +0000 Subject: [PATCH 022/459] Fix debuginfod test. --- annobin.spec | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index ff60d36..1cb8609 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 9.03 -Release: 2%{?dist} +Version: 9.04 +Release: 1%{?dist} License: GPLv3+ URL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -29,7 +29,9 @@ URL: https://fedoraproject.org/wiki/Toolchain/Watermark # Use "--without annocheck" to disable the installation of the annocheck program. %bcond_without annocheck -# Use "--with debuginfod" to enable support for debuginfod in the annocheck program. +# Use "--with debuginfod" to force support for debuginfod to be compiled into +# the annocheck program. By default the configure script will check for +# availablilty at build time, but this might not match the run time situation. %bcond_with debuginfod # Set this to zero to disable the requirement for a specific version of gcc. @@ -239,6 +241,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Jan 31 2020 Nick Clifton - 9.04-1 +- Fix debuginfod test. + * Thu Jan 30 2020 Nick Clifton - 9.03-2 - Correct the build requirement for building with debuginfod support. From dba13c4fd1a30e8a8725bf114cdfa396e7741192 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 31 Jan 2020 12:10:52 +0000 Subject: [PATCH 023/459] oops - forgot to add the new sources --- .gitignore | 1 + sources | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 15a611f..65b1cf6 100644 --- a/.gitignore +++ b/.gitignore @@ -119,3 +119,4 @@ /annobin-8.92.tar.xz /annobin-9.01.tar.xz /annobin-9.03.tar.xz +/annobin-9.04.tar.xz diff --git a/sources b/sources index 9c9cb16..6b27575 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.03.tar.xz) = 3b2bbadcc700abaf9a927bc07fb7b9f577590b64025ce182a179b523bc033ab5ef8060ca04c6796ed672c80a5f7d92de81d429e565096b8791cddb7142110cec +SHA512 (annobin-9.04.tar.xz) = 6c3eae4f6b67dff1bfd3756f4e007d9b1f893b71cab72b7d00ed4fc093bab395af9b64c265af794469623dfab59892eb1e751b67dc001ff4daae208e2ed9bf5a From 2b9645b749dfaced48b957d1ab845296af565143 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 31 Jan 2020 13:32:01 +0000 Subject: [PATCH 024/459] Add configure option to suppress building annocheck. --- .gitignore | 1 + annobin.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 65b1cf6..3cd0249 100644 --- a/.gitignore +++ b/.gitignore @@ -120,3 +120,4 @@ /annobin-9.01.tar.xz /annobin-9.03.tar.xz /annobin-9.04.tar.xz +/annobin-9.05.tar.xz diff --git a/annobin.spec b/annobin.spec index 1cb8609..86e776c 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 9.04 +Version: 9.05 Release: 1%{?dist} License: GPLv3+ URL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -241,6 +241,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Jan 31 2020 Nick Clifton - 9.05-1 +- Add configure option to suppress building annocheck. + * Fri Jan 31 2020 Nick Clifton - 9.04-1 - Fix debuginfod test. diff --git a/sources b/sources index 6b27575..f19d2e3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.04.tar.xz) = 6c3eae4f6b67dff1bfd3756f4e007d9b1f893b71cab72b7d00ed4fc093bab395af9b64c265af794469623dfab59892eb1e751b67dc001ff4daae208e2ed9bf5a +SHA512 (annobin-9.05.tar.xz) = 415a63499269acd1238b31808c9295ecb9d403cf58114784b5ef2bbb9bda3757eda814ac8a13688933d0e897e50f6b1c0c8c551c5d000cfa1e8ddbe73fd664bf From eb569a62e114337a0feebaa51136a00f5b33e306 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 11 Feb 2020 15:30:09 +0000 Subject: [PATCH 025/459] Annobin: Note when stack clash notes are generated. Annocheck: Handle multiple builder IDs in the .comment section. --- .gitignore | 1 + annobin-9.01.tar.xz | Bin 460496 -> 0 bytes annobin.spec | 6 +++++- sources | 2 +- 4 files changed, 7 insertions(+), 2 deletions(-) delete mode 100644 annobin-9.01.tar.xz diff --git a/.gitignore b/.gitignore index 3cd0249..9b973c8 100644 --- a/.gitignore +++ b/.gitignore @@ -121,3 +121,4 @@ /annobin-9.03.tar.xz /annobin-9.04.tar.xz /annobin-9.05.tar.xz +/annobin-9.06.tar.xz diff --git a/annobin-9.01.tar.xz b/annobin-9.01.tar.xz deleted file mode 100644 index 8854e2575a50a64daf72da0a6dcf611d14687038..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 460496 zcmV+aKLEh}H+ooF000E$*0e?f03iV!0000G&sfamOds$6T>vnftlnc(k2BB`A7?ZqwvP~5f z*C?^wIv(C)*GXCv4o#@DUtrRZSHt;hN8xAmoB?_zHcQWwh@frw`j|am!};ADHs$2e zq_ZU57v4?Mslo@y9BBhOI%(lF+SQvE#g4&|Ue#}H#^9pM7qN|cr>BJvnS&qYqHVPn zr}JM2`m)3qqQdO_yn^)VzKf(&`KQU1|871#*w!nEFB5Ow0Y==n;8FbUEm-SX)c@>0 z$ZG4K-9qqlw=*7G7pr&yi<_~GRwo*6kKjk+2@W6odQBXeNMub9LqvXQ%aL;2@r;jB zYBx56nNNooL~YiAYj)6cRBdD0vgInLsfOq=yAcFK z6lk~9ffI1|E32b9hQ$V8W2|nB_w=d5E~JR=Y!9yM`$Tj(#Io8^Y&ATu38w(>gQRhF zEIx5F;mO|n>yy`)Tha2QO%&N(95uC5?b>#qd|#KbqM*jf?t?{8Zd|AtWYUPzB%sr! zAyfl~h6~=hV>?da*8wGNbAc`Oyfq=xQp-IlqpT{pMm1k2}c z9&Z(sQ=!cPrGKpnUt}G^@y#3rYHFJEF08EvkLe(&)&N1v)+4 zp*4vk>~wYb0jo((a1&+~36PZ+Q2O5!jH zhBa?|LUd~#x)210b@3SlabSt%@~9}yRl!{AwE4t%@5=uqDjQ?Wfj(7LcOXiBGx}_cgWEL_>d|vo&Yww<(Uj)AZgt zqo_O7t)0Wbkjq5Bhqnxea(JN)H$VXO8$D3e_R`~?#a@B_&j44&)eW?`-%Rz}N#<6-PwyW@>5C6t_cd9ZSky4XG+ylg=cj+ASO$I%; zx6#89kB#R}W-Jsvb7uml;8NufwXNOro>^n?!u6X%cJDZu94vG>646D~fD`mQ!_TFL zBzg}UZZR@*VY&`pOMz=E{~`FT2{s3+fgUZ?Zi>KBc!YTZ>NTYoAH-pT!~k@>MEB?6 zxdo27Vd* z@d9+XWH@<+5R+S-SHC62*KONNpDk~+yCAXqmG6qr!+(}pII>0e#KU6vI?!C;3ND>9 z7M=wX2G?r>V(hEDt${WTZ6t#%6sBQbJo$P3U(!;@^+=fLF?#jk@-T5KJ? z;y8u(Ebbg15uMGSgJ?n5x5Qr`xea0`?R3#d_a|6&dlT%&)QZEAaAOdeYyJ0#Prx9 z9%UDa?sXM<%?&hmQah(GQcvJ$$l`R^xh%wcefCnY%=pK1TGQ2Y`I_nnF6D-O0=)V` zkE>nwR(Y!46cZ?|t1O1ZQjrT)Qm_wn$OWnx*!WUQ{am{iwT&}!KW?AG7ogW}!@}96j*%=@RDQ$x1bB{`_^io=%QSm z$QrHaKZ1||)Alm>K{>KLr^F4SpI+a|YW1%NoL3JJq9z~7RExoLXU~PWVul5(UBBct z&E74fui8G5E(^WmpdA27*QjRV=*3uHxln5=^_?9gru?khP3D6SvwoGA&@3N>b}Cy4 z&d~KSOJls}75jLR=gPmNut*0JM2f^P(Y}(D%dJRX7Qq;&k4Ss|4DRf)NTN2eu1

+OTnGU%^4@smHBOEbWX)gYsF)) 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

scBf7xN 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

6zfMk67#-!rd~w=K*A3^`&chu8)+HINV` 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 - 9.06-1 +- Annobin: Note when stack clash notes are generated. +- Annocheck: Handle multiple builder IDs in the .comment section. + * Fri Jan 31 2020 Nick Clifton - 9.05-1 - Add configure option to suppress building annocheck. diff --git a/sources b/sources index f19d2e3..6c8344c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.05.tar.xz) = 415a63499269acd1238b31808c9295ecb9d403cf58114784b5ef2bbb9bda3757eda814ac8a13688933d0e897e50f6b1c0c8c551c5d000cfa1e8ddbe73fd664bf +SHA512 (annobin-9.06.tar.xz) = 72bf0675de0dd28908526cf2c7ef400dda21538f94e80d9211711b73d1d876ab7519f6c848867f873e207a647700055e6a4b1cec46ac84353f33d869aebf6a53 From 1fa49e66f8540c57f045b0b72c0b41f045d2fb55 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 14 Feb 2020 13:48:28 +0000 Subject: [PATCH 026/459] Annobin: Add checks of the exact location of the examined switches. --- .gitignore | 1 + annobin.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 9b973c8..c5908ef 100644 --- a/.gitignore +++ b/.gitignore @@ -122,3 +122,4 @@ /annobin-9.04.tar.xz /annobin-9.05.tar.xz /annobin-9.06.tar.xz +/annobin-9.07.tar.xz diff --git a/annobin.spec b/annobin.spec index c85a3a9..3f3a8a0 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 9.06 +Version: 9.07 Release: 1%{?dist} License: GPLv3+ URL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -241,6 +241,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Feb 14 2020 Nick Clifton - 9.07-1 +- Annobin: Add checks of the exact location of the examined switches. + * Tue Feb 11 2020 Nick Clifton - 9.06-1 - Annobin: Note when stack clash notes are generated. - Annocheck: Handle multiple builder IDs in the .comment section. diff --git a/sources b/sources index 6c8344c..1c1222c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.06.tar.xz) = 72bf0675de0dd28908526cf2c7ef400dda21538f94e80d9211711b73d1d876ab7519f6c848867f873e207a647700055e6a4b1cec46ac84353f33d869aebf6a53 +SHA512 (annobin-9.07.tar.xz) = 3685aec6e61d5cc73df329d53fb0b9de2e541af391361a6b54538ddb51c63de1988f098bc28f67544e0eaa57f2c75261312b71add8271cb112ae9aa103891eef From e8f56c0bdb87e88ee30c81d6809993359226255f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 17 Feb 2020 17:21:55 +0000 Subject: [PATCH 027/459] Annocheck: Fix error printing out the version number. --- .gitignore | 1 + annobin.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index c5908ef..003a11d 100644 --- a/.gitignore +++ b/.gitignore @@ -123,3 +123,4 @@ /annobin-9.05.tar.xz /annobin-9.06.tar.xz /annobin-9.07.tar.xz +/annobin-9.08.tar.xz diff --git a/annobin.spec b/annobin.spec index 3f3a8a0..b2cb080 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Binary annotation plugin for GCC -Version: 9.07 +Version: 9.08 Release: 1%{?dist} License: GPLv3+ URL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -241,6 +241,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Feb 17 2020 Nick Clifton - 9.08-1 +- Annocheck: Fix error printing out the version number. + * Fri Feb 14 2020 Nick Clifton - 9.07-1 - Annobin: Add checks of the exact location of the examined switches. diff --git a/sources b/sources index 1c1222c..9431def 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.07.tar.xz) = 3685aec6e61d5cc73df329d53fb0b9de2e541af391361a6b54538ddb51c63de1988f098bc28f67544e0eaa57f2c75261312b71add8271cb112ae9aa103891eef +SHA512 (annobin-9.08.tar.xz) = 85ee3d5026b0cdff8df6f90af3ae97f2466b3dfbd7c2a5c59456970a025fcc7bca436432766335f2a5a9b8a49d46901226249c102766f068b6c5ac8b67e5baab From f7f58a9fb984004e82cc53d4eb9128e3f233229d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 25 Feb 2020 15:50:15 +0000 Subject: [PATCH 028/459] Add ability to build clang plugin (disabled by default). --- .gitignore | 1 + annobin.spec | 83 ++++++++++++++++++++++++++++++++++++---------------- sources | 2 +- 3 files changed, 59 insertions(+), 27 deletions(-) diff --git a/.gitignore b/.gitignore index 003a11d..9758347 100644 --- a/.gitignore +++ b/.gitignore @@ -124,3 +124,4 @@ /annobin-9.06.tar.xz /annobin-9.07.tar.xz /annobin-9.08.tar.xz +/annobin-9.09.tar.xz diff --git a/annobin.spec b/annobin.spec index b2cb080..8a71195 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,12 +1,36 @@ Name: annobin -Summary: Binary annotation plugin for GCC -Version: 9.08 +Summary: Binary annotations and discovery +Version: 9.09 Release: 1%{?dist} License: GPLv3+ -URL: https://fedoraproject.org/wiki/Toolchain/Watermark +# ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com +#--------------------------------------------------------------------------------- + +# Use "--without tests" to disable the testsuite. The default is to run them. +%bcond_without tests + +# Use "--without annocheck" to disable the installation of the annocheck program. +# The default is to run the tests. +%bcond_without annocheck + +# Use "--with debuginfod" to force support for debuginfod to be compiled into +# the annocheck program. By default the configure script will check for +# availablilty at build time, but this might not match the run time situation. +# FIXME: Add a --without debuginfod option to forcefully disable the configure +# time check for debuginfod support. +%bcond_with debuginfod + +# Use "--with clangplugin" to build the annobin plugin for clang. +# The default is not to build the plugin. +%bcond_with clangplugin + +# Set this to zero to disable the requirement for a specific version of gcc. +# This should only be needed if there is some kind of problem with the version +# checking logic or when building on RHEL-7 or earlier. +%global with_hard_gcc_version_requirement 1 # # Do not build the annobin plugin with annotation enabled. # # This is because if we are bootstrapping a new build environment we can have @@ -23,30 +47,8 @@ URL: https://fedoraproject.org/wiki/Toolchain/Watermark # # %%undefine _annotated_build -# Use "--without tests" to disable the testsuite. The default is to run them. -%bcond_without tests - -# Use "--without annocheck" to disable the installation of the annocheck program. -%bcond_without annocheck - -# Use "--with debuginfod" to force support for debuginfod to be compiled into -# the annocheck program. By default the configure script will check for -# availablilty at build time, but this might not match the run time situation. -%bcond_with debuginfod - -# Set this to zero to disable the requirement for a specific version of gcc. -# This should only be needed if there is some kind of problem with the version -# checking logic or when building on RHEL-7 or earlier. -%global with_hard_gcc_version_requirement 1 - -# Enable this if it is necessary to build annobin without using annobin. -# This is useful for example if the annobin plugin fails because of a change -# in the size of gcc's global_options structure. In order to rebuild annobin -# against the changed gcc it is necessary to disable annobin as otherwise -# the configuration step of annobin's build will fail. -# %%undefine _annotated_build - #--------------------------------------------------------------------------------- + Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz # For the latest sources use: git clone git://sourceware.org/git/annobin.git @@ -108,6 +110,9 @@ Requires: gcc %endif BuildRequires: gcc gcc-plugin-devel gcc-c++ +%if %{with clangplugin} +BuildRequires: clang clang-devel llvm llvm-devel +%endif %description Provides a plugin for GCC that records extra information in the files @@ -116,6 +121,10 @@ that it compiles. Note - the plugin is automatically enabled in gcc builds via flags provided by the redhat-rpm-macros package. +%if %{with clangplugin} +Note - the clang plugin has also been enabled. +%endif + #--------------------------------------------------------------------------------- %if %{with tests} @@ -150,6 +159,11 @@ hardening options. %global ANNOBIN_PLUGIN_DIR %(gcc --print-file-name=plugin) +%if %{with clangplugin} +# FIXME: This does not actually work - it returns the *gcc* plugin directory! +%global ANNOBIN_CLANG_PLUGIN_DIR %(clang --print-file-name=plugin) +%endif + #--------------------------------------------------------------------------------- %prep @@ -195,12 +209,23 @@ BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so -fplugin-arg-tmp_annobin-rename make -C plugin CXXFLAGS="%{optflags} $BUILD_FLAGS" rm %{_tmppath}/tmp_annobin.so +%if %{with clangplugin} +# FIXME: The symbolic link should not be needed. +ln -f -s ../annobin-global.h clang-plugin +make -C clang-plugin annobin.so +%endif + #--------------------------------------------------------------------------------- %install %make_install %{__rm} -f %{buildroot}%{_infodir}/dir +%if %{with clangplugin} +# FIXME: I do not know where clang installs its plugins... +# cp clang-plugin/annobin.so %{ANNOBIN_CLANG_PLUGIN_DIR} +%endif + #--------------------------------------------------------------------------------- %if %{with tests} @@ -231,6 +256,9 @@ fi %{_mandir}/man1/check-abi.1* %{_mandir}/man1/hardened.1* %{_mandir}/man1/run-on-binaries-in.1* +%if %{with clangplugin} +# %{ANNOBIN_CLANG_PLUGIN_DIR} +%endif %if %{with annocheck} %files annocheck @@ -241,6 +269,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Feb 25 2020 Nick Clifton - 9.09-1 +- Add ability to build clang plugin (disabled by default). + * Mon Feb 17 2020 Nick Clifton - 9.08-1 - Annocheck: Fix error printing out the version number. diff --git a/sources b/sources index 9431def..a571404 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.08.tar.xz) = 85ee3d5026b0cdff8df6f90af3ae97f2466b3dfbd7c2a5c59456970a025fcc7bca436432766335f2a5a9b8a49d46901226249c102766f068b6c5ac8b67e5baab +SHA512 (annobin-9.09.tar.xz) = 3353cab4cbb82ea89fdb9c28333d480edca8e3bea631cb0df1897d00fab3ae1aa33198f3362c7edc9da8cf4bf1a9c20415a4fb88dabfae45e0d537bb958ebe9e From 5d051cb7a7393af3d6685c2f16efed44a23f3aea Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 27 Feb 2020 12:42:53 +0000 Subject: [PATCH 029/459] Fix clang plugin to use hidden symbols. --- .gitignore | 1 + annobin.spec | 34 ++++++++++++++++++++++------------ sources | 2 +- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 9758347..93a76d3 100644 --- a/.gitignore +++ b/.gitignore @@ -125,3 +125,4 @@ /annobin-9.07.tar.xz /annobin-9.08.tar.xz /annobin-9.09.tar.xz +/annobin-9.10.tar.xz diff --git a/annobin.spec b/annobin.spec index 8a71195..ef0b49e 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin -Summary: Binary annotations and discovery -Version: 9.09 +Summary: Annotate and examine compiled binary files +Version: 9.10 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -122,7 +122,7 @@ Note - the plugin is automatically enabled in gcc builds via flags provided by the redhat-rpm-macros package. %if %{with clangplugin} -Note - the clang plugin has also been enabled. +Also provides a plugin for clang which performs a similar function. %endif #--------------------------------------------------------------------------------- @@ -157,11 +157,14 @@ hardening options. #--------------------------------------------------------------------------------- -%global ANNOBIN_PLUGIN_DIR %(gcc --print-file-name=plugin) +%global ANNOBIN_GCC_PLUGIN_DIR %(gcc --print-file-name=plugin) %if %{with clangplugin} -# FIXME: This does not actually work - it returns the *gcc* plugin directory! -%global ANNOBIN_CLANG_PLUGIN_DIR %(clang --print-file-name=plugin) +# FIXME: Clang does not appear to have an official plugin directory. +# Instead it just uses dlopen() with no pathname prefix. So we +# construct a (hopefully good) path and rely upon users of annobin +# knowing about this location. +%global ANNOBIN_CLANG_PLUGIN_DIR /usr/lib64/clang/%(clang --dumpversion)/lib %endif #--------------------------------------------------------------------------------- @@ -189,9 +192,9 @@ touch doc/annobin.info %build %if %{with debuginfod} -%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_PLUGIN_DIR} --with-debuginfod +%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR} --with-debuginfod %else -%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_PLUGIN_DIR} +%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR} %endif %make_build @@ -222,8 +225,7 @@ make -C clang-plugin annobin.so %{__rm} -f %{buildroot}%{_infodir}/dir %if %{with clangplugin} -# FIXME: I do not know where clang installs its plugins... -# cp clang-plugin/annobin.so %{ANNOBIN_CLANG_PLUGIN_DIR} +cp clang-plugin/annobin.so %{ANNOBIN_CLANG_PLUGIN_DIR} %endif #--------------------------------------------------------------------------------- @@ -236,12 +238,16 @@ make check if [ -f tests/test-suite.log ]; then cat tests/test-suite.log fi + +%if %{with clangplugin} +# FIXME: Add tests of the clang plugin. +%endif %endif #--------------------------------------------------------------------------------- %files -%{ANNOBIN_PLUGIN_DIR} +%{ANNOBIN_GCC_PLUGIN_DIR} %{_bindir}/built-by %{_bindir}/check-abi %{_bindir}/hardened @@ -256,8 +262,9 @@ fi %{_mandir}/man1/check-abi.1* %{_mandir}/man1/hardened.1* %{_mandir}/man1/run-on-binaries-in.1* + %if %{with clangplugin} -# %{ANNOBIN_CLANG_PLUGIN_DIR} +%{ANNOBIN_CLANG_PLUGIN_DIR} %endif %if %{with annocheck} @@ -269,6 +276,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Feb 27 2020 Nick Clifton - 9.10-1 +- Fix clang plugin to use hidden symbols. + * Tue Feb 25 2020 Nick Clifton - 9.09-1 - Add ability to build clang plugin (disabled by default). diff --git a/sources b/sources index a571404..cf4cd26 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.09.tar.xz) = 3353cab4cbb82ea89fdb9c28333d480edca8e3bea631cb0df1897d00fab3ae1aa33198f3362c7edc9da8cf4bf1a9c20415a4fb88dabfae45e0d537bb958ebe9e +SHA512 (annobin-9.10.tar.xz) = 4b091b3494b12ada210c2383174eb17dc53645105165e20a0a7b1e453decf0c0f280fc958e393e6863b871d519895524adcb24bafee3e46f7d51e55473347fe3 From cb98e5f903f408aa84037bfe94356e4fbf8ca182 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 28 Feb 2020 10:43:39 +0000 Subject: [PATCH 030/459] Fix infinite loop hangup in annocheck. Disable debuginfod support by default. Improve parsing of .comment section. --- .gitignore | 1 + annobin.spec | 7 ++++++- sources | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 93a76d3..c630a2c 100644 --- a/.gitignore +++ b/.gitignore @@ -126,3 +126,4 @@ /annobin-9.08.tar.xz /annobin-9.09.tar.xz /annobin-9.10.tar.xz +/annobin-9.11.tar.xz diff --git a/annobin.spec b/annobin.spec index ef0b49e..a4a6796 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.10 +Version: 9.11 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -276,6 +276,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Feb 28 2020 Nick Clifton - 9.11-1 +- Fix infinite loop hangup in annocheck. +- Disable debuginfod support by default. +- Improve parsing of .comment section. + * Thu Feb 27 2020 Nick Clifton - 9.10-1 - Fix clang plugin to use hidden symbols. diff --git a/sources b/sources index cf4cd26..8daeff0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.10.tar.xz) = 4b091b3494b12ada210c2383174eb17dc53645105165e20a0a7b1e453decf0c0f280fc958e393e6863b871d519895524adcb24bafee3e46f7d51e55473347fe3 +SHA512 (annobin-9.11.tar.xz) = 3ad9dbf639840de4dbea427c0c0a5e1df0da0fd2460dd025445c841aa71977d93ff4e78b63b9ffd3e762d33cd5902bde578fe36ae6b0c6555c7fe4f4f0604c30 From 09d5b50939395029966107c63d6f03147fc20998 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 4 Mar 2020 14:22:53 +0000 Subject: [PATCH 031/459] Improve builtby tool. Stop annocheck complaining about missing notes when the binary is not compiled by either gcc or clang. Skip the check of the ENTRY instruction for binaries not compiled by gcc or clang. --- .gitignore | 1 + annobin.spec | 7 ++++++- sources | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index c630a2c..c56b236 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,4 @@ /annobin-9.09.tar.xz /annobin-9.10.tar.xz /annobin-9.11.tar.xz +/annobin-9.12.tar.xz diff --git a/annobin.spec b/annobin.spec index a4a6796..079de0e 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.11 +Version: 9.12 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -276,6 +276,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Mar 04 2020 Nick Clifton - 9.12-1 +- Improve builtby tool. +- Stop annocheck complaining about missing notes when the binary is not compiled by either gcc or clang. +- Skip the check of the ENTRY instruction for binaries not compiled by gcc or clang. + * Fri Feb 28 2020 Nick Clifton - 9.11-1 - Fix infinite loop hangup in annocheck. - Disable debuginfod support by default. diff --git a/sources b/sources index 8daeff0..b55d8e1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.11.tar.xz) = 3ad9dbf639840de4dbea427c0c0a5e1df0da0fd2460dd025445c841aa71977d93ff4e78b63b9ffd3e762d33cd5902bde578fe36ae6b0c6555c7fe4f4f0604c30 +SHA512 (annobin-9.12.tar.xz) = cfe9d67ebf53816932310f1f686b4d94554506488c217870c5c440d2d1f8cb3a757f96c07e373540f2358c4e1adcf432b746c6936c237f7b44769993210bc8aa From 5770b9a0d82c5829e840bda5e2d5e4faf99ae9d7 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 4 Mar 2020 14:23:48 +0000 Subject: [PATCH 032/459] Add BZ number to changelog --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 079de0e..3ed25e5 100644 --- a/annobin.spec +++ b/annobin.spec @@ -279,7 +279,7 @@ fi * Wed Mar 04 2020 Nick Clifton - 9.12-1 - Improve builtby tool. - Stop annocheck complaining about missing notes when the binary is not compiled by either gcc or clang. -- Skip the check of the ENTRY instruction for binaries not compiled by gcc or clang. +- Skip the check of the ENTRY instruction for binaries not compiled by gcc or clang. (#1809656) * Fri Feb 28 2020 Nick Clifton - 9.11-1 - Fix infinite loop hangup in annocheck. From 1defc985fc525945e1d9c5114b2a322acb6ba1e5 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 12 Mar 2020 11:10:13 +0000 Subject: [PATCH 033/459] NVR bump to enable rebuild against updated gcc. Relates: #1810941 --- annobin.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 3ed25e5..6ba7561 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.12 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -10,10 +10,10 @@ License: GPLv3+ #--------------------------------------------------------------------------------- # Use "--without tests" to disable the testsuite. The default is to run them. +# The default is to run the tests. %bcond_without tests # Use "--without annocheck" to disable the installation of the annocheck program. -# The default is to run the tests. %bcond_without annocheck # Use "--with debuginfod" to force support for debuginfod to be compiled into @@ -276,6 +276,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Mar 12 2020 Nick Clifton - 9.12-2 +- NVR bump to enable rebuild against updated gcc. (#1810941) + * Wed Mar 04 2020 Nick Clifton - 9.12-1 - Improve builtby tool. - Stop annocheck complaining about missing notes when the binary is not compiled by either gcc or clang. From 1a0dc72791594a369621a5910b8dfd878a110646 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 12 Mar 2020 11:15:09 +0000 Subject: [PATCH 034/459] Disable annotations whilst rebuilding. --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 6ba7561..6fd7c8b 100644 --- a/annobin.spec +++ b/annobin.spec @@ -45,7 +45,7 @@ License: GPLv3+ # The problem should now only arise when rebasing to a new major version # of gcc, in which case the undefine below can be temporarily reinstated. # -# %%undefine _annotated_build +%undefine _annotated_build #--------------------------------------------------------------------------------- From 46ef9ab08deef1347736ae5dc2816238c50e4d9a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 12 Mar 2020 11:24:42 +0000 Subject: [PATCH 035/459] And again, this time with annotation enabled. Related: #1810941 --- annobin.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 6fd7c8b..e733451 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.12 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -45,7 +45,7 @@ License: GPLv3+ # The problem should now only arise when rebasing to a new major version # of gcc, in which case the undefine below can be temporarily reinstated. # -%undefine _annotated_build +# %%undefine _annotated_build #--------------------------------------------------------------------------------- @@ -276,6 +276,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Mar 12 2020 Nick Clifton - 9.12-3 +- And again, this time with annotation enabled. (#1810941) + * Thu Mar 12 2020 Nick Clifton - 9.12-2 - NVR bump to enable rebuild against updated gcc. (#1810941) From fd8169aaeeb95b042a153d3070de8fe4fde5bcc1 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 12 Mar 2020 16:29:39 +0000 Subject: [PATCH 036/459] Rename gcc plugin directory to gcc-plugin. Stop annocheck from complaining about missing options when the binary has been built in a mixed environment. --- .gitignore | 1 + annobin.spec | 16 ++++++++++------ sources | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index c56b236..9afb906 100644 --- a/.gitignore +++ b/.gitignore @@ -128,3 +128,4 @@ /annobin-9.10.tar.xz /annobin-9.11.tar.xz /annobin-9.12.tar.xz +/annobin-9.13.tar.xz diff --git a/annobin.spec b/annobin.spec index e733451..e748016 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.12 -Release: 3%{?dist} +Version: 9.13 +Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -182,7 +182,7 @@ echo "Requires: (gcc >= %{gcc_major} with gcc < %{gcc_next})" # The plugin has to be configured with the same arcane configure # scripts used by gcc. Hence we must not allow the Fedora build # system to regenerate any of the configure files. -touch aclocal.m4 plugin/config.h.in +touch aclocal.m4 gcc-plugin/config.h.in touch configure */configure Makefile.in */Makefile.in # Similarly we do not want to rebuild the documentation. touch doc/annobin.info @@ -204,12 +204,12 @@ touch doc/annobin.info # double annotations in it. (If the build system enables annotations # for plugins by default). I have not tested this yet, but I think # that it should be OK. -cp plugin/.libs/annobin.so.0.0.0 %{_tmppath}/tmp_annobin.so -make -C plugin clean +cp gcc-plugin/.libs/annobin.so.0.0.0 %{_tmppath}/tmp_annobin.so +make -C gcc-plugin clean BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so -fplugin-arg-tmp_annobin-rename" # If building on RHEL7, enable the next option as the .attach_to_group assembler pseudo op is not available in the assembler. # BUILD_FLAGS="$BUILD_FLAGS -fplugin-arg-tmp_annobin-no-attach" -make -C plugin CXXFLAGS="%{optflags} $BUILD_FLAGS" +make -C gcc-plugin CXXFLAGS="%{optflags} $BUILD_FLAGS" rm %{_tmppath}/tmp_annobin.so %if %{with clangplugin} @@ -276,6 +276,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Mar 12 2020 Nick Clifton - 9.13-1 +- Rename gcc plugin directory to gcc-plugin. +- Stop annocheck from complaining about missing options when the binary has been built in a mixed environment. + * Thu Mar 12 2020 Nick Clifton - 9.12-3 - And again, this time with annotation enabled. (#1810941) diff --git a/sources b/sources index b55d8e1..db83a78 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.12.tar.xz) = cfe9d67ebf53816932310f1f686b4d94554506488c217870c5c440d2d1f8cb3a757f96c07e373540f2358c4e1adcf432b746c6936c237f7b44769993210bc8aa +SHA512 (annobin-9.13.tar.xz) = e5f989f0b7e9a457a25c2fae68c5ec465fe089cc4983d0249d3c87a0ff3adf1a00f66bfd330235810387be2fb7484bb69d0c01c45d5cf9673490e829d4c8e737 From b1078c0c215d73a25459555e6dda9fbf3ca127b8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 26 Mar 2020 12:03:20 +0000 Subject: [PATCH 037/459] NVR bump to allow rebuild against new gcc --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index e748016..1ac48b1 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.13 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -276,6 +276,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Mar 26 2020 Nick Clifton - 9.13-2 +- NVR bump to allow rebuilding against new gcc. + * Thu Mar 12 2020 Nick Clifton - 9.13-1 - Rename gcc plugin directory to gcc-plugin. - Stop annocheck from complaining about missing options when the binary has been built in a mixed environment. From ba9486d50e254495ca90ae4ddb66947fd9b6cbce Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 26 Mar 2020 12:08:28 +0000 Subject: [PATCH 038/459] Suppress using annobin during build (temporary) --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 1ac48b1..dba8e99 100644 --- a/annobin.spec +++ b/annobin.spec @@ -45,7 +45,7 @@ License: GPLv3+ # The problem should now only arise when rebasing to a new major version # of gcc, in which case the undefine below can be temporarily reinstated. # -# %%undefine _annotated_build +%undefine _annotated_build #--------------------------------------------------------------------------------- From 25d4740c92ac32531fa0cd0838eb43e493a8a981 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 26 Mar 2020 15:46:44 +0000 Subject: [PATCH 039/459] Use offsets stored in gcc's cl_option structure to access the global_options array, thus removing the need to check for changes in the size of this structure. --- .gitignore | 1 + annobin.spec | 9 ++++++--- sources | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 9afb906..6337f32 100644 --- a/.gitignore +++ b/.gitignore @@ -129,3 +129,4 @@ /annobin-9.11.tar.xz /annobin-9.12.tar.xz /annobin-9.13.tar.xz +/annobin-9.14.tar.xz diff --git a/annobin.spec b/annobin.spec index dba8e99..ba6486d 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.13 -Release: 2%{?dist} +Version: 9.14 +Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -45,7 +45,7 @@ License: GPLv3+ # The problem should now only arise when rebasing to a new major version # of gcc, in which case the undefine below can be temporarily reinstated. # -%undefine _annotated_build +# %%undefine _annotated_build #--------------------------------------------------------------------------------- @@ -276,6 +276,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Mar 26 2020 Nick Clifton - 9.14-1 +- Use offsets stored in gcc's cl_option structure to access the global_options array, thus removing the need to check for changes in the size of this structure. + * Thu Mar 26 2020 Nick Clifton - 9.13-2 - NVR bump to allow rebuilding against new gcc. diff --git a/sources b/sources index db83a78..717d46c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.13.tar.xz) = e5f989f0b7e9a457a25c2fae68c5ec465fe089cc4983d0249d3c87a0ff3adf1a00f66bfd330235810387be2fb7484bb69d0c01c45d5cf9673490e829d4c8e737 +SHA512 (annobin-9.14.tar.xz) = 39d2b6d67ce6303bf375b157c04dc58a46cba3467f8003f50892caffa8d7c8e4f3fddbf5f09468aa29b05fc7deb7a7610a153a84e0d6d3b10bd04f9e990eb1c6 From 82024ae45f253dbc0acc696d8006ec8ad4a7ab22 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 27 Mar 2020 08:58:02 +0000 Subject: [PATCH 040/459] Add some debugging --- .gitignore | 1 + annobin.spec | 2 +- sources | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 6337f32..86c08a3 100644 --- a/.gitignore +++ b/.gitignore @@ -130,3 +130,4 @@ /annobin-9.12.tar.xz /annobin-9.13.tar.xz /annobin-9.14.tar.xz +/annobin-9.15.tar.xz diff --git a/annobin.spec b/annobin.spec index ba6486d..84b2d78 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.14 +Version: 9.15 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark diff --git a/sources b/sources index 717d46c..599d38e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.14.tar.xz) = 39d2b6d67ce6303bf375b157c04dc58a46cba3467f8003f50892caffa8d7c8e4f3fddbf5f09468aa29b05fc7deb7a7610a153a84e0d6d3b10bd04f9e990eb1c6 +SHA512 (annobin-9.15.tar.xz) = e71d10befa3782ac070ae5d5a8f87274c891298f745cf9ce45cfde257692c3826e84c2f6a7d175becaa9d50ce061ea3cc32ccfcaa70d782733f8b7ec88cf9790 From dcc513660a7d36cedd604cbb679a6778baf6c860 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 27 Mar 2020 09:53:24 +0000 Subject: [PATCH 041/459] Annobin: Fix access to the -flto and -fsanitize flags. --- .gitignore | 1 + annobin.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 86c08a3..0b0637a 100644 --- a/.gitignore +++ b/.gitignore @@ -131,3 +131,4 @@ /annobin-9.13.tar.xz /annobin-9.14.tar.xz /annobin-9.15.tar.xz +/annobin-9.16.tar.xz diff --git a/annobin.spec b/annobin.spec index 84b2d78..62ec0ed 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.15 +Version: 9.16 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -276,8 +276,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Mar 27 2020 Nick Clifton - 9.16-1 +- Annobin: Fix access to the -flto and -fsanitize flags. + * Thu Mar 26 2020 Nick Clifton - 9.14-1 -- Use offsets stored in gcc's cl_option structure to access the global_options array, thus removing the need to check for changes in the size of this structure. +- Annobin: Use offsets stored in gcc's cl_option structure to access the global_options array, thus removing the need to check for changes in the size of this structure. * Thu Mar 26 2020 Nick Clifton - 9.13-2 - NVR bump to allow rebuilding against new gcc. diff --git a/sources b/sources index 599d38e..ca984f6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.15.tar.xz) = e71d10befa3782ac070ae5d5a8f87274c891298f745cf9ce45cfde257692c3826e84c2f6a7d175becaa9d50ce061ea3cc32ccfcaa70d782733f8b7ec88cf9790 +SHA512 (annobin-9.16.tar.xz) = 8de941e4db9f355d7584ed97d524dcb021ff14375a2d79ee4b112d3e6a308bd9c6f5bdacab38f40fc94ca0f7f895aa41dc98e0dea772561028084c7c79fbda39 From dcdc0af39b84d55b7ca1b9756dbaeeb6c02120c8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 30 Mar 2020 17:13:30 +0100 Subject: [PATCH 042/459] Annocheck: Fix a division by zero error when parsing GO binaries. Resolves: #1818863 --- .gitignore | 1 + annobin.spec | 11 +++++++---- sources | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 0b0637a..481eb2e 100644 --- a/.gitignore +++ b/.gitignore @@ -132,3 +132,4 @@ /annobin-9.14.tar.xz /annobin-9.15.tar.xz /annobin-9.16.tar.xz +/annobin-9.18.tar.xz diff --git a/annobin.spec b/annobin.spec index 62ec0ed..bf4b549 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.16 +Version: 9.18 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -175,7 +175,7 @@ if [ -z "%{gcc_vr}" ]; then exit 1 fi -echo "Requires: (gcc >= %{gcc_major} with gcc < %{gcc_next})" +echo "Requires: (gcc >= %{gcc_major} and gcc < %{gcc_next})" %autosetup -p1 @@ -192,9 +192,9 @@ touch doc/annobin.info %build %if %{with debuginfod} -%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR} --with-debuginfod +%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR} --with-debuginfod || cat config.log %else -%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR} +%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR} || cat config.log %endif %make_build @@ -276,6 +276,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Mar 30 2020 Nick Clifton - 9.18-1 +- Annocheck: Fix a division by zero error when parsing GO binaries. (#1818863) + * Fri Mar 27 2020 Nick Clifton - 9.16-1 - Annobin: Fix access to the -flto and -fsanitize flags. diff --git a/sources b/sources index ca984f6..9314557 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.16.tar.xz) = 8de941e4db9f355d7584ed97d524dcb021ff14375a2d79ee4b112d3e6a308bd9c6f5bdacab38f40fc94ca0f7f895aa41dc98e0dea772561028084c7c79fbda39 +SHA512 (annobin-9.18.tar.xz) = cd7b19ffde8dcab6bcf75e997d743ccbbd3bcd17690061cb1a2ff05651bfbb43b37df408b6efc4e683d52ae5654dfaf23b56e1c3c58928759610576afdcd9346 From ec93f17ffa8228232d4a598aedd975b793507b52 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 1 Apr 2020 14:21:23 +0100 Subject: [PATCH 043/459] Annobin: If option name mismatch occurs, seach for the real option. Resolves: #1817452 --- .gitignore | 1 + annobin.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 481eb2e..4ce0ab7 100644 --- a/.gitignore +++ b/.gitignore @@ -133,3 +133,4 @@ /annobin-9.15.tar.xz /annobin-9.16.tar.xz /annobin-9.18.tar.xz +/annobin-9.19.tar.xz diff --git a/annobin.spec b/annobin.spec index bf4b549..1bc327c 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.18 +Version: 9.19 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -276,6 +276,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Apr 01 2020 Nick Clifton - 9.19-1 +- Annobin: If option name mismatch occurs, seach for the real option. (#1817452) + * Mon Mar 30 2020 Nick Clifton - 9.18-1 - Annocheck: Fix a division by zero error when parsing GO binaries. (#1818863) diff --git a/sources b/sources index 9314557..14c198d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.18.tar.xz) = cd7b19ffde8dcab6bcf75e997d743ccbbd3bcd17690061cb1a2ff05651bfbb43b37df408b6efc4e683d52ae5654dfaf23b56e1c3c58928759610576afdcd9346 +SHA512 (annobin-9.19.tar.xz) = 5fbedd42123f1c7ff73a3bd4afca3941cfcc702bc49e2de7b32548badd2f06cd0c69abea676fc11fb96c6e0ccdb94bbe9e445bbc6a0c4866d6353280cfc4248b From 459acd6cb6d8d7fdcc6bc3a571ae67fc15873e4b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 16 Apr 2020 16:29:42 +0100 Subject: [PATCH 044/459] Annocheck: Detect Fortran compiled programs. (#1824393) --- .gitignore | 1 + annobin.spec | 9 +++++---- sources | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 4ce0ab7..3172bd9 100644 --- a/.gitignore +++ b/.gitignore @@ -134,3 +134,4 @@ /annobin-9.16.tar.xz /annobin-9.18.tar.xz /annobin-9.19.tar.xz +/annobin-9.20.tar.xz diff --git a/annobin.spec b/annobin.spec index 1bc327c..771c36e 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.19 +Version: 9.20 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -9,8 +9,7 @@ License: GPLv3+ #--------------------------------------------------------------------------------- -# Use "--without tests" to disable the testsuite. The default is to run them. -# The default is to run the tests. +# Use "--without tests" to disable the testsuite. %bcond_without tests # Use "--without annocheck" to disable the installation of the annocheck program. @@ -24,7 +23,6 @@ License: GPLv3+ %bcond_with debuginfod # Use "--with clangplugin" to build the annobin plugin for clang. -# The default is not to build the plugin. %bcond_with clangplugin # Set this to zero to disable the requirement for a specific version of gcc. @@ -276,6 +274,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Apr 16 2020 Nick Clifton - 9.20-1 +- Annocheck: Detect Fortran compiled programs. (#1824393) + * Wed Apr 01 2020 Nick Clifton - 9.19-1 - Annobin: If option name mismatch occurs, seach for the real option. (#1817452) diff --git a/sources b/sources index 14c198d..4ba60fc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.19.tar.xz) = 5fbedd42123f1c7ff73a3bd4afca3941cfcc702bc49e2de7b32548badd2f06cd0c69abea676fc11fb96c6e0ccdb94bbe9e445bbc6a0c4866d6353280cfc4248b +SHA512 (annobin-9.20.tar.xz) = 6cf4593da7eae3320c18d99df4580ad9bc25f1e275b8534510432246442c2e21cd11b75af4a682167e7f2068008a6a51012b8d472740c70d1c5ccd47a1dc7b3c From 225ffdc72211beec438d81d918e4b39476af75b3 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 22 Apr 2020 13:01:20 +0100 Subject: [PATCH 045/459] Annobin: Fall back on using the flags if the option cannot be found in cl_options. Resolves: #1817659 --- .gitignore | 1 + annobin.spec | 5 ++++- sources | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 3172bd9..2e7539f 100644 --- a/.gitignore +++ b/.gitignore @@ -135,3 +135,4 @@ /annobin-9.18.tar.xz /annobin-9.19.tar.xz /annobin-9.20.tar.xz +/annobin-9.21.tar.xz diff --git a/annobin.spec b/annobin.spec index 771c36e..b92874e 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.20 +Version: 9.21 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -274,6 +274,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Apr 22 2020 Nick Clifton - 9.21-1 +- Annobin: Fall back on using the flags if the option cannot be found in cl_options. (#1817659) + * Thu Apr 16 2020 Nick Clifton - 9.20-1 - Annocheck: Detect Fortran compiled programs. (#1824393) diff --git a/sources b/sources index 4ba60fc..fed9b7a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.20.tar.xz) = 6cf4593da7eae3320c18d99df4580ad9bc25f1e275b8534510432246442c2e21cd11b75af4a682167e7f2068008a6a51012b8d472740c70d1c5ccd47a1dc7b3c +SHA512 (annobin-9.21.tar.xz) = baf1c9f90b6bcfdc5db865a5f897edcac4abe6449cf520cdec856bbca9741a937798196603b486259d0981216b2e8363ee003a9c5d1cfffe5a2a65284ab53e34 From c4f24c4ee5266268905fbc8456a1ea4a9659b7d4 Mon Sep 17 00:00:00 2001 From: Igor Raits Date: Wed, 27 May 2020 17:07:00 +0200 Subject: [PATCH 046/459] Fix build / installation of a clang plugin Signed-off-by: Igor Raits --- annobin.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index b92874e..5773b3a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -162,7 +162,7 @@ hardening options. # Instead it just uses dlopen() with no pathname prefix. So we # construct a (hopefully good) path and rely upon users of annobin # knowing about this location. -%global ANNOBIN_CLANG_PLUGIN_DIR /usr/lib64/clang/%(clang --dumpversion)/lib +%global ANNOBIN_CLANG_PLUGIN_DIR /usr/lib64/clang/%(clang -dumpversion)/lib %endif #--------------------------------------------------------------------------------- @@ -220,10 +220,10 @@ make -C clang-plugin annobin.so %install %make_install -%{__rm} -f %{buildroot}%{_infodir}/dir +rm -f %{buildroot}%{_infodir}/dir %if %{with clangplugin} -cp clang-plugin/annobin.so %{ANNOBIN_CLANG_PLUGIN_DIR} +install -Dpm0755 -t %{buildroot}%{ANNOBIN_CLANG_PLUGIN_DIR} clang-plugin/annobin.so %endif #--------------------------------------------------------------------------------- From 9f46ccb4ce9da45fa0ba74f29d399ac19929c2e4 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 15 Jun 2020 17:33:58 +0100 Subject: [PATCH 047/459] Add (optional) llvm plugin. --- .gitignore | 1 + annobin.spec | 61 +++++++++++++++++++++++++++++++++++----------------- sources | 2 +- 3 files changed, 43 insertions(+), 21 deletions(-) diff --git a/.gitignore b/.gitignore index 2e7539f..0f2e0c5 100644 --- a/.gitignore +++ b/.gitignore @@ -136,3 +136,4 @@ /annobin-9.19.tar.xz /annobin-9.20.tar.xz /annobin-9.21.tar.xz +/annobin-9.22.tar.xz diff --git a/annobin.spec b/annobin.spec index 5773b3a..1e0f656 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.21 +Version: 9.22 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -22,9 +22,12 @@ License: GPLv3+ # time check for debuginfod support. %bcond_with debuginfod -# Use "--with clangplugin" to build the annobin plugin for clang. +# Use "--with clangplugin" to build the annobin plugin for Clang. %bcond_with clangplugin +# Use "--with llvmplugin" to build the annobin plugin for LLVM. +%bcond_with llvmplugin + # Set this to zero to disable the requirement for a specific version of gcc. # This should only be needed if there is some kind of problem with the version # checking logic or when building on RHEL-7 or earlier. @@ -109,7 +112,10 @@ Requires: gcc BuildRequires: gcc gcc-plugin-devel gcc-c++ %if %{with clangplugin} -BuildRequires: clang clang-devel llvm llvm-devel +BuildRequires: clang clang-devel llvm llvm-devel compiler-rt +%endif +%if %{with llvmplugin} +BuildRequires: clang clang-devel llvm llvm-devel compiler-rt %endif %description @@ -120,7 +126,11 @@ Note - the plugin is automatically enabled in gcc builds via flags provided by the redhat-rpm-macros package. %if %{with clangplugin} -Also provides a plugin for clang which performs a similar function. +Also provides a plugin for Clang which performs a similar function. +%endif + +%if %{with llvmplugin} +Also provides a plugin for LLVM which performs a similar function. %endif #--------------------------------------------------------------------------------- @@ -162,6 +172,8 @@ hardening options. # Instead it just uses dlopen() with no pathname prefix. So we # construct a (hopefully good) path and rely upon users of annobin # knowing about this location. +# FIXME2: Currently this same path is hardcoded into the Makefile.in +# files in the clang-plugin and llvm-plugin source directories... %global ANNOBIN_CLANG_PLUGIN_DIR /usr/lib64/clang/%(clang -dumpversion)/lib %endif @@ -189,13 +201,30 @@ touch doc/annobin.info %build +CONFIG_ARGS= + %if %{with debuginfod} -%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR} --with-debuginfod || cat config.log +CONFIG_ARGS="$CONFIG_ARGS --with-debuginfod" %else -%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR} || cat config.log +CONFIG_ARGS="$CONFIG_ARGS --without-debuginfod" %endif +%if %{with clangplugin} +CONFIG_ARGS="$CONFIG_ARGS --with-clang" +%endif + +%if %{with llvmplugin} +CONFIG_ARGS="$CONFIG_ARGS --with-llvm" +%endif + +%if %{without tests} +CONFIG_ARGS="$CONFIG_ARGS --without-test" +%endif + +%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR} ${CONFIG_ARGS} || cat config.log + %make_build + # Rebuild the plugin, this time using the plugin itself! This # ensures that the plugin works, and that it contains annotations # of its own. This could mean that we end up with a plugin with @@ -210,22 +239,12 @@ BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so -fplugin-arg-tmp_annobin-rename make -C gcc-plugin CXXFLAGS="%{optflags} $BUILD_FLAGS" rm %{_tmppath}/tmp_annobin.so -%if %{with clangplugin} -# FIXME: The symbolic link should not be needed. -ln -f -s ../annobin-global.h clang-plugin -make -C clang-plugin annobin.so -%endif - #--------------------------------------------------------------------------------- %install %make_install rm -f %{buildroot}%{_infodir}/dir -%if %{with clangplugin} -install -Dpm0755 -t %{buildroot}%{ANNOBIN_CLANG_PLUGIN_DIR} clang-plugin/annobin.so -%endif - #--------------------------------------------------------------------------------- %if %{with tests} @@ -246,10 +265,6 @@ fi %files %{ANNOBIN_GCC_PLUGIN_DIR} -%{_bindir}/built-by -%{_bindir}/check-abi -%{_bindir}/hardened -%{_bindir}/run-on-binaries-in %license COPYING3 LICENSE %exclude %{_datadir}/doc/annobin-plugin/COPYING3 %exclude %{_datadir}/doc/annobin-plugin/LICENSE @@ -264,6 +279,9 @@ fi %if %{with clangplugin} %{ANNOBIN_CLANG_PLUGIN_DIR} %endif +%if %{with llvmplugin} +%{ANNOBIN_CLANG_PLUGIN_DIR} +%endif %if %{with annocheck} %files annocheck @@ -274,6 +292,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Jun 15 2020 Nick Clifton - 9.22-1 +- Add (optional) llvm plugin. + * Wed Apr 22 2020 Nick Clifton - 9.21-1 - Annobin: Fall back on using the flags if the option cannot be found in cl_options. (#1817659) diff --git a/sources b/sources index fed9b7a..c19b106 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.21.tar.xz) = baf1c9f90b6bcfdc5db865a5f897edcac4abe6449cf520cdec856bbca9741a937798196603b486259d0981216b2e8363ee003a9c5d1cfffe5a2a65284ab53e34 +SHA512 (annobin-9.22.tar.xz) = c39e6086993acca320db5e02aa72d1bfe4428bec18c98e38fad5d67afe617b7f06c2c5b9c7bad09d0df9d3b2585411e88598c9ab5e4930f5e0c27b36a5c4fc69 From 6fd2366132f471de6990894a5678999a8c05fd6d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 1 Jul 2020 16:59:51 +0100 Subject: [PATCH 048/459] Annocheck: Do not skip tests of the short-enums notes. --- .gitignore | 1 + annobin.spec | 7 +++++-- sources | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 0f2e0c5..db56be4 100644 --- a/.gitignore +++ b/.gitignore @@ -137,3 +137,4 @@ /annobin-9.20.tar.xz /annobin-9.21.tar.xz /annobin-9.22.tar.xz +/annobin-9.23.tar.xz diff --git a/annobin.spec b/annobin.spec index 1e0f656..7566686 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.22 +Version: 9.23 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -174,7 +174,7 @@ hardening options. # knowing about this location. # FIXME2: Currently this same path is hardcoded into the Makefile.in # files in the clang-plugin and llvm-plugin source directories... -%global ANNOBIN_CLANG_PLUGIN_DIR /usr/lib64/clang/%(clang -dumpversion)/lib +%global ANNOBIN_CLANG_PLUGIN_DIR /usr/lib64/clang/%(llvm-config --version)/lib %endif #--------------------------------------------------------------------------------- @@ -292,6 +292,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jul 01 2020 Nick Clifton - 9.23-1 +- Annocheck: Do not skip tests of the short-enums notes. (#1743635) + * Mon Jun 15 2020 Nick Clifton - 9.22-1 - Add (optional) llvm plugin. diff --git a/sources b/sources index c19b106..efdc9b1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.22.tar.xz) = c39e6086993acca320db5e02aa72d1bfe4428bec18c98e38fad5d67afe617b7f06c2c5b9c7bad09d0df9d3b2585411e88598c9ab5e4930f5e0c27b36a5c4fc69 +SHA512 (annobin-9.23.tar.xz) = 9187a58d357768780cc24f1666769eca89ac391e1b59843676c008bddcfdc797ea1d1bba6e3c759dbdc574b5990f99c2ed62bf87290f8fb4cece880664a6e497 From 8840f2fcb9e6fe9c27f999995b3fc062c33398b8 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 25 Jul 2020 10:44:33 +0100 Subject: [PATCH 049/459] Rebuild for gcc 10.2 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 7566686..842e2b8 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.23 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -292,6 +292,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Sat Jul 25 2020 Peter Robinson - 9.23-2 +- Rebuild for gcc 10.2 + * Wed Jul 01 2020 Nick Clifton - 9.23-1 - Annocheck: Do not skip tests of the short-enums notes. (#1743635) From 229003f6258c2bac8a19278dfa8d57378fa1e8d2 Mon Sep 17 00:00:00 2001 From: Peter Robinson Date: Sat, 25 Jul 2020 11:04:27 +0100 Subject: [PATCH 050/459] clean up .gitignore --- .gitignore | 141 +---------------------------------------------------- 1 file changed, 1 insertion(+), 140 deletions(-) diff --git a/.gitignore b/.gitignore index db56be4..4cef3d3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,140 +1 @@ -/annobin-2.0.tar.xz -/annobin-2.1.tar.xz -/annobin-2.2.tar.xz -/annobin-2.3.tar.lz -/annobin-2.3.tar.xz -/annobin-2.4.tar.xz -/annobin-2.5.tar.xz -/annobin-2.5.1.tar.xz -/annobin-3.0.tar.xz -/annobin-3.1.tar.xz -/annobin-3.2.tar.xz -/annobin-3.3.tar.xz -/annobin-3.4.tar.xz -/annobin-3.5.tar.xz -/annobin-3.6.tar.xz -/annobin-5.0.tar.xz -/annobin-5.1.tar.xz -/annobin-5.2.tar.xz -/annobin-5.3.tar.xz -/annobin-5.4.tar.xz -/annobin-5.5.tar.xz -/annobin-5.6.tar.xz -/annobin-5.7.tar.xz -/annobin-5.8.tar.xz -/annobin-5.9.tar.xz -/annobin-5.10.tar.xz -/annobin-5.11.tar.xz -/annobin-6.0.tar.xz -/annobin-6.1.tar.xz -/annobin-6.2.tar.xz -/annobin-6.3.tar.xz -/annobin-6.4.tar.xz -/annobin-6.5.tar.xz -/annobin-6.6.tar.xz -/annobin-7.0.tar.xz -/annobin-7.1.tar.xz -/annobin-8.0.tar.xz -/annobin-8.1.tar.xz -/annobin-8.2.tar.xz -/annobin-8.3.tar.xz -/annobin-8.4.tar.xz -/annobin-8.5.tar.xz -/annobin-8.6.tar.xz -/annobin-8.7.tar.xz -/annobin-8.8.tar.xz -/annobin-8.9.tar.xz -/annobin-8.10.tar.xz -/annobin-8.11.tar.xz -/annobin-8.12.tar.xz -/annobin-8.13.tar.xz -/annobin-8.14.tar.xz -/annobin-8.15.tar.xz -/annobin-8.16.tar.xz -/annobin-8.17.tar.xz -/annobin-8.18.tar.xz -/annobin-8.19.tar.xz -/annobin-8.20.tar.xz -/annobin-8.21.tar.xz -/annobin-8.22.tar.xz -/annobin-8.23.tar.xz -/annobin-8.24.tar.xz -/annobin-8.25.tar.xz -/annobin-8.26.tar.xz -/annobin-8.27.tar.xz -/annobin-8.29.tar.xz -/annobin-8.30.tar.xz -/annobin-8.31.tar.xz -/annobin-8.32.tar.xz -/annobin-8.33.tar.xz -/annobin-8.34.tar.xz -/annobin-8.35.tar.xz -/annobin-8.36.tar.xz -/annobin-8.37.tar.xz -/annobin-8.38.tar.xz -/annobin-8.39.tar.xz -/annobin-8.41.tar.xz -/annobin-8.44.tar.xz -/annobin-8.45.tar.xz -/annobin-8.48.tar.xz -/annobin-8.49.tar.xz -/annobin-8.50.tar.xz -/annobin-8.51.tar.xz -/annobin-8.52.tar.xz -/annobin-8.53.tar.xz -/annobin-8.55.tar.xz -/annobin-8.56.tar.xz -/annobin-8.57.tar.xz -/annobin-8.58.tar.xz -/annobin-8.59.tar.xz -/annobin-8.60.tar.xz -/annobin-8.61.tar.xz -/annobin-8.62.tar.xz -/annobin-8.63.tar.xz -/annobin-8.64.tar.xz -/annobin-8.65.tar.xz -/annobin-8.66.tar.xz -/annobin-8.67.tar.xz -/annobin-8.68.tar.xz -/annobin-8.69.tar.xz -/annobin-8.70.tar.xz -/annobin-8.71.tar.xz -/annobin-8.72.tar.xz -/annobin-8.73.tar.xz -/annobin-8.74.tar.xz -/annobin-8.76.tar.xz -/annobin-8.77.tar.xz -/annobin-8.78.tar.xz -/annobin-8.79.tar.xz -/annobin-8.81.tar.xz -/annobin-8.83.tar.xz -/annobin-8.84.tar.xz -/annobin-8.85.tar.xz -/annobin-8.86.tar.xz -/annobin-8.87.tar.xz -/annobin-8.88.tar.xz -/annobin-8.90.tar.xz -/annobin-8.91-1.fc32.src.rpm -/annobin-8.91.tar.xz -/annobin-8.92.tar.xz -/annobin-9.01.tar.xz -/annobin-9.03.tar.xz -/annobin-9.04.tar.xz -/annobin-9.05.tar.xz -/annobin-9.06.tar.xz -/annobin-9.07.tar.xz -/annobin-9.08.tar.xz -/annobin-9.09.tar.xz -/annobin-9.10.tar.xz -/annobin-9.11.tar.xz -/annobin-9.12.tar.xz -/annobin-9.13.tar.xz -/annobin-9.14.tar.xz -/annobin-9.15.tar.xz -/annobin-9.16.tar.xz -/annobin-9.18.tar.xz -/annobin-9.19.tar.xz -/annobin-9.20.tar.xz -/annobin-9.21.tar.xz -/annobin-9.22.tar.xz -/annobin-9.23.tar.xz +/annobin-*.tar.xz From afb29d7d9fef095953f1b7589272215ce810bb84 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Sun, 26 Jul 2020 08:56:46 +0100 Subject: [PATCH 051/459] Disable annobin to allow rebuild. --- annobin.spec | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 842e2b8..1009c39 100644 --- a/annobin.spec +++ b/annobin.spec @@ -46,7 +46,7 @@ License: GPLv3+ # The problem should now only arise when rebasing to a new major version # of gcc, in which case the undefine below can be temporarily reinstated. # -# %%undefine _annotated_build +%undefine _annotated_build #--------------------------------------------------------------------------------- @@ -239,12 +239,26 @@ BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so -fplugin-arg-tmp_annobin-rename make -C gcc-plugin CXXFLAGS="%{optflags} $BUILD_FLAGS" rm %{_tmppath}/tmp_annobin.so +%if %{with clangplugin} +# FIXME: The symbolic link should not be needed. +ln -f -s ../annobin-global.h clang-plugin +make -C clang-plugin annobin.so +%endif + #--------------------------------------------------------------------------------- %install %make_install rm -f %{buildroot}%{_infodir}/dir +%if %{with clangplugin} +install -Dpm0755 -t %{buildroot}%{ANNOBIN_CLANG_PLUGIN_DIR} clang-plugin/annobin.so +%endif + +%if %{with llvmplugin} +#FIXME: ADD INSTALL +%endif + #--------------------------------------------------------------------------------- %if %{with tests} @@ -257,8 +271,13 @@ if [ -f tests/test-suite.log ]; then fi %if %{with clangplugin} -# FIXME: Add tests of the clang plugin. +# FIXME: RUN clang tests. %endif + +%if %{with llvmplugin} +#FIXME: RUN LLVM tests. +%endif + %endif #--------------------------------------------------------------------------------- @@ -292,6 +311,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Sun Jul 26 2020 Nick Clifton - 9.23-3 +- Rebuild without using annobin itself. + * Sat Jul 25 2020 Peter Robinson - 9.23-2 - Rebuild for gcc 10.2 From b034a2c7c19ab48d968fffea3bc8559ac6eda26f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Sun, 26 Jul 2020 09:05:32 +0100 Subject: [PATCH 052/459] Add support for installing clang and llvm plugins --- annobin.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 1009c39..2599807 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.23 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -46,7 +46,7 @@ License: GPLv3+ # The problem should now only arise when rebasing to a new major version # of gcc, in which case the undefine below can be temporarily reinstated. # -%undefine _annotated_build +# %%undefine _annotated_build #--------------------------------------------------------------------------------- @@ -312,7 +312,7 @@ fi %changelog * Sun Jul 26 2020 Nick Clifton - 9.23-3 -- Rebuild without using annobin itself. +- Add support for installing clang and llvm plugins. * Sat Jul 25 2020 Peter Robinson - 9.23-2 - Rebuild for gcc 10.2 From 3ab9323c0b454499487f6eaee270896167b96e04 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Sun, 26 Jul 2020 09:31:57 +0100 Subject: [PATCH 053/459] Temporary suppression of aarch64 pointer size check --- annobin.spec | 9 +++++---- sources | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/annobin.spec b/annobin.spec index 2599807..2ff9382 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.23 -Release: 3%{?dist} +Version: 9.24 +Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -46,7 +46,7 @@ License: GPLv3+ # The problem should now only arise when rebasing to a new major version # of gcc, in which case the undefine below can be temporarily reinstated. # -# %%undefine _annotated_build +%undefine _annotated_build #--------------------------------------------------------------------------------- @@ -311,8 +311,9 @@ fi #--------------------------------------------------------------------------------- %changelog -* Sun Jul 26 2020 Nick Clifton - 9.23-3 +* Sun Jul 26 2020 Nick Clifton - 9.24-1 - Add support for installing clang and llvm plugins. +- Temporary suppression of aarch64 pointer size check. * Sat Jul 25 2020 Peter Robinson - 9.23-2 - Rebuild for gcc 10.2 diff --git a/sources b/sources index efdc9b1..fa706e7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.23.tar.xz) = 9187a58d357768780cc24f1666769eca89ac391e1b59843676c008bddcfdc797ea1d1bba6e3c759dbdc574b5990f99c2ed62bf87290f8fb4cece880664a6e497 +SHA512 (annobin-9.24.tar.xz) = d409f85dcc7374c64a9a8dd99211d3d01672f1ff221a63b028e41cf756b02a5475d2ee78a4d4e28ff8f81143094e3255b273b8328fccfdcc2f11ef20b8f8e7d1 From 932b17dd34c883ccd906e91f3a0ec551697f9d63 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Sun, 26 Jul 2020 09:42:58 +0100 Subject: [PATCH 054/459] Rebuild with plugin enabled to check that suppression is working --- annobin.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 2ff9382..b517acc 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.24 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -46,7 +46,7 @@ License: GPLv3+ # The problem should now only arise when rebasing to a new major version # of gcc, in which case the undefine below can be temporarily reinstated. # -%undefine _annotated_build +# %%undefine _annotated_build #--------------------------------------------------------------------------------- @@ -311,9 +311,12 @@ fi #--------------------------------------------------------------------------------- %changelog +* Sun Jul 26 2020 Nick Clifton - 9.24-2 +- Rebuild with plugin enabled to check that suppression works. + * Sun Jul 26 2020 Nick Clifton - 9.24-1 - Add support for installing clang and llvm plugins. -- Temporary suppression of aarch64 pointer size check. +- Temporary suppression of aarch64 pointer size check. (#1860549) * Sat Jul 25 2020 Peter Robinson - 9.23-2 - Rebuild for gcc 10.2 From 6e6cadfea23f6772b4bfe5fbb99d7aa68a0aa059 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 27 Jul 2020 12:04:18 +0000 Subject: [PATCH 055/459] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index b517acc..6357e4b 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.24 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -311,6 +311,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Jul 27 2020 Fedora Release Engineering - 9.24-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Sun Jul 26 2020 Nick Clifton - 9.24-2 - Rebuild with plugin enabled to check that suppression works. From 43a03598048449c3af1a6d559f1d1048a6ad5dd8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 29 Jul 2020 16:35:49 +0100 Subject: [PATCH 056/459] Bring in better fix for AArch64 pointer size bug --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 6357e4b..9b0d1ba 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.24 -Release: 3%{?dist} +Version: 9.25 +Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -311,6 +311,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jul 29 2020 Nick Clifton - 9.25-1 +- Improved target pointer size discovery. + * Mon Jul 27 2020 Fedora Release Engineering - 9.24-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild diff --git a/sources b/sources index fa706e7..28528de 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.24.tar.xz) = d409f85dcc7374c64a9a8dd99211d3d01672f1ff221a63b028e41cf756b02a5475d2ee78a4d4e28ff8f81143094e3255b273b8328fccfdcc2f11ef20b8f8e7d1 +SHA512 (annobin-9.25.tar.xz) = a103724a0ae54962c8dcb08cff20872032fd99649de95da3022e34f94572c57898022f4c8abab5dda724e8333d803c59a9f7afb36108fb76cafbfc765fd6664f From 1c15fe568bf560e01a81349e3115aa1a35aef5ed Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 30 Jul 2020 08:40:49 +0100 Subject: [PATCH 057/459] Fix bug testing CLANG compiler assembler sources --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 9b0d1ba..f64e766 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.25 +Version: 9.26 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -311,6 +311,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Jul 30 2020 Nick Clifton - 9.26-1 +- Detect CLANG compiled assembler that is missing IBT support. + * Wed Jul 29 2020 Nick Clifton - 9.25-1 - Improved target pointer size discovery. diff --git a/sources b/sources index 28528de..a249986 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.25.tar.xz) = a103724a0ae54962c8dcb08cff20872032fd99649de95da3022e34f94572c57898022f4c8abab5dda724e8333d803c59a9f7afb36108fb76cafbfc765fd6664f +SHA512 (annobin-9.26.tar.xz) = 18cf47496e43cc0f44fd0ead47f3a49e00b228d1268467dd0af4a9e2f83d7cd8f641d260ea45185b274b6efefef9e5a4eae0c4cfc5aff5fc00d8dad79f0787f9 From 16d8c4b5fe234deee52739ab9b8cd35579bcf00d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 30 Jul 2020 17:01:07 +0100 Subject: [PATCH 058/459] Use more robust checks for AArch64 options --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index f64e766..f372736 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.26 +Version: 9.27 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -311,6 +311,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Jul 30 2020 Nick Clifton - 9.27-1 +- Use more robust checks for AArch64 options. + * Thu Jul 30 2020 Nick Clifton - 9.26-1 - Detect CLANG compiled assembler that is missing IBT support. diff --git a/sources b/sources index a249986..888c6f1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.26.tar.xz) = 18cf47496e43cc0f44fd0ead47f3a49e00b228d1268467dd0af4a9e2f83d7cd8f641d260ea45185b274b6efefef9e5a4eae0c4cfc5aff5fc00d8dad79f0787f9 +SHA512 (annobin-9.27.tar.xz) = 35911c21486b0222f09367d7dae7b119fd2af9a42ee0a3973375770fd17d33e4453b45509e96f50150df99d2610698a690c1ef419199aec7df77be079acc8efd From 057676c5e3e2f1cf9a951ed7cd17b7cc6641a7de Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 11 Aug 2020 16:24:55 +0100 Subject: [PATCH 059/459] gcc plugin: Do not complain about missing pre-processor options when examining a preprocessed input file. Resolves: #1862718 --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index f372736..58570bc 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.27 +Version: 9.28 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -311,6 +311,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Aug 11 2020 Nick Clifton - 9.28-1 +- gcc plugin: Do not complain about missing pre-processor options when examining a preprocessed input file. (#1862718) + * Thu Jul 30 2020 Nick Clifton - 9.27-1 - Use more robust checks for AArch64 options. diff --git a/sources b/sources index 888c6f1..f4063db 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.27.tar.xz) = 35911c21486b0222f09367d7dae7b119fd2af9a42ee0a3973375770fd17d33e4453b45509e96f50150df99d2610698a690c1ef419199aec7df77be079acc8efd +SHA512 (annobin-9.28.tar.xz) = 7a6320dee9920b9947b71786f8b483e8cd945f95835107ce2276bc8009aaa9a5357ef207a74ad7de50be5df2c59793237b6b4d57381a481d9bff3a09ffd8c80a From d9c1db450fc6f562278e2aefabeca1db808fd063 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 17 Aug 2020 10:51:27 +0100 Subject: [PATCH 060/459] gcc plugin: Detect any attempt to access the global_options array. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 58570bc..c622ff7 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.28 +Version: 9.29 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -311,6 +311,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Aug 17 2020 Nick Clifton - 9.29-1 +- gcc plugin: Detect any attempt to access the global_options array. + * Tue Aug 11 2020 Nick Clifton - 9.28-1 - gcc plugin: Do not complain about missing pre-processor options when examining a preprocessed input file. (#1862718) diff --git a/sources b/sources index f4063db..ddb0608 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.28.tar.xz) = 7a6320dee9920b9947b71786f8b483e8cd945f95835107ce2276bc8009aaa9a5357ef207a74ad7de50be5df2c59793237b6b4d57381a481d9bff3a09ffd8c80a +SHA512 (annobin-9.29.tar.xz) = 1a710921c3b95b02e0e836f4589db51b1d0830a29dc2c0d47f8f9ec202726c7b3d6e38eb97bf48aa8f479356c28a755a8cfff2beb912c97bfdc81681fb972d59 From 397174a269c8d0e76d36fc0317c1aca2cbca06dc Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 10 Sep 2020 11:06:24 +0100 Subject: [PATCH 061/459] gcc plugin: Correct the detection of 32-bit x86 builds. Resolves: #1876197 --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index c622ff7..0940d42 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.29 +Version: 9.30 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -311,6 +311,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Sep 10 2020 Nick Clifton - 9.30-1 +- gcc plugin: Correct the detection of 32-bit x86 builds. (#1876197) + * Mon Aug 17 2020 Nick Clifton - 9.29-1 - gcc plugin: Detect any attempt to access the global_options array. diff --git a/sources b/sources index ddb0608..1b682d6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.29.tar.xz) = 1a710921c3b95b02e0e836f4589db51b1d0830a29dc2c0d47f8f9ec202726c7b3d6e38eb97bf48aa8f479356c28a755a8cfff2beb912c97bfdc81681fb972d59 +SHA512 (annobin-9.30.tar.xz) = a786ff25fcb8152a969e01d0326b347135964b1941f76e67636b49b2e10aea7db973206d4f5db589757255e8e2d099cee455b24bab484aade5873ad4acd08812 From 353a6815871e894efcc5200bce5b7172a4623fd5 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 10 Sep 2020 13:42:30 +0100 Subject: [PATCH 062/459] gcc plugin: Use a 4 byte offset for PowerPC start symbols, so that they do not break disassemblies. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 0940d42..db27195 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.30 +Version: 9.31 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -311,6 +311,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Sep 10 2020 Nick Clifton - 9.31-1 +- gcc plugin: Use a 4 byte offset for PowerPC start symbols, so that they do not break disassemblies. + * Thu Sep 10 2020 Nick Clifton - 9.30-1 - gcc plugin: Correct the detection of 32-bit x86 builds. (#1876197) diff --git a/sources b/sources index 1b682d6..060a3e5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.30.tar.xz) = a786ff25fcb8152a969e01d0326b347135964b1941f76e67636b49b2e10aea7db973206d4f5db589757255e8e2d099cee455b24bab484aade5873ad4acd08812 +SHA512 (annobin-9.31.tar.xz) = 35909c184bed3ce5ec65c611ab50e4de2493fa7546bcbbcfca5f2de153a80385bd4eec1d763483df57dc9ac8f10696a71f1406ff02eb4759cd6287f887a756f7 From 087486d90e50a220792fc97195eaf9ee2c81d7e8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 16 Sep 2020 07:47:41 +0100 Subject: [PATCH 063/459] annocheck: Add tests for the AArch64 BTI and PAC security features. Resolves: #1862478 --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index db27195..f7da520 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.31 +Version: 9.32 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -311,6 +311,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Sep 15 2020 Nick Clifton - 9.32-1 +- annocheck: Add tests for the AArch64 BTI and PAC security features. (#1862478) + * Thu Sep 10 2020 Nick Clifton - 9.31-1 - gcc plugin: Use a 4 byte offset for PowerPC start symbols, so that they do not break disassemblies. diff --git a/sources b/sources index 060a3e5..cb9198d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.31.tar.xz) = 35909c184bed3ce5ec65c611ab50e4de2493fa7546bcbbcfca5f2de153a80385bd4eec1d763483df57dc9ac8f10696a71f1406ff02eb4759cd6287f887a756f7 +SHA512 (annobin-9.32.tar.xz) = 5babd8c51ec654358965b96f4720d363da98fdf664a431e79df48358a8f063ae3927991e27e0ab23ed327abed4fd114e789841cf02b45b2a1c0853f94d22ede9 From a305baad65a7ced0e4b9bf0d2e28aed2597a0bf6 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 17 Sep 2020 13:55:20 +0100 Subject: [PATCH 064/459] NVR bump to allow rebuild --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index f7da520..314446b 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.32 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -311,6 +311,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Sep 17 2020 Nick Clifton - 9.32-2 +- NVR bump to allow rebuild against f34-build-side-30319. + * Tue Sep 15 2020 Nick Clifton - 9.32-1 - annocheck: Add tests for the AArch64 BTI and PAC security features. (#1862478) From 5a05a4d64eb133271d199dd8a0338c90a2a876bd Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 21 Sep 2020 13:13:34 +0100 Subject: [PATCH 065/459] gcc-plugin: Fix test for empty PowerPC sections. Resolves: #1880634 --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 314446b..72c9085 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.32 -Release: 2%{?dist} +Version: 9.33 +Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -311,6 +311,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Sep 21 2020 Nick Clifton - 9.33-1 +- gcc-plugin: Fix test for empty PowerPC sections. (#1880634) + * Thu Sep 17 2020 Nick Clifton - 9.32-2 - NVR bump to allow rebuild against f34-build-side-30319. diff --git a/sources b/sources index cb9198d..e9790ea 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.32.tar.xz) = 5babd8c51ec654358965b96f4720d363da98fdf664a431e79df48358a8f063ae3927991e27e0ab23ed327abed4fd114e789841cf02b45b2a1c0853f94d22ede9 +SHA512 (annobin-9.33.tar.xz) = 16869b601fc05bb749dbd4ecffd3f0299b53c59772b86dbd24fee38a5b3490b8026e79d161f42fd1161f39b44f960a709909ff4c0fb80c15ab978da17ef280e3 From ad2a3b8d065e8e55ddc990325bfe2f2d120c872f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 28 Sep 2020 11:41:09 +0100 Subject: [PATCH 066/459] Enable the Clang and LLVM plugins by default. (Experimental). --- annobin.spec | 47 ++++++++++++++++++++--------------------------- sources | 2 +- 2 files changed, 21 insertions(+), 28 deletions(-) diff --git a/annobin.spec b/annobin.spec index 72c9085..d395239 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.33 +Version: 9.34 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -22,11 +22,11 @@ License: GPLv3+ # time check for debuginfod support. %bcond_with debuginfod -# Use "--with clangplugin" to build the annobin plugin for Clang. -%bcond_with clangplugin +# Use "--without clangplugin" to disable the building of the annobin plugin for Clang. +%bcond_without clangplugin -# Use "--with llvmplugin" to build the annobin plugin for LLVM. -%bcond_with llvmplugin +# Use "--without llvmplugin" to disable the building of the annobin plugin for LLVM. +%bcond_without llvmplugin # Set this to zero to disable the requirement for a specific version of gcc. # This should only be needed if there is some kind of problem with the version @@ -111,6 +111,8 @@ Requires: gcc %endif BuildRequires: gcc gcc-plugin-devel gcc-c++ +# The documentation uses pod2man... +BuildRequires: perl perl-podlators %if %{with clangplugin} BuildRequires: clang clang-devel llvm llvm-devel compiler-rt %endif @@ -225,7 +227,7 @@ CONFIG_ARGS="$CONFIG_ARGS --without-test" %make_build -# Rebuild the plugin, this time using the plugin itself! This +# Rebuild the plugin(s), this time using the plugin itself! This # ensures that the plugin works, and that it contains annotations # of its own. This could mean that we end up with a plugin with # double annotations in it. (If the build system enables annotations @@ -240,25 +242,22 @@ make -C gcc-plugin CXXFLAGS="%{optflags} $BUILD_FLAGS" rm %{_tmppath}/tmp_annobin.so %if %{with clangplugin} -# FIXME: The symbolic link should not be needed. -ln -f -s ../annobin-global.h clang-plugin -make -C clang-plugin annobin.so +cp clang-plugin/annobin-for-clang.so %{_tmppath}/tmp_annobin.so +make -C clang-plugin all CXXFLAGS="%{optflags} $BUILD_FLAGS" +%endif + +%if %{with llvmplugin} +cp llvm-plugin/annobin-for-llvm.so %{_tmppath}/tmp_annobin.so +make -C llvm-plugin all CXXFLAGS="%{optflags} $BUILD_FLAGS" %endif #--------------------------------------------------------------------------------- +# PLUGIN_INSTALL_DIR is used by the Clang and LLVM makefiles... %install -%make_install +%make_install PLUGIN_INSTALL_DIR=$RPM_BUILD_ROOT%{ANNOBIN_CLANG_PLUGIN_DIR} rm -f %{buildroot}%{_infodir}/dir -%if %{with clangplugin} -install -Dpm0755 -t %{buildroot}%{ANNOBIN_CLANG_PLUGIN_DIR} clang-plugin/annobin.so -%endif - -%if %{with llvmplugin} -#FIXME: ADD INSTALL -%endif - #--------------------------------------------------------------------------------- %if %{with tests} @@ -269,15 +268,6 @@ make check if [ -f tests/test-suite.log ]; then cat tests/test-suite.log fi - -%if %{with clangplugin} -# FIXME: RUN clang tests. -%endif - -%if %{with llvmplugin} -#FIXME: RUN LLVM tests. -%endif - %endif #--------------------------------------------------------------------------------- @@ -311,6 +301,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Sep 28 2020 Nick Clifton - 9.34-1 +- Enable the Clang and LLVM plugins by default. (Experimental). + * Mon Sep 21 2020 Nick Clifton - 9.33-1 - gcc-plugin: Fix test for empty PowerPC sections. (#1880634) diff --git a/sources b/sources index e9790ea..90fbc86 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.33.tar.xz) = 16869b601fc05bb749dbd4ecffd3f0299b53c59772b86dbd24fee38a5b3490b8026e79d161f42fd1161f39b44f960a709909ff4c0fb80c15ab978da17ef280e3 +SHA512 (annobin-9.34.tar.xz) = 200996596df9271edacf7810e2c15f8a336d2dd7f7d711a0841671b807890bea15530fa2c929f96c2966c35d0b6130812348e6642ad5bb4cc6646fc7a261b871 From d94f0f89ce8064c2d2131ce392f6c11e316c160a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 2 Oct 2020 13:29:31 +0100 Subject: [PATCH 067/459] gcc-plugin: Allow the use of the SHF_LINK_ORDER section flag to discard unused notes. (Experimental). --- annobin.spec | 56 ++++++++++++++++++++++++++++++++-------------------- sources | 2 +- 2 files changed, 36 insertions(+), 22 deletions(-) diff --git a/annobin.spec b/annobin.spec index d395239..fa73390 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.34 +Version: 9.35 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -33,20 +33,20 @@ License: GPLv3+ # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 -# # Do not build the annobin plugin with annotation enabled. -# # This is because if we are bootstrapping a new build environment we can have -# # a new version of gcc installed, but without a new of annobin installed. -# # (i.e. we are building the new version of annobin to go with the new version -# # of gcc). If the *old* annobin plugin is used whilst building this new -# # version, the old plugin will complain that version of gcc for which it -# # was built is different from the version of gcc that is now being used, and -# # then it will abort. +%bcond_without annobin_plugin +# Allow the building of annobin without using annobin itself. +# This is because if we are bootstrapping a new build environment we can have +# a new version of gcc installed, but without a new of annobin installed. +# (i.e. we are building the new version of annobin to go with the new version +# of gcc). If the *old* annobin plugin is used whilst building this new +# version, the old plugin will complain that version of gcc for which it +# was built is different from the version of gcc that is now being used, and +# then it will abort. # -# Suppress this for BZ 1630550. -# The problem should now only arise when rebasing to a new major version -# of gcc, in which case the undefine below can be temporarily reinstated. -# -# %%undefine _annotated_build +# The default is to use annobin. cf BZ 1630550. +%if %{without annobin_plugin} +%undefine _annotated_build +%endif #--------------------------------------------------------------------------------- @@ -229,15 +229,26 @@ CONFIG_ARGS="$CONFIG_ARGS --without-test" # Rebuild the plugin(s), this time using the plugin itself! This # ensures that the plugin works, and that it contains annotations -# of its own. This could mean that we end up with a plugin with -# double annotations in it. (If the build system enables annotations -# for plugins by default). I have not tested this yet, but I think -# that it should be OK. +# of its own. cp gcc-plugin/.libs/annobin.so.0.0.0 %{_tmppath}/tmp_annobin.so make -C gcc-plugin clean -BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so -fplugin-arg-tmp_annobin-rename" -# If building on RHEL7, enable the next option as the .attach_to_group assembler pseudo op is not available in the assembler. +BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so" + +%if %{with annobin_plugin} +# Disable the standard annobin plugin so that we do get conflicts. +# Note: the "-fplugin=annobin" is here, despite the fact that it will also +# be automatically added to the gcc command line via +# "-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1" because of a bug in gcc's +# plugin command line options handling. GCC will issue an error saying that +# there is no plugin called "annobin" matching the -fplugin-arg-annobin-disable +# option, despite the fact that there patently is. +BUILD_FLAGS="$BUILD_FLAGS -fplugin=annobin -fplugin-arg-annobin-disable" +%endif + +# If building on RHEL7, enable the next option as the .attach_to_group +# assembler pseudo op is not available in the assembler. # BUILD_FLAGS="$BUILD_FLAGS -fplugin-arg-tmp_annobin-no-attach" + make -C gcc-plugin CXXFLAGS="%{optflags} $BUILD_FLAGS" rm %{_tmppath}/tmp_annobin.so @@ -301,8 +312,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Oct 01 2020 Nick Clifton - 9.35-1 +- Allow the use of the SHF_LINK_ORDER section flag to discard unused notes. (Experimental). + * Mon Sep 28 2020 Nick Clifton - 9.34-1 -- Enable the Clang and LLVM plugins by default. (Experimental). +- Enable the build and installation of the LLVM and Clang plugins. (Experimental). * Mon Sep 21 2020 Nick Clifton - 9.33-1 - gcc-plugin: Fix test for empty PowerPC sections. (#1880634) diff --git a/sources b/sources index 90fbc86..bba2b24 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.34.tar.xz) = 200996596df9271edacf7810e2c15f8a336d2dd7f7d711a0841671b807890bea15530fa2c929f96c2966c35d0b6130812348e6642ad5bb4cc6646fc7a261b871 +SHA512 (annobin-9.35.tar.xz) = c7a8ae040bceea23725561fe27441c242692e7ca21bbae5f1c330acf2567963bc0b9ba92046f485d0627adeb1a9bd846b5f77cdfffe4bb158d39daf3d826e993 From 5515ddd6c9da5bc2eaa09f1498b80077b4239918 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 5 Oct 2020 12:40:13 +0100 Subject: [PATCH 068/459] Correct the directory chosen for 32-bit LLVM and Clang plugins. Resolves: #1884951 --- annobin.spec | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/annobin.spec b/annobin.spec index fa73390..7abcb67 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.35 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -114,10 +114,10 @@ BuildRequires: gcc gcc-plugin-devel gcc-c++ # The documentation uses pod2man... BuildRequires: perl perl-podlators %if %{with clangplugin} -BuildRequires: clang clang-devel llvm llvm-devel compiler-rt +BuildRequires: clang clang-devel llvm llvm-devel compiler-rt gawk %endif %if %{with llvmplugin} -BuildRequires: clang clang-devel llvm llvm-devel compiler-rt +BuildRequires: clang clang-devel llvm llvm-devel compiler-rt gawk %endif %description @@ -169,14 +169,14 @@ hardening options. %global ANNOBIN_GCC_PLUGIN_DIR %(gcc --print-file-name=plugin) -%if %{with clangplugin} -# FIXME: Clang does not appear to have an official plugin directory. -# Instead it just uses dlopen() with no pathname prefix. So we -# construct a (hopefully good) path and rely upon users of annobin -# knowing about this location. -# FIXME2: Currently this same path is hardcoded into the Makefile.in -# files in the clang-plugin and llvm-plugin source directories... -%global ANNOBIN_CLANG_PLUGIN_DIR /usr/lib64/clang/%(llvm-config --version)/lib +%if %{with clangplugin} || %{with llvmplugin} +# FIXME: We currently assume that the first directory listed in clang's +# search directory output is the one that we should use for plugins. +# This might not be correct. +# The gensub() below is because without it $2 would look like: +# " =/usr/lib64/clang/8.0.0" +# Note - we install LLVM plugins into the same directory as Clang plugins. +%global ANNOBIN_CLANG_PLUGIN_DIR %(clang --print-search-dirs | gawk -e'BEGIN { FS = ":" } /libraries/ { print gensub(" =","",1,$2) } END { }') %endif #--------------------------------------------------------------------------------- @@ -312,6 +312,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Oct 05 2020 Nick Clifton - 9.35-2 +- Correct the directory chosen for 32-bit LLVM and Clang plugins. (#1884951) + * Thu Oct 01 2020 Nick Clifton - 9.35-1 - Allow the use of the SHF_LINK_ORDER section flag to discard unused notes. (Experimental). From d69789a4b80fa3918aec87e2143cd3089cf387e1 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 21 Oct 2020 10:23:00 +0100 Subject: [PATCH 069/459] NVR bump --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 7abcb67..3c8a80e 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.35 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -312,6 +312,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Oct 21 2020 Nick Clifton - 9.35-3 +- NVR bump to allow building on ELN sidetag. + * Mon Oct 05 2020 Nick Clifton - 9.35-2 - Correct the directory chosen for 32-bit LLVM and Clang plugins. (#1884951) From b2d7c66572d3ea0c5766b91b1f377dd69e9c276d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 21 Oct 2020 10:24:44 +0100 Subject: [PATCH 070/459] NVR bump and disable plugin use --- annobin.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 3c8a80e..1462820 100644 --- a/annobin.spec +++ b/annobin.spec @@ -33,7 +33,8 @@ License: GPLv3+ # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 -%bcond_without annobin_plugin +# %%bcond_without annobin_plugin +%bcond_with annobin_plugin # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. From 70bb1086ca8651626dca80ec6ae99bc89e8e0e79 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 21 Oct 2020 11:12:51 +0100 Subject: [PATCH 071/459] turn off hard gcc reqauirement (temporary) --- annobin.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 1462820..879d05a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -31,7 +31,8 @@ License: GPLv3+ # Set this to zero to disable the requirement for a specific version of gcc. # This should only be needed if there is some kind of problem with the version # checking logic or when building on RHEL-7 or earlier. -%global with_hard_gcc_version_requirement 1 +# %%global with_hard_gcc_version_requirement 1 +%global with_hard_gcc_version_requirement 0 # %%bcond_without annobin_plugin %bcond_with annobin_plugin From 440266bff34ab0da25e61a8a7b5909fca5f6109a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 21 Oct 2020 11:35:20 +0100 Subject: [PATCH 072/459] NVR bump and disable plugin use --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 879d05a..60ef18e 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.35 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com From a707c7d43e875c51159fa2d72de13d2a6cf0cedf Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 21 Oct 2020 15:18:44 +0100 Subject: [PATCH 073/459] Record the -flto setting and produce a soft warning if it is absent. Suppress warnings about _D_GLIBCXX_ASSERTIONS if the source code is known to be something other than C++. --- annobin.spec | 14 ++++++++------ sources | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/annobin.spec b/annobin.spec index 60ef18e..4bdf605 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.35 -Release: 4%{?dist} +Version: 9.36 +Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -31,11 +31,9 @@ License: GPLv3+ # Set this to zero to disable the requirement for a specific version of gcc. # This should only be needed if there is some kind of problem with the version # checking logic or when building on RHEL-7 or earlier. -# %%global with_hard_gcc_version_requirement 1 -%global with_hard_gcc_version_requirement 0 +%global with_hard_gcc_version_requirement 1 -# %%bcond_without annobin_plugin -%bcond_with annobin_plugin +%bcond_without annobin_plugin # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. @@ -314,6 +312,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Oct 21 2020 Nick Clifton - 9.36-1 +- Record the -flto setting and produce a soft warning if it is absent. +- Suppress warnings about _D_GLIBCXX_ASSERTIONS if the source code is known to be something other than C++. + * Wed Oct 21 2020 Nick Clifton - 9.35-3 - NVR bump to allow building on ELN sidetag. diff --git a/sources b/sources index bba2b24..d333c22 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.35.tar.xz) = c7a8ae040bceea23725561fe27441c242692e7ca21bbae5f1c330acf2567963bc0b9ba92046f485d0627adeb1a9bd846b5f77cdfffe4bb158d39daf3d826e993 +SHA512 (annobin-9.36.tar.xz) = 40ce8399aa1188f76766d36557857b4624a0af3c551f8a75bfdb11f736301378e8d526d4d1c71ae458c46873cbecd0014343b98bbfefbe09d88b7dfdde37cce4 From a87d8021bea79cf1953e02c57dd6037cfb85f211 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 30 Oct 2020 00:17:46 +0100 Subject: [PATCH 074/459] 9.36-2 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 4bdf605..d770625 100644 --- a/annobin.spec +++ b/annobin.spec @@ -33,7 +33,7 @@ License: GPLv3+ # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 -%bcond_without annobin_plugin +%bcond_with annobin_plugin # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. @@ -312,6 +312,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Oct 30 2020 Jakub Jelinek - 9.36-2 +- NVR bump for another ELN sidetag rebuild. + * Wed Oct 21 2020 Nick Clifton - 9.36-1 - Record the -flto setting and produce a soft warning if it is absent. - Suppress warnings about _D_GLIBCXX_ASSERTIONS if the source code is known to be something other than C++. From 2b20a13c5166ed6a51983164769ddd9c0622ed68 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 30 Oct 2020 01:10:06 +0100 Subject: [PATCH 075/459] 9.36-2 --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index d770625..85c6ef8 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.36 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com From 5b5750dca268266a05a53c17c23a6acdc7d7972e Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 30 Oct 2020 01:24:55 +0100 Subject: [PATCH 076/459] Revert back to defaults. --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 85c6ef8..e64aab6 100644 --- a/annobin.spec +++ b/annobin.spec @@ -33,7 +33,7 @@ License: GPLv3+ # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 -%bcond_with annobin_plugin +%bcond_without annobin_plugin # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. From 34a622f99e7c5812e8016847c72b3bedd109cea7 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 4 Nov 2020 14:17:42 +0000 Subject: [PATCH 077/459] Add reporting of GNU Property notes for PowerPC. Add test of objcopy's note merging abilities. --- annobin.spec | 8 ++++++-- sources | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index e64aab6..1206d10 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.36 -Release: 2%{?dist} +Version: 9.37 +Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -312,6 +312,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Nov 04 2020 Nick Clifton - 9.37-1 +- Add test of .note.gnu.property section for PowerPC. +- Add test of objcopy's ability to merge notes. + * Fri Oct 30 2020 Jakub Jelinek - 9.36-2 - NVR bump for another ELN sidetag rebuild. diff --git a/sources b/sources index d333c22..2303c41 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.36.tar.xz) = 40ce8399aa1188f76766d36557857b4624a0af3c551f8a75bfdb11f736301378e8d526d4d1c71ae458c46873cbecd0014343b98bbfefbe09d88b7dfdde37cce4 +SHA512 (annobin-9.37.tar.xz) = 9af75cae621e93a20626a25a2bb3b21cee74df06772313a650dc00e505839169c843cf1a0f2818f5e1deb6441919f77f4b4b85cbd16601fcca04773f755d07de From e6e831776604b8a5ca588bfaa49c410ad3ceb02a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 6 Nov 2020 12:30:46 +0000 Subject: [PATCH 078/459] Annocheck: Fix bug parsing DW_AT_producer. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 1206d10..f2b389b 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.37 +Version: 9.38 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -312,6 +312,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Nov 06 2020 Nick Clifton - 9.38-1 +- Annocheck: Fix bug parsing DW_AT_producer. + * Wed Nov 04 2020 Nick Clifton - 9.37-1 - Add test of .note.gnu.property section for PowerPC. - Add test of objcopy's ability to merge notes. diff --git a/sources b/sources index 2303c41..42acb65 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.37.tar.xz) = 9af75cae621e93a20626a25a2bb3b21cee74df06772313a650dc00e505839169c843cf1a0f2818f5e1deb6441919f77f4b4b85cbd16601fcca04773f755d07de +SHA512 (annobin-9.38.tar.xz) = 68cf8ff879bcdbde34aba259557724af45888d03fb6eeed48569322c383c527499b743240a91441a4d992c4021d4fab3fb0cc569107cf61dc45803380b4a82a5 From c0eabbb63fb274cef38648dd9fbb399792270e90 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 9 Nov 2020 13:55:03 +0000 Subject: [PATCH 079/459] Add --without-gcc-plugin option. --- annobin.spec | 32 ++++++++++++++++++++++++-------- sources | 2 +- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/annobin.spec b/annobin.spec index f2b389b..922834b 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.38 +Version: 9.40 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -25,6 +25,9 @@ License: GPLv3+ # Use "--without clangplugin" to disable the building of the annobin plugin for Clang. %bcond_without clangplugin +# Use "--without gccplugin" to disable the building of the annobin plugin for GCC. +%bcond_without gccplugin + # Use "--without llvmplugin" to disable the building of the annobin plugin for LLVM. %bcond_without llvmplugin @@ -33,7 +36,7 @@ License: GPLv3+ # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 -%bcond_without annobin_plugin +%bcond_without plugin_rebuild # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. @@ -44,7 +47,7 @@ License: GPLv3+ # then it will abort. # # The default is to use annobin. cf BZ 1630550. -%if %{without annobin_plugin} +%if %{without plugin_rebuild} %undefine _annotated_build %endif @@ -203,7 +206,7 @@ touch doc/annobin.info %build -CONFIG_ARGS= +CONFIG_ARGS="--quiet --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR}" %if %{with debuginfod} CONFIG_ARGS="$CONFIG_ARGS --with-debuginfod" @@ -215,6 +218,10 @@ CONFIG_ARGS="$CONFIG_ARGS --without-debuginfod" CONFIG_ARGS="$CONFIG_ARGS --with-clang" %endif +%if %{without gccplugin} +CONFIG_ARGS="$CONFIG_ARGS --without-gcc-plugin" +%endif + %if %{with llvmplugin} CONFIG_ARGS="$CONFIG_ARGS --with-llvm" %endif @@ -223,18 +230,20 @@ CONFIG_ARGS="$CONFIG_ARGS --with-llvm" CONFIG_ARGS="$CONFIG_ARGS --without-test" %endif -%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR} ${CONFIG_ARGS} || cat config.log +%configure ${CONFIG_ARGS} || cat config.log %make_build +%if %{with plugin_rebuild} # Rebuild the plugin(s), this time using the plugin itself! This # ensures that the plugin works, and that it contains annotations # of its own. + +%if %{with gccplugin} cp gcc-plugin/.libs/annobin.so.0.0.0 %{_tmppath}/tmp_annobin.so make -C gcc-plugin clean BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so" -%if %{with annobin_plugin} # Disable the standard annobin plugin so that we do get conflicts. # Note: the "-fplugin=annobin" is here, despite the fact that it will also # be automatically added to the gcc command line via @@ -243,7 +252,6 @@ BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so" # there is no plugin called "annobin" matching the -fplugin-arg-annobin-disable # option, despite the fact that there patently is. BUILD_FLAGS="$BUILD_FLAGS -fplugin=annobin -fplugin-arg-annobin-disable" -%endif # If building on RHEL7, enable the next option as the .attach_to_group # assembler pseudo op is not available in the assembler. @@ -251,6 +259,7 @@ BUILD_FLAGS="$BUILD_FLAGS -fplugin=annobin -fplugin-arg-annobin-disable" make -C gcc-plugin CXXFLAGS="%{optflags} $BUILD_FLAGS" rm %{_tmppath}/tmp_annobin.so +%endif %if %{with clangplugin} cp clang-plugin/annobin-for-clang.so %{_tmppath}/tmp_annobin.so @@ -262,6 +271,8 @@ cp llvm-plugin/annobin-for-llvm.so %{_tmppath}/tmp_annobin.so make -C llvm-plugin all CXXFLAGS="%{optflags} $BUILD_FLAGS" %endif +%endif + #--------------------------------------------------------------------------------- # PLUGIN_INSTALL_DIR is used by the Clang and LLVM makefiles... @@ -284,7 +295,6 @@ fi #--------------------------------------------------------------------------------- %files -%{ANNOBIN_GCC_PLUGIN_DIR} %license COPYING3 LICENSE %exclude %{_datadir}/doc/annobin-plugin/COPYING3 %exclude %{_datadir}/doc/annobin-plugin/LICENSE @@ -299,6 +309,9 @@ fi %if %{with clangplugin} %{ANNOBIN_CLANG_PLUGIN_DIR} %endif +%if %{with clangplugin} +%{ANNOBIN_GCC_PLUGIN_DIR} +%endif %if %{with llvmplugin} %{ANNOBIN_CLANG_PLUGIN_DIR} %endif @@ -312,6 +325,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Nov 09 2020 Nick Clifton - 9.40-1 +- Add --without-gcc-plugin option. + * Fri Nov 06 2020 Nick Clifton - 9.38-1 - Annocheck: Fix bug parsing DW_AT_producer. diff --git a/sources b/sources index 42acb65..2b04c3e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.38.tar.xz) = 68cf8ff879bcdbde34aba259557724af45888d03fb6eeed48569322c383c527499b743240a91441a4d992c4021d4fab3fb0cc569107cf61dc45803380b4a82a5 +SHA512 (annobin-9.40.tar.xz) = 3d3863d241ccede5285bc6205b0583e204acf39eb58cfb9616551b09695f749f7e1278783a32979cf7a1d81fd8724e497e59e5c13b38768c3027f9b383df2397 From 33cfa7d0ebe9d3a612fb25562a6719a08097cf4a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 10 Nov 2020 16:41:31 +0000 Subject: [PATCH 080/459] annocheck: Add handling of gimple compiled files --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 922834b..caa1313 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.40 +Version: 9.41 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -325,6 +325,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Nov 10 2020 Nick Clifton - 9.41-1 +- Add detecting of gimple compiled binaries. + * Mon Nov 09 2020 Nick Clifton - 9.40-1 - Add --without-gcc-plugin option. diff --git a/sources b/sources index 2b04c3e..885c368 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.40.tar.xz) = 3d3863d241ccede5285bc6205b0583e204acf39eb58cfb9616551b09695f749f7e1278783a32979cf7a1d81fd8724e497e59e5c13b38768c3027f9b383df2397 +SHA512 (annobin-9.41.tar.xz) = bd9ecd49abf9cd53b9f9e86563de6f47ec9b5d28ea3e9e30aebb2882daf20256d4f62259d52f603e937ff676a01bf07eb0c8acf8caa83a8b9da503832daecec8 From 3cff478cb4c5b2ea3eb7d19662d0b7f865bf7fd6 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 16 Nov 2020 11:40:56 +0000 Subject: [PATCH 081/459] Annocheck: Improve reporting of missing LTO option. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index caa1313..15f75df 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.41 +Version: 9.42 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -325,6 +325,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Nov 16 2020 Nick Clifton - 9.42-1 +- Annocheck: Improve reporting of missing LTO option. + * Tue Nov 10 2020 Nick Clifton - 9.41-1 - Add detecting of gimple compiled binaries. diff --git a/sources b/sources index 885c368..ef319f6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.41.tar.xz) = bd9ecd49abf9cd53b9f9e86563de6f47ec9b5d28ea3e9e30aebb2882daf20256d4f62259d52f603e937ff676a01bf07eb0c8acf8caa83a8b9da503832daecec8 +SHA512 (annobin-9.42.tar.xz) = b1a6e6fb3becce1c3f121e9002b6a5e5304a40e2c550825ea1b84f836c118012fa958b2395632c712d872cf820798855c6abd6ffd05b0dc24ad1024368dea68c From 5b0e474e772c9734bbd52a102e4276dfc3e9b62d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 16 Nov 2020 14:26:06 +0000 Subject: [PATCH 082/459] Annocheck: Improve reporting of missing -D_FORTIFY_SOURCE option. (#1898075) --- annobin.spec | 13 +++++++------ sources | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/annobin.spec b/annobin.spec index 15f75df..5737753 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.42 +Version: 9.43 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -306,15 +306,13 @@ fi %{_mandir}/man1/hardened.1* %{_mandir}/man1/run-on-binaries-in.1* -%if %{with clangplugin} +%if %{with clangplugin} || %{with llvmplugin} %{ANNOBIN_CLANG_PLUGIN_DIR} %endif -%if %{with clangplugin} + +%if %{with gccplugin} %{ANNOBIN_GCC_PLUGIN_DIR} %endif -%if %{with llvmplugin} -%{ANNOBIN_CLANG_PLUGIN_DIR} -%endif %if %{with annocheck} %files annocheck @@ -325,6 +323,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Nov 16 2020 Nick Clifton - 9.43-1 +- Annocheck: Improve reporting of missing -D_FORTIFY_SOURCE option. (#1898075) + * Mon Nov 16 2020 Nick Clifton - 9.42-1 - Annocheck: Improve reporting of missing LTO option. diff --git a/sources b/sources index ef319f6..2515f00 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.42.tar.xz) = b1a6e6fb3becce1c3f121e9002b6a5e5304a40e2c550825ea1b84f836c118012fa958b2395632c712d872cf820798855c6abd6ffd05b0dc24ad1024368dea68c +SHA512 (annobin-9.43.tar.xz) = c0efd8f65c18be220853c6f0c647ddc23d0b9e51e4124df65351ede5e395361bf1e2f8519b87d1782af50547161f780782398ec926d54fe06124df2c19d47d00 From 62e7074ffd6242f923d138937523cb53b6dfc66d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 17 Nov 2020 16:30:19 +0000 Subject: [PATCH 083/459] Clang plugin: Add -lLLVM to the build command line. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 5737753..f3a9ffb 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.43 +Version: 9.44 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -323,6 +323,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Nov 17 2020 Nick Clifton - 9.44-1 +- Clang plugin: Add -lLLVM to the build command line. + * Mon Nov 16 2020 Nick Clifton - 9.43-1 - Annocheck: Improve reporting of missing -D_FORTIFY_SOURCE option. (#1898075) diff --git a/sources b/sources index 2515f00..3aebde0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.43.tar.xz) = c0efd8f65c18be220853c6f0c647ddc23d0b9e51e4124df65351ede5e395361bf1e2f8519b87d1782af50547161f780782398ec926d54fe06124df2c19d47d00 +SHA512 (annobin-9.44.tar.xz) = 964533793a77b9fe85cbc22e31aca08e6c90de3ba6846e80e7a9d27ccfd7498280902686b975b6164f4ef3bbb02ca83f4dc39386b63d91945eda003bb07a64d8 From b333964fd5d2393ca25083c8199b5849b6b0d661 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 23 Nov 2020 12:12:25 +0000 Subject: [PATCH 084/459] GCC plugin: Always record global notes for the .text.startup, .text.exit, .text.hot and .text.cold sections. --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index f3a9ffb..04763e6 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.44 +Version: 9.45 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -323,6 +323,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Nov 18 2020 Nick Clifton - 9.45-1 +- GCC plugin: Always record global notes for the .text.startup, + .text.exit, .text.hot and .text.cold sections. + * Tue Nov 17 2020 Nick Clifton - 9.44-1 - Clang plugin: Add -lLLVM to the build command line. diff --git a/sources b/sources index 3aebde0..f7bbdc9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.44.tar.xz) = 964533793a77b9fe85cbc22e31aca08e6c90de3ba6846e80e7a9d27ccfd7498280902686b975b6164f4ef3bbb02ca83f4dc39386b63d91945eda003bb07a64d8 +SHA512 (annobin-9.45.tar.xz) = f258d76770d06d8f40b274d472a20cc9a9d1cb273ce69ee789f39be3a0666a1abc3de4f7e6ee0fcb01c2f274bf6886815d45d917d2cba4e0c53259c7dfe1c51a From ea02dafc1f4745d37b4d2d91c98ca6f5af3a0613 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 24 Nov 2020 10:39:50 +0000 Subject: [PATCH 085/459] Annocheck: Support enabling/disable future fail tests. --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 04763e6..32e918b 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.45 +Version: 9.46 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -323,7 +323,10 @@ fi #--------------------------------------------------------------------------------- %changelog -* Tue Nov 18 2020 Nick Clifton - 9.45-1 +* Tue Nov 24 2020 Nick Clifton - 9.46-1 +- Annocheck: Support enabling/disabling future fails. + +* Wed Nov 18 2020 Nick Clifton - 9.45-1 - GCC plugin: Always record global notes for the .text.startup, .text.exit, .text.hot and .text.cold sections. diff --git a/sources b/sources index f7bbdc9..10b39ea 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.45.tar.xz) = f258d76770d06d8f40b274d472a20cc9a9d1cb273ce69ee789f39be3a0666a1abc3de4f7e6ee0fcb01c2f274bf6886815d45d917d2cba4e0c53259c7dfe1c51a +SHA512 (annobin-9.46.tar.xz) = f040247a48319f7b3c4e897431b3208c6cdf5eba0f1df716297193cd0bff611558f233e3a64ac81218314bda981e3567ad4ca89e3a94ebdbd5a610126b7bbc5d From 3ed514a41ce9d1d5ae17bef21c4c8425ce680e5a Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 27 Nov 2020 11:04:11 +0100 Subject: [PATCH 086/459] NVR bump for another ELN sidetag rebuild. --- annobin.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 32e918b..e4d0aa5 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.46 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -36,7 +36,7 @@ License: GPLv3+ # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 -%bcond_without plugin_rebuild +%bcond_with plugin_rebuild # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. @@ -323,6 +323,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Nov 27 2020 Jakub Jelinek - 9.46-2 +- NVR bump for another ELN sidetag rebuild. + * Tue Nov 24 2020 Nick Clifton - 9.46-1 - Annocheck: Support enabling/disabling future fails. From 3e0594350db19364c0d960c9db855478a93b3eb4 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 27 Nov 2020 11:09:43 +0100 Subject: [PATCH 087/459] Revert plugin_rebuild back. --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index e4d0aa5..b715fd5 100644 --- a/annobin.spec +++ b/annobin.spec @@ -36,7 +36,7 @@ License: GPLv3+ # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 -%bcond_with plugin_rebuild +%bcond_without plugin_rebuild # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. From 24fe187a8d4015fb954484e9bb0386e0dda50258 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 1 Dec 2020 13:39:47 +0000 Subject: [PATCH 088/459] 9.47: gcc plugin: Add support for GCC 11's cl_vars array. --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index b715fd5..8de63e8 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.46 -Release: 2%{?dist} +Version: 9.47 +Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -323,6 +323,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Dec 01 2020 Jakub Jelinek - 9.47-1 +- gcc plugin: Add support for GCC 11's cl_vars array. + * Fri Nov 27 2020 Jakub Jelinek - 9.46-2 - NVR bump for another ELN sidetag rebuild. diff --git a/sources b/sources index 10b39ea..f9dea5c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.46.tar.xz) = f040247a48319f7b3c4e897431b3208c6cdf5eba0f1df716297193cd0bff611558f233e3a64ac81218314bda981e3567ad4ca89e3a94ebdbd5a610126b7bbc5d +SHA512 (annobin-9.47.tar.xz) = b65d1b5f332540e6ce582b3ca6eb3f4b9c411c537d388915ca658f105ef0d07193abaecf1ca022356a14a1090822b72a010aeae5422b50eff8ec70854129cdf3 From 62931e922ea987b72a123218edd3b6b6aecadca3 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 2 Dec 2020 12:12:12 +0000 Subject: [PATCH 089/459] 9.48: gcc plugin: Tweak generation of end symbols for PPC64 when LTO is active. (#1898075) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 8de63e8..b843888 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.47 +Version: 9.48 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -323,6 +323,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Dec 02 2020 Jakub Jelinek - 9.47-2 +- gcc plugin: Tweak generation of end symbols for PPC64 when LTO is active. (#1898075) + * Tue Dec 01 2020 Jakub Jelinek - 9.47-1 - gcc plugin: Add support for GCC 11's cl_vars array. diff --git a/sources b/sources index f9dea5c..02b4c30 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.47.tar.xz) = b65d1b5f332540e6ce582b3ca6eb3f4b9c411c537d388915ca658f105ef0d07193abaecf1ca022356a14a1090822b72a010aeae5422b50eff8ec70854129cdf3 +SHA512 (annobin-9.48.tar.xz) = 9844cf1129947d70453f2403b2e27e570d2a4fc3f6efc52df74fe32708e7cd7be2ba5fdd2a9a50cec96ca10ccab825383efef86d5476794de6b574b761de5c3f From ebfb4177703b749a68fe63c4d93e78d43c48b9d9 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sun, 6 Dec 2020 11:18:53 +0100 Subject: [PATCH 090/459] 9.48-2 --- annobin.spec | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/annobin.spec b/annobin.spec index b843888..6d68c57 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.48 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -34,9 +34,9 @@ License: GPLv3+ # Set this to zero to disable the requirement for a specific version of gcc. # This should only be needed if there is some kind of problem with the version # checking logic or when building on RHEL-7 or earlier. -%global with_hard_gcc_version_requirement 1 +%global with_hard_gcc_version_requirement 0 -%bcond_without plugin_rebuild +%bcond_with plugin_rebuild # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. @@ -323,10 +323,13 @@ fi #--------------------------------------------------------------------------------- %changelog -* Wed Dec 02 2020 Jakub Jelinek - 9.47-2 +* Sun Dec 06 2020 Jakub Jelinek - 9.48-2 +- NVR bump for GCC 11 rebuild. + +* Wed Dec 02 2020 Nick Clifton - 9.48-1 - gcc plugin: Tweak generation of end symbols for PPC64 when LTO is active. (#1898075) -* Tue Dec 01 2020 Jakub Jelinek - 9.47-1 +* Tue Dec 01 2020 Nick Clifton - 9.47-1 - gcc plugin: Add support for GCC 11's cl_vars array. * Fri Nov 27 2020 Jakub Jelinek - 9.46-2 From a057c0a3597c8857c20e8293ced265791e327d8b Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sun, 6 Dec 2020 11:30:03 +0100 Subject: [PATCH 091/459] 9.48-3 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 6d68c57..5b1279a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.48 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -323,6 +323,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Sun Dec 06 2020 Jakub Jelinek - 9.48-3 +- Another NVR bump for GCC 11 rebuild. + * Sun Dec 06 2020 Jakub Jelinek - 9.48-2 - NVR bump for GCC 11 rebuild. From 432e8594c3c5f012d7fffbfdbea7917c2f7f2fd1 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sun, 6 Dec 2020 11:47:18 +0100 Subject: [PATCH 092/459] 9.48-3 --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 5b1279a..daf358f 100644 --- a/annobin.spec +++ b/annobin.spec @@ -57,7 +57,7 @@ Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz # For the latest sources use: git clone git://sourceware.org/git/annobin.git # Insert patches here, if needed. -# Patch01: annobin-xxx.patch +Patch01: annobin-gcc11.patch #--------------------------------------------------------------------------------- From 2662d342333d503436e5e5e2cc3ca84f9d11762f Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sun, 6 Dec 2020 11:49:53 +0100 Subject: [PATCH 093/459] 9.48-3 --- annobin-gcc11.patch | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 annobin-gcc11.patch diff --git a/annobin-gcc11.patch b/annobin-gcc11.patch new file mode 100644 index 0000000..62e9428 --- /dev/null +++ b/annobin-gcc11.patch @@ -0,0 +1,36 @@ +--- a/gcc/annobin.cc 2020-12-02 11:59:10.000000000 +0100 ++++ b/gcc/annobin.cc 2020-12-06 11:44:44.446266880 +0100 +@@ -752,12 +752,12 @@ annobin_get_str_option_by_name (const ch + #if GCCPLUGIN_VERSION_MAJOR >= 11 + /* GCC version 11 introduced the cl_vars array which provides offsets for + fields in global_options which are not handled by cl_options. */ +- struct cl_var * var = cl_vars; ++ const struct cl_var * var = cl_vars; + +- for (var = cl_vars; var->name != NULL; var ++) +- if (strmp (var->name, name) == 0) ++ for (var = cl_vars; var->var_name != NULL; var ++) ++ if (strcmp (var->var_name, name) == 0) + // FIXME: Cache the result ? +- return (const char *) (* (const char **) (((char *) annobin_global_options) + var->var_offset)); ++ return * (const char *const *) (((const char *) annobin_global_options) + var->var_offset); + + annobin_inform (INFORM_VERBOSE, "WARN: gcc variable '%s' not found within cl_vars array", name); + #endif +@@ -772,12 +772,12 @@ annobin_get_int_option_by_name (const ch + #if GCCPLUGIN_VERSION_MAJOR >= 11 + /* GCC version 11 introduced the cl_vars array which provides offsets for + fields in global_options which are not handled by cl_options. */ +- struct cl_var * var = cl_vars; ++ const struct cl_var * var = cl_vars; + +- for (var = cl_vars; var->name != NULL; var ++) +- if (strmp (var->name, name) == 0) ++ for (var = cl_vars; var->var_name != NULL; var ++) ++ if (strcmp (var->var_name, name) == 0) + // FIXME: Cache the result ? +- return (const int) (* (const int **) (((char *) annobin_global_options) + var->var_offset)); ++ return * (const int *const *) (((const char *) annobin_global_options) + var->var_offset); + + annobin_inform (INFORM_VERBOSE, "WARN: gcc variable '%s' not found within cl_vars array", name); + #endif From 252b28fa8e21b40503c0a83b15dae7a95ebdddbb Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sun, 6 Dec 2020 11:56:05 +0100 Subject: [PATCH 094/459] 9.48-3 --- annobin-gcc11.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/annobin-gcc11.patch b/annobin-gcc11.patch index 62e9428..d56a803 100644 --- a/annobin-gcc11.patch +++ b/annobin-gcc11.patch @@ -1,5 +1,5 @@ ---- a/gcc/annobin.cc 2020-12-02 11:59:10.000000000 +0100 -+++ b/gcc/annobin.cc 2020-12-06 11:44:44.446266880 +0100 +--- a/gcc-plugin/annobin.cc 2020-12-02 11:59:10.000000000 +0100 ++++ b/gcc-plugin/annobin.cc 2020-12-06 11:44:44.446266880 +0100 @@ -752,12 +752,12 @@ annobin_get_str_option_by_name (const ch #if GCCPLUGIN_VERSION_MAJOR >= 11 /* GCC version 11 introduced the cl_vars array which provides offsets for From 841b371c4b7e7c3fb4dad795aebd7cb5bb51b046 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sun, 6 Dec 2020 12:01:09 +0100 Subject: [PATCH 095/459] 9.48-3 --- annobin-gcc11.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/annobin-gcc11.patch b/annobin-gcc11.patch index d56a803..4248612 100644 --- a/annobin-gcc11.patch +++ b/annobin-gcc11.patch @@ -13,7 +13,7 @@ + if (strcmp (var->var_name, name) == 0) // FIXME: Cache the result ? - return (const char *) (* (const char **) (((char *) annobin_global_options) + var->var_offset)); -+ return * (const char *const *) (((const char *) annobin_global_options) + var->var_offset); ++ return * (const char **) (((char *) annobin_global_options) + var->var_offset); annobin_inform (INFORM_VERBOSE, "WARN: gcc variable '%s' not found within cl_vars array", name); #endif @@ -30,7 +30,7 @@ + if (strcmp (var->var_name, name) == 0) // FIXME: Cache the result ? - return (const int) (* (const int **) (((char *) annobin_global_options) + var->var_offset)); -+ return * (const int *const *) (((const char *) annobin_global_options) + var->var_offset); ++ return * (int *) (((char *) annobin_global_options) + var->var_offset); annobin_inform (INFORM_VERBOSE, "WARN: gcc variable '%s' not found within cl_vars array", name); #endif From 44aadc55ffebb040c4e532cdadcae3817309f8f4 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sun, 6 Dec 2020 12:17:38 +0100 Subject: [PATCH 096/459] 9.48-4 --- annobin.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index daf358f..63b7d2d 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.48 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -34,9 +34,9 @@ License: GPLv3+ # Set this to zero to disable the requirement for a specific version of gcc. # This should only be needed if there is some kind of problem with the version # checking logic or when building on RHEL-7 or earlier. -%global with_hard_gcc_version_requirement 0 +%global with_hard_gcc_version_requirement 1 -%bcond_with plugin_rebuild +%bcond_without plugin_rebuild # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. @@ -323,6 +323,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Sun Dec 06 2020 Jakub Jelinek - 9.48-4 +- Revert back to previous settings. + * Sun Dec 06 2020 Jakub Jelinek - 9.48-3 - Another NVR bump for GCC 11 rebuild. From ec71c316e10f3ea4ba6dcf87961e6f9e82055fcf Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 7 Dec 2020 14:50:08 +0100 Subject: [PATCH 097/459] 9.48-5 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 63b7d2d..e39f2f7 100644 --- a/annobin.spec +++ b/annobin.spec @@ -36,7 +36,7 @@ License: GPLv3+ # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 -%bcond_without plugin_rebuild +%bcond_with plugin_rebuild # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. @@ -323,6 +323,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Dec 07 2020 Jakub Jelinek - 9.48-5 +- NVR bump for another ELN sidetag rebuild. + * Sun Dec 06 2020 Jakub Jelinek - 9.48-4 - Revert back to previous settings. From dc5d2731d4e0205bbd36fb5523361101697fdf15 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 7 Dec 2020 15:08:29 +0100 Subject: [PATCH 098/459] 9.48-5 --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index e39f2f7..6a24ac5 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.48 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com From e1bd496eeb430231349eefae4e25e3bcf07fa34e Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 7 Dec 2020 15:26:36 +0100 Subject: [PATCH 099/459] Undo bcond_with plugin_rebuild --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 6a24ac5..ae2f37a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -36,7 +36,7 @@ License: GPLv3+ # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 -%bcond_with plugin_rebuild +%bcond_without plugin_rebuild # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. From 46640ca3dc1ae58ebd73d30a1eca3c30b75d97c9 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 8 Dec 2020 12:58:44 +0000 Subject: [PATCH 100/459] 9.49: annocheck: Fix the note analyzer's handling of empty PowerPC64 notes. --- annobin.spec | 11 +++++++---- sources | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/annobin.spec b/annobin.spec index ae2f37a..37546d9 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.48 -Release: 5%{?dist} +Version: 9.49 +Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -56,8 +56,8 @@ License: GPLv3+ Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz # For the latest sources use: git clone git://sourceware.org/git/annobin.git -# Insert patches here, if needed. -Patch01: annobin-gcc11.patch +# Insert patches here, if needed. Eg: +# Patch01: annobin-foo.patch #--------------------------------------------------------------------------------- @@ -323,6 +323,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Dec 08 2020 Nick Clifton - 9.49-1 +- annocheck: Fix notes analyzer to accept empty PPC64 notes. + * Mon Dec 07 2020 Jakub Jelinek - 9.48-5 - NVR bump for another ELN sidetag rebuild. diff --git a/sources b/sources index 02b4c30..53c4078 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.48.tar.xz) = 9844cf1129947d70453f2403b2e27e570d2a4fc3f6efc52df74fe32708e7cd7be2ba5fdd2a9a50cec96ca10ccab825383efef86d5476794de6b574b761de5c3f +SHA512 (annobin-9.49.tar.xz) = d4945544f2956701c331f02643bfb6dc46d1faf3d0a13f8de61839ac30aa2b04cb6443a94cbdb17774b1bed0a6a93ccfac089271a2e9eef79be74d0c4dc166f3 From d7a90f1991dbde2903a1d560b0f255afb59724a9 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 9 Dec 2020 17:15:19 +0000 Subject: [PATCH 101/459] annocheck: Mark a missining -D_FORTIFY_SOURCE as a FAIL. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 37546d9..1e891ef 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.49 +Version: 9.50 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -323,6 +323,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Dec 09 2020 Nick Clifton - 9.50-1 +- annocheck: Mark a missining -D_FORTIFY_SOURCE as a FAIL. + * Tue Dec 08 2020 Nick Clifton - 9.49-1 - annocheck: Fix notes analyzer to accept empty PPC64 notes. diff --git a/sources b/sources index 53c4078..d776fdd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.49.tar.xz) = d4945544f2956701c331f02643bfb6dc46d1faf3d0a13f8de61839ac30aa2b04cb6443a94cbdb17774b1bed0a6a93ccfac089271a2e9eef79be74d0c4dc166f3 +SHA512 (annobin-9.50.tar.xz) = 9ed047624be13c1838e7d247103f760d78f96d5b1172a29d3032c9ff797a97d68b451cc04b04e64632fbaf6b59e2cac50da03b655505a718d660ce322432a5ee From 409120aa0193414f399ad7ad70770f8c9ef99bea Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 10 Dec 2020 11:48:06 +0000 Subject: [PATCH 102/459] annocheck: Improve test for LTO compiled binaries that do not have -Wall annotations. (#1906171) --- .gitignore | 1 + annobin-gcc11.patch | 36 ------------------------------------ annobin.spec | 5 ++++- sources | 2 +- 4 files changed, 6 insertions(+), 38 deletions(-) delete mode 100644 annobin-gcc11.patch diff --git a/.gitignore b/.gitignore index 4cef3d3..95233ca 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /annobin-*.tar.xz +/annobin-9.51-1.fc34.src.rpm diff --git a/annobin-gcc11.patch b/annobin-gcc11.patch deleted file mode 100644 index 4248612..0000000 --- a/annobin-gcc11.patch +++ /dev/null @@ -1,36 +0,0 @@ ---- a/gcc-plugin/annobin.cc 2020-12-02 11:59:10.000000000 +0100 -+++ b/gcc-plugin/annobin.cc 2020-12-06 11:44:44.446266880 +0100 -@@ -752,12 +752,12 @@ annobin_get_str_option_by_name (const ch - #if GCCPLUGIN_VERSION_MAJOR >= 11 - /* GCC version 11 introduced the cl_vars array which provides offsets for - fields in global_options which are not handled by cl_options. */ -- struct cl_var * var = cl_vars; -+ const struct cl_var * var = cl_vars; - -- for (var = cl_vars; var->name != NULL; var ++) -- if (strmp (var->name, name) == 0) -+ for (var = cl_vars; var->var_name != NULL; var ++) -+ if (strcmp (var->var_name, name) == 0) - // FIXME: Cache the result ? -- return (const char *) (* (const char **) (((char *) annobin_global_options) + var->var_offset)); -+ return * (const char **) (((char *) annobin_global_options) + var->var_offset); - - annobin_inform (INFORM_VERBOSE, "WARN: gcc variable '%s' not found within cl_vars array", name); - #endif -@@ -772,12 +772,12 @@ annobin_get_int_option_by_name (const ch - #if GCCPLUGIN_VERSION_MAJOR >= 11 - /* GCC version 11 introduced the cl_vars array which provides offsets for - fields in global_options which are not handled by cl_options. */ -- struct cl_var * var = cl_vars; -+ const struct cl_var * var = cl_vars; - -- for (var = cl_vars; var->name != NULL; var ++) -- if (strmp (var->name, name) == 0) -+ for (var = cl_vars; var->var_name != NULL; var ++) -+ if (strcmp (var->var_name, name) == 0) - // FIXME: Cache the result ? -- return (const int) (* (const int **) (((char *) annobin_global_options) + var->var_offset)); -+ return * (int *) (((char *) annobin_global_options) + var->var_offset); - - annobin_inform (INFORM_VERBOSE, "WARN: gcc variable '%s' not found within cl_vars array", name); - #endif diff --git a/annobin.spec b/annobin.spec index 1e891ef..1da5612 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.50 +Version: 9.51 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -323,6 +323,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Dec 10 2020 Nick Clifton - 9.51-1 +- annocheck: Improve test for LTO compiled binaries that do not have -Wall annotations. (#1906171) + * Wed Dec 09 2020 Nick Clifton - 9.50-1 - annocheck: Mark a missining -D_FORTIFY_SOURCE as a FAIL. diff --git a/sources b/sources index d776fdd..a899444 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.50.tar.xz) = 9ed047624be13c1838e7d247103f760d78f96d5b1172a29d3032c9ff797a97d68b451cc04b04e64632fbaf6b59e2cac50da03b655505a718d660ce322432a5ee +SHA512 (annobin-9.51.tar.xz) = 75e018b5fa4637ee565d2f7e72f1651e2d1764c4b78c807992af74f0e93b7f1ab5c20b3f6e99b18785d0629f76e88458f085e81403bb5e0e0a89ede75cc9f12c From 8e0683cc134299cbdbe825b80796427acdabdc67 Mon Sep 17 00:00:00 2001 From: Martin Cermak Date: Thu, 10 Dec 2020 17:51:10 +0100 Subject: [PATCH 103/459] Introduce CI gating --- .fmf/version | 1 + gating.yaml | 19 +++++ plans/ci.fmf | 6 ++ tests/README | 2 + tests/Regression/identify/Makefile | 71 ++++++++++++++++ tests/Regression/identify/PURPOSE | 3 + tests/Regression/identify/main.fmf | 21 +++++ tests/Regression/identify/runtest.sh | 42 ++++++++++ .../lto-preprocessor-options/Makefile | 64 ++++++++++++++ .../lto-preprocessor-options/PURPOSE | 3 + .../lto-preprocessor-options/main.fmf | 15 ++++ .../lto-preprocessor-options/runtest.sh | 41 +++++++++ tests/Regression/testsuite/Makefile | 78 +++++++++++++++++ tests/Regression/testsuite/PURPOSE | 3 + tests/Regression/testsuite/main.fmf | 27 ++++++ tests/Regression/testsuite/runtest.sh | 83 +++++++++++++++++++ tests/Sanity/smoke/Makefile | 59 +++++++++++++ tests/Sanity/smoke/PURPOSE | 3 + tests/Sanity/smoke/main.fmf | 15 ++++ tests/Sanity/smoke/runtest.sh | 44 ++++++++++ 20 files changed, 600 insertions(+) create mode 100644 .fmf/version create mode 100644 gating.yaml create mode 100644 plans/ci.fmf create mode 100644 tests/README create mode 100644 tests/Regression/identify/Makefile create mode 100644 tests/Regression/identify/PURPOSE create mode 100644 tests/Regression/identify/main.fmf create mode 100755 tests/Regression/identify/runtest.sh create mode 100644 tests/Regression/lto-preprocessor-options/Makefile create mode 100644 tests/Regression/lto-preprocessor-options/PURPOSE create mode 100644 tests/Regression/lto-preprocessor-options/main.fmf create mode 100755 tests/Regression/lto-preprocessor-options/runtest.sh create mode 100644 tests/Regression/testsuite/Makefile create mode 100644 tests/Regression/testsuite/PURPOSE create mode 100644 tests/Regression/testsuite/main.fmf create mode 100755 tests/Regression/testsuite/runtest.sh create mode 100644 tests/Sanity/smoke/Makefile create mode 100644 tests/Sanity/smoke/PURPOSE create mode 100644 tests/Sanity/smoke/main.fmf create mode 100755 tests/Sanity/smoke/runtest.sh diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..ce3cdc1 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,19 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} +--- !Policy +product_versions: + - rhel-8 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} +--- !Policy +product_versions: + - rhel-9 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional} diff --git a/plans/ci.fmf b/plans/ci.fmf new file mode 100644 index 0000000..1ad2c12 --- /dev/null +++ b/plans/ci.fmf @@ -0,0 +1,6 @@ +summary: CI Gating Plan +discover: + how: fmf + directory: tests +execute: + how: beakerlib diff --git a/tests/README b/tests/README new file mode 100644 index 0000000..9ad59d4 --- /dev/null +++ b/tests/README @@ -0,0 +1,2 @@ +The test's Makefiles are not used in Fedora CI infrastructure. But are kept here +for backward compatibility with traditional beakerlib test harness in RHEL. diff --git a/tests/Regression/identify/Makefile b/tests/Regression/identify/Makefile new file mode 100644 index 0000000..f62f325 --- /dev/null +++ b/tests/Regression/identify/Makefile @@ -0,0 +1,71 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /tools/annobin/Regression/identify +# Description: identify +# Author: Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2019 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/tools/annobin/Regression/identify +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + +requires = annobin + +# https://mojo.redhat.com/docs/DOC-1072127 +dtsver = $(shell seq -s, 10 11) +dtsreq = $(shell echo {dev,gcc-}toolset-{$(dtsver)}{,-annocheck}) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Martin Cermak " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: identify" >> $(METADATA) + @echo "Type: Regression" >> $(METADATA) + @echo "TestTime: 48h" >> $(METADATA) + @echo "RunFor: annobin" >> $(METADATA) + $(foreach package, $(requires) $(dtsreq), \ + echo "Requires: $(package)" >> $(METADATA); \ + ) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5 -RHEL6" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/Regression/identify/PURPOSE b/tests/Regression/identify/PURPOSE new file mode 100644 index 0000000..3471618 --- /dev/null +++ b/tests/Regression/identify/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /tools/annobin/Regression/identify +Description: identify +Author: Martin Cermak diff --git a/tests/Regression/identify/main.fmf b/tests/Regression/identify/main.fmf new file mode 100644 index 0000000..a10e87d --- /dev/null +++ b/tests/Regression/identify/main.fmf @@ -0,0 +1,21 @@ +summary: identify +description: '' +contact: +- Martin Cermak +component: +- annobin +test: ./runtest.sh +framework: beakerlib +recommend: +- annobin +- devtoolset-10 +- devtoolset-10-annocheck +- devtoolset-11 +- devtoolset-11-annocheck +- gcc-toolset-10 +- gcc-toolset-10-annocheck +- gcc-toolset-11 +- gcc-toolset-11-annocheck +duration: 48h +extra-summary: /tools/annobin/Regression/identify +extra-task: /tools/annobin/Regression/identify diff --git a/tests/Regression/identify/runtest.sh b/tests/Regression/identify/runtest.sh new file mode 100755 index 0000000..d1b3b5f --- /dev/null +++ b/tests/Regression/identify/runtest.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/annobin/Regression/identify +# Description: identify +# Author: Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2019 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="annobin" + +rlJournalStart + rlPhaseStartTest + rlRun "tool_v=$(annocheck --version | awk '/^annocheck: Version/ {print $3}')" + rlRun "__RPM=$(rpm --queryformat='%{name}\n' -qf $(man -w annobin))" + rlRun "rpm_v=$(rpm -q --queryformat='%{version}\n' $__RPM)" + # Following fails for annobin-8.89-2.el8 + rlRun "[[ "x${tool_v}" == "x${rpm_v}." ]]" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/tests/Regression/lto-preprocessor-options/Makefile b/tests/Regression/lto-preprocessor-options/Makefile new file mode 100644 index 0000000..777e9de --- /dev/null +++ b/tests/Regression/lto-preprocessor-options/Makefile @@ -0,0 +1,64 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /tools/annobin/Regression/lto-preprocessor-options +# Description: lto-preprocessor-options +# Author: Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2020 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/tools/annobin/Regression/lto-preprocessor-options +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Martin Cermak " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: lto-preprocessor-options" >> $(METADATA) + @echo "Type: Regression" >> $(METADATA) + @echo "TestTime: 48h" >> $(METADATA) + @echo "RunFor: annobin" >> $(METADATA) + @echo "Requires: annobin annobin-annocheck redhat-rpm-config" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Bug: 1743635" >> $(METADATA) + @echo "Releases: -RHEL4 -RHEL6 -RHEL7 -RHELClient5 -RHELServer5" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/Regression/lto-preprocessor-options/PURPOSE b/tests/Regression/lto-preprocessor-options/PURPOSE new file mode 100644 index 0000000..c595c5e --- /dev/null +++ b/tests/Regression/lto-preprocessor-options/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /tools/annobin/Regression/lto-preprocessor-options +Description: lto-preprocessor-options +Author: Martin Cermak diff --git a/tests/Regression/lto-preprocessor-options/main.fmf b/tests/Regression/lto-preprocessor-options/main.fmf new file mode 100644 index 0000000..e76679d --- /dev/null +++ b/tests/Regression/lto-preprocessor-options/main.fmf @@ -0,0 +1,15 @@ +summary: lto-preprocessor-options +description: '' +contact: +- Martin Cermak +component: +- annobin +test: ./runtest.sh +framework: beakerlib +recommend: +- annobin +- annobin-annocheck +- redhat-rpm-config +duration: 48h +extra-summary: /tools/annobin/Regression/lto-preprocessor-options +extra-task: /tools/annobin/Regression/lto-preprocessor-options diff --git a/tests/Regression/lto-preprocessor-options/runtest.sh b/tests/Regression/lto-preprocessor-options/runtest.sh new file mode 100755 index 0000000..315169d --- /dev/null +++ b/tests/Regression/lto-preprocessor-options/runtest.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/annobin/Regression/lto-preprocessor-options +# Description: lto-preprocessor-options +# Author: Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2020 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="annobin" + +rlJournalStart + rlPhaseStartTest + b=`mktemp` + rlRun "echo 'int main (void) { return 0; }' | gcc -xc -o $b `rpm --eval "%build_cflags %build_ldflags"` -flto - " + rlRun "annocheck -v $b" + rm $b + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/tests/Regression/testsuite/Makefile b/tests/Regression/testsuite/Makefile new file mode 100644 index 0000000..94a9500 --- /dev/null +++ b/tests/Regression/testsuite/Makefile @@ -0,0 +1,78 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /tools/annobin/Regression/testsuite +# Description: testsuite +# Author: Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2018 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/tools/annobin/Regression/testsuite +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + +requires = annobin binutils-devel gcc-c++ elfutils elfutils-devel make rpm-build \ +rpm-devel gcc-plugin-devel yum yum-utils bzip2-devel + +# https://mojo.redhat.com/docs/DOC-1072127 +dtsver = $(shell seq -s, 9 11) +dtsreq = $(shell echo {dev,gcc-}toolset-{$(dtsver)}-{build,elfutils{,-devel},gcc{,-c++,-plugin-devel},binutils{,-devel},annobin{,-annocheck}}) + + +installdeps: + yum -y install $(requires) + +showdeps: + echo $(requires) + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Martin Cermak " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: testsuite" >> $(METADATA) + @echo "Type: Regression" >> $(METADATA) + @echo "TestTime: 48h" >> $(METADATA) + @echo "RunFor: annobin" >> $(METADATA) + $(foreach package, $(requires) $(dtsreq), \ + echo "Requires: $(package)" >> $(METADATA); \ + ) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/Regression/testsuite/PURPOSE b/tests/Regression/testsuite/PURPOSE new file mode 100644 index 0000000..d639443 --- /dev/null +++ b/tests/Regression/testsuite/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /tools/annobin/Regression/testsuite +Description: testsuite +Author: Martin Cermak diff --git a/tests/Regression/testsuite/main.fmf b/tests/Regression/testsuite/main.fmf new file mode 100644 index 0000000..78271da --- /dev/null +++ b/tests/Regression/testsuite/main.fmf @@ -0,0 +1,27 @@ +summary: testsuite +description: '' +contact: +- Martin Cermak +component: +- annobin +test: ./runtest.sh +framework: beakerlib +recommend: +- annobin +- annobin-annocheck +- binutils-devel +- gcc +- gcc-c++ +- elfutils +- elfutils-devel +- make +- rpm-build +- rpm-devel +- gcc-plugin-devel +- yum +- dnf +- yum-utils +- bzip2-devel +duration: 48h +extra-summary: /tools/annobin/Regression/testsuite +extra-task: /tools/annobin/Regression/testsuite diff --git a/tests/Regression/testsuite/runtest.sh b/tests/Regression/testsuite/runtest.sh new file mode 100755 index 0000000..4a92cd9 --- /dev/null +++ b/tests/Regression/testsuite/runtest.sh @@ -0,0 +1,83 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/annobin/Regression/testsuite +# Description: testsuite +# Author: Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2018 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="${PACKAGE:-$(rpm -qf --queryformat=%{name} $(man -w annobin))}" +export PACKAGE + +GCC="${GCC:-$(which gcc)}" + + +rlJournalStart + rlPhaseStartSetup + rlLogInfo "PACKAGES=$PACKAGES" + rlLogInfo "REQUIRES=$REQUIRES" + rlLogInfo "COLLECTIONS=$COLLECTIONS" + rlLogInfo "X_SCLS=$X_SCLS" + rlLogInfo "GCC=$GCC" + + # In case more than one devtoolset- or gcc-toolset -build package is + # installed (they can co-exist from the packaging persp, but their + # coexistence causes unexpected results with rpm macros), then we have + # a mess of defined rpm macros coming e.g. from + # /etc/rpm/macros.gcc-toolset-10-config + # /etc/rpm/macros.gcc-toolset-9-config etc. To have just the needed + # macros (respective to given SCL under test) defined without + # uninstalling unneeded RPMs, we'll need an override mechanism. The + # following assumes just one SCL *enabled* (more than one installed), + # and doesn't care of a (useless) revert: + echo ${X_SCLS} | fgrep toolset && \ + rlRun "cat /etc/rpm/*${X_SCLS%\ }* > ~/.rpmmacros" + + rlAssertRpm $PACKAGE + rlRun "TMP=\$(mktemp -d)" + rlRun "pushd $TMP" + + rlFetchSrcForInstalled $PACKAGE + rlRun "yum-builddep -y *src.rpm" + rlRun "rpm --define='_topdir $TMP' -Uvh *src.rpm" + rlRun "rpmbuild --define='_topdir $TMP' -bc SPECS/annobin.spec" + rlPhaseEnd + + rlPhaseStartTest + rlRun "pushd BUILD/annobin-*" + set -o pipefail + rlRun "make check |& tee $TMP/check.log" + rlRun -l "grep '^PASS:' $TMP/check.log" 0 + rlRun -l "grep '^FAIL:' $TMP/check.log" 1 + PASSCOUNT=$(grep '^PASS:' $TMP/check.log | wc -l) + rlRun "[[ $PASSCOUNT -ge 7 ]]" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TMP" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/tests/Sanity/smoke/Makefile b/tests/Sanity/smoke/Makefile new file mode 100644 index 0000000..0ed8978 --- /dev/null +++ b/tests/Sanity/smoke/Makefile @@ -0,0 +1,59 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /tools/annobin/Sanity/smoke +# Description: smoke test for annobin plugin +# Author: Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2019 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/tools/annobin/Sanity/smoke +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Martin Cermak " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: smoke test for annobin plugin" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 48h" >> $(METADATA) + @echo "License: GPL" >> $(METADATA) + @echo "RunFor: annobin" >> $(METADATA) + @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/Sanity/smoke/PURPOSE b/tests/Sanity/smoke/PURPOSE new file mode 100644 index 0000000..ad364a5 --- /dev/null +++ b/tests/Sanity/smoke/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /tools/annobin/Sanity/smoke +Description: smoke test for annobin plugin +Author: Martin Cermak diff --git a/tests/Sanity/smoke/main.fmf b/tests/Sanity/smoke/main.fmf new file mode 100644 index 0000000..5c30808 --- /dev/null +++ b/tests/Sanity/smoke/main.fmf @@ -0,0 +1,15 @@ +summary: smoke test for annobin plugin +description: '' +contact: +- Martin Cermak +component: +- annobin +test: ./runtest.sh +framework: beakerlib +recommend: +- man-db +- annobin +- annobin-annocheck +duration: 48h +extra-summary: /tools/annobin/Sanity/smoke +extra-task: /tools/annobin/Sanity/smoke diff --git a/tests/Sanity/smoke/runtest.sh b/tests/Sanity/smoke/runtest.sh new file mode 100755 index 0000000..0f39938 --- /dev/null +++ b/tests/Sanity/smoke/runtest.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/annobin/Sanity/smoke +# Description: smoke test for annobin plugin +# Author: Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2019 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="annobin" + +rlJournalStart + rlPhaseStartSetup + rlRun "which gcc" + rlRun "man -w annobin" + rlRun "echo $X_SCLS" + rlPhaseEnd + + rlPhaseStartTest + rlRun "echo 'int main() {return 0;}' | gcc -xc -fplugin=annobin -o /dev/null -" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd From 4a3a6f104ec65dfd118bec75cf8093a57c2b210e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 11 Dec 2020 14:53:32 +0000 Subject: [PATCH 104/459] annocheck: When a binary is produced both by GAS and GCC, select GAS as the real producer. (#1906171) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 1da5612..fb25bd8 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.51 +Version: 9.52 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -323,6 +323,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Dec 11 2020 Nick Clifton - 9.52-1 +- annocheck: When a binary is produced both by GAS and GCC, select GAS as the real producer. (#1906171) + * Thu Dec 10 2020 Nick Clifton - 9.51-1 - annocheck: Improve test for LTO compiled binaries that do not have -Wall annotations. (#1906171) diff --git a/sources b/sources index a899444..0360481 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.51.tar.xz) = 75e018b5fa4637ee565d2f7e72f1651e2d1764c4b78c807992af74f0e93b7f1ab5c20b3f6e99b18785d0629f76e88458f085e81403bb5e0e0a89ede75cc9f12c +SHA512 (annobin-9.52.tar.xz) = 32068d76b2904c4d81ac57d7eaf1fa140fcf9edfd6c863f4ba845a445061e24bd5b9d118cfdd9bee20b083186a4d49f0067454c016ab8159e61feaf1b33180e2 From 55099074361fd2d2e9d25de3a9dc6d7f710cb952 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 11 Dec 2020 17:04:35 +0000 Subject: [PATCH 105/459] NVR bump in order to allow the new gating tests to be run. --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index fb25bd8..8f39353 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.52 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -323,6 +323,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Dec 11 2020 Nick Clifton - 9.52-2 +- NVR bump in order to allow the new gating tests to be run. + * Fri Dec 11 2020 Nick Clifton - 9.52-1 - annocheck: When a binary is produced both by GAS and GCC, select GAS as the real producer. (#1906171) From f470483cbf9e18e4cc6b28d4aa0cb67b4cd3e6de Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 16 Dec 2020 23:29:24 +0000 Subject: [PATCH 106/459] Add BuildRequires: make https://fedoraproject.org/wiki/Changes/Remove_make_from_BuildRoot --- annobin.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/annobin.spec b/annobin.spec index 8f39353..76ac912 100644 --- a/annobin.spec +++ b/annobin.spec @@ -159,6 +159,7 @@ Summary: A tool for checking the security hardening status of binaries BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel %if %{with debuginfod} BuildRequires: elfutils-debuginfod-client-devel +BuildRequires: make %endif %description annocheck From 3bac683d82a81705043283e674b9c76334988a24 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 4 Jan 2021 16:18:52 +0000 Subject: [PATCH 107/459] Add support for -D_FORTIFY_SOURCE=3. --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 76ac912..662003e 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.52 -Release: 2%{?dist} +Version: 9.53 +Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -324,6 +324,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Jan 04 2020 Nick Clifton - 9.53-1 +- Add support for -D_FORTIFY_SOURCE=3. + * Fri Dec 11 2020 Nick Clifton - 9.52-2 - NVR bump in order to allow the new gating tests to be run. diff --git a/sources b/sources index 0360481..a4db84c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.52.tar.xz) = 32068d76b2904c4d81ac57d7eaf1fa140fcf9edfd6c863f4ba845a445061e24bd5b9d118cfdd9bee20b083186a4d49f0067454c016ab8159e61feaf1b33180e2 +SHA512 (annobin-9.53.tar.xz) = 2c9d2f57a3770cbe62f859ef8b81fe3487559e22d181187f4ebfbed5f0d6aae7027b0e0ffbd99efaa1961b35f288dcb593514539f0215a666c7a28a924040321 From d119c7a74a9b0220a55df34cdef90c53974647e8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 12 Jan 2021 17:19:21 +0000 Subject: [PATCH 108/459] Improved testing by annocheck. Add fixed format message mode. --- annobin.spec | 10 ++++++++-- sources | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 662003e..9102f0f 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.53 +Version: 9.55 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -324,7 +324,13 @@ fi #--------------------------------------------------------------------------------- %changelog -* Mon Jan 04 2020 Nick Clifton - 9.53-1 +* Tue Jan 12 2021 Nick Clifton - 9.55-1 +- Improved testing by annocheck. Add fixed format message mode. + +* Mon Jan 04 2021 Nick Clifton - 9.54-1 +- Fix inconsistency reporting -fcf-protection and -fstack-clash-protection results. + +* Mon Jan 04 2021 Nick Clifton - 9.53-1 - Add support for -D_FORTIFY_SOURCE=3. * Fri Dec 11 2020 Nick Clifton - 9.52-2 diff --git a/sources b/sources index a4db84c..46d2dda 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.53.tar.xz) = 2c9d2f57a3770cbe62f859ef8b81fe3487559e22d181187f4ebfbed5f0d6aae7027b0e0ffbd99efaa1961b35f288dcb593514539f0215a666c7a28a924040321 +SHA512 (annobin-9.55.tar.xz) = 5f7a580e95aa2057fbc6561ba6dcbc451c90763c10bbe4600a53d8be95a25ea40a1c83da6c64a7b625acffb664afbbc9d86565cf909123d0ae71ac3ad49c80f3 From 8b182011dae6f24172d47ec0538eb5c19ca5e399 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 13 Jan 2021 10:30:18 +0000 Subject: [PATCH 109/459] Fix bogus AArch64 test failures. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 9102f0f..f323cb0 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.55 +Version: 9.56 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -324,6 +324,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jan 13 2021 Nick Clifton - 9.56-1 +- Fix bogus AArch64 test failures. + * Tue Jan 12 2021 Nick Clifton - 9.55-1 - Improved testing by annocheck. Add fixed format message mode. diff --git a/sources b/sources index 46d2dda..d893374 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.55.tar.xz) = 5f7a580e95aa2057fbc6561ba6dcbc451c90763c10bbe4600a53d8be95a25ea40a1c83da6c64a7b625acffb664afbbc9d86565cf909123d0ae71ac3ad49c80f3 +SHA512 (annobin-9.56.tar.xz) = 0d594c5ced8f4181f0ab73a7f118e88bd0c0fcb81dc3127fbafcee39f67ce1e2aeb0d660620d54a5995744af898e2b03e8c5df67f94eb8fe28af3ce6f26cde99 From 1874eab6f1d86c98d977e659397381fbdf3a0942 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 14 Jan 2021 10:37:21 +0000 Subject: [PATCH 110/459] Workaround for elflint problems with PPC compiled files. Resolves: #1880634 --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index f323cb0..7e74807 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.56 +Version: 9.57 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -324,6 +324,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jan 13 2021 Nick Clifton - 9.57-1 +- Workaround for elflint problems with PPC compiled files. (#1880634) + * Wed Jan 13 2021 Nick Clifton - 9.56-1 - Fix bogus AArch64 test failures. diff --git a/sources b/sources index d893374..3a563e8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.56.tar.xz) = 0d594c5ced8f4181f0ab73a7f118e88bd0c0fcb81dc3127fbafcee39f67ce1e2aeb0d660620d54a5995744af898e2b03e8c5df67f94eb8fe28af3ce6f26cde99 +SHA512 (annobin-9.57.tar.xz) = 866976e736ed2cba7b5b28f7ed5e21ae02aa74841a44ea0f24da4fe49019cdc5e0a969d34af48d4b49367516e97f1b64371c3dcd0b4dca939a98e1842f9525ce From df15f450f0c693b52c7f325bdeb285ca5e73fd67 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 18 Jan 2021 18:09:39 +0000 Subject: [PATCH 111/459] Add the ability to disable the warning message about -D_FORTIFY_SOURCE being missing. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 7e74807..b72830a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.57 +Version: 9.58 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -324,6 +324,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Jan 18 2021 Nick Clifton - 9.58-1 +- Add the ability to disable the warning message about -D_FORTIFY_SOURCE being missing. + * Wed Jan 13 2021 Nick Clifton - 9.57-1 - Workaround for elflint problems with PPC compiled files. (#1880634) diff --git a/sources b/sources index 3a563e8..2e810fc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.57.tar.xz) = 866976e736ed2cba7b5b28f7ed5e21ae02aa74841a44ea0f24da4fe49019cdc5e0a969d34af48d4b49367516e97f1b64371c3dcd0b4dca939a98e1842f9525ce +SHA512 (annobin-9.58.tar.xz) = 00282144362bca4a200068b98a0b48a3bd682d0b5d7f074d106ab107128bffca3514eb1a832c724d34e688e55f83455e5daa0ebd7dc6a58edd971609ff4c43a1 From 3a4181e53136e856ba051cee2fbda74cace7f668 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 20 Jan 2021 11:15:10 +0000 Subject: [PATCH 112/459] Add a future fail for the presence of RPATH in the dynamic tags. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index b72830a..d5a629a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.58 +Version: 9.59 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -324,6 +324,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jan 20 2021 Nick Clifton - 9.59-1 +- Add a future fail for the presence of RPATH in the dynamic tags. + * Mon Jan 18 2021 Nick Clifton - 9.58-1 - Add the ability to disable the warning message about -D_FORTIFY_SOURCE being missing. diff --git a/sources b/sources index 2e810fc..8ef90c9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.58.tar.xz) = 00282144362bca4a200068b98a0b48a3bd682d0b5d7f074d106ab107128bffca3514eb1a832c724d34e688e55f83455e5daa0ebd7dc6a58edd971609ff4c43a1 +SHA512 (annobin-9.59.tar.xz) = da4560b84f3be06da37b243addb0f34f6f0b247e8bcfb273c0ecab6f131241e14dddf85546dde2281fb2e4afdec07604ae61102f1a16af9506869a8b6701c5ad From 7c612863222e161ed7807c8f4f2046a02b114176 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 26 Jan 2021 00:07:03 +0000 Subject: [PATCH 113/459] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index d5a629a..7030b69 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.59 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -324,6 +324,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Jan 26 2021 Fedora Release Engineering - 9.59-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Wed Jan 20 2021 Nick Clifton - 9.59-1 - Add a future fail for the presence of RPATH in the dynamic tags. From ebf96c4e2b2efeb32b02f34dc5e235ba7147d948 Mon Sep 17 00:00:00 2001 From: Martin Cermak Date: Tue, 2 Feb 2021 12:21:12 +0100 Subject: [PATCH 114/459] Introduce kernel rebuild CI test Introduce baseos-qe.koji-build.scratch-build.validation as a new gating test for annobin. The test makes sure that the annobin update under test doesn't break the kernel build process. The testing kernel build happens in koji in a side-tag buildroot containing the annobin build under test. The source code of this new testcase lives here: https://github.com/fedora-ci/scratch-build-test In case of a failure that is considered a false positive, the test result can be waived using Bodhi this way: https://docs.fedoraproject.org/en-US/ci/gating/#_waive --- gating.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/gating.yaml b/gating.yaml index ce3cdc1..84b7773 100644 --- a/gating.yaml +++ b/gating.yaml @@ -5,6 +5,7 @@ decision_context: bodhi_update_push_stable subject_type: koji_build rules: - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} + - !PassingTestCaseRule {test_case_name: baseos-qe.koji-build.scratch-build.validation} --- !Policy product_versions: - rhel-8 From 2cfdfdf4f4f049f96acf5ba1848354cdf6d8ada1 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 5 Feb 2021 11:21:57 +0000 Subject: [PATCH 115/459] Add some GO tests to annocheck. --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 7030b69..b089a8f 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.59 -Release: 2%{?dist} +Version: 9.60 +Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -324,6 +324,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Feb 05 2021 Nick Clifton - 9.60-1 +- Add some GO tests to annocheck. + * Tue Jan 26 2021 Fedora Release Engineering - 9.59-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild diff --git a/sources b/sources index 8ef90c9..7c81e4f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.59.tar.xz) = da4560b84f3be06da37b243addb0f34f6f0b247e8bcfb273c0ecab6f131241e14dddf85546dde2281fb2e4afdec07604ae61102f1a16af9506869a8b6701c5ad +SHA512 (annobin-9.60.tar.xz) = 52e9c322938ea75b6b85dbaec573128d090789c0a305a69c24b4e6bdd697c939fcc11006ed5880507970d288a48fe569820a9a92b423e520636ad6dc82e9235c From 92c8279fc37b4fca487bcfae55a9de17359144bc Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 10 Feb 2021 19:21:28 +0000 Subject: [PATCH 116/459] Split plugins into separate sub-packages Since annobin is required by redhat-rpm-config, having the clang and llvm plugins as part of the default package means that llvm-libs is always installed into the buildroot, which is unnecessary for most packages. Also, having an llvm depenency in the buildroot makes upgrading llvm more difficult. This patch attempts to resolve these issues by spliting up the various plugins into their own sub-packages, so that redhat-rpm-config can have finer-grained dependencies on only the plugins that it needs. --- annobin.spec | 88 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 74 insertions(+), 14 deletions(-) diff --git a/annobin.spec b/annobin.spec index b089a8f..2d3ed8d 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.60 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -51,6 +51,10 @@ License: GPLv3+ %undefine _annotated_build %endif +%{!?llvm_version:%global llvm_version 11.1.0} +%{!?llvm_plugin_dir:%global llvm_plugin_dir %{_libdir}/llvm/%{llvm_version}} +%{!?clang_plugin_dir:%global clang_plugin_dir %{_libdir}/clang/%{llvm_version}} + #--------------------------------------------------------------------------------- Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz @@ -113,6 +117,18 @@ Requires: (gcc >= %{gcc_major} with gcc < %{gcc_next}) Requires: gcc %endif +%if %{with gccplugin} +Requires: annobin-plugin-gcc +%endif + +%if %{with llvmplugin} +Requires: annobin-plugin-llvm +%endif + +%if %{with clangplugin} +Requires: annobin-plugin-clang +%endif + BuildRequires: gcc gcc-plugin-devel gcc-c++ # The documentation uses pod2man... BuildRequires: perl perl-podlators @@ -169,20 +185,48 @@ hardening options. %endif +#--------------------------------------------------------------------------------- +%if %{with gccplugin} + +%package plugin-gcc +Summary: annobin gcc plugin + +Conflicts: annobin <= 9.60-1 + +%description plugin-gcc +Installs an annobin plugin that can be used by gcc. + +%endif + +#--------------------------------------------------------------------------------- +%if %{with llvmplugin} + +%package plugin-llvm +Summary: annobin llvm plugin + +Conflicts: annobin <= 9.60-1 + +%description plugin-llvm +Installs an annobin plugin that can be used by llvm tools. + +%endif + +#--------------------------------------------------------------------------------- +%if %{with clangplugin} + +%package plugin-clang +Summary: annobin clang plugin + +Conflicts: annobin <= 9.60-1 + +%description plugin-clang +Installs an annobin plugin that can be used by clang. + +%endif #--------------------------------------------------------------------------------- %global ANNOBIN_GCC_PLUGIN_DIR %(gcc --print-file-name=plugin) -%if %{with clangplugin} || %{with llvmplugin} -# FIXME: We currently assume that the first directory listed in clang's -# search directory output is the one that we should use for plugins. -# This might not be correct. -# The gensub() below is because without it $2 would look like: -# " =/usr/lib64/clang/8.0.0" -# Note - we install LLVM plugins into the same directory as Clang plugins. -%global ANNOBIN_CLANG_PLUGIN_DIR %(clang --print-search-dirs | gawk -e'BEGIN { FS = ":" } /libraries/ { print gensub(" =","",1,$2) } END { }') -%endif - #--------------------------------------------------------------------------------- %prep @@ -278,7 +322,13 @@ make -C llvm-plugin all CXXFLAGS="%{optflags} $BUILD_FLAGS" # PLUGIN_INSTALL_DIR is used by the Clang and LLVM makefiles... %install -%make_install PLUGIN_INSTALL_DIR=$RPM_BUILD_ROOT%{ANNOBIN_CLANG_PLUGIN_DIR} +%make_install PLUGIN_INSTALL_DIR=%{buildroot}/%{llvm_plugin_dir} + +%if %{with clangplugin} +# Move clang plugin to a seperate directory. +mkdir -p %{buildroot}/%{clang_plugin_dir} +mv %{buildroot}/%{llvm_plugin_dir}/annobin-for-clang.so %{buildroot}/%{clang_plugin_dir} +%endif rm -f %{buildroot}%{_infodir}/dir #--------------------------------------------------------------------------------- @@ -307,11 +357,18 @@ fi %{_mandir}/man1/hardened.1* %{_mandir}/man1/run-on-binaries-in.1* -%if %{with clangplugin} || %{with llvmplugin} -%{ANNOBIN_CLANG_PLUGIN_DIR} +%if %{with llvmplugin} +%files plugin-llvm +%{llvm_plugin_dir}/annobin-for-llvm.so +%endif + +%if %{with clangplugin} +%files plugin-clang +%{clang_plugin_dir}/annobin-for-clang.so %endif %if %{with gccplugin} +%files plugin-gcc %{ANNOBIN_GCC_PLUGIN_DIR} %endif @@ -324,6 +381,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Feb 10 2021 Tom Stellard = 9.60-2 +- Split plugins into separate sub-packages + * Fri Feb 05 2021 Nick Clifton - 9.60-1 - Add some GO tests to annocheck. From a35ca900df7f912e9dc591177ebfbf2e5dedf741 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 22 Feb 2021 13:02:23 +0000 Subject: [PATCH 117/459] Annocheck: Fix some problems with tests for missing notes. --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 2d3ed8d..b50a137 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.60 -Release: 2%{?dist} +Version: 9.61 +Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -381,6 +381,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Feb 22 2021 Nick Clifton - 9.61-1 +- Annocheck: Fix some problems with tests for missing notes. + * Wed Feb 10 2021 Tom Stellard = 9.60-2 - Split plugins into separate sub-packages diff --git a/sources b/sources index 7c81e4f..bbb51a2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.60.tar.xz) = 52e9c322938ea75b6b85dbaec573128d090789c0a305a69c24b4e6bdd697c939fcc11006ed5880507970d288a48fe569820a9a92b423e520636ad6dc82e9235c +SHA512 (annobin-9.61.tar.xz) = d46658ce090bb7aee71dbac9c8112a5cf623f06a32505118c70ddb5fb27ef88d5d1feaf50fe2267ab597fb2a5a407b6989796d24e1693a561808aed98afe1485 From 891fad1c0c0944e5f7006d65e06c6af508a825d1 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 25 Feb 2021 11:22:54 +0000 Subject: [PATCH 118/459] Annocheck: Add colour to some messages. Skip the deliberate use of -fno-stack-protector. Resolves: #1923439 --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index b50a137..1c94073 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.61 +Version: 9.62 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -381,6 +381,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Feb 25 2021 Nick Clifton - 9.62-1 +- Annocheck: Add colour to some messages. Skip the deliberate use of -fno-stack-protector. (#1923439) + * Mon Feb 22 2021 Nick Clifton - 9.61-1 - Annocheck: Fix some problems with tests for missing notes. diff --git a/sources b/sources index bbb51a2..f8cc483 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.61.tar.xz) = d46658ce090bb7aee71dbac9c8112a5cf623f06a32505118c70ddb5fb27ef88d5d1feaf50fe2267ab597fb2a5a407b6989796d24e1693a561808aed98afe1485 +SHA512 (annobin-9.62.tar.xz) = e8bea6fa41c35c2adb9ef6f6bae9cf3bd412ee5ff1dd1f73d5533c33284db637f3052c98a25aae25cf3842fbe3beacd2678a45b48fad7c970ca75baeb1da23b0 From 1720e01afeeda67da9b1def8c95da37ed3eaec99 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 26 Feb 2021 10:09:08 +0000 Subject: [PATCH 119/459] Annocheck: FAIL the deliberate use of -fno-stack-protector, but add some exceptions for glibc. Resolves: #1923439 --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 1c94073..30c5227 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.62 +Version: 9.63 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -381,6 +381,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Feb 26 2021 Nick Clifton - 9.63-1 +- Annocheck: FAIL the deliberate use of -fno-stack-protector, but add some exceptions for glibc. (#1923439) + * Thu Feb 25 2021 Nick Clifton - 9.62-1 - Annocheck: Add colour to some messages. Skip the deliberate use of -fno-stack-protector. (#1923439) diff --git a/sources b/sources index f8cc483..ad66bc8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.62.tar.xz) = e8bea6fa41c35c2adb9ef6f6bae9cf3bd412ee5ff1dd1f73d5533c33284db637f3052c98a25aae25cf3842fbe3beacd2678a45b48fad7c970ca75baeb1da23b0 +SHA512 (annobin-9.63.tar.xz) = 308cabe8fe19ab84fed276d3b0bc31fc1c2875fc0bdf705299b607899fa067231ad27f4869244a09d74cfa57f285b76fac3b88e10364f8dd595aeac9389f742b From 60c8169066ad001d98493c6de44c6d15bcc95dfe Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 3 Mar 2021 10:10:12 +0000 Subject: [PATCH 120/459] Annocheck: Fix detection of special function names. Resolves: #1934189 --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 30c5227..9a0a9bd 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.63 +Version: 9.64 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -381,6 +381,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Mar 03 2021 Nick Clifton - 9.64-1 +- Annocheck: Fix detection of special function names. (#1934189) + * Fri Feb 26 2021 Nick Clifton - 9.63-1 - Annocheck: FAIL the deliberate use of -fno-stack-protector, but add some exceptions for glibc. (#1923439) diff --git a/sources b/sources index ad66bc8..403081f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.63.tar.xz) = 308cabe8fe19ab84fed276d3b0bc31fc1c2875fc0bdf705299b607899fa067231ad27f4869244a09d74cfa57f285b76fac3b88e10364f8dd595aeac9389f742b +SHA512 (annobin-9.64.tar.xz) = 7ae7fbaf5d41a2e7e52f8b2bb3aebd8fbb3899f60ba7060bbefcd0aaa1a53656e2aed49d3ce268f3efd53538c9f6545de213f204adefd9e9a87212c55d063db9 From 4a7311622e14b09a5db818fb3d7e25ef6a90b7db Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 9 Mar 2021 13:38:59 +0000 Subject: [PATCH 121/459] gcc-plugin: Use a fixed filename when running in LTO mode. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 9a0a9bd..99cdefa 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.64 +Version: 9.65 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -381,6 +381,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Mar 09 2021 Nick Clifton - 9.65-1 +- gcc-plugin: Use a fixed filename when running in LTO mode. + * Wed Mar 03 2021 Nick Clifton - 9.64-1 - Annocheck: Fix detection of special function names. (#1934189) diff --git a/sources b/sources index 403081f..143b60c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.64.tar.xz) = 7ae7fbaf5d41a2e7e52f8b2bb3aebd8fbb3899f60ba7060bbefcd0aaa1a53656e2aed49d3ce268f3efd53538c9f6545de213f204adefd9e9a87212c55d063db9 +SHA512 (annobin-9.65.tar.xz) = 5b5e5f988700232d31c5087ad9880a4bd0aaaa0927b1e4c913f1427ae63c768867b99a8fb282e82865c53f896a925a29dddac9a643144dfc74aacb74b7138426 From c910f2212a672328133056749265c29211fee21a Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sat, 20 Mar 2021 11:05:06 +0100 Subject: [PATCH 122/459] 9.65-2 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 99cdefa..1e854b3 100644 --- a/annobin.spec +++ b/annobin.spec @@ -36,7 +36,7 @@ License: GPLv3+ # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 -%bcond_without plugin_rebuild +%bcond_with plugin_rebuild # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. @@ -381,6 +381,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Sat Mar 20 2021 Jakub Jelinek - 9.65-2 +- NVR bump to rebuild against GCC 11.0.1 + * Tue Mar 09 2021 Nick Clifton - 9.65-1 - gcc-plugin: Use a fixed filename when running in LTO mode. From d57da4f97647f76692ff865ee1aa64ca1d960eb1 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 6 Apr 2021 12:44:50 +0100 Subject: [PATCH 123/459] NVR bump to allow rebuilding against GCC 11.0.1 --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 1e854b3..ed6b5d5 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.65 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com From 90e03be33086e628a8a3ed3eabe20859da264a7e Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Mon, 29 Mar 2021 18:06:06 +0000 Subject: [PATCH 124/459] Add gating test to check annobin works with Fedora compiler flags --- tests/tests.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 tests/tests.yml diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..0cb592f --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,17 @@ +- hosts: localhost + roles: + - role: standard-test-basic + tags: + - classic + required_packages: + # gcc-fedora-flags + - rpm + - redhat-rpm-config + - gcc + - gcc-c++ + - annobin-annocheck + repositories: + - repo: https://src.fedoraproject.org/rpms/redhat-rpm-config.git + dest: redhat-rpm-config + tests: + - redhat-rpm-config/tests/gcc-fedora-flags From 296c2a76fbc6411c069607f94f70172333b7d829 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 9 Apr 2021 14:51:58 +0100 Subject: [PATCH 125/459] - Fix anomolies reported by covscan. - Move documentation into a sub-package. --- annobin.spec | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/annobin.spec b/annobin.spec index ed6b5d5..164cf67 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.65 -Release: 2%{?dist} +Version: 9.66 +Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -46,7 +46,9 @@ License: GPLv3+ # was built is different from the version of gcc that is now being used, and # then it will abort. # -# The default is to use annobin. cf BZ 1630550. +# The default was to use plugin during rebuilds (cf BZ 1630550) but this has +# been changed because of the need to be able to rebuild annobin when a change +# to gcc breaks the version installed into the buildroot. %if %{without plugin_rebuild} %undefine _annotated_build %endif @@ -154,7 +156,24 @@ Also provides a plugin for Clang which performs a similar function. Also provides a plugin for LLVM which performs a similar function. %endif -#--------------------------------------------------------------------------------- +#--------------------------------------------------------------------------- + +# Now that we have sub-packages for all of the plugins and for annocheck, +# there are no executables left to go into the "annobin" rpm. But top-level +# packages cannot have "BuildArch: noarch" if sub-packages do have +# architecture requirements, and rpmlint generates an error if an +# architecture specific rpm does not contain any binaries. So instead all of +# the documentation has been moved into an architecture neutral sub-package, +# and there no longer is a top level annobin rpm at all. + +%package docs +Summary: Documentation and shell scripts for use with annobin +BuildArch: noarch + +%description docs +Provides the documentation files and example shell scripts for use with annobin. + +#---------------------------------------------------------------------------- %if %{with tests} %package tests @@ -166,7 +185,7 @@ of the resulting files. %endif -#--------------------------------------------------------------------------------- +#---------------------------------------------------------------------------- %if %{with annocheck} %package annocheck @@ -185,7 +204,7 @@ hardening options. %endif -#--------------------------------------------------------------------------------- +#---------------------------------------------------------------------------- %if %{with gccplugin} %package plugin-gcc @@ -345,7 +364,7 @@ fi #--------------------------------------------------------------------------------- -%files +%files docs %license COPYING3 LICENSE %exclude %{_datadir}/doc/annobin-plugin/COPYING3 %exclude %{_datadir}/doc/annobin-plugin/LICENSE @@ -381,6 +400,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Apr 09 2021 Nick Clifton - 9.66-1 +- Fix anomolies reported by covscan. +- Move documentation into a sub-package. + * Sat Mar 20 2021 Jakub Jelinek - 9.65-2 - NVR bump to rebuild against GCC 11.0.1 From 1d6e1bf89261e3430922ed5c1db83ed7b55c022f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 9 Apr 2021 14:58:04 +0100 Subject: [PATCH 126/459] Add new sources --- sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources b/sources index 143b60c..41d4506 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.65.tar.xz) = 5b5e5f988700232d31c5087ad9880a4bd0aaaa0927b1e4c913f1427ae63c768867b99a8fb282e82865c53f896a925a29dddac9a643144dfc74aacb74b7138426 +SHA512 (annobin-9.66.tar.xz) = ea9a2b4b18bc5a558c5bcd2dcdb4446be3b7ebea651ae79a14244da906bbae0da39032469eda2f41ba7254fa9ef89f9cf8ae9e29de18b4c33fe5c4e1d18f4fd9 From 985cb77f4ce64f631455e224a07e60394fd76a24 Mon Sep 17 00:00:00 2001 From: Martin Cermak Date: Fri, 16 Apr 2021 09:16:09 +0200 Subject: [PATCH 127/459] Fix bz1949570 - file conflicts after separating docs to a noarch subrpm --- annobin.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 164cf67..66e5fc2 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.66 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -169,6 +169,8 @@ Also provides a plugin for LLVM which performs a similar function. %package docs Summary: Documentation and shell scripts for use with annobin BuildArch: noarch +Obsoletes: %{name} < %{version}-%{release} +Obsoletes: %{name}-docs < %{version}-%{release} %description docs Provides the documentation files and example shell scripts for use with annobin. @@ -400,6 +402,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Apr 15 2021 Martin Cermak - 9.66-2 +- Fix bz1949570 + * Fri Apr 09 2021 Nick Clifton - 9.66-1 - Fix anomolies reported by covscan. - Move documentation into a sub-package. From 62f4dedb91a7e445644a0e8e9ea9b1ffb50c20c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Fri, 16 Apr 2021 13:05:54 +0200 Subject: [PATCH 128/459] Correct a package rename annobin-9.65 which only contained documentation was renamed to annobin-docs in in 9.66. The Provide is kept for compatibility (redhat-rpm-config). The docs subpackage must be required by all the other ones because it packages a license. --- annobin.spec | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 66e5fc2..fcbdd66 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.66 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -169,8 +169,10 @@ Also provides a plugin for LLVM which performs a similar function. %package docs Summary: Documentation and shell scripts for use with annobin BuildArch: noarch -Obsoletes: %{name} < %{version}-%{release} -Obsoletes: %{name}-docs < %{version}-%{release} +# annobin renamed to annobin-doc in 9.66-1 +Provides: %{name} = %{version}-%{release} +# /usr/share/info/annobin.info.gz moved from annobin to annobin-docs +Conflicts: %{name} < 9.66-1 %description docs Provides the documentation files and example shell scripts for use with annobin. @@ -180,6 +182,7 @@ Provides the documentation files and example shell scripts for use with annobin. %package tests Summary: Test scripts and binaries for checking the behaviour and output of the annobin plugin +Requires: %{name}-docs = %{version}-%{release} %description tests Provides a means to test the generation of annotated binaries and the parsing @@ -198,6 +201,7 @@ BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binut BuildRequires: elfutils-debuginfod-client-devel BuildRequires: make %endif +Requires: %{name}-docs = %{version}-%{release} %description annocheck Installs the annocheck program which uses the notes generated by annobin to @@ -212,6 +216,7 @@ hardening options. %package plugin-gcc Summary: annobin gcc plugin +Requires: %{name}-docs = %{version}-%{release} Conflicts: annobin <= 9.60-1 %description plugin-gcc @@ -225,6 +230,7 @@ Installs an annobin plugin that can be used by gcc. %package plugin-llvm Summary: annobin llvm plugin +Requires: %{name}-docs = %{version}-%{release} Conflicts: annobin <= 9.60-1 %description plugin-llvm @@ -238,6 +244,7 @@ Installs an annobin plugin that can be used by llvm tools. %package plugin-clang Summary: annobin clang plugin +Requires: %{name}-docs = %{version}-%{release} Conflicts: annobin <= 9.60-1 %description plugin-clang @@ -402,6 +409,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Apr 16 2021 Petr Pisar - 9.66-3 +- Correct a package rename (bug #1949570) +- Require docs subpackage by the other ones because of a license + * Thu Apr 15 2021 Martin Cermak - 9.66-2 - Fix bz1949570 From 7d1af348fb707249ef690a556cb74ff5232ddd06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Fri, 16 Apr 2021 13:26:58 +0200 Subject: [PATCH 129/459] Build-requiring perl-interpreter is enough --- annobin.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index fcbdd66..f504f18 100644 --- a/annobin.spec +++ b/annobin.spec @@ -133,7 +133,7 @@ Requires: annobin-plugin-clang BuildRequires: gcc gcc-plugin-devel gcc-c++ # The documentation uses pod2man... -BuildRequires: perl perl-podlators +BuildRequires: perl-interpreter perl-podlators %if %{with clangplugin} BuildRequires: clang clang-devel llvm llvm-devel compiler-rt gawk %endif @@ -412,6 +412,7 @@ fi * Fri Apr 16 2021 Petr Pisar - 9.66-3 - Correct a package rename (bug #1949570) - Require docs subpackage by the other ones because of a license +- Build-requiring perl-interpreter is enough * Thu Apr 15 2021 Martin Cermak - 9.66-2 - Fix bz1949570 From 604b1841b5b18f618e4c1e53f1d16eafaece9138 Mon Sep 17 00:00:00 2001 From: Martin Cermak Date: Fri, 16 Apr 2021 19:13:27 +0200 Subject: [PATCH 130/459] Avoid mixing STI and FMF tests Related: https://pagure.io/fedora-ci/general/issue/206 Also, drop unneeded legacy Makefile's and PURPOSE files, and explicitly require gcc.rpm, which is not installed on the CI workers by default any more it seems. --- tests/Regression/identify/Makefile | 71 ----------------- tests/Regression/identify/PURPOSE | 3 - .../lto-preprocessor-options/Makefile | 64 --------------- .../lto-preprocessor-options/PURPOSE | 3 - .../lto-preprocessor-options/main.fmf | 1 + .../lto-preprocessor-options/runtest.sh | 5 +- tests/Regression/testsuite/Makefile | 78 ------------------- tests/Regression/testsuite/PURPOSE | 3 - tests/Regression/testsuite/main.fmf | 1 + tests/Sanity/gcc-fedora-flags/hello.c | 5 ++ tests/Sanity/gcc-fedora-flags/hello.cpp | 5 ++ tests/Sanity/gcc-fedora-flags/main.c | 6 ++ tests/Sanity/gcc-fedora-flags/main.cpp | 6 ++ tests/Sanity/gcc-fedora-flags/main.fmf | 17 ++++ tests/Sanity/gcc-fedora-flags/runtest.sh | 38 +++++++++ tests/Sanity/smoke/Makefile | 59 -------------- tests/Sanity/smoke/PURPOSE | 3 - tests/Sanity/smoke/main.fmf | 1 + tests/tests.yml | 17 ---- 19 files changed, 84 insertions(+), 302 deletions(-) delete mode 100644 tests/Regression/identify/Makefile delete mode 100644 tests/Regression/identify/PURPOSE delete mode 100644 tests/Regression/lto-preprocessor-options/Makefile delete mode 100644 tests/Regression/lto-preprocessor-options/PURPOSE delete mode 100644 tests/Regression/testsuite/Makefile delete mode 100644 tests/Regression/testsuite/PURPOSE create mode 100644 tests/Sanity/gcc-fedora-flags/hello.c create mode 100644 tests/Sanity/gcc-fedora-flags/hello.cpp create mode 100644 tests/Sanity/gcc-fedora-flags/main.c create mode 100644 tests/Sanity/gcc-fedora-flags/main.cpp create mode 100644 tests/Sanity/gcc-fedora-flags/main.fmf create mode 100755 tests/Sanity/gcc-fedora-flags/runtest.sh delete mode 100644 tests/Sanity/smoke/Makefile delete mode 100644 tests/Sanity/smoke/PURPOSE delete mode 100644 tests/tests.yml diff --git a/tests/Regression/identify/Makefile b/tests/Regression/identify/Makefile deleted file mode 100644 index f62f325..0000000 --- a/tests/Regression/identify/Makefile +++ /dev/null @@ -1,71 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/annobin/Regression/identify -# Description: identify -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2019 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/annobin/Regression/identify -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - -requires = annobin - -# https://mojo.redhat.com/docs/DOC-1072127 -dtsver = $(shell seq -s, 10 11) -dtsreq = $(shell echo {dev,gcc-}toolset-{$(dtsver)}{,-annocheck}) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: identify" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: annobin" >> $(METADATA) - $(foreach package, $(requires) $(dtsreq), \ - echo "Requires: $(package)" >> $(METADATA); \ - ) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5 -RHEL6" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/identify/PURPOSE b/tests/Regression/identify/PURPOSE deleted file mode 100644 index 3471618..0000000 --- a/tests/Regression/identify/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /tools/annobin/Regression/identify -Description: identify -Author: Martin Cermak diff --git a/tests/Regression/lto-preprocessor-options/Makefile b/tests/Regression/lto-preprocessor-options/Makefile deleted file mode 100644 index 777e9de..0000000 --- a/tests/Regression/lto-preprocessor-options/Makefile +++ /dev/null @@ -1,64 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/annobin/Regression/lto-preprocessor-options -# Description: lto-preprocessor-options -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2020 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/annobin/Regression/lto-preprocessor-options -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: lto-preprocessor-options" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: annobin" >> $(METADATA) - @echo "Requires: annobin annobin-annocheck redhat-rpm-config" >> $(METADATA) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Bug: 1743635" >> $(METADATA) - @echo "Releases: -RHEL4 -RHEL6 -RHEL7 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/lto-preprocessor-options/PURPOSE b/tests/Regression/lto-preprocessor-options/PURPOSE deleted file mode 100644 index c595c5e..0000000 --- a/tests/Regression/lto-preprocessor-options/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /tools/annobin/Regression/lto-preprocessor-options -Description: lto-preprocessor-options -Author: Martin Cermak diff --git a/tests/Regression/lto-preprocessor-options/main.fmf b/tests/Regression/lto-preprocessor-options/main.fmf index e76679d..03e6b88 100644 --- a/tests/Regression/lto-preprocessor-options/main.fmf +++ b/tests/Regression/lto-preprocessor-options/main.fmf @@ -7,6 +7,7 @@ component: test: ./runtest.sh framework: beakerlib recommend: +- gcc - annobin - annobin-annocheck - redhat-rpm-config diff --git a/tests/Regression/lto-preprocessor-options/runtest.sh b/tests/Regression/lto-preprocessor-options/runtest.sh index 315169d..7c54481 100755 --- a/tests/Regression/lto-preprocessor-options/runtest.sh +++ b/tests/Regression/lto-preprocessor-options/runtest.sh @@ -33,7 +33,10 @@ PACKAGE="annobin" rlJournalStart rlPhaseStartTest b=`mktemp` - rlRun "echo 'int main (void) { return 0; }' | gcc -xc -o $b `rpm --eval "%build_cflags %build_ldflags"` -flto - " + rlRun "rpm -q redhat-rpm-config" + rlRun "cflags=\"$(rpm --eval '%build_cflags')\"" + rlRun "ldflags=\"$(rpm --eval '%build_ldflags')\"" + rlRun "echo 'int main (void) { return 0; }' | gcc -xc -o $b $cflags $ldflags -flto - " rlRun "annocheck -v $b" rm $b rlPhaseEnd diff --git a/tests/Regression/testsuite/Makefile b/tests/Regression/testsuite/Makefile deleted file mode 100644 index 94a9500..0000000 --- a/tests/Regression/testsuite/Makefile +++ /dev/null @@ -1,78 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/annobin/Regression/testsuite -# Description: testsuite -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2018 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/annobin/Regression/testsuite -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - -requires = annobin binutils-devel gcc-c++ elfutils elfutils-devel make rpm-build \ -rpm-devel gcc-plugin-devel yum yum-utils bzip2-devel - -# https://mojo.redhat.com/docs/DOC-1072127 -dtsver = $(shell seq -s, 9 11) -dtsreq = $(shell echo {dev,gcc-}toolset-{$(dtsver)}-{build,elfutils{,-devel},gcc{,-c++,-plugin-devel},binutils{,-devel},annobin{,-annocheck}}) - - -installdeps: - yum -y install $(requires) - -showdeps: - echo $(requires) - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: testsuite" >> $(METADATA) - @echo "Type: Regression" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "RunFor: annobin" >> $(METADATA) - $(foreach package, $(requires) $(dtsreq), \ - echo "Requires: $(package)" >> $(METADATA); \ - ) - @echo "Priority: Normal" >> $(METADATA) - @echo "License: GPLv2+" >> $(METADATA) - @echo "Confidential: no" >> $(METADATA) - @echo "Destructive: no" >> $(METADATA) - @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Regression/testsuite/PURPOSE b/tests/Regression/testsuite/PURPOSE deleted file mode 100644 index d639443..0000000 --- a/tests/Regression/testsuite/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /tools/annobin/Regression/testsuite -Description: testsuite -Author: Martin Cermak diff --git a/tests/Regression/testsuite/main.fmf b/tests/Regression/testsuite/main.fmf index 78271da..7352f78 100644 --- a/tests/Regression/testsuite/main.fmf +++ b/tests/Regression/testsuite/main.fmf @@ -22,6 +22,7 @@ recommend: - dnf - yum-utils - bzip2-devel +- rpm-build duration: 48h extra-summary: /tools/annobin/Regression/testsuite extra-task: /tools/annobin/Regression/testsuite diff --git a/tests/Sanity/gcc-fedora-flags/hello.c b/tests/Sanity/gcc-fedora-flags/hello.c new file mode 100644 index 0000000..51b259b --- /dev/null +++ b/tests/Sanity/gcc-fedora-flags/hello.c @@ -0,0 +1,5 @@ +#include + +void hello() { + printf("Hello World\n"); +} diff --git a/tests/Sanity/gcc-fedora-flags/hello.cpp b/tests/Sanity/gcc-fedora-flags/hello.cpp new file mode 100644 index 0000000..400612b --- /dev/null +++ b/tests/Sanity/gcc-fedora-flags/hello.cpp @@ -0,0 +1,5 @@ +#include + +void hello() { + std::cout << "Hello World\n"; +} diff --git a/tests/Sanity/gcc-fedora-flags/main.c b/tests/Sanity/gcc-fedora-flags/main.c new file mode 100644 index 0000000..1a3455d --- /dev/null +++ b/tests/Sanity/gcc-fedora-flags/main.c @@ -0,0 +1,6 @@ +void hello(); + +int main(int argc, char **argv) { + hello(); + return 0; +} diff --git a/tests/Sanity/gcc-fedora-flags/main.cpp b/tests/Sanity/gcc-fedora-flags/main.cpp new file mode 100644 index 0000000..1a3455d --- /dev/null +++ b/tests/Sanity/gcc-fedora-flags/main.cpp @@ -0,0 +1,6 @@ +void hello(); + +int main(int argc, char **argv) { + hello(); + return 0; +} diff --git a/tests/Sanity/gcc-fedora-flags/main.fmf b/tests/Sanity/gcc-fedora-flags/main.fmf new file mode 100644 index 0000000..f053025 --- /dev/null +++ b/tests/Sanity/gcc-fedora-flags/main.fmf @@ -0,0 +1,17 @@ +summary: gcc-fedora-flags +description: '' +contact: +- Tom Stellard +component: +- annobin +test: ./runtest.sh +framework: beakerlib +recommend: +- gcc +- gcc-c++ +- annobin +- annobin-annocheck +- redhat-rpm-config +duration: 1h +extra-summary: /tools/annobin/Sanity/gcc-fedora-flags +extra-task: /tools/annobin/Sanity/gcc-fedora-flags diff --git a/tests/Sanity/gcc-fedora-flags/runtest.sh b/tests/Sanity/gcc-fedora-flags/runtest.sh new file mode 100755 index 0000000..13da313 --- /dev/null +++ b/tests/Sanity/gcc-fedora-flags/runtest.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +set -x + +default_cflags=`rpm -E %{build_cflags}` +default_cxxflags=`rpm -E %{build_cxxflags}` +default_ldflags=`rpm -E %{build_ldflags}` + +cflags=`rpm -D '%toolchain gcc' -E %{build_cflags}` +cxxflags=`rpm -D '%toolchain gcc' -E %{build_cxxflags}` +ldflags=`rpm -D '%toolchain gcc' -E %{build_ldflags}` + +set +x + +rlJournalStart +rlPhaseStartTest + rlRun "test \"$default_cflags\" = \"$cflags\"" + rlRun "test \"$default_cxxflags\" = \"$cxxflags\"" + rlRun "test \"$default_ldflags\" = \"$ldflags\"" + + rlRun "gcc $cflags -o hello.o -c hello.c" + rlRun "annocheck hello.o" + rlRun "gcc $cflags -o main.o -c main.c" + rlRun "gcc $ldflags -o hello main.o hello.o" + rlRun "annocheck hello" + rlRun "./hello | grep \"Hello World\"" + + rlRun "g++ $cxxflags -o hello-cpp.o -c hello.cpp" + rlRun "annocheck hello-cpp.o" + rlRun "g++ $cxxflags -o main-cpp.o -c main.cpp" + rlRun "g++ $ldflags -o hello-cpp main-cpp.o hello-cpp.o" + rlRun "annocheck hello-cpp" + rlRun "./hello-cpp | grep \"Hello World\"" +rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/tests/Sanity/smoke/Makefile b/tests/Sanity/smoke/Makefile deleted file mode 100644 index 0ed8978..0000000 --- a/tests/Sanity/smoke/Makefile +++ /dev/null @@ -1,59 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Makefile of /tools/annobin/Sanity/smoke -# Description: smoke test for annobin plugin -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2019 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -export TEST=/tools/annobin/Sanity/smoke -export TESTVERSION=1.0 - -BUILT_FILES= - -FILES=$(METADATA) runtest.sh Makefile PURPOSE - -.PHONY: all install download clean - -run: $(FILES) build - ./runtest.sh - -build: $(BUILT_FILES) - test -x runtest.sh || chmod a+x runtest.sh - -clean: - rm -f *~ $(BUILT_FILES) - - -include /usr/share/rhts/lib/rhts-make.include - -$(METADATA): Makefile - @echo "Owner: Martin Cermak " > $(METADATA) - @echo "Name: $(TEST)" >> $(METADATA) - @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) - @echo "Path: $(TEST_DIR)" >> $(METADATA) - @echo "Description: smoke test for annobin plugin" >> $(METADATA) - @echo "Type: Sanity" >> $(METADATA) - @echo "TestTime: 48h" >> $(METADATA) - @echo "License: GPL" >> $(METADATA) - @echo "RunFor: annobin" >> $(METADATA) - @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) - - rhts-lint $(METADATA) diff --git a/tests/Sanity/smoke/PURPOSE b/tests/Sanity/smoke/PURPOSE deleted file mode 100644 index ad364a5..0000000 --- a/tests/Sanity/smoke/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -PURPOSE of /tools/annobin/Sanity/smoke -Description: smoke test for annobin plugin -Author: Martin Cermak diff --git a/tests/Sanity/smoke/main.fmf b/tests/Sanity/smoke/main.fmf index 5c30808..49d2862 100644 --- a/tests/Sanity/smoke/main.fmf +++ b/tests/Sanity/smoke/main.fmf @@ -8,6 +8,7 @@ test: ./runtest.sh framework: beakerlib recommend: - man-db +- gcc - annobin - annobin-annocheck duration: 48h diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index 0cb592f..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,17 +0,0 @@ -- hosts: localhost - roles: - - role: standard-test-basic - tags: - - classic - required_packages: - # gcc-fedora-flags - - rpm - - redhat-rpm-config - - gcc - - gcc-c++ - - annobin-annocheck - repositories: - - repo: https://src.fedoraproject.org/rpms/redhat-rpm-config.git - dest: redhat-rpm-config - tests: - - redhat-rpm-config/tests/gcc-fedora-flags From 60b4b4fa7609f02efe5c3e9cfe04cc28dfae494d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Mon, 19 Apr 2021 09:46:44 +0200 Subject: [PATCH 131/459] Bump a release annobin-9.66-3.fc35 was already used in FEDORA-2021-91bdf0b234 update which went to stable and then untagged. We cannot detach a build from a finished update. --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index f504f18..8405cad 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.66 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -409,6 +409,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Apr 19 2021 Petr Pisar - 9.66-4 +- Bump a release + * Fri Apr 16 2021 Petr Pisar - 9.66-3 - Correct a package rename (bug #1949570) - Require docs subpackage by the other ones because of a license From 1622358fc16dde8933a7ba0a8b962721f19c8f12 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 20 Apr 2021 12:35:20 +0100 Subject: [PATCH 132/459] Annocheck: Improve detection of missing GNU-stack support. --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 8405cad..6e3089c 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.66 -Release: 4%{?dist} +Version: 9.67 +Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -409,6 +409,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Apr 20 2021 Nick Clifton - 9.67-1 +- Annocheck: Improve detection of missing GNU-stack support. + * Mon Apr 19 2021 Petr Pisar - 9.66-4 - Bump a release diff --git a/sources b/sources index 41d4506..5f2faab 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.66.tar.xz) = ea9a2b4b18bc5a558c5bcd2dcdb4446be3b7ebea651ae79a14244da906bbae0da39032469eda2f41ba7254fa9ef89f9cf8ae9e29de18b4c33fe5c4e1d18f4fd9 +SHA512 (annobin-9.67.tar.xz) = 160b27de548b43aee80cc83ec898f420ce28c42177d1bbd3f4ff49c2e5c5660924f0c5898155448e2c19daa964b2eb4ef8f3dc4d474e2e7457ed7806778cec52 From 99c1127a1112bf55bc7cd9afecae12c2bcd9d84b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Tue, 20 Apr 2021 13:20:58 +0200 Subject: [PATCH 133/459] Obsolete annobin < 9.66-1 We want to support an upgrade from a distribution prior an introduction of annobin-docs. --- annobin.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 6e3089c..53b4ac7 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.67 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -171,8 +171,7 @@ Summary: Documentation and shell scripts for use with annobin BuildArch: noarch # annobin renamed to annobin-doc in 9.66-1 Provides: %{name} = %{version}-%{release} -# /usr/share/info/annobin.info.gz moved from annobin to annobin-docs -Conflicts: %{name} < 9.66-1 +Obsoletes: %{name} < 9.66-1 %description docs Provides the documentation files and example shell scripts for use with annobin. @@ -409,6 +408,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Apr 20 2021 Petr Pisar - 9.67-2 +- Obsolete annobin < 9.66-1 (bug #1949570) + * Tue Apr 20 2021 Nick Clifton - 9.67-1 - Annocheck: Improve detection of missing GNU-stack support. From 9e62aa8ed83f0a501bb5b6cf93c5c9966c1ab128 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 21 Apr 2021 12:56:16 +0100 Subject: [PATCH 134/459] Annocheck: WARN if the annobin plugin was built for a newer version of the compiler than the one on which it was run. Related: #1950657 --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 53b4ac7..f1a43b1 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.67 -Release: 2%{?dist} +Version: 9.68 +Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com @@ -408,6 +408,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Apr 21 2021 Nick Clifton - 9.68-1 +- Annocheck: WARN if the annobin plugin was built for a newer version of the compiler than the one on which it was run. (#1950657) + * Tue Apr 20 2021 Petr Pisar - 9.67-2 - Obsolete annobin < 9.66-1 (bug #1949570) diff --git a/sources b/sources index 5f2faab..83f3011 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.67.tar.xz) = 160b27de548b43aee80cc83ec898f420ce28c42177d1bbd3f4ff49c2e5c5660924f0c5898155448e2c19daa964b2eb4ef8f3dc4d474e2e7457ed7806778cec52 +SHA512 (annobin-9.68.tar.xz) = ca76411cd112f61002f56d5cbe82307c3137b6da4deaaa12d70493ac514ff3950ffda4e0812c0414200a495228fe36b02a9a8628c5e616456adffe923917b391 From e5cf20e0a371c865e3c99621febf83c25161dc01 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 22 Apr 2021 14:15:51 +0100 Subject: [PATCH 135/459] Fix the testsuite so that it can be run in parallel. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index f1a43b1..61a3615 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.68 +Version: 9.69 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -408,6 +408,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Apr 22 2021 Nick Clifton - 9.69-1 +- Fix the testsuite so that it can be run in parallel. + * Wed Apr 21 2021 Nick Clifton - 9.68-1 - Annocheck: WARN if the annobin plugin was built for a newer version of the compiler than the one on which it was run. (#1950657) diff --git a/sources b/sources index 83f3011..ebbeded 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.68.tar.xz) = ca76411cd112f61002f56d5cbe82307c3137b6da4deaaa12d70493ac514ff3950ffda4e0812c0414200a495228fe36b02a9a8628c5e616456adffe923917b391 +SHA512 (annobin-9.69.tar.xz) = 8a9c4beb27a9cc74883ac1542f89e0b38c2854896b94e5889e0cc8ad36207175e5b6227d8834ad847215948242d165a101c97e395dfc64637999393b4f4a193b From 689a7f6f5474dee466cabfe019137f0f188211d9 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 30 Apr 2021 09:50:06 +0100 Subject: [PATCH 136/459] gcc-plugin: Replace ICE messsages with verbose messages. --- annobin.spec | 43 +++++++++++++++++++++++++++++++++++-------- sources | 2 +- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/annobin.spec b/annobin.spec index 61a3615..54205e4 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.69 +Version: 9.70 Release: 1%{?dist} License: GPLv3+ # ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark @@ -131,14 +131,19 @@ Requires: annobin-plugin-llvm Requires: annobin-plugin-clang %endif -BuildRequires: gcc gcc-plugin-devel gcc-c++ # The documentation uses pod2man... -BuildRequires: perl-interpreter perl-podlators -%if %{with clangplugin} -BuildRequires: clang clang-devel llvm llvm-devel compiler-rt gawk +BuildRequires: gcc perl-interpreter perl-podlators gawk + +%if %{with gccplugin} +BuildRequires: gcc-c++ gcc-plugin-devel %endif + +%if %{with clangplugin} +BuildRequires: clang clang-devel llvm llvm-devel compiler-rt +%endif + %if %{with llvmplugin} -BuildRequires: clang clang-devel llvm llvm-devel compiler-rt gawk +BuildRequires: clang clang-devel llvm llvm-devel compiler-rt %endif %description @@ -187,6 +192,10 @@ Requires: %{name}-docs = %{version}-%{release} Provides a means to test the generation of annotated binaries and the parsing of the resulting files. +%if %{with debuginfod} +BuildRequires: elfutils-debuginfod-client-devel +%endif + %endif #---------------------------------------------------------------------------- @@ -197,9 +206,9 @@ Summary: A tool for checking the security hardening status of binaries BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel %if %{with debuginfod} -BuildRequires: elfutils-debuginfod-client-devel -BuildRequires: make +BuildRequires: elfutils-debuginfod-client-devel make %endif + Requires: %{name}-docs = %{version}-%{release} %description annocheck @@ -283,6 +292,12 @@ CONFIG_ARGS="--quiet --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR}" %if %{with debuginfod} CONFIG_ARGS="$CONFIG_ARGS --with-debuginfod" %else +# Note - we explicitly disable debuginfod support if it was not configured. +# This is because by default annobin's configue script will assume --with-debuginfod=auto +# and then run a build time test to see if debugingfod is available. It +# may well be, but the build time environment may not match the run time +# environment, and the rpm will not have a Requirement on the debuginfod +# client. CONFIG_ARGS="$CONFIG_ARGS --without-debuginfod" %endif @@ -368,6 +383,15 @@ make check if [ -f tests/test-suite.log ]; then cat tests/test-suite.log fi + +%if %{with clangplugin} +# FIXME: RUN CLANG tests +%endif + +%if %{with llvmplugin} +# FIXME: RUN LLVM tests +%endif + %endif #--------------------------------------------------------------------------------- @@ -408,6 +432,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Apr 30 2021 Nick Clifton - 9.70-1 +- gcc-plugin: Replace ICE messsages with verbose messages. + * Thu Apr 22 2021 Nick Clifton - 9.69-1 - Fix the testsuite so that it can be run in parallel. diff --git a/sources b/sources index ebbeded..320e93d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.69.tar.xz) = 8a9c4beb27a9cc74883ac1542f89e0b38c2854896b94e5889e0cc8ad36207175e5b6227d8834ad847215948242d165a101c97e395dfc64637999393b4f4a193b +SHA512 (annobin-9.70.tar.xz) = 08a04dff35601b0a704a9ecc26baa3b005dfc2c3290d98a5f3960ed21aca45e5730729150d941aacdd8ddc0b36a6d8792051d2d4326f3e5013dd7d946e4b2544 From 394bd0083ff466700e75d90e4870a2025ad52a6b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 4 May 2021 15:15:25 +0100 Subject: [PATCH 137/459] timing: do not initialise the clock if the timing tool is disabled. --- annobin.spec | 8 ++++++-- sources | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 54205e4..09029ea 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,11 +1,12 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.70 +Version: 9.71 Release: 1%{?dist} License: GPLv3+ -# ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark # Maintainer: nickc@redhat.com +# Web Page: https://sourceware.org/annobin/ +# Watermark Protocol: https://fedoraproject.org/wiki/Toolchain/Watermark #--------------------------------------------------------------------------------- @@ -432,6 +433,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue May 04 2021 Nick Clifton - 9.71-1 +- timing: do not initialise the clock if the timing tool is disabled. + * Fri Apr 30 2021 Nick Clifton - 9.70-1 - gcc-plugin: Replace ICE messsages with verbose messages. diff --git a/sources b/sources index 320e93d..35f90a6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.70.tar.xz) = 08a04dff35601b0a704a9ecc26baa3b005dfc2c3290d98a5f3960ed21aca45e5730729150d941aacdd8ddc0b36a6d8792051d2d4326f3e5013dd7d946e4b2544 +SHA512 (annobin-9.71.tar.xz) = 406ad934a42248e427139875839ed15e732d5fcac69d30ac55e36f20b916ea0a0ea90fcbfb495db6df6224de8e3ae589163fb9bff9047889fb36ba1781a9d635 From a9f3f30da41389c0fddbf5a722bee1985424e0b9 Mon Sep 17 00:00:00 2001 From: Martin Cermak Date: Thu, 13 May 2021 13:01:56 +0200 Subject: [PATCH 138/459] Log package versions in CI tests --- tests/Regression/identify/runtest.sh | 1 + tests/Regression/lto-preprocessor-options/runtest.sh | 2 +- tests/Regression/testsuite/runtest.sh | 2 ++ tests/Sanity/gcc-fedora-flags/runtest.sh | 2 ++ tests/Sanity/smoke/runtest.sh | 1 + 5 files changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/Regression/identify/runtest.sh b/tests/Regression/identify/runtest.sh index d1b3b5f..7907036 100755 --- a/tests/Regression/identify/runtest.sh +++ b/tests/Regression/identify/runtest.sh @@ -32,6 +32,7 @@ PACKAGE="annobin" rlJournalStart rlPhaseStartTest + rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort" rlRun "tool_v=$(annocheck --version | awk '/^annocheck: Version/ {print $3}')" rlRun "__RPM=$(rpm --queryformat='%{name}\n' -qf $(man -w annobin))" rlRun "rpm_v=$(rpm -q --queryformat='%{version}\n' $__RPM)" diff --git a/tests/Regression/lto-preprocessor-options/runtest.sh b/tests/Regression/lto-preprocessor-options/runtest.sh index 7c54481..430d830 100755 --- a/tests/Regression/lto-preprocessor-options/runtest.sh +++ b/tests/Regression/lto-preprocessor-options/runtest.sh @@ -33,7 +33,7 @@ PACKAGE="annobin" rlJournalStart rlPhaseStartTest b=`mktemp` - rlRun "rpm -q redhat-rpm-config" + rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort" rlRun "cflags=\"$(rpm --eval '%build_cflags')\"" rlRun "ldflags=\"$(rpm --eval '%build_ldflags')\"" rlRun "echo 'int main (void) { return 0; }' | gcc -xc -o $b $cflags $ldflags -flto - " diff --git a/tests/Regression/testsuite/runtest.sh b/tests/Regression/testsuite/runtest.sh index 4a92cd9..c8016ad 100755 --- a/tests/Regression/testsuite/runtest.sh +++ b/tests/Regression/testsuite/runtest.sh @@ -42,6 +42,8 @@ rlJournalStart rlLogInfo "X_SCLS=$X_SCLS" rlLogInfo "GCC=$GCC" + rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort" + # In case more than one devtoolset- or gcc-toolset -build package is # installed (they can co-exist from the packaging persp, but their # coexistence causes unexpected results with rpm macros), then we have diff --git a/tests/Sanity/gcc-fedora-flags/runtest.sh b/tests/Sanity/gcc-fedora-flags/runtest.sh index 13da313..8ef829f 100755 --- a/tests/Sanity/gcc-fedora-flags/runtest.sh +++ b/tests/Sanity/gcc-fedora-flags/runtest.sh @@ -16,6 +16,8 @@ set +x rlJournalStart rlPhaseStartTest + rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort" + rlRun "test \"$default_cflags\" = \"$cflags\"" rlRun "test \"$default_cxxflags\" = \"$cxxflags\"" rlRun "test \"$default_ldflags\" = \"$ldflags\"" diff --git a/tests/Sanity/smoke/runtest.sh b/tests/Sanity/smoke/runtest.sh index 0f39938..566e571 100755 --- a/tests/Sanity/smoke/runtest.sh +++ b/tests/Sanity/smoke/runtest.sh @@ -38,6 +38,7 @@ rlJournalStart rlPhaseEnd rlPhaseStartTest + rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort" rlRun "echo 'int main() {return 0;}' | gcc -xc -fplugin=annobin -o /dev/null -" rlPhaseEnd rlJournalPrintText From 81adad3f3177188c47b6373c2dd1bf7899672639 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 13 May 2021 12:40:46 +0100 Subject: [PATCH 139/459] annocheck: Accept 0 as a valid number for gcc minor versions and release numbers. gcc-plugin: Add support for ARM and RISCV targets. --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 09029ea..1ca24ac 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.71 +Version: 9.72 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -433,6 +433,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu May 13 2021 Nick Clifton - 9.72-1 +- annocheck: Accept 0 as a valid number for gcc minor versions and release numbers. +- gcc-plugin: Add support for ARM and RISCV targets. + * Tue May 04 2021 Nick Clifton - 9.71-1 - timing: do not initialise the clock if the timing tool is disabled. diff --git a/sources b/sources index 35f90a6..7719431 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.71.tar.xz) = 406ad934a42248e427139875839ed15e732d5fcac69d30ac55e36f20b916ea0a0ea90fcbfb495db6df6224de8e3ae589163fb9bff9047889fb36ba1781a9d635 +SHA512 (annobin-9.72.tar.xz) = 301e426e2095bbd298b2ff037be58a4c9a5388a58fa414fc86a4445e64b820f85088e26b53708779af4df2c2f16f8477c1f235f1aebf310f223f8e6fc1f383ed From 45b479d2d6f86db76a5270bba26757e1b3e3a56e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 19 May 2021 12:05:01 +0100 Subject: [PATCH 140/459] Tidy up spec file --- annobin.spec | 265 ++++++++++++++++++++++++++++----------------------- 1 file changed, 144 insertions(+), 121 deletions(-) diff --git a/annobin.spec b/annobin.spec index 1ca24ac..767ee06 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.72 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -54,10 +54,6 @@ License: GPLv3+ %undefine _annotated_build %endif -%{!?llvm_version:%global llvm_version 11.1.0} -%{!?llvm_plugin_dir:%global llvm_plugin_dir %{_libdir}/llvm/%{llvm_version}} -%{!?clang_plugin_dir:%global clang_plugin_dir %{_libdir}/clang/%{llvm_version}} - #--------------------------------------------------------------------------------- Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz @@ -68,6 +64,121 @@ Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz #--------------------------------------------------------------------------------- +# Make sure that the necessary sub-packages are built. + +%if %{with gccplugin} +Requires: %{name}-plugin-gcc +%endif + +%if %{with llvmplugin} +Requires: %{name}-plugin-llvm +%endif + +%if %{with clangplugin} +Requires: %{name}-plugin-clang +%endif + +#--------------------------------------------------------------------------------- + +%description +This package contains the tools needed to annotate binary files created by +compilers, and also the tools needed to examine those annotations. + +%if %{with gccplugin} +One of the tools is a plugin for GCC that records information about the +security options that were in effect when the binary was compiled. + +Note - the plugin is automatically enabled in gcc builds via flags +provided by the redhat-rpm-macros package. +%endif + +%if %{with clangplugin} +One of the tools is a plugin for Clang that records information about the +security options that were in effect when the binary was compiled. +%endif + +%if %{with llvmplugin} +One of the tools is a plugin for LLVM that records information about the +security options that were in effect when the binary was compiled. +%endif + +%if %{with annocheck} +One of the tools is a security checker which analyses the notes present in +annotated files and reports on any missing security options. +%endif + +#--------------------------------------------------------------------------- + +# Now that we have sub-packages for all of the plugins and for annocheck, +# there are no executables left to go into the "annobin" rpm. But top-level +# packages cannot have "BuildArch: noarch" if sub-packages do have +# architecture requirements, and rpmlint generates an error if an +# architecture specific rpm does not contain any binaries. So instead all of +# the documentation has been moved into an architecture neutral sub-package, +# and there no longer is a top level annobin rpm at all. + +%package docs +Summary: Documentation and shell scripts for use with annobin +BuildArch: noarch +# annobin renamed to annobin-doc in 9.66-1 +Provides: %{name} = %{version}-%{release} +Obsoletes: %{name} < 9.66-1 +# The documentation uses pod2man... +BuildRequires: perl-interpreter perl-podlators gawk make + +%description docs +Provides the documentation files and example shell scripts for use with annobin. + +#---------------------------------------------------------------------------- +%if %{with tests} + +%package tests +Summary: Test scripts and binaries for checking the behaviour and output of the annobin plugin +Requires: %{name}-docs = %{version}-%{release} + +%description tests +Provides a means to test the generation of annotated binaries and the parsing +of the resulting files. + +BuildRequires: make + +%if %{with debuginfod} +BuildRequires: elfutils-debuginfod-client-devel +%endif + +%endif + +#---------------------------------------------------------------------------- +%if %{with annocheck} + +%package annocheck +Summary: A tool for checking the security hardening status of binaries + +BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel make + +%if %{with debuginfod} +BuildRequires: elfutils-debuginfod-client-devel +%endif + +Requires: %{name}-docs = %{version}-%{release} + +%description annocheck +Installs the annocheck program which uses the notes generated by annobin to +check that the specified files were compiled with the correct security +hardening options. + +%endif + +#---------------------------------------------------------------------------- +%if %{with gccplugin} + +%package plugin-gcc +Summary: annobin gcc plugin + +Requires: %{name}-docs = %{version}-%{release} +Conflicts: %{name} <= 9.60-1 +BuildRequires: gcc-c++ gcc-plugin-devel + # [Stolen from gcc-python-plugin] # GCC will only load plugins that were built against exactly that build of GCC # We thus need to embed the exact GCC version as a requirement within the @@ -112,7 +223,7 @@ Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz %global gcc_major 0 %endif -# This is a gcc plugin, hence gcc is required. +# For a gcc plugin gcc is required. %if %{with_hard_gcc_version_requirement} # BZ 1607430 - There is an exact requirement on the major version of gcc. Requires: (gcc >= %{gcc_major} with gcc < %{gcc_next}) @@ -120,114 +231,6 @@ Requires: (gcc >= %{gcc_major} with gcc < %{gcc_next}) Requires: gcc %endif -%if %{with gccplugin} -Requires: annobin-plugin-gcc -%endif - -%if %{with llvmplugin} -Requires: annobin-plugin-llvm -%endif - -%if %{with clangplugin} -Requires: annobin-plugin-clang -%endif - -# The documentation uses pod2man... -BuildRequires: gcc perl-interpreter perl-podlators gawk - -%if %{with gccplugin} -BuildRequires: gcc-c++ gcc-plugin-devel -%endif - -%if %{with clangplugin} -BuildRequires: clang clang-devel llvm llvm-devel compiler-rt -%endif - -%if %{with llvmplugin} -BuildRequires: clang clang-devel llvm llvm-devel compiler-rt -%endif - -%description -Provides a plugin for GCC that records extra information in the files -that it compiles. - -Note - the plugin is automatically enabled in gcc builds via flags -provided by the redhat-rpm-macros package. - -%if %{with clangplugin} -Also provides a plugin for Clang which performs a similar function. -%endif - -%if %{with llvmplugin} -Also provides a plugin for LLVM which performs a similar function. -%endif - -#--------------------------------------------------------------------------- - -# Now that we have sub-packages for all of the plugins and for annocheck, -# there are no executables left to go into the "annobin" rpm. But top-level -# packages cannot have "BuildArch: noarch" if sub-packages do have -# architecture requirements, and rpmlint generates an error if an -# architecture specific rpm does not contain any binaries. So instead all of -# the documentation has been moved into an architecture neutral sub-package, -# and there no longer is a top level annobin rpm at all. - -%package docs -Summary: Documentation and shell scripts for use with annobin -BuildArch: noarch -# annobin renamed to annobin-doc in 9.66-1 -Provides: %{name} = %{version}-%{release} -Obsoletes: %{name} < 9.66-1 - -%description docs -Provides the documentation files and example shell scripts for use with annobin. - -#---------------------------------------------------------------------------- -%if %{with tests} - -%package tests -Summary: Test scripts and binaries for checking the behaviour and output of the annobin plugin -Requires: %{name}-docs = %{version}-%{release} - -%description tests -Provides a means to test the generation of annotated binaries and the parsing -of the resulting files. - -%if %{with debuginfod} -BuildRequires: elfutils-debuginfod-client-devel -%endif - -%endif - -#---------------------------------------------------------------------------- -%if %{with annocheck} - -%package annocheck -Summary: A tool for checking the security hardening status of binaries - -BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel -%if %{with debuginfod} -BuildRequires: elfutils-debuginfod-client-devel make -%endif - -Requires: %{name}-docs = %{version}-%{release} - -%description annocheck -Installs the annocheck program which uses the notes generated by annobin to -check that the specified files were compiled with the correct security -hardening options. - -%endif - -#---------------------------------------------------------------------------- -%if %{with gccplugin} - -%package plugin-gcc -Summary: annobin gcc plugin - -Requires: %{name}-docs = %{version}-%{release} -Conflicts: annobin <= 9.60-1 - %description plugin-gcc Installs an annobin plugin that can be used by gcc. @@ -240,10 +243,11 @@ Installs an annobin plugin that can be used by gcc. Summary: annobin llvm plugin Requires: %{name}-docs = %{version}-%{release} -Conflicts: annobin <= 9.60-1 +Conflicts: %{name} <= 9.60-1 +BuildRequires: clang clang-devel llvm llvm-devel compiler-rt %description plugin-llvm -Installs an annobin plugin that can be used by llvm tools. +Installs an annobin plugin that can be used by LLVM tools. %endif @@ -254,16 +258,24 @@ Installs an annobin plugin that can be used by llvm tools. Summary: annobin clang plugin Requires: %{name}-docs = %{version}-%{release} -Conflicts: annobin <= 9.60-1 +Conflicts: %{name} <= 9.60-1 +BuildRequires: clang clang-devel llvm llvm-devel compiler-rt %description plugin-clang -Installs an annobin plugin that can be used by clang. +Installs an annobin plugin that can be used by Clang. %endif + #--------------------------------------------------------------------------------- +# Decide where the plugins will live. Change if necessary. + %global ANNOBIN_GCC_PLUGIN_DIR %(gcc --print-file-name=plugin) +%{!?llvm_version:%global llvm_version 11.1.0} +%{!?llvm_plugin_dir:%global llvm_plugin_dir %{_libdir}/llvm/%{llvm_version}} +%{!?clang_plugin_dir:%global clang_plugin_dir %{_libdir}/clang/%{llvm_version}} + #--------------------------------------------------------------------------------- %prep @@ -288,7 +300,7 @@ touch doc/annobin.info %build -CONFIG_ARGS="--quiet --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR}" +CONFIG_ARGS="--quiet" %if %{with debuginfod} CONFIG_ARGS="$CONFIG_ARGS --with-debuginfod" @@ -308,6 +320,8 @@ CONFIG_ARGS="$CONFIG_ARGS --with-clang" %if %{without gccplugin} CONFIG_ARGS="$CONFIG_ARGS --without-gcc-plugin" +%else +CONFIG_ARGS="$CONFIG_ARGS --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR}" %endif %if %{with llvmplugin} @@ -318,10 +332,16 @@ CONFIG_ARGS="$CONFIG_ARGS --with-llvm" CONFIG_ARGS="$CONFIG_ARGS --without-test" %endif +%if %{without annocheck} +CONFIG_ARGS="$CONFIG_ARGS --without-annocheck" +%endif + %configure ${CONFIG_ARGS} || cat config.log %make_build +#--------------------------------------------------------------------------------- + %if %{with plugin_rebuild} # Rebuild the plugin(s), this time using the plugin itself! This # ensures that the plugin works, and that it contains annotations @@ -341,8 +361,8 @@ BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so" # option, despite the fact that there patently is. BUILD_FLAGS="$BUILD_FLAGS -fplugin=annobin -fplugin-arg-annobin-disable" -# If building on RHEL7, enable the next option as the .attach_to_group -# assembler pseudo op is not available in the assembler. +# If building on systems with an assembler that does not support the +# .attach_to_group pseudo op (eg RHEL-7) then enable the next line. # BUILD_FLAGS="$BUILD_FLAGS -fplugin-arg-tmp_annobin-no-attach" make -C gcc-plugin CXXFLAGS="%{optflags} $BUILD_FLAGS" @@ -433,6 +453,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed May 19 2021 Nick Clifton - 9.72-2 +- Tidy up spec file. + * Thu May 13 2021 Nick Clifton - 9.72-1 - annocheck: Accept 0 as a valid number for gcc minor versions and release numbers. - gcc-plugin: Add support for ARM and RISCV targets. From 1c617b1ec0bb8d77d5acee311cab0b66c485716c Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 25 May 2021 14:54:34 +0100 Subject: [PATCH 141/459] annocheck: Improve detection of shared libraries. Resolves: #1958954 --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 767ee06..0bfa689 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.72 -Release: 2%{?dist} +Version: 9.73 +Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -453,6 +453,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue May 25 2021 Nick Clifton - 9.73-1 +- annocheck: Improve detection of shared libraries. (#1958954) + * Wed May 19 2021 Nick Clifton - 9.72-2 - Tidy up spec file. diff --git a/sources b/sources index 7719431..046f80c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.72.tar.xz) = 301e426e2095bbd298b2ff037be58a4c9a5388a58fa414fc86a4445e64b820f85088e26b53708779af4df2c2f16f8477c1f235f1aebf310f223f8e6fc1f383ed +SHA512 (annobin-9.73.tar.xz) = bed3412f304dc457c51f5bc3a3b3d80d3ac2b2497838b0ed1ba7a537aebeb32b19d1284735ae096b683149f826c1ba8fabf464476947e56e2169d5959cbc6d53 From 993873ad363f8964e761f25c6d2f2c5c0c888103 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 3 Jun 2021 11:41:16 +0100 Subject: [PATCH 142/459] Obsolete all previous versions of annobin. Resolves: #1967339 --- annobin.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 0bfa689..14f9ddc 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.73 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -121,8 +121,8 @@ annotated files and reports on any missing security options. Summary: Documentation and shell scripts for use with annobin BuildArch: noarch # annobin renamed to annobin-doc in 9.66-1 -Provides: %{name} = %{version}-%{release} -Obsoletes: %{name} < 9.66-1 +Provides: %{name} = %{version}-%{release} +Obsoletes: %{name} < %{version}-%{release} # The documentation uses pod2man... BuildRequires: perl-interpreter perl-podlators gawk make @@ -453,6 +453,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Jun 03 2021 Nick Clifton - 9.73-2 +- Obsolete all previous versions of annobin. (#1967339) + * Tue May 25 2021 Nick Clifton - 9.73-1 - annocheck: Improve detection of shared libraries. (#1958954) From 524ebdae251883a319a356597e53deb05198616f Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Fri, 4 Jun 2021 01:39:25 +0000 Subject: [PATCH 143/459] Rebuild for LLVM 12.0.1 --- annobin.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 14f9ddc..597b01f 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.73 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -272,7 +272,7 @@ Installs an annobin plugin that can be used by Clang. %global ANNOBIN_GCC_PLUGIN_DIR %(gcc --print-file-name=plugin) -%{!?llvm_version:%global llvm_version 11.1.0} +%{!?llvm_version:%global llvm_version 12.0.1} %{!?llvm_plugin_dir:%global llvm_plugin_dir %{_libdir}/llvm/%{llvm_version}} %{!?clang_plugin_dir:%global clang_plugin_dir %{_libdir}/clang/%{llvm_version}} @@ -453,6 +453,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Jun 04 2021 Tom Stellard - 9.73-3 +- Rebuild for LLVM 12.0.1 + * Thu Jun 03 2021 Nick Clifton - 9.73-2 - Obsolete all previous versions of annobin. (#1967339) From 55304ea3869d9925094f0a2bdd597e6ced967484 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 9 Jun 2021 16:49:05 +0100 Subject: [PATCH 144/459] Annocheck: Better support for symbolic links. In verbose mode, report the reason for skipping specific tests. Resolves: #1969584 --- annobin.spec | 8 ++++++-- sources | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 597b01f..8b0cbb5 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.73 -Release: 3%{?dist} +Version: 9.74 +Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -453,6 +453,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jun 09 2021 Nick Clifton - 9.74-1 +- Annocheck: Better support for symbolic links. +- Annocheck: In verbose mode, report the reason for skipping specific tests. (#1969584) + * Fri Jun 04 2021 Tom Stellard - 9.73-3 - Rebuild for LLVM 12.0.1 diff --git a/sources b/sources index 046f80c..6a499d9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.73.tar.xz) = bed3412f304dc457c51f5bc3a3b3d80d3ac2b2497838b0ed1ba7a537aebeb32b19d1284735ae096b683149f826c1ba8fabf464476947e56e2169d5959cbc6d53 +SHA512 (annobin-9.74.tar.xz) = 74b3deaea3a0eaaca2ff6488a5e64a390a1669154f620e4167cc3093718d46e0a6d7580ca22080d9d8a3e3bed5814324cea6388afdb005b18743b8fb8511b64f From 96f1a8a19f194ded8a296ade13f769f2daeb1c5c Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 15 Jun 2021 12:10:19 +0100 Subject: [PATCH 145/459] Annocheck: Better detection of GO compiler version. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 8b0cbb5..e54e516 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.74 +Version: 9.75 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -453,6 +453,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Jun 15 2021 Nick Clifton - 9.75-1 +- Annocheck: Better detection of GO compiler version. + * Wed Jun 09 2021 Nick Clifton - 9.74-1 - Annocheck: Better support for symbolic links. - Annocheck: In verbose mode, report the reason for skipping specific tests. (#1969584) diff --git a/sources b/sources index 6a499d9..dec5077 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.74.tar.xz) = 74b3deaea3a0eaaca2ff6488a5e64a390a1669154f620e4167cc3093718d46e0a6d7580ca22080d9d8a3e3bed5814324cea6388afdb005b18743b8fb8511b64f +SHA512 (annobin-9.75.tar.xz) = eeb6ffd8cd47d7f5f2a4f8fbc35092105df2a0cf9190108a5b5bc5404c9efa7e6f9d10f0b9b3f57108ddf6f04aa0195251e0be68cf51cd1113a12f5ece947bea From f1a1007e431fffd90175ffbad0f9c5c2bd32527d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 15 Jun 2021 14:48:49 +0100 Subject: [PATCH 146/459] clang/llvm plugins: Build with correct security options. --- annobin.spec | 12 +++++++++++- sources | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index e54e516..eb3d247 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.75 +Version: 9.76 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -338,6 +338,13 @@ CONFIG_ARGS="$CONFIG_ARGS --without-annocheck" %configure ${CONFIG_ARGS} || cat config.log +%set_build_flags + +%ifarch %{ix86} x86_64 +# FIXME: There should be a better way to do this. +export CLANG_TARGET_OPTIONS="-fcf-protection" +%endif + %make_build #--------------------------------------------------------------------------------- @@ -453,6 +460,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Jun 15 2021 Nick Clifton - 9.76-1 +- clang/llvm plugins: Build with correct security options. + * Tue Jun 15 2021 Nick Clifton - 9.75-1 - Annocheck: Better detection of GO compiler version. diff --git a/sources b/sources index dec5077..a1a655c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.75.tar.xz) = eeb6ffd8cd47d7f5f2a4f8fbc35092105df2a0cf9190108a5b5bc5404c9efa7e6f9d10f0b9b3f57108ddf6f04aa0195251e0be68cf51cd1113a12f5ece947bea +SHA512 (annobin-9.76.tar.xz) = 1d3b66d1b00cc419fe9c38f0d4f1bf8aaff76e0ce96e8e0faed6997c25acb6e89ed44b9950d0f5a852b29bcd00c97afaa4de6c08a2f0ae7ce70a1d3a8f7a7496 From a9360e73d98a732f05edf2c060b61a440f6e11a5 Mon Sep 17 00:00:00 2001 From: Martin Cermak Date: Fri, 18 Jun 2021 16:53:30 +0000 Subject: [PATCH 147/459] CI testing: Add test covering rhbz1969584 --- .../main.fmf | 16 ++++++ .../runtest.sh | 54 +++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/main.fmf create mode 100755 tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/runtest.sh diff --git a/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/main.fmf b/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/main.fmf new file mode 100644 index 0000000..435d7ff --- /dev/null +++ b/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/main.fmf @@ -0,0 +1,16 @@ +summary: Test for BZ#1958954 (annobin fails to skip endbr64 entry point check) +description: | + Bug summary: annobin fails to skip endbr64 entry point check for shared objects + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1958954 +contact: +- Martin Cermak +component: +- annobin +test: ./runtest.sh +framework: beakerlib +recommend: +- annobin-annocheck +- gcc +duration: 48h +extra-summary: /tools/annobin/Regression/annobin-fails-to-skip-endbr64-entry-point-check +extra-task: /tools/annobin/Regression/annobin-fails-to-skip-endbr64-entry-point-check diff --git a/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/runtest.sh b/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/runtest.sh new file mode 100755 index 0000000..41312a4 --- /dev/null +++ b/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/runtest.sh @@ -0,0 +1,54 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/annobin/Regression/annobin-fails-to-skip-endbr64-entry-point-check +# Description: Test for BZ#1958954 (annobin fails to skip endbr64 entry point check) +# Author: Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="annobin" + +rlJournalStart + rlPhaseStartSetup + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + rlRun "rpm -q annobin-annocheck gcc" + rlPhaseEnd + + rlPhaseStartTest + rlRun "echo 'void f1(void) {}' > f1.c" + rlRun "echo 'void f2(void) {}' > f2.c" + rlRun "gcc `rpm --eval %build_cflags` -fpic -c f1.c" + rlRun "gcc `rpm --eval %build_cflags` -fpic -c f2.c" + rlRun "gcc `rpm --eval %build_ldflags` -shared f1.o f2.o" + rlRun "annocheck -v a.out" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd From 14c8067c11769b35aa60ac853119a386b7dd19a7 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 21 Jun 2021 16:16:26 +0100 Subject: [PATCH 148/459] annocheck: Remove limit on number of input files. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index eb3d247..f74c9e3 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.76 +Version: 9.77 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -460,6 +460,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Jun 21 2021 Nick Clifton - 9.77-1 +- annocheck: Remove limit on number of input files. + * Tue Jun 15 2021 Nick Clifton - 9.76-1 - clang/llvm plugins: Build with correct security options. diff --git a/sources b/sources index a1a655c..c3c59d3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.76.tar.xz) = 1d3b66d1b00cc419fe9c38f0d4f1bf8aaff76e0ce96e8e0faed6997c25acb6e89ed44b9950d0f5a852b29bcd00c97afaa4de6c08a2f0ae7ce70a1d3a8f7a7496 +SHA512 (annobin-9.77.tar.xz) = b8c625554e312da8a41c9b9a69fb84a2caa7ddc20a86e13e0d52c45d71e697ddbb1cb1ada5d59947164dcc8670e791d371c1aa01777cb97e6e46a09f354d0e06 From 76947e83c21ed3120f3d58cfd234a8418595fae8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 22 Jun 2021 16:05:21 +0100 Subject: [PATCH 149/459] gcc-plugin: Do not record global versions of stack protection settings in LTO mode, if not set. (#1958954) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index f74c9e3..5f92c26 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.77 +Version: 9.78 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -460,6 +460,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Jun 21 2021 Nick Clifton - 9.78-1 +- gcc-plugin: Do not record global versions of stack protection settings in LTO mode, if not set. (#1958954) + * Mon Jun 21 2021 Nick Clifton - 9.77-1 - annocheck: Remove limit on number of input files. diff --git a/sources b/sources index c3c59d3..53fad2e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.77.tar.xz) = b8c625554e312da8a41c9b9a69fb84a2caa7ddc20a86e13e0d52c45d71e697ddbb1cb1ada5d59947164dcc8670e791d371c1aa01777cb97e6e46a09f354d0e06 +SHA512 (annobin-9.78.tar.xz) = 22f7590bc043cb2f805d3540fa8d70317e651604d36995285a62fee023ef1a801c8aeb0950c7160a6c7367484a943c64572db1470f0c8f3fdc2a1c6ca0dfed21 From dfddf61cdd0983846d302d6139088ce97b77d79b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 29 Jun 2021 16:06:16 +0100 Subject: [PATCH 150/459] Annocheck: Fix spelling mistake in -,stack-realign failure message. (#1977349) --- annobin.spec | 11 +++++++---- sources | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/annobin.spec b/annobin.spec index 5f92c26..987c205 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.78 +Version: 9.79 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -460,11 +460,14 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Jun 29 2021 Nick Clifton - 9.79-1 +- Annocheck: Fix spelling mistake in -,stack-realign failure message. (#1977349) + * Mon Jun 21 2021 Nick Clifton - 9.78-1 - gcc-plugin: Do not record global versions of stack protection settings in LTO mode, if not set. (#1958954) * Mon Jun 21 2021 Nick Clifton - 9.77-1 -- annocheck: Remove limit on number of input files. +- Annocheck: Remove limit on number of input files. * Tue Jun 15 2021 Nick Clifton - 9.76-1 - clang/llvm plugins: Build with correct security options. @@ -483,13 +486,13 @@ fi - Obsolete all previous versions of annobin. (#1967339) * Tue May 25 2021 Nick Clifton - 9.73-1 -- annocheck: Improve detection of shared libraries. (#1958954) +- Annocheck: Improve detection of shared libraries. (#1958954) * Wed May 19 2021 Nick Clifton - 9.72-2 - Tidy up spec file. * Thu May 13 2021 Nick Clifton - 9.72-1 -- annocheck: Accept 0 as a valid number for gcc minor versions and release numbers. +- Annocheck: Accept 0 as a valid number for gcc minor versions and release numbers. - gcc-plugin: Add support for ARM and RISCV targets. * Tue May 04 2021 Nick Clifton - 9.71-1 diff --git a/sources b/sources index 53fad2e..f05684c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.78.tar.xz) = 22f7590bc043cb2f805d3540fa8d70317e651604d36995285a62fee023ef1a801c8aeb0950c7160a6c7367484a943c64572db1470f0c8f3fdc2a1c6ca0dfed21 +SHA512 (annobin-9.79.tar.xz) = cbb8406ad804c2fa3f49ca963c4fd85672a00d864f4ebd645019255b05ff3bc8f4fb07db1f28b8cd1667f09cf4eb23822b8b05f143c39c389433cacc09652d9f From a978ea49fa32121bd190fb68ec212aff3cd0b8e1 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 5 Jul 2021 12:49:37 +0100 Subject: [PATCH 151/459] Tests: Skip glibc-notes test if the assembler does not support --generate-missing-build-notes. Resolves: #1978573 --- annobin.spec | 12 ++++++++---- sources | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/annobin.spec b/annobin.spec index 987c205..bc5a396 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.79 +Version: 9.80 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -336,8 +336,6 @@ CONFIG_ARGS="$CONFIG_ARGS --without-test" CONFIG_ARGS="$CONFIG_ARGS --without-annocheck" %endif -%configure ${CONFIG_ARGS} || cat config.log - %set_build_flags %ifarch %{ix86} x86_64 @@ -345,6 +343,8 @@ CONFIG_ARGS="$CONFIG_ARGS --without-annocheck" export CLANG_TARGET_OPTIONS="-fcf-protection" %endif +%configure ${CONFIG_ARGS} || cat config.log + %make_build #--------------------------------------------------------------------------------- @@ -460,8 +460,12 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Jul 05 2021 Nick Clifton - 9.80-1 +- Tests: Skip glibc-notes test if the assembler does not support --generate-missing-build-notes. (#1978573) +- Tests: Skip objcopy test if objcopy does not support --merge-notes. + * Tue Jun 29 2021 Nick Clifton - 9.79-1 -- Annocheck: Fix spelling mistake in -,stack-realign failure message. (#1977349) +- Annocheck: Fix spelling mistake in -mstack-realign failure message. (#1977349) * Mon Jun 21 2021 Nick Clifton - 9.78-1 - gcc-plugin: Do not record global versions of stack protection settings in LTO mode, if not set. (#1958954) diff --git a/sources b/sources index f05684c..7835505 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.79.tar.xz) = cbb8406ad804c2fa3f49ca963c4fd85672a00d864f4ebd645019255b05ff3bc8f4fb07db1f28b8cd1667f09cf4eb23822b8b05f143c39c389433cacc09652d9f +SHA512 (annobin-9.80.tar.xz) = b3b36d5c0aa2eed07c1a7f59d2e5fdd10aefe1fc27dc9ecabf1cd4aef57004dcd1db7dc69bce29bb7687b5e79d228dd21722753ac5693cfed99156056fcb468d From 5bbd4f5f31a2e482348b658f36e2f461585d37f5 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 13 Jul 2021 15:39:21 +0100 Subject: [PATCH 152/459] Annocheck: Add some more test exceptions. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index bc5a396..c61756b 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.80 +Version: 9.81 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -460,6 +460,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Jul 13 2021 Nick Clifton - 9.81-1 +- Annocheck: Add some more test exceptions. + * Mon Jul 05 2021 Nick Clifton - 9.80-1 - Tests: Skip glibc-notes test if the assembler does not support --generate-missing-build-notes. (#1978573) - Tests: Skip objcopy test if objcopy does not support --merge-notes. diff --git a/sources b/sources index 7835505..5e23609 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.80.tar.xz) = b3b36d5c0aa2eed07c1a7f59d2e5fdd10aefe1fc27dc9ecabf1cd4aef57004dcd1db7dc69bce29bb7687b5e79d228dd21722753ac5693cfed99156056fcb468d +SHA512 (annobin-9.81.tar.xz) = 67d98292eab0f24b9c30cdd6d1fe425d8933706d491247740df03d784e7ae5359bce4f91acfa2ba589718596638bc0272a9848208307c58af062eafbba848249 From 8adc17e68bd54abefe489f20c98127fe68b6b292 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 13 Jul 2021 17:15:00 +0100 Subject: [PATCH 153/459] Annocheck: Add another test exceptions. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index c61756b..9c0c6d7 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.81 +Version: 9.82 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -460,6 +460,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Jul 13 2021 Nick Clifton - 9.82-1 +- Annocheck: Add another test exceptions. + * Tue Jul 13 2021 Nick Clifton - 9.81-1 - Annocheck: Add some more test exceptions. diff --git a/sources b/sources index 5e23609..b8d62d5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.81.tar.xz) = 67d98292eab0f24b9c30cdd6d1fe425d8933706d491247740df03d784e7ae5359bce4f91acfa2ba589718596638bc0272a9848208307c58af062eafbba848249 +SHA512 (annobin-9.82.tar.xz) = ddc1e50a18fb94cb04a5d07d5bc5b3a45639014e4b9ed85a8c34ee792da0287c9627def33e37f9d51625198666f161f65d8d7edb2c50bcaaa7bd434246841a33 From 80ffabd2a360358e2da53496e96a7d4c7ecab90e Mon Sep 17 00:00:00 2001 From: Martin Cermak Date: Tue, 20 Jul 2021 11:28:05 +0000 Subject: [PATCH 154/459] Test cover bz1973981 --- .../main.fmf | 16 ++++++ .../runtest.sh | 54 +++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 tests/Sanity/annocheck-silently-ignores-any-file-parameter/main.fmf create mode 100755 tests/Sanity/annocheck-silently-ignores-any-file-parameter/runtest.sh diff --git a/tests/Sanity/annocheck-silently-ignores-any-file-parameter/main.fmf b/tests/Sanity/annocheck-silently-ignores-any-file-parameter/main.fmf new file mode 100644 index 0000000..9aea593 --- /dev/null +++ b/tests/Sanity/annocheck-silently-ignores-any-file-parameter/main.fmf @@ -0,0 +1,16 @@ +summary: Test for BZ#1973981 (annocheck silently ignores any file parameter) +description: | + Bug summary: annocheck silently ignores any file parameter beyond 256 + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1973981 +contact: Martin Cermak +component: +- annobin +test: ./runtest.sh +framework: beakerlib +recommend: +- annobin +duration: 48h +link: +- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1973981 +extra-summary: /tools/annobin/Sanity/annocheck-silently-ignores-any-file-parameter +extra-task: /tools/annobin/Sanity/annocheck-silently-ignores-any-file-parameter diff --git a/tests/Sanity/annocheck-silently-ignores-any-file-parameter/runtest.sh b/tests/Sanity/annocheck-silently-ignores-any-file-parameter/runtest.sh new file mode 100755 index 0000000..ca991af --- /dev/null +++ b/tests/Sanity/annocheck-silently-ignores-any-file-parameter/runtest.sh @@ -0,0 +1,54 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/annobin/Sanity/annocheck-silently-ignores-any-file-parameter +# Description: Test for BZ#1973981 (annocheck silently ignores any file parameter) +# Author: Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="annobin" + +rlJournalStart + rlPhaseStartSetup + rlRun "TMP=$(mktemp -d)" + rlRun "pushd $TMP" + rlPhaseEnd + + rlPhaseStartTest + for i in `seq 0 299`; do touch ${i}.sample; done + samplecnt=$(ls *.sample | wc -l) + testcnt=$(ls *.sample | \ + xargs annocheck |& \ + fgrep '.sample: is not an ELF format file' | wc -l) + rlRun "test $samplecnt -eq 300" + rlRun "test $testcnt -eq 300" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TMP" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd From dd22b2eaf4d59e019a4f97420cca2b590d228416 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 12:39:14 +0000 Subject: [PATCH 155/459] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering From 81555732582c8b75334450df4a5823b8b79b8bdd Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 17:34:53 +0000 Subject: [PATCH 156/459] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 9c0c6d7..701f355 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.82 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -460,6 +460,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jul 21 2021 Fedora Release Engineering - 9.82-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Tue Jul 13 2021 Nick Clifton - 9.82-1 - Annocheck: Add another test exceptions. From 0394c1d928c004bae92228a5e2df56ebeb5ac218 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 23 Jul 2021 13:36:44 +0100 Subject: [PATCH 157/459] Annocheck: Reverse AArch64 PAC+BTI check, ie fail if they are enabled. Resolves: #1984995 --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 701f355..dcd2477 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.82 -Release: 2%{?dist} +Version: 9.83 +Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -460,6 +460,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Jul 23 2021 Nick Clifton - 9.83-1 +- Annocheck: Reverse AArch64 PAC+BTI check, ie fail if they are enabled. (#1984995) + * Wed Jul 21 2021 Fedora Release Engineering - 9.82-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild diff --git a/sources b/sources index b8d62d5..b661f6e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.82.tar.xz) = ddc1e50a18fb94cb04a5d07d5bc5b3a45639014e4b9ed85a8c34ee792da0287c9627def33e37f9d51625198666f161f65d8d7edb2c50bcaaa7bd434246841a33 +SHA512 (annobin-9.83.tar.xz) = 346897f99712869bfb8d0444cc708a8b9553c8722636e35ff0b76d3bd4ee5f1a455063bae62be54a8790ba411e634b1448d81b6d3b0f06ed8394815438f2d367 From 4af05b1261396f805652f85c9db38fdf09260804 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 9 Aug 2021 11:14:43 +0100 Subject: [PATCH 158/459] Annocheck: Process files in command line order. (#1988714) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index dcd2477..891c63f 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.83 +Version: 9.84 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -460,6 +460,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Aug 09 2021 Nick Clifton - 9.84-1 +- Annocheck: Process files in command line order. (#1988714) + * Fri Jul 23 2021 Nick Clifton - 9.83-1 - Annocheck: Reverse AArch64 PAC+BTI check, ie fail if they are enabled. (#1984995) diff --git a/sources b/sources index b661f6e..e28050e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.83.tar.xz) = 346897f99712869bfb8d0444cc708a8b9553c8722636e35ff0b76d3bd4ee5f1a455063bae62be54a8790ba411e634b1448d81b6d3b0f06ed8394815438f2d367 +SHA512 (annobin-9.84.tar.xz) = eb90111cfacf73a1ab3b209b5651c6e2418ee052476a0299f395045d0995666448a1572b14a06fa5c60193bfc5e485a06c18661d2aa86512d4f09a054151ce03 From 71f8485e39a572612dac208b6f3f292b88e9beb5 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 10 Aug 2021 15:14:48 +0100 Subject: [PATCH 159/459] Annocheck: Detect a missing CET note. (#1991931) Annocheck: Do not report future fails for AArch64 notes. Annocheck: Warn about multiple --debug-file, --debug-rpm and --debug-dir options. --- annobin.spec | 7 ++++++- sources | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 891c63f..6be8db5 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.84 +Version: 9.85 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -460,6 +460,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Aug 10 2021 Nick Clifton - 9.85-1 +- Annocheck: Detect a missing CET note. (#1991931) +- Annocheck: Do not report future fails for AArch64 notes. +- Annocheck: Warn about multiple --debug-file, --debug-rpm and --debug-dir options. + * Mon Aug 09 2021 Nick Clifton - 9.84-1 - Annocheck: Process files in command line order. (#1988714) diff --git a/sources b/sources index e28050e..0ed0422 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.84.tar.xz) = eb90111cfacf73a1ab3b209b5651c6e2418ee052476a0299f395045d0995666448a1572b14a06fa5c60193bfc5e485a06c18661d2aa86512d4f09a054151ce03 +SHA512 (annobin-9.85.tar.xz) = 2e71cc77ce756d973d9c3d87f0626c78fd00f35b37a70388b99663528823485b9c442db5d521680cdaae9f3f18833f3a5ce3af427715e035c074ba6a6fae44d3 From 75a23fb883a52b5298a74d76cb429aee6422b23d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 11 Aug 2021 17:23:33 +0100 Subject: [PATCH 160/459] Annocheck: Skip certain tests for kernel modules. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 6be8db5..cff62a2 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.85 +Version: 9.86 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -460,6 +460,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Aug 11 2021 Nick Clifton - 9.86-1 +- Annocheck: Skip certain tests for kernel modules. + * Tue Aug 10 2021 Nick Clifton - 9.85-1 - Annocheck: Detect a missing CET note. (#1991931) - Annocheck: Do not report future fails for AArch64 notes. diff --git a/sources b/sources index 0ed0422..9336247 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.85.tar.xz) = 2e71cc77ce756d973d9c3d87f0626c78fd00f35b37a70388b99663528823485b9c442db5d521680cdaae9f3f18833f3a5ce3af427715e035c074ba6a6fae44d3 +SHA512 (annobin-9.86.tar.xz) = 8ccde76bd0b5d4aee63a9c887793a2691e029c883b5953a565792fec5a621a09bbb0365ef6653b43c84cff96797e22561fc8d778b6ac6610a56c7f99f9d7c7db From c76d8664dac559824bea13ad8e7543b0ae842f63 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 16 Aug 2021 12:41:17 +0100 Subject: [PATCH 161/459] Annocheck: Fix memory corruption. (#1988715) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index cff62a2..3999bb3 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.86 +Version: 9.87 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -460,6 +460,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Aug 16 2021 Nick Clifton - 9.87-1 +- Annocheck: Fix memory corruption. (#1988715) + * Wed Aug 11 2021 Nick Clifton - 9.86-1 - Annocheck: Skip certain tests for kernel modules. diff --git a/sources b/sources index 9336247..4569ce3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.86.tar.xz) = 8ccde76bd0b5d4aee63a9c887793a2691e029c883b5953a565792fec5a621a09bbb0365ef6653b43c84cff96797e22561fc8d778b6ac6610a56c7f99f9d7c7db +SHA512 (annobin-9.87.tar.xz) = 04ce3881a149b1e609ecbfcd90b5eb37eddef923f2b6eb3b8e7cc15c6f2c645930ff4e01ff592d9eddd47767cd2b793e68a3dc4c5cc385519c8b6c041ac15a53 From 438dd33afc7918f60426137c8e8a26fc260af462 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Mon, 16 Aug 2021 19:09:10 +0000 Subject: [PATCH 162/459] Rebuild for LLVM 13.0.0-rc1 --- ...flegacy-pass-manager-option-to-the-t.patch | 27 +++++++++++++++++++ annobin.spec | 8 +++++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 0001-llvm-plugin-Add-flegacy-pass-manager-option-to-the-t.patch diff --git a/0001-llvm-plugin-Add-flegacy-pass-manager-option-to-the-t.patch b/0001-llvm-plugin-Add-flegacy-pass-manager-option-to-the-t.patch new file mode 100644 index 0000000..17a1626 --- /dev/null +++ b/0001-llvm-plugin-Add-flegacy-pass-manager-option-to-the-t.patch @@ -0,0 +1,27 @@ +From bda340f0754972944ec115a72f1a8547ffa21f1c Mon Sep 17 00:00:00 2001 +From: Tom Stellard +Date: Mon, 16 Aug 2021 18:04:53 +0000 +Subject: [PATCH] llvm-plugin: Add -flegacy-pass-manager option to the test + case + +The plugin does not work with the new pass manager yet. +--- + llvm-plugin/Makefile.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/llvm-plugin/Makefile.in b/llvm-plugin/Makefile.in +index bdd8b19..92bcc9a 100644 +--- a/llvm-plugin/Makefile.in ++++ b/llvm-plugin/Makefile.in +@@ -48,7 +48,7 @@ PLUGIN_TEST_OPTIONS = \ + # -fcf-protection \ + + check: @srcdir@/hello.c +- @ $(CLANG) -Xclang -load -Xclang $(PLUGIN) $(PLUGIN_TEST_OPTIONS) -c @srcdir@/hello.c ++ @ $(CLANG) -flegacy-pass-manager -Xclang -load -Xclang $(PLUGIN) $(PLUGIN_TEST_OPTIONS) -c @srcdir@/hello.c + @ $(READELF) --wide --notes hello.o > llvm-plugin-test.out + @ grep --silent -e "annobin built by llvm version" llvm-plugin-test.out + @ grep --silent -e "running on LLVM version" llvm-plugin-test.out +-- +2.26.2 + diff --git a/annobin.spec b/annobin.spec index 3999bb3..ab33227 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 9.87 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -61,6 +61,9 @@ Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz # Insert patches here, if needed. Eg: # Patch01: annobin-foo.patch +# We need to force use of legacy pass manager until annobin is ported to the new +# pass manager. +Patch0: 0001-llvm-plugin-Add-flegacy-pass-manager-option-to-the-t.patch #--------------------------------------------------------------------------------- @@ -460,6 +463,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Aug 16 2021 Tom Stellard - 9.87-2 +- Rebuild for LLVM 13.0.0-rc1 + * Mon Aug 16 2021 Nick Clifton - 9.87-1 - Annocheck: Fix memory corruption. (#1988715) From 6d6959743353af003d84b7812fae962e3829939e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 17 Aug 2021 12:06:55 +0100 Subject: [PATCH 163/459] Annocheck: Generate MAYB results for gaps in notes covering the .text section. (#1991943) Annocheck: Close DWARF file descriptors once the debug info is no longer needed. (#1981410) LLVM Plugin: Update to build with Clang v13. (Thanks to: Tom Stellard ) --- annobin.spec | 25 +++++++++---------------- sources | 2 +- 2 files changed, 10 insertions(+), 17 deletions(-) diff --git a/annobin.spec b/annobin.spec index ab33227..c8e0b75 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.87 -Release: 2%{?dist} +Version: 9.88 +Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -61,9 +61,6 @@ Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz # Insert patches here, if needed. Eg: # Patch01: annobin-foo.patch -# We need to force use of legacy pass manager until annobin is ported to the new -# pass manager. -Patch0: 0001-llvm-plugin-Add-flegacy-pass-manager-option-to-the-t.patch #--------------------------------------------------------------------------------- @@ -410,19 +407,10 @@ rm -f %{buildroot}%{_infodir}/dir %check # Change the following line to "make check || :" on RHEL7 or if you need to see the # test suite logs in order to diagnose a test failure. -make check +make -k check if [ -f tests/test-suite.log ]; then cat tests/test-suite.log fi - -%if %{with clangplugin} -# FIXME: RUN CLANG tests -%endif - -%if %{with llvmplugin} -# FIXME: RUN LLVM tests -%endif - %endif #--------------------------------------------------------------------------------- @@ -463,7 +451,12 @@ fi #--------------------------------------------------------------------------------- %changelog -* Wed Aug 16 2021 Tom Stellard - 9.87-2 +* Tue Aug 17 2021 Nick Clifton - 9.88-1 +- Annocheck: Generate MAYB results for gaps in notes covering the .text section. (#1991943) +- Annocheck: Close DWARF file descriptors once the debug info is no longer needed. (#1981410) +- LLVM Plugin: Update to build with Clang v13. (Thanks to: Tom Stellard ) + +* Mon Aug 16 2021 Tom Stellard - 9.87-2 - Rebuild for LLVM 13.0.0-rc1 * Mon Aug 16 2021 Nick Clifton - 9.87-1 diff --git a/sources b/sources index 4569ce3..5b0b9e5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.87.tar.xz) = 04ce3881a149b1e609ecbfcd90b5eb37eddef923f2b6eb3b8e7cc15c6f2c645930ff4e01ff592d9eddd47767cd2b793e68a3dc4c5cc385519c8b6c041ac15a53 +SHA512 (annobin-9.88.tar.xz) = 7ac19047cb617bf164f55e13fe0ce7ef2f72b56583bbd383d1632af47732a9e55409c456b2b717905179a6153bad40e15660dd5b8444acd819d273a21fe2e1e7 From 5d4d27dda9bca3000ee7eae40aa76f0b3fc6449e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 17 Aug 2021 15:03:42 +0100 Subject: [PATCH 164/459] Annocheck: Conditionalize detection of AArch64's PAC+BTI protection. Annocheck: Add linker generated function for s390x exceptions. (#1981410) --- annobin.spec | 13 ++++++++++++- sources | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index c8e0b75..5851b64 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.88 +Version: 9.89 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -332,8 +332,15 @@ CONFIG_ARGS="$CONFIG_ARGS --with-llvm" CONFIG_ARGS="$CONFIG_ARGS --without-test" %endif +export CFLAGS="$CFLAGS $RPM_OPT_FLAGS" + %if %{without annocheck} CONFIG_ARGS="$CONFIG_ARGS --without-annocheck" +%else +# Fedora supports AArch64's -mbranch-protection=bti, RHEL does not. +%if 0%{?fedora} != 0 +export CFLAGS="$CFLAGS -DAARCh64_BRANCH_PROTECTION_SUPPORTED=1" +%endif %endif %set_build_flags @@ -451,6 +458,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Aug 17 2021 Nick Clifton - 9.89-1 +- Annocheck: Conditionalize detection of AArch64's PAC+BTI protection. +- Annocheck: Add linker generated function for s390x exceptions. (#1981410) + * Tue Aug 17 2021 Nick Clifton - 9.88-1 - Annocheck: Generate MAYB results for gaps in notes covering the .text section. (#1991943) - Annocheck: Close DWARF file descriptors once the debug info is no longer needed. (#1981410) diff --git a/sources b/sources index 5b0b9e5..89a184a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.88.tar.xz) = 7ac19047cb617bf164f55e13fe0ce7ef2f72b56583bbd383d1632af47732a9e55409c456b2b717905179a6153bad40e15660dd5b8444acd819d273a21fe2e1e7 +SHA512 (annobin-9.89.tar.xz) = 90151e93b17ed1a95317d6d1006f41c3ce8c9d530436413b45e5c862fbc02a72ff299874f2a231b354d67b7e65d294024237d4f87c9752847d8b9173042b9841 From 7a0769e51325982e6149539ee025bfd2653a3d62 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 18 Aug 2021 11:28:24 +0100 Subject: [PATCH 165/459] Annocheck: Add linker generated function for ppc64le exceptions. (#1981410) LLVM Plugin: Allow checks to be selected from the command line. Annocheck: Examine DW_AT_producer for -flto. --- annobin.spec | 7 ++++++- sources | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 5851b64..1a8204c 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.89 +Version: 9.90 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -458,6 +458,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Aug 18 2021 Nick Clifton - 9.90-1 +- Annocheck: Add linker generated function for ppc64le exceptions. (#1981410) +- LLVM Plugin: Allow checks to be selected from the command line. +- Annocheck: Examine DW_AT_producer for -flto. + * Tue Aug 17 2021 Nick Clifton - 9.89-1 - Annocheck: Conditionalize detection of AArch64's PAC+BTI protection. - Annocheck: Add linker generated function for s390x exceptions. (#1981410) diff --git a/sources b/sources index 89a184a..8c60d1f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.89.tar.xz) = 90151e93b17ed1a95317d6d1006f41c3ce8c9d530436413b45e5c862fbc02a72ff299874f2a231b354d67b7e65d294024237d4f87c9752847d8b9173042b9841 +SHA512 (annobin-9.90.tar.xz) = 1dd320ad25f14d17c3a6973582a2c58912e3d5ffba51d459a09fc423bef2465fecb54c5a9d9202df8d68071cb5205eef2e2175d02c91fd7ba85abc103d324585 From ced3a2421032b80f6cb7561b1c60309901f5e4ef Mon Sep 17 00:00:00 2001 From: Martin Cermak Date: Fri, 20 Aug 2021 14:04:14 +0200 Subject: [PATCH 166/459] CI gating: Test cover bz1988714 --- .../main.fmf | 16 +++++++ .../runtest.sh | 42 +++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 tests/Regression/processing-params-in-reverse-order/main.fmf create mode 100755 tests/Regression/processing-params-in-reverse-order/runtest.sh diff --git a/tests/Regression/processing-params-in-reverse-order/main.fmf b/tests/Regression/processing-params-in-reverse-order/main.fmf new file mode 100644 index 0000000..19b497d --- /dev/null +++ b/tests/Regression/processing-params-in-reverse-order/main.fmf @@ -0,0 +1,16 @@ +summary: processing-params-in-reverse-order +description: | + Bug summary: annocheck processes (reports) parameters in reverse order + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1988714 +contact: Martin Cermak +component: +- annobin +test: ./runtest.sh +framework: beakerlib +recommend: +- annobin +duration: 48h +link: +- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1988714 +extra-summary: /tools/annobin/Regression/processing-params-in-reverse-order +extra-task: /tools/annobin/Regression/processing-params-in-reverse-order diff --git a/tests/Regression/processing-params-in-reverse-order/runtest.sh b/tests/Regression/processing-params-in-reverse-order/runtest.sh new file mode 100755 index 0000000..75b357e --- /dev/null +++ b/tests/Regression/processing-params-in-reverse-order/runtest.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/annobin/Regression/processing-params-in-reverse-order +# Description: processing-params-in-reverse-order +# Author: Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="annobin" + +rlJournalStart + rlPhaseStartTest + rlRun "TMP=$(mktemp)" + rlRun "annocheck --verbose --skip-all --test-stack-prot /bin/bash /bin/cat |& tee $TMP" + rlRun "fgrep -i /bin/ $TMP | head -1 | fgrep /bash" + rlRun "fgrep -i /bin/ $TMP | tail -1 | fgrep /cat" + rlRun "rm -f $TMP" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd From be3e1af704f437d5012e1188b74cf65ca2badd1f Mon Sep 17 00:00:00 2001 From: Martin Cermak Date: Fri, 20 Aug 2021 14:43:36 +0200 Subject: [PATCH 167/459] CI Gating: Test cover bz1988715 --- .../main.fmf | 17 ++++++++ .../runtest.sh | 43 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 tests/Regression/segv-when-processing-multiple-params-incl-symlink/main.fmf create mode 100755 tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh diff --git a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/main.fmf b/tests/Regression/segv-when-processing-multiple-params-incl-symlink/main.fmf new file mode 100644 index 0000000..bd8362f --- /dev/null +++ b/tests/Regression/segv-when-processing-multiple-params-incl-symlink/main.fmf @@ -0,0 +1,17 @@ +summary: segv-when-processing-multiple-params-incl-symlink +description: | + Bug summary: annocheck segfaults sometimes when processing multiple parameters and symlink is involved + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1988715 +contact: Martin Cermak +component: +- annobin +test: ./runtest.sh +framework: beakerlib +recommend: +- annobin +- libstdc++ +duration: 48h +link: +- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1988715 +extra-summary: /tools/annobin/Regression/segv-when-processing-multiple-params-incl-symlink +extra-task: /tools/annobin/Regression/segv-when-processing-multiple-params-incl-symlink diff --git a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh b/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh new file mode 100755 index 0000000..cd4ae94 --- /dev/null +++ b/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/annobin/Regression/segv-when-processing-multiple-params-incl-symlink +# Description: segv-when-processing-multiple-params-incl-symlink +# Author: Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="annobin" + +rlJournalStart + rlPhaseStartTest + # This tries to test https://bugzilla.redhat.com/show_bug.cgi?id=1988715#c0 + # keeping in mind that annocheck will evolve in the future, along its + # rules / policies, and the surrounding OS will evolve too. This test + # shouldn't report false positives though. + rlRun "rpm -qf /usr/lib64/libstdc++.so*" + rlRun "annocheck --skip-all /usr/lib64/libstdc++.so*" + rlPhaseEnd +lJournalPrintText +rlJournalEnd From 5e4c738a8f7b9fce79a1854b93349fdf28c860a7 Mon Sep 17 00:00:00 2001 From: Martin Cermak Date: Fri, 20 Aug 2021 15:25:33 +0200 Subject: [PATCH 168/459] CI Gating: Test cover bz1991931 --- .../main | Bin 0 -> 27456 bytes .../main.fmf | 16 +++++++ .../runtest.sh | 40 ++++++++++++++++++ 3 files changed, 56 insertions(+) create mode 100644 tests/Regression/missing-check-for-x86-property-note-content/main create mode 100644 tests/Regression/missing-check-for-x86-property-note-content/main.fmf create mode 100755 tests/Regression/missing-check-for-x86-property-note-content/runtest.sh diff --git a/tests/Regression/missing-check-for-x86-property-note-content/main b/tests/Regression/missing-check-for-x86-property-note-content/main new file mode 100644 index 0000000000000000000000000000000000000000..b7f4983a4a9958c8cf33bb1a902848845794ec82 GIT binary patch literal 27456 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 literal 0 HcmV?d00001 diff --git a/tests/Regression/missing-check-for-x86-property-note-content/main.fmf b/tests/Regression/missing-check-for-x86-property-note-content/main.fmf new file mode 100644 index 0000000..a7afb11 --- /dev/null +++ b/tests/Regression/missing-check-for-x86-property-note-content/main.fmf @@ -0,0 +1,16 @@ +summary: missing-check-for-x86-property-note-content +description: | + Bug summary: annobin: Missing check for contents of x86 property note + Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1991931 +contact: Martin Cermak +component: +- annobin +test: ./runtest.sh +framework: beakerlib +recommend: +- annobin +duration: 48h +link: +- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1991931 +extra-summary: /tools/annobin/Regression/missing-check-for-x86-property-note-content +extra-task: /tools/annobin/Regression/missing-check-for-x86-property-note-content diff --git a/tests/Regression/missing-check-for-x86-property-note-content/runtest.sh b/tests/Regression/missing-check-for-x86-property-note-content/runtest.sh new file mode 100755 index 0000000..14392c0 --- /dev/null +++ b/tests/Regression/missing-check-for-x86-property-note-content/runtest.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/annobin/Regression/missing-check-for-x86-property-note-content +# Description: missing-check-for-x86-property-note-content +# Author: Martin Cermak +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="annobin" + +rlJournalStart + rlPhaseStartTest + rlRun "annocheck main" 1 + rlRun "annocheck --fixed-format-messages main | \ + grep '^Hardened: FAIL: test: cf-protection file: main.$'" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd From 1d5918a750b969d366f593ae10cde0c5d37a555b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 24 Aug 2021 17:16:30 +0100 Subject: [PATCH 169/459] Annocheck: Fix memory corruption. (#1996963) spec file: Add the creation of a gcc-plugin version info file in /usr/lib/rpm/redhat. --- ...flegacy-pass-manager-option-to-the-t.patch | 27 ------------ annobin.spec | 43 ++++++++++++++++--- sources | 2 +- 3 files changed, 38 insertions(+), 34 deletions(-) delete mode 100644 0001-llvm-plugin-Add-flegacy-pass-manager-option-to-the-t.patch diff --git a/0001-llvm-plugin-Add-flegacy-pass-manager-option-to-the-t.patch b/0001-llvm-plugin-Add-flegacy-pass-manager-option-to-the-t.patch deleted file mode 100644 index 17a1626..0000000 --- a/0001-llvm-plugin-Add-flegacy-pass-manager-option-to-the-t.patch +++ /dev/null @@ -1,27 +0,0 @@ -From bda340f0754972944ec115a72f1a8547ffa21f1c Mon Sep 17 00:00:00 2001 -From: Tom Stellard -Date: Mon, 16 Aug 2021 18:04:53 +0000 -Subject: [PATCH] llvm-plugin: Add -flegacy-pass-manager option to the test - case - -The plugin does not work with the new pass manager yet. ---- - llvm-plugin/Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/llvm-plugin/Makefile.in b/llvm-plugin/Makefile.in -index bdd8b19..92bcc9a 100644 ---- a/llvm-plugin/Makefile.in -+++ b/llvm-plugin/Makefile.in -@@ -48,7 +48,7 @@ PLUGIN_TEST_OPTIONS = \ - # -fcf-protection \ - - check: @srcdir@/hello.c -- @ $(CLANG) -Xclang -load -Xclang $(PLUGIN) $(PLUGIN_TEST_OPTIONS) -c @srcdir@/hello.c -+ @ $(CLANG) -flegacy-pass-manager -Xclang -load -Xclang $(PLUGIN) $(PLUGIN_TEST_OPTIONS) -c @srcdir@/hello.c - @ $(READELF) --wide --notes hello.o > llvm-plugin-test.out - @ grep --silent -e "annobin built by llvm version" llvm-plugin-test.out - @ grep --silent -e "running on LLVM version" llvm-plugin-test.out --- -2.26.2 - diff --git a/annobin.spec b/annobin.spec index 1a8204c..eb38cf5 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.90 +Version: 9.92 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -231,6 +231,15 @@ Requires: (gcc >= %{gcc_major} with gcc < %{gcc_next}) Requires: gcc %endif +# The next line has been stolen from redhat-rpm-config.spec. +# We install a version info file into this directory, rather than gcc's plugin +# directory, because there is no reliable way for redhat-rpm-config to +# determine the name of gcc's plugin directory. +%global rrcdir /usr/lib/rpm/redhat + +# Information about the gcc plugin is recorded in this file. +%global aver %{rrcdir}/annobin-plugin-version-info + %description plugin-gcc Installs an annobin plugin that can be used by gcc. @@ -279,6 +288,7 @@ Installs an annobin plugin that can be used by Clang. #--------------------------------------------------------------------------------- %prep + if [ -z "%{gcc_vr}" ]; then echo "*** Missing gcc_vr spec file macro, cannot continue." >&2 exit 1 @@ -339,7 +349,7 @@ CONFIG_ARGS="$CONFIG_ARGS --without-annocheck" %else # Fedora supports AArch64's -mbranch-protection=bti, RHEL does not. %if 0%{?fedora} != 0 -export CFLAGS="$CFLAGS -DAARCh64_BRANCH_PROTECTION_SUPPORTED=1" +export CFLAGS="$CFLAGS -DAARCH64_BRANCH_PROTECTION_SUPPORTED=1" %endif %endif @@ -354,8 +364,6 @@ export CLANG_TARGET_OPTIONS="-fcf-protection" %make_build -#--------------------------------------------------------------------------------- - %if %{with plugin_rebuild} # Rebuild the plugin(s), this time using the plugin itself! This # ensures that the plugin works, and that it contains annotations @@ -397,15 +405,28 @@ make -C llvm-plugin all CXXFLAGS="%{optflags} $BUILD_FLAGS" #--------------------------------------------------------------------------------- -# PLUGIN_INSTALL_DIR is used by the Clang and LLVM makefiles... %install + +# PLUGIN_INSTALL_DIR is used by the Clang and LLVM makefiles... %make_install PLUGIN_INSTALL_DIR=%{buildroot}/%{llvm_plugin_dir} %if %{with clangplugin} -# Move clang plugin to a seperate directory. +# Move the clang plugin to a seperate directory. mkdir -p %{buildroot}/%{clang_plugin_dir} mv %{buildroot}/%{llvm_plugin_dir}/annobin-for-clang.so %{buildroot}/%{clang_plugin_dir} %endif + +%if %{with gccplugin} +# Record the version of gcc that built this plugin. +mkdir -p %{buildroot}%{rrcdir} +rm -f %{buildroot}%{aver} +# Note - the comparison logic in redhat-rpm-config's %%triggger macros require +# that the plugin builder information appear as the first three numbers in the file. +echo %{gcc_vr} > %{buildroot}%{aver} +# Provide a more complete version information string on the second line. +echo "%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0.0.0 was built by gcc version %{gcc_vr} from the %{version} sources" >> %{buildroot}%{aver} +%endif + rm -f %{buildroot}%{_infodir}/dir #--------------------------------------------------------------------------------- @@ -414,6 +435,8 @@ rm -f %{buildroot}%{_infodir}/dir %check # Change the following line to "make check || :" on RHEL7 or if you need to see the # test suite logs in order to diagnose a test failure. +# Change the following line to: make check CLANG_TESTS="check-pre-clang-13" +# if you need to run the tests on a machine with an earlier version of Clang installed. make -k check if [ -f tests/test-suite.log ]; then cat tests/test-suite.log @@ -447,6 +470,7 @@ fi %if %{with gccplugin} %files plugin-gcc %{ANNOBIN_GCC_PLUGIN_DIR} +%{aver} %endif %if %{with annocheck} @@ -458,6 +482,13 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Aug 24 2021 Nick Clifton - 9.92-1 +- Annocheck: Fix memory corruption. (#1996963) +- spec file: Add the creation of a gcc-plugin version info file in /usr/lib/rpm/redhat. + +* Wed Aug 18 2021 Nick Clifton - 9.91-1 +- Annocheck: Fix conditionalization of AArch64's PAC+BTI detection. + * Wed Aug 18 2021 Nick Clifton - 9.90-1 - Annocheck: Add linker generated function for ppc64le exceptions. (#1981410) - LLVM Plugin: Allow checks to be selected from the command line. diff --git a/sources b/sources index 8c60d1f..0bf131b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.90.tar.xz) = 1dd320ad25f14d17c3a6973582a2c58912e3d5ffba51d459a09fc423bef2465fecb54c5a9d9202df8d68071cb5205eef2e2175d02c91fd7ba85abc103d324585 +SHA512 (annobin-9.92.tar.xz) = 6edd56c7959b80254ecf08ff3aa2a59ff31146494cd20856e52f1f632bfd0e7d5a264dcf7227215f74b5e036aaad3d7c56d40ff4d57929446eafd33620e17b50 From 29d70de971a2f5f849f615408cfacc6783146b4f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 25 Aug 2021 13:38:58 +0100 Subject: [PATCH 170/459] LLVM Plugin: Automatically choose the correct tests to run, based upon the version of Clang installed. (#1997444) spec file: Add the installation of the annobon sources into /usr/src/annobin. --- annobin.spec | 17 +++++++++++++++-- sources | 2 +- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index eb38cf5..559a42a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.92 +Version: 9.93 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -56,9 +56,13 @@ License: GPLv3+ #--------------------------------------------------------------------------------- -Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz +%global annobin_sources annobin-%{version}.tar.xz +Source: https://nickc.fedorapeople.org/%{annobin_sources} # For the latest sources use: git clone git://sourceware.org/git/annobin.git +# This is where a copy of the sources will be installed. +%global annobin_source_dir %{_usrsrc}/annobin + # Insert patches here, if needed. Eg: # Patch01: annobin-foo.patch @@ -425,6 +429,10 @@ rm -f %{buildroot}%{aver} echo %{gcc_vr} > %{buildroot}%{aver} # Provide a more complete version information string on the second line. echo "%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0.0.0 was built by gcc version %{gcc_vr} from the %{version} sources" >> %{buildroot}%{aver} + +# Also install a copy of the sources into the build tree. +mkdir -p %{buildroot}%{annobin_source_dir} +cp %{_sourcedir}/%{annobin_sources} %{buildroot}%{annobin_source_dir}/latest-annobin.tar.xz %endif rm -f %{buildroot}%{_infodir}/dir @@ -471,6 +479,7 @@ fi %files plugin-gcc %{ANNOBIN_GCC_PLUGIN_DIR} %{aver} +%{annobin_source_dir}/latest-annobin.tar.xz %endif %if %{with annocheck} @@ -482,6 +491,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Aug 25 2021 Nick Clifton - 9.93-1 +- LLVM Plugin: Automatically choose the correct tests to run, based upon the version of Clang installed. (#1997444) +- spec file: Add the installation of the annobon sources into /usr/src/annobin. + * Tue Aug 24 2021 Nick Clifton - 9.92-1 - Annocheck: Fix memory corruption. (#1996963) - spec file: Add the creation of a gcc-plugin version info file in /usr/lib/rpm/redhat. diff --git a/sources b/sources index 0bf131b..b3cbf2d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.92.tar.xz) = 6edd56c7959b80254ecf08ff3aa2a59ff31146494cd20856e52f1f632bfd0e7d5a264dcf7227215f74b5e036aaad3d7c56d40ff4d57929446eafd33620e17b50 +SHA512 (annobin-9.93.tar.xz) = 115a65e5cefdf19ba71185008f3bdd0114dd52c659c2c28868d8c90ef7bb7a28f5bf8b57c1e0050c0652a37e3e448873e23d843e417d1f62e676034c76f6aea4 From ba44d58e227c53d8c4f00ee92417d0b162368e71 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 31 Aug 2021 15:18:09 +0100 Subject: [PATCH 171/459] Annocheck: Skip GO/CET checks. Fix fuzzing detected failures. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 559a42a..bdaa696 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.93 +Version: 9.94 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -491,6 +491,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Aug 31 2021 Nick Clifton - 9.94-1 +- Annocheck: Skip GO/CET checks. Fix fuzzing detected failures. + * Wed Aug 25 2021 Nick Clifton - 9.93-1 - LLVM Plugin: Automatically choose the correct tests to run, based upon the version of Clang installed. (#1997444) - spec file: Add the installation of the annobon sources into /usr/src/annobin. diff --git a/sources b/sources index b3cbf2d..54e35ce 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.93.tar.xz) = 115a65e5cefdf19ba71185008f3bdd0114dd52c659c2c28868d8c90ef7bb7a28f5bf8b57c1e0050c0652a37e3e448873e23d843e417d1f62e676034c76f6aea4 +SHA512 (annobin-9.94.tar.xz) = bc093962d6e07992aca2210e3c122f2bdfc89b350a8bd93530e229ff577ca950697b16f1a7795704fe4adfbabdb951e35ca46a3c639000a66f05529dcd686688 From 9d82370d42a74f491686f7c577ca4b7ebd9ff487 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 3 Sep 2021 17:55:06 +0100 Subject: [PATCH 172/459] - Annocheck: Fix fuzzing detected failures. - Annocheck: Added --profile option. - Docs: Documented --profile option and rpminspect.yaml. --- annobin.spec | 9 +++++++-- sources | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index bdaa696..5a4eb83 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.94 +Version: 9.95 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -445,7 +445,7 @@ rm -f %{buildroot}%{_infodir}/dir # test suite logs in order to diagnose a test failure. # Change the following line to: make check CLANG_TESTS="check-pre-clang-13" # if you need to run the tests on a machine with an earlier version of Clang installed. -make -k check +make check if [ -f tests/test-suite.log ]; then cat tests/test-suite.log fi @@ -491,6 +491,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Sep 03 2021 Nick Clifton - 9.95-1 +- Annocheck: Fix fuzzing detected failures. +- Annocheck: Added --profile option. +- Docs: Documented --profile option and rpminspect.yaml. + * Tue Aug 31 2021 Nick Clifton - 9.94-1 - Annocheck: Skip GO/CET checks. Fix fuzzing detected failures. diff --git a/sources b/sources index 54e35ce..77bb63b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.94.tar.xz) = bc093962d6e07992aca2210e3c122f2bdfc89b350a8bd93530e229ff577ca950697b16f1a7795704fe4adfbabdb951e35ca46a3c639000a66f05529dcd686688 +SHA512 (annobin-9.95.tar.xz) = a98e4fcae1879fb12d5da033a664217de64baf18ae07653ba8934074829e238550222350ec3d1941ae995b873f0660c151e6999a352c957d1b8ca808139d51ca From fe496281b3da5ca3dc41c5bf73c58c53c985eac2 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 9 Sep 2021 14:18:24 +0100 Subject: [PATCH 173/459] - Documentation: Add node for each hardening test. - Documentation: Install online. - Annocheck: Annote FAIL and MAYB results with URL to documentation - Annocheck: Add --no-urls and --provide-urls options - Annocheck: Add --help- option. --- annobin.spec | 15 ++++++++++----- sources | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/annobin.spec b/annobin.spec index 5a4eb83..fe76201 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 9.95 +Version: 10.01 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -443,8 +443,6 @@ rm -f %{buildroot}%{_infodir}/dir %check # Change the following line to "make check || :" on RHEL7 or if you need to see the # test suite logs in order to diagnose a test failure. -# Change the following line to: make check CLANG_TESTS="check-pre-clang-13" -# if you need to run the tests on a machine with an earlier version of Clang installed. make check if [ -f tests/test-suite.log ]; then cat tests/test-suite.log @@ -491,10 +489,17 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Sep 09 2021 Nick Clifton - 10.01-1 +- Documentation: Add node for each hardening test. +- Documentation: Install online. +- Annocheck: Annote FAIL and MAYB results with URL to documentation +- Annocheck: Add --no-urls and --provide-urls options +- Annocheck: Add --help- option. + * Fri Sep 03 2021 Nick Clifton - 9.95-1 - Annocheck: Fix fuzzing detected failures. -- Annocheck: Added --profile option. -- Docs: Documented --profile option and rpminspect.yaml. +- Annocheck: Add --profile option. +- Docs: Document --profile option and rpminspect.yaml. * Tue Aug 31 2021 Nick Clifton - 9.94-1 - Annocheck: Skip GO/CET checks. Fix fuzzing detected failures. diff --git a/sources b/sources index 77bb63b..95236d1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-9.95.tar.xz) = a98e4fcae1879fb12d5da033a664217de64baf18ae07653ba8934074829e238550222350ec3d1941ae995b873f0660c151e6999a352c957d1b8ca808139d51ca +SHA512 (annobin-10.01.tar.xz) = 6f23ddc725401c67c61cf626db05bd4f6f7a96693bd52072757555bd189894bf69e4a87a20603aa36d7db5d7f82486c5582010e4eb066100b2755ec3509f839c From 92cb681581fc80430d3448d0df6b5e641fee036d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 10 Sep 2021 11:08:17 +0100 Subject: [PATCH 174/459] Annocheck: Fix exit code when tests PASS. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index fe76201..b808ceb 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.01 +Version: 10.02 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -489,6 +489,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Sep 10 2021 Nick Clifton - 10.02-1 +- Annocheck: Fix exit code when tests PASS. + * Thu Sep 09 2021 Nick Clifton - 10.01-1 - Documentation: Add node for each hardening test. - Documentation: Install online. diff --git a/sources b/sources index 95236d1..685a570 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.01.tar.xz) = 6f23ddc725401c67c61cf626db05bd4f6f7a96693bd52072757555bd189894bf69e4a87a20603aa36d7db5d7f82486c5582010e4eb066100b2755ec3509f839c +SHA512 (annobin-10.02.tar.xz) = c6a6803b62fb1d2f8a35243e9178c36c353c2c12e670c51e9c4c7c56f710d0c14eaa71de8557aa2702144d591eba048049bb8e69eb6b45a6acbadbb13bb71629 From a99d618d38485f6eb58c4a483bdd115a3d9cfa01 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 15 Sep 2021 10:43:42 +0100 Subject: [PATCH 175/459] Annocheck: Do not set CFLAGS/LDFLAGS when building. Take from environment instead. --- annobin.spec | 26 ++++++++++++++++---------- sources | 2 +- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/annobin.spec b/annobin.spec index b808ceb..a77a40a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.02 +Version: 10.03 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -47,12 +47,14 @@ License: GPLv3+ # was built is different from the version of gcc that is now being used, and # then it will abort. # -# The default was to use plugin during rebuilds (cf BZ 1630550) but this has -# been changed because of the need to be able to rebuild annobin when a change -# to gcc breaks the version installed into the buildroot. -%if %{without plugin_rebuild} -%undefine _annotated_build -%endif +# The default is to use plugin during rebuilds (cf BZ 1630550) but this can +# be changed because of the need to be able to rebuild annobin when a change +# to gcc breaks the version installed into the buildroot. Mote however that +# uncommenting the lines below will result in annocheck not passing the rpminspect +# tests.... +# %%if %%{without plugin_rebuild} +# %%undefine _annotated_build +# %%endif #--------------------------------------------------------------------------------- @@ -346,8 +348,6 @@ CONFIG_ARGS="$CONFIG_ARGS --with-llvm" CONFIG_ARGS="$CONFIG_ARGS --without-test" %endif -export CFLAGS="$CFLAGS $RPM_OPT_FLAGS" - %if %{without annocheck} CONFIG_ARGS="$CONFIG_ARGS --without-annocheck" %else @@ -359,12 +359,15 @@ export CFLAGS="$CFLAGS -DAARCH64_BRANCH_PROTECTION_SUPPORTED=1" %set_build_flags +export CFLAGS="$CFLAGS $RPM_OPT_FLAGS %build_cflags" +export LDFLAGS="$LDFLAGS %build_ldflags" + %ifarch %{ix86} x86_64 # FIXME: There should be a better way to do this. export CLANG_TARGET_OPTIONS="-fcf-protection" %endif -%configure ${CONFIG_ARGS} || cat config.log +CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CXXFLAGS="$CFLAGS" %configure ${CONFIG_ARGS} || cat config.log %make_build @@ -489,6 +492,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Sep 15 2021 Nick Clifton - 10.03-1 +- Annocheck: Do not set CFLAGS/LDFLAGS when building. Take from environment instead. + * Fri Sep 10 2021 Nick Clifton - 10.02-1 - Annocheck: Fix exit code when tests PASS. diff --git a/sources b/sources index 685a570..e504f40 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.02.tar.xz) = c6a6803b62fb1d2f8a35243e9178c36c353c2c12e670c51e9c4c7c56f710d0c14eaa71de8557aa2702144d591eba048049bb8e69eb6b45a6acbadbb13bb71629 +SHA512 (annobin-10.03.tar.xz) = 5341b38c4b7c1799987d3c31d298bd740c941d3c2fe65cdfcf92e580801f8af5401ad9ebf88240f3330a0aeb3f95fd188cbd24f011826aadbbe7257c31cc478d From 0aa5d1ce55af5d63cf8a3c3f44ad9f7ea567ec7e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 15 Sep 2021 12:09:38 +0100 Subject: [PATCH 176/459] Annocheck: With gaps at the start/end of the .text section, check for special symbols before displaying a MAYB result. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index a77a40a..c820deb 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.03 +Version: 10.04 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -492,6 +492,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Sep 15 2021 Nick Clifton - 10.04-1 +- Annocheck: With gaps at the start/end of the .text section, check for special symbols before displaying a MAYB result. + * Wed Sep 15 2021 Nick Clifton - 10.03-1 - Annocheck: Do not set CFLAGS/LDFLAGS when building. Take from environment instead. diff --git a/sources b/sources index e504f40..3f0d8db 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.03.tar.xz) = 5341b38c4b7c1799987d3c31d298bd740c941d3c2fe65cdfcf92e580801f8af5401ad9ebf88240f3330a0aeb3f95fd188cbd24f011826aadbbe7257c31cc478d +SHA512 (annobin-10.04.tar.xz) = 05a53c9e4aa28a52a9470e3299f84d340ecba693d74a56dda72031021a1257d566a997033e54a0f4a776e21554b9156e3aae3ef774f0d9ad977684b886e706b8 From ee93527317edb44c1f6c8b8864f80b4f2c2c0421 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 15 Sep 2021 15:00:18 +0100 Subject: [PATCH 177/459] Annocheck: Do not insist on the DT_AARCH64_PAC_PLT flag being present in AArch64 binaries. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index c820deb..0ad603c 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.04 +Version: 10.05 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -492,6 +492,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Sep 15 2021 Nick Clifton - 10.05-1 +- Annocheck: Do not insist on the DT_AARCH64_PAC_PLT flag being present in AArch64 binaries. + * Wed Sep 15 2021 Nick Clifton - 10.04-1 - Annocheck: With gaps at the start/end of the .text section, check for special symbols before displaying a MAYB result. diff --git a/sources b/sources index 3f0d8db..59a06b2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.04.tar.xz) = 05a53c9e4aa28a52a9470e3299f84d340ecba693d74a56dda72031021a1257d566a997033e54a0f4a776e21554b9156e3aae3ef774f0d9ad977684b886e706b8 +SHA512 (annobin-10.05.tar.xz) = 2ac4b0faeb06b9556df2f24c93d4bed4da014782b0ea6f9bc21a3a74ce7e547656039c51003c30e81296cae23813c3d0004409eddcbc7f60dfb39575147c3e14 From c62bd663ec00a8dccce28eca5dc7903d675c4782 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 16 Sep 2021 15:06:57 +0100 Subject: [PATCH 178/459] GCC Plugin: Fix detection of running inside the LTO compiler. (#2004917) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 0ad603c..ce6a8c1 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.05 +Version: 10.06 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -492,6 +492,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Sep 16 2021 Nick Clifton - 10.06-1 +- GCC Plugin: Fix detection of running inside the LTO compiler. (#2004917) + * Wed Sep 15 2021 Nick Clifton - 10.05-1 - Annocheck: Do not insist on the DT_AARCH64_PAC_PLT flag being present in AArch64 binaries. diff --git a/sources b/sources index 59a06b2..2018e1a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.05.tar.xz) = 2ac4b0faeb06b9556df2f24c93d4bed4da014782b0ea6f9bc21a3a74ce7e547656039c51003c30e81296cae23813c3d0004409eddcbc7f60dfb39575147c3e14 +SHA512 (annobin-10.06.tar.xz) = e397ded3fcd0a1e547399ac1b28a828aa34e813aa1e0907497d19751ef3a2ee9466c63bae633422ba7d003e707b6fb7b571c87a3aa873ed82d7e20062764cdf5 From da3ba09492cd1bab1af36dc3a6b2d5772d78b2c3 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 29 Sep 2021 13:12:12 +0100 Subject: [PATCH 179/459] Annocheck: Ignore gaps containing NOP instructions. --- annobin.spec | 9 +++++++-- sources | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index ce6a8c1..73ce216 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.06 +Version: 10.07 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -428,9 +428,11 @@ mv %{buildroot}/%{llvm_plugin_dir}/annobin-for-clang.so %{buildroot}/%{clang_plu mkdir -p %{buildroot}%{rrcdir} rm -f %{buildroot}%{aver} # Note - the comparison logic in redhat-rpm-config's %%triggger macros require -# that the plugin builder information appear as the first three numbers in the file. +# that the plugin builder information appear as "major.minor.revision-release", +# eg "11.2.1-1" on the first line of the version file. echo %{gcc_vr} > %{buildroot}%{aver} # Provide a more complete version information string on the second line. +# This is not used by the comparison logic, but makes the file more useful to humans. echo "%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0.0.0 was built by gcc version %{gcc_vr} from the %{version} sources" >> %{buildroot}%{aver} # Also install a copy of the sources into the build tree. @@ -492,6 +494,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Sep 29 2021 Nick Clifton - 10.07-1 +- Annocheck: Ignore gaps containing NOP instructions. + * Thu Sep 16 2021 Nick Clifton - 10.06-1 - GCC Plugin: Fix detection of running inside the LTO compiler. (#2004917) diff --git a/sources b/sources index 2018e1a..6536896 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.06.tar.xz) = e397ded3fcd0a1e547399ac1b28a828aa34e813aa1e0907497d19751ef3a2ee9466c63bae633422ba7d003e707b6fb7b571c87a3aa873ed82d7e20062764cdf5 +SHA512 (annobin-10.07.tar.xz) = f600e06cb6ee0f2663a8ff3de23df7ac716a79447caa3f2ca59665ccf4860809b4193ebff5149d109e903cd11bf758775b5261640cb3f948be561861c00526dc From 5f79645f586fcca47acae5ff03044b8a296c25d8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 1 Oct 2021 13:11:12 +0100 Subject: [PATCH 180/459] - Annocheck: Fix covscan detected problems. - Annocheck: Add --profile=el8. - gcc-plugin: Conditionalize generation of branch protection note. --- annobin.spec | 7 ++++++- sources | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 73ce216..f79b24a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.07 +Version: 10.08 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -494,6 +494,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Oct 01 2021 Nick Clifton - 10.08-1 +- Annocheck: Fix covscan detected problems. +- Annocheck: Add --profile=el8. +- gcc-plugin: Conditionalize generation of branch protection note. + * Wed Sep 29 2021 Nick Clifton - 10.07-1 - Annocheck: Ignore gaps containing NOP instructions. diff --git a/sources b/sources index 6536896..eccdfa9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.07.tar.xz) = f600e06cb6ee0f2663a8ff3de23df7ac716a79447caa3f2ca59665ccf4860809b4193ebff5149d109e903cd11bf758775b5261640cb3f948be561861c00526dc +SHA512 (annobin-10.08.tar.xz) = 2d2cffa758adbb555e9588ae18636ee1b49a0baf7249fbbc10c1fdd1991b74403265bc9f6591dc70b14889ec56d3d3229a0141eb755068c4fecc6257450c0218 From 37b5de8c9b8f14138b9d9e18a3b2fc52a6ecbe6d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 4 Oct 2021 15:26:35 +0100 Subject: [PATCH 181/459] Annocheck: Add more cases of glibc startup functions. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index f79b24a..3150dd5 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.08 +Version: 10.09 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -494,6 +494,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Oct 04 2021 Nick Clifton - 10.09-1 +- Annocheck: Add more cases of glibc startup functions. + * Fri Oct 01 2021 Nick Clifton - 10.08-1 - Annocheck: Fix covscan detected problems. - Annocheck: Add --profile=el8. diff --git a/sources b/sources index eccdfa9..447cc02 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.08.tar.xz) = 2d2cffa758adbb555e9588ae18636ee1b49a0baf7249fbbc10c1fdd1991b74403265bc9f6591dc70b14889ec56d3d3229a0141eb755068c4fecc6257450c0218 +SHA512 (annobin-10.09.tar.xz) = 6cf6a797719a6150cf61014ff456df0bc2a7d8adf50e6219aace692562d48b7a7a6954a2a3d29d6a511ea234e3a36b50beddef32d46cb4ebd6ddc23ab16b36e4 From c27947f871ea063c9ac18d73de4fc7018df0c594 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 5 Oct 2021 14:28:09 +0100 Subject: [PATCH 182/459] Annocheck: Fix cf-prot test to fail if the CET notes are missing. Annocheck: Skip gaps in the .plt section. Plugins: Add -g option when building LLVM and Clang. --- annobin.spec | 9 +++++++-- sources | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 3150dd5..b30720b 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.09 +Version: 10.10 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -494,7 +494,12 @@ fi #--------------------------------------------------------------------------------- %changelog -* Tue Oct 04 2021 Nick Clifton - 10.09-1 +* Tue Oct 05 2021 Nick Clifton - 10.10-1 +- Annocheck: Fix cf-prot test to fail if the CET notes are missing. +- Annocheck: Skip gaps in the .plt section. +- Plugins: Add -g option when building LLVM and Clang. + +* Mon Oct 04 2021 Nick Clifton - 10.09-1 - Annocheck: Add more cases of glibc startup functions. * Fri Oct 01 2021 Nick Clifton - 10.08-1 diff --git a/sources b/sources index 447cc02..a8b438e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.09.tar.xz) = 6cf6a797719a6150cf61014ff456df0bc2a7d8adf50e6219aace692562d48b7a7a6954a2a3d29d6a511ea234e3a36b50beddef32d46cb4ebd6ddc23ab16b36e4 +SHA512 (annobin-10.10.tar.xz) = 5ad1deecd4a109ff8063aa0593fcabe10eacad273bf7ad31789c2daf81e9af7337ee0cbbc65d9c7541a1878b7e34128a87f0b8e7c27eb316014a613ad5ebca40 From efe8b5622bc1b79b0b7db6b87f5c04bcbe2f1099 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 6 Oct 2021 10:59:43 +0100 Subject: [PATCH 183/459] Annocheck: Fix covscan detected flaws. plugins: Add more required build options. --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index b30720b..20876c9 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.10 +Version: 10.11 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -494,6 +494,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Oct 05 2021 Nick Clifton - 10.11-1 +- Annocheck: Fix covscan detected flaws. +- plugins: Add more required build options. + * Tue Oct 05 2021 Nick Clifton - 10.10-1 - Annocheck: Fix cf-prot test to fail if the CET notes are missing. - Annocheck: Skip gaps in the .plt section. diff --git a/sources b/sources index a8b438e..1c1d13a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.10.tar.xz) = 5ad1deecd4a109ff8063aa0593fcabe10eacad273bf7ad31789c2daf81e9af7337ee0cbbc65d9c7541a1878b7e34128a87f0b8e7c27eb316014a613ad5ebca40 +SHA512 (annobin-10.11.tar.xz) = 73ff710cb47b6adaf4e7217b034cf073c256edd7faaf610c6ffe1dea7ca100861ef5ac65ecc14b42cd17ffac54ea051e429e5b2fb965fa81f49376d5e8f3f6f0 From f25c7c2336a077d37fc3c9d6406af5fcc70bcfe5 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 8 Oct 2021 14:15:39 +0100 Subject: [PATCH 184/459] Annocheck: Fix MAYB results for mixed GO/C files. Annocheck: Move some messages from VERBOSE to VERBOSE2. Annocheck: Scan zero-length tool notes. --- annobin.spec | 7 ++++++- sources | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 20876c9..6497512 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.11 +Version: 10.12 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -494,6 +494,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Oct 08 2021 Nick Clifton - 10.12-1 +- Annocheck: Fix MAYB results for mixed GO/C files. +- Annocheck: Move some messages from VERBOSE to VERBOSE2. +- Annocheck: Scan zero-length tool notes. + * Tue Oct 05 2021 Nick Clifton - 10.11-1 - Annocheck: Fix covscan detected flaws. - plugins: Add more required build options. diff --git a/sources b/sources index 1c1d13a..1c5fa53 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.11.tar.xz) = 73ff710cb47b6adaf4e7217b034cf073c256edd7faaf610c6ffe1dea7ca100861ef5ac65ecc14b42cd17ffac54ea051e429e5b2fb965fa81f49376d5e8f3f6f0 +SHA512 (annobin-10.12.tar.xz) = 5c890b333764cb84a833b5e49f38fe26c4afb29acf528f24fbfa4c8985eab4c281974b0dbcd1918638d35303dfcb7cc7ec22003064c86b72779abadf48b41904 From f1b2a85f11904dd0bee65b51b12af853d8f49e65 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 8 Oct 2021 16:25:13 +0100 Subject: [PATCH 185/459] Annocheck: Fix memory corruptions when using --debug-path and when a corrupt note is found. Resolves: #2011438 --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 6497512..58b252d 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.12 +Version: 10.13 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -494,6 +494,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Oct 08 2021 Nick Clifton - 10.13-1 +- Annocheck: Fix memory corruptions when using --debug-path and when a corrupt note is found. (#20011438) + * Fri Oct 08 2021 Nick Clifton - 10.12-1 - Annocheck: Fix MAYB results for mixed GO/C files. - Annocheck: Move some messages from VERBOSE to VERBOSE2. diff --git a/sources b/sources index 1c5fa53..6f4c387 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.12.tar.xz) = 5c890b333764cb84a833b5e49f38fe26c4afb29acf528f24fbfa4c8985eab4c281974b0dbcd1918638d35303dfcb7cc7ec22003064c86b72779abadf48b41904 +SHA512 (annobin-10.13.tar.xz) = 96a708a2e5cf2e816faa44160dd1e6200660237bf9341b9889d0f2ad5b31830bf4ef11d438662ff29c9170a0250158d609aaedef4ee6faa1e2b2134e4860b3d7 From 825be9a6a22631efd3d284b4c32939e5d14143de Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 7 Oct 2021 23:27:54 +0000 Subject: [PATCH 186/459] Rebuild for llvm-13.0.0 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 58b252d..895ce5c 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.13 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -494,6 +494,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Oct 12 2021 Tom Stellard - 10.13-2 +- Rebuild for llvm-13.0.0 + * Fri Oct 08 2021 Nick Clifton - 10.13-1 - Annocheck: Fix memory corruptions when using --debug-path and when a corrupt note is found. (#20011438) From 8477e1751db0c4539cb88c65ff228f0642cc545b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 13 Oct 2021 11:55:02 +0100 Subject: [PATCH 187/459] Annocheck: Add tests based upon recent bug fixes. --- annobin.spec | 9 ++++++++- sources | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 58b252d..3f88599 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.13 +Version: 10.15 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -131,6 +131,7 @@ Provides: %{name} = %{version}-%{release} Obsoletes: %{name} < %{version}-%{release} # The documentation uses pod2man... BuildRequires: perl-interpreter perl-podlators gawk make +BuildRequires: sharutils %description docs Provides the documentation files and example shell scripts for use with annobin. @@ -494,6 +495,12 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Oct 13 2021 Nick Clifton - 10.15-1 +- Annocheck: Add tests based upon recent bug fixes. + +* Mon Oct 11 2021 Nick Clifton - 10.14-1 +- Annocheck: Another tweak to glibc detection code. + * Fri Oct 08 2021 Nick Clifton - 10.13-1 - Annocheck: Fix memory corruptions when using --debug-path and when a corrupt note is found. (#20011438) diff --git a/sources b/sources index 6f4c387..6c3460b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.13.tar.xz) = 96a708a2e5cf2e816faa44160dd1e6200660237bf9341b9889d0f2ad5b31830bf4ef11d438662ff29c9170a0250158d609aaedef4ee6faa1e2b2134e4860b3d7 +SHA512 (annobin-10.15.tar.xz) = b0a8de5b9527e11d2ad60b1ca552772f524c3a1b1ba9591a5366403d54170211da13463dc13a52f829cd9375d91e4da92dadaf2d7a78f95cc3e6ea90aaf605ce From 0c5b1fec47fde341c417a914155fb2f1c0b96be2 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 14 Oct 2021 20:04:48 +0100 Subject: [PATCH 188/459] Fix configuring annocheck without gcc-plugin. - Annocheck: Better reporting of debuginfod problems. - Tests: Fix bugs in debuginfod test. --- annobin.spec | 17 +++++++++++------ sources | 2 +- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/annobin.spec b/annobin.spec index 8df0878..5aec687 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.15 +Version: 10.16 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -37,7 +37,7 @@ License: GPLv3+ # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 -%bcond_with plugin_rebuild +%bcond_without plugin_rebuild # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. @@ -464,10 +464,10 @@ fi %doc %{_datadir}/doc/annobin-plugin/annotation.proposal.txt %{_infodir}/annobin.info* %{_mandir}/man1/annobin.1* -%{_mandir}/man1/built-by.1* -%{_mandir}/man1/check-abi.1* -%{_mandir}/man1/hardened.1* -%{_mandir}/man1/run-on-binaries-in.1* +%exclude %{_mandir}/man1/built-by.1* +%exclude %{_mandir}/man1/check-abi.1* +%exclude %{_mandir}/man1/hardened.1* +%exclude %{_mandir}/man1/run-on-binaries-in.1* %if %{with llvmplugin} %files plugin-llvm @@ -495,6 +495,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Oct 14 2021 Nick Clifton - 10.16-1 +- Fix configuring annocheck without gcc-plugin. +- Annocheck: Better reporting of debuginfod problems. +- Tests: Fix bugs in debuginfod test. + * Wed Oct 13 2021 Nick Clifton - 10.15-1 - Annocheck: Add tests based upon recent bug fixes. diff --git a/sources b/sources index 6c3460b..6d6f981 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.15.tar.xz) = b0a8de5b9527e11d2ad60b1ca552772f524c3a1b1ba9591a5366403d54170211da13463dc13a52f829cd9375d91e4da92dadaf2d7a78f95cc3e6ea90aaf605ce +SHA512 (annobin-10.16.tar.xz) = 34c4d33c774a088ed8f9065322d9f7125639e0c113cf6ffe724d54bcd83d3fda69550dcd234cc0efe5134f460914323eb981910b4faa3b42bc9b90a60b7d1abc From 7bc94a3f7cd51f9a9cd0b59f84c393fda8f49631 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 18 Oct 2021 14:24:09 +0100 Subject: [PATCH 189/459] Add a requirement on llvm-libs for clang and llvm plugins. Resolves: #2014573 --- annobin.spec | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 5aec687..79c1af7 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.16 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -130,8 +130,7 @@ BuildArch: noarch Provides: %{name} = %{version}-%{release} Obsoletes: %{name} < %{version}-%{release} # The documentation uses pod2man... -BuildRequires: perl-interpreter perl-podlators gawk make -BuildRequires: sharutils +BuildRequires: perl-interpreter perl-podlators gawk make sharutils %description docs Provides the documentation files and example shell scripts for use with annobin. @@ -259,6 +258,7 @@ Installs an annobin plugin that can be used by gcc. Summary: annobin llvm plugin Requires: %{name}-docs = %{version}-%{release} +Requires: llvm-libs Conflicts: %{name} <= 9.60-1 BuildRequires: clang clang-devel llvm llvm-devel compiler-rt @@ -274,6 +274,7 @@ Installs an annobin plugin that can be used by LLVM tools. Summary: annobin clang plugin Requires: %{name}-docs = %{version}-%{release} +Requires: llvm-libs Conflicts: %{name} <= 9.60-1 BuildRequires: clang clang-devel llvm llvm-devel compiler-rt @@ -495,6 +496,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Oct 18 2021 Nick Clifton - 10.16-2 +- Add a requirement on llvm-libs for clang and llvm plugins. (#2014573) + * Thu Oct 14 2021 Nick Clifton - 10.16-1 - Fix configuring annocheck without gcc-plugin. - Annocheck: Better reporting of debuginfod problems. From 3f7c00bf573cbb6e713c281f185d405102ce9216 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 18 Oct 2021 16:17:25 +0100 Subject: [PATCH 190/459] Better reporting of problems in object files. Resolves: #2013708 --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 79c1af7..bd16b41 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.16 -Release: 2%{?dist} +Version: 10.17 +Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -496,6 +496,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Oct 18 2021 Nick Clifton - 10.17-1 +- Better reporting of problems in object files. (#2013708) + * Mon Oct 18 2021 Nick Clifton - 10.16-2 - Add a requirement on llvm-libs for clang and llvm plugins. (#2014573) diff --git a/sources b/sources index 6d6f981..4ed532e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.16.tar.xz) = 34c4d33c774a088ed8f9065322d9f7125639e0c113cf6ffe724d54bcd83d3fda69550dcd234cc0efe5134f460914323eb981910b4faa3b42bc9b90a60b7d1abc +SHA512 (annobin-10.17.tar.xz) = ebdedb9310ad9dc5c31f1689eadefd6e55af629859cb742c0b2fb3c05c1c94c9e3fb73e0edb4d2a08d5d0e124a6e9bd1179420f304ad57f79f46ace348ee5720 From 0bd26e8615aa334dc139c6889456a907a29cfc5d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 20 Oct 2021 17:49:04 +0100 Subject: [PATCH 191/459] Complain about DT_RPATH for Fedora binaries. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index bd16b41..925ae23 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.17 +Version: 10.18 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -496,6 +496,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Oct 20 2021 Nick Clifton - 10.18-1 +- Complain about DT_RPATH for Fedora binaries. + * Mon Oct 18 2021 Nick Clifton - 10.17-1 - Better reporting of problems in object files. (#2013708) diff --git a/sources b/sources index 4ed532e..a676d64 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.17.tar.xz) = ebdedb9310ad9dc5c31f1689eadefd6e55af629859cb742c0b2fb3c05c1c94c9e3fb73e0edb4d2a08d5d0e124a6e9bd1179420f304ad57f79f46ace348ee5720 +SHA512 (annobin-10.18.tar.xz) = b1d31f80b098a224ea63e8587bd68e5462f4ed7c3ef43fa1561e5dedb996bb9e0b522306c2c1dbc05a1dba527477ce8715e31a519fca8dbdd9355a96549e7993 From 7f58204567cdce8b0626362049660312828d5e51 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 21 Oct 2021 13:48:54 +0100 Subject: [PATCH 192/459] gcc-plugin: Fix attaching the .text section to the .text.group section. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 925ae23..ba88026 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.18 +Version: 10.19 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -496,6 +496,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Oct 21 2021 Nick Clifton - 10.19-1 +- gcc-plugin: Fix attaching the .text section to the .text.group section. + * Wed Oct 20 2021 Nick Clifton - 10.18-1 - Complain about DT_RPATH for Fedora binaries. diff --git a/sources b/sources index a676d64..e3abc8a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.18.tar.xz) = b1d31f80b098a224ea63e8587bd68e5462f4ed7c3ef43fa1561e5dedb996bb9e0b522306c2c1dbc05a1dba527477ce8715e31a519fca8dbdd9355a96549e7993 +SHA512 (annobin-10.19.tar.xz) = 8cefaadcd7100b4734e0acb03eeaa41f5269ae484918c9d3e4959b2d0241aba1f1e5aaee3e2ad36e8f030ff2d7dd778902cac385ea050202845cbf0e83f67545 From 7add09b73effd38992220b02276d5e51fdeecde9 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 26 Oct 2021 08:28:59 +0100 Subject: [PATCH 193/459] Annocheck: Add more glibc function names. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index ba88026..00d9d76 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.19 +Version: 10.20 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -496,6 +496,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Oct 26 2021 Nick Clifton - 10.20-1 +- Annocheck: Add more glibc function names. + * Thu Oct 21 2021 Nick Clifton - 10.19-1 - gcc-plugin: Fix attaching the .text section to the .text.group section. diff --git a/sources b/sources index e3abc8a..eeb8e05 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.19.tar.xz) = 8cefaadcd7100b4734e0acb03eeaa41f5269ae484918c9d3e4959b2d0241aba1f1e5aaee3e2ad36e8f030ff2d7dd778902cac385ea050202845cbf0e83f67545 +SHA512 (annobin-10.20.tar.xz) = 213f0b43a47f55796830d6c5339ae95ab635aefbededab7face823c2a345fe79266625802e271f69d8fdd48c2de0949766e5df5ff7969fe12bbc2e3de0d07b36 From ee53f9336e4dc46b9e8a1db94d2cc9a1659c0959 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 26 Oct 2021 15:58:02 +0100 Subject: [PATCH 194/459] Annocheck: Do not fail if a --skip- option does not match a known test. ldconfig-test: Skip the LTO check. --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 00d9d76..554b94a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.20 +Version: 10.21 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -496,6 +496,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Oct 26 2021 Nick Clifton - 10.21-1 +- Annocheck: Do not fail if a --skip- option does not match a known test. +- ldconfig-test: Skip the LTO check. + * Tue Oct 26 2021 Nick Clifton - 10.20-1 - Annocheck: Add more glibc function names. diff --git a/sources b/sources index eeb8e05..987e77f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.20.tar.xz) = 213f0b43a47f55796830d6c5339ae95ab635aefbededab7face823c2a345fe79266625802e271f69d8fdd48c2de0949766e5df5ff7969fe12bbc2e3de0d07b36 +SHA512 (annobin-10.21.tar.xz) = 96ee640c6b14340deabdb2b3242b00ebbd284d03f83192c24b70db3bfd6bca7a9e5c17f03f280b1f150d39e83188235f8c8dc1d8b17e14034ab32d4d4cc50731 From 18219884f150e7aa4b814e9e8e3346e82d28ba92 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 27 Oct 2021 11:10:47 +0100 Subject: [PATCH 195/459] gcc-plugin: Default to link-order grouping for PPC64LE. (#2016458) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 554b94a..6b454f0 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.21 +Version: 10.22 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -496,6 +496,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Oct 27 2021 Nick Clifton - 10.22-1 +- gcc-plugin: Default to link-order grouping for PPC64LE. (#2016458) + * Tue Oct 26 2021 Nick Clifton - 10.21-1 - Annocheck: Do not fail if a --skip- option does not match a known test. - ldconfig-test: Skip the LTO check. diff --git a/sources b/sources index 987e77f..1105859 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.21.tar.xz) = 96ee640c6b14340deabdb2b3242b00ebbd284d03f83192c24b70db3bfd6bca7a9e5c17f03f280b1f150d39e83188235f8c8dc1d8b17e14034ab32d4d4cc50731 +SHA512 (annobin-10.22.tar.xz) = 865a63d2a0da551b2514f1b1800f4df8f3cffe25c1598f8587a26951065f517840181b069cd1041c350a1f89ccc28aa99fded55c2044db3eca42873b4310d109 From 92c34892f6013b7ac7e5d59a884c3d16a12d9033 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 8 Nov 2021 13:47:26 +0000 Subject: [PATCH 196/459] Annocheck: Add a test for unicode characters in identifiers. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 6b454f0..8d823d9 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.22 +Version: 10.23 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -496,6 +496,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Nov 08 2021 Nick Clifton - 10.23-1 +- Annocheck: Add a test for unicode characters in identifiers. + * Wed Oct 27 2021 Nick Clifton - 10.22-1 - gcc-plugin: Default to link-order grouping for PPC64LE. (#2016458) diff --git a/sources b/sources index 1105859..da0318f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.22.tar.xz) = 865a63d2a0da551b2514f1b1800f4df8f3cffe25c1598f8587a26951065f517840181b069cd1041c350a1f89ccc28aa99fded55c2044db3eca42873b4310d109 +SHA512 (annobin-10.23.tar.xz) = d00d33a9d9ead39f2b7927e232716bca1d21b5e25543b3b23ac0e43ae6e9b339f8145c006e3f14931de46c7c6d079adcba6e8015166249bbb2c14105169ebc95 From 5faade2ad7661ef54d905d47a3ec6bc73b6370f5 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 16 Nov 2021 11:14:14 +0000 Subject: [PATCH 197/459] Add support for more special glibc functions. Fix building LLVM and Clang plugins for the ARM architecture. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 8d823d9..ddf55f3 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.23 +Version: 10.24 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -496,6 +496,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Nov 15 2021 Nick Clifton - 10.24-1 +- Annocheck: Add exception for /usr/sbin/ldconfig. (#2022973) + * Mon Nov 08 2021 Nick Clifton - 10.23-1 - Annocheck: Add a test for unicode characters in identifiers. diff --git a/sources b/sources index da0318f..4654b1b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.23.tar.xz) = d00d33a9d9ead39f2b7927e232716bca1d21b5e25543b3b23ac0e43ae6e9b339f8145c006e3f14931de46c7c6d079adcba6e8015166249bbb2c14105169ebc95 +SHA512 (annobin-10.24.tar.xz) = bfbd60d0cbf7d927a6beeb5454d276de9afdce9afe2c32841f6942570eda39873e637bf3882d8f483d87c76a7ad691902083084f6483d97d046df1e05c515614 From cfbdb08f28fe0b6a867f38596a2aa6ee5a52451d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 16 Nov 2021 17:01:20 +0000 Subject: [PATCH 198/459] gcc-plugin: Revert 10.22 change. (#2023437) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index ddf55f3..e979ae3 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.24 +Version: 10.25 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -496,6 +496,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Nov 16 2021 Nick Clifton - 10.25-1 +- gcc-plugin: Revert 10.22 change. (#2023437) + * Mon Nov 15 2021 Nick Clifton - 10.24-1 - Annocheck: Add exception for /usr/sbin/ldconfig. (#2022973) diff --git a/sources b/sources index 4654b1b..eb8773d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.24.tar.xz) = bfbd60d0cbf7d927a6beeb5454d276de9afdce9afe2c32841f6942570eda39873e637bf3882d8f483d87c76a7ad691902083084f6483d97d046df1e05c515614 +SHA512 (annobin-10.25.tar.xz) = 8dbd3a052d56d2104f5a29fff7679a0acea45886fe43fa204f6e309e6c51dfa8859a91238ba44812578939a3d53af367e9e9672f7e607a150ff71acc7c5e168d From ddf58cca976f5c8ebdc4e314fbd458e01a05fd4b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 18 Nov 2021 13:29:22 +0000 Subject: [PATCH 199/459] gcc-plugin: Try another fix for ppc64le section grouping. (#2023437) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index e979ae3..1517eb0 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.25 +Version: 10.26 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -496,6 +496,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Nov 18 2021 Nick Clifton - 10.26-1 +- gcc-plugin: Try another fix for ppc64le section grouping. (#2023437) + * Tue Nov 16 2021 Nick Clifton - 10.25-1 - gcc-plugin: Revert 10.22 change. (#2023437) diff --git a/sources b/sources index eb8773d..6e5af8f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.25.tar.xz) = 8dbd3a052d56d2104f5a29fff7679a0acea45886fe43fa204f6e309e6c51dfa8859a91238ba44812578939a3d53af367e9e9672f7e607a150ff71acc7c5e168d +SHA512 (annobin-10.26.tar.xz) = bfea794990adf3121fb114e25f6e0287bb9676063c8b9edb226cbd683bff272510c4b967a332091403d44a3b0a1ea85d7c1b6651fec12d13dbe1021ba0a465bf From 9fd7a9a7dc5464088687933e5a6576b44f97cb22 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 19 Nov 2021 12:25:11 +0000 Subject: [PATCH 200/459] Annocheck: Skip missing fortify/warning notes for ARM32. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 1517eb0..f7b6381 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.26 +Version: 10.27 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -496,6 +496,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Nov 19 2021 Nick Clifton - 10.27-1 +- Annocheck: Skip missing fortify/warning notes for ARM32. + * Thu Nov 18 2021 Nick Clifton - 10.26-1 - gcc-plugin: Try another fix for ppc64le section grouping. (#2023437) diff --git a/sources b/sources index 6e5af8f..9b09e54 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.26.tar.xz) = bfea794990adf3121fb114e25f6e0287bb9676063c8b9edb226cbd683bff272510c4b967a332091403d44a3b0a1ea85d7c1b6651fec12d13dbe1021ba0a465bf +SHA512 (annobin-10.27.tar.xz) = 4345b668880e0fcc23ba64186d963dc836e68bca13711c934d0f58df5c5e198e1ddbea36e6f3b95a02e2667b291d5cec3f3b36cdaf7e108384560fb4624eacd5 From 14b9ff320e232900b56f5799154770fa60799c78 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 24 Nov 2021 14:03:50 +0000 Subject: [PATCH 201/459] gcc-plugin: Fix bug creating empty attachments. Annocheck: Change MAYB result to SKIP for DT_RPATH. (#2026300) --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index f7b6381..f104249 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.27 +Version: 10.29 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -496,6 +496,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Nov 24 2021 Nick Clifton - 10.29-1 +- gcc-plugin: Fix bug creating empty attachments. +- Annocheck: Change MAYB result to SKIP for DT_RPATH. (#2026300) + * Fri Nov 19 2021 Nick Clifton - 10.27-1 - Annocheck: Skip missing fortify/warning notes for ARM32. diff --git a/sources b/sources index 9b09e54..943e488 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.27.tar.xz) = 4345b668880e0fcc23ba64186d963dc836e68bca13711c934d0f58df5c5e198e1ddbea36e6f3b95a02e2667b291d5cec3f3b36cdaf7e108384560fb4624eacd5 +SHA512 (annobin-10.29.tar.xz) = 21b9ef999f2cb3b93aa24d5e71959d9573d782547e938ff90196d430c9ae9edab641c486068bd40eea6b4a1498cbcab88cec47dcb8b177f8874643415191bff1 From 3bf68f34bb08b05be366785049b8bfcee3edbb0f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 1 Dec 2021 15:53:49 +0000 Subject: [PATCH 202/459] Initial checkin of libannocheck --- annobin.spec | 7 ++++++- sources | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index f104249..5d79020 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.29 +Version: 10.30 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -489,6 +489,8 @@ fi %if %{with annocheck} %files annocheck +%{_includedir}/libannocheck.h +%{_libdir}/libannocheck.* %{_bindir}/annocheck %{_mandir}/man1/annocheck.1* %endif @@ -496,6 +498,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Dec 01 2021 Nick Clifton - 10.30-1 +- Annocheck: Initial deployment of libannocheck. + * Wed Nov 24 2021 Nick Clifton - 10.29-1 - gcc-plugin: Fix bug creating empty attachments. - Annocheck: Change MAYB result to SKIP for DT_RPATH. (#2026300) diff --git a/sources b/sources index 943e488..c113b44 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.29.tar.xz) = 21b9ef999f2cb3b93aa24d5e71959d9573d782547e938ff90196d430c9ae9edab641c486068bd40eea6b4a1498cbcab88cec47dcb8b177f8874643415191bff1 +SHA512 (annobin-10.30.tar.xz) = 4bcdfed0fbb1f35bcae940c10f252fea94c1072cd2b6b032bf6fc2a6eef4357ecd0a62ca1a73b0dd3cca659978b68dd6be6ce8cdab76d0133882ee9363c03a10 From c99cca3ac4623988daa1a01cfd9da873274b4db0 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 2 Dec 2021 15:38:52 +0000 Subject: [PATCH 203/459] Annocheck: Allow spaces in golang symbols. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 5d79020..8154dc1 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.30 +Version: 10.31 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -498,6 +498,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Dec 02 2021 Nick Clifton - 10.31-1 +- Annocheck: Allow spaces in golang symbols. + * Wed Dec 01 2021 Nick Clifton - 10.30-1 - Annocheck: Initial deployment of libannocheck. diff --git a/sources b/sources index c113b44..b6c2d1c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.30.tar.xz) = 4bcdfed0fbb1f35bcae940c10f252fea94c1072cd2b6b032bf6fc2a6eef4357ecd0a62ca1a73b0dd3cca659978b68dd6be6ce8cdab76d0133882ee9363c03a10 +SHA512 (annobin-10.31.tar.xz) = e1702652fef0b4acd57b96edba815154d6473023b120243f6d66b46bd5bcc3d46f33bbb3e64e27281028e857c8657cef0f4aa6c92a13c710943fab865bd5d6b8 From c7d76e06c2c2fbb0337b1320f3c5628586b994b4 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 6 Dec 2021 12:19:06 +0000 Subject: [PATCH 204/459] Annocheck: Ignore gaps in binaries at least partial built by golang. Resolves: #2028583 --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 8154dc1..2e4d507 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.31 +Version: 10.32 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -498,6 +498,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Dec 06 2021 Nick Clifton - 10.32-1 +- Annocheck: Ignore gaps in binaries at least partial built by golang. (#2028583) + * Thu Dec 02 2021 Nick Clifton - 10.31-1 - Annocheck: Allow spaces in golang symbols. diff --git a/sources b/sources index b6c2d1c..1d308d1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.31.tar.xz) = e1702652fef0b4acd57b96edba815154d6473023b120243f6d66b46bd5bcc3d46f33bbb3e64e27281028e857c8657cef0f4aa6c92a13c710943fab865bd5d6b8 +SHA512 (annobin-10.32.tar.xz) = b161f0753ebb1a9fa32531944597f37173ebe3d0de84acec123f642078cbfca10ac4b5044d03bfb98e706b6438359df80c1b50efff089a0ec52b36f4a7097e1b From ce231f4bd956bb0a670e3e29e1469bef6924eacd Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 6 Dec 2021 14:43:50 +0000 Subject: [PATCH 205/459] Tests: Fix gaps and stat tests to use newly built annobin plugin. (#2028063) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 2e4d507..608586c 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.32 +Version: 10.33 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -498,6 +498,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Dec 06 2021 Nick Clifton - 10.33-1 +- Tests: Fix gaps and stat tests to use newly built annobin plugin. (#2028063) + * Mon Dec 06 2021 Nick Clifton - 10.32-1 - Annocheck: Ignore gaps in binaries at least partial built by golang. (#2028583) diff --git a/sources b/sources index 1d308d1..5fbf684 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.32.tar.xz) = b161f0753ebb1a9fa32531944597f37173ebe3d0de84acec123f642078cbfca10ac4b5044d03bfb98e706b6438359df80c1b50efff089a0ec52b36f4a7097e1b +SHA512 (annobin-10.33.tar.xz) = b393be397e29dcac644634655e872fa934f254724ddc7eb17891b5086000f4ef31f165ec168b8219aa36e53e43d74f33c840704a2a463ba1577e047a96e2ad2d From d83b796c87179b5bb7bb32112a9f839bba530cef Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 6 Dec 2021 17:49:41 +0000 Subject: [PATCH 206/459] Tests: Fix gaps and stat tests to use newly built annobin plugin. (#2028063) --- annobin.spec | 4 ++-- sources | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 608586c..6993663 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.33 +Version: 10.34 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -498,7 +498,7 @@ fi #--------------------------------------------------------------------------------- %changelog -* Mon Dec 06 2021 Nick Clifton - 10.33-1 +* Mon Dec 06 2021 Nick Clifton - 10.34-1 - Tests: Fix gaps and stat tests to use newly built annobin plugin. (#2028063) * Mon Dec 06 2021 Nick Clifton - 10.32-1 diff --git a/sources b/sources index 5fbf684..fcb47e0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.33.tar.xz) = b393be397e29dcac644634655e872fa934f254724ddc7eb17891b5086000f4ef31f165ec168b8219aa36e53e43d74f33c840704a2a463ba1577e047a96e2ad2d +SHA512 (annobin-10.34.tar.xz) = df428d6a76ccde186b46a2af460a8f4f80ef8313a30e9ad2e8eeeab6b0bb997e9e6f0b10a2ce36fef0fa63591824bc868ca840e980bedab9775942ae41c82aa4 From 77a92a7119f6058a05c17cfe372ab78f2b297771 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 13 Dec 2021 12:55:43 +0000 Subject: [PATCH 207/459] Tests: Fix fortify and debuginfod tests to use newly built annobin plugin. --- annobin.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/annobin.spec b/annobin.spec index 6993663..e6e1820 100644 --- a/annobin.spec +++ b/annobin.spec @@ -498,6 +498,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Dec 13 2021 Nick Clifton - 10.35-1 +- Tests: Fix fortify and debuginfod tests to use newly built annobin plugin. + * Mon Dec 06 2021 Nick Clifton - 10.34-1 - Tests: Fix gaps and stat tests to use newly built annobin plugin. (#2028063) From 0e6be40a3ccf8208d2624e0c376ff514187ef523 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 13 Dec 2021 13:41:04 +0000 Subject: [PATCH 208/459] Tests: Fix fortify and debuginfod tests to use newly built annobin plugin. --- annobin.spec | 2 +- sources | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index e6e1820..5cad0f0 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.34 +Version: 10.35 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com diff --git a/sources b/sources index fcb47e0..d163b8e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.34.tar.xz) = df428d6a76ccde186b46a2af460a8f4f80ef8313a30e9ad2e8eeeab6b0bb997e9e6f0b10a2ce36fef0fa63591824bc868ca840e980bedab9775942ae41c82aa4 +SHA512 (annobin-10.35.tar.xz) = 81b2277c55cb075e294ab1f44f7863e9893eb21e4ee67373d14fa1cfa63a50328f3dfde9ace637488fa5fd07f566d9fb869932df1f27b8360ecffd50c1eab2ed From 0c278a5d7377eaf21fce501849e29c7fd424ca22 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 13 Dec 2021 17:54:33 +0000 Subject: [PATCH 209/459] GCC Plugin: Do not record missing -mstackrealign in LTO mode. (#2030298) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 5cad0f0..b13dc7f 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.35 +Version: 10.36 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -498,6 +498,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Dec 13 2021 Nick Clifton - 10.36-1 +- GCC Plugin: Do not record missing -mstackrealign in LTO mode. (#2030298) + * Mon Dec 13 2021 Nick Clifton - 10.35-1 - Tests: Fix fortify and debuginfod tests to use newly built annobin plugin. diff --git a/sources b/sources index d163b8e..a8db7f8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.35.tar.xz) = 81b2277c55cb075e294ab1f44f7863e9893eb21e4ee67373d14fa1cfa63a50328f3dfde9ace637488fa5fd07f566d9fb869932df1f27b8360ecffd50c1eab2ed +SHA512 (annobin-10.36.tar.xz) = e4af0b132c8001ab2dec793f8aa12065a58e8eec6fe2f1df74d93760a95343c2305bc37130d13bbcfdea3617817df095d5ff859b3b2df58fee0fe6a165c33b29 From 7c94cb66cc3fd94871fc8bd25564dad8577ca36c Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 14 Dec 2021 10:04:35 +0000 Subject: [PATCH 210/459] Annocheck: Do not complaining about missing -mstackrealign notes in LTO mode. (#2030298) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index b13dc7f..866395b 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.36 +Version: 10.37 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -498,6 +498,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Dec 14 2021 Nick Clifton - 10.37-1 +- Annocheck: Do not complaining about missing -mstackrealign notes in LTO mode. (#2030298) + * Mon Dec 13 2021 Nick Clifton - 10.36-1 - GCC Plugin: Do not record missing -mstackrealign in LTO mode. (#2030298) diff --git a/sources b/sources index a8db7f8..ac93035 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.36.tar.xz) = e4af0b132c8001ab2dec793f8aa12065a58e8eec6fe2f1df74d93760a95343c2305bc37130d13bbcfdea3617817df095d5ff859b3b2df58fee0fe6a165c33b29 +SHA512 (annobin-10.37.tar.xz) = fc6f45a4f728e5cc8fa644d8bba3b876bb24eec3c3b2e10240e8b9c3eb9f0472b80066ffc7bc174421958d9e45dc3189d0b7303c27f067874277a18b2003a072 From 15b34fde9cff205da0e282c309f4b72239851de9 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 14 Dec 2021 17:55:37 +0000 Subject: [PATCH 211/459] Fix for RHEL-7 --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 866395b..8616fc1 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.37 +Version: 10.38 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -498,6 +498,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Dec 14 2021 Nick Clifton - 10.38-1 +- Annocheck: Add special case for x86_64 RHEL-7 gaps. (#2031133) + * Tue Dec 14 2021 Nick Clifton - 10.37-1 - Annocheck: Do not complaining about missing -mstackrealign notes in LTO mode. (#2030298) diff --git a/sources b/sources index ac93035..3c3c686 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.37.tar.xz) = fc6f45a4f728e5cc8fa644d8bba3b876bb24eec3c3b2e10240e8b9c3eb9f0472b80066ffc7bc174421958d9e45dc3189d0b7303c27f067874277a18b2003a072 +SHA512 (annobin-10.38.tar.xz) = c03c4969e7ea83e6fe4275606c68607ea72d2c6d3d83acc01a32e1d076a066538b94f37e1e6b580922d0d96cfc68417754d964da5550685764bfca0186ea6b69 From ec8f2b145d9553a3477bc3dfafe19b0861f5514e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 17 Dec 2021 15:46:16 +0000 Subject: [PATCH 212/459] - Annocheck: Add /usr/lib/ld-linux-aarch64.so.1 to the list of known glibc binaries. (#2033255) - Doc: Note that ENDBR is only needed as the landing pad for indirect branches/calls. (#28705) - Spec File: Store full gcc version release string in plugin info file. (#2030671) --- annobin.spec | 25 ++++++++++++++++++++----- sources | 2 +- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/annobin.spec b/annobin.spec index 8616fc1..faea7be 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.38 +Version: 10.39 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -398,6 +398,17 @@ BUILD_FLAGS="$BUILD_FLAGS -fplugin=annobin -fplugin-arg-annobin-disable" make -C gcc-plugin CXXFLAGS="%{optflags} $BUILD_FLAGS" rm %{_tmppath}/tmp_annobin.so + +# Record the version of gcc that built this plugin. +mkdir -p %{buildroot}%{rrcdir} +rm -f %{buildroot}%{aver} +# Note - we cannot just store %%{gcc_vr} as sometimes the gcc rpm version changes +# without the NVR being altered. See BZ #2030671 for more discussion on this. +echo `rpm -q gcc --qf '%{version}-%{release}'` > %{buildroot}%{aver} +# Provide a more complete version information string on the second line. +# This is not used by the comparison logic, but makes the file more useful to humans. +echo "%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0.0.0 was built by gcc version %{gcc_vr} from the %{version} sources" >> %{buildroot}%{aver} + %endif %if %{with clangplugin} @@ -429,10 +440,9 @@ mv %{buildroot}/%{llvm_plugin_dir}/annobin-for-clang.so %{buildroot}/%{clang_plu # Record the version of gcc that built this plugin. mkdir -p %{buildroot}%{rrcdir} rm -f %{buildroot}%{aver} -# Note - the comparison logic in redhat-rpm-config's %%triggger macros require -# that the plugin builder information appear as "major.minor.revision-release", -# eg "11.2.1-1" on the first line of the version file. -echo %{gcc_vr} > %{buildroot}%{aver} +# Note - we cannot just store %%{gcc_vr} as sometimes the gcc rpm version changes +# without the NVR being altered. See BZ #2030671 for more discussion on this. +echo `rpm -q gcc --qf '%%{version}-%%{release}'` > %{buildroot}%{aver} # Provide a more complete version information string on the second line. # This is not used by the comparison logic, but makes the file more useful to humans. echo "%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0.0.0 was built by gcc version %{gcc_vr} from the %{version} sources" >> %{buildroot}%{aver} @@ -498,6 +508,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Dec 17 2021 Nick Clifton - 10.39-1 +- Annocheck: Add /usr/lib/ld-linux-aarch64.so.1 to the list of known glibc binaries. (#2033255) +- Doc: Note that ENDBR is only needed as the landing pad for indirect branches/calls. (#28705) +- Spec File: Store full gcc version release string in plugin info file. (#2030671) + * Tue Dec 14 2021 Nick Clifton - 10.38-1 - Annocheck: Add special case for x86_64 RHEL-7 gaps. (#2031133) diff --git a/sources b/sources index 3c3c686..7157b77 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.38.tar.xz) = c03c4969e7ea83e6fe4275606c68607ea72d2c6d3d83acc01a32e1d076a066538b94f37e1e6b580922d0d96cfc68417754d964da5550685764bfca0186ea6b69 +SHA512 (annobin-10.39.tar.xz) = 3905a9d7d57d9d588e158a9f43ba30c0774162b5078f2cfd88e907d2cd1dac0c8c0626d96bbf35ed8507dd4f733cfe324d21eb11125ec227141747fed3729af8 From b4ba4e0d3c30f24f45584b0c28e9ce2474c62918 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 4 Jan 2022 11:42:27 +0000 Subject: [PATCH 213/459] Annocheck: Do not complaining about missing stack clash notes if the compilation used LTO. (#2034946) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index faea7be..bf143b0 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.39 +Version: 10.40 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -508,6 +508,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Jan 04 2022 Nick Clifton - 10.34-1 +- Annocheck: Do not complaining about missing stack clash notes if the compilation used LTO. (#2034946) + * Fri Dec 17 2021 Nick Clifton - 10.39-1 - Annocheck: Add /usr/lib/ld-linux-aarch64.so.1 to the list of known glibc binaries. (#2033255) - Doc: Note that ENDBR is only needed as the landing pad for indirect branches/calls. (#28705) diff --git a/sources b/sources index 7157b77..32c0d23 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.39.tar.xz) = 3905a9d7d57d9d588e158a9f43ba30c0774162b5078f2cfd88e907d2cd1dac0c8c0626d96bbf35ed8507dd4f733cfe324d21eb11125ec227141747fed3729af8 +SHA512 (annobin-10.40.tar.xz) = 82940c7de617c0e3ff2499cca09c589077e36315b5ae61924cd80bda8a036ae5f9a8add639d73a81d7c31f21f123276d2fa2cae0e978f2b818609baf1e079230 From 1e262d15b35d5bcaf3d47689cd98e17277bfdb19 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 5 Jan 2022 12:06:02 +0000 Subject: [PATCH 214/459] - Annocheck: Ignore gaps that contain the _start symbol (for AArch64). (#1995224) - Annocheck: Ignore more glibc special binaries. (#2037220) --- annobin.spec | 8 ++++++-- sources | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index bf143b0..9780930 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.40 +Version: 10.41 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -508,7 +508,11 @@ fi #--------------------------------------------------------------------------------- %changelog -* Tue Jan 04 2022 Nick Clifton - 10.34-1 +* Wed Jan 05 2022 Nick Clifton - 10.41-1 +- Annocheck: Ignore gaps that contain the _start symbol (for AArch64). (#1995224) +- Annocheck: Ignore more glibc special binaries. (#2037220) + +* Tue Jan 04 2022 Nick Clifton - 10.40-1 - Annocheck: Do not complaining about missing stack clash notes if the compilation used LTO. (#2034946) * Fri Dec 17 2021 Nick Clifton - 10.39-1 diff --git a/sources b/sources index 32c0d23..4c3b3e4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.40.tar.xz) = 82940c7de617c0e3ff2499cca09c589077e36315b5ae61924cd80bda8a036ae5f9a8add639d73a81d7c31f21f123276d2fa2cae0e978f2b818609baf1e079230 +SHA512 (annobin-10.41.tar.xz) = ef3f60b20556c9ae8eb0aee960c0bf135033d6def89d28aebf8b77159ddcfc2e9a321c29124c16297517981fc16e41d4a729312ea9759725f6480d94e5dcb9ad From 0000a56eab898480821117d4461531a12f5cc4a8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 5 Jan 2022 15:38:48 +0000 Subject: [PATCH 215/459] Annocheck: Extend list of known glibc functions. (#2037333) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 9780930..0948034 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.41 +Version: 10.42 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -508,6 +508,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jan 05 2022 Nick Clifton - 10.42-1 +- Annocheck: Extend list of known glibc functions. (#2037333) + * Wed Jan 05 2022 Nick Clifton - 10.41-1 - Annocheck: Ignore gaps that contain the _start symbol (for AArch64). (#1995224) - Annocheck: Ignore more glibc special binaries. (#2037220) diff --git a/sources b/sources index 4c3b3e4..69cf47b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.41.tar.xz) = ef3f60b20556c9ae8eb0aee960c0bf135033d6def89d28aebf8b77159ddcfc2e9a321c29124c16297517981fc16e41d4a729312ea9759725f6480d94e5dcb9ad +SHA512 (annobin-10.42.tar.xz) = 16b5557cd323794105813d4e9c78f9e25b0d636ea42e40a4f485780f4d045365046eaf38be188945c3be880872a5fb809c47babee481e1a6d0fc5f43bab817bd From ee78766bff5f93ff834a7fa54550a4f8e869f7cb Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 7 Jan 2022 14:10:23 +0000 Subject: [PATCH 216/459] Annocheck: ARM: Do not fail tests that rely upon annobin notes. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 0948034..56e8643 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.42 +Version: 10.43 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -508,6 +508,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Jan 07 2022 Nick Clifton - 10.43-1 +- Annocheck: ARM: Do not fail tests that rely upon annobin notes. + * Wed Jan 05 2022 Nick Clifton - 10.42-1 - Annocheck: Extend list of known glibc functions. (#2037333) diff --git a/sources b/sources index 69cf47b..5c6a1a7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.42.tar.xz) = 16b5557cd323794105813d4e9c78f9e25b0d636ea42e40a4f485780f4d045365046eaf38be188945c3be880872a5fb809c47babee481e1a6d0fc5f43bab817bd +SHA512 (annobin-10.43.tar.xz) = 4a58e08508ad0376f873e286653bd20d7f197e443332095fafb373140df6a0980ced1f030e17baedd4892195e636e4485a41e2d0393180725cb72e125e6da136 From a14426ce956513d757a5d28e93dac7561873456d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 7 Jan 2022 15:09:37 +0000 Subject: [PATCH 217/459] Annocheck: Add even more glibc function names. (#2037333) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 56e8643..de04ae5 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.43 +Version: 10.44 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -508,6 +508,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Jan 07 2022 Nick Clifton - 10.44-1 +- Annocheck: Add even more glibc function names. (#2037333) + * Fri Jan 07 2022 Nick Clifton - 10.43-1 - Annocheck: ARM: Do not fail tests that rely upon annobin notes. diff --git a/sources b/sources index 5c6a1a7..698c327 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.43.tar.xz) = 4a58e08508ad0376f873e286653bd20d7f197e443332095fafb373140df6a0980ced1f030e17baedd4892195e636e4485a41e2d0393180725cb72e125e6da136 +SHA512 (annobin-10.44.tar.xz) = 6ffa1cc12332233ffdf9737b7c23046d9ce0c123991fe56562f42a7f17d063dbfdaa817b9fa8e433603e1e20fa7e5a52757091cd3748cd55ba2676de86fb1563 From c34a9f5bc53ceae98591fd1848648141cf63c655 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sun, 9 Jan 2022 20:08:02 +0100 Subject: [PATCH 218/459] 10.44-2 --- annobin.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index de04ae5..c053342 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.44 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -37,7 +37,7 @@ License: GPLv3+ # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 -%bcond_without plugin_rebuild +%bcond_with plugin_rebuild # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. @@ -508,6 +508,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Sun Jan 09 2022 Jakub Jelinek - 10.44-2 +- Rebuild against new GCC. + * Fri Jan 07 2022 Nick Clifton - 10.44-1 - Annocheck: Add even more glibc function names. (#2037333) From 550ef1b763a1ed2b8daeeca88feb0565537cf260 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 10 Jan 2022 00:25:58 +0100 Subject: [PATCH 219/459] 10.44-2 --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index c053342..82f84c0 100644 --- a/annobin.spec +++ b/annobin.spec @@ -35,7 +35,7 @@ License: GPLv3+ # Set this to zero to disable the requirement for a specific version of gcc. # This should only be needed if there is some kind of problem with the version # checking logic or when building on RHEL-7 or earlier. -%global with_hard_gcc_version_requirement 1 +%global with_hard_gcc_version_requirement 0 %bcond_with plugin_rebuild # Allow the building of annobin without using annobin itself. From ffabcb06f2c3a5e2646b60318b2664d8d458d0c7 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 10 Jan 2022 00:49:59 +0100 Subject: [PATCH 220/459] 10.44-3 --- annobin.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 82f84c0..2f929e6 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.44 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -35,9 +35,9 @@ License: GPLv3+ # Set this to zero to disable the requirement for a specific version of gcc. # This should only be needed if there is some kind of problem with the version # checking logic or when building on RHEL-7 or earlier. -%global with_hard_gcc_version_requirement 0 +%global with_hard_gcc_version_requirement 1 -%bcond_with plugin_rebuild +%bcond_without plugin_rebuild # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. @@ -508,6 +508,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Sun Jan 09 2022 Jakub Jelinek - 10.44-3 +- Rebuild against new GCC. + * Sun Jan 09 2022 Jakub Jelinek - 10.44-2 - Rebuild against new GCC. From a40c58d2d4abde72f4bd931aed4ec7ceb15e2078 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 10 Jan 2022 01:00:55 +0100 Subject: [PATCH 221/459] 10.44-4 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 2f929e6..5a6f172 100644 --- a/annobin.spec +++ b/annobin.spec @@ -37,7 +37,7 @@ License: GPLv3+ # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 -%bcond_without plugin_rebuild +%bcond_with plugin_rebuild # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. @@ -508,6 +508,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Sun Jan 09 2022 Jakub Jelinek - 10.44-4 +- Rebuild against new GCC. + * Sun Jan 09 2022 Jakub Jelinek - 10.44-3 - Rebuild against new GCC. From b097ccc79bff326f80b2888fbb306b023d984711 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 10 Jan 2022 01:01:41 +0100 Subject: [PATCH 222/459] 10.44-4 --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 5a6f172..844a83d 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.44 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ From c53c5783da038d1164280e5bbd0c90c2dc5c6c5f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 10 Jan 2022 09:16:01 +0000 Subject: [PATCH 223/459] NVR bump and disable annobin during build --- annobin.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 844a83d..e9c17c5 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.44 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -53,7 +53,7 @@ License: GPLv3+ # uncommenting the lines below will result in annocheck not passing the rpminspect # tests.... # %%if %%{without plugin_rebuild} -# %%undefine _annotated_build +%undefine _annotated_build # %%endif #--------------------------------------------------------------------------------- From 244433eec3c9adf142a7629b09c39696c32f5e50 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 10 Jan 2022 09:33:18 +0000 Subject: [PATCH 224/459] GCC Plugin: Replace CLVC_BOOLEAN with CLVC_BIT_SET/CLVC_BIT_CLEAR. --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index e9c17c5..b74c9dc 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.44 -Release: 5%{?dist} +Version: 10.45 +Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -508,6 +508,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Jan 10 2022 Nick Clifton - 10.45-1 +- GCC Plugin: Replace CLVC_BOOLEAN with CLVC_BIT_SET/CLVC_BIT_CLEAR. + * Sun Jan 09 2022 Jakub Jelinek - 10.44-4 - Rebuild against new GCC. diff --git a/sources b/sources index 698c327..44eb27c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.44.tar.xz) = 6ffa1cc12332233ffdf9737b7c23046d9ce0c123991fe56562f42a7f17d063dbfdaa817b9fa8e433603e1e20fa7e5a52757091cd3748cd55ba2676de86fb1563 +SHA512 (annobin-10.45.tar.xz) = c129af7a66b120ecc2f00933c29217b65c4bc86c80b5ec89a08a80b6b4e21ac3eb752a87466325d71c5a9adacf8f98277b3429a6a7bff8cc2a0664471c027383 From efff188861bd6d859ac954f6a01dbca9bd52919f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 10 Jan 2022 12:02:15 +0000 Subject: [PATCH 225/459] Add fix for fortify test --- annobin.fortify-test.patch | 85 ++++++++++++++++++++++++++++++++++++++ annobin.spec | 2 +- 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 annobin.fortify-test.patch diff --git a/annobin.fortify-test.patch b/annobin.fortify-test.patch new file mode 100644 index 0000000..4d419ac --- /dev/null +++ b/annobin.fortify-test.patch @@ -0,0 +1,85 @@ +--- annobin.orig/tests/fortify-test 2022-01-10 09:50:07.005146672 +0000 ++++ annobin-10.45/tests/fortify-test 2022-01-10 10:23:56.827404265 +0000 +@@ -37,30 +37,37 @@ fi + # Now add in our newly built plugin. + OPTS+=" -fplugin=$PLUGIN" + ++# For debugging purposes, generate a linker map as well. ++OPTS+=" -Wl,-Map,fortify-test.map" ++ + start_test + +-$GCC $OPTS -Wp,-U_FORTIFY_SOURCE -fno-lto $srcdir/main.c -o main.exe ++# Use atexit.c rather than main.c as it is bigger. ++COMMAND="$GCC $OPTS -Wp,-U_FORTIFY_SOURCE -fno-lto $srcdir/atexit.c -o fortify-test.exe" ++$COMMAND + if [ $? != 0 ]; + then + echo " $TEST_NAME: FAIL: unable to compile test file" +- echo " $TEST_NAME: compile command: $GCC $OPTS -Wp,-U_FORTIFY_SOURCE -fno-lto $srcdir/main.c -o main.exe" ++ echo " $TEST_NAME: command: $COMMAND" + end_test + exit 1 + fi + + # Run annocheck + +-SKIPS="--skip-cf-protection --skip-property-note --skip-stack-realign --skip-entry --skip-dynamic-tags --skip-lto --skip-warnings --skip-dynamic-tags --skip-not-dynamic-tags --skip-branch-protection --skip-not-branch-protection" +-$ANNOCHECK main.exe $SKIPS > main.out +-grep -e "Overall: FAIL" main.out ++SKIPS="--skip-all --test-fortify" ++A_COMMAND="$ANNOCHECK fortify-test.exe $SKIPS" ++$A_COMMAND > fortify-test.out ++grep -e "Overall: FAIL" fortify-test.out + if [ $? != 0 ]; + then + echo " $TEST_NAME: FAIL: compiling with -D_FORTIFY_SOURCE=2 still produces an executable that passes annocheck" +- echo " $TEST_NAME: compile command: $GCC $OPTS -Wp,-U_FORTIFY_SOURCE -fno-lto $srcdir/main.c -o main.exe" +- echo " $TEST_NAME: annocheck command: $ANNOCHECK main.exe $SKIPS" ++ echo " $TEST_NAME: compile command: $COMMAND" ++ echo " $TEST_NAME: annocheck command: $A_COMMAND" + echo " $TEST_NAME: annocheck output (with verbose enabled):" +- $ANNOCHECK main.exe $SKIPS --verbose +- uuencode main.exe main.exe ++ $A_COMMAND --verbose ++ uuencode fortify-test.exe fortify-test.exe ++ uuencode fortify-test.map fortify-test.map + end_test + exit 1 + fi +--- annobin.orig/gcc-plugin/annobin.cc 2022-01-10 09:50:06.991146761 +0000 ++++ annobin-10.45/gcc-plugin/annobin.cc 2022-01-10 11:31:49.507826587 +0000 +@@ -1,5 +1,5 @@ + /* annobin - a gcc plugin for annotating binary files. +- Copyright (c) 2017 - 2021 Red Hat. ++ Copyright (c) 2017 - 2022 Red Hat. + Created by Nick Clifton. + + This is free software; you can redistribute it and/or modify it +@@ -2485,6 +2485,7 @@ annobin_emit_end_symbol (const char * su + fprintf (asm_out_file, "\t.size %s%s, 0\n", annobin_current_endname, suffix); + annobin_inform (INFORM_VERBOSE, "Create symbol %s%s", annobin_current_endname, suffix); + ++#if 0 + /* If there is a bias to the start symbol, we can end up with the case where + the start symbol is after the end symbol. (If the section is empty). + Catch that and adjust the start symbol. This also pacifies eu-elflint +@@ -2509,7 +2510,8 @@ annobin_emit_end_symbol (const char * su + annobin_current_endname, suffix); + fprintf (asm_out_file, "\t.endif\n"); + } +- ++#endif ++ + fprintf (asm_out_file, "\t.popsection\n"); + } + +@@ -2774,7 +2776,7 @@ plugin_init (struct plugin_name_args * + solution is needed. */ + annobin_attach_type = group; + #if GCCPLUGIN_VERSION_MAJOR >= 11 +- if (target_start_sym_bias == 0) ++ /* if (target_start_sym_bias == 0)*/ + annobin_attach_type = link_order; + #endif + } diff --git a/annobin.spec b/annobin.spec index b74c9dc..cc10abc 100644 --- a/annobin.spec +++ b/annobin.spec @@ -66,7 +66,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.fortify-test.patch #--------------------------------------------------------------------------------- From a6ef977e8bde6ae1053f6658f72b1f9b5f58cf88 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 14 Jan 2022 09:48:30 +0000 Subject: [PATCH 226/459] GCC Plugin: Only default to link-once when using gcc-12 or later. (#2039297) --- annobin.spec | 12 ++++++++++-- sources | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index cc10abc..12c9b68 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.45 +Version: 10.47 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -66,7 +66,7 @@ Source: https://nickc.fedorapeople.org/%{annobin_sources} %global annobin_source_dir %{_usrsrc}/annobin # Insert patches here, if needed. Eg: -Patch01: annobin.fortify-test.patch +# Patch01: annobin.foo.patch #--------------------------------------------------------------------------------- @@ -167,6 +167,7 @@ BuildRequires: elfutils-debuginfod-client-devel %endif Requires: %{name}-docs = %{version}-%{release} +Requires: cpio rpm %description annocheck Installs the annocheck program which uses the notes generated by annobin to @@ -508,6 +509,13 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Jan 14 2022 Nick Clifton - 10.47-1 +- Annocheck: Improve detection of kernel modules. +- GCC Plugin: Only default to link-once when using gcc-12 or later. (#2039297) + +* Tue Jan 11 2022 Nick Clifton - 10.46-1 +- Annocheck: Add option to disable instrumentation test. + * Mon Jan 10 2022 Nick Clifton - 10.45-1 - GCC Plugin: Replace CLVC_BOOLEAN with CLVC_BIT_SET/CLVC_BIT_CLEAR. diff --git a/sources b/sources index 44eb27c..895cdcf 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.45.tar.xz) = c129af7a66b120ecc2f00933c29217b65c4bc86c80b5ec89a08a80b6b4e21ac3eb752a87466325d71c5a9adacf8f98277b3429a6a7bff8cc2a0664471c027383 +SHA512 (annobin-10.47.tar.xz) = 76a6d2b1390e862bddc485331ff4759333d9ce3c419ed264ba50d388c94bd6636ba64e12ba0b5f09f13284c9f4e1a88c40f660275067fbd801e11151007773e0 From 9816f993464f1fb3adc9c83ada7bc915636f69f0 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 14 Jan 2022 10:45:48 +0000 Subject: [PATCH 227/459] NVR bump to allow rebuild in a side tag. --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 12c9b68..a0982ec 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.47 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -509,6 +509,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Jan 14 2022 Nick Clifton - 10.47-2 +- NVR bump to allow rebuild in a side tag. + * Fri Jan 14 2022 Nick Clifton - 10.47-1 - Annocheck: Improve detection of kernel modules. - GCC Plugin: Only default to link-once when using gcc-12 or later. (#2039297) From 557b866dd0aab57079a421700efd5c0ad66df295 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 17 Jan 2022 14:38:17 +0000 Subject: [PATCH 228/459] GCC Plugin: Do not fail if a section cannot be attached to a group. --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index a0982ec..db6d1c3 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.47 -Release: 2%{?dist} +Version: 10.48 +Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -509,6 +509,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Jan 17 2022 Nick Clifton - 10.48-1 +- GCC Plugin: Do not fail if a section cannot be attached to a group. + * Fri Jan 14 2022 Nick Clifton - 10.47-2 - NVR bump to allow rebuild in a side tag. diff --git a/sources b/sources index 895cdcf..01c71c8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.47.tar.xz) = 76a6d2b1390e862bddc485331ff4759333d9ce3c419ed264ba50d388c94bd6636ba64e12ba0b5f09f13284c9f4e1a88c40f660275067fbd801e11151007773e0 +SHA512 (annobin-10.48.tar.xz) = e77af4e9aa6e4176b56e1afd3b9f60e2b1e3b89dde709a3a9ca320665b4b9eed87111aeb972ce1e1d9fd95183b7682102cf7fa02c51cec493f54cba44db6d2af From 449fc20654af74d134363dfa6d9e573bc26a8ce3 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 19 Jan 2022 13:56:59 +0000 Subject: [PATCH 229/459] NVR bump --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index db6d1c3..07b6781 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.48 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -509,6 +509,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jan 19 2022 Nick Clifton - 10.48-2 +- NVR bump to allow rebuild in a side tag. + * Mon Jan 17 2022 Nick Clifton - 10.48-1 - GCC Plugin: Do not fail if a section cannot be attached to a group. From f7e180554312d1d0ab0985e0e8165bb08881deb7 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 19 Jan 2022 14:25:39 +0000 Subject: [PATCH 230/459] Another NVR bump --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 07b6781..6605e23 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.48 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -509,6 +509,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jan 19 2022 Nick Clifton - 10.48-3 +- NVR bump to allow rebuild in another side tag. + * Wed Jan 19 2022 Nick Clifton - 10.48-2 - NVR bump to allow rebuild in a side tag. From 7cf2a969739f385512b185c5266968df80eda074 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 19 Jan 2022 18:35:04 +0100 Subject: [PATCH 231/459] 10.48-4 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 6605e23..4c823b5 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.48 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -509,6 +509,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jan 19 2022 Jakub Jelinek - 10.48-4 +- NVR bump to allow rebuild in yet another side tag. + * Wed Jan 19 2022 Nick Clifton - 10.48-3 - NVR bump to allow rebuild in another side tag. From dfa29772c3b123c3defd988aba43330f8134fe65 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 19 Jan 2022 19:31:54 +0000 Subject: [PATCH 232/459] Another NVR bump --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 4c823b5..7b740b3 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.48 -Release: 4%{?dist} +Release: 5%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -509,6 +509,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jan 19 2022 Nick Clifton - 10.48-5 +- NVR bump to allow rebuild in another side tag. + * Wed Jan 19 2022 Jakub Jelinek - 10.48-4 - NVR bump to allow rebuild in yet another side tag. From 86fbdc98e6da62afa93fb3cdbab35eabd152e1c5 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jan 2022 21:16:45 +0000 Subject: [PATCH 233/459] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 7b740b3..1e69a83 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.48 -Release: 5%{?dist} +Release: 6%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -509,6 +509,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jan 19 2022 Fedora Release Engineering - 10.48-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Wed Jan 19 2022 Nick Clifton - 10.48-5 - NVR bump to allow rebuild in another side tag. From 4852d3d782752c71e9bb308ba82849c46fbe9a91 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 20 Jan 2022 15:18:08 +0000 Subject: [PATCH 234/459] Annocheck: Skip property note test for GO binaries. (#204300) --- annobin.spec | 41 +++++++++++++---------------------------- sources | 2 +- 2 files changed, 14 insertions(+), 29 deletions(-) diff --git a/annobin.spec b/annobin.spec index 1e69a83..a3bbce9 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.48 -Release: 6%{?dist} +Version: 10.49 +Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -238,14 +238,8 @@ Requires: (gcc >= %{gcc_major} with gcc < %{gcc_next}) Requires: gcc %endif -# The next line has been stolen from redhat-rpm-config.spec. -# We install a version info file into this directory, rather than gcc's plugin -# directory, because there is no reliable way for redhat-rpm-config to -# determine the name of gcc's plugin directory. -%global rrcdir /usr/lib/rpm/redhat - # Information about the gcc plugin is recorded in this file. -%global aver %{rrcdir}/annobin-plugin-version-info +%global aver annobin-plugin-version-info %description plugin-gcc Installs an annobin plugin that can be used by gcc. @@ -399,17 +393,6 @@ BUILD_FLAGS="$BUILD_FLAGS -fplugin=annobin -fplugin-arg-annobin-disable" make -C gcc-plugin CXXFLAGS="%{optflags} $BUILD_FLAGS" rm %{_tmppath}/tmp_annobin.so - -# Record the version of gcc that built this plugin. -mkdir -p %{buildroot}%{rrcdir} -rm -f %{buildroot}%{aver} -# Note - we cannot just store %%{gcc_vr} as sometimes the gcc rpm version changes -# without the NVR being altered. See BZ #2030671 for more discussion on this. -echo `rpm -q gcc --qf '%{version}-%{release}'` > %{buildroot}%{aver} -# Provide a more complete version information string on the second line. -# This is not used by the comparison logic, but makes the file more useful to humans. -echo "%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0.0.0 was built by gcc version %{gcc_vr} from the %{version} sources" >> %{buildroot}%{aver} - %endif %if %{with clangplugin} @@ -422,6 +405,7 @@ cp llvm-plugin/annobin-for-llvm.so %{_tmppath}/tmp_annobin.so make -C llvm-plugin all CXXFLAGS="%{optflags} $BUILD_FLAGS" %endif +# endif for %%if {with_lugin_rebuild} %endif #--------------------------------------------------------------------------------- @@ -439,14 +423,10 @@ mv %{buildroot}/%{llvm_plugin_dir}/annobin-for-clang.so %{buildroot}/%{clang_plu %if %{with gccplugin} # Record the version of gcc that built this plugin. -mkdir -p %{buildroot}%{rrcdir} -rm -f %{buildroot}%{aver} # Note - we cannot just store %%{gcc_vr} as sometimes the gcc rpm version changes # without the NVR being altered. See BZ #2030671 for more discussion on this. -echo `rpm -q gcc --qf '%%{version}-%%{release}'` > %{buildroot}%{aver} -# Provide a more complete version information string on the second line. -# This is not used by the comparison logic, but makes the file more useful to humans. -echo "%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0.0.0 was built by gcc version %{gcc_vr} from the %{version} sources" >> %{buildroot}%{aver} +mkdir -p %{buildroot}/%{ANNOBIN_GCC_PLUGIN_DIR} +cat `gcc --print-file-name=rpmver` > %{buildroot}/%{ANNOBIN_GCC_PLUGIN_DIR}/%{aver} # Also install a copy of the sources into the build tree. mkdir -p %{buildroot}%{annobin_source_dir} @@ -493,8 +473,10 @@ fi %if %{with gccplugin} %files plugin-gcc -%{ANNOBIN_GCC_PLUGIN_DIR} -%{aver} +%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so +%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0 +%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0.0.0 +%{ANNOBIN_GCC_PLUGIN_DIR}/%{aver} %{annobin_source_dir}/latest-annobin.tar.xz %endif @@ -509,6 +491,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Jan 20 2022 Nick Clifton - 10.49-1 +- Annocheck: Skip property note test for GO binaries. (#204300) + * Wed Jan 19 2022 Fedora Release Engineering - 10.48-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild diff --git a/sources b/sources index 01c71c8..22ee8f0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.48.tar.xz) = e77af4e9aa6e4176b56e1afd3b9f60e2b1e3b89dde709a3a9ca320665b4b9eed87111aeb972ce1e1d9fd95183b7682102cf7fa02c51cec493f54cba44db6d2af +SHA512 (annobin-10.49.tar.xz) = f1c1f29a1b7dcda2ed95a2090ea8e273164c34dc75397d68d0ecda1639d9da2985bc516982bab3e85357a5c6ee7084039c90355575c3625e46b09ebb8295d878 From a6710fda16d2d2694a3720e8bc1148a148b3d240 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 20 Jan 2022 16:20:57 +0000 Subject: [PATCH 235/459] Annocheck: Add another glibc static library symbol. (#2043047) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index a3bbce9..550b68a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.49 +Version: 10.50 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -491,6 +491,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Jan 20 2022 Nick Clifton - 10.50-1 +- Annocheck: Add another glibc static library symbol. (#2043047) + * Thu Jan 20 2022 Nick Clifton - 10.49-1 - Annocheck: Skip property note test for GO binaries. (#204300) diff --git a/sources b/sources index 22ee8f0..d5854a3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.49.tar.xz) = f1c1f29a1b7dcda2ed95a2090ea8e273164c34dc75397d68d0ecda1639d9da2985bc516982bab3e85357a5c6ee7084039c90355575c3625e46b09ebb8295d878 +SHA512 (annobin-10.50.tar.xz) = cb0f8a5c2b02c5039387f73911b9ea83336523696950988efe206c60bf27f83962ce118f7cc99998a4410411b5f2b738c3dbccd614468c20b8987f72ebfa2e1b From 8e76478b1dba61d816cba1bce51c0812dda13d15 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 25 Jan 2022 15:42:19 +0000 Subject: [PATCH 236/459] Annocheck: Add an option to disable the use of debuginfod (if available). Annocheck: Add more glibc special file names. Annocheck: Skip some tests for BPF binaries. --- annobin.spec | 7 ++++++- sources | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 550b68a..63c7e71 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.50 +Version: 10.51 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -491,6 +491,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Jan 25 2022 Nick Clifton - 10.51-1 +- Annocheck: Add an option to disable the use of debuginfod (if available). +- Annocheck: Add more glibc special file names. +- Annocheck: Skip some tests for BPF binaries. + * Thu Jan 20 2022 Nick Clifton - 10.50-1 - Annocheck: Add another glibc static library symbol. (#2043047) diff --git a/sources b/sources index d5854a3..d8c1cb2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.50.tar.xz) = cb0f8a5c2b02c5039387f73911b9ea83336523696950988efe206c60bf27f83962ce118f7cc99998a4410411b5f2b738c3dbccd614468c20b8987f72ebfa2e1b +SHA512 (annobin-10.51.tar.xz) = 33a2ff4ad59183057b1347f8914ec10152688f72946ee16062eb8d58c2af3d4c5ccb74757244191f4c8df560ac345fe46cb7be6cb6b2eda32bf154254a7ff2f1 From 8c2f473929e225a12cda78c15377ceb5fa75625e Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Thu, 27 Jan 2022 10:29:49 +0100 Subject: [PATCH 237/459] Rebuild for new gcc version --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 63c7e71..adb1eec 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.51 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -491,6 +491,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Jan 27 2022 Florian Weimer - 10.51-2 +- Rebuild for new gcc version + * Tue Jan 25 2022 Nick Clifton - 10.51-1 - Annocheck: Add an option to disable the use of debuginfod (if available). - Annocheck: Add more glibc special file names. From 9cdecda9e38f791f6f43658343fa91edb0684f89 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 27 Jan 2022 13:09:45 +0000 Subject: [PATCH 238/459] gcc-plugin: Use canonical_option field of save_decoded_options array. (#2047148) --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index adb1eec..434d36f 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.51 -Release: 2%{?dist} +Version: 10.52 +Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -491,6 +491,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Jan 27 2022 Nick Clifton - 10.52-1 +- gcc-plugin: Use canonical_option field of save_decoded_options array. (#2047148) + * Thu Jan 27 2022 Florian Weimer - 10.51-2 - Rebuild for new gcc version diff --git a/sources b/sources index d8c1cb2..3fba616 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.51.tar.xz) = 33a2ff4ad59183057b1347f8914ec10152688f72946ee16062eb8d58c2af3d4c5ccb74757244191f4c8df560ac345fe46cb7be6cb6b2eda32bf154254a7ff2f1 +SHA512 (annobin-10.52.tar.xz) = a4e05a2bec3659028baf8ad30d7bded32d82dcc75d945aca8b67ebb5809e61b8162980bb9b2edb43343b0d4d79cdc590670db25d787d77294f44b3c7eb0737ab From 21338bea370e9d73d30bd588cd8a46f9c993f661 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 27 Jan 2022 16:56:19 +0000 Subject: [PATCH 239/459] Borrow a patch from the GCC package to stop libtool from inserting needless runpaths into binaries. (#2030667) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 434d36f..7108d58 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.52 +Version: 10.53 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -491,6 +491,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Jan 27 2022 Nick Clifton - 10.53-1 +- gcc-plugin: Fix libtool so that extraneous runpaths are not added to the plugin. (#2030667) + * Thu Jan 27 2022 Nick Clifton - 10.52-1 - gcc-plugin: Use canonical_option field of save_decoded_options array. (#2047148) diff --git a/sources b/sources index 3fba616..7530ff1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.52.tar.xz) = a4e05a2bec3659028baf8ad30d7bded32d82dcc75d945aca8b67ebb5809e61b8162980bb9b2edb43343b0d4d79cdc590670db25d787d77294f44b3c7eb0737ab +SHA512 (annobin-10.53.tar.xz) = e370b48f79c31d19a9d48f0e7ce608f6b79f8e15559bc165118ca473fe40e540e5087d5c965706bad73a78a3c74557c259586d16151231a94dc6cb870478a48d From 5b4731b0ac32d9e8708cc5680ff944f62e94fbae Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sun, 6 Feb 2022 17:45:26 +0100 Subject: [PATCH 240/459] 10.53-2 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 7108d58..d40df36 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.53 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -491,6 +491,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Sun Feb 06 2022 Jakub Jelinek - 10.53-2 +- NVR bump to allow rebuild in yet another side tag. + * Thu Jan 27 2022 Nick Clifton - 10.53-1 - gcc-plugin: Fix libtool so that extraneous runpaths are not added to the plugin. (#2030667) From 41efc42594df95cee2e809e349068717512918ec Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 11 Feb 2022 15:26:15 +0000 Subject: [PATCH 241/459] annocheck: skip PIE and PIC tests for GO binaries --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index d40df36..587a14c 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.53 -Release: 2%{?dist} +Version: 10.54 +Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -491,6 +491,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Feb 11 2022 Nick Clifton - 10.54-1 +- Annocheck: Skip PIE anf PIC tests for GO binaries. + * Sun Feb 06 2022 Jakub Jelinek - 10.53-2 - NVR bump to allow rebuild in yet another side tag. diff --git a/sources b/sources index 7530ff1..d4007d1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.53.tar.xz) = e370b48f79c31d19a9d48f0e7ce608f6b79f8e15559bc165118ca473fe40e540e5087d5c965706bad73a78a3c74557c259586d16151231a94dc6cb870478a48d +SHA512 (annobin-10.54.tar.xz) = e40a4c2f142b4a89e37e113659da97627e108811820867c863d2e52a8da50897cca2e7ab6352f5484d882f3896f254b1717c47cb805f5c3dab0fb0e7eba3fe21 From 4f1eb1f73af3fe47abf6fa87b82ac8b6baac0d49 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 14 Feb 2022 10:10:40 +0100 Subject: [PATCH 242/459] 10.54-2 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 587a14c..424eea3 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.54 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -491,6 +491,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Feb 14 2022 Jakub Jelinek - 10.54-2 +- NVR bump to allow rebuild for new GCC. + * Fri Feb 11 2022 Nick Clifton - 10.54-1 - Annocheck: Skip PIE anf PIC tests for GO binaries. From 1b6c8e58c57c5f4d34b94e1c085ff4a523d03d77 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 16 Feb 2022 12:49:47 +0000 Subject: [PATCH 243/459] Spec File: Use a different method to disable the annobin plugin (#2054571) --- annobin.spec | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/annobin.spec b/annobin.spec index 424eea3..d0d05eb 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.54 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -66,7 +66,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-foo.patch #--------------------------------------------------------------------------------- @@ -284,14 +284,12 @@ Installs an annobin plugin that can be used by Clang. %global ANNOBIN_GCC_PLUGIN_DIR %(gcc --print-file-name=plugin) -%{!?llvm_version:%global llvm_version 12.0.1} -%{!?llvm_plugin_dir:%global llvm_plugin_dir %{_libdir}/llvm/%{llvm_version}} -%{!?clang_plugin_dir:%global clang_plugin_dir %{_libdir}/clang/%{llvm_version}} +%{!?llvm_plugin_dir:%global llvm_plugin_dir %{_libdir}/llvm/plugins} +%{!?clang_plugin_dir:%global clang_plugin_dir %{_libdir}/clang/plugins} #--------------------------------------------------------------------------------- %prep - if [ -z "%{gcc_vr}" ]; then echo "*** Missing gcc_vr spec file macro, cannot continue." >&2 exit 1 @@ -379,33 +377,27 @@ make -C gcc-plugin clean BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so" # Disable the standard annobin plugin so that we do get conflicts. -# Note: the "-fplugin=annobin" is here, despite the fact that it will also -# be automatically added to the gcc command line via -# "-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1" because of a bug in gcc's -# plugin command line options handling. GCC will issue an error saying that -# there is no plugin called "annobin" matching the -fplugin-arg-annobin-disable -# option, despite the fact that there patently is. -BUILD_FLAGS="$BUILD_FLAGS -fplugin=annobin -fplugin-arg-annobin-disable" +OPTS="$(rpm --eval '%undefine _annotated_build %build_cflags %build_ldflags')" # If building on systems with an assembler that does not support the # .attach_to_group pseudo op (eg RHEL-7) then enable the next line. # BUILD_FLAGS="$BUILD_FLAGS -fplugin-arg-tmp_annobin-no-attach" -make -C gcc-plugin CXXFLAGS="%{optflags} $BUILD_FLAGS" +make -C gcc-plugin CXXFLAGS="$OPTS $BUILD_FLAGS" rm %{_tmppath}/tmp_annobin.so %endif %if %{with clangplugin} cp clang-plugin/annobin-for-clang.so %{_tmppath}/tmp_annobin.so -make -C clang-plugin all CXXFLAGS="%{optflags} $BUILD_FLAGS" +make -C clang-plugin all CXXFLAGS="$OPTS $BUILD_FLAGS" %endif %if %{with llvmplugin} cp llvm-plugin/annobin-for-llvm.so %{_tmppath}/tmp_annobin.so -make -C llvm-plugin all CXXFLAGS="%{optflags} $BUILD_FLAGS" +make -C llvm-plugin all CXXFLAGS="$OPTS $BUILD_FLAGS" %endif -# endif for %%if {with_lugin_rebuild} +# endif for %%if {with_plugin_rebuild} %endif #--------------------------------------------------------------------------------- @@ -491,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Feb 16 2022 Nick Clifton - 10.54-3 +- Spec File: Use a different method to disable the annobin plugin (#2054571) + * Mon Feb 14 2022 Jakub Jelinek - 10.54-2 - NVR bump to allow rebuild for new GCC. From 43a0cd19e4337ce17a3e6de1ce7ad81cc90af630 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 24 Feb 2022 14:53:49 +0100 Subject: [PATCH 244/459] 10.54-4 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index d0d05eb..984e510 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.54 -Release: 3%{?dist} +Release: 4%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -483,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Feb 24 2022 Jakub Jelinek - 10.54-4 +- NVR bump to allow rebuild for new GCC. + * Wed Feb 16 2022 Nick Clifton - 10.54-3 - Spec File: Use a different method to disable the annobin plugin (#2054571) From d6d59a73a8abb3044c40bd30230d724bb027585f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 28 Feb 2022 11:53:01 +0000 Subject: [PATCH 245/459] Always identify Rust binaries, even if built on a host that does not know about Rust. Resolves: #2057737 --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 984e510..a2e5082 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.54 -Release: 4%{?dist} +Version: 10.55 +Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -483,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Feb 28 2022 Nick Clifton - 10.55-1 +- Always identify Rust binaries, even if built on a host that does not know about Rust. (#2057737) + * Thu Feb 24 2022 Jakub Jelinek - 10.54-4 - NVR bump to allow rebuild for new GCC. diff --git a/sources b/sources index d4007d1..907ddd0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.54.tar.xz) = e40a4c2f142b4a89e37e113659da97627e108811820867c863d2e52a8da50897cca2e7ab6352f5484d882f3896f254b1717c47cb805f5c3dab0fb0e7eba3fe21 +SHA512 (annobin-10.55.tar.xz) = 3b151f3ed6e75c01415d865f64e0a55315d6c909996299e3f46120949411c50150387b8ce50e552a0f2414046a45fc0136d488ef3c753d33c683b65df1e406b8 From c9b3e0dcfee9a7a227d4017f59e0a0ed7cdb5746 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 4 Mar 2022 17:29:15 +0000 Subject: [PATCH 246/459] Annocheck: Add option to enable/disable following symbolic links. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index a2e5082..7f5d920 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.55 +Version: 10.56 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -483,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Mar 04 2022 Nick Clifton - 10.56-1 +- Annocheck: Add option to enable/disable following symbolic links. + * Mon Feb 28 2022 Nick Clifton - 10.55-1 - Always identify Rust binaries, even if built on a host that does not know about Rust. (#2057737) diff --git a/sources b/sources index 907ddd0..2660e4c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.55.tar.xz) = 3b151f3ed6e75c01415d865f64e0a55315d6c909996299e3f46120949411c50150387b8ce50e552a0f2414046a45fc0136d488ef3c753d33c683b65df1e406b8 +SHA512 (annobin-10.56.tar.xz) = 92579a757e75e498fecc71b9c26cf847a205bfe44f216a8a368cb026b2b984774bb74a5ab2970a6ae3a453376d9b55c981c64950970717b42680324ae312e1bc From ac454f15f0cfab412862de7d69a8c4176e17a6b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Kadl=C4=8D=C3=ADk?= Date: Mon, 7 Mar 2022 10:19:22 +0100 Subject: [PATCH 247/459] Fix a typo in a gating test --- .../runtest.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh b/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh index cd4ae94..d15547c 100755 --- a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh +++ b/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh @@ -39,5 +39,5 @@ rlJournalStart rlRun "rpm -qf /usr/lib64/libstdc++.so*" rlRun "annocheck --skip-all /usr/lib64/libstdc++.so*" rlPhaseEnd -lJournalPrintText +rlJournalPrintText rlJournalEnd From 1301bfec6a160df7faea600a0818b611914cddae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Kadl=C4=8D=C3=ADk?= Date: Mon, 7 Mar 2022 10:40:58 +0100 Subject: [PATCH 248/459] Adapt a gating test to annobin 10.56 Since 10.56, annocheck needs to be told how to handle symlinks. This particular test was developed for the "follow symlinks" behaviour so let's add --follow-links. However, while being here, checking on the other code path wouldn't hurt so let's look at it, too. --- .../runtest.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh b/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh index d15547c..6603c3c 100755 --- a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh +++ b/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh @@ -37,7 +37,8 @@ rlJournalStart # rules / policies, and the surrounding OS will evolve too. This test # shouldn't report false positives though. rlRun "rpm -qf /usr/lib64/libstdc++.so*" - rlRun "annocheck --skip-all /usr/lib64/libstdc++.so*" + rlRun "annocheck --follow-links --skip-all /usr/lib64/libstdc++.so*" + rlRun "annocheck --ignore-links --skip-all /usr/lib64/libstdc++.so*" rlPhaseEnd rlJournalPrintText rlJournalEnd From c712a9f799c2dc0227486490ca4988d0da65fda3 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 7 Mar 2022 12:29:47 +0000 Subject: [PATCH 249/459] Annocheck: Update documentation and fix typo in annocheck. (#2061291) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 7f5d920..055b4bb 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.56 +Version: 10.57 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -483,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Mar 07 2022 Nick Clifton - 10.57-1 +- Annocheck: Update documentation and fix typo in annocheck. (#2061291) + * Fri Mar 04 2022 Nick Clifton - 10.56-1 - Annocheck: Add option to enable/disable following symbolic links. diff --git a/sources b/sources index 2660e4c..7468bf5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.56.tar.xz) = 92579a757e75e498fecc71b9c26cf847a205bfe44f216a8a368cb026b2b984774bb74a5ab2970a6ae3a453376d9b55c981c64950970717b42680324ae312e1bc +SHA512 (annobin-10.57.tar.xz) = c4fb30cbb5dff15bd1dd38797785bd4f1a9de1e047436d598368847e3f250cd7e467b3fc4ea2c013ab22764e06aab899d0a1bea3c465b0b29e363b73de20e86f From 6cdacc7a723899fe42e0ea62a754e5c2c391c5fc Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 9 Mar 2022 15:28:56 +0100 Subject: [PATCH 250/459] 10.57-2 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 055b4bb..6839557 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.57 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -483,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Mar 09 2022 Jakub Jelinek - 10.57-2 +- NVR bump to allow rebuild for new GCC. + * Mon Mar 07 2022 Nick Clifton - 10.57-1 - Annocheck: Update documentation and fix typo in annocheck. (#2061291) From d5f69acf327adadf9078a537f03150bf163a7b6d Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 9 Mar 2022 19:31:39 +0100 Subject: [PATCH 251/459] 10.57-3 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 6839557..036f357 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.57 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -483,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Mar 09 2022 Jakub Jelinek - 10.57-3 +- NVR bump to allow rebuild for new GCC. + * Wed Mar 09 2022 Jakub Jelinek - 10.57-2 - NVR bump to allow rebuild for new GCC. From 14685185f1e082988bd34a4e91f495a934cca904 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 14 Mar 2022 11:53:08 +0000 Subject: [PATCH 252/459] gcc-plugin: Do not issue warning messages for autoconf generated source files. (#2009958) --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 036f357..1a6c175 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.57 -Release: 3%{?dist} +Version: 10.58 +Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -483,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Mar 14 2022 Nick Clifton - 10.58-1 +- gcc-plugin: Do not issue warning messages for autoconf generated source files. (#2009958) + * Wed Mar 09 2022 Jakub Jelinek - 10.57-3 - NVR bump to allow rebuild for new GCC. diff --git a/sources b/sources index 7468bf5..335bcf6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.57.tar.xz) = c4fb30cbb5dff15bd1dd38797785bd4f1a9de1e047436d598368847e3f250cd7e467b3fc4ea2c013ab22764e06aab899d0a1bea3c465b0b29e363b73de20e86f +SHA512 (annobin-10.58.tar.xz) = 7d40fe9ddbee788db3331ec138aa588936d726ec50e0286b23be3792f20c2fc111c635b70598e0d8b6ba24a92de514fc637d5cea6b9d7781de781fbf244dfbd8 From 8ee18a899b620018a3018b02ddbdd30eeb0552b3 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 30 Mar 2022 11:49:43 +0100 Subject: [PATCH 253/459] Fix bug in annocheck's AArch64 property note test. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 1a6c175..0810957 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.58 +Version: 10.59 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -483,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Mar 30 2022 Nick Clifton - 10.59-1 +- Annocheck: Fix test for AArch64 property notes. (#2068657) + * Mon Mar 14 2022 Nick Clifton - 10.58-1 - gcc-plugin: Do not issue warning messages for autoconf generated source files. (#2009958) diff --git a/sources b/sources index 335bcf6..08e29fd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.58.tar.xz) = 7d40fe9ddbee788db3331ec138aa588936d726ec50e0286b23be3792f20c2fc111c635b70598e0d8b6ba24a92de514fc637d5cea6b9d7781de781fbf244dfbd8 +SHA512 (annobin-10.59.tar.xz) = 3c723eeac6f9435d6b74033cf4b057327a171ab488922e95c10a6c016a5086b0076795f305c0b3b7337b881e6276351dc5e15f8f23e0ae297aa70a81f1ef6dab From 8b1a765248fcc995a5f926f038d98367d1b97eb8 Mon Sep 17 00:00:00 2001 From: sergesanspaille Date: Wed, 30 Mar 2022 16:21:21 +0200 Subject: [PATCH 254/459] Rebuilt against new LLVM release, with patch. --- 0001-Compatibility-patch-for-llvm14.patch | 42 +++++++++++++++++++++++ annobin.spec | 6 +++- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 0001-Compatibility-patch-for-llvm14.patch diff --git a/0001-Compatibility-patch-for-llvm14.patch b/0001-Compatibility-patch-for-llvm14.patch new file mode 100644 index 0000000..c4d260e --- /dev/null +++ b/0001-Compatibility-patch-for-llvm14.patch @@ -0,0 +1,42 @@ +From f278b500124ee9d49cb990f6a0333b28794fddb1 Mon Sep 17 00:00:00 2001 +From: sergesanspaille +Date: Wed, 30 Mar 2022 16:07:17 +0200 +Subject: [PATCH] Compatibility patch for llvm14 + +--- + llvm-plugin/annobin.cpp | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/llvm-plugin/annobin.cpp b/llvm-plugin/annobin.cpp +index a119ab9..6a43580 100644 +--- a/llvm-plugin/annobin.cpp ++++ b/llvm-plugin/annobin.cpp +@@ -484,9 +484,14 @@ namespace + + struct AnnobinModulePass : llvm::PassInfoMixin + { +- llvm::PassBuilder::OptimizationLevel OptLevel; ++#if __clang_major__ > 13 ++ using OptimizationLevel = llvm::OptimizationLevel; ++#else ++ using OptimizationLevel = llvm::PassBuilder::OptimizationLevel; ++#endif ++ OptimizationLevel OptLevel; + +- AnnobinModulePass(llvm::PassBuilder::OptimizationLevel OptLevel) : OptLevel(OptLevel) {} ++ AnnobinModulePass(OptimizationLevel OptLevel) : OptLevel(OptLevel) {} + llvm::PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM) + { + AnnobinModule Annobin; +@@ -505,7 +510,7 @@ llvm::PassPluginLibraryInfo getAnnobinLLVMPluginInfo () + { + PB.registerPipelineStartEPCallback + ([](llvm::ModulePassManager &PM, +- llvm::PassBuilder::OptimizationLevel Level) ++ AnnobinModulePass::OptimizationLevel Level) + { + PM.addPass(AnnobinModulePass(Level)); + }); +-- +1.8.3.1 + diff --git a/annobin.spec b/annobin.spec index 0810957..2353148 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.59 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -67,6 +67,7 @@ Source: https://nickc.fedorapeople.org/%{annobin_sources} # Insert patches here, if needed. Eg: # Patch01: annobin-foo.patch +Patch01: 0001-Compatibility-patch-for-llvm14.patch #--------------------------------------------------------------------------------- @@ -483,6 +484,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Mar 30 2022 Serge Guelton - 10.59-2 +- Rebuilt against new LLVM release, with patch. + * Wed Mar 30 2022 Nick Clifton - 10.59-1 - Annocheck: Fix test for AArch64 property notes. (#2068657) From c2186bc772700ff119ef9bf5b521989e6750372a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 31 Mar 2022 13:41:14 +0100 Subject: [PATCH 255/459] 10.60: Add support for building using meson+ninja. --- annobin.spec | 11 +++++++---- sources | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/annobin.spec b/annobin.spec index 2353148..9f13ddb 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.59 -Release: 2%{?dist} +Version: 10.60 +Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -67,7 +67,7 @@ Source: https://nickc.fedorapeople.org/%{annobin_sources} # Insert patches here, if needed. Eg: # Patch01: annobin-foo.patch -Patch01: 0001-Compatibility-patch-for-llvm14.patch +# Patch01: 0001-Compatibility-patch-for-llvm14.patch #--------------------------------------------------------------------------------- @@ -484,7 +484,10 @@ fi #--------------------------------------------------------------------------------- %changelog -* Wed Mar 30 2022 Serge Guelton - 10.59-2 +* Thu Mar 31 2022 Timm Bäder redhat.com> - 10.60-1 +- Add support for building using meson+ninja. + +* Wed Mar 30 2022 Serge Guelton - 10.59-2 - Rebuilt against new LLVM release, with patch. * Wed Mar 30 2022 Nick Clifton - 10.59-1 diff --git a/sources b/sources index 08e29fd..14aac01 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.59.tar.xz) = 3c723eeac6f9435d6b74033cf4b057327a171ab488922e95c10a6c016a5086b0076795f305c0b3b7337b881e6276351dc5e15f8f23e0ae297aa70a81f1ef6dab +SHA512 (annobin-10.60.tar.xz) = 7d5158da6a59000d686fb837b0ac1a86351898c00a93e29c2cb599ec6eccb325b66fbd775855bd3661d2d9541e3d2cb2493b087b6670fca137f9992f33c68082 From eceb1781735e57a715f3f42859479c2642960669 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Sat, 2 Apr 2022 09:31:20 +0100 Subject: [PATCH 256/459] remap OPT_Wall --- annobin.spec | 8 ++++++-- sources | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 9f13ddb..651b099 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.60 +Version: 10.61 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -341,7 +341,7 @@ CONFIG_ARGS="$CONFIG_ARGS --with-llvm" %endif %if %{without tests} -CONFIG_ARGS="$CONFIG_ARGS --without-test" +CONFIG_ARGS="$CONFIG_ARGS --without-tests" %endif %if %{without annocheck} @@ -484,6 +484,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Sat Apr 02 2022 Nick Clifton - 10.61-1 +- gcc-plugin: Add remap of OPT_Wall. +- configure: Fix typo in top level configure.ac. + * Thu Mar 31 2022 Timm Bäder redhat.com> - 10.60-1 - Add support for building using meson+ninja. diff --git a/sources b/sources index 14aac01..4fa0ed0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.60.tar.xz) = 7d5158da6a59000d686fb837b0ac1a86351898c00a93e29c2cb599ec6eccb325b66fbd775855bd3661d2d9541e3d2cb2493b087b6670fca137f9992f33c68082 +SHA512 (annobin-10.61.tar.xz) = 70cf907bf594b491058db868c0e0ea4dd5034a16bf20c9c0b8b8b95db03658526947da798be7915d89b149f0e84d4668e9651fa916a2514d273b7ea6d87efd30 From d4466f74069142f8ae6a637799a64c1901dd59da Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 5 Apr 2022 14:04:16 +0100 Subject: [PATCH 257/459] Fix thinko in llvm plugin sources --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 651b099..44ec51a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.61 +Version: 10.62 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -484,6 +484,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Apr 05 2022 Nick Clifton - 10.62-1 +- llvm-plugin: Fix a thinko in the sources. + * Sat Apr 02 2022 Nick Clifton - 10.61-1 - gcc-plugin: Add remap of OPT_Wall. - configure: Fix typo in top level configure.ac. diff --git a/sources b/sources index 4fa0ed0..be8b21a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.61.tar.xz) = 70cf907bf594b491058db868c0e0ea4dd5034a16bf20c9c0b8b8b95db03658526947da798be7915d89b149f0e84d4668e9651fa916a2514d273b7ea6d87efd30 +SHA512 (annobin-10.62.tar.xz) = 60f65d80158dc074f9293ae4d35e312a8b2129b20e10eb3268d335be215e8eee9f6bb0efc341bcaae7169a32a5fbdbf8d81fd372e6b3c793d7380682e1baf595 From 3de80672fa61d38eb7f28818ff50e316c2b07767 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 6 Apr 2022 12:19:52 +0100 Subject: [PATCH 258/459] Annocheck: Add more special cases for AArch64 glibc on RHEL-8. (#2072082) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 44ec51a..033ed0e 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.62 +Version: 10.63 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -484,6 +484,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Apr 06 2022 Nick Clifton - 10.63-1 +- Annocheck: Add more special cases for AArch64 glibc on RHEL-8. (#2072082) + * Tue Apr 05 2022 Nick Clifton - 10.62-1 - llvm-plugin: Fix a thinko in the sources. diff --git a/sources b/sources index be8b21a..190616e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.62.tar.xz) = 60f65d80158dc074f9293ae4d35e312a8b2129b20e10eb3268d335be215e8eee9f6bb0efc341bcaae7169a32a5fbdbf8d81fd372e6b3c793d7380682e1baf595 +SHA512 (annobin-10.63.tar.xz) = bc1162616b3eb27bc2a2cd465f3f2a765019f6eac85e7856545ccceedd497fc8904bf8b5d57fa17a04674803fd38162d71fcd143f686eff248df7c29d479ab40 From 098cf0d690ccc2c545f1a522659cf12a1f2255b8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 6 Apr 2022 12:58:19 +0100 Subject: [PATCH 259/459] Annocheck: Even more special cases for AArch64 glibc on RHEL-8. (#2072082) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 033ed0e..e72f160 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.63 +Version: 10.64 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -484,6 +484,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Apr 06 2022 Nick Clifton - 10.64-1 +- Annocheck: Even more special cases for AArch64 glibc on RHEL-8. (#2072082) + * Wed Apr 06 2022 Nick Clifton - 10.63-1 - Annocheck: Add more special cases for AArch64 glibc on RHEL-8. (#2072082) diff --git a/sources b/sources index 190616e..d163d7e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.63.tar.xz) = bc1162616b3eb27bc2a2cd465f3f2a765019f6eac85e7856545ccceedd497fc8904bf8b5d57fa17a04674803fd38162d71fcd143f686eff248df7c29d479ab40 +SHA512 (annobin-10.64.tar.xz) = e8c6b4cfb7443fb9405ae85b6cd16636e17d08b037c75d104fc80e95d484376f6825e2c9257094c7d9c406233acd9f1ffa8d28024fc6f0d546d7569b0f8b99bc From e0ddeb63a35d17e0c53daf1d59be7c8a66623f4b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 12 Apr 2022 17:53:12 +0100 Subject: [PATCH 260/459] 10.65: gcc-plugin: Add support for CLVC_INTEGER --- 0001-Compatibility-patch-for-llvm14.patch | 42 ----------------------- annobin.spec | 5 ++- sources | 2 +- 3 files changed, 5 insertions(+), 44 deletions(-) delete mode 100644 0001-Compatibility-patch-for-llvm14.patch diff --git a/0001-Compatibility-patch-for-llvm14.patch b/0001-Compatibility-patch-for-llvm14.patch deleted file mode 100644 index c4d260e..0000000 --- a/0001-Compatibility-patch-for-llvm14.patch +++ /dev/null @@ -1,42 +0,0 @@ -From f278b500124ee9d49cb990f6a0333b28794fddb1 Mon Sep 17 00:00:00 2001 -From: sergesanspaille -Date: Wed, 30 Mar 2022 16:07:17 +0200 -Subject: [PATCH] Compatibility patch for llvm14 - ---- - llvm-plugin/annobin.cpp | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/llvm-plugin/annobin.cpp b/llvm-plugin/annobin.cpp -index a119ab9..6a43580 100644 ---- a/llvm-plugin/annobin.cpp -+++ b/llvm-plugin/annobin.cpp -@@ -484,9 +484,14 @@ namespace - - struct AnnobinModulePass : llvm::PassInfoMixin - { -- llvm::PassBuilder::OptimizationLevel OptLevel; -+#if __clang_major__ > 13 -+ using OptimizationLevel = llvm::OptimizationLevel; -+#else -+ using OptimizationLevel = llvm::PassBuilder::OptimizationLevel; -+#endif -+ OptimizationLevel OptLevel; - -- AnnobinModulePass(llvm::PassBuilder::OptimizationLevel OptLevel) : OptLevel(OptLevel) {} -+ AnnobinModulePass(OptimizationLevel OptLevel) : OptLevel(OptLevel) {} - llvm::PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM) - { - AnnobinModule Annobin; -@@ -505,7 +510,7 @@ llvm::PassPluginLibraryInfo getAnnobinLLVMPluginInfo () - { - PB.registerPipelineStartEPCallback - ([](llvm::ModulePassManager &PM, -- llvm::PassBuilder::OptimizationLevel Level) -+ AnnobinModulePass::OptimizationLevel Level) - { - PM.addPass(AnnobinModulePass(Level)); - }); --- -1.8.3.1 - diff --git a/annobin.spec b/annobin.spec index e72f160..d0da685 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.64 +Version: 10.65 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -484,6 +484,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Apr 12 2022 Nick Clifton - 10.65-1 +- gcc-plugin: Add support for CLVC_INTEGER options. + * Wed Apr 06 2022 Nick Clifton - 10.64-1 - Annocheck: Even more special cases for AArch64 glibc on RHEL-8. (#2072082) diff --git a/sources b/sources index d163d7e..a2847b0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.64.tar.xz) = e8c6b4cfb7443fb9405ae85b6cd16636e17d08b037c75d104fc80e95d484376f6825e2c9257094c7d9c406233acd9f1ffa8d28024fc6f0d546d7569b0f8b99bc +SHA512 (annobin-10.65.tar.xz) = c7191fc88072431f3c62ae2abe405b88c78b3d703353810aef6bb6bf0c3fa16ad2db84d5e5e940864518474119393454aadc40fdca84bdbba18d686face59ce1 From 2e205722fd7eac7146929c47babdfd683b0f4d61 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 13 Apr 2022 09:35:37 +0100 Subject: [PATCH 261/459] Annocheck: Do not complain about missing -mbranch-protection option in AArch64 binaries if compiled in LTO mode. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index d0da685..99bc184 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.65 +Version: 10.66 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -484,6 +484,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Apr 13 2022 Nick Clifton - 10.66-1 +- Annocheck: Do not complain about missing -mbranch-protection option in AArch64 binaries if compiled in LTO mode. + * Tue Apr 12 2022 Nick Clifton - 10.65-1 - gcc-plugin: Add support for CLVC_INTEGER options. diff --git a/sources b/sources index a2847b0..f0b907d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.65.tar.xz) = c7191fc88072431f3c62ae2abe405b88c78b3d703353810aef6bb6bf0c3fa16ad2db84d5e5e940864518474119393454aadc40fdca84bdbba18d686face59ce1 +SHA512 (annobin-10.66.tar.xz) = 3e3fd94c500309acf98a4908479536b3502c26fce6315c071f4a2070269f48615e5f109b3e3c866524e560f98a776fc099a30e5febe89ffb71feda661eeaa620 From b464395c191bf5959dfd5074e72a7822874aabbc Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 22 Apr 2022 08:22:06 +0100 Subject: [PATCH 262/459] Annocheck: Do not complain about missing -mbranch-protection option in AArch64 binaries if compiled by golang. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 99bc184..78e7c1e 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.66 +Version: 10.67 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -484,6 +484,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Apr 22 2022 Nick Clifton - 10.67-1 +- Annocheck: Do not complain about missing -mbranch-protection option in AArch64 binaries if compiled by golang. + * Wed Apr 13 2022 Nick Clifton - 10.66-1 - Annocheck: Do not complain about missing -mbranch-protection option in AArch64 binaries if compiled in LTO mode. diff --git a/sources b/sources index f0b907d..178f771 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.66.tar.xz) = 3e3fd94c500309acf98a4908479536b3502c26fce6315c071f4a2070269f48615e5f109b3e3c866524e560f98a776fc099a30e5febe89ffb71feda661eeaa620 +SHA512 (annobin-10.67.tar.xz) = dde856e327aeef376ab2dc67178fbd8e6a055904c8a24da5bc5d69fc52587bb0673c276ffe68ce6cd424c65d3a1653b8ae1e32a90504378fc9291f039160b413 From 75736750e67fb71ff762d05f3f2d376b92ccbf42 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 3 May 2022 14:09:23 +0100 Subject: [PATCH 263/459] Annocheck: Add more glibc exceptions + check PT_TLS segments. (#2081131) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 78e7c1e..2156eab 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.67 +Version: 10.68 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -484,6 +484,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue May 03 2022 Nick Clifton - 10.68-1 +- Annocheck: Add more glibc exceptions + check PT_TLS segments. (#2081131) + * Fri Apr 22 2022 Nick Clifton - 10.67-1 - Annocheck: Do not complain about missing -mbranch-protection option in AArch64 binaries if compiled by golang. diff --git a/sources b/sources index 178f771..979a605 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.67.tar.xz) = dde856e327aeef376ab2dc67178fbd8e6a055904c8a24da5bc5d69fc52587bb0673c276ffe68ce6cd424c65d3a1653b8ae1e32a90504378fc9291f039160b413 +SHA512 (annobin-10.68.tar.xz) = 0e3a12e173f6f77443c81e44f6be565b8392e6fcba002c8482f3edd13c56620acd5f528a00f10a9f81b9c8aeedf008103850458b2829cecbd89be98649879acc From 67f8a8d11aa3e33ca29076e9a4884c1d873517f8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 6 May 2022 15:00:55 +0100 Subject: [PATCH 264/459] Annocheck: Do not complain about unenabled -mbranch-protection option in AArch64 binaries if compiled using LTO. (#2082146) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 2156eab..229acfb 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.68 +Version: 10.69 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -484,6 +484,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri May 06 2022 Nick Clifton - 10.69-1 +- Annocheck: Do not complain about unenabled -mbranch-protection option in AArch64 binaries if compiled using LTO. (#2082146) + * Tue May 03 2022 Nick Clifton - 10.68-1 - Annocheck: Add more glibc exceptions + check PT_TLS segments. (#2081131) diff --git a/sources b/sources index 979a605..46ee931 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.68.tar.xz) = 0e3a12e173f6f77443c81e44f6be565b8392e6fcba002c8482f3edd13c56620acd5f528a00f10a9f81b9c8aeedf008103850458b2829cecbd89be98649879acc +SHA512 (annobin-10.69.tar.xz) = 449e47afda1b09947329bce33e54695a478226414cf358f714b63a44b1f62a2f277780cdd1af641783a84795d72a48d121c6778f3ad78a41b189c896dd6393eb From f0bfd1e41ec0b95a343517e2f207b14f55f73895 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 9 May 2022 11:07:02 +0100 Subject: [PATCH 265/459] Annocheck: Add another special case for glibc rpms. (#2083070) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 229acfb..fb64104 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.69 +Version: 10.70 Release: 1%{?dist} License: GPLv3+ # Maintainer: nickc@redhat.com @@ -484,6 +484,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon May 09 2022 Nick Clifton - 10.70-1 +- Annocheck: Add another special case for glibc rpms. (#2083070) + * Fri May 06 2022 Nick Clifton - 10.69-1 - Annocheck: Do not complain about unenabled -mbranch-protection option in AArch64 binaries if compiled using LTO. (#2082146) diff --git a/sources b/sources index 46ee931..52f25c2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.69.tar.xz) = 449e47afda1b09947329bce33e54695a478226414cf358f714b63a44b1f62a2f277780cdd1af641783a84795d72a48d121c6778f3ad78a41b189c896dd6393eb +SHA512 (annobin-10.70.tar.xz) = 6b723f1c988c6afad6a7c51fde376b49affc4c9f999290b68046afe7d72c694788b75708c4252444ea1138f92e069cec0e6201f2cf919cf23ffbbc59539b1b44 From e305a8053a066707b2e72d36911349f935c98780 Mon Sep 17 00:00:00 2001 From: Jun Aruga Date: Tue, 10 May 2022 15:42:24 +0200 Subject: [PATCH 266/459] Add URL tag to see it by `rpm -qi annobin-annocheck`. --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index fb64104..251fa1e 100644 --- a/annobin.spec +++ b/annobin.spec @@ -4,8 +4,8 @@ Summary: Annotate and examine compiled binary files Version: 10.70 Release: 1%{?dist} License: GPLv3+ +URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com -# Web Page: https://sourceware.org/annobin/ # Watermark Protocol: https://fedoraproject.org/wiki/Toolchain/Watermark #--------------------------------------------------------------------------------- From 6a039d67f0f2f6e29894c9df96560ee8b5562a54 Mon Sep 17 00:00:00 2001 From: David Abdurachmanov Date: Wed, 11 May 2022 12:26:42 +0000 Subject: [PATCH 267/459] Add support for RISC-V Author: David Abdurachmanov Signed-off-by: Nianqing Yao and David Abdurachmanov --- annobin-add-riscv-support.patch | 28 ++++++++++++++++++++++++++++ annobin.spec | 5 +++++ 2 files changed, 33 insertions(+) create mode 100644 annobin-add-riscv-support.patch diff --git a/annobin-add-riscv-support.patch b/annobin-add-riscv-support.patch new file mode 100644 index 0000000..f5bf695 --- /dev/null +++ b/annobin-add-riscv-support.patch @@ -0,0 +1,28 @@ +diff --git a/configure b/configure +index 4ade97a..6028b72 100755 +--- a/configure ++++ b/configure +@@ -17807,6 +17807,9 @@ case ${target} in + s390*-*-*) + target_plugin="s390.annobin.lo" + ;; ++ riscv*-*-*) ++ target_plugin="riscv.annobin.lo" ++ ;; + *) + target_plugin="dummy.annobin.lo" + ;; +diff --git a/configure.ac b/configure.ac +index acbf0a4..10cf53a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -42,6 +42,9 @@ case ${target} in + s390*-*-*) + target_plugin="s390.annobin.lo" + ;; ++ riscv*-*-*) ++ target_plugin="riscv.annobin.lo" ++ ;; + *) + target_plugin="dummy.annobin.lo" + ;; diff --git a/annobin.spec b/annobin.spec index 251fa1e..8a20101 100644 --- a/annobin.spec +++ b/annobin.spec @@ -69,6 +69,8 @@ Source: https://nickc.fedorapeople.org/%{annobin_sources} # Patch01: annobin-foo.patch # Patch01: 0001-Compatibility-patch-for-llvm14.patch +Patch01: annobin-add-riscv-support.patch + #--------------------------------------------------------------------------------- # Make sure that the necessary sub-packages are built. @@ -484,6 +486,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu May 10 2022 Nianqing Yao - 10.70-2 +- Add support for RISC-V. + * Mon May 09 2022 Nick Clifton - 10.70-1 - Annocheck: Add another special case for glibc rpms. (#2083070) From 1f57bcbc2c2657a0c791ee9e8840020cd3ddddbd Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 11 May 2022 14:35:10 +0100 Subject: [PATCH 268/459] gcc-plugin: Fix typo in configure.ac --- annobin.fortify-test.patch | 85 -------------------------------------- annobin.spec | 10 ++--- sources | 2 +- 3 files changed, 6 insertions(+), 91 deletions(-) delete mode 100644 annobin.fortify-test.patch diff --git a/annobin.fortify-test.patch b/annobin.fortify-test.patch deleted file mode 100644 index 4d419ac..0000000 --- a/annobin.fortify-test.patch +++ /dev/null @@ -1,85 +0,0 @@ ---- annobin.orig/tests/fortify-test 2022-01-10 09:50:07.005146672 +0000 -+++ annobin-10.45/tests/fortify-test 2022-01-10 10:23:56.827404265 +0000 -@@ -37,30 +37,37 @@ fi - # Now add in our newly built plugin. - OPTS+=" -fplugin=$PLUGIN" - -+# For debugging purposes, generate a linker map as well. -+OPTS+=" -Wl,-Map,fortify-test.map" -+ - start_test - --$GCC $OPTS -Wp,-U_FORTIFY_SOURCE -fno-lto $srcdir/main.c -o main.exe -+# Use atexit.c rather than main.c as it is bigger. -+COMMAND="$GCC $OPTS -Wp,-U_FORTIFY_SOURCE -fno-lto $srcdir/atexit.c -o fortify-test.exe" -+$COMMAND - if [ $? != 0 ]; - then - echo " $TEST_NAME: FAIL: unable to compile test file" -- echo " $TEST_NAME: compile command: $GCC $OPTS -Wp,-U_FORTIFY_SOURCE -fno-lto $srcdir/main.c -o main.exe" -+ echo " $TEST_NAME: command: $COMMAND" - end_test - exit 1 - fi - - # Run annocheck - --SKIPS="--skip-cf-protection --skip-property-note --skip-stack-realign --skip-entry --skip-dynamic-tags --skip-lto --skip-warnings --skip-dynamic-tags --skip-not-dynamic-tags --skip-branch-protection --skip-not-branch-protection" --$ANNOCHECK main.exe $SKIPS > main.out --grep -e "Overall: FAIL" main.out -+SKIPS="--skip-all --test-fortify" -+A_COMMAND="$ANNOCHECK fortify-test.exe $SKIPS" -+$A_COMMAND > fortify-test.out -+grep -e "Overall: FAIL" fortify-test.out - if [ $? != 0 ]; - then - echo " $TEST_NAME: FAIL: compiling with -D_FORTIFY_SOURCE=2 still produces an executable that passes annocheck" -- echo " $TEST_NAME: compile command: $GCC $OPTS -Wp,-U_FORTIFY_SOURCE -fno-lto $srcdir/main.c -o main.exe" -- echo " $TEST_NAME: annocheck command: $ANNOCHECK main.exe $SKIPS" -+ echo " $TEST_NAME: compile command: $COMMAND" -+ echo " $TEST_NAME: annocheck command: $A_COMMAND" - echo " $TEST_NAME: annocheck output (with verbose enabled):" -- $ANNOCHECK main.exe $SKIPS --verbose -- uuencode main.exe main.exe -+ $A_COMMAND --verbose -+ uuencode fortify-test.exe fortify-test.exe -+ uuencode fortify-test.map fortify-test.map - end_test - exit 1 - fi ---- annobin.orig/gcc-plugin/annobin.cc 2022-01-10 09:50:06.991146761 +0000 -+++ annobin-10.45/gcc-plugin/annobin.cc 2022-01-10 11:31:49.507826587 +0000 -@@ -1,5 +1,5 @@ - /* annobin - a gcc plugin for annotating binary files. -- Copyright (c) 2017 - 2021 Red Hat. -+ Copyright (c) 2017 - 2022 Red Hat. - Created by Nick Clifton. - - This is free software; you can redistribute it and/or modify it -@@ -2485,6 +2485,7 @@ annobin_emit_end_symbol (const char * su - fprintf (asm_out_file, "\t.size %s%s, 0\n", annobin_current_endname, suffix); - annobin_inform (INFORM_VERBOSE, "Create symbol %s%s", annobin_current_endname, suffix); - -+#if 0 - /* If there is a bias to the start symbol, we can end up with the case where - the start symbol is after the end symbol. (If the section is empty). - Catch that and adjust the start symbol. This also pacifies eu-elflint -@@ -2509,7 +2510,8 @@ annobin_emit_end_symbol (const char * su - annobin_current_endname, suffix); - fprintf (asm_out_file, "\t.endif\n"); - } -- -+#endif -+ - fprintf (asm_out_file, "\t.popsection\n"); - } - -@@ -2774,7 +2776,7 @@ plugin_init (struct plugin_name_args * - solution is needed. */ - annobin_attach_type = group; - #if GCCPLUGIN_VERSION_MAJOR >= 11 -- if (target_start_sym_bias == 0) -+ /* if (target_start_sym_bias == 0)*/ - annobin_attach_type = link_order; - #endif - } diff --git a/annobin.spec b/annobin.spec index 8a20101..cf1f8e3 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.70 +Version: 10.71 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -67,9 +67,6 @@ Source: https://nickc.fedorapeople.org/%{annobin_sources} # Insert patches here, if needed. Eg: # Patch01: annobin-foo.patch -# Patch01: 0001-Compatibility-patch-for-llvm14.patch - -Patch01: annobin-add-riscv-support.patch #--------------------------------------------------------------------------------- @@ -486,7 +483,10 @@ fi #--------------------------------------------------------------------------------- %changelog -* Thu May 10 2022 Nianqing Yao - 10.70-2 +* Wed May 11 2022 Nick Clifton - 10.71-1 +- gcc-plugin: Fix typo in configure.ac. + +* Tue May 10 2022 Nianqing Yao - 10.70-2 - Add support for RISC-V. * Mon May 09 2022 Nick Clifton - 10.70-1 diff --git a/sources b/sources index 52f25c2..098f1bb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.70.tar.xz) = 6b723f1c988c6afad6a7c51fde376b49affc4c9f999290b68046afe7d72c694788b75708c4252444ea1138f92e069cec0e6201f2cf919cf23ffbbc59539b1b44 +SHA512 (annobin-10.71.tar.xz) = 2f02dbcb251418bf478a07428ee7b8b2bdbb3193596d132b2a96116be9aeab44a825416edfde8a9f059938d44351a78440eb57bce03e01171430e42ac61e756a From f271cd992015495e5bba768042c794a605f115ba Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 16 May 2022 15:53:08 +0100 Subject: [PATCH 269/459] Annocheck: Do not complain about unenabled -mbranch-protection option in AArch64 binaries. (#2078909) --- annobin-add-riscv-support.patch | 28 ---------------------------- annobin.spec | 5 ++++- sources | 2 +- 3 files changed, 5 insertions(+), 30 deletions(-) delete mode 100644 annobin-add-riscv-support.patch diff --git a/annobin-add-riscv-support.patch b/annobin-add-riscv-support.patch deleted file mode 100644 index f5bf695..0000000 --- a/annobin-add-riscv-support.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff --git a/configure b/configure -index 4ade97a..6028b72 100755 ---- a/configure -+++ b/configure -@@ -17807,6 +17807,9 @@ case ${target} in - s390*-*-*) - target_plugin="s390.annobin.lo" - ;; -+ riscv*-*-*) -+ target_plugin="riscv.annobin.lo" -+ ;; - *) - target_plugin="dummy.annobin.lo" - ;; -diff --git a/configure.ac b/configure.ac -index acbf0a4..10cf53a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -42,6 +42,9 @@ case ${target} in - s390*-*-*) - target_plugin="s390.annobin.lo" - ;; -+ riscv*-*-*) -+ target_plugin="riscv.annobin.lo" -+ ;; - *) - target_plugin="dummy.annobin.lo" - ;; diff --git a/annobin.spec b/annobin.spec index cf1f8e3..49fac18 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.71 +Version: 10.72 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -483,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon May 16 2022 Nick Clifton - 10.72-1 +- Annocheck: Do not complain about unenabled -mbranch-protection option in AArch64 binaries. (#2078909) + * Wed May 11 2022 Nick Clifton - 10.71-1 - gcc-plugin: Fix typo in configure.ac. diff --git a/sources b/sources index 098f1bb..901d9ef 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.71.tar.xz) = 2f02dbcb251418bf478a07428ee7b8b2bdbb3193596d132b2a96116be9aeab44a825416edfde8a9f059938d44351a78440eb57bce03e01171430e42ac61e756a +SHA512 (annobin-10.72.tar.xz) = 74547f71d5caf1bdf6a4a642764e2316deb34eae50c0429f4c40e2afbf6b27e7e83ffff3e3f740b86db7bde22c800f8f3fcc63f6810d98750b3e189f68399678 From 6aaecc9f93f1b0fc81ca757d81dadc3630727af3 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 17 May 2022 12:34:14 +0100 Subject: [PATCH 270/459] Annocheck: Fix handling of command line options that take arguments. (#2086850) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 49fac18..1f0afad 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.72 +Version: 10.73 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -483,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue May 17 2022 Nick Clifton - 10.73-1 +- Annocheck: Fix handling of command line options that take arguments. (#2086850) + * Mon May 16 2022 Nick Clifton - 10.72-1 - Annocheck: Do not complain about unenabled -mbranch-protection option in AArch64 binaries. (#2078909) diff --git a/sources b/sources index 901d9ef..d05dc64 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.72.tar.xz) = 74547f71d5caf1bdf6a4a642764e2316deb34eae50c0429f4c40e2afbf6b27e7e83ffff3e3f740b86db7bde22c800f8f3fcc63f6810d98750b3e189f68399678 +SHA512 (annobin-10.73.tar.xz) = 264bd43279526095b4bc11accc0c6a9e8a6fdaa9adf9b8a12076b0d55f34ecc7df0c4653ec48210aff7cefabac208fcab52922babb9e404f22db809976a6a3e8 From d9744eac07ec736aba70b86207d3980dceefa7ac Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 7 Jun 2022 16:56:59 +0100 Subject: [PATCH 271/459] Annocheck: Handle binaries created by Rust 1.18. (#2094420) Annocheck: Add optional function name to --skip arguments. (PR 29229) --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 1f0afad..d62f3ec 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.73 +Version: 10.74 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -483,6 +483,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Jun 07 2022 Nick Clifton - 10.74-1 +- Annocheck: Handle binaries created by Rust 1.18. (#2094420) +- Annocheck: Add optional function name to --skip arguments. (PR 29229) + * Tue May 17 2022 Nick Clifton - 10.73-1 - Annocheck: Fix handling of command line options that take arguments. (#2086850) diff --git a/sources b/sources index d05dc64..275832c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.73.tar.xz) = 264bd43279526095b4bc11accc0c6a9e8a6fdaa9adf9b8a12076b0d55f34ecc7df0c4653ec48210aff7cefabac208fcab52922babb9e404f22db809976a6a3e8 +SHA512 (annobin-10.74.tar.xz) = 3117e3247227dd0e282857b6f66987b992946c43be9890d35ad988199192a679a7944a12d2f12cc1f42263020a3942644e3a5ced4447790cdec34d4134517d79 From 6af1867f17e263f42c4248f5d03ec77686ad325b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 9 Jun 2022 15:12:55 +0100 Subject: [PATCH 272/459] Annocheck: Fix covscan detected race condition between stat() and open(). --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index d62f3ec..e0e7edf 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.74 +Version: 10.75 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -483,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Jun 09 2022 Nick Clifton - 10.75-1 +- Annocheck: Fix covscan detected race condition between stat() and open(). + * Tue Jun 07 2022 Nick Clifton - 10.74-1 - Annocheck: Handle binaries created by Rust 1.18. (#2094420) - Annocheck: Add optional function name to --skip arguments. (PR 29229) diff --git a/sources b/sources index 275832c..86637dd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.74.tar.xz) = 3117e3247227dd0e282857b6f66987b992946c43be9890d35ad988199192a679a7944a12d2f12cc1f42263020a3942644e3a5ced4447790cdec34d4134517d79 +SHA512 (annobin-10.75.tar.xz) = 8268f1a49ccc002590a2d4419d03e89edd9bc0b8dae54400cce91e5ae5331f31b1e44f79717a712d757653accc76a1a7daa2b12cc4e0c4ce66cfadc5a71cd95e From 278aadbc363f23deaa29e8884f4c19c2c1efeafa Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 14 Jun 2022 10:18:00 +0100 Subject: [PATCH 273/459] Annocheck: Check build-id of separate debuginfo files. Annocheck: Add GAPS test replacing --ignore-gaps. --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index e0e7edf..7215442 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.75 +Version: 10.76 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -483,6 +483,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tuw Jun 14 2022 Nick Clifton - 10.76-1 +- Annocheck: Check build-id of separate debuginfo files. +- Annocheck: Add GAPS test replacing --ignore-gaps. + * Thu Jun 09 2022 Nick Clifton - 10.75-1 - Annocheck: Fix covscan detected race condition between stat() and open(). diff --git a/sources b/sources index 86637dd..56bdd57 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.75.tar.xz) = 8268f1a49ccc002590a2d4419d03e89edd9bc0b8dae54400cce91e5ae5331f31b1e44f79717a712d757653accc76a1a7daa2b12cc4e0c4ce66cfadc5a71cd95e +SHA512 (annobin-10.76.tar.xz) = 53b7d16c1b4c7d480ead2ec844a1895c39c441bdf60ed4b00205247a12ea190bfaa14591f8da629587c86d6ab2932571fed4ab9c9b8aa86fa29dda6ba43a2e06 From 2a644cdee42066841eb1dabebf32a060accb5f9f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 29 Jun 2022 17:38:18 +0100 Subject: [PATCH 274/459] Spec File: Use the %%dir directive in the %%files section to ensure that plugin directories are useable. (#2080454) Spec File: Remove bogus Provides from annobin-docs subpackage. --- annobin.spec | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/annobin.spec b/annobin.spec index 7215442..d0bd158 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.76 -Release: 1%{?dist} +Release: 3%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -126,9 +126,6 @@ annotated files and reports on any missing security options. %package docs Summary: Documentation and shell scripts for use with annobin BuildArch: noarch -# annobin renamed to annobin-doc in 9.66-1 -Provides: %{name} = %{version}-%{release} -Obsoletes: %{name} < %{version}-%{release} # The documentation uses pod2man... BuildRequires: perl-interpreter perl-podlators gawk make sharutils @@ -455,16 +452,19 @@ fi %if %{with llvmplugin} %files plugin-llvm +%dir %{llvm_plugin_dir} %{llvm_plugin_dir}/annobin-for-llvm.so %endif %if %{with clangplugin} %files plugin-clang +%dir %{clang_plugin_dir} %{clang_plugin_dir}/annobin-for-clang.so %endif %if %{with gccplugin} %files plugin-gcc +%dir %{ANNOBIN_GCC_PLUGIN_DIR} %{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so %{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0 %{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0.0.0 @@ -483,7 +483,14 @@ fi #--------------------------------------------------------------------------------- %changelog -* Tuw Jun 14 2022 Nick Clifton - 10.76-1 +* Wed Jun 29 2022 Nick Clifton - 10.76-3 +- Spec File: Use the %%dir directive in the %%files section to ensure that +- plugin directories are useable. (#2080454) + +* Fri Jun 24 2022 Nick Clifton - 10.76-2 +- Spec File: Remove bogus Provides from annobin-docs subpackage. + +* Tue Jun 14 2022 Nick Clifton - 10.76-1 - Annocheck: Check build-id of separate debuginfo files. - Annocheck: Add GAPS test replacing --ignore-gaps. From 4cf5153ba780b0f3d5ee29b53a2dc84cb519987a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 4 Jul 2022 16:18:07 +0100 Subject: [PATCH 275/459] Annocheck: Improve gap detection and reporting --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index d0bd158..0117698 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.76 -Release: 3%{?dist} +Version: 10.77 +Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -483,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Jul 04 2022 Nick Clifton - 10.77-1 +- Annocheck: Improve gap detection and reporting. + * Wed Jun 29 2022 Nick Clifton - 10.76-3 - Spec File: Use the %%dir directive in the %%files section to ensure that - plugin directories are useable. (#2080454) diff --git a/sources b/sources index 56bdd57..125333e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.76.tar.xz) = 53b7d16c1b4c7d480ead2ec844a1895c39c441bdf60ed4b00205247a12ea190bfaa14591f8da629587c86d6ab2932571fed4ab9c9b8aa86fa29dda6ba43a2e06 +SHA512 (annobin-10.77.tar.xz) = bd07c7633bf391f2353e8431099c71c7c671c861ba7a63af6d57693d81624369579d3162d268f7a6e31a875c5c65d59838660a038245e7bf36212c6a5c4cbb6a From 794d4708efedcff142a3e37a400bcbffc2d4fc7a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 5 Jul 2022 09:16:59 +0100 Subject: [PATCH 276/459] Annocheck: Add automatic profile selection. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 0117698..e957c14 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.77 +Version: 10.78 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -483,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Jul 05 2022 Nick Clifton - 10.78-1 +- Annocheck: Add automatic profile selection. + * Mon Jul 04 2022 Nick Clifton - 10.77-1 - Annocheck: Improve gap detection and reporting. diff --git a/sources b/sources index 125333e..1c483e1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.77.tar.xz) = bd07c7633bf391f2353e8431099c71c7c671c861ba7a63af6d57693d81624369579d3162d268f7a6e31a875c5c65d59838660a038245e7bf36212c6a5c4cbb6a +SHA512 (annobin-10.78.tar.xz) = 1477b6c68733aafe2cdfc54b8a4a1edac129585c01a3017ae3da1a2ac5f9fe9ef6f9405948f1e67936515a9cd62f1c20ea1307526063647c09037d305c8cfe47 From 0190aaeb50ffcce0dc53f57ffe1425effb17a3cd Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 20 Jul 2022 20:49:03 +0000 Subject: [PATCH 277/459] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index e957c14..ac826cc 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.78 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -483,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jul 20 2022 Fedora Release Engineering - 10.78-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Tue Jul 05 2022 Nick Clifton - 10.78-1 - Annocheck: Add automatic profile selection. From a55206c42001a4cdf9b865a8dd5755a90b3e934e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 25 Jul 2022 15:44:44 +0100 Subject: [PATCH 278/459] Annocheck: Fixes for libannocheck.h. --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index ac826cc..16b53a1 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.78 -Release: 2%{?dist} +Version: 10.79 +Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -483,6 +483,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Jul 25 2022 Nick Clifton - 10.79-1 +- Annocheck: Fixes for libannocheck.h. + * Wed Jul 20 2022 Fedora Release Engineering - 10.78-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild diff --git a/sources b/sources index 1c483e1..0fb4870 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.78.tar.xz) = 1477b6c68733aafe2cdfc54b8a4a1edac129585c01a3017ae3da1a2ac5f9fe9ef6f9405948f1e67936515a9cd62f1c20ea1307526063647c09037d305c8cfe47 +SHA512 (annobin-10.79.tar.xz) = 05410eaa5f9a75015563b009f571bfd12644b3bfd5579a9f4da80a9bbdac5014e07ed5430323252387290e41a74cdb80fd871cb688085c89737fec3920134759 From 8dc50c73e8e718189747d6c2012800b3224dfb15 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 11 Aug 2022 10:07:49 +0100 Subject: [PATCH 279/459] Annocheck: Improvements to the size tool. --- annobin.spec | 10 +++++++++- sources | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 16b53a1..c9af1ba 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.79 +Version: 10.80 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -359,6 +359,11 @@ export LDFLAGS="$LDFLAGS %build_ldflags" export CLANG_TARGET_OPTIONS="-fcf-protection" %endif +%ifarch ppc ppc64 ppc64le +# FIXME: This is a workaround for a problem with the Clang C++ headers. It should not be needed. +export CLANG_TARGET_OPTIONS="-mabi=ibmlongdouble" +%endif + CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CXXFLAGS="$CFLAGS" %configure ${CONFIG_ARGS} || cat config.log %make_build @@ -483,6 +488,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Aug 09 2022 Nick Clifton - 10.80-1 +- Annocheck: Improvements to the size tool. + * Mon Jul 25 2022 Nick Clifton - 10.79-1 - Annocheck: Fixes for libannocheck.h. diff --git a/sources b/sources index 0fb4870..e39160e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.79.tar.xz) = 05410eaa5f9a75015563b009f571bfd12644b3bfd5579a9f4da80a9bbdac5014e07ed5430323252387290e41a74cdb80fd871cb688085c89737fec3920134759 +SHA512 (annobin-10.80.tar.xz) = c4c539f4ff695441ac03268d0c6860a9a0573a41939cbf911d02ea44e6010c611dda5a93deea314889777b641c5e66054a0111977b74d5b673971451ba75c4c2 From 253c3f05a5a0de79e29872ae80173c097b3a8ca6 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 11 Aug 2022 11:29:10 +0100 Subject: [PATCH 280/459] Plugin: Fix top level configuration support for RiscV. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index c9af1ba..8114044 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.80 +Version: 10.81 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -488,6 +488,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Aug 11 2022 Nick Clifton - 10.81-1 +- Plugin: Fix top level configuration support for RiscV. + * Tue Aug 09 2022 Nick Clifton - 10.80-1 - Annocheck: Improvements to the size tool. diff --git a/sources b/sources index e39160e..5b4476b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.80.tar.xz) = c4c539f4ff695441ac03268d0c6860a9a0573a41939cbf911d02ea44e6010c611dda5a93deea314889777b641c5e66054a0111977b74d5b673971451ba75c4c2 +SHA512 (annobin-10.81.tar.xz) = e62098c3537fd4d5be4d8219f9ab6e5305d49f350c659f669851181333944676c4f3c7b2075fef2b8c652c1617095e5462c88aa4aeb5851c1e18c4bd182f51bb From c86583e001d70c292d5768e31bb2039cc31997b1 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 6 Sep 2022 16:01:29 +0100 Subject: [PATCH 281/459] NVR Bump in order to trigger a rebuild for ELN. (#2124562) --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 8114044..0c158cc 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.81 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -488,6 +488,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Sep 06 2022 Nick Clifton - 10.81-2 +- NVR Bump in order to trigger a rebuild for ELN. (#2124562) + * Thu Aug 11 2022 Nick Clifton - 10.81-1 - Plugin: Fix top level configuration support for RiscV. From 689378de5212dcf07ff96a8c8f646449024f5dea Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 9 Sep 2022 13:47:09 +0100 Subject: [PATCH 282/459] Annocheck: Add a test for the inconsistent use of -Ofast. (#1248744) --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 0c158cc..3bce773 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.81 -Release: 2%{?dist} +Version: 10.82 +Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -488,6 +488,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Sep 09 2022 Nick Clifton - 10.82-1 +- Annocheck: Add a test for the inconsistent use of -Ofast. (#1248744) + * Tue Sep 06 2022 Nick Clifton - 10.81-2 - NVR Bump in order to trigger a rebuild for ELN. (#2124562) diff --git a/sources b/sources index 5b4476b..b36bb9c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.81.tar.xz) = e62098c3537fd4d5be4d8219f9ab6e5305d49f350c659f669851181333944676c4f3c7b2075fef2b8c652c1617095e5462c88aa4aeb5851c1e18c4bd182f51bb +SHA512 (annobin-10.82.tar.xz) = 5eb3e8a9e71358da25e4b05238d2a52bd6fdc3585b119a22fb59f9ddac45054a72e10d943e5e40ffd6758b6da55a7b09041388bd660e2eaf9c77150c66a23c66 From 0b1b4157b392888423d6655fa922cfd8717a6008 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 9 Sep 2022 14:51:52 +0100 Subject: [PATCH 283/459] Annocheck: Add a test for the inconsistent use of -Ofast. (#1248744) --- annobin.spec | 4 ++-- sources | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 3bce773..686b87c 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.82 +Version: 10.83 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -488,7 +488,7 @@ fi #--------------------------------------------------------------------------------- %changelog -* Fri Sep 09 2022 Nick Clifton - 10.82-1 +* Fri Sep 09 2022 Nick Clifton - 10.83-1 - Annocheck: Add a test for the inconsistent use of -Ofast. (#1248744) * Tue Sep 06 2022 Nick Clifton - 10.81-2 diff --git a/sources b/sources index b36bb9c..70a6cea 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.82.tar.xz) = 5eb3e8a9e71358da25e4b05238d2a52bd6fdc3585b119a22fb59f9ddac45054a72e10d943e5e40ffd6758b6da55a7b09041388bd660e2eaf9c77150c66a23c66 +SHA512 (annobin-10.83.tar.xz) = 45bdcd24f055aa016846bf12fad0e602e79ffd85b9fce2fce3175d2a1c2f941ce4e125c9bd13929a777bd47dea153e0dbe19fd23c9a122df318b0c126cab89bb From 867bb75b555eb410ad9da055f1d02d5bc7901ae4 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 20 Sep 2022 13:17:11 +0100 Subject: [PATCH 284/459] Clang Plugin: Fix for building with Clang-15. (#2125875) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 686b87c..5140619 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.83 +Version: 10.84 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -488,6 +488,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Sep 20 2022 Serge Guelton - 10.84-1 +- Clang Plugin: Fix for building with Clang-15. (#2125875) + * Fri Sep 09 2022 Nick Clifton - 10.83-1 - Annocheck: Add a test for the inconsistent use of -Ofast. (#1248744) diff --git a/sources b/sources index 70a6cea..1a165a4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.83.tar.xz) = 45bdcd24f055aa016846bf12fad0e602e79ffd85b9fce2fce3175d2a1c2f941ce4e125c9bd13929a777bd47dea153e0dbe19fd23c9a122df318b0c126cab89bb +SHA512 (annobin-10.84.tar.xz) = bb510bf7a66f648f869a710ed14303fa856cb061b2493a17bca24e40de18d3b52428e47910e005f90791ac26199883cf07e683299b92fb83a8f40afeab759952 From 157ed58dcec92db72bf6777bb71e5ed6d3d8698d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 22 Sep 2022 16:30:48 +0100 Subject: [PATCH 285/459] GCC Plugin: Record -ftrivial-auto-var-init and -fzero-call-used-regs. Annocheck: Add future tests for -ftrivial-auto-var-init and -fzero-call-used-regs. --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 5140619..9a7062a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.84 +Version: 10.85 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -488,6 +488,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Sep 22 2022 Serge Guelton - 10.85-1 +- GCC Plugin: Record -ftrivial-auto-var-init and -fzero-call-used-regs. +- Annocheck: Add future tests for -ftrivial-auto-var-init and -fzero-call-used-regs. + * Tue Sep 20 2022 Serge Guelton - 10.84-1 - Clang Plugin: Fix for building with Clang-15. (#2125875) diff --git a/sources b/sources index 1a165a4..5c328f3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.84.tar.xz) = bb510bf7a66f648f869a710ed14303fa856cb061b2493a17bca24e40de18d3b52428e47910e005f90791ac26199883cf07e683299b92fb83a8f40afeab759952 +SHA512 (annobin-10.85.tar.xz) = 79e490d9507cc39f3eae8a3d9b5dfda37501079c7201f95eae3b17976137160e2fb02ee80d9465fc6b4179c7233b0d574024d1c8870ed6914b8fe962a54b35b0 From b37411288938bea05d24f13f6885c4cdc883ea33 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 30 Sep 2022 15:35:19 +0100 Subject: [PATCH 286/459] Libannocheck: Add libannocheck_reinit(). --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 9a7062a..aebfd69 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.85 +Version: 10.86 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -488,6 +488,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Sep 30 2022 Serge Guelton - 10.86-1 +- Libannocheck: Add libannocheck_reinit(). + * Thu Sep 22 2022 Serge Guelton - 10.85-1 - GCC Plugin: Record -ftrivial-auto-var-init and -fzero-call-used-regs. - Annocheck: Add future tests for -ftrivial-auto-var-init and -fzero-call-used-regs. diff --git a/sources b/sources index 5c328f3..5113da1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.85.tar.xz) = 79e490d9507cc39f3eae8a3d9b5dfda37501079c7201f95eae3b17976137160e2fb02ee80d9465fc6b4179c7233b0d574024d1c8870ed6914b8fe962a54b35b0 +SHA512 (annobin-10.86.tar.xz) = 29784acf6d312bb98514c429d2f09cebc8d225c6b056558b3de86d38c3b774b8ae58b4c012e8e1cd7dc6704e0a381083c296ec31877371733cf3bbe94e7fe1a4 From 5967b158252d77c65b9e6e55d6bf44fa52a857fd Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 4 Oct 2022 14:05:30 +0100 Subject: [PATCH 287/459] libannocheck: Add pkgconfig file --- annobin.spec | 12 +++++++++--- sources | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/annobin.spec b/annobin.spec index aebfd69..ebcfcd7 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.86 +Version: 10.87 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -165,6 +165,8 @@ BuildRequires: elfutils-debuginfod-client-devel Requires: %{name}-docs = %{version}-%{release} Requires: cpio rpm +# The libannocheck library needs libiberty which is provided by binutils-devel +Requires: binutils-devel %description annocheck Installs the annocheck program which uses the notes generated by annobin to @@ -481,6 +483,7 @@ fi %files annocheck %{_includedir}/libannocheck.h %{_libdir}/libannocheck.* +%{_libdir}/pkgconfig/libannocheck.pc %{_bindir}/annocheck %{_mandir}/man1/annocheck.1* %endif @@ -488,10 +491,13 @@ fi #--------------------------------------------------------------------------------- %changelog -* Fri Sep 30 2022 Serge Guelton - 10.86-1 +* Fri Sep 30 2022 Nick Clifton - 10.87-1 +- Libannocheck: Add libannocheck.pc pkgconfig file. + +* Fri Sep 30 2022 Nick Clifton - 10.86-1 - Libannocheck: Add libannocheck_reinit(). -* Thu Sep 22 2022 Serge Guelton - 10.85-1 +* Thu Sep 22 2022 Nick Clifton - 10.85-1 - GCC Plugin: Record -ftrivial-auto-var-init and -fzero-call-used-regs. - Annocheck: Add future tests for -ftrivial-auto-var-init and -fzero-call-used-regs. diff --git a/sources b/sources index 5113da1..f984e52 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.86.tar.xz) = 29784acf6d312bb98514c429d2f09cebc8d225c6b056558b3de86d38c3b774b8ae58b4c012e8e1cd7dc6704e0a381083c296ec31877371733cf3bbe94e7fe1a4 +SHA512 (annobin-10.87.tar.xz) = 231bd9e108719261ea6cac52f9f035f586e3123d870973813f1c5ac43545ab61dc2c8a0bf048141c9587c5028accf238c39344165eab1b2a3db7d55380b31e65 From 47ea3304266b89efc0b55b9189a0817bb829d9ee Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 5 Oct 2022 11:37:21 +0100 Subject: [PATCH 288/459] Libannocheck: Move into separate sub-package. --- annobin.spec | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/annobin.spec b/annobin.spec index ebcfcd7..8a461b1 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.87 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -165,14 +165,29 @@ BuildRequires: elfutils-debuginfod-client-devel Requires: %{name}-docs = %{version}-%{release} Requires: cpio rpm -# The libannocheck library needs libiberty which is provided by binutils-devel -Requires: binutils-devel %description annocheck Installs the annocheck program which uses the notes generated by annobin to check that the specified files were compiled with the correct security hardening options. +%package libannocheck +Summary: A library for checking the security hardening status of binaries + +BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel make + +%if %{with debuginfod} +BuildRequires: elfutils-debuginfod-client-devel +%endif + +Requires: %{name}-docs = %{version}-%{release} +Requires: binutils-devel + +%description libannocheck +Installs the libannocheck library which uses the notes generated by the +annobin plugins to check that the specified files were compiled with the +correct security hardening options. + %endif #---------------------------------------------------------------------------- @@ -481,16 +496,21 @@ fi %if %{with annocheck} %files annocheck +%{_bindir}/annocheck +%{_mandir}/man1/annocheck.1* + +%files libannocheck %{_includedir}/libannocheck.h %{_libdir}/libannocheck.* %{_libdir}/pkgconfig/libannocheck.pc -%{_bindir}/annocheck -%{_mandir}/man1/annocheck.1* %endif #--------------------------------------------------------------------------------- %changelog +* Wed Oct 05 2022 Nick Clifton - 10.87-2 +- Libannocheck: Move into separate sub-package. + * Fri Sep 30 2022 Nick Clifton - 10.87-1 - Libannocheck: Add libannocheck.pc pkgconfig file. From 0062e138c986a270c44e4018aac4423f2b23f7e3 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 11 Oct 2022 12:24:53 +0100 Subject: [PATCH 289/459] Libannocheck: Remove 'Requires binutils-devel' from libannocheck.pc. --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 8a461b1..17ec602 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.87 -Release: 2%{?dist} +Version: 10.88 +Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -508,6 +508,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Oct 11 2022 Nick Clifton - 10.88-1 +- Libannocheck: Remove 'Requires binutils-devel' from libannocheck.pc. + * Wed Oct 05 2022 Nick Clifton - 10.87-2 - Libannocheck: Move into separate sub-package. diff --git a/sources b/sources index f984e52..cf94be5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.87.tar.xz) = 231bd9e108719261ea6cac52f9f035f586e3123d870973813f1c5ac43545ab61dc2c8a0bf048141c9587c5028accf238c39344165eab1b2a3db7d55380b31e65 +SHA512 (annobin-10.88.tar.xz) = 30fdedc624a138d95f48eca5957b74da9a1289eac7c2a513084162ab34369badae63e3fa31d45ed968c529415e968f51fef4b37a251d633a48160ebe53df2e7f From f85d35312bb29ae0f444430cdef0c8fd883e5b4d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 17 Oct 2022 14:45:49 +0100 Subject: [PATCH 290/459] Libannocheck: Replace libannocheck_version variable with LIBANNOCHECK_VERSION define. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 17ec602..dcd719c 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.88 +Version: 10.89 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -508,6 +508,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Oct 11 2022 Nick Clifton - 10.89-1 +- Libannocheck: Replace libannocheck_version variable with LIBANNOCHECK_VERSION define. + * Tue Oct 11 2022 Nick Clifton - 10.88-1 - Libannocheck: Remove 'Requires binutils-devel' from libannocheck.pc. diff --git a/sources b/sources index cf94be5..ef20e60 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.88.tar.xz) = 30fdedc624a138d95f48eca5957b74da9a1289eac7c2a513084162ab34369badae63e3fa31d45ed968c529415e968f51fef4b37a251d633a48160ebe53df2e7f +SHA512 (annobin-10.89.tar.xz) = 437a53f48ba49e055a96e71fe586a81335a8825c9e54d3fc76429d340f4c0308adc70aa600af7c11523abe6e261a70dc0bd1f2e89658f37fba19739574fd17a0 From 3ce07632bf1dc0b5b9804c0ed4adc8b0bd1f9cbf Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 19 Oct 2022 16:11:48 +0100 Subject: [PATCH 291/459] Libannocheck: Actually set result fields after tests are run. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index dcd719c..6484b90 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.89 +Version: 10.90 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -508,6 +508,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Oct 19 2022 Nick Clifton - 10.90-1 +- Libannocheck: Actually set result fields after tests are run. + * Tue Oct 11 2022 Nick Clifton - 10.89-1 - Libannocheck: Replace libannocheck_version variable with LIBANNOCHECK_VERSION define. diff --git a/sources b/sources index ef20e60..537ade8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.89.tar.xz) = 437a53f48ba49e055a96e71fe586a81335a8825c9e54d3fc76429d340f4c0308adc70aa600af7c11523abe6e261a70dc0bd1f2e89658f37fba19739574fd17a0 +SHA512 (annobin-10.90.tar.xz) = 42a7b438eccdf81792f4452d57af619a966f436f8745bfaf05dc47f11ee9d337ffd0a2ea93ff86828053a57029a6cb74e473d19d454ddc4c4d778014c75f6c5c From 48b426400284ebed64eaa0131ad17ba6c0903de4 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 21 Oct 2022 12:41:20 +0100 Subject: [PATCH 292/459] Tests: Fix future-test so that it properly handles the situation where the compiler does not support the new options. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 6484b90..6792460 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.90 +Version: 10.91 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -508,6 +508,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Oct 21 2022 Nick Clifton - 10.91-1 +- Tests: Fix future-test so that it properly handles the situation where the compiler does not support the new options. + * Wed Oct 19 2022 Nick Clifton - 10.90-1 - Libannocheck: Actually set result fields after tests are run. diff --git a/sources b/sources index 537ade8..ea31ce3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.90.tar.xz) = 42a7b438eccdf81792f4452d57af619a966f436f8745bfaf05dc47f11ee9d337ffd0a2ea93ff86828053a57029a6cb74e473d19d454ddc4c4d778014c75f6c5c +SHA512 (annobin-10.91.tar.xz) = d7c6e77f3e0385dccf1bb3fba4804675a679ec02a192768974ccad22350dcf6858232708189615ee3063da83b0372afca5b66d82282df49903cd4178913fa9d2 From e1f5135ff6fc7c3a3121746212b7090330ce8258 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 7 Nov 2022 18:00:03 +0000 Subject: [PATCH 293/459] Annocheck: Try harder not to run mutually exclusive tests. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 6792460..0ddc593 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.91 +Version: 10.92 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -508,6 +508,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Nov 07 2022 Nick Clifton - 10.92-1 +- Annocheck: Try harder not to run mutually exclusive tests. + * Fri Oct 21 2022 Nick Clifton - 10.91-1 - Tests: Fix future-test so that it properly handles the situation where the compiler does not support the new options. diff --git a/sources b/sources index ea31ce3..7cef5c7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.91.tar.xz) = d7c6e77f3e0385dccf1bb3fba4804675a679ec02a192768974ccad22350dcf6858232708189615ee3063da83b0372afca5b66d82282df49903cd4178913fa9d2 +SHA512 (annobin-10.92.tar.xz) = 302c6f088953ef1f0b9bf69f4fbc3c26bb60ffc5a03e19acf7584494b92184bac34c3bb8d7c43fe7915fb60efb806ed81f09b6567abd80ba6f0fedb267240ce0 From 5ed44f97c80eda2c9ed88f6185a44f52fd85809e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 23 Nov 2022 14:07:59 +0000 Subject: [PATCH 294/459] Annocheck: Provide more information when a test is skipped because the file being tested was not compiled. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 0ddc593..1ad07a2 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.92 +Version: 10.93 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -508,6 +508,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Nov 23 2022 Nick Clifton - 10.93-1 +- Annocheck: Provide more information when a test is skipped because the file being tested was not compiled. + * Mon Nov 07 2022 Nick Clifton - 10.92-1 - Annocheck: Try harder not to run mutually exclusive tests. diff --git a/sources b/sources index 7cef5c7..3a0cccf 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.92.tar.xz) = 302c6f088953ef1f0b9bf69f4fbc3c26bb60ffc5a03e19acf7584494b92184bac34c3bb8d7c43fe7915fb60efb806ed81f09b6567abd80ba6f0fedb267240ce0 +SHA512 (annobin-10.93.tar.xz) = e07ed578379372057574c5cb3737fd3105a032131761c9ca8b15be693109fa1953c78ff5302c5db22b5f48e41477ea3fb4ff10dc1d5d3d4f932838099bd48b8e From a943824136cf9b627e6627ccc87a6145d00d09cb Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 30 Nov 2022 10:02:01 +0000 Subject: [PATCH 295/459] Annocheck: Better detection of binaries which do not contain code. (#2144533) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 1ad07a2..5724e2b 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.93 +Version: 10.94 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -508,6 +508,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Nov 30 2022 Nick Clifton - 10.94-1 +- Annocheck: Better detection of binaries which do not contain code. (#2144533) + * Wed Nov 23 2022 Nick Clifton - 10.93-1 - Annocheck: Provide more information when a test is skipped because the file being tested was not compiled. diff --git a/sources b/sources index 3a0cccf..a22ea39 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.93.tar.xz) = e07ed578379372057574c5cb3737fd3105a032131761c9ca8b15be693109fa1953c78ff5302c5db22b5f48e41477ea3fb4ff10dc1d5d3d4f932838099bd48b8e +SHA512 (annobin-10.94.tar.xz) = da6cee60c5640ed30ee8c359e0f0450cafd41164a0136144350216403347de90e8ed417b370007f444eba202dcd45e13639c4defcf4e6da90337d4d65f3e2187 From 79c88cf6699b5a170f76d6d8702cea3f1d5d60e7 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 12 Dec 2022 13:36:29 +0000 Subject: [PATCH 296/459] Avoid using debug filename when parsing notes in a debuginfo file. (#2152280) --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 5724e2b..c9d6ff9 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,11 +1,12 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.94 +Version: 10.95 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com +# Web Page: https://sourceware.org/annobin/ # Watermark Protocol: https://fedoraproject.org/wiki/Toolchain/Watermark #--------------------------------------------------------------------------------- @@ -508,6 +509,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Dec 12 2022 Nick Clifton - 10.95-1 +- Annocheck: Avoid using debug filename when parsing notes in a debuginfo file. (#2152280) + * Wed Nov 30 2022 Nick Clifton - 10.94-1 - Annocheck: Better detection of binaries which do not contain code. (#2144533) diff --git a/sources b/sources index a22ea39..a3f4526 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.94.tar.xz) = da6cee60c5640ed30ee8c359e0f0450cafd41164a0136144350216403347de90e8ed417b370007f444eba202dcd45e13639c4defcf4e6da90337d4d65f3e2187 +SHA512 (annobin-10.95.tar.xz) = d37513de7b7cf83b0a1680fcf354ce2efbf21384f509339b572ea3cc332a718d5f6a2fbc2037cec25863dc369a201d00ff7e7aef1a05f1a5f6b94ef2c6c5e74e From c30926d7506bea0cd98bad05dc531dafb15d23c8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 15 Dec 2022 11:21:15 +0000 Subject: [PATCH 297/459] Annocheck: Improve heuristic used to detect binaries without code. (#2144533) --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index c9d6ff9..dcf8506 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.95 +Version: 10.96 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -509,6 +509,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Dec 15 2022 Nick Clifton - 10.96-1 +- Annocheck: Improve heuristic used to detect binaries without code. (#2144533) + * Mon Dec 12 2022 Nick Clifton - 10.95-1 - Annocheck: Avoid using debug filename when parsing notes in a debuginfo file. (#2152280) From 567f2c40ba0f502d0b6bfcc3609fee4a0174f695 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 15 Dec 2022 11:30:58 +0000 Subject: [PATCH 298/459] Add new sources --- sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources b/sources index a3f4526..bc474c0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.95.tar.xz) = d37513de7b7cf83b0a1680fcf354ce2efbf21384f509339b572ea3cc332a718d5f6a2fbc2037cec25863dc369a201d00ff7e7aef1a05f1a5f6b94ef2c6c5e74e +SHA512 (annobin-10.96.tar.xz) = b2629aa48004db79d9a69812df63bee8c2b1b0d5ab04140b253b94f4a607962693b43e0dc9d933b1a9b21163c64b2b20b836c22085bf844a3a72d763aeea9492 From 2f21168d4c1a5810c4b1bde06da6c06514300b2b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 16 Dec 2022 08:48:26 +0000 Subject: [PATCH 299/459] Annocheck: Add test for binaries built by cross compilers --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index dcf8506..6469110 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.96 +Version: 10.97 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -509,6 +509,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Dec 16 2022 Nick Clifton - 10.97-1 +- Annocheck: Add test for binaries built by cross compilers. + * Thu Dec 15 2022 Nick Clifton - 10.96-1 - Annocheck: Improve heuristic used to detect binaries without code. (#2144533) diff --git a/sources b/sources index bc474c0..2982247 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.96.tar.xz) = b2629aa48004db79d9a69812df63bee8c2b1b0d5ab04140b253b94f4a607962693b43e0dc9d933b1a9b21163c64b2b20b836c22085bf844a3a72d763aeea9492 +SHA512 (annobin-10.97.tar.xz) = 3d9f302fbf69c388c760e67c953464b36410d3ad10cd489e5eb15ec5c9d1272775a9a8ac6ded4a89807b5d651e765ae2782143113de878eb525c562250039a4e From 072153ed0c6aabd333a7b1c141ae33efabfe493a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 16 Dec 2022 11:29:52 +0000 Subject: [PATCH 300/459] GCC plugin: Fix building with gcc-13. --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 6469110..9763de8 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.97 +Version: 10.98 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -509,6 +509,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Dec 16 2022 Nick Clifton - 10.98-1 +- GCC plugin: Fix building with gcc-13. + * Fri Dec 16 2022 Nick Clifton - 10.97-1 - Annocheck: Add test for binaries built by cross compilers. From be2978da15a2b4252f4f7c3f555c405d43b571c7 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 16 Dec 2022 11:36:22 +0000 Subject: [PATCH 301/459] add new sources --- sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources b/sources index 2982247..f68617a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.97.tar.xz) = 3d9f302fbf69c388c760e67c953464b36410d3ad10cd489e5eb15ec5c9d1272775a9a8ac6ded4a89807b5d651e765ae2782143113de878eb525c562250039a4e +SHA512 (annobin-10.98.tar.xz) = 523651275dd99e45d1611acdb1196948de034354730d07d7d5fe1f8946647b296532bcef1a3f1d18b7759a7bdf1c33c7574b3073eb7682696527ab67da95caa2 From 5271f2bc79fa5a42fe0ca42bcac025dcde79d6fc Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 20 Dec 2022 11:00:37 +0000 Subject: [PATCH 302/459] Spec File: Fix building with plugin_rebuild enabled. --- annobin.spec | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/annobin.spec b/annobin.spec index 9763de8..a370f9a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.98 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -38,7 +38,7 @@ URL: https://sourceware.org/annobin/ # checking logic or when building on RHEL-7 or earlier. %global with_hard_gcc_version_requirement 1 -%bcond_with plugin_rebuild +%bcond_without plugin_rebuild # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. @@ -396,8 +396,12 @@ cp gcc-plugin/.libs/annobin.so.0.0.0 %{_tmppath}/tmp_annobin.so make -C gcc-plugin clean BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so" -# Disable the standard annobin plugin so that we do get conflicts. -OPTS="$(rpm --eval '%undefine _annotated_build %build_cflags %build_ldflags')" +%if 0%{?_annotated_build} == 0 +OPTS="$(rpm --eval '%build_cflags %build_ldflags')" +%else +# Disable the standard annobin plugin so that we do not get conflicts. +OPTS="$(rpm --eval '%undefine _annotated_build %%build_cflags %build_ldflags')" +%endif # If building on systems with an assembler that does not support the # .attach_to_group pseudo op (eg RHEL-7) then enable the next line. @@ -509,6 +513,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Dec 20 2022 Nick Clifton - 10.98-2 +- Spec File: Fix building with plugin_rebuild enabled. + * Fri Dec 16 2022 Nick Clifton - 10.98-1 - GCC plugin: Fix building with gcc-13. From c1204cc8ac0179fdafbff9ed983b160e0d371db9 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 20 Dec 2022 11:33:24 +0000 Subject: [PATCH 303/459] Spec File: Fix rebuilding plugins (better version). --- annobin.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index a370f9a..1d3c25c 100644 --- a/annobin.spec +++ b/annobin.spec @@ -400,7 +400,7 @@ BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so" OPTS="$(rpm --eval '%build_cflags %build_ldflags')" %else # Disable the standard annobin plugin so that we do not get conflicts. -OPTS="$(rpm --eval '%undefine _annotated_build %%build_cflags %build_ldflags')" +OPTS="$(rpm --undefine=_annotated_build --eval '%build_cflags %build_ldflags')" %endif # If building on systems with an assembler that does not support the @@ -513,7 +513,7 @@ fi #--------------------------------------------------------------------------------- %changelog -* Tue Dec 20 2022 Nick Clifton - 10.98-2 +* Tue Dec 20 2022 Nick Clifton - 10.98-3 - Spec File: Fix building with plugin_rebuild enabled. * Fri Dec 16 2022 Nick Clifton - 10.98-1 From 2bb2ec5d78dbc77c339d95d91cacdc50a267f53c Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 20 Dec 2022 13:11:50 +0000 Subject: [PATCH 304/459] NVR bump to allow rebuild --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 1d3c25c..f370402 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 10.98 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com From 8749815a7692c68ffdd32af3d933ae3d60697cc0 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 21 Dec 2022 16:30:12 +0000 Subject: [PATCH 305/459] Improve handling of tool versions --- annobin.spec | 14 +++++++++----- sources | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/annobin.spec b/annobin.spec index f370402..f01e281 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.98 -Release: 3%{?dist} +Version: 10.99 +Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -396,10 +396,11 @@ cp gcc-plugin/.libs/annobin.so.0.0.0 %{_tmppath}/tmp_annobin.so make -C gcc-plugin clean BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so" -%if 0%{?_annotated_build} == 0 -OPTS="$(rpm --eval '%build_cflags %build_ldflags')" +# Disable the standard annobin plugin so that we do get conflicts. +# Note - Fedora's rpm uses a different way of evaluating macros. +%if 0%{?fedora} == 0 +OPTS="$(rpm --eval '%undefine _annotated_build %build_cflags %build_ldflags')" %else -# Disable the standard annobin plugin so that we do not get conflicts. OPTS="$(rpm --undefine=_annotated_build --eval '%build_cflags %build_ldflags')" %endif @@ -513,6 +514,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Dec 21 2022 Nick Clifton - 10.99-1 +- Annocheck: Improve handling of tool versions. + * Tue Dec 20 2022 Nick Clifton - 10.98-3 - Spec File: Fix building with plugin_rebuild enabled. diff --git a/sources b/sources index f68617a..48309aa 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.98.tar.xz) = 523651275dd99e45d1611acdb1196948de034354730d07d7d5fe1f8946647b296532bcef1a3f1d18b7759a7bdf1c33c7574b3073eb7682696527ab67da95caa2 +SHA512 (annobin-10.99.tar.xz) = 601bd90aa4b6528f595efebf5b864aae5176e8e9d80c7f9cf77a1252b85a15c8440866a1f4881176f6bb50418c037e8924f32456533e90de473dae8abe92d53e From 2ec6c8b01cc00df0fc30153faa3d0e3a9723ab97 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 4 Jan 2023 11:56:35 +0000 Subject: [PATCH 306/459] annocheck: Add more special glibc files --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index f01e281..d7f6015 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 10.99 +Version: 11.01 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -514,6 +514,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jan 04 2023 Nick Clifton - 11.01-1 +- Annocheck: Add more special glibc filenames. + * Wed Dec 21 2022 Nick Clifton - 10.99-1 - Annocheck: Improve handling of tool versions. diff --git a/sources b/sources index 48309aa..495dc00 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-10.99.tar.xz) = 601bd90aa4b6528f595efebf5b864aae5176e8e9d80c7f9cf77a1252b85a15c8440866a1f4881176f6bb50418c037e8924f32456533e90de473dae8abe92d53e +SHA512 (annobin-11.01.tar.xz) = e89eb27a5c8c08aaafecee1e341da8e0531300b890a6ae85712812bba9233834fe61b25b9836f4a61b9a91ce6ef59fde84a684434a14135131ee774795a7fc2a From afa3de1ef8956e64ff48be693c2f31a3786d78f8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 4 Jan 2023 15:43:33 +0000 Subject: [PATCH 307/459] nnocheck: Do not assume that object files contain no code simply because they do not have an executable segment. (#2158182) --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index d7f6015..47a1170 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 11.01 +Version: 11.02 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -514,8 +514,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jan 04 2023 Nick Clifton - 11.02-1 +- Annocheck: Do not assume that object files contain no code simply because they do not have an executable segment. (#2158182) + * Wed Jan 04 2023 Nick Clifton - 11.01-1 -- Annocheck: Add more special glibc filenames. +- Annocheck: Add more special glibc filenames. (#2158100) * Wed Dec 21 2022 Nick Clifton - 10.99-1 - Annocheck: Improve handling of tool versions. diff --git a/sources b/sources index 495dc00..59592f6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-11.01.tar.xz) = e89eb27a5c8c08aaafecee1e341da8e0531300b890a6ae85712812bba9233834fe61b25b9836f4a61b9a91ce6ef59fde84a684434a14135131ee774795a7fc2a +SHA512 (annobin-11.02.tar.xz) = 18230eebd3e7dba3afbedec22c39daa0dd60f4ab0d0f558b15cbe5cfa078a7a67236553dce85ec04df98735e71b65a24be531f748a5f3d9e95b84c756b85cc06 From 4ff4a783cb550253806daa61d087e553184f4bc3 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 6 Jan 2023 09:51:48 +0000 Subject: [PATCH 308/459] Annocheck: Fix memory leaks --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 47a1170..99db5d0 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 11.02 +Version: 11.03 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -514,6 +514,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Jan 06 2023 Nick Clifton - 11.03-1 +- Annocheck: Fix memory leaks. + * Wed Jan 04 2023 Nick Clifton - 11.02-1 - Annocheck: Do not assume that object files contain no code simply because they do not have an executable segment. (#2158182) diff --git a/sources b/sources index 59592f6..547464f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-11.02.tar.xz) = 18230eebd3e7dba3afbedec22c39daa0dd60f4ab0d0f558b15cbe5cfa078a7a67236553dce85ec04df98735e71b65a24be531f748a5f3d9e95b84c756b85cc06 +SHA512 (annobin-11.03.tar.xz) = 1044ee998247759e40a6db848dcfe87d13742c3a58253968c02d5a818e4fda13341ca6aea816d55179c33b432a9fc9f0924c486cc268ee1cfa497b9e255a65ef From ba8d65fa5bc53bd410fd0f7ed76545e96579130f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 6 Jan 2023 13:50:48 +0000 Subject: [PATCH 309/459] Annocheck: Add crti.o and crtn.o to the list of known glibc special files. (#2158740) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 99db5d0..6610397 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 11.03 +Version: 11.04 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -514,6 +514,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Jan 06 2023 Nick Clifton - 11.04-1 +- Annocheck: Add crti.o and crtn.o to the list of known glibc special files. (#2158740) + * Fri Jan 06 2023 Nick Clifton - 11.03-1 - Annocheck: Fix memory leaks. diff --git a/sources b/sources index 547464f..aad349a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-11.03.tar.xz) = 1044ee998247759e40a6db848dcfe87d13742c3a58253968c02d5a818e4fda13341ca6aea816d55179c33b432a9fc9f0924c486cc268ee1cfa497b9e255a65ef +SHA512 (annobin-11.04.tar.xz) = 8b0b1f8a89b44a7191de414e161b787049aaff184c1aa40e515a27e765b96cee0dfd2120b6b645a9a82c385fee527772a757bb1d4f77495fbc96e4c77522eb49 From 357f81a176a51450e6038b02fcdfb02ee031b1bc Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 9 Jan 2023 15:03:04 +0000 Subject: [PATCH 310/459] Annocheck: Fix handling of empty files. (#2159292) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 6610397..2f0ac78 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 11.04 +Version: 11.05 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -514,6 +514,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Jan 09 2023 Nick Clifton - 11.05-1 +- Annocheck: Fix handling of empty files. (#2159292) + * Fri Jan 06 2023 Nick Clifton - 11.04-1 - Annocheck: Add crti.o and crtn.o to the list of known glibc special files. (#2158740) diff --git a/sources b/sources index aad349a..a0870d5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-11.04.tar.xz) = 8b0b1f8a89b44a7191de414e161b787049aaff184c1aa40e515a27e765b96cee0dfd2120b6b645a9a82c385fee527772a757bb1d4f77495fbc96e4c77522eb49 +SHA512 (annobin-11.05.tar.xz) = 1c533ffb525c0fd0e1faa6c471d8a7a029fe6dd1887dec275e7ccea5b28b5bb0194bcb11b3c7306d332e077fd15a24e784ca96336c1886dd07bfe9c9f9e5fb52 From 886835160dcccbf44e6544b267a858f80a9fad71 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 13 Jan 2023 16:17:24 +0000 Subject: [PATCH 311/459] Annocheck: Fix handling of file built by multiple versions of gcc. (#2160700) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 2f0ac78..8c8eea5 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 11.05 +Version: 11.06 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -514,6 +514,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Jan 13 2023 Nick Clifton - 11.06-1 +- Annocheck: Fix handling of file built by multiple versions of gcc. (#2160700) + * Mon Jan 09 2023 Nick Clifton - 11.05-1 - Annocheck: Fix handling of empty files. (#2159292) diff --git a/sources b/sources index a0870d5..b52267b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-11.05.tar.xz) = 1c533ffb525c0fd0e1faa6c471d8a7a029fe6dd1887dec275e7ccea5b28b5bb0194bcb11b3c7306d332e077fd15a24e784ca96336c1886dd07bfe9c9f9e5fb52 +SHA512 (annobin-11.06.tar.xz) = 0a1a8e02a4381229d788b05fb6819e6e78306e51383c5128b0f8796ab6b5cee6d8aa2e60dab87c109af64dcf788a6a129fe431d60016f1e7125207a6c1d8af92 From 4cdb52a0c258f1336a509178cbdf744721cf7fee Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 16 Jan 2023 13:06:48 +0100 Subject: [PATCH 312/459] Rebuilt against GCC 13. --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 8c8eea5..e567647 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 11.06 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -514,6 +514,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Mon Jan 16 2023 Jakub Jelinek - 11.06-2 +- Rebuilt against GCC 13. + * Fri Jan 13 2023 Nick Clifton - 11.06-1 - Annocheck: Fix handling of file built by multiple versions of gcc. (#2160700) From d5c3f3f99c5635e9ba58b7359d9a2c0afe2bd85d Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 18 Jan 2023 21:45:12 +0000 Subject: [PATCH 313/459] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index e567647..41de040 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 11.06 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -514,6 +514,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jan 18 2023 Fedora Release Engineering - 11.06-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Mon Jan 16 2023 Jakub Jelinek - 11.06-2 - Rebuilt against GCC 13. From 0dd004a8d87ecd97ef7c6edd399ee49736cee345 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 20 Jan 2023 16:38:35 +0000 Subject: [PATCH 314/459] Libannocheck: Fix bug causing infinite looping when running tests. --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 41de040..cfe7733 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 11.06 -Release: 3%{?dist} +Version: 11.07 +Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -514,6 +514,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Fri Jan 20 2023 Nick Clifton - 11.07-1 +- Libannocheck: Fix bug causing infinite looping when running tests. + * Wed Jan 18 2023 Fedora Release Engineering - 11.06-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild diff --git a/sources b/sources index b52267b..8421e41 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-11.06.tar.xz) = 0a1a8e02a4381229d788b05fb6819e6e78306e51383c5128b0f8796ab6b5cee6d8aa2e60dab87c109af64dcf788a6a129fe431d60016f1e7125207a6c1d8af92 +SHA512 (annobin-11.07.tar.xz) = 4875f4798c2303cf21e55dbd632acfc5c6e77f4769546b5a465be6777f0081317dc99a91b3da84e384724910d5e03a333b1237e248ce59bf85fa302ba7634f3a From 250db92462e43571e433383583613a2ac3f75c18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Kadl=C4=8D=C3=ADk?= Date: Tue, 24 Jan 2023 15:05:19 +0100 Subject: [PATCH 315/459] Adapt to TMT 1.19+ The Fedora testing farm was updated to TMT 1.19 in December. "how: beakerlib" in our test metadata is no longer supported, this commit fixes it. --- plans/ci.fmf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plans/ci.fmf b/plans/ci.fmf index 1ad2c12..85710d6 100644 --- a/plans/ci.fmf +++ b/plans/ci.fmf @@ -3,4 +3,4 @@ discover: how: fmf directory: tests execute: - how: beakerlib + how: tmt From bc0466b88d24c1118209f3835d4acf35b3de635a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Kadl=C4=8D=C3=ADk?= Date: Tue, 24 Jan 2023 15:09:53 +0100 Subject: [PATCH 316/459] Make requirements in gating tests more explicit Make requirements stricter (required packages instead of recommended packages) and remove requirements that are no longer needed. The previous requirements caused failures in manual testing and possibly some gating failures as well. --- .../main.fmf | 4 +++- tests/Regression/identify/main.fmf | 11 ++--------- .../Regression/lto-preprocessor-options/main.fmf | 7 ++++--- .../main.fmf | 4 ++-- .../processing-params-in-reverse-order/main.fmf | 4 ++-- .../main.fmf | 5 +++-- tests/Regression/testsuite/main.fmf | 16 ++++++---------- .../main.fmf | 5 +++-- tests/Sanity/smoke/main.fmf | 6 +++--- 9 files changed, 28 insertions(+), 34 deletions(-) diff --git a/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/main.fmf b/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/main.fmf index 435d7ff..e0cbc5d 100644 --- a/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/main.fmf +++ b/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/main.fmf @@ -8,9 +8,11 @@ component: - annobin test: ./runtest.sh framework: beakerlib -recommend: +require: - annobin-annocheck +- annobin-plugin-gcc - gcc +- redhat-rpm-config duration: 48h extra-summary: /tools/annobin/Regression/annobin-fails-to-skip-endbr64-entry-point-check extra-task: /tools/annobin/Regression/annobin-fails-to-skip-endbr64-entry-point-check diff --git a/tests/Regression/identify/main.fmf b/tests/Regression/identify/main.fmf index a10e87d..674544e 100644 --- a/tests/Regression/identify/main.fmf +++ b/tests/Regression/identify/main.fmf @@ -7,15 +7,8 @@ component: test: ./runtest.sh framework: beakerlib recommend: -- annobin -- devtoolset-10 -- devtoolset-10-annocheck -- devtoolset-11 -- devtoolset-11-annocheck -- gcc-toolset-10 -- gcc-toolset-10-annocheck -- gcc-toolset-11 -- gcc-toolset-11-annocheck +- annobin-plugin-gcc +- annobin-annocheck duration: 48h extra-summary: /tools/annobin/Regression/identify extra-task: /tools/annobin/Regression/identify diff --git a/tests/Regression/lto-preprocessor-options/main.fmf b/tests/Regression/lto-preprocessor-options/main.fmf index 03e6b88..2a3e56a 100644 --- a/tests/Regression/lto-preprocessor-options/main.fmf +++ b/tests/Regression/lto-preprocessor-options/main.fmf @@ -6,11 +6,12 @@ component: - annobin test: ./runtest.sh framework: beakerlib -recommend: -- gcc -- annobin +require: +- annobin-plugin-gcc - annobin-annocheck - redhat-rpm-config +- gcc +- redhat-rpm-config duration: 48h extra-summary: /tools/annobin/Regression/lto-preprocessor-options extra-task: /tools/annobin/Regression/lto-preprocessor-options diff --git a/tests/Regression/missing-check-for-x86-property-note-content/main.fmf b/tests/Regression/missing-check-for-x86-property-note-content/main.fmf index a7afb11..b4ab7fd 100644 --- a/tests/Regression/missing-check-for-x86-property-note-content/main.fmf +++ b/tests/Regression/missing-check-for-x86-property-note-content/main.fmf @@ -7,8 +7,8 @@ component: - annobin test: ./runtest.sh framework: beakerlib -recommend: -- annobin +require: +- annobin-annocheck duration: 48h link: - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1991931 diff --git a/tests/Regression/processing-params-in-reverse-order/main.fmf b/tests/Regression/processing-params-in-reverse-order/main.fmf index 19b497d..99adc08 100644 --- a/tests/Regression/processing-params-in-reverse-order/main.fmf +++ b/tests/Regression/processing-params-in-reverse-order/main.fmf @@ -7,8 +7,8 @@ component: - annobin test: ./runtest.sh framework: beakerlib -recommend: -- annobin +require: +- annobin-annocheck duration: 48h link: - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1988714 diff --git a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/main.fmf b/tests/Regression/segv-when-processing-multiple-params-incl-symlink/main.fmf index bd8362f..07395fa 100644 --- a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/main.fmf +++ b/tests/Regression/segv-when-processing-multiple-params-incl-symlink/main.fmf @@ -7,8 +7,9 @@ component: - annobin test: ./runtest.sh framework: beakerlib -recommend: -- annobin +require: +- annobin-plugin-gcc +- annobin-annocheck - libstdc++ duration: 48h link: diff --git a/tests/Regression/testsuite/main.fmf b/tests/Regression/testsuite/main.fmf index 7352f78..f117f62 100644 --- a/tests/Regression/testsuite/main.fmf +++ b/tests/Regression/testsuite/main.fmf @@ -6,23 +6,19 @@ component: - annobin test: ./runtest.sh framework: beakerlib -recommend: -- annobin +require: +- annobin-plugin-gcc - annobin-annocheck - binutils-devel -- gcc -- gcc-c++ +- bzip2-devel +- dnf - elfutils - elfutils-devel +- gcc-c++ +- gcc-plugin-devel - make - rpm-build - rpm-devel -- gcc-plugin-devel -- yum -- dnf -- yum-utils -- bzip2-devel -- rpm-build duration: 48h extra-summary: /tools/annobin/Regression/testsuite extra-task: /tools/annobin/Regression/testsuite diff --git a/tests/Sanity/annocheck-silently-ignores-any-file-parameter/main.fmf b/tests/Sanity/annocheck-silently-ignores-any-file-parameter/main.fmf index 9aea593..9ece622 100644 --- a/tests/Sanity/annocheck-silently-ignores-any-file-parameter/main.fmf +++ b/tests/Sanity/annocheck-silently-ignores-any-file-parameter/main.fmf @@ -7,8 +7,9 @@ component: - annobin test: ./runtest.sh framework: beakerlib -recommend: -- annobin +require: +- annobin-plugin-gcc +- annobin-annocheck duration: 48h link: - relates: https://bugzilla.redhat.com/show_bug.cgi?id=1973981 diff --git a/tests/Sanity/smoke/main.fmf b/tests/Sanity/smoke/main.fmf index 49d2862..fca8ae4 100644 --- a/tests/Sanity/smoke/main.fmf +++ b/tests/Sanity/smoke/main.fmf @@ -6,11 +6,11 @@ component: - annobin test: ./runtest.sh framework: beakerlib -recommend: +require: +- annobin-plugin-gcc +- annobin-annocheck - man-db - gcc -- annobin -- annobin-annocheck duration: 48h extra-summary: /tools/annobin/Sanity/smoke extra-task: /tools/annobin/Sanity/smoke From f45bd71eb38d48872e9706c6eafeaa89a23e95e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Kadl=C4=8D=C3=ADk?= Date: Tue, 24 Jan 2023 15:15:39 +0100 Subject: [PATCH 317/459] Adapt test scripts to newest annobin versions --- .../runtest.sh | 5 +---- tests/Regression/testsuite/runtest.sh | 2 +- .../runtest.sh | 7 ++++--- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/runtest.sh b/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/runtest.sh index 41312a4..91fa544 100755 --- a/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/runtest.sh +++ b/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/runtest.sh @@ -28,13 +28,10 @@ # Include Beaker environment . /usr/share/beakerlib/beakerlib.sh || exit 1 -PACKAGE="annobin" - rlJournalStart rlPhaseStartSetup rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" rlRun "pushd $TmpDir" - rlRun "rpm -q annobin-annocheck gcc" rlPhaseEnd rlPhaseStartTest @@ -43,7 +40,7 @@ rlJournalStart rlRun "gcc `rpm --eval %build_cflags` -fpic -c f1.c" rlRun "gcc `rpm --eval %build_cflags` -fpic -c f2.c" rlRun "gcc `rpm --eval %build_ldflags` -shared f1.o f2.o" - rlRun "annocheck -v a.out" + rlRun "annocheck -v --skip-lto a.out" rlPhaseEnd rlPhaseStartCleanup diff --git a/tests/Regression/testsuite/runtest.sh b/tests/Regression/testsuite/runtest.sh index c8016ad..1507c45 100755 --- a/tests/Regression/testsuite/runtest.sh +++ b/tests/Regression/testsuite/runtest.sh @@ -62,7 +62,7 @@ rlJournalStart rlRun "pushd $TMP" rlFetchSrcForInstalled $PACKAGE - rlRun "yum-builddep -y *src.rpm" + rlRun "dnf builddep -y *src.rpm" rlRun "rpm --define='_topdir $TMP' -Uvh *src.rpm" rlRun "rpmbuild --define='_topdir $TMP' -bc SPECS/annobin.spec" rlPhaseEnd diff --git a/tests/Sanity/annocheck-silently-ignores-any-file-parameter/runtest.sh b/tests/Sanity/annocheck-silently-ignores-any-file-parameter/runtest.sh index ca991af..bb1a436 100755 --- a/tests/Sanity/annocheck-silently-ignores-any-file-parameter/runtest.sh +++ b/tests/Sanity/annocheck-silently-ignores-any-file-parameter/runtest.sh @@ -28,8 +28,6 @@ # Include Beaker environment . /usr/share/beakerlib/beakerlib.sh || exit 1 -PACKAGE="annobin" - rlJournalStart rlPhaseStartSetup rlRun "TMP=$(mktemp -d)" @@ -41,7 +39,10 @@ rlJournalStart samplecnt=$(ls *.sample | wc -l) testcnt=$(ls *.sample | \ xargs annocheck |& \ - fgrep '.sample: is not an ELF format file' | wc -l) + grep -F \ + -e '.sample: unable to read magic number' \ + -e '.sample: is not an ELF format file' \ + | wc -l) rlRun "test $samplecnt -eq 300" rlRun "test $testcnt -eq 300" rlPhaseEnd From fff7a227998e049f55b626915516d48c73b804c7 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 25 Jan 2023 12:43:46 +0000 Subject: [PATCH 318/459] LLVM & Clang Plugins: Build with branch protection on AArch64. (#2164364) Fix gating tests. --- annobin.spec | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index cfe7733..925c8a9 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 11.07 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -372,11 +372,19 @@ export CFLAGS="$CFLAGS -DAARCH64_BRANCH_PROTECTION_SUPPORTED=1" export CFLAGS="$CFLAGS $RPM_OPT_FLAGS %build_cflags" export LDFLAGS="$LDFLAGS %build_ldflags" +# Set target-specific security options to be used when building the +# Clang and LLVM plugins. FIXME: There should be a better way to do +# this. %ifarch %{ix86} x86_64 -# FIXME: There should be a better way to do this. export CLANG_TARGET_OPTIONS="-fcf-protection" %endif +%ifarch aarch64 +%if 0%{?fedora} != 0 +export CLANG_TARGET_OPTIONS="-mbranch-protection=standard" +%endif +%endif + %ifarch ppc ppc64 ppc64le # FIXME: This is a workaround for a problem with the Clang C++ headers. It should not be needed. export CLANG_TARGET_OPTIONS="-mabi=ibmlongdouble" @@ -514,6 +522,10 @@ fi #--------------------------------------------------------------------------------- %changelog +* Wed Jan 25 2023 Nick Clifton - 11.07-2 +- LLVM & Clang Plugins: Build with branch protection on AArch64. (#2164364) +- Fix gating tests. + * Fri Jan 20 2023 Nick Clifton - 11.07-1 - Libannocheck: Fix bug causing infinite looping when running tests. From b9a468338714b32b7f6a04f4645d2eeaa5b13a33 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 31 Jan 2023 08:22:35 +0000 Subject: [PATCH 319/459] Annocheck: Fix atexit test. Fix recording of version numbers. (#2165528) --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 925c8a9..e32c324 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 11.07 -Release: 2%{?dist} +Version: 11.08 +Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -522,6 +522,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Tue Jan 31 2023 Nick Clifton - 11.08-1 +- Annocheck: Fix atexit test. Fix recording of version numbers. (#2165528) + * Wed Jan 25 2023 Nick Clifton - 11.07-2 - LLVM & Clang Plugins: Build with branch protection on AArch64. (#2164364) - Fix gating tests. diff --git a/sources b/sources index 8421e41..98d9553 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-11.07.tar.xz) = 4875f4798c2303cf21e55dbd632acfc5c6e77f4769546b5a465be6777f0081317dc99a91b3da84e384724910d5e03a333b1237e248ce59bf85fa302ba7634f3a +SHA512 (annobin-11.08.tar.xz) = 233e0314648b3577bd3e8f977b7da523e3c1770664dd0ade10e97fa251aa00fe1e02fb3104973bf5f6a30b1acb21772a3d9ba05c89bf1edf2feb665f88000fee From f2ce5118865af024674b74281c6b1f2bbd4505cf Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 2 Feb 2023 15:25:05 +0000 Subject: [PATCH 320/459] Libannocheck: Fix thinko in debugging code. - Annocheck: Fix LTO test. - Notes: Display notes held in separate dbeuginfo files. --- annobin.spec | 7 ++++++- sources | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index e32c324..bda9689 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 11.08 +Version: 11.09 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -522,6 +522,11 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Feb 02 2023 Nick Clifton - 11.09-1 +- Libannocheck: Fix thinko in debugging code. +- Annocheck: Fix LTO test. +- Notes: Display notes held in separate dbeuginfo files. + * Tue Jan 31 2023 Nick Clifton - 11.08-1 - Annocheck: Fix atexit test. Fix recording of version numbers. (#2165528) diff --git a/sources b/sources index 98d9553..91f7d51 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-11.08.tar.xz) = 233e0314648b3577bd3e8f977b7da523e3c1770664dd0ade10e97fa251aa00fe1e02fb3104973bf5f6a30b1acb21772a3d9ba05c89bf1edf2feb665f88000fee +SHA512 (annobin-11.09.tar.xz) = 41bf99d07110630f5b8773eb1e83d3d7c1355dae531d66f66721d45b06d9e0da01b447e5279480d62516303fdce6b9d0f1c8e8f6d541c42a590ce97b6c79f996 From 1465b9cc20404fa1acd75289f77d8860e1fb62f7 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 23 Feb 2023 13:44:06 +0000 Subject: [PATCH 321/459] Annocheck: Add code to handle glibc functions built without LTO. --- annobin.spec | 25 +++++++++++++++---------- sources | 2 +- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/annobin.spec b/annobin.spec index bda9689..38ece46 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 11.09 +Version: 11.10 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -139,17 +139,15 @@ Provides the documentation files and example shell scripts for use with annobin. %package tests Summary: Test scripts and binaries for checking the behaviour and output of the annobin plugin Requires: %{name}-docs = %{version}-%{release} +BuildRequires: make sharutils +%if %{with debuginfod} +BuildRequires: elfutils-debuginfod-client-devel +%endif %description tests Provides a means to test the generation of annotated binaries and the parsing of the resulting files. -BuildRequires: make - -%if %{with debuginfod} -BuildRequires: elfutils-debuginfod-client-devel -%endif - %endif #---------------------------------------------------------------------------- @@ -464,12 +462,16 @@ rm -f %{buildroot}%{_infodir}/dir %if %{with tests} %check -# Change the following line to "make check || :" on RHEL7 or if you need to see the -# test suite logs in order to diagnose a test failure. -make check +# The first "make check" is run with "|| :" so that we can capture any logs +# from failed tests. The second "make check" is there so that the build +# will fail if any of the tests fail. +make check || : if [ -f tests/test-suite.log ]; then cat tests/test-suite.log fi +# If necessary use uuencode to preserve test binaries here. For example: +# uuencode tests/tmp_atexit/atexit.strip atexit.strip +make check %endif #--------------------------------------------------------------------------------- @@ -522,6 +524,9 @@ fi #--------------------------------------------------------------------------------- %changelog +* Thu Feb 23 2023 Nick Clifton - 11.10-1 +- Annocheck: Add code to handle glibc functions built without LTO. + * Thu Feb 02 2023 Nick Clifton - 11.09-1 - Libannocheck: Fix thinko in debugging code. - Annocheck: Fix LTO test. diff --git a/sources b/sources index 91f7d51..19dbec4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-11.09.tar.xz) = 41bf99d07110630f5b8773eb1e83d3d7c1355dae531d66f66721d45b06d9e0da01b447e5279480d62516303fdce6b9d0f1c8e8f6d541c42a590ce97b6c79f996 +SHA512 (annobin-11.10.tar.xz) = 3f860f22d6386b1fb08ec38e9cfeda2e83ebf3e8dc80923a126a079081eb2c8578de0f81fa38ff23feea1455008caf2c4e9679e2f5c4998aeb67912d90ae6521 From 85d843af125e97421c271faa2b727436faa1d6c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Kadl=C4=8D=C3=ADk?= Date: Mon, 27 Feb 2023 09:17:24 +0100 Subject: [PATCH 322/459] Remove an obsoleted option from the CI plan TMT has obsoleted the "directory" option. We do not need to replace it with anything, the discovery phase works still the same way. --- plans/ci.fmf | 1 - 1 file changed, 1 deletion(-) diff --git a/plans/ci.fmf b/plans/ci.fmf index 85710d6..3fd3ab7 100644 --- a/plans/ci.fmf +++ b/plans/ci.fmf @@ -1,6 +1,5 @@ summary: CI Gating Plan discover: how: fmf - directory: tests execute: how: tmt From 8c78c3f165d78405d8f7cc03dcc5ea6a1ceb92e0 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 28 Feb 2023 10:52:07 +0000 Subject: [PATCH 323/459] GCC Plugin: Do not run if other plugins are active. (#2162746) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 38ece46..6f3e413 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 11.10 +Version: 11.11 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Feb 28 2023 Nick Clifton - 11.11-1 +- GCC Plugin: Do not run if other plugins are active. (#2162746) + * Thu Feb 23 2023 Nick Clifton - 11.10-1 - Annocheck: Add code to handle glibc functions built without LTO. diff --git a/sources b/sources index 19dbec4..449584d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-11.10.tar.xz) = 3f860f22d6386b1fb08ec38e9cfeda2e83ebf3e8dc80923a126a079081eb2c8578de0f81fa38ff23feea1455008caf2c4e9679e2f5c4998aeb67912d90ae6521 +SHA512 (annobin-11.11.tar.xz) = 5f62a64befe79960ef78171ba583f8417ec39bf6b8f1dfddaa495764a557752db21a4efa8b292bda8fe13afc186065a5dcf6d29f46e710fb3e89d23a0bb267c3 From 24835ca037bfe627b8d5855452d0533ae806353a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 3 Mar 2023 16:06:25 +0000 Subject: [PATCH 324/459] Another special case for glibc --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 6f3e413..3bb9bba 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 11.11 +Version: 11.12 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Mar 03 2023 Nick Clifton - 11.12-1 +- Annocheck: Add code to handle another glibc function built without LTO. + * Tue Feb 28 2023 Nick Clifton - 11.11-1 - GCC Plugin: Do not run if other plugins are active. (#2162746) diff --git a/sources b/sources index 449584d..a12357b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-11.11.tar.xz) = 5f62a64befe79960ef78171ba583f8417ec39bf6b8f1dfddaa495764a557752db21a4efa8b292bda8fe13afc186065a5dcf6d29f46e710fb3e89d23a0bb267c3 +SHA512 (annobin-11.12.tar.xz) = f671f658b14a60f3dfd02afab8e358e4685d7d1c051ce79beadade782c425fd221c4ba998bb0543fd2bfbdba184668eb081f11439161f19f76e811faad83878f From bbc496884e270c65e757b8e16e94fcb6828cc6e2 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 8 Mar 2023 10:07:57 +0000 Subject: [PATCH 325/459] Add more exceptions for glibc functions --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 3bb9bba..af896d3 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 11.12 +Version: 11.13 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Mar 08 2023 Nick Clifton - 11.13-1 +- Annocheck: Add even more code to handle another glibc function built without LTO. + * Fri Mar 03 2023 Nick Clifton - 11.12-1 - Annocheck: Add code to handle another glibc function built without LTO. diff --git a/sources b/sources index a12357b..507d234 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-11.12.tar.xz) = f671f658b14a60f3dfd02afab8e358e4685d7d1c051ce79beadade782c425fd221c4ba998bb0543fd2bfbdba184668eb081f11439161f19f76e811faad83878f +SHA512 (annobin-11.13.tar.xz) = 7032edba07f89321ec0bda57e887b6b93944225da843bf6ccfb81281dec7fe1544f635fed3ad6c1439a33e9710504bee99222e89ef19325517ef40ce6af6479f From 71f22a9e68f21a05666908c68942283c770bc556 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 13 Mar 2023 16:10:02 +0000 Subject: [PATCH 326/459] Annocheck: Update message for LTO tests. (#2177140) --- annobin.spec | 3 +++ sources | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index af896d3..46aaf14 100644 --- a/annobin.spec +++ b/annobin.spec @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Mar 13 2023 Nick Clifton - 11.14-1 +- Annocheck: Update message for LTO tests. (#2177140) + * Wed Mar 08 2023 Nick Clifton - 11.13-1 - Annocheck: Add even more code to handle another glibc function built without LTO. diff --git a/sources b/sources index 507d234..5173186 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-11.13.tar.xz) = 7032edba07f89321ec0bda57e887b6b93944225da843bf6ccfb81281dec7fe1544f635fed3ad6c1439a33e9710504bee99222e89ef19325517ef40ce6af6479f +SHA512 (annobin-11.14.tar.xz) = 261b24a60a0ec8259976e0512775ec762ec4774e5c4294f5c06cc78c06322ceb4cc2a4949b5441425214a0312aedca9d77499c9a88c6e4ab7274cab9dd3fcb76 From 07c77149e9d206a0a02e39da3ecbb2bcfa2ebc0a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 13 Mar 2023 16:10:45 +0000 Subject: [PATCH 327/459] Fix NVR --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 46aaf14..ed4dca6 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 11.13 +Version: 11.14 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ From 4cb3354e1307349bf7622207f6d61010437d51e9 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Tue, 14 Mar 2023 13:40:26 -0400 Subject: [PATCH 328/459] Fix RHEL build RHEL 7+ have rpm versions which support the --undefine parameter. --- annobin.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index ed4dca6..752bbc4 100644 --- a/annobin.spec +++ b/annobin.spec @@ -403,8 +403,8 @@ make -C gcc-plugin clean BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so" # Disable the standard annobin plugin so that we do get conflicts. -# Note - Fedora's rpm uses a different way of evaluating macros. -%if 0%{?fedora} == 0 +# Note - rpm-4.10 uses a different way of evaluating macros. +%if 0%{?rhel} && 0%{?rhel} < 7 OPTS="$(rpm --eval '%undefine _annotated_build %build_cflags %build_ldflags')" %else OPTS="$(rpm --undefine=_annotated_build --eval '%build_cflags %build_ldflags')" From 52cd4f89797a611a2a90e4585b97dd6dcad125fe Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 29 Mar 2023 09:52:27 +0100 Subject: [PATCH 329/459] Annocheck: Add a few more glibc exceptions. Protocol: Update to version 4 - add string notes. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 752bbc4..84a3d0d 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 11.14 +Version: 12.00 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Mar 28 2023 Nick Clifton - 12.00-1 +- Protocol Version 4: String format notes. + * Mon Mar 13 2023 Nick Clifton - 11.14-1 - Annocheck: Update message for LTO tests. (#2177140) diff --git a/sources b/sources index 5173186..9038978 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-11.14.tar.xz) = 261b24a60a0ec8259976e0512775ec762ec4774e5c4294f5c06cc78c06322ceb4cc2a4949b5441425214a0312aedca9d77499c9a88c6e4ab7274cab9dd3fcb76 +SHA512 (annobin-12.00.tar.xz) = a1e752ec3a3668d1051674127b3ede993f7e5dce5c55b269d16fffe33de6dda6a31a7a18669397abb16c2245a062dee43c957f56cc77f24117d4d8b669b73785 From 6f6742913217374d59240ebdcce8fe1b64f1cc3c Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 30 Mar 2023 12:27:52 +0100 Subject: [PATCH 330/459] gcc plugin: Keep ELF notes at protocol version 3. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 84a3d0d..ac57a1f 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.00 +Version: 12.01 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Mar 30 2023 Nick Clifton - 12.01-1 +- gcc plugin: Keep ELF notes at protocol version 3. + * Tue Mar 28 2023 Nick Clifton - 12.00-1 - Protocol Version 4: String format notes. diff --git a/sources b/sources index 9038978..812ed19 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.00.tar.xz) = a1e752ec3a3668d1051674127b3ede993f7e5dce5c55b269d16fffe33de6dda6a31a7a18669397abb16c2245a062dee43c957f56cc77f24117d4d8b669b73785 +SHA512 (annobin-12.01.tar.xz) = 4ddeba6c3d9568f615d0cad6670738530495bbfe3abcc9b45e52d7c0e02688455140f373ba95c6015db498b39d5cd2b09d6961b51db6ff4bc6063c426229a53c From 126c39082f92ad5ea7f108740f8dcd4a292d2443 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 11 Apr 2023 13:53:28 +0100 Subject: [PATCH 331/459] Fix Clang and LLVM plugins to work with LLVM v16. Improve string notes. Add environment variable for annobin plugin options. --- annobin.spec | 7 ++++++- sources | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index ac57a1f..a95fdeb 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.01 +Version: 12.02 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -524,6 +524,11 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Apr 11 2023 Nick Clifton - 12.02-1 +- gcc plugin: Add filenames to string notes. Allow use of ANNOBIN environment variable. +- llvm plugin: Add workaround for building with LLVM-16. +- clang plugin: Fix for building with Clang-16. + * Thu Mar 30 2023 Nick Clifton - 12.01-1 - gcc plugin: Keep ELF notes at protocol version 3. diff --git a/sources b/sources index 812ed19..558c04b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.01.tar.xz) = 4ddeba6c3d9568f615d0cad6670738530495bbfe3abcc9b45e52d7c0e02688455140f373ba95c6015db498b39d5cd2b09d6961b51db6ff4bc6063c426229a53c +SHA512 (annobin-12.02.tar.xz) = 404568ad34ec06043ca4601c1148c13efb63d25522bd4287d476df300d9e58f409b6acd121e6b717098a57cee62fcd53d4430e55c1c581f11d5c745cacc70cb5 From 47dc851a55b47ec5a01a1bf61d8cc6c68c6837ce Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 13 Apr 2023 20:03:14 +0100 Subject: [PATCH 332/459] configure: Simplify. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index a95fdeb..6a92c82 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.02 +Version: 12.03 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Apr 13 2023 Nick Clifton - 12.03-1 +- configure: Simplify. + * Tue Apr 11 2023 Nick Clifton - 12.02-1 - gcc plugin: Add filenames to string notes. Allow use of ANNOBIN environment variable. - llvm plugin: Add workaround for building with LLVM-16. diff --git a/sources b/sources index 558c04b..13c4770 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.02.tar.xz) = 404568ad34ec06043ca4601c1148c13efb63d25522bd4287d476df300d9e58f409b6acd121e6b717098a57cee62fcd53d4430e55c1c581f11d5c745cacc70cb5 +SHA512 (annobin-12.03.tar.xz) = 6bd71d074e79e12e3db50e989c0aae6a318e925bc597d3b921f497e48bfb4a4bd58f4e4198aab824d5fe6ccb131305c59423e18a3c586204ba6ffcaa82353bff From 45e0e60d561e968b1af9cdf9b5cba7bad584e923 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 19 Apr 2023 13:22:11 +0100 Subject: [PATCH 333/459] annocheck: Fix seg-fault when checking for glibc components in string format notes. --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 6a92c82..9b6ffe7 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.03 +Version: 12.04 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -524,6 +524,10 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Apr 17 2023 Nick Clifton - 12.04-1 +- configure: More improvements. +- annocheck: Fix seg-fault when checking for glibc components in string format notes. + * Thu Apr 13 2023 Nick Clifton - 12.03-1 - configure: Simplify. diff --git a/sources b/sources index 13c4770..6f53a37 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.03.tar.xz) = 6bd71d074e79e12e3db50e989c0aae6a318e925bc597d3b921f497e48bfb4a4bd58f4e4198aab824d5fe6ccb131305c59423e18a3c586204ba6ffcaa82353bff +SHA512 (annobin-12.04.tar.xz) = c143aad782b87d4f7ab25ccf661176b1971970c73610d6e2089758022fd6b906c3f6b469e759e5498855775efe2060b24496a7c8826c95bf88aa11be6ee790c8 From 666fd997c81f6a3a839132003c50dd1225533dfb Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 20 Apr 2023 11:02:31 +0100 Subject: [PATCH 334/459] Fix detection of optimization level in llvm plugin. --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 9b6ffe7..160f627 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.04 +Version: 12.05 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -524,6 +524,10 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Apr 19 2023 Nick Clifton - 12.05-1 +- llvm-plugin: Fix detection of optimization level. Improve test. +- clang-plugin: Improve test. + * Mon Apr 17 2023 Nick Clifton - 12.04-1 - configure: More improvements. - annocheck: Fix seg-fault when checking for glibc components in string format notes. diff --git a/sources b/sources index 6f53a37..ab5bc1b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.04.tar.xz) = c143aad782b87d4f7ab25ccf661176b1971970c73610d6e2089758022fd6b906c3f6b469e759e5498855775efe2060b24496a7c8826c95bf88aa11be6ee790c8 +SHA512 (annobin-12.05.tar.xz) = d63dc0ac3a0e16a3b852d95039bb562e4b04e9252bf6eab5bc205dc0dbf928ba48886a32aec2b019f3eef3070bdd293b91a8b0323747cbdda95b9e9307fdce71 From 8e60c8613bb866afef3bbe7793e5cea65235a9bf Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 20 Apr 2023 17:20:10 +0100 Subject: [PATCH 335/459] gcc-plugin: use a bigger buffer for constructing notes. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 160f627..dc3b58e 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.05 +Version: 12.06 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Apr 20 2023 Nick Clifton - 12.06-1 +- gcc-plugin: use a bigger buffer for constructing notes. + * Wed Apr 19 2023 Nick Clifton - 12.05-1 - llvm-plugin: Fix detection of optimization level. Improve test. - clang-plugin: Improve test. diff --git a/sources b/sources index ab5bc1b..3be5c1f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.05.tar.xz) = d63dc0ac3a0e16a3b852d95039bb562e4b04e9252bf6eab5bc205dc0dbf928ba48886a32aec2b019f3eef3070bdd293b91a8b0323747cbdda95b9e9307fdce71 +SHA512 (annobin-12.06.tar.xz) = 7263c69f08e943a4a0e79f6877863b11d054f9261b19de3cbdbddd91765db2983381f271db9a81138c1003ea7c971aa94897efb08266ab62f71b179dd62db216 From c7f9bb74d976ae1681de822dbed4c5e698078f41 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 21 Apr 2023 13:42:16 +0100 Subject: [PATCH 336/459] gcc-plugin: generate warnings about misspelt -D_FORTIFY_SOURCE and/or -D_GLIBCXX_ASSERTIONS options. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index dc3b58e..bbdb40c 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.06 +Version: 12.07 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Apr 21 2023 Nick Clifton - 12.07-1 +- gcc-plugin: generate warnings about misspelt -D_FORTIFY_SOURCE and/or -D_GLIBCXX_ASSERTIONS options. + * Thu Apr 20 2023 Nick Clifton - 12.06-1 - gcc-plugin: use a bigger buffer for constructing notes. diff --git a/sources b/sources index 3be5c1f..ee3ee47 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.06.tar.xz) = 7263c69f08e943a4a0e79f6877863b11d054f9261b19de3cbdbddd91765db2983381f271db9a81138c1003ea7c971aa94897efb08266ab62f71b179dd62db216 +SHA512 (annobin-12.07.tar.xz) = 20972c1427e0089635a8e173fee0c8ac393cf55950d4d80e777c69e2fc74f5f92325210ec1ccd55c409cc78337b28d38d094a1d590567a4b271712e602127b94 From 6a05b5374b7d8e649d97c41f50f3e633715b8c9d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 25 Apr 2023 13:10:28 +0100 Subject: [PATCH 337/459] 12.08: Fix covscan errors and libannocheck initialisation --- annobin.spec | 7 ++++++- sources | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index bbdb40c..dbe6434 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.07 +Version: 12.08 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -471,6 +471,7 @@ if [ -f tests/test-suite.log ]; then fi # If necessary use uuencode to preserve test binaries here. For example: # uuencode tests/tmp_atexit/atexit.strip atexit.strip + make check %endif @@ -524,6 +525,10 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Apr 25 2023 Nick Clifton - 12.08-1 +- Fix generation of auto-generated files. +- Fix covscan reported errors. + * Fri Apr 21 2023 Nick Clifton - 12.07-1 - gcc-plugin: generate warnings about misspelt -D_FORTIFY_SOURCE and/or -D_GLIBCXX_ASSERTIONS options. diff --git a/sources b/sources index ee3ee47..69f7734 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.07.tar.xz) = 20972c1427e0089635a8e173fee0c8ac393cf55950d4d80e777c69e2fc74f5f92325210ec1ccd55c409cc78337b28d38d094a1d590567a4b271712e602127b94 +SHA512 (annobin-12.08.tar.xz) = 3989160111ab8aae8852abd708039e7b1b796d537d7855155e98b47269d0b4caee37ddacaa6655885a1674dfe515e1c90709bfe374d19b48b515035b961c97db From 8725f42767120ee3b439ac77ff26b79014b9ad80 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 25 Apr 2023 17:49:30 +0100 Subject: [PATCH 338/459] Annocheck: Fix detection of missing plugin options. Resolves: #2189492 --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index dbe6434..c80c858 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.08 +Version: 12.09 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -525,6 +525,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Apr 25 2023 Nick Clifton - 12.09-1 +- Annocheck: Fix detection of missing plugin options. (#2189492) + * Tue Apr 25 2023 Nick Clifton - 12.08-1 - Fix generation of auto-generated files. - Fix covscan reported errors. diff --git a/sources b/sources index 69f7734..d3b726d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.08.tar.xz) = 3989160111ab8aae8852abd708039e7b1b796d537d7855155e98b47269d0b4caee37ddacaa6655885a1674dfe515e1c90709bfe374d19b48b515035b961c97db +SHA512 (annobin-12.09.tar.xz) = 1805cd960ea34789dc309d767ea5d96cfb83257dd1df60d4ef5797792a86558cbbd1ffa5c08d792ead435afb056db1f3d7303785cbadf6d4c7e9b3a76c200098 From 6a9bd4377fa11376e589801ea979eb09048ed83b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 28 Apr 2023 14:22:04 +0100 Subject: [PATCH 339/459] Improve detection and reporting of problems with Rust binaries. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index c80c858..3658214 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.09 +Version: 12.10 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -525,6 +525,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Apr 28 2023 Nick Clifton - 12.10-1 +- Annocheck: Suppress more tests for Rust binaries. + * Tue Apr 25 2023 Nick Clifton - 12.09-1 - Annocheck: Fix detection of missing plugin options. (#2189492) diff --git a/sources b/sources index d3b726d..4059ce0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.09.tar.xz) = 1805cd960ea34789dc309d767ea5d96cfb83257dd1df60d4ef5797792a86558cbbd1ffa5c08d792ead435afb056db1f3d7303785cbadf6d4c7e9b3a76c200098 +SHA512 (annobin-12.10.tar.xz) = 140c74f88ff309e24c003d533545bd7f7705d240faf3781569f7c91e0c41ef2640dfb2ebe2f0cb1fbafddcf3588d9df9b75424764b79091e64a4091b7be3c0f0 From 18b154e072e49265b021ad0ffb1d2e43fb5f5f78 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 5 May 2023 11:44:05 +0100 Subject: [PATCH 340/459] Enable new string format notes --- annobin.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 3658214..5dea538 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.10 -Release: 1%{?dist} +Release: 2%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -67,7 +67,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-plugin-default-string-notes.patch #--------------------------------------------------------------------------------- @@ -525,6 +525,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri May 05 2023 Nick Clifton - 12.10-2 +- GCC Plugin: Default to generating string format notes. (Experimental) + * Fri Apr 28 2023 Nick Clifton - 12.10-1 - Annocheck: Suppress more tests for Rust binaries. From 9e5f183b04247b337103ea41a9bc3fe546996633 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 5 May 2023 11:44:33 +0100 Subject: [PATCH 341/459] add missing patch file --- annobin-plugin-default-string-notes.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 annobin-plugin-default-string-notes.patch diff --git a/annobin-plugin-default-string-notes.patch b/annobin-plugin-default-string-notes.patch new file mode 100644 index 0000000..29b68b7 --- /dev/null +++ b/annobin-plugin-default-string-notes.patch @@ -0,0 +1,11 @@ +--- annobin.orig/gcc-plugin/annobin.cc 2023-05-05 11:03:18.395959180 +0100 ++++ annobin-12.10/gcc-plugin/annobin.cc 2023-05-05 11:04:03.241964885 +0100 +@@ -80,7 +80,7 @@ unsigned long annobin_max_stack_size = + bool annobin_is_64bit = false; + + /* Where to put notes. */ +-note_type annobin_note_format = note; ++note_type annobin_note_format = string; + + /* Default to using section groups as the link-order + method needs a linker from binutils 2.36 or later. */ From b92fd219d6f54b3245df71d1e26ef8193f497067 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Mon, 22 May 2023 17:37:50 +0200 Subject: [PATCH 342/459] Rebuild against rpm-4.19 (https://fedoraproject.org/wiki/Changes/RPM-4.19) --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 5dea538..cd3b83f 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.10 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -525,6 +525,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon May 22 2023 Petr Pisar - 12.10-3 +- Rebuild against rpm-4.19 (https://fedoraproject.org/wiki/Changes/RPM-4.19) + * Fri May 05 2023 Nick Clifton - 12.10-2 - GCC Plugin: Default to generating string format notes. (Experimental) From 6e8c98dd8f785cf0ef5aadbbeee87f66bf4d81d7 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 26 May 2023 12:09:29 +0100 Subject: [PATCH 343/459] Annocheck: Add support for el10 and rhel-10 profiles. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index cd3b83f..c320f70 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.10 +Version: 12.11 Release: 3%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -525,6 +525,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri May 26 2023 Petr Pisar - 12.11-1 +- Annocheck: Add support for el10 and rhel-10 profiles. (RHEL-526) + * Mon May 22 2023 Petr Pisar - 12.10-3 - Rebuild against rpm-4.19 (https://fedoraproject.org/wiki/Changes/RPM-4.19) diff --git a/sources b/sources index 4059ce0..22d96cd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.10.tar.xz) = 140c74f88ff309e24c003d533545bd7f7705d240faf3781569f7c91e0c41ef2640dfb2ebe2f0cb1fbafddcf3588d9df9b75424764b79091e64a4091b7be3c0f0 +SHA512 (annobin-12.11.tar.xz) = ca56f597b8fd8c7a35566ed1ae4413f106189c1b88c99cdcbbe8012eac6f67794bbc38b775265fdcbb4307f8ef48bf42b76fa5553cfe6084b8a0d6256c4d7a37 From 91e4265352d90aa08691ba3ab0f9a6b2d45e2ee7 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 2 Jun 2023 14:54:24 +0100 Subject: [PATCH 344/459] Check for string notes in debuginfo file, even if there are ELF notes in the main file --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index c320f70..9dde2bb 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.11 -Release: 3%{?dist} +Version: 12.12 +Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -525,6 +525,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Jun 01 2023 Nick Clifton - 12.12-1 +- Annocheck: Check for string notes in separate debug info files. (#2211694) + * Fri May 26 2023 Petr Pisar - 12.11-1 - Annocheck: Add support for el10 and rhel-10 profiles. (RHEL-526) diff --git a/sources b/sources index 22d96cd..12eef72 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.11.tar.xz) = ca56f597b8fd8c7a35566ed1ae4413f106189c1b88c99cdcbbe8012eac6f67794bbc38b775265fdcbb4307f8ef48bf42b76fa5553cfe6084b8a0d6256c4d7a37 +SHA512 (annobin-12.12.tar.xz) = ea26a6aa26ee50314c980e75e09979c549d302665c2312107b4cbb8a1cd1d62634b6662a719c77667274f1e99afb70ee5db1d6913ec6802a494b32e8b6559196 From 599631e9968ff7b15636eb700fb337abdb27fefd Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 20 Jun 2023 14:36:52 +0100 Subject: [PATCH 345/459] 12.13: More tweaks to glibc detection heuristics. (#2215968) --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 9dde2bb..273387b 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.12 +Version: 12.13 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -525,6 +525,10 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Jun 20 2023 Nick Clifton - 12.13-1 +- Annocheck: Ignore /dev/null filename in string notes. +- Annocheck: More tweaks to glibc detection heuristics. (#2215968) + * Thu Jun 01 2023 Nick Clifton - 12.12-1 - Annocheck: Check for string notes in separate debug info files. (#2211694) diff --git a/sources b/sources index 12eef72..fe4c0fb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.12.tar.xz) = ea26a6aa26ee50314c980e75e09979c549d302665c2312107b4cbb8a1cd1d62634b6662a719c77667274f1e99afb70ee5db1d6913ec6802a494b32e8b6559196 +SHA512 (annobin-12.13.tar.xz) = d0089ee0d065a4599dfb0efbf5e125c82884ffeeec05e8839a6c9d6241a51e0158baeeb304dcf1d86f15dcc23d90ea024d6dac9d3520760132cb25386693ef0e From 644bc59850e7db929bafc4e3313c664ccd6c8971 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 22 Jun 2023 16:46:30 +0100 Subject: [PATCH 346/459] Annocheck: Do not ignore separate debuginfo files that do not contain any DWARF. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 273387b..6a6577a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.13 +Version: 12.14 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -525,6 +525,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Jun 22 2023 Nick Clifton - 12.14-1 +- Annocheck: Do not ignore separate debuginfo files that do not contain any DWARF. (#2144553) + * Tue Jun 20 2023 Nick Clifton - 12.13-1 - Annocheck: Ignore /dev/null filename in string notes. - Annocheck: More tweaks to glibc detection heuristics. (#2215968) diff --git a/sources b/sources index fe4c0fb..f9d2c1c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.13.tar.xz) = d0089ee0d065a4599dfb0efbf5e125c82884ffeeec05e8839a6c9d6241a51e0158baeeb304dcf1d86f15dcc23d90ea024d6dac9d3520760132cb25386693ef0e +SHA512 (annobin-12.14.tar.xz) = 2adb057aefc7dc03cdef34f7d1054ead8f6cb6dabec88bd0e262357a0f456f9cb349b1eba238382cc5fa5f733e360f586282af9081178ff123e68518bb01c1be From f84a88b3c7c03dc5933d7a16b78c195036f23559 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 26 Jun 2023 16:32:51 +0100 Subject: [PATCH 347/459] Annocheck: Add --suppress-version-warnings option. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 6a6577a..835c541 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.14 +Version: 12.15 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -525,6 +525,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Jun 26 2023 Nick Clifton - 12.15-1 +- Annocheck: Add --suppress-version-warnings option. + * Thu Jun 22 2023 Nick Clifton - 12.14-1 - Annocheck: Do not ignore separate debuginfo files that do not contain any DWARF. (#2144553) diff --git a/sources b/sources index f9d2c1c..4f3b879 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.14.tar.xz) = 2adb057aefc7dc03cdef34f7d1054ead8f6cb6dabec88bd0e262357a0f456f9cb349b1eba238382cc5fa5f733e360f586282af9081178ff123e68518bb01c1be +SHA512 (annobin-12.15.tar.xz) = 3cca22815800415eb1c3d106e1d1fa1cb00e97808c302c0451ec15ea4790823f1933bce02f3f64a8b435fbba2d1c2d56dd257f921327a3f9de26e308c07bb377 From 351368aee575018156794a05c290fb09487d9487 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 27 Jun 2023 13:10:32 +0100 Subject: [PATCH 348/459] Annocheck: Ignore weak/undef function symbols when checking to see if a binary contains code. (#2217840) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 835c541..6a20212 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.15 +Version: 12.16 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -525,6 +525,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Jun 27 2023 Nick Clifton - 12.16-1 +- Annocheck: Ignore weak/undef function symbols when checking to see if a binary contains code. (#2217840) + * Mon Jun 26 2023 Nick Clifton - 12.15-1 - Annocheck: Add --suppress-version-warnings option. diff --git a/sources b/sources index 4f3b879..36a400a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.15.tar.xz) = 3cca22815800415eb1c3d106e1d1fa1cb00e97808c302c0451ec15ea4790823f1933bce02f3f64a8b435fbba2d1c2d56dd257f921327a3f9de26e308c07bb377 +SHA512 (annobin-12.16.tar.xz) = e32b5d7ed4939c43e9eaeb84935839e557b0c54897806c7463256f73e71f9978f1ac598388f73f37f54a6c2e1a9764a4e861e1cb3fdc274479434427b3990c17 From de71a8d994ac69b63b600330f09116a3c783d233 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 29 Jun 2023 15:24:28 +0100 Subject: [PATCH 349/459] Annocheck: Add detection of known parts of libstdc++-nonshared.a that contain gaps. (#2217864) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 6a20212..c40d325 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.16 +Version: 12.17 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -525,6 +525,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Jun 29 2023 Nick Clifton - 12.17-1 +- Annocheck: Add detection of known parts of libstdc++-nonshared.a that contain gaps. (#2217864) + * Tue Jun 27 2023 Nick Clifton - 12.16-1 - Annocheck: Ignore weak/undef function symbols when checking to see if a binary contains code. (#2217840) diff --git a/sources b/sources index 36a400a..532ff26 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.16.tar.xz) = e32b5d7ed4939c43e9eaeb84935839e557b0c54897806c7463256f73e71f9978f1ac598388f73f37f54a6c2e1a9764a4e861e1cb3fdc274479434427b3990c17 +SHA512 (annobin-12.17.tar.xz) = be1ae36ebca5890b5aa0affb2ae2462febe14f1d5734be6056ba74220e73937b515e783a549c9c26b38c73d698b14843e0e38e21e5363df2aebcd7a1b89a46b2 From 74ac5654d62a591d345b6eafc635f780d560c409 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 28 Jun 2023 13:16:31 +0000 Subject: [PATCH 350/459] Fix Regression/testsuite test Rawhide now has dnf5, so we need to install dnf5-plugins for the builddep command to work. --- tests/Regression/testsuite/main.fmf | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Regression/testsuite/main.fmf b/tests/Regression/testsuite/main.fmf index f117f62..4cb90d9 100644 --- a/tests/Regression/testsuite/main.fmf +++ b/tests/Regression/testsuite/main.fmf @@ -12,6 +12,7 @@ require: - binutils-devel - bzip2-devel - dnf +- dnf5-plugins - elfutils - elfutils-devel - gcc-c++ From eca718919fb5e74430be3e7ce4647475b334ef53 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 3 Jul 2023 15:52:09 +0100 Subject: [PATCH 351/459] Remove dependency upon libiberty --- annobin.spec | 10 ++++++---- sources | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/annobin.spec b/annobin.spec index c40d325..fcac921 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.17 +Version: 12.18 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -156,7 +156,7 @@ of the resulting files. %package annocheck Summary: A tool for checking the security hardening status of binaries -BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel make +BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel make %if %{with debuginfod} BuildRequires: elfutils-debuginfod-client-devel @@ -173,14 +173,13 @@ hardening options. %package libannocheck Summary: A library for checking the security hardening status of binaries -BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel make +BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel make %if %{with debuginfod} BuildRequires: elfutils-debuginfod-client-devel %endif Requires: %{name}-docs = %{version}-%{release} -Requires: binutils-devel %description libannocheck Installs the libannocheck library which uses the notes generated by the @@ -525,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Jun 29 2023 Nick Clifton - 12.18-1 +- Annocheck: Remove dependency upon binutils-devel. + * Thu Jun 29 2023 Nick Clifton - 12.17-1 - Annocheck: Add detection of known parts of libstdc++-nonshared.a that contain gaps. (#2217864) diff --git a/sources b/sources index 532ff26..d3b905f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.17.tar.xz) = be1ae36ebca5890b5aa0affb2ae2462febe14f1d5734be6056ba74220e73937b515e783a549c9c26b38c73d698b14843e0e38e21e5363df2aebcd7a1b89a46b2 +SHA512 (annobin-12.18.tar.xz) = 580c3b24103c9e9e262c156ae2d472addfe3c1d65c343677d0de2b706b15e8368fad67e62bf2a5308eb4dc197a56bd01497861cbd300660158990ed9bf746c78 From 1652c5101ad515f2eefb7a4d0867a2db12714bdf Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 5 Jul 2023 14:30:54 +0100 Subject: [PATCH 352/459] GCC Plugin: Suppress active checks for fortran sources. Improve scanning of COLLECT_GCC_OPTIONS. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index fcac921..e2f0eb1 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.18 +Version: 12.19 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Jul 05 2023 Nick Clifton - 12.19-1 +- GCC Plugin: Suppress active checks for fortran sources. Improve scanning of COLLECT_GCC_OPTIONS. + * Thu Jun 29 2023 Nick Clifton - 12.18-1 - Annocheck: Remove dependency upon binutils-devel. diff --git a/sources b/sources index d3b905f..7eb3101 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.18.tar.xz) = 580c3b24103c9e9e262c156ae2d472addfe3c1d65c343677d0de2b706b15e8368fad67e62bf2a5308eb4dc197a56bd01497861cbd300660158990ed9bf746c78 +SHA512 (annobin-12.19.tar.xz) = 0ac445091952226e9ba77901de853ec0efafbe5696fabbcbff15f4a58394eb1a871aa2c52c3554935916584802eb80b7e4deed4f09b9f813b72df696484cf8f3 From 2b17846e9b2ae5b13a8e1b2b9d175bbf2e7d65ed Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 17 Jul 2023 10:53:34 +0100 Subject: [PATCH 353/459] Annocheck: Ignore AArch64 $x and $d symbols. (#2221192) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index e2f0eb1..5b906f4 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.19 +Version: 12.20 Release: 1%{?dist} License: GPLv3+ URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Jul 17 2023 Nick Clifton - 12.20-1 +- Annocheck: Ignore AArch64 $x and $d symbols. (#2221192) + * Wed Jul 05 2023 Nick Clifton - 12.19-1 - GCC Plugin: Suppress active checks for fortran sources. Improve scanning of COLLECT_GCC_OPTIONS. diff --git a/sources b/sources index 7eb3101..876a6b9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.19.tar.xz) = 0ac445091952226e9ba77901de853ec0efafbe5696fabbcbff15f4a58394eb1a871aa2c52c3554935916584802eb80b7e4deed4f09b9f813b72df696484cf8f3 +SHA512 (annobin-12.20.tar.xz) = cb7ff25b872a0840c4ac21f25217bbe5bd1fd13257097d2a11d8e92a696a5629580f3de99d6e973fbe33a8510aa94aa967f0f557ca3b57a4ea25f9ce35efe17b From 5b54cac55275a99e201798f62688eb9074e2f5d9 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 17 Jul 2023 13:18:39 +0100 Subject: [PATCH 354/459] Spec File: Change License field to use SPDX notation. (#2222112) --- annobin.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 5b906f4..27c2aad 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,8 +2,8 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.20 -Release: 1%{?dist} -License: GPLv3+ +Release: 2%{?dist} +License: GPL-3.0-or-later URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Jul 17 2023 Nick Clifton - 12.20-2 +- Spec File: Change License field to use SPDX notation. (#2222112) + * Mon Jul 17 2023 Nick Clifton - 12.20-1 - Annocheck: Ignore AArch64 $x and $d symbols. (#2221192) From 7d937f32eae2c2ef90c0811259a8773da120236f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 18 Jul 2023 13:13:11 +0100 Subject: [PATCH 355/459] Spec File: migrated to SPDX license. (#2222112) --- annobin.spec | 9 ++++++--- sources | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/annobin.spec b/annobin.spec index 27c2aad..d6c92d2 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,9 +1,9 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.20 -Release: 2%{?dist} -License: GPL-3.0-or-later +Version: 12.21 +Release: 1%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Jul 18 2023 Nick Clifton - 12.21-1 +- Spec File: migrated to SPDX license. (#2222112) + * Mon Jul 17 2023 Nick Clifton - 12.20-2 - Spec File: Change License field to use SPDX notation. (#2222112) diff --git a/sources b/sources index 876a6b9..2290fff 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.20.tar.xz) = cb7ff25b872a0840c4ac21f25217bbe5bd1fd13257097d2a11d8e92a696a5629580f3de99d6e973fbe33a8510aa94aa967f0f557ca3b57a4ea25f9ce35efe17b +SHA512 (annobin-12.21.tar.xz) = d31f63543c8038654933366a0bfbb96abfa71635bb28b3744f26c58c31068f864fed5cb14cb0121e7214be67d11b1cb950bd0239aacf64bc4057b71fac598e31 From 420e5ffe64b72a765b4e962a5e0b70c19d1c3a3c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 13:17:45 +0000 Subject: [PATCH 356/459] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index d6c92d2..4843a32 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.21 -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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Jul 19 2023 Fedora Release Engineering - 12.21-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Tue Jul 18 2023 Nick Clifton - 12.21-1 - Spec File: migrated to SPDX license. (#2222112) From e1ed0f967bb08c63970f105821e418b56deb4652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Kadl=C4=8D=C3=ADk?= Date: Wed, 26 Jul 2023 13:09:38 +0200 Subject: [PATCH 357/459] Move downstream tests to a separate repository The tests have been moved to https://src.fedoraproject.org/tests/annobin The move will enable more flexible downstream usage, namely in RHEL testing. --- plans/ci.fmf | 1 + tests/README | 2 - .../main.fmf | 18 ---- .../runtest.sh | 51 ----------- tests/Regression/identify/main.fmf | 14 --- tests/Regression/identify/runtest.sh | 43 --------- .../lto-preprocessor-options/main.fmf | 17 ---- .../lto-preprocessor-options/runtest.sh | 44 --------- .../main | Bin 27456 -> 0 bytes .../main.fmf | 16 ---- .../runtest.sh | 40 --------- .../main.fmf | 16 ---- .../runtest.sh | 42 --------- .../main.fmf | 18 ---- .../runtest.sh | 44 --------- tests/Regression/testsuite/main.fmf | 25 ------ tests/Regression/testsuite/runtest.sh | 85 ------------------ .../main.fmf | 17 ---- .../runtest.sh | 55 ------------ tests/Sanity/gcc-fedora-flags/hello.c | 5 -- tests/Sanity/gcc-fedora-flags/hello.cpp | 5 -- tests/Sanity/gcc-fedora-flags/main.c | 6 -- tests/Sanity/gcc-fedora-flags/main.cpp | 6 -- tests/Sanity/gcc-fedora-flags/main.fmf | 17 ---- tests/Sanity/gcc-fedora-flags/runtest.sh | 40 --------- tests/Sanity/smoke/main.fmf | 16 ---- tests/Sanity/smoke/runtest.sh | 45 ---------- 27 files changed, 1 insertion(+), 687 deletions(-) delete mode 100644 tests/README delete mode 100644 tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/main.fmf delete mode 100755 tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/runtest.sh delete mode 100644 tests/Regression/identify/main.fmf delete mode 100755 tests/Regression/identify/runtest.sh delete mode 100644 tests/Regression/lto-preprocessor-options/main.fmf delete mode 100755 tests/Regression/lto-preprocessor-options/runtest.sh delete mode 100644 tests/Regression/missing-check-for-x86-property-note-content/main delete mode 100644 tests/Regression/missing-check-for-x86-property-note-content/main.fmf delete mode 100755 tests/Regression/missing-check-for-x86-property-note-content/runtest.sh delete mode 100644 tests/Regression/processing-params-in-reverse-order/main.fmf delete mode 100755 tests/Regression/processing-params-in-reverse-order/runtest.sh delete mode 100644 tests/Regression/segv-when-processing-multiple-params-incl-symlink/main.fmf delete mode 100755 tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh delete mode 100644 tests/Regression/testsuite/main.fmf delete mode 100755 tests/Regression/testsuite/runtest.sh delete mode 100644 tests/Sanity/annocheck-silently-ignores-any-file-parameter/main.fmf delete mode 100755 tests/Sanity/annocheck-silently-ignores-any-file-parameter/runtest.sh delete mode 100644 tests/Sanity/gcc-fedora-flags/hello.c delete mode 100644 tests/Sanity/gcc-fedora-flags/hello.cpp delete mode 100644 tests/Sanity/gcc-fedora-flags/main.c delete mode 100644 tests/Sanity/gcc-fedora-flags/main.cpp delete mode 100644 tests/Sanity/gcc-fedora-flags/main.fmf delete mode 100755 tests/Sanity/gcc-fedora-flags/runtest.sh delete mode 100644 tests/Sanity/smoke/main.fmf delete mode 100755 tests/Sanity/smoke/runtest.sh diff --git a/plans/ci.fmf b/plans/ci.fmf index 3fd3ab7..6ae9ce7 100644 --- a/plans/ci.fmf +++ b/plans/ci.fmf @@ -1,5 +1,6 @@ summary: CI Gating Plan discover: how: fmf + url: https://src.fedoraproject.org/tests/annobin.git execute: how: tmt diff --git a/tests/README b/tests/README deleted file mode 100644 index 9ad59d4..0000000 --- a/tests/README +++ /dev/null @@ -1,2 +0,0 @@ -The test's Makefiles are not used in Fedora CI infrastructure. But are kept here -for backward compatibility with traditional beakerlib test harness in RHEL. diff --git a/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/main.fmf b/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/main.fmf deleted file mode 100644 index e0cbc5d..0000000 --- a/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/main.fmf +++ /dev/null @@ -1,18 +0,0 @@ -summary: Test for BZ#1958954 (annobin fails to skip endbr64 entry point check) -description: | - Bug summary: annobin fails to skip endbr64 entry point check for shared objects - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1958954 -contact: -- Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-annocheck -- annobin-plugin-gcc -- gcc -- redhat-rpm-config -duration: 48h -extra-summary: /tools/annobin/Regression/annobin-fails-to-skip-endbr64-entry-point-check -extra-task: /tools/annobin/Regression/annobin-fails-to-skip-endbr64-entry-point-check diff --git a/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/runtest.sh b/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/runtest.sh deleted file mode 100755 index 91fa544..0000000 --- a/tests/Regression/annobin-fails-to-skip-endbr64-entry-point-check/runtest.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Regression/annobin-fails-to-skip-endbr64-entry-point-check -# Description: Test for BZ#1958954 (annobin fails to skip endbr64 entry point check) -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -rlJournalStart - rlPhaseStartSetup - rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" - rlRun "pushd $TmpDir" - rlPhaseEnd - - rlPhaseStartTest - rlRun "echo 'void f1(void) {}' > f1.c" - rlRun "echo 'void f2(void) {}' > f2.c" - rlRun "gcc `rpm --eval %build_cflags` -fpic -c f1.c" - rlRun "gcc `rpm --eval %build_cflags` -fpic -c f2.c" - rlRun "gcc `rpm --eval %build_ldflags` -shared f1.o f2.o" - rlRun "annocheck -v --skip-lto a.out" - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TmpDir" 0 "Removing tmp directory" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/identify/main.fmf b/tests/Regression/identify/main.fmf deleted file mode 100644 index 674544e..0000000 --- a/tests/Regression/identify/main.fmf +++ /dev/null @@ -1,14 +0,0 @@ -summary: identify -description: '' -contact: -- Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -recommend: -- annobin-plugin-gcc -- annobin-annocheck -duration: 48h -extra-summary: /tools/annobin/Regression/identify -extra-task: /tools/annobin/Regression/identify diff --git a/tests/Regression/identify/runtest.sh b/tests/Regression/identify/runtest.sh deleted file mode 100755 index 7907036..0000000 --- a/tests/Regression/identify/runtest.sh +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Regression/identify -# Description: identify -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2019 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="annobin" - -rlJournalStart - rlPhaseStartTest - rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort" - rlRun "tool_v=$(annocheck --version | awk '/^annocheck: Version/ {print $3}')" - rlRun "__RPM=$(rpm --queryformat='%{name}\n' -qf $(man -w annobin))" - rlRun "rpm_v=$(rpm -q --queryformat='%{version}\n' $__RPM)" - # Following fails for annobin-8.89-2.el8 - rlRun "[[ "x${tool_v}" == "x${rpm_v}." ]]" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/lto-preprocessor-options/main.fmf b/tests/Regression/lto-preprocessor-options/main.fmf deleted file mode 100644 index 2a3e56a..0000000 --- a/tests/Regression/lto-preprocessor-options/main.fmf +++ /dev/null @@ -1,17 +0,0 @@ -summary: lto-preprocessor-options -description: '' -contact: -- Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-plugin-gcc -- annobin-annocheck -- redhat-rpm-config -- gcc -- redhat-rpm-config -duration: 48h -extra-summary: /tools/annobin/Regression/lto-preprocessor-options -extra-task: /tools/annobin/Regression/lto-preprocessor-options diff --git a/tests/Regression/lto-preprocessor-options/runtest.sh b/tests/Regression/lto-preprocessor-options/runtest.sh deleted file mode 100755 index 430d830..0000000 --- a/tests/Regression/lto-preprocessor-options/runtest.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Regression/lto-preprocessor-options -# Description: lto-preprocessor-options -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2020 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="annobin" - -rlJournalStart - rlPhaseStartTest - b=`mktemp` - rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort" - rlRun "cflags=\"$(rpm --eval '%build_cflags')\"" - rlRun "ldflags=\"$(rpm --eval '%build_ldflags')\"" - rlRun "echo 'int main (void) { return 0; }' | gcc -xc -o $b $cflags $ldflags -flto - " - rlRun "annocheck -v $b" - rm $b - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/missing-check-for-x86-property-note-content/main b/tests/Regression/missing-check-for-x86-property-note-content/main deleted file mode 100644 index b7f4983a4a9958c8cf33bb1a902848845794ec82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27456 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 diff --git a/tests/Regression/missing-check-for-x86-property-note-content/main.fmf b/tests/Regression/missing-check-for-x86-property-note-content/main.fmf deleted file mode 100644 index b4ab7fd..0000000 --- a/tests/Regression/missing-check-for-x86-property-note-content/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: missing-check-for-x86-property-note-content -description: | - Bug summary: annobin: Missing check for contents of x86 property note - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1991931 -contact: Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-annocheck -duration: 48h -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1991931 -extra-summary: /tools/annobin/Regression/missing-check-for-x86-property-note-content -extra-task: /tools/annobin/Regression/missing-check-for-x86-property-note-content diff --git a/tests/Regression/missing-check-for-x86-property-note-content/runtest.sh b/tests/Regression/missing-check-for-x86-property-note-content/runtest.sh deleted file mode 100755 index 14392c0..0000000 --- a/tests/Regression/missing-check-for-x86-property-note-content/runtest.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Regression/missing-check-for-x86-property-note-content -# Description: missing-check-for-x86-property-note-content -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="annobin" - -rlJournalStart - rlPhaseStartTest - rlRun "annocheck main" 1 - rlRun "annocheck --fixed-format-messages main | \ - grep '^Hardened: FAIL: test: cf-protection file: main.$'" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/processing-params-in-reverse-order/main.fmf b/tests/Regression/processing-params-in-reverse-order/main.fmf deleted file mode 100644 index 99adc08..0000000 --- a/tests/Regression/processing-params-in-reverse-order/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: processing-params-in-reverse-order -description: | - Bug summary: annocheck processes (reports) parameters in reverse order - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1988714 -contact: Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-annocheck -duration: 48h -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1988714 -extra-summary: /tools/annobin/Regression/processing-params-in-reverse-order -extra-task: /tools/annobin/Regression/processing-params-in-reverse-order diff --git a/tests/Regression/processing-params-in-reverse-order/runtest.sh b/tests/Regression/processing-params-in-reverse-order/runtest.sh deleted file mode 100755 index 75b357e..0000000 --- a/tests/Regression/processing-params-in-reverse-order/runtest.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Regression/processing-params-in-reverse-order -# Description: processing-params-in-reverse-order -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="annobin" - -rlJournalStart - rlPhaseStartTest - rlRun "TMP=$(mktemp)" - rlRun "annocheck --verbose --skip-all --test-stack-prot /bin/bash /bin/cat |& tee $TMP" - rlRun "fgrep -i /bin/ $TMP | head -1 | fgrep /bash" - rlRun "fgrep -i /bin/ $TMP | tail -1 | fgrep /cat" - rlRun "rm -f $TMP" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/main.fmf b/tests/Regression/segv-when-processing-multiple-params-incl-symlink/main.fmf deleted file mode 100644 index 07395fa..0000000 --- a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/main.fmf +++ /dev/null @@ -1,18 +0,0 @@ -summary: segv-when-processing-multiple-params-incl-symlink -description: | - Bug summary: annocheck segfaults sometimes when processing multiple parameters and symlink is involved - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1988715 -contact: Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-plugin-gcc -- annobin-annocheck -- libstdc++ -duration: 48h -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1988715 -extra-summary: /tools/annobin/Regression/segv-when-processing-multiple-params-incl-symlink -extra-task: /tools/annobin/Regression/segv-when-processing-multiple-params-incl-symlink diff --git a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh b/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh deleted file mode 100755 index 6603c3c..0000000 --- a/tests/Regression/segv-when-processing-multiple-params-incl-symlink/runtest.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Regression/segv-when-processing-multiple-params-incl-symlink -# Description: segv-when-processing-multiple-params-incl-symlink -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="annobin" - -rlJournalStart - rlPhaseStartTest - # This tries to test https://bugzilla.redhat.com/show_bug.cgi?id=1988715#c0 - # keeping in mind that annocheck will evolve in the future, along its - # rules / policies, and the surrounding OS will evolve too. This test - # shouldn't report false positives though. - rlRun "rpm -qf /usr/lib64/libstdc++.so*" - rlRun "annocheck --follow-links --skip-all /usr/lib64/libstdc++.so*" - rlRun "annocheck --ignore-links --skip-all /usr/lib64/libstdc++.so*" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Regression/testsuite/main.fmf b/tests/Regression/testsuite/main.fmf deleted file mode 100644 index 4cb90d9..0000000 --- a/tests/Regression/testsuite/main.fmf +++ /dev/null @@ -1,25 +0,0 @@ -summary: testsuite -description: '' -contact: -- Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-plugin-gcc -- annobin-annocheck -- binutils-devel -- bzip2-devel -- dnf -- dnf5-plugins -- elfutils -- elfutils-devel -- gcc-c++ -- gcc-plugin-devel -- make -- rpm-build -- rpm-devel -duration: 48h -extra-summary: /tools/annobin/Regression/testsuite -extra-task: /tools/annobin/Regression/testsuite diff --git a/tests/Regression/testsuite/runtest.sh b/tests/Regression/testsuite/runtest.sh deleted file mode 100755 index 1507c45..0000000 --- a/tests/Regression/testsuite/runtest.sh +++ /dev/null @@ -1,85 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Regression/testsuite -# Description: testsuite -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2018 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="${PACKAGE:-$(rpm -qf --queryformat=%{name} $(man -w annobin))}" -export PACKAGE - -GCC="${GCC:-$(which gcc)}" - - -rlJournalStart - rlPhaseStartSetup - rlLogInfo "PACKAGES=$PACKAGES" - rlLogInfo "REQUIRES=$REQUIRES" - rlLogInfo "COLLECTIONS=$COLLECTIONS" - rlLogInfo "X_SCLS=$X_SCLS" - rlLogInfo "GCC=$GCC" - - rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort" - - # In case more than one devtoolset- or gcc-toolset -build package is - # installed (they can co-exist from the packaging persp, but their - # coexistence causes unexpected results with rpm macros), then we have - # a mess of defined rpm macros coming e.g. from - # /etc/rpm/macros.gcc-toolset-10-config - # /etc/rpm/macros.gcc-toolset-9-config etc. To have just the needed - # macros (respective to given SCL under test) defined without - # uninstalling unneeded RPMs, we'll need an override mechanism. The - # following assumes just one SCL *enabled* (more than one installed), - # and doesn't care of a (useless) revert: - echo ${X_SCLS} | fgrep toolset && \ - rlRun "cat /etc/rpm/*${X_SCLS%\ }* > ~/.rpmmacros" - - rlAssertRpm $PACKAGE - rlRun "TMP=\$(mktemp -d)" - rlRun "pushd $TMP" - - rlFetchSrcForInstalled $PACKAGE - rlRun "dnf builddep -y *src.rpm" - rlRun "rpm --define='_topdir $TMP' -Uvh *src.rpm" - rlRun "rpmbuild --define='_topdir $TMP' -bc SPECS/annobin.spec" - rlPhaseEnd - - rlPhaseStartTest - rlRun "pushd BUILD/annobin-*" - set -o pipefail - rlRun "make check |& tee $TMP/check.log" - rlRun -l "grep '^PASS:' $TMP/check.log" 0 - rlRun -l "grep '^FAIL:' $TMP/check.log" 1 - PASSCOUNT=$(grep '^PASS:' $TMP/check.log | wc -l) - rlRun "[[ $PASSCOUNT -ge 7 ]]" - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TMP" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Sanity/annocheck-silently-ignores-any-file-parameter/main.fmf b/tests/Sanity/annocheck-silently-ignores-any-file-parameter/main.fmf deleted file mode 100644 index 9ece622..0000000 --- a/tests/Sanity/annocheck-silently-ignores-any-file-parameter/main.fmf +++ /dev/null @@ -1,17 +0,0 @@ -summary: Test for BZ#1973981 (annocheck silently ignores any file parameter) -description: | - Bug summary: annocheck silently ignores any file parameter beyond 256 - Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1973981 -contact: Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-plugin-gcc -- annobin-annocheck -duration: 48h -link: -- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1973981 -extra-summary: /tools/annobin/Sanity/annocheck-silently-ignores-any-file-parameter -extra-task: /tools/annobin/Sanity/annocheck-silently-ignores-any-file-parameter diff --git a/tests/Sanity/annocheck-silently-ignores-any-file-parameter/runtest.sh b/tests/Sanity/annocheck-silently-ignores-any-file-parameter/runtest.sh deleted file mode 100755 index bb1a436..0000000 --- a/tests/Sanity/annocheck-silently-ignores-any-file-parameter/runtest.sh +++ /dev/null @@ -1,55 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Sanity/annocheck-silently-ignores-any-file-parameter -# Description: Test for BZ#1973981 (annocheck silently ignores any file parameter) -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2021 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -rlJournalStart - rlPhaseStartSetup - rlRun "TMP=$(mktemp -d)" - rlRun "pushd $TMP" - rlPhaseEnd - - rlPhaseStartTest - for i in `seq 0 299`; do touch ${i}.sample; done - samplecnt=$(ls *.sample | wc -l) - testcnt=$(ls *.sample | \ - xargs annocheck |& \ - grep -F \ - -e '.sample: unable to read magic number' \ - -e '.sample: is not an ELF format file' \ - | wc -l) - rlRun "test $samplecnt -eq 300" - rlRun "test $testcnt -eq 300" - rlPhaseEnd - - rlPhaseStartCleanup - rlRun "popd" - rlRun "rm -r $TMP" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Sanity/gcc-fedora-flags/hello.c b/tests/Sanity/gcc-fedora-flags/hello.c deleted file mode 100644 index 51b259b..0000000 --- a/tests/Sanity/gcc-fedora-flags/hello.c +++ /dev/null @@ -1,5 +0,0 @@ -#include - -void hello() { - printf("Hello World\n"); -} diff --git a/tests/Sanity/gcc-fedora-flags/hello.cpp b/tests/Sanity/gcc-fedora-flags/hello.cpp deleted file mode 100644 index 400612b..0000000 --- a/tests/Sanity/gcc-fedora-flags/hello.cpp +++ /dev/null @@ -1,5 +0,0 @@ -#include - -void hello() { - std::cout << "Hello World\n"; -} diff --git a/tests/Sanity/gcc-fedora-flags/main.c b/tests/Sanity/gcc-fedora-flags/main.c deleted file mode 100644 index 1a3455d..0000000 --- a/tests/Sanity/gcc-fedora-flags/main.c +++ /dev/null @@ -1,6 +0,0 @@ -void hello(); - -int main(int argc, char **argv) { - hello(); - return 0; -} diff --git a/tests/Sanity/gcc-fedora-flags/main.cpp b/tests/Sanity/gcc-fedora-flags/main.cpp deleted file mode 100644 index 1a3455d..0000000 --- a/tests/Sanity/gcc-fedora-flags/main.cpp +++ /dev/null @@ -1,6 +0,0 @@ -void hello(); - -int main(int argc, char **argv) { - hello(); - return 0; -} diff --git a/tests/Sanity/gcc-fedora-flags/main.fmf b/tests/Sanity/gcc-fedora-flags/main.fmf deleted file mode 100644 index f053025..0000000 --- a/tests/Sanity/gcc-fedora-flags/main.fmf +++ /dev/null @@ -1,17 +0,0 @@ -summary: gcc-fedora-flags -description: '' -contact: -- Tom Stellard -component: -- annobin -test: ./runtest.sh -framework: beakerlib -recommend: -- gcc -- gcc-c++ -- annobin -- annobin-annocheck -- redhat-rpm-config -duration: 1h -extra-summary: /tools/annobin/Sanity/gcc-fedora-flags -extra-task: /tools/annobin/Sanity/gcc-fedora-flags diff --git a/tests/Sanity/gcc-fedora-flags/runtest.sh b/tests/Sanity/gcc-fedora-flags/runtest.sh deleted file mode 100755 index 8ef829f..0000000 --- a/tests/Sanity/gcc-fedora-flags/runtest.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/bash - -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -set -x - -default_cflags=`rpm -E %{build_cflags}` -default_cxxflags=`rpm -E %{build_cxxflags}` -default_ldflags=`rpm -E %{build_ldflags}` - -cflags=`rpm -D '%toolchain gcc' -E %{build_cflags}` -cxxflags=`rpm -D '%toolchain gcc' -E %{build_cxxflags}` -ldflags=`rpm -D '%toolchain gcc' -E %{build_ldflags}` - -set +x - -rlJournalStart -rlPhaseStartTest - rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort" - - rlRun "test \"$default_cflags\" = \"$cflags\"" - rlRun "test \"$default_cxxflags\" = \"$cxxflags\"" - rlRun "test \"$default_ldflags\" = \"$ldflags\"" - - rlRun "gcc $cflags -o hello.o -c hello.c" - rlRun "annocheck hello.o" - rlRun "gcc $cflags -o main.o -c main.c" - rlRun "gcc $ldflags -o hello main.o hello.o" - rlRun "annocheck hello" - rlRun "./hello | grep \"Hello World\"" - - rlRun "g++ $cxxflags -o hello-cpp.o -c hello.cpp" - rlRun "annocheck hello-cpp.o" - rlRun "g++ $cxxflags -o main-cpp.o -c main.cpp" - rlRun "g++ $ldflags -o hello-cpp main-cpp.o hello-cpp.o" - rlRun "annocheck hello-cpp" - rlRun "./hello-cpp | grep \"Hello World\"" -rlPhaseEnd -rlJournalPrintText -rlJournalEnd diff --git a/tests/Sanity/smoke/main.fmf b/tests/Sanity/smoke/main.fmf deleted file mode 100644 index fca8ae4..0000000 --- a/tests/Sanity/smoke/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -summary: smoke test for annobin plugin -description: '' -contact: -- Martin Cermak -component: -- annobin -test: ./runtest.sh -framework: beakerlib -require: -- annobin-plugin-gcc -- annobin-annocheck -- man-db -- gcc -duration: 48h -extra-summary: /tools/annobin/Sanity/smoke -extra-task: /tools/annobin/Sanity/smoke diff --git a/tests/Sanity/smoke/runtest.sh b/tests/Sanity/smoke/runtest.sh deleted file mode 100755 index 566e571..0000000 --- a/tests/Sanity/smoke/runtest.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash -# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# runtest.sh of /tools/annobin/Sanity/smoke -# Description: smoke test for annobin plugin -# Author: Martin Cermak -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# Copyright (c) 2019 Red Hat, Inc. -# -# This program is free software: you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation, either version 2 of -# the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be -# useful, but WITHOUT ANY WARRANTY; without even the implied -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -# PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see http://www.gnu.org/licenses/. -# -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -# Include Beaker environment -. /usr/share/beakerlib/beakerlib.sh || exit 1 - -PACKAGE="annobin" - -rlJournalStart - rlPhaseStartSetup - rlRun "which gcc" - rlRun "man -w annobin" - rlRun "echo $X_SCLS" - rlPhaseEnd - - rlPhaseStartTest - rlRun "rpm -qa | fgrep -e redhat-rpm-config -e gcc -e annobin -e binutils | sort" - rlRun "echo 'int main() {return 0;}' | gcc -xc -fplugin=annobin -o /dev/null -" - rlPhaseEnd -rlJournalPrintText -rlJournalEnd From bcd8d3a6c1589c2010251610728db494a73aec83 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 26 Jul 2023 16:09:06 +0100 Subject: [PATCH 358/459] Annocheck: Fix double free. (#2226749) --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 4843a32..2c5de5d 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.21 -Release: 2%{?dist} +Version: 12.22 +Release: 1%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Jul 26 2023 Nick Clifron - 12.22-1 +- Annocheck: Fix double free. (#2226749) + * Wed Jul 19 2023 Fedora Release Engineering - 12.21-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild diff --git a/sources b/sources index 2290fff..bee9fb7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.21.tar.xz) = d31f63543c8038654933366a0bfbb96abfa71635bb28b3744f26c58c31068f864fed5cb14cb0121e7214be67d11b1cb950bd0239aacf64bc4057b71fac598e31 +SHA512 (annobin-12.22.tar.xz) = 41774020bf2c44e825bc00a178c7d5ef8a428766269034c5fd59f49927831f79d251618a50a2669e026f8dc3c89afc9010923870557fb530b11e16f06367b871 From 1399107c1f6090c7d49326a007f728e182062e4e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 31 Jul 2023 12:41:44 +0100 Subject: [PATCH 359/459] Annocheck: Add test for FIPS compliant GO binaries. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 2c5de5d..4079906 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.22 +Version: 12.23 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Jul 31 2023 Nick Clifron - 12.23-1 +- Annocheck: Add test for FIPS compliant GO binaries. + * Wed Jul 26 2023 Nick Clifron - 12.22-1 - Annocheck: Fix double free. (#2226749) diff --git a/sources b/sources index bee9fb7..4d50c2e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.22.tar.xz) = 41774020bf2c44e825bc00a178c7d5ef8a428766269034c5fd59f49927831f79d251618a50a2669e026f8dc3c89afc9010923870557fb530b11e16f06367b871 +SHA512 (annobin-12.23.tar.xz) = 6716d5525d77b39bce0f05158753e6badb8c27529f71d4f65d511ea6430dcd3e2efe88b711c7eebd8b840c2cbcfeed6877393a39f75f473812b99d6c2d927968 From b8758c2ddd39701ea98c4ec846c5dde30f275312 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 4 Aug 2023 14:13:51 +0100 Subject: [PATCH 360/459] Annocheck: Change GO FIPS test to look for CGO_ENABLED markers. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 4079906..4918be7 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.23 +Version: 12.24 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Aug 04 2023 Nick Clifron - 12.24-1 +- Annocheck: Change GO FIPS test to look for CGO_ENABLED markers. + * Mon Jul 31 2023 Nick Clifron - 12.23-1 - Annocheck: Add test for FIPS compliant GO binaries. diff --git a/sources b/sources index 4d50c2e..b742234 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.23.tar.xz) = 6716d5525d77b39bce0f05158753e6badb8c27529f71d4f65d511ea6430dcd3e2efe88b711c7eebd8b840c2cbcfeed6877393a39f75f473812b99d6c2d927968 +SHA512 (annobin-12.24.tar.xz) = 1f095d6fa2f53fecf25c4c9c0bc9fad35da5c6050c567fa6e5c8cdb42e9948f38f43d8f8136a6eb44bd8e9d1d42e1c26e396895ecec22550a5069f995f376139 From d4a01699fcb497ab857aac0e694a0ba368bb58fd Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 30 Aug 2023 08:32:43 +0100 Subject: [PATCH 361/459] GCC Plugin: Enable string note format by default. --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 4918be7..1ccae96 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.24 +Version: 12.25 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -67,7 +67,7 @@ Source: https://nickc.fedorapeople.org/%{annobin_sources} %global annobin_source_dir %{_usrsrc}/annobin # Insert patches here, if needed. Eg: -Patch01: annobin-plugin-default-string-notes.patch +# Patch01: annobin-plugin-default-string-notes.patch #--------------------------------------------------------------------------------- @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Aug 30 2023 Nick Clifron - 12.25-1 +- GCC Plugin: Enable string note format by default. + * Fri Aug 04 2023 Nick Clifron - 12.24-1 - Annocheck: Change GO FIPS test to look for CGO_ENABLED markers. diff --git a/sources b/sources index b742234..c8284ab 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.24.tar.xz) = 1f095d6fa2f53fecf25c4c9c0bc9fad35da5c6050c567fa6e5c8cdb42e9948f38f43d8f8136a6eb44bd8e9d1d42e1c26e396895ecec22550a5069f995f376139 +SHA512 (annobin-12.25.tar.xz) = 44eea7dbc99cc42de8ff4649396240470d123f36d703b83f85b81a770155b46005ed96acefb6467429046075fab7ad361ee9b1f00eb267a68f68a7835a00cbcc From 9aa8c4025ec2b5adf24ab29f0dac5d511971213b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 6 Sep 2023 08:26:36 +0100 Subject: [PATCH 362/459] LLVM Plugin: Fix building with LLVM version 17. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 1ccae96..daf1424 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.25 +Version: 12.26 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Sep 06 2023 Nick Clifron - 12.26-1 +- LLVM Plugin: Fix building with LLVM version 17. + * Wed Aug 30 2023 Nick Clifron - 12.25-1 - GCC Plugin: Enable string note format by default. diff --git a/sources b/sources index c8284ab..ad4f1fa 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.25.tar.xz) = 44eea7dbc99cc42de8ff4649396240470d123f36d703b83f85b81a770155b46005ed96acefb6467429046075fab7ad361ee9b1f00eb267a68f68a7835a00cbcc +SHA512 (annobin-12.26.tar.xz) = 979643818fa794b74c8fdfc02404988f85da67d2c45afaa35f05f1127a537d8db9f710531043c625d7a2b6625f24c5b3c1f584519925182ef3786d415ce70ad8 From 290b9207f3bde7543a93f24efb77464829b66981 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 26 Sep 2023 11:18:36 +0100 Subject: [PATCH 363/459] Remove redundant patch --- annobin-plugin-default-string-notes.patch | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 annobin-plugin-default-string-notes.patch diff --git a/annobin-plugin-default-string-notes.patch b/annobin-plugin-default-string-notes.patch deleted file mode 100644 index 29b68b7..0000000 --- a/annobin-plugin-default-string-notes.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- annobin.orig/gcc-plugin/annobin.cc 2023-05-05 11:03:18.395959180 +0100 -+++ annobin-12.10/gcc-plugin/annobin.cc 2023-05-05 11:04:03.241964885 +0100 -@@ -80,7 +80,7 @@ unsigned long annobin_max_stack_size = - bool annobin_is_64bit = false; - - /* Where to put notes. */ --note_type annobin_note_format = note; -+note_type annobin_note_format = string; - - /* Default to using section groups as the link-order - method needs a linker from binutils 2.36 or later. */ From 820e8490c1d933e684fd4d7d565f2403ad0c290b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 26 Sep 2023 14:59:48 +0100 Subject: [PATCH 364/459] 12.27: Add detection and reporting of the absence of -Wimplicit-int and -Wimplicit-function-declaration --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index daf1424..96dfbec 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.26 +Version: 12.27 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Sep 26 2023 Nick Clifron - 12.27-1 +- GCC Plugin: Record settings of -Wimplicit-int and -Wimplicit-function-declaration. + * Wed Sep 06 2023 Nick Clifron - 12.26-1 - LLVM Plugin: Fix building with LLVM version 17. diff --git a/sources b/sources index ad4f1fa..84caeb6 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.26.tar.xz) = 979643818fa794b74c8fdfc02404988f85da67d2c45afaa35f05f1127a537d8db9f710531043c625d7a2b6625f24c5b3c1f584519925182ef3786d415ce70ad8 +SHA512 (annobin-12.27.tar.xz) = fd1c603aa5f59e3949a544e9bde6adc6ad695ced132e9a0fd2a7990dda9d58b8be69e1f99f3c874d88dd23793ecf2c78f08089a8a22bf62ed0ee984ed03a13c9 From 518e422ce8bc2652d1f15d290b986bba47063a7c Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 6 Oct 2023 13:30:21 +0100 Subject: [PATCH 365/459] GCC Plugin: Record settings of -Wstrict-flex-arrays and -fstrict-flex-arrays Annobin: Add future test of these options. --- annobin.spec | 7 ++++++- sources | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 96dfbec..4434e8d 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.27 +Version: 12.28 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -524,8 +524,13 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Oct 06 2023 Nick Clifron - 12.28-1 +- GCC Plugin: Record settings of -Wstrict-flex-arrays and -fstrict-flex-arrays +- Annobin: Add future test of these options. + * Tue Sep 26 2023 Nick Clifron - 12.27-1 - GCC Plugin: Record settings of -Wimplicit-int and -Wimplicit-function-declaration. +- Annobin: Add test for these warnings. * Wed Sep 06 2023 Nick Clifron - 12.26-1 - LLVM Plugin: Fix building with LLVM version 17. diff --git a/sources b/sources index 84caeb6..46c32fe 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.27.tar.xz) = fd1c603aa5f59e3949a544e9bde6adc6ad695ced132e9a0fd2a7990dda9d58b8be69e1f99f3c874d88dd23793ecf2c78f08089a8a22bf62ed0ee984ed03a13c9 +SHA512 (annobin-12.28.tar.xz) = 624373d1eba36bc7a0804e0b33dfcb9a8c2415047329c5b96fd6cc2d88cbc9a355bd36ecb00214c4928f6fb4968ec910d76c8ca361b1c13584d4a06f3ee97b05 From e6c17188a886ee14dc0daaf6da1ce9cf92f81d7b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 30 Oct 2023 10:12:51 +0000 Subject: [PATCH 366/459] Fix atexit test failure. Notes: Add support for string format notes. --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 4434e8d..b4a87a7 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.28 +Version: 12.29 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -524,6 +524,10 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Oct 30 2023 Nick Clifron - 12.29-1 +- Fix atexit test failure. +- Notes: Add support for string format notes. + * Fri Oct 06 2023 Nick Clifron - 12.28-1 - GCC Plugin: Record settings of -Wstrict-flex-arrays and -fstrict-flex-arrays - Annobin: Add future test of these options. diff --git a/sources b/sources index 46c32fe..fac0d93 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.28.tar.xz) = 624373d1eba36bc7a0804e0b33dfcb9a8c2415047329c5b96fd6cc2d88cbc9a355bd36ecb00214c4928f6fb4968ec910d76c8ca361b1c13584d4a06f3ee97b05 +SHA512 (annobin-12.29.tar.xz) = 689aa891ca9eebb5d8c0d2603c02e973ff65af7fb639839cbabed0a4d647db59d04eb49670e71081d81b6fe4a4ad34acc129a73ff3b609f7921932ce1f675968 From 7bfea6e7ea7df5828d6ffb1a5f2b3c94e01c2857 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 1 Nov 2023 16:23:37 +0000 Subject: [PATCH 367/459] Fix another atexit test failure. (#2247481) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index b4a87a7..d3584de 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.29 +Version: 12.30 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Nov 01 2023 Nick Clifron - 12.30-1 +- Fix another atexit test failure. (#2247481) + * Mon Oct 30 2023 Nick Clifron - 12.29-1 - Fix atexit test failure. - Notes: Add support for string format notes. diff --git a/sources b/sources index fac0d93..a37e1bd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.29.tar.xz) = 689aa891ca9eebb5d8c0d2603c02e973ff65af7fb639839cbabed0a4d647db59d04eb49670e71081d81b6fe4a4ad34acc129a73ff3b609f7921932ce1f675968 +SHA512 (annobin-12.30.tar.xz) = 57516fa066fe9f34c31fd3fb55b57246f2d1e33c5029a7396ec565682c16f7b2a7d9d73e2709769db9c29d6618e6415c240435350c98394aec5493a1e3410206 From 0a315f72677e6bdd38130446da7863adff6669a6 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 15 Nov 2023 15:56:06 +0000 Subject: [PATCH 368/459] Update glibc detection heuristics for PPC64. (RHEL-16453) --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index d3584de..ce02815 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,9 +1,9 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.30 +Version: 12.31 Release: 1%{?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 +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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com # Web Page: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Nov 15 2023 Nick Clifron - 12.31-1 +- Update glibc detection heuristics for PPC64. (RHEL-16453) + * Wed Nov 01 2023 Nick Clifron - 12.30-1 - Fix another atexit test failure. (#2247481) diff --git a/sources b/sources index a37e1bd..7f75d2e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.30.tar.xz) = 57516fa066fe9f34c31fd3fb55b57246f2d1e33c5029a7396ec565682c16f7b2a7d9d73e2709769db9c29d6618e6415c240435350c98394aec5493a1e3410206 +SHA512 (annobin-12.31.tar.xz) = 792fb1eba3b64cc12dba7be62700ab87818c5556c7768ed372eb923b5c4d3631b440d58439cf8cc98fd6d1cfc09ba127b59013496e5cdfc8dfe0dea3c55eb69e From 5e535c171ff495fbb549c246654cd208218f0d88 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 24 Nov 2023 11:10:53 +0000 Subject: [PATCH 369/459] GCC Plugin: Add support for -fhardended. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index ce02815..1bd62f5 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.31 +Version: 12.32 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Nov 24 2023 Nick Clifron - 12.32-1 +- GCC Plugin: Add support for -fhardended. + * Wed Nov 15 2023 Nick Clifron - 12.31-1 - Update glibc detection heuristics for PPC64. (RHEL-16453) diff --git a/sources b/sources index 7f75d2e..f3ff8e9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.31.tar.xz) = 792fb1eba3b64cc12dba7be62700ab87818c5556c7768ed372eb923b5c4d3631b440d58439cf8cc98fd6d1cfc09ba127b59013496e5cdfc8dfe0dea3c55eb69e +SHA512 (annobin-12.32.tar.xz) = 10ab73bc48d0a95102292d90d28c87440b969055ab07e964020703276b6c5db35b8693e828fb0063e1d6e5efb025c8ffe3fafb2dd40377c25767b09a986bc02b From 01a58912b3894da10ce9cb62f0fd2e418fb69f1e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 11 Dec 2023 13:01:20 +0000 Subject: [PATCH 370/459] Tests: Fix implicit-values test so that it will compile with gcc 14+. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 1bd62f5..29e5389 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.32 +Version: 12.33 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Dec 11 2023 Nick Clifron - 12.33-1 +- Tests: Fix implicit-values test so that it will compile with gcc 14+. + * Fri Nov 24 2023 Nick Clifron - 12.32-1 - GCC Plugin: Add support for -fhardended. diff --git a/sources b/sources index f3ff8e9..c0e581b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.32.tar.xz) = 10ab73bc48d0a95102292d90d28c87440b969055ab07e964020703276b6c5db35b8693e828fb0063e1d6e5efb025c8ffe3fafb2dd40377c25767b09a986bc02b +SHA512 (annobin-12.33.tar.xz) = 75992982dace0b53ba0297b9e902995f85e434c2865b424f2bd6c68f8a81d531bd72aed9c364f62965a9119132d79c59c113d6f4e5de58afe583d304a374f5f5 From 0fb7998b16bab030c7fc34df67aa9f4127b3ab76 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 15 Dec 2023 13:31:47 +0000 Subject: [PATCH 371/459] GCC Plugin: Fix recording of the -Wimplicit-int and -Wimplicit-function-declaration warnings. Add active checks for when they are deliberately disabled. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 29e5389..9265610 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.33 +Version: 12.34 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Dec 15 2023 Nick Clifron - 12.34-1 +- GCC Plugin: Fix recording of the -Wimplicit-int and -Wimplicit-function-declaration warnings. Add active checks for when they are deliberately disabled. + * Mon Dec 11 2023 Nick Clifron - 12.33-1 - Tests: Fix implicit-values test so that it will compile with gcc 14+. diff --git a/sources b/sources index c0e581b..0cca17c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.33.tar.xz) = 75992982dace0b53ba0297b9e902995f85e434c2865b424f2bd6c68f8a81d531bd72aed9c364f62965a9119132d79c59c113d6f4e5de58afe583d304a374f5f5 +SHA512 (annobin-12.34.tar.xz) = 91efb6ef501befdd408f72e82a011b434972434755bc0153330685dd3163a21aad5ac6dae65813bbea3bde8eb3f66e8ef6bc35f96aaa8b00ad2848f077abfc53 From 74b0aa2a4f463da41d144b94dc571a6cd565c06c Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 4 Jan 2024 15:00:28 +0000 Subject: [PATCH 372/459] Annocheck: Improve detection of FIPS compliant GO binaries. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 9265610..ec44501 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.34 +Version: 12.35 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -524,6 +524,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Jan 04 2024 Nick Clifron - 12.35-1 +- Annocheck: Improve detection of FIPS compliant GO binaries. + * Fri Dec 15 2023 Nick Clifron - 12.34-1 - GCC Plugin: Fix recording of the -Wimplicit-int and -Wimplicit-function-declaration warnings. Add active checks for when they are deliberately disabled. diff --git a/sources b/sources index 0cca17c..34dd97c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.34.tar.xz) = 91efb6ef501befdd408f72e82a011b434972434755bc0153330685dd3163a21aad5ac6dae65813bbea3bde8eb3f66e8ef6bc35f96aaa8b00ad2848f077abfc53 +SHA512 (annobin-12.35.tar.xz) = 61f615e7ee69467be4bdac397e10e4dc5ecb6d20fb20569ba7fe35e11b18e8e018f5d366c6e184a71701785e83ab3be509f47f6e199b8a40aa5b95e9d7bf4dc0 From 8f0126e8de5029ac7be9edc6f4c4737a1e269909 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 11 Jan 2024 15:27:40 +0000 Subject: [PATCH 373/459] Spec File: Do not install annocheck.1.gz when annocheck is disabled --- annobin.spec | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index ec44501..d40c0b7 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.35 -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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -457,6 +457,11 @@ cp %{_sourcedir}/%{annobin_sources} %{buildroot}%{annobin_source_dir}/latest-ann rm -f %{buildroot}%{_infodir}/dir +# When annocheck is disabled, annocheck.1.gz will still be generated, remove it. +%if %{without annocheck} +rm -f %{_mandir}/man1/annocheck.1.gz +%endif + #--------------------------------------------------------------------------------- %if %{with tests} @@ -524,6 +529,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Jan 11 2024 Songsong Zhang - 12.35-2 +- Spec File: Do not install annocheck.1.gz when annocheck is disabled + * Thu Jan 04 2024 Nick Clifron - 12.35-1 - Annocheck: Improve detection of FIPS compliant GO binaries. From 7c96faca28c48a6c33847b133261c0bce184b4ba Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 15 Jan 2024 09:21:52 +0000 Subject: [PATCH 374/459] NVR bump to allow rebuild in side tag --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index d40c0b7..ab913b1 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.35 -Release: 2%{?dist} +Release: 3%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -529,6 +529,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Jan 15 2024 Songsong Zhang - 12.35-3 +- Spec File: NVR bump to allow rebuild in side tag. + * Thu Jan 11 2024 Songsong Zhang - 12.35-2 - Spec File: Do not install annocheck.1.gz when annocheck is disabled From 7e0b254b145fbe790a72a42368413991aa858e05 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 15 Jan 2024 10:05:28 +0000 Subject: [PATCH 375/459] temporarily disable hard gcc version check --- annobin.spec | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/annobin.spec b/annobin.spec index ab913b1..2da1b8f 100644 --- a/annobin.spec +++ b/annobin.spec @@ -36,9 +36,9 @@ URL: https://sourceware.org/annobin/ # Set this to zero to disable the requirement for a specific version of gcc. # This should only be needed if there is some kind of problem with the version # checking logic or when building on RHEL-7 or earlier. -%global with_hard_gcc_version_requirement 1 +%global with_hard_gcc_version_requirement 0 -%bcond_without plugin_rebuild +%bcond_with plugin_rebuild # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. @@ -50,12 +50,14 @@ URL: https://sourceware.org/annobin/ # # The default is to use plugin during rebuilds (cf BZ 1630550) but this can # be changed because of the need to be able to rebuild annobin when a change -# to gcc breaks the version installed into the buildroot. Mote however that +# to gcc breaks the version installed into the buildroot. Note however that # uncommenting the lines below will result in annocheck not passing the rpminspect # tests.... -# %%if %%{without plugin_rebuild} + +%if %{without plugin_rebuild} %undefine _annotated_build -# %%endif +%endif + #--------------------------------------------------------------------------------- From bcf9899fd26026ee22457ad036a5489fbb9937e5 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 15 Jan 2024 10:53:17 +0000 Subject: [PATCH 376/459] Spec File: NVR bump in order to allow building in side tag. --- annobin.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 2da1b8f..2426be9 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.35 -Release: 3%{?dist} +Release: 4%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -531,11 +531,14 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Jan 15 2024 Songsong Zhang - 12.35-4 +- Spec File: NVR bump in order to allow building in side tag. + * Mon Jan 15 2024 Songsong Zhang - 12.35-3 -- Spec File: NVR bump to allow rebuild in side tag. +- Spec File: Disable hard gcc check in order to allow builds with new version of gcc. * Thu Jan 11 2024 Songsong Zhang - 12.35-2 -- Spec File: Do not install annocheck.1.gz when annocheck is disabled +- Spec File: Do not install annocheck.1.gz when annocheck is disabled. * Thu Jan 04 2024 Nick Clifron - 12.35-1 - Annocheck: Improve detection of FIPS compliant GO binaries. From 9285dfc44f8032bc13e5ba8d6daae9d832a330f8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 16 Jan 2024 11:32:07 +0000 Subject: [PATCH 377/459] Annocheck: Disable cf-protection test for i686 architecture. Resolves: #2258571 --- annobin.spec | 22 ++++++++++++++-------- sources | 2 +- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/annobin.spec b/annobin.spec index 2426be9..8ec9385 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.35 -Release: 4%{?dist} +Version: 12.36 +Release: 1%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -36,9 +36,14 @@ URL: https://sourceware.org/annobin/ # Set this to zero to disable the requirement for a specific version of gcc. # This should only be needed if there is some kind of problem with the version # checking logic or when building on RHEL-7 or earlier. +# +# Update: now that we have gcc version checking support in redhat-rpm-config +# there is no longer a great need for a hard gcc version check here. Not +# enabling this check greatly simplifies the process of installing a new major +# version of gcc into the buildroot. %global with_hard_gcc_version_requirement 0 -%bcond_with plugin_rebuild +%bcond_without plugin_rebuild # Allow the building of annobin without using annobin itself. # This is because if we are bootstrapping a new build environment we can have # a new version of gcc installed, but without a new of annobin installed. @@ -53,11 +58,9 @@ URL: https://sourceware.org/annobin/ # to gcc breaks the version installed into the buildroot. Note however that # uncommenting the lines below will result in annocheck not passing the rpminspect # tests.... - -%if %{without plugin_rebuild} -%undefine _annotated_build -%endif - +# %%if %%{without plugin_rebuild} +# %%undefine _annotated_build +# %%endif #--------------------------------------------------------------------------------- @@ -531,6 +534,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Jan 16 2024 Songsong Zhang - 12.36-1 +- Annocheck: Disable cf-protection test for i686 architecture. (#2258571) + * Mon Jan 15 2024 Songsong Zhang - 12.35-4 - Spec File: NVR bump in order to allow building in side tag. diff --git a/sources b/sources index 34dd97c..b4539cb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.35.tar.xz) = 61f615e7ee69467be4bdac397e10e4dc5ecb6d20fb20569ba7fe35e11b18e8e018f5d366c6e184a71701785e83ab3be509f47f6e199b8a40aa5b95e9d7bf4dc0 +SHA512 (annobin-12.36.tar.xz) = 4e291427fe011774ac8b64647d26502cc9b1d9516ffbb12b3c428524de960a3f79fd9ad87043d0b6fe89d71fdf2b536c766676bfe2dda1af28246fb33518a93d From 14a9d08e3b51048aec58a2b2496e87f6b48e7c4a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 16 Jan 2024 12:09:50 +0000 Subject: [PATCH 378/459] Spec File: NVR bump in order to allow building in side tag. --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 8ec9385..4ca0fdd 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.36 -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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -534,6 +534,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Jan 16 2024 Songsong Zhang - 12.36-2 +- Spec File: NVR bump in order to allow building in side tag. + * Tue Jan 16 2024 Songsong Zhang - 12.36-1 - Annocheck: Disable cf-protection test for i686 architecture. (#2258571) From d284a8fcc19fc1963546805379dc9cd933364605 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 17 Jan 2024 14:24:49 +0000 Subject: [PATCH 379/459] GCC Plugin: Do not use section groups with string notes. --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 4ca0fdd..48f42ab 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.36 -Release: 2%{?dist} +Version: 12.37 +Release: 1%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -534,6 +534,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Jan 17 2024 Nick Clifron - 12.37-1 +- GCC Plugin: DO not use section groups with string format notes. + * Tue Jan 16 2024 Songsong Zhang - 12.36-2 - Spec File: NVR bump in order to allow building in side tag. diff --git a/sources b/sources index b4539cb..8a7888b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.36.tar.xz) = 4e291427fe011774ac8b64647d26502cc9b1d9516ffbb12b3c428524de960a3f79fd9ad87043d0b6fe89d71fdf2b536c766676bfe2dda1af28246fb33518a93d +SHA512 (annobin-12.37.tar.xz) = 8ccfce6c97111fb006b612fad5a8e67136194baf7c238268e62748a82b606c689a5df07ff342f8382ee30d45cc8355b0f4a96e0c100344531ad4c224ee86a9b6 From fd3c6e395f0b08f70290bb6ce45a1b336386f000 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 12:57:19 +0000 Subject: [PATCH 380/459] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 48f42ab..0cbbbb0 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.37 -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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -534,6 +534,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Jan 19 2024 Fedora Release Engineering - 12.37-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Wed Jan 17 2024 Nick Clifron - 12.37-1 - GCC Plugin: DO not use section groups with string format notes. From a27178473cf7708ddb5cc17f437a93a6cf680b2a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 22 Jan 2024 23:03:39 +0000 Subject: [PATCH 381/459] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 0cbbbb0..e186e18 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.37 -Release: 2%{?dist} +Release: 3%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -534,6 +534,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Jan 22 2024 Fedora Release Engineering - 12.37-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Fedora Release Engineering - 12.37-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 060caaa6135e2a27997c9717b74f35963872443d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 23 Jan 2024 11:21:43 +0000 Subject: [PATCH 382/459] Annocheck: Also skip the entry point test for i686 binaries. Resolves: #2258571 --- annobin.spec | 17 ++++++++++------- sources | 2 +- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/annobin.spec b/annobin.spec index e186e18..c5526c4 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.37 -Release: 3%{?dist} +Version: 12.38 +Release: 1%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -534,6 +534,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Jan 23 2024 Nick Clifron - 12.38-1 +- Annocheck: Also skip the entry point test for i686 binaries. (#2258571) + * Mon Jan 22 2024 Fedora Release Engineering - 12.37-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild @@ -543,19 +546,19 @@ make check * Wed Jan 17 2024 Nick Clifron - 12.37-1 - GCC Plugin: DO not use section groups with string format notes. -* Tue Jan 16 2024 Songsong Zhang - 12.36-2 +* Tue Jan 16 2024 Nick Clifron - 12.36-2 - Spec File: NVR bump in order to allow building in side tag. -* Tue Jan 16 2024 Songsong Zhang - 12.36-1 +* Tue Jan 16 2024 Nick Clifron - 12.36-1 - Annocheck: Disable cf-protection test for i686 architecture. (#2258571) -* Mon Jan 15 2024 Songsong Zhang - 12.35-4 +* Mon Jan 15 2024 Nick Clifron - 12.35-4 - Spec File: NVR bump in order to allow building in side tag. -* Mon Jan 15 2024 Songsong Zhang - 12.35-3 +* Mon Jan 15 2024 Nick Clifron - 12.35-3 - Spec File: Disable hard gcc check in order to allow builds with new version of gcc. -* Thu Jan 11 2024 Songsong Zhang - 12.35-2 +* Thu Jan 11 2024 Songsong Zhang - 12.35-2 - Spec File: Do not install annocheck.1.gz when annocheck is disabled. * Thu Jan 04 2024 Nick Clifron - 12.35-1 diff --git a/sources b/sources index 8a7888b..69ea182 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.37.tar.xz) = 8ccfce6c97111fb006b612fad5a8e67136194baf7c238268e62748a82b606c689a5df07ff342f8382ee30d45cc8355b0f4a96e0c100344531ad4c224ee86a9b6 +SHA512 (annobin-12.38.tar.xz) = 97155078848e4d1d58feff2f33a046b6cf4a4936895153ea18805df904939fa35357861e5340f563690c3730858302b9d79e687f3462a116a3a38d52a64691ea From b33d6eb99f2516159179841f74bead60a50d3bb7 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 9 Feb 2024 19:44:11 +0000 Subject: [PATCH 383/459] Annocheck: Also skip property note test for i686 binaries. (#2258571) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index c5526c4..36831fe 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.38 +Version: 12.39 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -534,6 +534,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Feb 09 2024 Nick Clifron - 12.39-1 +- Annocheck: Also skip property note test for i686 binaries. (#2258571) + * Tue Jan 23 2024 Nick Clifron - 12.38-1 - Annocheck: Also skip the entry point test for i686 binaries. (#2258571) diff --git a/sources b/sources index 69ea182..f6007f3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.38.tar.xz) = 97155078848e4d1d58feff2f33a046b6cf4a4936895153ea18805df904939fa35357861e5340f563690c3730858302b9d79e687f3462a116a3a38d52a64691ea +SHA512 (annobin-12.39.tar.xz) = c5d5cb11a85d547aee2866d9724c402fa2fbae0679538f15ee0d78d75dede99f224a0800a143d754e9f5ad22342ec9acdaa5bbae77623b75f5bac3aa56ce332b From 53b741aee7bea9123b334560f93b302b2ab3b140 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 13 Feb 2024 10:41:58 +0000 Subject: [PATCH 384/459] Annocheck: Improve heuristic for skipping LTO and FORTIFY tests. (#2264000) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 36831fe..9c3c642 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.39 +Version: 12.40 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -534,6 +534,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Feb 13 2024 Nick Clifron - 12.30-1 +- Annocheck: Improve heuristic for skipping LTO and FORTIFY tests. (#2264000) + * Fri Feb 09 2024 Nick Clifron - 12.39-1 - Annocheck: Also skip property note test for i686 binaries. (#2258571) diff --git a/sources b/sources index f6007f3..780f6dd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.39.tar.xz) = c5d5cb11a85d547aee2866d9724c402fa2fbae0679538f15ee0d78d75dede99f224a0800a143d754e9f5ad22342ec9acdaa5bbae77623b75f5bac3aa56ce332b +SHA512 (annobin-12.40.tar.xz) = f6219711771d2b84fb5b7afbcbd34a4e1901119ba2dcedb8817ec6b039813dec9b7f1194bd4f71ba802a1c32502f8fd9b995cef20e4724bbcd42516927a7aa0c From f8fff3b527f2a50e9f15f9289a1f361947509b84 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 20 Feb 2024 10:42:34 +0000 Subject: [PATCH 385/459] fix version number in changelog entry --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 9c3c642..0a1ca98 100644 --- a/annobin.spec +++ b/annobin.spec @@ -534,7 +534,7 @@ make check #--------------------------------------------------------------------------------- %changelog -* Tue Feb 13 2024 Nick Clifron - 12.30-1 +* Tue Feb 13 2024 Nick Clifron - 12.40-1 - Annocheck: Improve heuristic for skipping LTO and FORTIFY tests. (#2264000) * Fri Feb 09 2024 Nick Clifron - 12.39-1 From 73b8007ceaf09dc774b60a924ddd0bfa812a8580 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 21 Feb 2024 10:40:46 +0000 Subject: [PATCH 386/459] Spec File: Remove a workaround for ppc64le. --- annobin.spec | 54 +++++++++++++++++++++++++--------------------------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/annobin.spec b/annobin.spec index 0a1ca98..319cc53 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.40 -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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -387,11 +387,6 @@ export CLANG_TARGET_OPTIONS="-mbranch-protection=standard" %endif %endif -%ifarch ppc ppc64 ppc64le -# FIXME: This is a workaround for a problem with the Clang C++ headers. It should not be needed. -export CLANG_TARGET_OPTIONS="-mabi=ibmlongdouble" -%endif - CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CXXFLAGS="$CFLAGS" %configure ${CONFIG_ARGS} || cat config.log %make_build @@ -534,13 +529,16 @@ make check #--------------------------------------------------------------------------------- %changelog -* Tue Feb 13 2024 Nick Clifron - 12.40-1 +* Tue Feb 20 2024 Tulio Magno Quites Machado Filho - 12.40-2 +- Spec File: Remove a workaround for ppc64le. + +* Tue Feb 13 2024 Nick Clifton - 12.40-1 - Annocheck: Improve heuristic for skipping LTO and FORTIFY tests. (#2264000) -* Fri Feb 09 2024 Nick Clifron - 12.39-1 +* Fri Feb 09 2024 Nick Clifton - 12.39-1 - Annocheck: Also skip property note test for i686 binaries. (#2258571) -* Tue Jan 23 2024 Nick Clifron - 12.38-1 +* Tue Jan 23 2024 Nick Clifton - 12.38-1 - Annocheck: Also skip the entry point test for i686 binaries. (#2258571) * Mon Jan 22 2024 Fedora Release Engineering - 12.37-3 @@ -549,67 +547,67 @@ make check * Fri Jan 19 2024 Fedora Release Engineering - 12.37-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild -* Wed Jan 17 2024 Nick Clifron - 12.37-1 +* Wed Jan 17 2024 Nick Clifton - 12.37-1 - GCC Plugin: DO not use section groups with string format notes. -* Tue Jan 16 2024 Nick Clifron - 12.36-2 +* Tue Jan 16 2024 Nick Clifton - 12.36-2 - Spec File: NVR bump in order to allow building in side tag. -* Tue Jan 16 2024 Nick Clifron - 12.36-1 +* Tue Jan 16 2024 Nick Clifton - 12.36-1 - Annocheck: Disable cf-protection test for i686 architecture. (#2258571) -* Mon Jan 15 2024 Nick Clifron - 12.35-4 +* Mon Jan 15 2024 Nick Clifton - 12.35-4 - Spec File: NVR bump in order to allow building in side tag. -* Mon Jan 15 2024 Nick Clifron - 12.35-3 +* Mon Jan 15 2024 Nick Clifton - 12.35-3 - Spec File: Disable hard gcc check in order to allow builds with new version of gcc. * Thu Jan 11 2024 Songsong Zhang - 12.35-2 - Spec File: Do not install annocheck.1.gz when annocheck is disabled. -* Thu Jan 04 2024 Nick Clifron - 12.35-1 +* Thu Jan 04 2024 Nick Clifton - 12.35-1 - Annocheck: Improve detection of FIPS compliant GO binaries. -* Fri Dec 15 2023 Nick Clifron - 12.34-1 +* Fri Dec 15 2023 Nick Clifton - 12.34-1 - GCC Plugin: Fix recording of the -Wimplicit-int and -Wimplicit-function-declaration warnings. Add active checks for when they are deliberately disabled. -* Mon Dec 11 2023 Nick Clifron - 12.33-1 +* Mon Dec 11 2023 Nick Clifton - 12.33-1 - Tests: Fix implicit-values test so that it will compile with gcc 14+. -* Fri Nov 24 2023 Nick Clifron - 12.32-1 +* Fri Nov 24 2023 Nick Clifton - 12.32-1 - GCC Plugin: Add support for -fhardended. -* Wed Nov 15 2023 Nick Clifron - 12.31-1 +* Wed Nov 15 2023 Nick Clifton - 12.31-1 - Update glibc detection heuristics for PPC64. (RHEL-16453) -* Wed Nov 01 2023 Nick Clifron - 12.30-1 +* Wed Nov 01 2023 Nick Clifton - 12.30-1 - Fix another atexit test failure. (#2247481) -* Mon Oct 30 2023 Nick Clifron - 12.29-1 +* Mon Oct 30 2023 Nick Clifton - 12.29-1 - Fix atexit test failure. - Notes: Add support for string format notes. -* Fri Oct 06 2023 Nick Clifron - 12.28-1 +* Fri Oct 06 2023 Nick Clifton - 12.28-1 - GCC Plugin: Record settings of -Wstrict-flex-arrays and -fstrict-flex-arrays - Annobin: Add future test of these options. -* Tue Sep 26 2023 Nick Clifron - 12.27-1 +* Tue Sep 26 2023 Nick Clifton - 12.27-1 - GCC Plugin: Record settings of -Wimplicit-int and -Wimplicit-function-declaration. - Annobin: Add test for these warnings. -* Wed Sep 06 2023 Nick Clifron - 12.26-1 +* Wed Sep 06 2023 Nick Clifton - 12.26-1 - LLVM Plugin: Fix building with LLVM version 17. -* Wed Aug 30 2023 Nick Clifron - 12.25-1 +* Wed Aug 30 2023 Nick Clifton - 12.25-1 - GCC Plugin: Enable string note format by default. -* Fri Aug 04 2023 Nick Clifron - 12.24-1 +* Fri Aug 04 2023 Nick Clifton - 12.24-1 - Annocheck: Change GO FIPS test to look for CGO_ENABLED markers. -* Mon Jul 31 2023 Nick Clifron - 12.23-1 +* Mon Jul 31 2023 Nick Clifton - 12.23-1 - Annocheck: Add test for FIPS compliant GO binaries. -* Wed Jul 26 2023 Nick Clifron - 12.22-1 +* Wed Jul 26 2023 Nick Clifton - 12.22-1 - Annocheck: Fix double free. (#2226749) * Wed Jul 19 2023 Fedora Release Engineering - 12.21-2 From 0effccb8be78abc7df3c1e95f5a5c95dc8a96cb3 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 27 Feb 2024 14:12:46 +0000 Subject: [PATCH 387/459] Clang Plugin: Fix building with Clang 18. GCC Plugin: Add support for MIPS specific target functions; use .dc.a for address expressions in 64-bit ELF format notes. Resolves PR #31414 --- annobin.spec | 11 ++++++++--- sources | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/annobin.spec b/annobin.spec index 319cc53..5288df4 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.40 -Release: 2%{?dist} +Version: 12.41 +Release: 1%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -529,6 +529,11 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Feb 27 2024 Nick Clifton - 12.41-1 +- Clang Plugin: Fix building with Clang 18. (#31414) +- GCC Plugin: Add support for MIPS specific target functions. +- GCC Plugin: Use .dc.a for address expressions in 64-bit ELF format notes. + * Tue Feb 20 2024 Tulio Magno Quites Machado Filho - 12.40-2 - Spec File: Remove a workaround for ppc64le. @@ -548,7 +553,7 @@ make check - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Wed Jan 17 2024 Nick Clifton - 12.37-1 -- GCC Plugin: DO not use section groups with string format notes. +- GCC Plugin: Do not use section groups with string format notes. * Tue Jan 16 2024 Nick Clifton - 12.36-2 - Spec File: NVR bump in order to allow building in side tag. diff --git a/sources b/sources index 780f6dd..a95da6a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.40.tar.xz) = f6219711771d2b84fb5b7afbcbd34a4e1901119ba2dcedb8817ec6b039813dec9b7f1194bd4f71ba802a1c32502f8fd9b995cef20e4724bbcd42516927a7aa0c +SHA512 (annobin-12.41.tar.xz) = 574a77d1d3bdd5c9806492ff072c0e92c8b16785b587bb3148f1f1c41ef8d63fe38c87f80fe7720a2627b0a290d0249314fa6ccb3385db8fda24bf829a84239c From 25eb793fc65f505e95c2f0c7f50f28314592eec1 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 1 Mar 2024 13:23:24 +0000 Subject: [PATCH 388/459] Annocheck: Improve heuristics for locating debug info files. Resolves: #2267097 --- annobin.spec | 14 +++++++++----- sources | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/annobin.spec b/annobin.spec index 5288df4..2581ba7 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.41 +Version: 12.42 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -342,8 +342,8 @@ CONFIG_ARGS="$CONFIG_ARGS --with-debuginfod" CONFIG_ARGS="$CONFIG_ARGS --without-debuginfod" %endif -%if %{with clangplugin} -CONFIG_ARGS="$CONFIG_ARGS --with-clang" +%if %{without clangplugin} +CONFIG_ARGS="$CONFIG_ARGS --without-clang-plugin" %endif %if %{without gccplugin} @@ -352,8 +352,8 @@ CONFIG_ARGS="$CONFIG_ARGS --without-gcc-plugin" CONFIG_ARGS="$CONFIG_ARGS --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR}" %endif -%if %{with llvmplugin} -CONFIG_ARGS="$CONFIG_ARGS --with-llvm" +%if %{without llvmplugin} +CONFIG_ARGS="$CONFIG_ARGS --without-llvm-plugin" %endif %if %{without tests} @@ -529,6 +529,10 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Mar 01 2024 Nick Clifton - 12.42-1 +- Annocheck: Improve heuristics for locating debug info files. (#2267097) +- Configure: Harmonize configure options. + * Tue Feb 27 2024 Nick Clifton - 12.41-1 - Clang Plugin: Fix building with Clang 18. (#31414) - GCC Plugin: Add support for MIPS specific target functions. diff --git a/sources b/sources index a95da6a..d723b27 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.41.tar.xz) = 574a77d1d3bdd5c9806492ff072c0e92c8b16785b587bb3148f1f1c41ef8d63fe38c87f80fe7720a2627b0a290d0249314fa6ccb3385db8fda24bf829a84239c +SHA512 (annobin-12.42.tar.xz) = 3f0a4610a458ef354844d204d87ac58bf61fba09e56afc7138086a1e419075681afa3d7c82090385a5c252905865be7a2bf8ad27001f69b3ba15f4748cc92cba From 69b1a48d80c018919ae524c771a834cce6e4da70 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 5 Mar 2024 19:15:50 +0000 Subject: [PATCH 389/459] LLVM Plugin: Use llvm-config to get the correct paths and options for building executables. Clang Plugin: Likewise. Enable silent rules for most building. Annocheck: Correctly extract DWARF attributes from DT_REL files. --- annobin.spec | 8 +++++++- sources | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 2581ba7..7f5e8dc 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.42 +Version: 12.43 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -529,6 +529,12 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Mar 05 2024 Nick Clifton - 12.42-1 +- LLVM Plugin: Use llvm-config to get the correct paths and options for building executables. +- Clang Plugin: Likewise. +- Enable silent rules for most building. +- Annocheck: Correctly extract DWARF attributes from DT_REL files. + * Fri Mar 01 2024 Nick Clifton - 12.42-1 - Annocheck: Improve heuristics for locating debug info files. (#2267097) - Configure: Harmonize configure options. diff --git a/sources b/sources index d723b27..ba749bc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.42.tar.xz) = 3f0a4610a458ef354844d204d87ac58bf61fba09e56afc7138086a1e419075681afa3d7c82090385a5c252905865be7a2bf8ad27001f69b3ba15f4748cc92cba +SHA512 (annobin-12.43.tar.xz) = 6d3906847611cf95521b3adce065ac0f6b84f57f12726035287c379e7a7d9f4423b7ac894838c77268e482b7c8e749c378c4dcb399cb2f3db69386f5c9dd4d4e From 5f0f6e213007c19f03488fc2dcf610f4023df7a8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 6 Mar 2024 11:09:08 +0000 Subject: [PATCH 390/459] Configure: Remove check for FrontendPluginRegistry.h header as it is stored in a non-standard location on Debian systems. Debuginfod test: Allow for the libdwfl library silently contacting the debuginfod server. --- annobin.spec | 8 ++++++-- sources | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 7f5e8dc..9dc5828 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.43 +Version: 12.44 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -529,7 +529,11 @@ make check #--------------------------------------------------------------------------------- %changelog -* Tue Mar 05 2024 Nick Clifton - 12.42-1 +* Wed Mar 06 2024 Nick Clifton - 12.44-1 +- Configure: Remove check for FrontendPluginRegistry.h header as it is stored in a non-standard location on Debian systems. +- Debuginfod test: Allow for the libdwfl library silently contacting the debuginfod server. + +* Tue Mar 05 2024 Nick Clifton - 12.43-1 - LLVM Plugin: Use llvm-config to get the correct paths and options for building executables. - Clang Plugin: Likewise. - Enable silent rules for most building. diff --git a/sources b/sources index ba749bc..6033c0d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.43.tar.xz) = 6d3906847611cf95521b3adce065ac0f6b84f57f12726035287c379e7a7d9f4423b7ac894838c77268e482b7c8e749c378c4dcb399cb2f3db69386f5c9dd4d4e +SHA512 (annobin-12.44.tar.xz) = 9da79cbeb34ce3f9871e214f7af13ac6765fe526593206612bffee0de592ae2745415f91048af155632c26d608ed094d59770388c414c31ca4dc991f0b5acf29 From 47385af4e7c241efb560a15fce4f4f53c9b12b20 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 21 Mar 2024 13:55:31 +0000 Subject: [PATCH 391/459] GCC Plugin: Fix bug extracing the value of target specific command line options. --- annobin.spec | 15 ++++++--------- sources | 2 +- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/annobin.spec b/annobin.spec index 9dc5828..a838a35 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.44 +Version: 12.45 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -363,11 +363,8 @@ CONFIG_ARGS="$CONFIG_ARGS --without-tests" %if %{without annocheck} CONFIG_ARGS="$CONFIG_ARGS --without-annocheck" %else -# Fedora supports AArch64's -mbranch-protection=bti, RHEL does not. -%if 0%{?fedora} != 0 export CFLAGS="$CFLAGS -DAARCH64_BRANCH_PROTECTION_SUPPORTED=1" %endif -%endif %set_build_flags @@ -375,17 +372,14 @@ export CFLAGS="$CFLAGS $RPM_OPT_FLAGS %build_cflags" export LDFLAGS="$LDFLAGS %build_ldflags" # Set target-specific security options to be used when building the -# Clang and LLVM plugins. FIXME: There should be a better way to do -# this. +# Clang and LLVM plugins. +# FIXME: There should be a better way to do this. %ifarch %{ix86} x86_64 export CLANG_TARGET_OPTIONS="-fcf-protection" %endif - %ifarch aarch64 -%if 0%{?fedora} != 0 export CLANG_TARGET_OPTIONS="-mbranch-protection=standard" %endif -%endif CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CXXFLAGS="$CFLAGS" %configure ${CONFIG_ARGS} || cat config.log @@ -529,6 +523,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Mar 21 2024 Nick Clifton - 12.45-1 +- GCC Plugin: Fix bug extracing the value of target specific command line options. + * Wed Mar 06 2024 Nick Clifton - 12.44-1 - Configure: Remove check for FrontendPluginRegistry.h header as it is stored in a non-standard location on Debian systems. - Debuginfod test: Allow for the libdwfl library silently contacting the debuginfod server. diff --git a/sources b/sources index 6033c0d..b7dbbe2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.44.tar.xz) = 9da79cbeb34ce3f9871e214f7af13ac6765fe526593206612bffee0de592ae2745415f91048af155632c26d608ed094d59770388c414c31ca4dc991f0b5acf29 +SHA512 (annobin-12.45.tar.xz) = 52043e37021463b46f2c103db53dd04ba478170f6bab607b05e430ecfd77c2d7c5465a7b1dd26301effe1125b4653108561ced685401eece1fa882824b6f950b From 303819a5ab54580f02f4d1659066e17473f1d6aa Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 25 Mar 2024 17:14:25 +0000 Subject: [PATCH 392/459] Improve AArch64 branch protection (again) --- annobin.spec | 8 +++++++- sources | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index a838a35..aab36c9 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.45 +Version: 12.46 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -523,6 +523,12 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Mar 25 2024 Tulio Magno Quites Machado Filho - 12.46-1 +- Annocheck: Improve detection of -mbranch-protection option. +- Clang Plugin: Add global-file-syms option. +- LLVM Plugin: Add global-file-syms option. +- Plugins: Add support for ANNOBIN environment variable. + * Thu Mar 21 2024 Nick Clifton - 12.45-1 - GCC Plugin: Fix bug extracing the value of target specific command line options. diff --git a/sources b/sources index b7dbbe2..bc5c161 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.45.tar.xz) = 52043e37021463b46f2c103db53dd04ba478170f6bab607b05e430ecfd77c2d7c5465a7b1dd26301effe1125b4653108561ced685401eece1fa882824b6f950b +SHA512 (annobin-12.46.tar.xz) = 6805298e1168dbdd287e706a5d58de0cf06d715b40254f33d757b356b5655f0d1ddc519c478b836c7b8ee89813982b35fc5bec6384a010e40e0d56888d6eb5b2 From 896c08393d8e62a813b50e1b1e4943d808a1a834 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 27 Mar 2024 15:34:11 +0000 Subject: [PATCH 393/459] Clang & LLVM Plugins: Allow environment to override fortification level. (RHEL-30579) - Spec File: Override fortification level and set it to 3. --- annobin.spec | 21 ++++++++++++++++----- sources | 2 +- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/annobin.spec b/annobin.spec index aab36c9..78d5ec9 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.46 +Version: 12.47 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -371,8 +371,7 @@ export CFLAGS="$CFLAGS -DAARCH64_BRANCH_PROTECTION_SUPPORTED=1" export CFLAGS="$CFLAGS $RPM_OPT_FLAGS %build_cflags" export LDFLAGS="$LDFLAGS %build_ldflags" -# Set target-specific security options to be used when building the -# Clang and LLVM plugins. +# Set target-specific options to be used when building the Clang and LLVM plugins. # FIXME: There should be a better way to do this. %ifarch %{ix86} x86_64 export CLANG_TARGET_OPTIONS="-fcf-protection" @@ -380,6 +379,12 @@ export CLANG_TARGET_OPTIONS="-fcf-protection" %ifarch aarch64 export CLANG_TARGET_OPTIONS="-mbranch-protection=standard" %endif +%ifnarch risv64 +export CLANG_TARGET_OPTIONS="$CLANG_TARGET_OPTIONS -flto" +%endif + +# Override the default fortification level used by the Clang and LLVM plugins. +export PLUGIN_FORTIFY_OPTION="-D_FORTIFY_SOURCE=3" CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CXXFLAGS="$CFLAGS" %configure ${CONFIG_ARGS} || cat config.log @@ -413,12 +418,14 @@ rm %{_tmppath}/tmp_annobin.so %if %{with clangplugin} cp clang-plugin/annobin-for-clang.so %{_tmppath}/tmp_annobin.so -make -C clang-plugin all CXXFLAGS="$OPTS $BUILD_FLAGS" +# To enable verbose more in the plugin append the following: ANNOBIN="verbose" +make -C clang-plugin clean all CLANG_TARGET_OPTIONS="$CLANG_TARGET_OPTIONS $BUILD_FLAGS" %endif %if %{with llvmplugin} cp llvm-plugin/annobin-for-llvm.so %{_tmppath}/tmp_annobin.so -make -C llvm-plugin all CXXFLAGS="$OPTS $BUILD_FLAGS" +# To enable verbose more in the plugin append the following: ANNOBIN_VERBOSE="true" +make -C llvm-plugin clean all CLANG_TARGET_OPTIONS="$CLANG_TARGET_OPTIONS $BUILD_FLAGS" %endif # endif for %%if {with_plugin_rebuild} @@ -523,6 +530,10 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Mar 27 2024 Nick Clifton - 12.47-1 +- Clang & LLVM Plugins: Allow environment to override fortification level. (RHEL-30579) +- Spec File: Override fortification level and set it to 3. + * Mon Mar 25 2024 Tulio Magno Quites Machado Filho - 12.46-1 - Annocheck: Improve detection of -mbranch-protection option. - Clang Plugin: Add global-file-syms option. diff --git a/sources b/sources index bc5c161..6ff094a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.46.tar.xz) = 6805298e1168dbdd287e706a5d58de0cf06d715b40254f33d757b356b5655f0d1ddc519c478b836c7b8ee89813982b35fc5bec6384a010e40e0d56888d6eb5b2 +SHA512 (annobin-12.47.tar.xz) = 3182a948e9ec2b06943fbeace9c6b5cda457e5fe227e702f851592d98f2291959e1969e67c1ef70a509ededc1c2500ab0243f2a317dc4c8a205246cab457a2ba From f781e05bf23703ac01058b6115302f20c7ba58bb Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 2 Apr 2024 12:24:49 +0100 Subject: [PATCH 394/459] Annocheck: Update heuristics for detecting glibc code in executables. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 78d5ec9..e30b793 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.47 +Version: 12.48 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -530,6 +530,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Apr 02 2024 Nick Clifton - 12.48-1 +- Annocheck: Update heuristics for detecting glibc code in executables. (RHEL-30579) + * Wed Mar 27 2024 Nick Clifton - 12.47-1 - Clang & LLVM Plugins: Allow environment to override fortification level. (RHEL-30579) - Spec File: Override fortification level and set it to 3. diff --git a/sources b/sources index 6ff094a..3460bc9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.47.tar.xz) = 3182a948e9ec2b06943fbeace9c6b5cda457e5fe227e702f851592d98f2291959e1969e67c1ef70a509ededc1c2500ab0243f2a317dc4c8a205246cab457a2ba +SHA512 (annobin-12.48.tar.xz) = ed925bdd7cb84b2573174d399f04a45fd45d8a39b9715115561865d3904e58903baecebd59dce2afff2fb3f5046a4bc96e3531bd082480de0c3f412b45269f3e From ea27843b3987855ff4ae205d0c0a5f7228bcf11e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 18 Apr 2024 14:57:25 +0100 Subject: [PATCH 395/459] GCC Plugin: Disable active check for -Wimplicit-int for non-C sources. (#2275884) --- annobin.spec | 8 +++++++- sources | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index e30b793..c6c96e0 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.48 +Version: 12.49 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -530,6 +530,12 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Apr 18 2024 Nick Clifton - 12.49-1 +- GCC Plugin: Disable active check for -Wimplicit-int for non-C sources. (#2275884) +- Annocheck: Ignore stack checks for AMD GPU binaries. +- Annocheck: Do not produce FAIL result for i686 binaries in the RHEL-10 profile. +- Annocheck: Test for __stack_chk_guard being writeable. + * Tue Apr 02 2024 Nick Clifton - 12.48-1 - Annocheck: Update heuristics for detecting glibc code in executables. (RHEL-30579) diff --git a/sources b/sources index 3460bc9..2838410 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.48.tar.xz) = ed925bdd7cb84b2573174d399f04a45fd45d8a39b9715115561865d3904e58903baecebd59dce2afff2fb3f5046a4bc96e3531bd082480de0c3f412b45269f3e +SHA512 (annobin-12.49.tar.xz) = 830e041b351a56be4c13a2962d358b59c174fc79448461e23e7e7b085bd0848cda0e36bbefb3ec83f4ed9041f776b20bf50bd7771a898ca6a78e2d3d91ad3b3c From 3c6b5392cb055dbe86849f1d2cc56148a76dcc5e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 22 Apr 2024 10:10:53 +0100 Subject: [PATCH 396/459] Annocheck: Skip AArch64 branch protection test for GO binaries. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index c6c96e0..7716c51 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.49 +Version: 12.50 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -530,6 +530,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Apr 22 2024 Nick Clifton - 12.50-1 +- Annocheck: Skip AArch64 branch protection test for GO binaries. + * Thu Apr 18 2024 Nick Clifton - 12.49-1 - GCC Plugin: Disable active check for -Wimplicit-int for non-C sources. (#2275884) - Annocheck: Ignore stack checks for AMD GPU binaries. diff --git a/sources b/sources index 2838410..4cb2afd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.49.tar.xz) = 830e041b351a56be4c13a2962d358b59c174fc79448461e23e7e7b085bd0848cda0e36bbefb3ec83f4ed9041f776b20bf50bd7771a898ca6a78e2d3d91ad3b3c +SHA512 (annobin-12.50.tar.xz) = cbb8b723b623c805c25c104626d49dc98122beac0e3396943ddbeee35d31f496bbaa7aa7ac402648fb0f69dbcbe9c57053d3451fc9ef13b81e3547ea4b5133f1 From bfcebe5b7a125630c72292fab192625556e40dd0 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 23 Apr 2024 14:01:09 +0100 Subject: [PATCH 397/459] Annocheck: Test for gaps even when only one note is present. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 7716c51..2ebfd0a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.50 +Version: 12.51 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -530,6 +530,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Apr 23 2024 Nick Clifton - 12.51-1 +- Annocheck: Test for gaps even when only one note is present. + * Mon Apr 22 2024 Nick Clifton - 12.50-1 - Annocheck: Skip AArch64 branch protection test for GO binaries. diff --git a/sources b/sources index 4cb2afd..f0f2149 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.50.tar.xz) = cbb8b723b623c805c25c104626d49dc98122beac0e3396943ddbeee35d31f496bbaa7aa7ac402648fb0f69dbcbe9c57053d3451fc9ef13b81e3547ea4b5133f1 +SHA512 (annobin-12.51.tar.xz) = 349c61b4256e18de9a59f93e29090e6dc0f668b9abac860f88a3e2938d21e674422476f8701c99a15bc83d0255c3e6a59ad0fcf057d094aeb8794380e92fd9b0 From 347ab12f1bc69309e463c5ec1037c9dbd63c3af3 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 23 Apr 2024 17:06:11 +0100 Subject: [PATCH 398/459] Fix typo in RiscV-64 test --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 2ebfd0a..fdcae7d 100644 --- a/annobin.spec +++ b/annobin.spec @@ -379,7 +379,7 @@ export CLANG_TARGET_OPTIONS="-fcf-protection" %ifarch aarch64 export CLANG_TARGET_OPTIONS="-mbranch-protection=standard" %endif -%ifnarch risv64 +%ifnarch riscv64 export CLANG_TARGET_OPTIONS="$CLANG_TARGET_OPTIONS -flto" %endif From 36d58767e858b4d4de03bc7f6f642abd55bf1f1c Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 25 Apr 2024 15:37:11 +0100 Subject: [PATCH 399/459] Annocheck: Add OpenSSL Engine test. (PTG-319) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index fdcae7d..ea30667 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.51 +Version: 12.52 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -530,6 +530,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Apr 25 2024 Nick Clifton - 12.52-1 +- Annocheck: Add OpenSSL Engine test. (PTG-319) + * Tue Apr 23 2024 Nick Clifton - 12.51-1 - Annocheck: Test for gaps even when only one note is present. diff --git a/sources b/sources index f0f2149..9856bd5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.51.tar.xz) = 349c61b4256e18de9a59f93e29090e6dc0f668b9abac860f88a3e2938d21e674422476f8701c99a15bc83d0255c3e6a59ad0fcf057d094aeb8794380e92fd9b0 +SHA512 (annobin-12.52.tar.xz) = d5ef0bf20fb9db1fb3c86000fbd2f130f30fabc45e6ea183438f272f57119f0c34267ce47fe7ba6a9c227657c4aeecb9c71b4390cc808e8d1ddd9fd85ce02c8a From c1911b4522987b1658461a85e9ee05c5f19bb6b5 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 9 May 2024 13:32:34 +0100 Subject: [PATCH 400/459] Annocheck: Defer passing the branch protection test until all notes have been checked. GCC Plugin: Add extra code for detecting the branch protection setting. (RHEL-35958) --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index ea30667..e44845b 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.52 +Version: 12.53 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -530,6 +530,10 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu May 09 2024 Nick Clifton - 12.53-1 +- Annocheck: Defer passing the branch protection test until all notes have been checked. +- GCC Plugin: Add extra code for detecting the branch protection setting. (RHEL-35958) + * Thu Apr 25 2024 Nick Clifton - 12.52-1 - Annocheck: Add OpenSSL Engine test. (PTG-319) diff --git a/sources b/sources index 9856bd5..99eb3e9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.52.tar.xz) = d5ef0bf20fb9db1fb3c86000fbd2f130f30fabc45e6ea183438f272f57119f0c34267ce47fe7ba6a9c227657c4aeecb9c71b4390cc808e8d1ddd9fd85ce02c8a +SHA512 (annobin-12.53.tar.xz) = c8db1e76f13e2384c28682682aaeebf652c7077024b0b7a3db73a28da4cdc28bf78c2991cb7bd0ee4c72d270712e74243df12f832ea50b46c02228240f84aa63 From ccc51555db99c79d475e491aa1e6496bf64c0818 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 9 May 2024 14:57:48 +0100 Subject: [PATCH 401/459] Spec File: Add the annobin source directory to the files section. (#2279779) --- annobin.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index e44845b..4c0b55f 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.53 -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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -513,6 +513,7 @@ make check %{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0 %{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0.0.0 %{ANNOBIN_GCC_PLUGIN_DIR}/%{aver} +%dir %{annobin_source_dir} %{annobin_source_dir}/latest-annobin.tar.xz %endif @@ -530,6 +531,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu May 09 2024 Nick Clifton - 12.53-2 +- Spec File: Add the annobin source directory to the files section. (#2279779) + * Thu May 09 2024 Nick Clifton - 12.53-1 - Annocheck: Defer passing the branch protection test until all notes have been checked. - GCC Plugin: Add extra code for detecting the branch protection setting. (RHEL-35958) From 2f7d934a1b776a0f1b9597924d233b0c33f1fce9 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 14 May 2024 13:12:09 +0100 Subject: [PATCH 402/459] Annocheck: Remove some false positives for Rust binaries. (#2280239) --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 4c0b55f..a6feafc 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.53 -Release: 2%{?dist} +Version: 12.54 +Release: 1%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -531,6 +531,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue May 14 2024 Nick Clifton - 12.54-1 +- Annocheck: Remove some false positives for Rust binaries. (#2280239) + * Thu May 09 2024 Nick Clifton - 12.53-2 - Spec File: Add the annobin source directory to the files section. (#2279779) diff --git a/sources b/sources index 99eb3e9..90a3457 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.53.tar.xz) = c8db1e76f13e2384c28682682aaeebf652c7077024b0b7a3db73a28da4cdc28bf78c2991cb7bd0ee4c72d270712e74243df12f832ea50b46c02228240f84aa63 +SHA512 (annobin-12.54.tar.xz) = 1f7073bce6274a898bb540101db7e27c498ec59a74a2001826a46e356c885f575dc952cda425155bfe26c90049c23b154b2cf5d36b73e5d62df5c7cd82c38977 From 9258b8e3451475655112648224aab73199d47785 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 15 May 2024 09:40:39 +0100 Subject: [PATCH 403/459] Remove spurious tabs in spec file --- annobin.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index a6feafc..744070e 100644 --- a/annobin.spec +++ b/annobin.spec @@ -382,7 +382,7 @@ export CLANG_TARGET_OPTIONS="-mbranch-protection=standard" %ifnarch riscv64 export CLANG_TARGET_OPTIONS="$CLANG_TARGET_OPTIONS -flto" %endif - + # Override the default fortification level used by the Clang and LLVM plugins. export PLUGIN_FORTIFY_OPTION="-D_FORTIFY_SOURCE=3" @@ -1071,7 +1071,7 @@ make check * Fri Dec 17 2021 Nick Clifton - 10.39-1 - Annocheck: Add /usr/lib/ld-linux-aarch64.so.1 to the list of known glibc binaries. (#2033255) - Doc: Note that ENDBR is only needed as the landing pad for indirect branches/calls. (#28705) -- Spec File: Store full gcc version release string in plugin info file. (#2030671) +- Spec File: Store full gcc version release string in plugin info file. (#2030671) * Tue Dec 14 2021 Nick Clifton - 10.38-1 - Annocheck: Add special case for x86_64 RHEL-7 gaps. (#2031133) From bdb24185ac98fe1d67f8953aa4b5f29e4f317f5e Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 20 May 2024 11:01:20 +0100 Subject: [PATCH 404/459] Spec File: Add annobin plugin document directory to the files section. (#2279779) --- annobin.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 744070e..8e7e936 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.54 -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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -484,6 +484,7 @@ make check %files docs %license COPYING3 LICENSE +%dir %{_datadir}/doc/annobin-plugin %exclude %{_datadir}/doc/annobin-plugin/COPYING3 %exclude %{_datadir}/doc/annobin-plugin/LICENSE %doc %{_datadir}/doc/annobin-plugin/annotation.proposal.txt @@ -531,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon May 20 2024 Nick Clifton - 12.54-2 +- Spec File: Add annobin plugin document directory to the files section. (#2279779) + * Tue May 14 2024 Nick Clifton - 12.54-1 - Annocheck: Remove some false positives for Rust binaries. (#2280239) From ae512e7472d2f44d10d053cb6c2a1c6558945ae4 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 20 May 2024 17:02:37 +0100 Subject: [PATCH 405/459] Annocheck: Skip GAPS test for GO binaries. (RHEL-36308) --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 8e7e936..c2a511d 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.54 -Release: 2%{?dist} +Version: 12.55 +Release: 1%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon May 20 2024 Nick Clifton - 12.55-1 +- Annocheck: Skip GAPS test for GO binaries. (RHEL-36308) + * Mon May 20 2024 Nick Clifton - 12.54-2 - Spec File: Add annobin plugin document directory to the files section. (#2279779) diff --git a/sources b/sources index 90a3457..93a9832 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.54.tar.xz) = 1f7073bce6274a898bb540101db7e27c498ec59a74a2001826a46e356c885f575dc952cda425155bfe26c90049c23b154b2cf5d36b73e5d62df5c7cd82c38977 +SHA512 (annobin-12.55.tar.xz) = b63f866c997487bf4f9638dc5fd5bc76dab6ca1c437b05e745e410c9ca04e0ca8d7b4f89ebf855437a2413ef2b0695dfdbade38666eb4474c111de903ca8312c From d6a496d36f9bfc9c10f424a38c81a6d06c95d76f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 4 Jun 2024 12:59:30 +0100 Subject: [PATCH 406/459] Annocheck: Add tweaks for mixed Rust/C binaries. Annocheck: Add more glibc source file names. Resolves: #2284605 --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index c2a511d..f7d3b41 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.55 +Version: 12.57 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,10 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Jun 04 2024 Nick Clifton - 12.57-1 +- Annocheck: Add tweaks for mixed Rust/C binaries. (#2284605) +- Annocheck: Add more glibc source file names. + * Mon May 20 2024 Nick Clifton - 12.55-1 - Annocheck: Skip GAPS test for GO binaries. (RHEL-36308) diff --git a/sources b/sources index 93a9832..b428cb7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.55.tar.xz) = b63f866c997487bf4f9638dc5fd5bc76dab6ca1c437b05e745e410c9ca04e0ca8d7b4f89ebf855437a2413ef2b0695dfdbade38666eb4474c111de903ca8312c +SHA512 (annobin-12.57.tar.xz) = 9d4b2931979ea014826bafa9e3d7e1fc332af0dcaf6d6e7ce94a5d01971b4247b4dbd3a5175ca0b0cb0a545d228689e67889b9d73aa2b9986d5587da64711de3 From 259c41299f586be6cff77a92462d66fba6d1a5d8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 10 Jun 2024 20:21:55 +0100 Subject: [PATCH 407/459] Annocheck: Add improvements for handling Clang runtime binaries. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index f7d3b41..2a1c747 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.57 +Version: 12.58 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Jun 10 2024 Nick Clifton - 12.58-1 +- Annocheck: Add improvements for handling Clang runtime binaries. + * Tue Jun 04 2024 Nick Clifton - 12.57-1 - Annocheck: Add tweaks for mixed Rust/C binaries. (#2284605) - Annocheck: Add more glibc source file names. diff --git a/sources b/sources index b428cb7..cf990dd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.57.tar.xz) = 9d4b2931979ea014826bafa9e3d7e1fc332af0dcaf6d6e7ce94a5d01971b4247b4dbd3a5175ca0b0cb0a545d228689e67889b9d73aa2b9986d5587da64711de3 +SHA512 (annobin-12.58.tar.xz) = f39993fdd8ec77e4a9ad68c8bcac844a76b504fec9bdbc1ccac9cbdbafc71bc17f86516895449fea80d62c3e67c600cfff0c4715084d3e90ba91fd41b059b122 From e3ef33dbabf1299b90026f92f9e01c282a9a11d8 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 11 Jun 2024 11:09:31 +0100 Subject: [PATCH 408/459] Annocheck: Add heuristic for detecting parts of the CGO runtime library. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 2a1c747..df81a90 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.58 +Version: 12.59 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Jun 11 2024 Nick Clifton - 12.59-1 +- Annocheck: Add heuristic for detecting parts of the CGO runtime library. + * Mon Jun 10 2024 Nick Clifton - 12.58-1 - Annocheck: Add improvements for handling Clang runtime binaries. diff --git a/sources b/sources index cf990dd..d352251 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.58.tar.xz) = f39993fdd8ec77e4a9ad68c8bcac844a76b504fec9bdbc1ccac9cbdbafc71bc17f86516895449fea80d62c3e67c600cfff0c4715084d3e90ba91fd41b059b122 +SHA512 (annobin-12.59.tar.xz) = a4a636eacd5553d53c56532b4a9d9104b682b738dc6c6b04a2bfd07b853470495f5acb1d4a25c0ac051b38380e2e39f2ee55f6632080fc62202782bd86db82ec From ef0b5b688f28fde4bd4762ae1ea19ded6437be34 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 26 Jun 2024 13:14:34 +0100 Subject: [PATCH 409/459] Annocheck: Add support for Fortran binaries. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index df81a90..21c530d 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.59 +Version: 12.60 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Jun 26 2024 Nick Clifton - 12.60-1 +- Annocheck: Add support for Fortran binaries. + * Tue Jun 11 2024 Nick Clifton - 12.59-1 - Annocheck: Add heuristic for detecting parts of the CGO runtime library. diff --git a/sources b/sources index d352251..f63f4c1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.59.tar.xz) = a4a636eacd5553d53c56532b4a9d9104b682b738dc6c6b04a2bfd07b853470495f5acb1d4a25c0ac051b38380e2e39f2ee55f6632080fc62202782bd86db82ec +SHA512 (annobin-12.60.tar.xz) = 811393c5278773ab6bea45271e0495a21c518c591cfa25baf29fc160b3d782d74889276772a6123795bb165d6b5e04764cda939585b243371d07d36b5650c81f From 66acf79a6561735afb9ec3f3384f65edc014eeee Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 8 Jul 2024 16:18:17 +0100 Subject: [PATCH 410/459] Annocheck: Add support for ADA binaries. Annocheck: Add support for binaries built from more than two high level source languages. Annocheck: Add support for object files containing no executable code. Annocheck: Do not FAIL LLVM compiled binaries that have not been built with sanitize-cfi and/or sanitize-safe-stack. --- annobin.spec | 8 +++++++- sources | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 21c530d..1aa0dbd 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.60 +Version: 12.62 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,12 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Jul 08 2024 Nick Clifton - 12.62-1 +- Annocheck: Add support for ADA binaries. +- Annocheck: Add support for binaries built from more than two high level source languages. +- Annocheck: Add support for object files containing no executable code. +- Annocheck: Do not FAIL LLVM compiled binaries that have not been built with sanitize-cfi and/or sanitize-safe-stack. + * Wed Jun 26 2024 Nick Clifton - 12.60-1 - Annocheck: Add support for Fortran binaries. diff --git a/sources b/sources index f63f4c1..883f612 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.60.tar.xz) = 811393c5278773ab6bea45271e0495a21c518c591cfa25baf29fc160b3d782d74889276772a6123795bb165d6b5e04764cda939585b243371d07d36b5650c81f +SHA512 (annobin-12.62.tar.xz) = c60a121227b96a9c6de69e4893967111d439acbf48dac71d70e60c46ea729f6c01a8eac35bd2db6010f722b0731c0440de8be9e0d4f182fd09d86351d79fe5ad From 8b14651d73e5bae16a95bb955ca0217e110744b4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 17:00:25 +0000 Subject: [PATCH 411/459] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 1aa0dbd..4a7b7f4 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.62 -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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Jul 17 2024 Fedora Release Engineering - 12.62-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Mon Jul 08 2024 Nick Clifton - 12.62-1 - Annocheck: Add support for ADA binaries. - Annocheck: Add support for binaries built from more than two high level source languages. From 45d3b32bb5d47a7de4cc9751f5b8b26160b9f866 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 22 Jul 2024 16:41:34 +0100 Subject: [PATCH 412/459] Annocheck: Add improvements to the builtby utility. --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 4a7b7f4..f71b50b 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.62 -Release: 2%{?dist} +Version: 12.63 +Release: 1%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Jul 22 2024 Nick Clifton - 12.63-1 +- Annocheck: Add improvements to the builtby utility. + * Wed Jul 17 2024 Fedora Release Engineering - 12.62-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild diff --git a/sources b/sources index 883f612..b852f8a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.62.tar.xz) = c60a121227b96a9c6de69e4893967111d439acbf48dac71d70e60c46ea729f6c01a8eac35bd2db6010f722b0731c0440de8be9e0d4f182fd09d86351d79fe5ad +SHA512 (annobin-12.63.tar.xz) = e1fcca15b32146272bbeaa24a42263115c35cd47f7c0a82590fd432c5dd519e87740b6ef1246dd6419d763f99797e6910e64f9c90e6cba188f9e77c7a18e26cc From 0e3736f8d5f19164aaec9d3b5b541fca1faa8c15 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 26 Jul 2024 11:36:40 +0100 Subject: [PATCH 413/459] GCC Plugin: Fix building AArch64 component with GCC < 11.5 --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index f71b50b..35a74e7 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.63 +Version: 12.64 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Jul 26 2024 Nick Clifton - 12.64-1 +- GCC Plugin: Fix building AArch64 components with gcc earlier than 11.3. + * Mon Jul 22 2024 Nick Clifton - 12.63-1 - Annocheck: Add improvements to the builtby utility. diff --git a/sources b/sources index b852f8a..729b8e2 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.63.tar.xz) = e1fcca15b32146272bbeaa24a42263115c35cd47f7c0a82590fd432c5dd519e87740b6ef1246dd6419d763f99797e6910e64f9c90e6cba188f9e77c7a18e26cc +SHA512 (annobin-12.64.tar.xz) = 369ba1d4fffaaf860216954dddccb585aa0522cd49194f0ea9e81fb0a21be103bfa5a1d6ada22864e38a779ddb24a19aa37a32f9522537a7ff0ef43c4c0d5870 From 971ba2a8a8696af2c35d069471b3e252262ca7b2 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 29 Jul 2024 14:26:39 +0100 Subject: [PATCH 414/459] Annocheck: Fix recording arguments for later re-use. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 35a74e7..94b7591 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.64 +Version: 12.65 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Jul 29 2024 Nick Clifton - 12.65-1 +- Annocheck: Fix recording arguments for later re-use. (RHEL-50802) + * Fri Jul 26 2024 Nick Clifton - 12.64-1 - GCC Plugin: Fix building AArch64 components with gcc earlier than 11.3. diff --git a/sources b/sources index 729b8e2..b6842bd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.64.tar.xz) = 369ba1d4fffaaf860216954dddccb585aa0522cd49194f0ea9e81fb0a21be103bfa5a1d6ada22864e38a779ddb24a19aa37a32f9522537a7ff0ef43c4c0d5870 +SHA512 (annobin-12.65.tar.xz) = ebe4736b4691e4d4846dfd0f0b1d417069a2fb7d6f1d176efb8bacd5f685b534e0045fb956fa656d3f41dda425f5140c81974b07ec22c9ccb1ae493122e42b2b From 723cebcb850ab786f4a796461e6ad3cceb1181d5 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 2 Aug 2024 12:21:43 +0100 Subject: [PATCH 415/459] Annocheck: Fix stack realign test. (#2302427) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 94b7591..ccacebe 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.65 +Version: 12.66 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Aug 02 2024 Nick Clifton - 12.66-1 +- Annocheck: Fix stack realign test. (#2302427) + * Mon Jul 29 2024 Nick Clifton - 12.65-1 - Annocheck: Fix recording arguments for later re-use. (RHEL-50802) diff --git a/sources b/sources index b6842bd..13dec8e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.65.tar.xz) = ebe4736b4691e4d4846dfd0f0b1d417069a2fb7d6f1d176efb8bacd5f685b534e0045fb956fa656d3f41dda425f5140c81974b07ec22c9ccb1ae493122e42b2b +SHA512 (annobin-12.66.tar.xz) = ce735e216266aecd2bc24021934da5f70ba67506464a8dfcb9b564379ddf83f65c0f52756ca60f6777622218da7c1115fdc93082d9c310df87e58a29c072055e From 1af9abd0da96588ad0a8772e71fee5d72191eebd Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 7 Aug 2024 16:11:25 +0100 Subject: [PATCH 416/459] Annocheck: Stop spurious assembler warnings. (RHEL-53213) - Annocheck: Stop warnings about known gaps. (RHEL-53218) --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index ccacebe..aeb1448 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.66 +Version: 12.67 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,10 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Aug 07 2024 Nick Clifton - 12.67-1 +- Annocheck: Stop spurious assembler warnings. (RHEL-53213) +- Annocheck: Stop warnings about known gaps. (RHEL-53218) + * Fri Aug 02 2024 Nick Clifton - 12.66-1 - Annocheck: Fix stack realign test. (#2302427) diff --git a/sources b/sources index 13dec8e..1dbdd18 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.66.tar.xz) = ce735e216266aecd2bc24021934da5f70ba67506464a8dfcb9b564379ddf83f65c0f52756ca60f6777622218da7c1115fdc93082d9c310df87e58a29c072055e +SHA512 (annobin-12.67.tar.xz) = 4c76cfc9faf499e9b016e32b591f96e9b636280190e6dadebd87f3d55416f118e57e50b54ca8dd10437200a0a96463be5ce4f6c663dc00240ed01e90dc69ff3b From 7583405a162217eb3b71f5786abd9c561db36434 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 12 Aug 2024 14:27:20 +0100 Subject: [PATCH 417/459] BuiltBy: Fix seg-fault when comparing language version strings. (RHEL-53497) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index aeb1448..aaaca33 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.67 +Version: 12.69 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Aug 12 2024 Nick Clifton - 12.69-1 +- BuiltBy: Fix seg-fault when comparing language version strings. (RHEL-53497) + * Wed Aug 07 2024 Nick Clifton - 12.67-1 - Annocheck: Stop spurious assembler warnings. (RHEL-53213) - Annocheck: Stop warnings about known gaps. (RHEL-53218) diff --git a/sources b/sources index 1dbdd18..26eab62 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.67.tar.xz) = 4c76cfc9faf499e9b016e32b591f96e9b636280190e6dadebd87f3d55416f118e57e50b54ca8dd10437200a0a96463be5ce4f6c663dc00240ed01e90dc69ff3b +SHA512 (annobin-12.69.tar.xz) = 41a14a2e5a99f9aa08bd54c789c9d8edc4ff7156622c8e42e6bb7f39df1fc2ac343f77b2ad40288f009626dfbb102a0fc98b6e0c2d03d62a18eebdb900f4cbba From f14a6141ce9e8392864da65270dc10bddfa486dc Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 14 Aug 2024 08:31:05 +0100 Subject: [PATCH 418/459] Clang & LLVM Plugins: Include install directory in binary. (RHEL-54069) --- annobin.spec | 9 ++++++--- sources | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/annobin.spec b/annobin.spec index aaaca33..13531ae 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.69 +Version: 12.70 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -419,13 +419,13 @@ rm %{_tmppath}/tmp_annobin.so %if %{with clangplugin} cp clang-plugin/annobin-for-clang.so %{_tmppath}/tmp_annobin.so # To enable verbose more in the plugin append the following: ANNOBIN="verbose" -make -C clang-plugin clean all CLANG_TARGET_OPTIONS="$CLANG_TARGET_OPTIONS $BUILD_FLAGS" +make -C clang-plugin clean all CLANG_TARGET_OPTIONS="$CLANG_TARGET_OPTIONS $BUILD_FLAGS" PLUGIN_INSTALL_DIR=%{clang_plugin_dir} %endif %if %{with llvmplugin} cp llvm-plugin/annobin-for-llvm.so %{_tmppath}/tmp_annobin.so # To enable verbose more in the plugin append the following: ANNOBIN_VERBOSE="true" -make -C llvm-plugin clean all CLANG_TARGET_OPTIONS="$CLANG_TARGET_OPTIONS $BUILD_FLAGS" +make -C llvm-plugin clean all CLANG_TARGET_OPTIONS="$CLANG_TARGET_OPTIONS $BUILD_FLAGS" PLUGIN_INSTALL_DIR=%{llvm_plugin_dir} %endif # endif for %%if {with_plugin_rebuild} @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Aug 13 2024 Nick Clifton - 12.70-1 +- Clang & LLVM Plugins: Include install directory in binary. (RHEL-54069) + * Mon Aug 12 2024 Nick Clifton - 12.69-1 - BuiltBy: Fix seg-fault when comparing language version strings. (RHEL-53497) diff --git a/sources b/sources index 26eab62..9b8ed3f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.69.tar.xz) = 41a14a2e5a99f9aa08bd54c789c9d8edc4ff7156622c8e42e6bb7f39df1fc2ac343f77b2ad40288f009626dfbb102a0fc98b6e0c2d03d62a18eebdb900f4cbba +SHA512 (annobin-12.70.tar.xz) = 50a29a630ab93577c6d79328595248f54f3da050208defe08432e5663e81050d64ca7079d30d2b5b48c3ce86048b631b81d09ff5081abde90ce9137216f1a93e From d1cb3897cd1ef3fd78fd609124cd16f8ea19d8c6 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 14 Oct 2024 11:46:45 +0100 Subject: [PATCH 419/459] GCC Plugin: Change type of the .annobin.notes section from SHT_STRTAB to SHT_PROGBITS. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 13531ae..8f31ab7 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.70 +Version: 12.71 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Oct 14 2024 Nick Clifton - 12.71-1 +- GCC Plugin: Change type of the .annobin.notes section from SHT_STRTAB to SHT_PROGBITS. + * Tue Aug 13 2024 Nick Clifton - 12.70-1 - Clang & LLVM Plugins: Include install directory in binary. (RHEL-54069) diff --git a/sources b/sources index 9b8ed3f..90c4b46 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.70.tar.xz) = 50a29a630ab93577c6d79328595248f54f3da050208defe08432e5663e81050d64ca7079d30d2b5b48c3ce86048b631b81d09ff5081abde90ce9137216f1a93e +SHA512 (annobin-12.71.tar.xz) = 5949923e89610490c1e26ceee3cd1ccc1c6350b8ecd95e56d9373118c9b016fba8fa8b16f6b173a01b4c8adaffd0fb27ac279c356a5217d04c423d97a42af98b From c59a7e6fcd0cf82878f4a24a8787dbb7315365c7 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 1 Nov 2024 17:07:52 +0000 Subject: [PATCH 420/459] Annocheck: Skip FORTIFY and GLIBC_ASSERTIONS tests for LLVM produced binaries with unparseable DW_AT_producer attributes in their DWARF debug info. (RHEL-65411) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 8f31ab7..bd6033e 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.71 +Version: 12.72 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Nov 01 2024 Nick Clifton - 12.72-1 +- Annocheck: Skip FORTIFY and GLIBC_ASSERTIONS tests for LLVM produced binaries with unparseable DW_AT_producer attributes in their DWARF debug info. (RHEL-65411) + * Mon Oct 14 2024 Nick Clifton - 12.71-1 - GCC Plugin: Change type of the .annobin.notes section from SHT_STRTAB to SHT_PROGBITS. diff --git a/sources b/sources index 90c4b46..920ad65 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.71.tar.xz) = 5949923e89610490c1e26ceee3cd1ccc1c6350b8ecd95e56d9373118c9b016fba8fa8b16f6b173a01b4c8adaffd0fb27ac279c356a5217d04c423d97a42af98b +SHA512 (annobin-12.72.tar.xz) = 314bccd27be7814ebc01e03e1f4fd587fde9cd07c6b89d9cd83d05bb0eb82e4b56e055996238a4e5db63cc6dc4d452198945096047f0f329711ced5b49916a9a From 58d868552b72afb9fce83bed82a8837d1c2487b6 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 5 Nov 2024 14:18:23 +0000 Subject: [PATCH 421/459] Annocheck: Skip property note test for i386 binaries created by LLVM. (#2323797) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index bd6033e..7a22d7d 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.72 +Version: 12.73 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Nov 05 2024 Nick Clifton - 12.73-1 +- Annocheck: Skip property note test for i386 binaries created by LLVM. (#2323797) + * Fri Nov 01 2024 Nick Clifton - 12.72-1 - Annocheck: Skip FORTIFY and GLIBC_ASSERTIONS tests for LLVM produced binaries with unparseable DW_AT_producer attributes in their DWARF debug info. (RHEL-65411) diff --git a/sources b/sources index 920ad65..6985404 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.72.tar.xz) = 314bccd27be7814ebc01e03e1f4fd587fde9cd07c6b89d9cd83d05bb0eb82e4b56e055996238a4e5db63cc6dc4d452198945096047f0f329711ced5b49916a9a +SHA512 (annobin-12.73.tar.xz) = 446b3ab573ad84cf5668bd54f18197dba80a3b9b2a80037c6bb551ca2782a30091d2235da1f25adaebb69e0a5e23dda5c0d91f9390cb71fd30b935949141c925 From a136ae0fec49eaf2f571bf5b7af3c4feed5465d2 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 6 Nov 2024 09:00:24 +0000 Subject: [PATCH 422/459] Annocheck: Add exceptions for gcc binaries. (RHEL-33365) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 7a22d7d..9775863 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.73 +Version: 12.74 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Nov 06 2024 Nick Clifton - 12.74-1 +- Annocheck: Add exceptions for gcc binaries. (RHEL-33365) + * Tue Nov 05 2024 Nick Clifton - 12.73-1 - Annocheck: Skip property note test for i386 binaries created by LLVM. (#2323797) diff --git a/sources b/sources index 6985404..f842fb8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.73.tar.xz) = 446b3ab573ad84cf5668bd54f18197dba80a3b9b2a80037c6bb551ca2782a30091d2235da1f25adaebb69e0a5e23dda5c0d91f9390cb71fd30b935949141c925 +SHA512 (annobin-12.74.tar.xz) = 0d35bea085ef2aa831a7d352c5fb38232d5b37b12271325a45d64d128e2c68164f5db13f445e37105b687bd84f14dd34fde8a840daed02fb15f89728f0981e37 From 20e56a3c6596a409c1fd2ebec503f4827f9c6694 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 12 Nov 2024 08:51:17 +0000 Subject: [PATCH 423/459] Annocheck: Add more exceptions for gcc binaries. (RHEL-33365) Annocheck: Add --skip-passes option. --- annobin.spec | 6 +++++- sources | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 9775863..85371d0 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.74 +Version: 12.75 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,10 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Nov 12 2024 Nick Clifton - 12.75-1 +- Annocheck: Add more exceptions for gcc binaries. (RHEL-33365) +- Annocheck: Add --skip-passes option. + * Wed Nov 06 2024 Nick Clifton - 12.74-1 - Annocheck: Add exceptions for gcc binaries. (RHEL-33365) diff --git a/sources b/sources index f842fb8..91f07db 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.74.tar.xz) = 0d35bea085ef2aa831a7d352c5fb38232d5b37b12271325a45d64d128e2c68164f5db13f445e37105b687bd84f14dd34fde8a840daed02fb15f89728f0981e37 +SHA512 (annobin-12.75.tar.xz) = 59dc8c670b7b2152821db0da8b921e389c500b0a8f14312e206ff8f188f086bc01cfcfd657db54fd993d195a76888736ad8381436e991ecdd134b3ea2710f85a From bfeba1a32cb8ab554c08aca2db59c81e0d19a8be Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 15 Nov 2024 10:15:41 +0000 Subject: [PATCH 424/459] Annocheck: Rename rwx-seg test to load-segments. Add more checks. Add check for gaps as a future fail. Annocheck: Add --no-allow-excpetions to disable exceptions for known special binaries. Annocheck: Add --enable-future to enable future fail components in normal tests. Annocheck: Fix bug preventing the inclusion of the rpm name in reports. --- annobin.spec | 8 +++++++- sources | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 85371d0..0e1efe2 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.75 +Version: 12.76 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,12 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Nov 15 2024 Nick Clifton - 12.76-1 +- Annocheck: Rename rwx-seg test to load-segments. Add more checks. Add check for gaps as a future fail. +- Annocheck: Add --no-allow-excpetions to disable exceptions for known special binaries. +- Annocheck: Add --enable-future to enable future fail components in normal tests. +- Annocheck: Fix bug preventing the inclusion of the rpm name in reports. + * Tue Nov 12 2024 Nick Clifton - 12.75-1 - Annocheck: Add more exceptions for gcc binaries. (RHEL-33365) - Annocheck: Add --skip-passes option. diff --git a/sources b/sources index 91f07db..45df8eb 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.75.tar.xz) = 59dc8c670b7b2152821db0da8b921e389c500b0a8f14312e206ff8f188f086bc01cfcfd657db54fd993d195a76888736ad8381436e991ecdd134b3ea2710f85a +SHA512 (annobin-12.76.tar.xz) = f7295e2c4db23d477a16fdb81c8b788edfa217f8904ff8b18180d733b5989eff7883a11a7d70b5cacf24593cf2120feacd16d84b28e87d8a06be0374df56ee49 From 66d77f6d2722df83e52e09f5f5ba9fbdc267a030 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 15 Nov 2024 11:02:49 +0000 Subject: [PATCH 425/459] Annocheck: Fix overly long debug messages. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 0e1efe2..45dd433 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.76 +Version: 12.77 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Nov 15 2024 Nick Clifton - 12.77-1 +- Annocheck: Fix overly long debug messages. + * Fri Nov 15 2024 Nick Clifton - 12.76-1 - Annocheck: Rename rwx-seg test to load-segments. Add more checks. Add check for gaps as a future fail. - Annocheck: Add --no-allow-excpetions to disable exceptions for known special binaries. diff --git a/sources b/sources index 45df8eb..48f2290 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.76.tar.xz) = f7295e2c4db23d477a16fdb81c8b788edfa217f8904ff8b18180d733b5989eff7883a11a7d70b5cacf24593cf2120feacd16d84b28e87d8a06be0374df56ee49 +SHA512 (annobin-12.77.tar.xz) = e439f348fad9c4276342e654394be8958356ccee8aa3cb877b853a65f664128b2cbed82edaa3076d1b5d906d586271bb26e3b102a222a58129bc8cc26d345af9 From 336646308344cd722fc46089c1ebe4fd08696f9f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 9 Dec 2024 17:03:30 +0000 Subject: [PATCH 426/459] GCC Plugin: Fix building with gcc 15. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 45dd433..9d5248a 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.77 +Version: 12.78 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Dec 09 2024 Nick Clifton - 12.78-1 +- GCC Plugin: Fix building with gcc 15. + * Fri Nov 15 2024 Nick Clifton - 12.77-1 - Annocheck: Fix overly long debug messages. diff --git a/sources b/sources index 48f2290..e37430f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.77.tar.xz) = e439f348fad9c4276342e654394be8958356ccee8aa3cb877b853a65f664128b2cbed82edaa3076d1b5d906d586271bb26e3b102a222a58129bc8cc26d345af9 +SHA512 (annobin-12.78.tar.xz) = 1d538f7812d03719b2dea2be156ef1e9f227fa2c7cdeed820e33fb7a042ddc1b2626d08ccd6f639f472da07fc0a216fcab022936d5ec026c68b7116f17ce326a From 8174c433db3f20233ab44e76bbec1bfd249355c4 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 10 Dec 2024 11:03:32 +0000 Subject: [PATCH 427/459] GCC Plugin: Tidy up use of gcc's diagnoatic headers. Testsuite: Use configured compiler when running tests. Resolves: PR 32429 --- annobin.spec | 8 ++++++-- sources | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 9d5248a..aa31168 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.78 +Version: 12.79 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,8 +532,12 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Dec 10 2024 Nick Clifton - 12.79-1 +- GCC Plugin: Tidy up use of gcc's diagnoatic headers. (#32429) +- Testsuite: Use configured compiler when running tests. + * Mon Dec 09 2024 Nick Clifton - 12.78-1 -- GCC Plugin: Fix building with gcc 15. +- GCC Plugin: Fix building with gcc 15. (#32429) * Fri Nov 15 2024 Nick Clifton - 12.77-1 - Annocheck: Fix overly long debug messages. diff --git a/sources b/sources index e37430f..7b5d185 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.78.tar.xz) = 1d538f7812d03719b2dea2be156ef1e9f227fa2c7cdeed820e33fb7a042ddc1b2626d08ccd6f639f472da07fc0a216fcab022936d5ec026c68b7116f17ce326a +SHA512 (annobin-12.79.tar.xz) = 0534b6cf4b17781af5fc4551f81d5bbe29ae627b03803f69f0132164defc92ba86bd2f7d5124c7de2b7660314bd9793ea65a7c1b6fdfce01cd05d1ad417a4927 From ad8d2bb481bf95aeb1db0066d40dd9644f85103f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 13 Dec 2024 16:04:32 +0000 Subject: [PATCH 428/459] Annocheck: Add support for sys-root'ed glibc packages. Resolves: RHEL-71296 --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index aa31168..132a9c2 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.79 +Version: 12.80 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Dec 13 2024 Nick Clifton - 12.80-1 +- Annocheck: Add support for sys-root'ed glibc packages. (RHEL-71296) + * Tue Dec 10 2024 Nick Clifton - 12.79-1 - GCC Plugin: Tidy up use of gcc's diagnoatic headers. (#32429) - Testsuite: Use configured compiler when running tests. diff --git a/sources b/sources index 7b5d185..5d19175 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.79.tar.xz) = 0534b6cf4b17781af5fc4551f81d5bbe29ae627b03803f69f0132164defc92ba86bd2f7d5124c7de2b7660314bd9793ea65a7c1b6fdfce01cd05d1ad417a4927 +SHA512 (annobin-12.80.tar.xz) = 68a90fe824589ded02afaa5d4ea992c80ee31ce663695766683b2783dd6fa1e0c568bf2bd1b867a9c6253628a2686cff1faadb6b420592583bd7b070b1b0385d From b1ea65635a9ea91c706844798093dbd52cbae6e1 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sat, 11 Jan 2025 10:48:27 +0100 Subject: [PATCH 429/459] 12.80-2 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 132a9c2..d6c803f 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.80 -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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Sat Jan 11 2025 Jakub Jelinek - 12.80-2 +- NVR bump to allow rebuild for new GCC in a side-tag. + * Fri Dec 13 2024 Nick Clifton - 12.80-1 - Annocheck: Add support for sys-root'ed glibc packages. (RHEL-71296) From 50892b98b6b5a0155e68b5533275d2c33cd766b1 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 16 Jan 2025 10:57:14 +0000 Subject: [PATCH 430/459] Annocheck: Support multiple --debug-rpm options. (RHEL-73349) --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index d6c803f..fa907f8 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.80 -Release: 2%{?dist} +Version: 12.81 +Release: 1%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Jan 16 2025 Nick Clifton - 12.81-1 +- Annocheck: Support multiple --debug-rpm options. (RHEL-73349) + * Sat Jan 11 2025 Jakub Jelinek - 12.80-2 - NVR bump to allow rebuild for new GCC in a side-tag. diff --git a/sources b/sources index 5d19175..036606a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.80.tar.xz) = 68a90fe824589ded02afaa5d4ea992c80ee31ce663695766683b2783dd6fa1e0c568bf2bd1b867a9c6253628a2686cff1faadb6b420592583bd7b070b1b0385d +SHA512 (annobin-12.81.tar.xz) = 03fd3c481b38b33f9d476866daaf944b4dc862f00009205904314596d25f98b49d7047ae193bf2da58c16af3b4bfb288dba893bd7827091911577bbccde90daa From 2415dea79062fe03b9acdbdbf69e352724a26df9 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 22 Jan 2025 09:49:29 +0000 Subject: [PATCH 431/459] Annocheck: Always look for annobin notes in separate debug info files. (RHEL-75778) --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index fa907f8..7a85ed9 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.81 +Version: 12.82 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,8 +532,11 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Jan 22 2025 Nick Clifton - 12.82-1 +- Annocheck: Always look for annobin notes in separate debug info files. (RHEL-75778) + * Thu Jan 16 2025 Nick Clifton - 12.81-1 -- Annocheck: Support multiple --debug-rpm options. (RHEL-73349) +- Annocheck: Support multiple --debug-rpm and --debug-file options. (RHEL-73349) * Sat Jan 11 2025 Jakub Jelinek - 12.80-2 - NVR bump to allow rebuild for new GCC in a side-tag. diff --git a/sources b/sources index 036606a..e4f42d8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.81.tar.xz) = 03fd3c481b38b33f9d476866daaf944b4dc862f00009205904314596d25f98b49d7047ae193bf2da58c16af3b4bfb288dba893bd7827091911577bbccde90daa +SHA512 (annobin-12.82.tar.xz) = fcad06d0121633edb588805f5eaf5cff465d25608d511a1a0b693bff5bcaa2c65377c2d508bcd109fa83625fb4d9cdf0dc2394adfd929aa24b9040e1e5105a32 From 63d1c12cd12f0fada781ee16aa5ea5e4f630d8d1 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 22 Jan 2025 11:41:30 +0000 Subject: [PATCH 432/459] 12.83: Annocheck: Remove spurious debugging messages --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 7a85ed9..353f09e 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.82 +Version: 12.83 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Jan 22 2025 Nick Clifton - 12.83-1 +- Annocheck: Remove spurious debugging messages. + * Wed Jan 22 2025 Nick Clifton - 12.82-1 - Annocheck: Always look for annobin notes in separate debug info files. (RHEL-75778) diff --git a/sources b/sources index e4f42d8..b3e2c0c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.82.tar.xz) = fcad06d0121633edb588805f5eaf5cff465d25608d511a1a0b693bff5bcaa2c65377c2d508bcd109fa83625fb4d9cdf0dc2394adfd929aa24b9040e1e5105a32 +SHA512 (annobin-12.83.tar.xz) = b0d9e50c52e1175d5ee8656661c20db5d2b14bd1ae4ae527707c9a5810f25f24f4c66997f803be970385382ea6e63627b08e02cff06bed4bacbd88190b48ade1 From 3ed5a5358c211c57daa8b5bba26ede589f42f3ae Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 23 Jan 2025 16:49:52 +0000 Subject: [PATCH 433/459] Annocheck: Fix corrupt warning message when unable to locate separate debug info files. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 353f09e..b904349 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.83 +Version: 12.84 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Jan 23 2025 Nick Clifton - 12.84-1 +- Annocheck: Fix corrupt warning message when unable to locate separate debug info files. + * Wed Jan 22 2025 Nick Clifton - 12.83-1 - Annocheck: Remove spurious debugging messages. diff --git a/sources b/sources index b3e2c0c..78a859f 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.83.tar.xz) = b0d9e50c52e1175d5ee8656661c20db5d2b14bd1ae4ae527707c9a5810f25f24f4c66997f803be970385382ea6e63627b08e02cff06bed4bacbd88190b48ade1 +SHA512 (annobin-12.84.tar.xz) = dfb60f8231f96cca8e2a318f0b4e5a88798b2f3c0771c7edd38c96f199afd8ef41c7498d1390e689cb029cfd8b60db8048d16f345f4d55970be36d22cc084399 From 52003fae980ed1aafc89cb35143931f1c56250ea Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 27 Jan 2025 12:38:04 +0000 Subject: [PATCH 434/459] 12.85: Annocheck: Fix the --debug-dir option --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index b904349..b369fb3 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.84 +Version: 12.85 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Jan 27 2025 Nick Clifton - 12.85-1 +- Annocheck: Fix the --debug-dir option. + * Thu Jan 23 2025 Nick Clifton - 12.84-1 - Annocheck: Fix corrupt warning message when unable to locate separate debug info files. diff --git a/sources b/sources index 78a859f..31871b5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.84.tar.xz) = dfb60f8231f96cca8e2a318f0b4e5a88798b2f3c0771c7edd38c96f199afd8ef41c7498d1390e689cb029cfd8b60db8048d16f345f4d55970be36d22cc084399 +SHA512 (annobin-12.85.tar.xz) = c6e64aa18073847c470c195a29c0e14c84affb14dcffe7fca4378d7297f47b93e5a964dee4efa07e5ac9afc3b24446c238e7edec0c9559f11a0f335602e22b2a From a64f9d3ef13e034d4be79f3f3dbb957d98431662 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 28 Jan 2025 09:39:10 +0000 Subject: [PATCH 435/459] Annocheck: Add crtoffloadtableS.o to list of known gcc binaries. (RHEL-760404) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index b369fb3..85e2c85 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.85 +Version: 12.86 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Jan 27 2025 Nick Clifton - 12.86-1 +- Annocheck: Add crtoffloadtableS.o to list of known gcc binaries. (RHEL-760404) + * Mon Jan 27 2025 Nick Clifton - 12.85-1 - Annocheck: Fix the --debug-dir option. diff --git a/sources b/sources index 31871b5..887ff3e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.85.tar.xz) = c6e64aa18073847c470c195a29c0e14c84affb14dcffe7fca4378d7297f47b93e5a964dee4efa07e5ac9afc3b24446c238e7edec0c9559f11a0f335602e22b2a +SHA512 (annobin-12.86.tar.xz) = e05c79b59ae50a2e5dcb3e755a7232cc6cf159f56fc77b554e47ebe4281c8261d752a6f7373cd069cd6fe5ddd78e11b76b3d5903c08741bd0745fbd3d43fc579 From 667f38a4578ecf52f08d3c06258a5ceab96612d7 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 28 Jan 2025 12:03:03 +0000 Subject: [PATCH 436/459] Annocheck: Fix locating string notes (again). Add exception for glibc benchmark tests. (RHEL-76456) --- annobin.spec | 3 +++ sources | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 85e2c85..0e61ec2 100644 --- a/annobin.spec +++ b/annobin.spec @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Jan 28 2025 Nick Clifton - 12.87-1 +- Annocheck: Fix locating string notes (again). Add exception for glibc benchmark tests. (RHEL-76456) + * Mon Jan 27 2025 Nick Clifton - 12.86-1 - Annocheck: Add crtoffloadtableS.o to list of known gcc binaries. (RHEL-760404) diff --git a/sources b/sources index 887ff3e..c070457 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.86.tar.xz) = e05c79b59ae50a2e5dcb3e755a7232cc6cf159f56fc77b554e47ebe4281c8261d752a6f7373cd069cd6fe5ddd78e11b76b3d5903c08741bd0745fbd3d43fc579 +SHA512 (annobin-12.87.tar.xz) = 2410e9ae692a32bffdbd3778735acce00fe5c8ff0507647ff2d10b5c13470b175ec071627e6209bb5191d09ea21f292770f937a213256c641747e4ac81ba952b From 5cc01bd7ed3d8f52281e67b0d912cac233b2877a Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 28 Jan 2025 12:06:14 +0000 Subject: [PATCH 437/459] NVR bump --- annobin.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 0e61ec2..64b39ed 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.86 +Version: 12.87 Release: 1%{?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 URL: https://sourceware.org/annobin/ From 274102f8bd7414b8ffb20210c04084d271ea68b5 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 3 Feb 2025 15:01:29 +0000 Subject: [PATCH 438/459] Annocheck: Look for -fstack-clash-protection in DW_AT_producer string. (RHEL-77328) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 64b39ed..85f27cc 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.87 +Version: 12.88 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Feb 03 2025 Nick Clifton - 12.88-1 +- Annocheck: Look for -fstack-clash-protection in DW_AT_producer string. (RHEL-77328) + * Tue Jan 28 2025 Nick Clifton - 12.87-1 - Annocheck: Fix locating string notes (again). Add exception for glibc benchmark tests. (RHEL-76456) diff --git a/sources b/sources index c070457..cc87a5c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.87.tar.xz) = 2410e9ae692a32bffdbd3778735acce00fe5c8ff0507647ff2d10b5c13470b175ec071627e6209bb5191d09ea21f292770f937a213256c641747e4ac81ba952b +SHA512 (annobin-12.88.tar.xz) = 2523617393c2f8a7f61f863eecc49f94ab53b71c15522543bb2a6ddbdead6dc306dd67e0df73765b881fcbb4617af940e0fc5865cccb5b4940b11ce2cd27f816 From 36aba6172fb89649c8e1aa775a30d2f5a623bda4 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 11 Feb 2025 10:55:02 +0000 Subject: [PATCH 439/459] Annocheck: Improve diagnostics when a separate debug info file cannot be found. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 85f27cc..7d3d209 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.88 +Version: 12.89 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue Feb 11 2025 Nick Clifton - 12.89-1 +- Annocheck: Improve diagnostics when a separate debug info file cannot be found. + * Mon Feb 03 2025 Nick Clifton - 12.88-1 - Annocheck: Look for -fstack-clash-protection in DW_AT_producer string. (RHEL-77328) diff --git a/sources b/sources index cc87a5c..ff8fe8d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.88.tar.xz) = 2523617393c2f8a7f61f863eecc49f94ab53b71c15522543bb2a6ddbdead6dc306dd67e0df73765b881fcbb4617af940e0fc5865cccb5b4940b11ce2cd27f816 +SHA512 (annobin-12.89.tar.xz) = 4f3a95f6d4d98be2b160d3c5a11ecfa46e573019035d594a4b5490788a05b66d272846b0beb912932086707614a465b53d3cb2fd053daa98985104d5d128ff93 From c5469afe6536d4783ce0801440a496c85c9a1bc5 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 12 Feb 2025 10:18:34 +0000 Subject: [PATCH 440/459] Annocheck: Fix double free(). Add special handling for COMBOOT modules --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 7d3d209..6a72052 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.89 +Version: 12.90 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Feb 12 2025 Nick Clifton - 12.90-1 +- Annocheck: Fix double free. Add special handling for COMBOOT modules. + * Tue Feb 11 2025 Nick Clifton - 12.89-1 - Annocheck: Improve diagnostics when a separate debug info file cannot be found. diff --git a/sources b/sources index ff8fe8d..c1e782d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.89.tar.xz) = 4f3a95f6d4d98be2b160d3c5a11ecfa46e573019035d594a4b5490788a05b66d272846b0beb912932086707614a465b53d3cb2fd053daa98985104d5d128ff93 +SHA512 (annobin-12.90.tar.xz) = 8f7a834f97d23b41d0bcd2c6ca20308d1c72a65ef49d08cae20ce6c1151151135447e77dfa3b08081639736cc5dd589b49e7dee4ae31e2709f59f418bc5bc6b7 From 38595c3a3411db6046257089bff978cdd596428f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 13 Feb 2025 14:03:32 +0000 Subject: [PATCH 441/459] Annocheck: Fix resource leak. (RHEL-79256) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 6a72052..dbd44cc 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.90 +Version: 12.91 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Feb 13 2025 Nick Clifton - 12.91-1 +- Annocheck: Fix resource leak. (RHEL-79253) + * Wed Feb 12 2025 Nick Clifton - 12.90-1 - Annocheck: Fix double free. Add special handling for COMBOOT modules. diff --git a/sources b/sources index c1e782d..bd5af73 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.90.tar.xz) = 8f7a834f97d23b41d0bcd2c6ca20308d1c72a65ef49d08cae20ce6c1151151135447e77dfa3b08081639736cc5dd589b49e7dee4ae31e2709f59f418bc5bc6b7 +SHA512 (annobin-12.91.tar.xz) = 5877cd93040fbffd1cd8d0ac4b7be66ad9573d25d3a29268de8f5bbcde7e0406ea50b8662ea532c8bf441d23baedea59e8e0c8350d7c095761aada6aecab456c From be7ffb96bcf6fcfa7238f89588190e49b00e30cd Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 14 Feb 2025 10:54:12 +0000 Subject: [PATCH 442/459] Annocheck: Do not rely upon libelf's ability to detect links to separate debuginfo files. (RHEL-79264) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index dbd44cc..ea42cd9 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.91 +Version: 12.92 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Feb 14 2025 Nick Clifton - 12.92-1 +- Annocheck: Do not rely upon libelf's ability to detect links to separate debuginfo files. (RHEL-79264) + * Thu Feb 13 2025 Nick Clifton - 12.91-1 - Annocheck: Fix resource leak. (RHEL-79253) diff --git a/sources b/sources index bd5af73..c239a59 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.91.tar.xz) = 5877cd93040fbffd1cd8d0ac4b7be66ad9573d25d3a29268de8f5bbcde7e0406ea50b8662ea532c8bf441d23baedea59e8e0c8350d7c095761aada6aecab456c +SHA512 (annobin-12.92.tar.xz) = 323e5a5ee4b2b5b755821924a5936485c2db70c83d612b4d12873f74dc51b2bc410963b1a737a2834105a52343fb75a906b3ce0a9444847240b79eb436ddba71 From 5c3d24ca6fee52758582ec1fc017324b7d234178 Mon Sep 17 00:00:00 2001 From: Tulio Magno Quites Machado Filho Date: Mon, 10 Mar 2025 15:22:05 -0300 Subject: [PATCH 443/459] Generate latest-annobin.tar.xz at %prep Generate a source tarball for annobin during the prep phase, after all the patches have been applied. Use this new tarball when installing the annobin source code for the GCC plugin. On distros without downstream patches, this change should not produce any changes. --- annobin.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index ea42cd9..5e1f7ec 100644 --- a/annobin.spec +++ b/annobin.spec @@ -324,6 +324,10 @@ touch configure */configure Makefile.in */Makefile.in # Similarly we do not want to rebuild the documentation. touch doc/annobin.info +# Generate a source tarball for installation later with all the patches +# applied. This must be the last step in the prep section. +tar -C ../ -cJf ../latest-annobin.tar.xz %{name}-%{version} + #--------------------------------------------------------------------------------- %build @@ -453,7 +457,7 @@ cat `gcc --print-file-name=rpmver` > %{buildroot}/%{ANNOBIN_GCC_PLUGIN_DIR}/%{av # Also install a copy of the sources into the build tree. mkdir -p %{buildroot}%{annobin_source_dir} -cp %{_sourcedir}/%{annobin_sources} %{buildroot}%{annobin_source_dir}/latest-annobin.tar.xz +cp ../latest-annobin.tar.xz %{buildroot}%{annobin_source_dir}/latest-annobin.tar.xz %endif rm -f %{buildroot}%{_infodir}/dir From 5d1c0d8e7ea38b01f2d3c7e0e42284333473cb28 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 17 Mar 2025 11:40:30 +0000 Subject: [PATCH 444/459] 12.93: Fix GO revision test --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index ea42cd9..5ceb46f 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.92 +Version: 12.93 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -532,6 +532,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Mon Mar 17 2025 Nick Clifton - 12.93-1 +- Annocheck: Fix test for GO revision. (RHEL-56031) + * Fri Feb 14 2025 Nick Clifton - 12.92-1 - Annocheck: Do not rely upon libelf's ability to detect links to separate debuginfo files. (RHEL-79264) diff --git a/sources b/sources index c239a59..ef0806a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.92.tar.xz) = 323e5a5ee4b2b5b755821924a5936485c2db70c83d612b4d12873f74dc51b2bc410963b1a737a2834105a52343fb75a906b3ce0a9444847240b79eb436ddba71 +SHA512 (annobin-12.93.tar.xz) = d49670b652529dd0f3acfc7bac6c46321e54ba6dcc299e55dbb6427c2c9f5ed65817059d3abcced76a1172b08890303cdff30c2c09595d455ecfdb392a487be2 From 55b74474e15ba28f4051aa1d15f833b3e5b98e06 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 13 May 2025 10:59:11 +0100 Subject: [PATCH 445/459] Annocheck: Update heuristic for detecting gcc files to cope with gcc 15. (#2365824) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 68741a1..27b3c50 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.93 +Version: 12.94 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -536,6 +536,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Tue May 13 2025 Nick Clifton - 12.94-1 +- Annocheck: Update heuristic for detecting gcc files to cope with gcc 15. (#2365824) + * Mon Mar 17 2025 Nick Clifton - 12.93-1 - Annocheck: Fix test for GO revision. (RHEL-56031) diff --git a/sources b/sources index ef0806a..e489d35 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.93.tar.xz) = d49670b652529dd0f3acfc7bac6c46321e54ba6dcc299e55dbb6427c2c9f5ed65817059d3abcced76a1172b08890303cdff30c2c09595d455ecfdb392a487be2 +SHA512 (annobin-12.94.tar.xz) = 02ec315774f8a0914baf1dd462538b02bf490ebc1bfce334817900adb054c6a3eae00b9a0c5dc39675a5ee263735ba13d449769ae4c977c1ff753c8cf2206b27 From e3fb5aa9772be8e86fb3701be9b047b08017862f Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 15 May 2025 16:31:37 +0100 Subject: [PATCH 446/459] Annocheck: Improve performance with multiple debug info files and multiple files to scan. (#2366180) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 27b3c50..23c587b 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.94 +Version: 12.95 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -536,6 +536,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu May 15 2025 Nick Clifton - 12.95-1 +- Annocheck: Improve performance with multiple debug info files and multiple files to scan. (#2366180) + * Tue May 13 2025 Nick Clifton - 12.94-1 - Annocheck: Update heuristic for detecting gcc files to cope with gcc 15. (#2365824) diff --git a/sources b/sources index e489d35..66db00c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.94.tar.xz) = 02ec315774f8a0914baf1dd462538b02bf490ebc1bfce334817900adb054c6a3eae00b9a0c5dc39675a5ee263735ba13d449769ae4c977c1ff753c8cf2206b27 +SHA512 (annobin-12.95.tar.xz) = e027e8a47c2878c920d6478e51b1fee165bea6b89177f60cc1063810545dc3f2bff20eb7f7836ff80ce58f328725a4344d8abd4c3aed23884dd6aa9e7fe3792f From 874f029d05a88663b37cf87bb1fe4fd6b352a09d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 4 Jun 2025 17:17:24 +0100 Subject: [PATCH 447/459] Annocheck: Fix bugs in debug rpm location code. Add more glibc exceptions. (RHEL-95216) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 23c587b..88442dc 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.95 +Version: 12.96 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -536,6 +536,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Jun 04 2025 Nick Clifton - 12.96-1 +- Annocheck: Fix bugs in debug rpm location code. Add more glibc exceptions. (RHEL-95216) + * Thu May 15 2025 Nick Clifton - 12.95-1 - Annocheck: Improve performance with multiple debug info files and multiple files to scan. (#2366180) diff --git a/sources b/sources index 66db00c..14a437a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.95.tar.xz) = e027e8a47c2878c920d6478e51b1fee165bea6b89177f60cc1063810545dc3f2bff20eb7f7836ff80ce58f328725a4344d8abd4c3aed23884dd6aa9e7fe3792f +SHA512 (annobin-12.96.tar.xz) = a6484c13e5a780e510b21e6f9178f146394e38f7f9d4e005a46cc9df0da0f34ae684349f8dacffbeb3850eaa8e487daef17ac9c9b080f73519e15c01d2e8ac5b From 4ed470d1fba09fe109dac6729e0131a629a6facc Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 19 Jun 2025 11:06:02 +0100 Subject: [PATCH 448/459] 12.97: Annocheck: delete temporary debuginfo directory --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 88442dc..9afc9f4 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.96 +Version: 12.97 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -536,6 +536,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Jun 19 2025 Nick Clifton - 12.97-1 +- Annocheck: Delete the temporary debug info directory after the tests have finished. + * Wed Jun 04 2025 Nick Clifton - 12.96-1 - Annocheck: Fix bugs in debug rpm location code. Add more glibc exceptions. (RHEL-95216) diff --git a/sources b/sources index 14a437a..65a6902 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.96.tar.xz) = a6484c13e5a780e510b21e6f9178f146394e38f7f9d4e005a46cc9df0da0f34ae684349f8dacffbeb3850eaa8e487daef17ac9c9b080f73519e15c01d2e8ac5b +SHA512 (annobin-12.97.tar.xz) = 0c4482a22e302080f44dc05cebf1e217304def13b91c366d9a4d487501e6412eb1504589abdba263147d88eb6ad4693c63a78cc05ff43cd25e9547504eb4df04 From 9c45dd821c2150d714db84b6b3c15ce5f102199d Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Mon, 7 Jul 2025 10:34:33 +0100 Subject: [PATCH 449/459] Improve configure and meson files for consistent builds. --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 9afc9f4..81dc8e2 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.97 +Version: 12.98 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -536,6 +536,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Jul 04 2025 Tulio Magno Quites Machado Filho - 12.98-1 +- Improve configure and meson files for consistent builds. + * Thu Jun 19 2025 Nick Clifton - 12.97-1 - Annocheck: Delete the temporary debug info directory after the tests have finished. diff --git a/sources b/sources index 65a6902..0dc0ef3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.97.tar.xz) = 0c4482a22e302080f44dc05cebf1e217304def13b91c366d9a4d487501e6412eb1504589abdba263147d88eb6ad4693c63a78cc05ff43cd25e9547504eb4df04 +SHA512 (annobin-12.98.tar.xz) = ded22fafbddb2935c4a9a08eae0e3a14bc93fb2d47364739f267542294cf8bcbcc5ab0527077aab8a5e9dbaec0d003b76224dbe88aaaecf0df4b1546afefcfa7 From 6869ce708f85fdb70d481d880b77e1be31d9ab34 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 16:59:30 +0000 Subject: [PATCH 450/459] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 81dc8e2..3e73834 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 12.98 -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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -536,6 +536,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 12.98-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Fri Jul 04 2025 Tulio Magno Quites Machado Filho - 12.98-1 - Improve configure and meson files for consistent builds. From 8bc321d24a8e1f4307d19a062bf857e5b88bd1b2 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 6 Aug 2025 10:36:49 +0100 Subject: [PATCH 451/459] Annocheck: Improve detection of glibc static maths libraries. (RHEL-107470) --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 3e73834..b61b959 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.98 -Release: 2%{?dist} +Version: 12.99 +Release: 1%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -536,6 +536,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Aug 06 2025 Nick Clifton - 12.99-1 +- Annocheck: Improve detection of glibc static maths libraries. (RHEL-107470) + * Wed Jul 23 2025 Fedora Release Engineering - 12.98-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild diff --git a/sources b/sources index 0dc0ef3..60982ce 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.98.tar.xz) = ded22fafbddb2935c4a9a08eae0e3a14bc93fb2d47364739f267542294cf8bcbcc5ab0527077aab8a5e9dbaec0d003b76224dbe88aaaecf0df4b1546afefcfa7 +SHA512 (annobin-12.99.tar.xz) = d5409f9c60f601878dff5047ec38b3a113ab4caa0a24e96ecf715decab1c9ff509ac56033b105a7cc0efc9158230c359b9c596f5a2628b96a61094927f4e9872 From 844d102d83f559a4177fa0c05f4d7ed06405f8d0 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 23 Oct 2025 17:01:42 +0100 Subject: [PATCH 452/459] Annocheck: Change FAIL for binaries built by a cross compiler to a MAYBE. (RHEL-123175) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index b61b959..fae0335 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 12.99 +Version: 13.01 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -536,6 +536,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Oct 23 2025 Nick Clifton - 13.01-1 +- Annocheck: Change FAIL for binaries built by a cross compiler to a MAYBE. (RHEL-123175) + * Wed Aug 06 2025 Nick Clifton - 12.99-1 - Annocheck: Improve detection of glibc static maths libraries. (RHEL-107470) diff --git a/sources b/sources index 60982ce..771ba55 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-12.99.tar.xz) = d5409f9c60f601878dff5047ec38b3a113ab4caa0a24e96ecf715decab1c9ff509ac56033b105a7cc0efc9158230c359b9c596f5a2628b96a61094927f4e9872 +SHA512 (annobin-13.01.tar.xz) = c6641a1734c76e5e007a49b93bb4cefdfd6249472ac0333e5a5644bc8e4cdf6aa09e2066112dfc1c0524ed4a4f3f4b1765f69443a1eafd547675d98ab1a95f32 From 60e36afe5f1fd970e793828cee63597de5e24102 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 31 Oct 2025 14:52:22 +0000 Subject: [PATCH 453/459] Annocheck: Update heuristic to detect gcc libraries. (RHEL-124869) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index fae0335..6376df0 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 13.01 +Version: 13.02 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -536,6 +536,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Oct 31 2025 Nick Clifton - 13.01-2 +- Annocheck: Update heuristic to detect gcc libraries. (RHEL-124869) + * Thu Oct 23 2025 Nick Clifton - 13.01-1 - Annocheck: Change FAIL for binaries built by a cross compiler to a MAYBE. (RHEL-123175) diff --git a/sources b/sources index 771ba55..5cca8d9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-13.01.tar.xz) = c6641a1734c76e5e007a49b93bb4cefdfd6249472ac0333e5a5644bc8e4cdf6aa09e2066112dfc1c0524ed4a4f3f4b1765f69443a1eafd547675d98ab1a95f32 +SHA512 (annobin-13.02.tar.xz) = 4634fa779b7db3f79689582f1d7014e069427d8fc5c3aa7cb185e9af2ce493e1e9edb86d23a96f2aba8d5d879ae2a495f01e91482bd6d4fac37e35783071216e From a84ff429935b3b30b26c8cea841f35011dbfb090 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Wed, 5 Nov 2025 10:32:54 +0000 Subject: [PATCH 454/459] Annocheck: Skip production test for gcc libraries. (RHEL-123175) --- annobin.spec | 5 ++++- sources | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/annobin.spec b/annobin.spec index 6376df0..afb50ae 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 13.02 +Version: 13.03 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -536,6 +536,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Wed Nov 05 2025 Nick Clifton - 13.01-3 +- Annocheck: Skip production test for gcc libraries. (RHEL-123175) + * Fri Oct 31 2025 Nick Clifton - 13.01-2 - Annocheck: Update heuristic to detect gcc libraries. (RHEL-124869) diff --git a/sources b/sources index 5cca8d9..2e571e4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-13.02.tar.xz) = 4634fa779b7db3f79689582f1d7014e069427d8fc5c3aa7cb185e9af2ce493e1e9edb86d23a96f2aba8d5d879ae2a495f01e91482bd6d4fac37e35783071216e +SHA512 (annobin-13.03.tar.xz) = 1ed1e3a23041a9f0c6965991e9d0a89c908a89c694db68538f416d931b69892d13aa1df6d74cb7e813caa9043fd85b01991662f07bbaad10fba072531898bb3f From e11676d4ef7275b691c55dc69c19643131279e0c Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 18 Dec 2025 08:48:36 +0000 Subject: [PATCH 455/459] Annocheck: Fix compile time warnings from GCC-15 re: strchr returning a const char *. --- annobin.spec | 9 ++++++--- sources | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/annobin.spec b/annobin.spec index afb50ae..8f3faba 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,7 +1,7 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 13.03 +Version: 13.04 Release: 1%{?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 URL: https://sourceware.org/annobin/ @@ -536,10 +536,13 @@ make check #--------------------------------------------------------------------------------- %changelog -* Wed Nov 05 2025 Nick Clifton - 13.01-3 +* Thu Dec 18 2025 Nick Clifton - 13.04-1 +- Annocheck: Fix compile time warnings from GCC-15 re: strchr returning a const char *. + +* Wed Nov 05 2025 Nick Clifton - 13.03-1 - Annocheck: Skip production test for gcc libraries. (RHEL-123175) -* Fri Oct 31 2025 Nick Clifton - 13.01-2 +* Fri Oct 31 2025 Nick Clifton - 13.02-1 - Annocheck: Update heuristic to detect gcc libraries. (RHEL-124869) * Thu Oct 23 2025 Nick Clifton - 13.01-1 diff --git a/sources b/sources index 2e571e4..5bc895e 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-13.03.tar.xz) = 1ed1e3a23041a9f0c6965991e9d0a89c908a89c694db68538f416d931b69892d13aa1df6d74cb7e813caa9043fd85b01991662f07bbaad10fba072531898bb3f +SHA512 (annobin-13.04.tar.xz) = cbcf3b52f4fb7c5c61451f96c210023ef8dadc3f5e25bdb3f2ca2155d3393aafade357ff56f290e660061d02dae4707a7f5ea899ef4c5ad1820bcf617eba9d69 From 20e0cb02b6e01ff02837d530a6f197d4a67e0beb Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sat, 20 Dec 2025 13:43:13 +0100 Subject: [PATCH 456/459] 13.04-2 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 8f3faba..e7157e0 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 13.04 -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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -536,6 +536,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Sat Dec 20 2025 Jakub Jelinek - 13.04-2 +- NVR bump to allow rebuild for new GCC in a side-tag. + * Thu Dec 18 2025 Nick Clifton - 13.04-1 - Annocheck: Fix compile time warnings from GCC-15 re: strchr returning a const char *. From 2576bee0595e0914e0d1292b2b7bace379d23648 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Sat, 20 Dec 2025 15:11:11 +0100 Subject: [PATCH 457/459] 13.04-3 --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index e7157e0..74a0187 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 13.04 -Release: 2%{?dist} +Release: 3%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -536,6 +536,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Sat Dec 20 2025 Jakub Jelinek - 13.04-3 +- NVR bump to allow rebuild for new GCC in a side-tag. + * Sat Dec 20 2025 Jakub Jelinek - 13.04-2 - NVR bump to allow rebuild for new GCC in a side-tag. From ba3345aaf822ea91c2dd28ebe9a510b949fc41f9 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Thu, 15 Jan 2026 15:29:42 +0000 Subject: [PATCH 458/459] Annocheck: Add .fc44 to list of known rpm file extensions. --- annobin.spec | 7 +++++-- sources | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/annobin.spec b/annobin.spec index 74a0187..4aab253 100644 --- a/annobin.spec +++ b/annobin.spec @@ -1,8 +1,8 @@ Name: annobin Summary: Annotate and examine compiled binary files -Version: 13.04 -Release: 3%{?dist} +Version: 13.05 +Release: 1%{?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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -536,6 +536,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Thu Jan 15 2026 Nick Clifton - 13.05-1 +- Annocheck: Add .fc44 to list of known rpm file extensions. + * Sat Dec 20 2025 Jakub Jelinek - 13.04-3 - NVR bump to allow rebuild for new GCC in a side-tag. diff --git a/sources b/sources index 5bc895e..ae2a779 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (annobin-13.04.tar.xz) = cbcf3b52f4fb7c5c61451f96c210023ef8dadc3f5e25bdb3f2ca2155d3393aafade357ff56f290e660061d02dae4707a7f5ea899ef4c5ad1820bcf617eba9d69 +SHA512 (annobin-13.05.tar.xz) = 07bc023018e3f456fae470b271915bde2e1ff367ee8bb58adb74255023ae59e8c45ced8e4bd2130bf8a496966d986bca9866e054019f6ca4660d78c129b6532f From d29890bd416900bc07f2acbdeeea5fdcc9fe078b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 16 Jan 2026 03:41:03 +0000 Subject: [PATCH 459/459] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild --- annobin.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/annobin.spec b/annobin.spec index 4aab253..f2f5ad0 100644 --- a/annobin.spec +++ b/annobin.spec @@ -2,7 +2,7 @@ Name: annobin Summary: Annotate and examine compiled binary files Version: 13.05 -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 URL: https://sourceware.org/annobin/ # Maintainer: nickc@redhat.com @@ -536,6 +536,9 @@ make check #--------------------------------------------------------------------------------- %changelog +* Fri Jan 16 2026 Fedora Release Engineering - 13.05-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + * Thu Jan 15 2026 Nick Clifton - 13.05-1 - Annocheck: Add .fc44 to list of known rpm file extensions.