Compare commits

..

42 commits

Author SHA1 Message Date
yahmad
376f8f2ca0 - Annocheck: Suppress more tests for Rust binaries.
- Annocheck: Fix detection of missing plugin options.  (#2189492)
- Fix generation of auto-generated files.
- Fix covscan reported errors.
- gcc-plugin: generate warnings about misspelt -D_FORTIFY_SOURCE and/or -D_GLIBCXX_ASSERTIONS options.
- gcc-plugin: use a bigger buffer for constructing notes.
- llvm-plugin: Fix detection of optimization level.  Improve test.
- clang-plugin: Improve test.
- configure: More improvements.
- annocheck: Fix seg-fault when checking for glibc components in string format notes.
- configure: Simplify.
2023-05-02 17:42:48 +02:00
yahmad
c162d220d3 - 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.
2023-04-12 15:53:04 +02:00
yahmad
97902230ab - gcc plugin: Keep ELF notes at protocol version 3. 2023-03-30 14:21:03 +02:00
yahmad
77873aa63b - Protocol Version 4: String format notes. 2023-03-29 18:16:29 +02:00
yahmad
109e007176 - Annocheck: Update message for LTO tests. (#2177140)
- Annocheck: Add even more code to handle another glibc function built without LTO.
- Annocheck: Add code to handle another glibc function built without LTO.
2023-03-21 09:19:20 +01:00
yahmad
13e8d3902f Fix a typo in the sources file 2023-02-28 18:56:45 +01:00
yahmad
467795c7c3 - GCC Plugin: Do not run if other plugins are active. (#2162746)
- Annocheck: Add code to handle glibc functions built without LTO.
- Libannocheck: Fix thinko in debugging code.
- Annocheck: Fix LTO test.
- Notes: Display notes held in separate dbeuginfo files.
- Annocheck: Fix atexit test.  Fix recording of version numbers.  (#2165528)
- LLVM & Clang Plugins: Build with branch protection on AArch64.  (#2164364)
- Fix gating tests.
- Libannocheck: Fix bug causing infinite looping when running tests.
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
2023-02-28 18:25:22 +01:00
Václav Kadlčík
bf45c5eede 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.
2023-02-27 10:16:47 +01:00
Václav Kadlčík
726b5bc7ed Adapt test scripts to newest annobin versions 2023-02-27 10:14:46 +01:00
Václav Kadlčík
ec1798ad31 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.
2023-02-27 10:14:42 +01:00
Václav Kadlčík
62943fd725 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.
2023-02-27 10:14:36 +01:00
yahmad
62e012dff5 - Rebuilt against GCC 13.
- Annocheck: Fix handling of file built by multiple versions of gcc.  (#2160700)
- Annocheck: Fix handling of empty files.  (#2159292)
- Annocheck: Add crti.o and crtn.o to the list of known glibc special files.  (#2158740)
- Annocheck: Fix memory leaks.
2023-01-18 19:12:14 +01:00
Nick Clifton
ea9a8ea773 Annocheck: Do not assume that object files contain no code simply because they do not have an executable segment. (#2158182) 2023-01-05 09:00:56 +00:00
Nick Clifton
fd46cd07e8 Annocheck: Improve handling of tool versions 2022-12-21 16:32:15 +00:00
Nick Clifton
5bbd93d41e Annocheck: Add test for binaries built by cross compilers. 2022-12-16 08:58:44 +00:00
Nick Clifton
f649a2f25b Avoid using debug filename when parsing notes in a debuginfo file. (#2152280) 2022-12-12 14:23:42 +00:00
yahmad
216bb12ce9 - Annocheck: Provide more information when a test is skipped because the file being tested was not compiled. 2022-11-23 20:18:11 +01:00
yahmad
32ae6b5f66 - Annocheck: Try harder not to run mutually exclusive tests. 2022-11-09 17:31:01 +01:00
yahmad
b5dd6a1bc7 - Rebase to annobin-10.91
- Tests: Fix future-test so that it properly handles the situation where the compiler does not support the new options.
  - Libannocheck: Actually set result fields after tests are run.
  - Libannocheck: Replace libannocheck_version variable with LIBANNOCHECK_VERSION define.
  - Libannocheck: Remove 'Requires binutils-devel' from libannocheck.pc.
  - Libannocheck: Move into separate sub-package.
  - Libannocheck: Add libannocheck.pc pkgconfig file.
  - Libannocheck: Add libannocheck_reinit().
  - 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.
  - Clang Plugin: Fix for building with Clang-15.  (#2125875)
  - Annocheck: Add a test for the inconsistent use of -Ofast.  (#1248744)
  - NVR Bump in order to trigger a rebuild for ELN.  (#2124562)
2022-10-21 17:27:27 +02:00
yahmad
a68c215931 - Plugin: Fix top level configuration support for RiscV.
- Annocheck: Improvements to the size tool.
2022-08-11 16:16:15 +02:00
yahmad
f73b708759 - Annocheck: Fixes for libannocheck.h.
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
2022-07-26 00:45:16 +02:00
yahmad
0d9dccc5b3 - Annocheck: Add automatic profile selection.
- Annocheck: Improve gap detection and reporting.
- 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.
2022-07-11 15:51:47 +02:00
Nick Clifton
0a9eba61e7 Annocheck: Check build-id of separate debuginfo files.
Annocheck: Add GAPS test replacing --ignore-gaps.
Annocheck: Fix covscan detected race condition between stat() and open().
Annocheck: Handle binaries created by Rust 1.18.  (#2094420)
Annocheck: Add optional function name to --skip arguments.  (PR 29229)
2022-06-14 11:29:41 +01:00
Nick Clifton
a48f4d5bd1 Annocheck: Fix handling of command line options that take arguments. (#2086850) 2022-05-19 10:24:26 +01:00
yahmad
19e653a784 - Annocheck: Do not complain about unenabled -mbranch-protection option in AArch64 binaries. (#2078909) 2022-05-17 11:26:58 +02:00
yahmad
d615e0566e - gcc-plugin: Fix typo in configure.ac. 2022-05-11 18:59:33 +02:00
yahmad
6a558a9bc0 - gcc-plugin: Fix typo in configure.ac. 2022-05-11 18:37:15 +02:00
Nick Clifton
89c1f9e0b2 remove unused patches 2022-05-09 11:26:07 +01:00
Nick Clifton
338de00e35 Annocheck: Add another special case for glibc rpms. (#2083070) 2022-05-09 11:16:31 +01:00
Jakub Jelinek
8a6c459d16 10.69-2 2022-05-09 10:47:20 +02:00
Nick Clifton
a97b6b4513 Annocheck: Do not complain about unenabled -mbranch-protection option in AArch64 binaries if compiled using LTO. (#2082146) 2022-05-06 15:44:07 +01:00
Nick Clifton
b42bf2bbe8 Annocheck: Add more glibc exceptions + check PT_TLS segments. (#2081131) 2022-05-03 14:22:08 +01:00
Yara Ahmad
123d377122 - Annocheck: Do not complain about missing -mbranch-protection option in AArch64 binaries if compiled by golang. 2022-04-22 16:58:48 +02:00
Jakub Jelinek
af25bf63a7 10.66-2 2022-04-15 11:17:01 +02:00
Nick Clifton
f5bb4cb667 Annocheck: Do not complain about missing -mbranch-protection option in AArch64 binaries if compiled in LTO mode. 2022-04-13 09:44:06 +01:00
Nick Clifton
56bcfc25f5 gcc-plugin: Add support for CLVC_INTEGER options. 2022-04-13 08:11:41 +01:00
Jakub Jelinek
92656ff8bc 10.62-2 2022-04-11 19:52:36 +02:00
Nick Clifton
b1fb9c227a Fix thinko in llvm plugin sources 2022-04-05 14:03:31 +01:00
Nick Clifton
f5eb3d86c6 rebase to 10.61 2022-04-05 13:21:07 +01:00
sergesanspaille
f7fe7cf9e4 Rebuilt against new LLVM release, with patch. 2022-04-01 19:45:34 +00:00
Nick Clifton
aed92705f6 Annocheck: Fix test for AArch64 property notes. (#2068657) 2022-03-30 12:02:05 +01:00
Nick Clifton
c17397472c gcc-plugin: Do not issue warning messages for autoconf generated source files. (#2009958) 2022-03-24 17:26:18 +00:00
30 changed files with 758 additions and 536 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
/annobin-*.tar.xz
/annobin-9.51-1.fc34.src.rpm
/annobin-11.11-1.fc36.src.rpm

View file

@ -1,9 +1,9 @@
Name: annobin
Summary: Annotate and examine compiled binary files
Version: 13.05
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
Version: 12.10
Release: 1%{?dist}
License: GPLv3+
URL: https://sourceware.org/annobin/
# Maintainer: nickc@redhat.com
# Web Page: https://sourceware.org/annobin/
@ -36,12 +36,7 @@ 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
%global with_hard_gcc_version_requirement 1
%bcond_without plugin_rebuild
# Allow the building of annobin without using annobin itself.
@ -55,11 +50,11 @@ 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. Note however that
# 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
%undefine _annotated_build
# %%endif
#---------------------------------------------------------------------------------
@ -72,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-foo.patch
#---------------------------------------------------------------------------------
@ -132,6 +127,9 @@ 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
@ -144,15 +142,17 @@ 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
#----------------------------------------------------------------------------
@ -161,7 +161,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 make
BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel make
%if %{with debuginfod}
BuildRequires: elfutils-debuginfod-client-devel
@ -178,13 +178,14 @@ 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 make
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
@ -324,10 +325,6 @@ 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
@ -346,8 +343,8 @@ CONFIG_ARGS="$CONFIG_ARGS --with-debuginfod"
CONFIG_ARGS="$CONFIG_ARGS --without-debuginfod"
%endif
%if %{without clangplugin}
CONFIG_ARGS="$CONFIG_ARGS --without-clang-plugin"
%if %{with clangplugin}
CONFIG_ARGS="$CONFIG_ARGS --with-clang"
%endif
%if %{without gccplugin}
@ -356,8 +353,8 @@ CONFIG_ARGS="$CONFIG_ARGS --without-gcc-plugin"
CONFIG_ARGS="$CONFIG_ARGS --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR}"
%endif
%if %{without llvmplugin}
CONFIG_ARGS="$CONFIG_ARGS --without-llvm-plugin"
%if %{with llvmplugin}
CONFIG_ARGS="$CONFIG_ARGS --with-llvm"
%endif
%if %{without tests}
@ -367,28 +364,21 @@ 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
export CFLAGS="$CFLAGS $RPM_OPT_FLAGS %build_cflags"
export LDFLAGS="$LDFLAGS %build_ldflags"
# 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
# FIXME: There should be a better way to do this.
export CLANG_TARGET_OPTIONS="-fcf-protection"
%endif
%ifarch aarch64
export CLANG_TARGET_OPTIONS="-mbranch-protection=standard"
%endif
%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"
CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CXXFLAGS="$CFLAGS" %configure ${CONFIG_ARGS} || cat config.log
@ -405,8 +395,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 - rpm-4.10 uses a different way of evaluating macros.
%if 0%{?rhel} && 0%{?rhel} < 7
# 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
OPTS="$(rpm --undefine=_annotated_build --eval '%build_cflags %build_ldflags')"
@ -422,14 +412,12 @@ 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" PLUGIN_INSTALL_DIR=%{clang_plugin_dir}
make -C clang-plugin all CXXFLAGS="$OPTS $BUILD_FLAGS"
%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" PLUGIN_INSTALL_DIR=%{llvm_plugin_dir}
make -C llvm-plugin all CXXFLAGS="$OPTS $BUILD_FLAGS"
%endif
# endif for %%if {with_plugin_rebuild}
@ -457,38 +445,27 @@ 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 ../latest-annobin.tar.xz %{buildroot}%{annobin_source_dir}/latest-annobin.tar.xz
cp %{_sourcedir}/%{annobin_sources} %{buildroot}%{annobin_source_dir}/latest-annobin.tar.xz
%endif
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}
%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 || :
# 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
fi
# If necessary use uuencode to preserve test binaries here. For example:
# uuencode tests/tmp_atexit/atexit.strip atexit.strip
make check
%endif
#---------------------------------------------------------------------------------
%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
@ -518,7 +495,6 @@ 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
@ -536,569 +512,129 @@ make check
#---------------------------------------------------------------------------------
%changelog
* Fri Jan 16 2026 Fedora Release Engineering <releng@fedoraproject.org> - 13.05-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Thu Jan 15 2026 Nick Clifton <nickc@redhat.com> - 13.05-1
- Annocheck: Add .fc44 to list of known rpm file extensions.
* Sat Dec 20 2025 Jakub Jelinek <jakub@redhat.com> - 13.04-3
- NVR bump to allow rebuild for new GCC in a side-tag.
* Sat Dec 20 2025 Jakub Jelinek <jakub@redhat.com> - 13.04-2
- NVR bump to allow rebuild for new GCC in a side-tag.
* Thu Dec 18 2025 Nick Clifton <nickc@redhat.com> - 13.04-1
- Annocheck: Fix compile time warnings from GCC-15 re: strchr returning a const char *.
* Wed Nov 05 2025 Nick Clifton <nickc@redhat.com> - 13.03-1
- Annocheck: Skip production test for gcc libraries. (RHEL-123175)
* Fri Oct 31 2025 Nick Clifton <nickc@redhat.com> - 13.02-1
- Annocheck: Update heuristic to detect gcc libraries. (RHEL-124869)
* Thu Oct 23 2025 Nick Clifton <nickc@redhat.com> - 13.01-1
- Annocheck: Change FAIL for binaries built by a cross compiler to a MAYBE. (RHEL-123175)
* Wed Aug 06 2025 Nick Clifton <nickc@redhat.com> - 12.99-1
- Annocheck: Improve detection of glibc static maths libraries. (RHEL-107470)
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 12.98-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Fri Jul 04 2025 Tulio Magno Quites Machado Filho <tuliom@redhat.com> - 12.98-1
- Improve configure and meson files for consistent builds.
* Thu Jun 19 2025 Nick Clifton <nickc@redhat.com> - 12.97-1
- Annocheck: Delete the temporary debug info directory after the tests have finished.
* Wed Jun 04 2025 Nick Clifton <nickc@redhat.com> - 12.96-1
- Annocheck: Fix bugs in debug rpm location code. Add more glibc exceptions. (RHEL-95216)
* Thu May 15 2025 Nick Clifton <nickc@redhat.com> - 12.95-1
- Annocheck: Improve performance with multiple debug info files and multiple files to scan. (#2366180)
* Tue May 13 2025 Nick Clifton <nickc@redhat.com> - 12.94-1
- Annocheck: Update heuristic for detecting gcc files to cope with gcc 15. (#2365824)
* Mon Mar 17 2025 Nick Clifton <nickc@redhat.com> - 12.93-1
- Annocheck: Fix test for GO revision. (RHEL-56031)
* Fri Feb 14 2025 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 12.91-1
- Annocheck: Fix resource leak. (RHEL-79253)
* Wed Feb 12 2025 Nick Clifton <nickc@redhat.com> - 12.90-1
- Annocheck: Fix double free. Add special handling for COMBOOT modules.
* Tue Feb 11 2025 Nick Clifton <nickc@redhat.com> - 12.89-1
- Annocheck: Improve diagnostics when a separate debug info file cannot be found.
* Mon Feb 03 2025 Nick Clifton <nickc@redhat.com> - 12.88-1
- Annocheck: Look for -fstack-clash-protection in DW_AT_producer string. (RHEL-77328)
* Tue Jan 28 2025 Nick Clifton <nickc@redhat.com> - 12.87-1
- Annocheck: Fix locating string notes (again). Add exception for glibc benchmark tests. (RHEL-76456)
* Mon Jan 27 2025 Nick Clifton <nickc@redhat.com> - 12.86-1
- Annocheck: Add crtoffloadtableS.o to list of known gcc binaries. (RHEL-760404)
* Mon Jan 27 2025 Nick Clifton <nickc@redhat.com> - 12.85-1
- Annocheck: Fix the --debug-dir option.
* Thu Jan 23 2025 Nick Clifton <nickc@redhat.com> - 12.84-1
- Annocheck: Fix corrupt warning message when unable to locate separate debug info files.
* Wed Jan 22 2025 Nick Clifton <nickc@redhat.com> - 12.83-1
- Annocheck: Remove spurious debugging messages.
* Wed Jan 22 2025 Nick Clifton <nickc@redhat.com> - 12.82-1
- Annocheck: Always look for annobin notes in separate debug info files. (RHEL-75778)
* Thu Jan 16 2025 Nick Clifton <nickc@redhat.com> - 12.81-1
- Annocheck: Support multiple --debug-rpm and --debug-file options. (RHEL-73349)
* Sat Jan 11 2025 Jakub Jelinek <jakub@redhat.com> - 12.80-2
- NVR bump to allow rebuild for new GCC in a side-tag.
* Fri Dec 13 2024 Nick Clifton <nickc@redhat.com> - 12.80-1
- Annocheck: Add support for sys-root'ed glibc packages. (RHEL-71296)
* Tue Dec 10 2024 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 12.78-1
- GCC Plugin: Fix building with gcc 15. (#32429)
* Fri Nov 15 2024 Nick Clifton <nickc@redhat.com> - 12.77-1
- Annocheck: Fix overly long debug messages.
* Fri Nov 15 2024 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 12.75-1
- Annocheck: Add more exceptions for gcc binaries. (RHEL-33365)
- Annocheck: Add --skip-passes option.
* Wed Nov 06 2024 Nick Clifton <nickc@redhat.com> - 12.74-1
- Annocheck: Add exceptions for gcc binaries. (RHEL-33365)
* Tue Nov 05 2024 Nick Clifton <nickc@redhat.com> - 12.73-1
- Annocheck: Skip property note test for i386 binaries created by LLVM. (#2323797)
* Fri Nov 01 2024 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 12.71-1
- GCC Plugin: Change type of the .annobin.notes section from SHT_STRTAB to SHT_PROGBITS.
* Tue Aug 13 2024 Nick Clifton <nickc@redhat.com> - 12.70-1
- Clang & LLVM Plugins: Include install directory in binary. (RHEL-54069)
* Mon Aug 12 2024 Nick Clifton <nickc@redhat.com> - 12.69-1
- BuiltBy: Fix seg-fault when comparing language version strings. (RHEL-53497)
* Wed Aug 07 2024 Nick Clifton <nickc@redhat.com> - 12.67-1
- Annocheck: Stop spurious assembler warnings. (RHEL-53213)
- Annocheck: Stop warnings about known gaps. (RHEL-53218)
* Fri Aug 02 2024 Nick Clifton <nickc@redhat.com> - 12.66-1
- Annocheck: Fix stack realign test. (#2302427)
* Mon Jul 29 2024 Nick Clifton <nickc@redhat.com> - 12.65-1
- Annocheck: Fix recording arguments for later re-use. (RHEL-50802)
* Fri Jul 26 2024 Nick Clifton <nickc@redhat.com> - 12.64-1
- GCC Plugin: Fix building AArch64 components with gcc earlier than 11.3.
* Mon Jul 22 2024 Nick Clifton <nickc@redhat.com> - 12.63-1
- Annocheck: Add improvements to the builtby utility.
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 12.62-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Mon Jul 08 2024 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 12.60-1
- Annocheck: Add support for Fortran binaries.
* Tue Jun 11 2024 Nick Clifton <nickc@redhat.com> - 12.59-1
- Annocheck: Add heuristic for detecting parts of the CGO runtime library.
* Mon Jun 10 2024 Nick Clifton <nickc@redhat.com> - 12.58-1
- Annocheck: Add improvements for handling Clang runtime binaries.
* Tue Jun 04 2024 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 12.55-1
- Annocheck: Skip GAPS test for GO binaries. (RHEL-36308)
* Mon May 20 2024 Nick Clifton <nickc@redhat.com> - 12.54-2
- Spec File: Add annobin plugin document directory to the files section. (#2279779)
* Tue May 14 2024 Nick Clifton <nickc@redhat.com> - 12.54-1
- Annocheck: Remove some false positives for Rust binaries. (#2280239)
* Thu May 09 2024 Nick Clifton <nickc@redhat.com> - 12.53-2
- Spec File: Add the annobin source directory to the files section. (#2279779)
* Thu May 09 2024 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 12.52-1
- Annocheck: Add OpenSSL Engine test. (PTG-319)
* Tue Apr 23 2024 Nick Clifton <nickc@redhat.com> - 12.51-1
- Annocheck: Test for gaps even when only one note is present.
* Mon Apr 22 2024 Nick Clifton <nickc@redhat.com> - 12.50-1
- Annocheck: Skip AArch64 branch protection test for GO binaries.
* Thu Apr 18 2024 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 12.48-1
- Annocheck: Update heuristics for detecting glibc code in executables. (RHEL-30579)
* Wed Mar 27 2024 Nick Clifton <nickc@redhat.com> - 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 <tuliom@redhat.com> - 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 <nickc@redhat.com> - 12.45-1
- GCC Plugin: Fix bug extracing the value of target specific command line options.
* Wed Mar 06 2024 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 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.
- Annocheck: Correctly extract DWARF attributes from DT_REL files.
* Fri Mar 01 2024 Nick Clifton <nickc@redhat.com> - 12.42-1
- Annocheck: Improve heuristics for locating debug info files. (#2267097)
- Configure: Harmonize configure options.
* Tue Feb 27 2024 Nick Clifton <nickc@redhat.com> - 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 <tuliom@redhat.com> - 12.40-2
- Spec File: Remove a workaround for ppc64le.
* Tue Feb 13 2024 Nick Clifton <nickc@redhat.com> - 12.40-1
- Annocheck: Improve heuristic for skipping LTO and FORTIFY tests. (#2264000)
* Fri Feb 09 2024 Nick Clifton <nickc@redhat.com> - 12.39-1
- Annocheck: Also skip property note test for i686 binaries. (#2258571)
* Tue Jan 23 2024 Nick Clifton <nickc@redhat.com> - 12.38-1
- Annocheck: Also skip the entry point test for i686 binaries. (#2258571)
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 12.37-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 12.37-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Jan 17 2024 Nick Clifton <nickc@redhat.com> - 12.37-1
- GCC Plugin: Do not use section groups with string format notes.
* Tue Jan 16 2024 Nick Clifton <nickc@redhat.com> - 12.36-2
- Spec File: NVR bump in order to allow building in side tag.
* Tue Jan 16 2024 Nick Clifton <nickc@redhat.com> - 12.36-1
- Annocheck: Disable cf-protection test for i686 architecture. (#2258571)
* Mon Jan 15 2024 Nick Clifton <nickc@redhat.com> - 12.35-4
- Spec File: NVR bump in order to allow building in side tag.
* Mon Jan 15 2024 Nick Clifton <nickc@redhat.com> - 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 <U2FsdGVkX1@gmail.com> - 12.35-2
- Spec File: Do not install annocheck.1.gz when annocheck is disabled.
* Thu Jan 04 2024 Nick Clifton <nickc@redhat.com> - 12.35-1
- Annocheck: Improve detection of FIPS compliant GO binaries.
* Fri Dec 15 2023 Nick Clifton <nickc@redhat.com> - 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 Clifton <nickc@redhat.com> - 12.33-1
- Tests: Fix implicit-values test so that it will compile with gcc 14+.
* Fri Nov 24 2023 Nick Clifton <nickc@redhat.com> - 12.32-1
- GCC Plugin: Add support for -fhardended.
* Wed Nov 15 2023 Nick Clifton <nickc@redhat.com> - 12.31-1
- Update glibc detection heuristics for PPC64. (RHEL-16453)
* Wed Nov 01 2023 Nick Clifton <nickc@redhat.com> - 12.30-1
- Fix another atexit test failure. (#2247481)
* Mon Oct 30 2023 Nick Clifton <nickc@redhat.com> - 12.29-1
- Fix atexit test failure.
- Notes: Add support for string format notes.
* Fri Oct 06 2023 Nick Clifton <nickc@redhat.com> - 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 Clifton <nickc@redhat.com> - 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 Clifton <nickc@redhat.com> - 12.26-1
- LLVM Plugin: Fix building with LLVM version 17.
* Wed Aug 30 2023 Nick Clifton <nickc@redhat.com> - 12.25-1
- GCC Plugin: Enable string note format by default.
* Fri Aug 04 2023 Nick Clifton <nickc@redhat.com> - 12.24-1
- Annocheck: Change GO FIPS test to look for CGO_ENABLED markers.
* Mon Jul 31 2023 Nick Clifton <nickc@redhat.com> - 12.23-1
- Annocheck: Add test for FIPS compliant GO binaries.
* Wed Jul 26 2023 Nick Clifton <nickc@redhat.com> - 12.22-1
- Annocheck: Fix double free. (#2226749)
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 12.21-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jul 18 2023 Nick Clifton <nickc@redhat.com> - 12.21-1
- Spec File: migrated to SPDX license. (#2222112)
* Mon Jul 17 2023 Nick Clifton <nickc@redhat.com> - 12.20-2
- Spec File: Change License field to use SPDX notation. (#2222112)
* Mon Jul 17 2023 Nick Clifton <nickc@redhat.com> - 12.20-1
- Annocheck: Ignore AArch64 $x and $d symbols. (#2221192)
* Wed Jul 05 2023 Nick Clifton <nickc@redhat.com> - 12.19-1
- GCC Plugin: Suppress active checks for fortran sources. Improve scanning of COLLECT_GCC_OPTIONS.
* Thu Jun 29 2023 Nick Clifton <nickc@redhat.com> - 12.18-1
- Annocheck: Remove dependency upon binutils-devel.
* Thu Jun 29 2023 Nick Clifton <nickc@redhat.com> - 12.17-1
- Annocheck: Add detection of known parts of libstdc++-nonshared.a that contain gaps. (#2217864)
* Tue Jun 27 2023 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 12.15-1
- Annocheck: Add --suppress-version-warnings option.
* Thu Jun 22 2023 Nick Clifton <nickc@redhat.com> - 12.14-1
- Annocheck: Do not ignore separate debuginfo files that do not contain any DWARF. (#2144553)
* Tue Jun 20 2023 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 12.12-1
- Annocheck: Check for string notes in separate debug info files. (#2211694)
* Fri May 26 2023 Petr Pisar <ppisar@redhat.com> - 12.11-1
- Annocheck: Add support for el10 and rhel-10 profiles. (RHEL-526)
* Mon May 22 2023 Petr Pisar <ppisar@redhat.com> - 12.10-3
- Rebuild against rpm-4.19 (https://fedoraproject.org/wiki/Changes/RPM-4.19)
* Fri May 05 2023 Nick Clifton <nickc@redhat.com> - 12.10-2
- GCC Plugin: Default to generating string format notes. (Experimental)
* Fri Apr 28 2023 Nick Clifton <nickc@redhat.com> - 12.10-1
* Tue May 02 2023 Yara Ahmad <yahmad@redhat.com> - 12.10-1
- Annocheck: Suppress more tests for Rust binaries.
* Tue Apr 25 2023 Nick Clifton <nickc@redhat.com> - 12.09-1
- Annocheck: Fix detection of missing plugin options. (#2189492)
* Tue Apr 25 2023 Nick Clifton <nickc@redhat.com> - 12.08-1
- Fix generation of auto-generated files.
- Fix covscan reported errors.
* Fri Apr 21 2023 Nick Clifton <nickc@redhat.com> - 12.07-1
- gcc-plugin: generate warnings about misspelt -D_FORTIFY_SOURCE and/or -D_GLIBCXX_ASSERTIONS options.
* Thu Apr 20 2023 Nick Clifton <nickc@redhat.com> - 12.06-1
- gcc-plugin: use a bigger buffer for constructing notes.
* Wed Apr 19 2023 Nick Clifton <nickc@redhat.com> - 12.05-1
- llvm-plugin: Fix detection of optimization level. Improve test.
- clang-plugin: Improve test.
* Mon Apr 17 2023 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 12.03-1
- configure: Simplify.
* Tue Apr 11 2023 Nick Clifton <nickc@redhat.com> - 12.02-1
* Wed Apr 12 2023 Yara Ahmad <yahmad@redhat.com> - 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 <nickc@redhat.com> - 12.01-1
* Thu Mar 30 2023 Yara Ahmad <yahmad@redhat.com> - 12.01-1
- gcc plugin: Keep ELF notes at protocol version 3.
* Tue Mar 28 2023 Nick Clifton <nickc@redhat.com> - 12.00-1
* Wed Mar 29 2023 Yara Ahmad <yahmad@redhat.com> - 12.00-1
- Protocol Version 4: String format notes.
* Mon Mar 13 2023 Nick Clifton <nickc@redhat.com> - 11.14-1
* Tue Mar 21 2023 Yara Ahmad <yahmad@redhat.com> - 11.14-1
- Annocheck: Update message for LTO tests. (#2177140)
* Wed Mar 08 2023 Nick Clifton <nickc@redhat.com> - 11.13-1
- Annocheck: Add even more code to handle another glibc function built without LTO.
* Fri Mar 03 2023 Nick Clifton <nickc@redhat.com> - 11.12-1
- Annocheck: Add code to handle another glibc function built without LTO.
* Tue Feb 28 2023 Nick Clifton <nickc@redhat.com> - 11.11-1
* Tue Feb 28 2023 Yara Ahmad <yahmad@redhat.com> - 11.11-1
- GCC Plugin: Do not run if other plugins are active. (#2162746)
* Thu Feb 23 2023 Nick Clifton <nickc@redhat.com> - 11.10-1
- Annocheck: Add code to handle glibc functions built without LTO.
* Thu Feb 02 2023 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 11.08-1
- Annocheck: Fix atexit test. Fix recording of version numbers. (#2165528)
* Wed Jan 25 2023 Nick Clifton <nickc@redhat.com> - 11.07-2
- LLVM & Clang Plugins: Build with branch protection on AArch64. (#2164364)
- Fix gating tests.
* Fri Jan 20 2023 Nick Clifton <nickc@redhat.com> - 11.07-1
- Libannocheck: Fix bug causing infinite looping when running tests.
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 11.06-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Mon Jan 16 2023 Jakub Jelinek <jakub@redhat.com> - 11.06-2
* Wed Jan 18 2023 Yara Ahmad <yahmad@redhat.com> - 11.06-2
- Rebuilt against GCC 13.
* Fri Jan 13 2023 Nick Clifton <nickc@redhat.com> - 11.06-1
- Annocheck: Fix handling of file built by multiple versions of gcc. (#2160700)
* Mon Jan 09 2023 Nick Clifton <nickc@redhat.com> - 11.05-1
- Annocheck: Fix handling of empty files. (#2159292)
* Fri Jan 06 2023 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 11.03-1
- Annocheck: Fix memory leaks.
* Wed Jan 04 2023 Nick Clifton <nickc@redhat.com> - 11.02-1
* Thu Jan 05 2023 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 11.01-1
- Annocheck: Add more special glibc filenames. (#2158100)
* Wed Dec 21 2022 Nick Clifton <nickc@redhat.com> - 10.99-1
- Annocheck: Improve handling of tool versions.
* Tue Dec 20 2022 Nick Clifton <nickc@redhat.com> - 10.98-3
- Spec File: Fix building with plugin_rebuild enabled.
* Fri Dec 16 2022 Nick Clifton <nickc@redhat.com> - 10.98-1
- GCC plugin: Fix building with gcc-13.
* Fri Dec 16 2022 Nick Clifton <nickc@redhat.com> - 10.97-1
- Annocheck: Add test for binaries built by cross compilers.
* Thu Dec 15 2022 Nick Clifton <nickc@redhat.com> - 10.96-1
- Annocheck: Improve heuristic used to detect binaries without code. (#2144533)
* Mon Dec 12 2022 Nick Clifton <nickc@redhat.com> - 10.95-1
- Annocheck: Avoid using debug filename when parsing notes in a debuginfo file. (#2152280)
* Wed Nov 30 2022 Nick Clifton <nickc@redhat.com> - 10.94-1
- Annocheck: Better detection of binaries which do not contain code. (#2144533)
* Wed Nov 23 2022 Nick Clifton <nickc@redhat.com> - 10.93-1
* Wed Nov 23 2022 Yara Ahmad <yahmad@redhat.com> - 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 <nickc@redhat.com> - 10.92-1
* Wed Nov 09 2022 Yara Ahmad <yahmad@redhat.com> - 10.92-1
- Annocheck: Try harder not to run mutually exclusive tests.
* Fri Oct 21 2022 Nick Clifton <nickc@redhat.com> - 10.91-1
- Tests: Fix future-test so that it properly handles the situation where the compiler does not support the new options.
* Fri Oct 21 2022 Yara Ahmad <yahmad@redhat.com> - 10.91-1
- Rebase to annobin-10.91
- Tests: Fix future-test so that it properly handles the situation where the compiler does not support the new options.
- Libannocheck: Actually set result fields after tests are run.
- Libannocheck: Replace libannocheck_version variable with LIBANNOCHECK_VERSION define.
- Libannocheck: Remove 'Requires binutils-devel' from libannocheck.pc.
- Libannocheck: Move into separate sub-package.
- Libannocheck: Add libannocheck.pc pkgconfig file.
- Libannocheck: Add libannocheck_reinit().
- 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.
- Clang Plugin: Fix for building with Clang-15. (#2125875)
- Annocheck: Add a test for the inconsistent use of -Ofast. (#1248744)
- NVR Bump in order to trigger a rebuild for ELN. (#2124562)
* Wed Oct 19 2022 Nick Clifton <nickc@redhat.com> - 10.90-1
- Libannocheck: Actually set result fields after tests are run.
* Tue Oct 11 2022 Nick Clifton <nickc@redhat.com> - 10.89-1
- Libannocheck: Replace libannocheck_version variable with LIBANNOCHECK_VERSION define.
* Tue Oct 11 2022 Nick Clifton <nickc@redhat.com> - 10.88-1
- Libannocheck: Remove 'Requires binutils-devel' from libannocheck.pc.
* Wed Oct 05 2022 Nick Clifton <nickc@redhat.com> - 10.87-2
- Libannocheck: Move into separate sub-package.
* Fri Sep 30 2022 Nick Clifton <nickc@redhat.com> - 10.87-1
- Libannocheck: Add libannocheck.pc pkgconfig file.
* Fri Sep 30 2022 Nick Clifton <nickc@redhat.com> - 10.86-1
- Libannocheck: Add libannocheck_reinit().
* Thu Sep 22 2022 Nick Clifton <nickc@redhat.com> - 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 <sguelton@redhat.com> - 10.84-1
- Clang Plugin: Fix for building with Clang-15. (#2125875)
* Fri Sep 09 2022 Nick Clifton <nickc@redhat.com> - 10.83-1
- Annocheck: Add a test for the inconsistent use of -Ofast. (#1248744)
* Tue Sep 06 2022 Nick Clifton <nickc@redhat.com> - 10.81-2
- NVR Bump in order to trigger a rebuild for ELN. (#2124562)
* Thu Aug 11 2022 Nick Clifton <nickc@redhat.com> - 10.81-1
* Thu Aug 11 2022 Yara Ahmad <yahmad@redhat.com> - 10.81-1
- Plugin: Fix top level configuration support for RiscV.
* Tue Aug 09 2022 Nick Clifton <nickc@redhat.com> - 10.80-1
- Annocheck: Improvements to the size tool.
* Mon Jul 25 2022 Nick Clifton <nickc@redhat.com> - 10.79-1
* Tue Jul 26 2022 Yara Ahmad <yahmad@redhat.com> - 10.79-1
- Annocheck: Fixes for libannocheck.h.
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 10.78-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Tue Jul 05 2022 Nick Clifton <nickc@redhat.com> - 10.78-1
* Mon Jul 11 2022 Yara Ahmad <yahmad@redhat.com> - 10.78-1
- Annocheck: Add automatic profile selection.
* Mon Jul 04 2022 Nick Clifton <nickc@redhat.com> - 10.77-1
- Annocheck: Improve gap detection and reporting.
* Wed Jun 29 2022 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 10.76-2
- Spec File: Remove bogus Provides from annobin-docs subpackage.
* Tue Jun 14 2022 Nick Clifton <nickc@redhat.com> - 10.76-1
- Annocheck: Check build-id of separate debuginfo files.
- Annocheck: Add GAPS test replacing --ignore-gaps.
* Thu Jun 09 2022 Nick Clifton <nickc@redhat.com> - 10.75-1
- Annocheck: Fix covscan detected race condition between stat() and open().
* Tue Jun 07 2022 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 10.73-1
* Thu May 19 2022 Nick Clifton <nickc@redhat.com> - 10.73-1
- Annocheck: Fix handling of command line options that take arguments. (#2086850)
* Mon May 16 2022 Nick Clifton <nickc@redhat.com> - 10.72-1
* Tue May 17 2022 Yara Ahmad <yahmad@redhat.com> - 10.72-1
- Annocheck: Do not complain about unenabled -mbranch-protection option in AArch64 binaries. (#2078909)
* Wed May 11 2022 Nick Clifton <nickc@redhat.com> - 10.71-1
* Wed May 11 2022 Yara Ahmad <yahmad@redhat.com> - 10.71-1
- gcc-plugin: Fix typo in configure.ac.
* Tue May 10 2022 Nianqing Yao <imbearchild@outlook.com> - 10.70-2
- Add support for RISC-V.
- gcc-plugin: Add support for RISC-V.
* Mon May 09 2022 Nick Clifton <nickc@redhat.com> - 10.70-1
- Annocheck: Add another special case for glibc rpms. (#2083070)
* Mon May 09 2022 Jakub Jelinek <jakub@redhat.com> - 10.69-2
- NVR bump to allow rebuild for new GCC.
* Fri May 06 2022 Nick Clifton <nickc@redhat.com> - 10.69-1
- Annocheck: Do not complain about unenabled -mbranch-protection option in AArch64 binaries if compiled using LTO. (#2082146)
@ -1248,7 +784,7 @@ make check
* Fri Dec 17 2021 Nick Clifton <nickc@redhat.com> - 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 <nickc@redhat.com> - 10.38-1
- Annocheck: Add special case for x86_64 RHEL-7 gaps. (#2031133)

View file

@ -1,6 +1,5 @@
summary: CI Gating Plan
discover:
how: fmf
url: https://src.fedoraproject.org/tests/annobin.git
execute:
how: tmt

View file

@ -1 +1 @@
SHA512 (annobin-13.05.tar.xz) = 07bc023018e3f456fae470b271915bde2e1ff367ee8bb58adb74255023ae59e8c45ced8e4bd2130bf8a496966d986bca9866e054019f6ca4660d78c129b6532f
SHA512 (annobin-12.10.tar.xz) = 140c74f88ff309e24c003d533545bd7f7705d240faf3781569f7c91e0c41ef2640dfb2ebe2f0cb1fbafddcf3588d9df9b75424764b79091e64a4091b7be3c0f0

2
tests/README Normal file
View file

@ -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.

View file

@ -0,0 +1,18 @@
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 <mcermak@redhat.com>
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

View file

@ -0,0 +1,51 @@
#!/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 <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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

View file

@ -0,0 +1,14 @@
summary: identify
description: ''
contact:
- Martin Cermak <mcermak@redhat.com>
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

View file

@ -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/identify
# Description: identify
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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

View file

@ -0,0 +1,17 @@
summary: lto-preprocessor-options
description: ''
contact:
- Martin Cermak <mcermak@redhat.com>
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

View file

@ -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/Regression/lto-preprocessor-options
# Description: lto-preprocessor-options
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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

View file

@ -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 <mcermak@redhat.com>
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

View file

@ -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 <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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

View file

@ -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 <mcermak@redhat.com>
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

View file

@ -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 <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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

View file

@ -0,0 +1,18 @@
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 <mcermak@redhat.com>
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

View file

@ -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/Regression/segv-when-processing-multiple-params-incl-symlink
# Description: segv-when-processing-multiple-params-incl-symlink
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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

View file

@ -0,0 +1,24 @@
summary: testsuite
description: ''
contact:
- Martin Cermak <mcermak@redhat.com>
component:
- annobin
test: ./runtest.sh
framework: beakerlib
require:
- annobin-plugin-gcc
- annobin-annocheck
- binutils-devel
- bzip2-devel
- dnf
- 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

View file

@ -0,0 +1,85 @@
#!/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 <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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

View file

@ -0,0 +1,17 @@
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 <mcermak@redhat.com>
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

View file

@ -0,0 +1,55 @@
#!/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 <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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

View file

@ -0,0 +1,5 @@
#include <stdio.h>
void hello() {
printf("Hello World\n");
}

View file

@ -0,0 +1,5 @@
#include <iostream>
void hello() {
std::cout << "Hello World\n";
}

View file

@ -0,0 +1,6 @@
void hello();
int main(int argc, char **argv) {
hello();
return 0;
}

View file

@ -0,0 +1,6 @@
void hello();
int main(int argc, char **argv) {
hello();
return 0;
}

View file

@ -0,0 +1,17 @@
summary: gcc-fedora-flags
description: ''
contact:
- Tom Stellard <tstellar@redhat.com>
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

View file

@ -0,0 +1,40 @@
#!/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

View file

@ -0,0 +1,16 @@
summary: smoke test for annobin plugin
description: ''
contact:
- Martin Cermak <mcermak@redhat.com>
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

45
tests/Sanity/smoke/runtest.sh Executable file
View file

@ -0,0 +1,45 @@
#!/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 <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# 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