Blame SPECS/annobin.spec

886ef9
e78f0f
Name:    annobin
1f6024
Summary: Annotate and examine compiled binary files
f5a3c0
Version: 10.94
f5a3c0
Release: 1%{?dist}
e78f0f
License: GPLv3+
e78f0f
# Maintainer: nickc@redhat.com
527a2f
# Web Page: https://sourceware.org/annobin/
527a2f
# Watermark Protocol: https://fedoraproject.org/wiki/Toolchain/Watermark
e78f0f
1f6024
#---------------------------------------------------------------------------------
1f6024
1f6024
# Use "--without tests" to disable the testsuite.
1f6024
%bcond_without tests
1f6024
1f6024
# Use "--without annocheck" to disable the installation of the annocheck program.
1f6024
%bcond_without annocheck
1f6024
527a2f
# Use "--with debuginfod" to add support for debuginfod to be compiled into
1f6024
# the annocheck program.  By default the configure script will check for
1f6024
# availablilty at build time, but this might not match the run time situation.
1f6024
# FIXME: Add a --without debuginfod option to forcefully disable the configure
1f6024
# time check for debuginfod support.
1f6024
%bcond_with debuginfod
1f6024
8d73dc
# Use "--with clangplugin" to build the annobin plugin for Clang.
1f6024
%bcond_with clangplugin
1f6024
527a2f
# Use "--without gccplugin" to disable the building of the annobin plugin for GCC.
527a2f
%bcond_without gccplugin
527a2f
8d73dc
# Use "--with llvmplugin" to build the annobin plugin for LLVM.
8d73dc
%bcond_with llvmplugin
8d73dc
1f6024
# Set this to zero to disable the requirement for a specific version of gcc.
1f6024
# This should only be needed if there is some kind of problem with the version
1f6024
# checking logic or when building on RHEL-7 or earlier.
1f6024
%global with_hard_gcc_version_requirement 1
e78f0f
527a2f
%bcond_without plugin_rebuild
8d73dc
# Allow the building of annobin without using annobin itself.
8d73dc
# This is because if we are bootstrapping a new build environment we can have
8d73dc
# a new version of gcc installed, but without a new of annobin installed.
8d73dc
# (i.e. we are building the new version of annobin to go with the new version
8d73dc
# of gcc).  If the *old* annobin plugin is used whilst building this new
8d73dc
# version, the old plugin will complain that version of gcc for which it
8d73dc
# was built is different from the version of gcc that is now being used, and
8d73dc
# then it will abort.
e78f0f
#
8d73dc
# The default is to use annobin.  cf BZ 1630550.
527a2f
%if %{without plugin_rebuild}
8d73dc
%undefine _annotated_build
8d73dc
%endif
886ef9
886ef9
#---------------------------------------------------------------------------------
1f6024
527a2f
%global annobin_sources annobin-%{version}.tar.xz
527a2f
Source: https://nickc.fedorapeople.org/%{annobin_sources}
886ef9
# For the latest sources use:  git clone git://sourceware.org/git/annobin.git
886ef9
527a2f
# This is where a copy of the sources will be installed.
527a2f
%global annobin_source_dir %{_usrsrc}/annobin
527a2f
527a2f
# Insert patches here, if needed.  Eg:
527a2f
# Patch01: annobin-foo.patch
886ef9
# Insert patches here, if needed.
099118
Patch01: annobin-nop.patch
527a2f
Patch02: annobin-annocheck-no-debuginfod.patch
886ef9
886ef9
#---------------------------------------------------------------------------------
886ef9
886ef9
# [Stolen from gcc-python-plugin]
886ef9
# GCC will only load plugins that were built against exactly that build of GCC
886ef9
# We thus need to embed the exact GCC version as a requirement within the
886ef9
# metadata.
886ef9
#
886ef9
# Define "gcc_vr", a variable to hold the VERSION-RELEASE string for the gcc
886ef9
# we are being built against.
886ef9
#
886ef9
# Unfortunately, we can't simply run:
886ef9
#   rpm -q --qf="%%{version}-%%{release}"
886ef9
# to determine this, as there's no guarantee of a sane rpm database within
886ef9
# the chroots created by our build system
886ef9
#
886ef9
# So we instead query the version from gcc's output.
886ef9
#
886ef9
# gcc.spec has:
886ef9
#   Version: %%{gcc_version}
886ef9
#   Release: %%{gcc_release}%%{?dist}
886ef9
#   ...snip...
886ef9
#   echo 'Red Hat %%{version}-%%{gcc_release}' > gcc/DEV-PHASE
886ef9
#
886ef9
# So, given this output:
886ef9
#
886ef9
#   $ gcc --version
886ef9
#   gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9)
886ef9
#   Copyright (C) 2011 Free Software Foundation, Inc.
886ef9
#   This is free software; see the source for copying conditions.  There is NO
886ef9
#   warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
886ef9
#
886ef9
# we can scrape out the "4.6.1" from the version line.
886ef9
#
886ef9
# The following implements the above:
886ef9
886ef9
%global gcc_vr %(gcc --version | head -n 1 | sed -e 's|.*(Red\ Hat\ ||g' -e 's|)$||g')
886ef9
886ef9
# We need the major version of gcc.
886ef9
%global gcc_major %(echo "%{gcc_vr}" | cut -f1 -d".")
886ef9
%global gcc_next  %(v="%{gcc_major}"; echo $((++v)))
886ef9
886ef9
# Needed when building the srpm.
886ef9
%if 0%{?gcc_major} == 0
886ef9
%global gcc_major 0
886ef9
%endif
886ef9
886ef9
# This is a gcc plugin, hence gcc is required.
886ef9
%if %{with_hard_gcc_version_requirement}
886ef9
# BZ 1607430 - There is an exact requirement on the major version of gcc.
886ef9
Requires: (gcc >= %{gcc_major} with gcc < %{gcc_next})
886ef9
%else
886ef9
Requires: gcc
886ef9
%endif
886ef9
886ef9
BuildRequires: gcc gcc-plugin-devel gcc-c++
8d73dc
# The documentation uses pod2man...
8d73dc
BuildRequires: perl perl-podlators
1f6024
%if %{with clangplugin}
8d73dc
BuildRequires: clang clang-devel llvm llvm-devel compiler-rt gawk
8d73dc
%endif
8d73dc
%if %{with llvmplugin}
8d73dc
BuildRequires: clang clang-devel llvm llvm-devel compiler-rt gawk
1f6024
%endif
886ef9
886ef9
%description
886ef9
Provides a plugin for GCC that records extra information in the files
e78f0f
that it compiles.
886ef9
886ef9
Note - the plugin is automatically enabled in gcc builds via flags
886ef9
provided by the redhat-rpm-macros package.
886ef9
1f6024
%if %{with clangplugin}
8d73dc
Also provides a plugin for Clang which performs a similar function.
8d73dc
%endif
8d73dc
8d73dc
%if %{with llvmplugin}
8d73dc
Also provides a plugin for LLVM which performs a similar function.
1f6024
%endif
1f6024
886ef9
#---------------------------------------------------------------------------------
886ef9
%if %{with tests}
886ef9
886ef9
%package tests
886ef9
Summary: Test scripts and binaries for checking the behaviour and output of the annobin plugin
886ef9
886ef9
%description tests
886ef9
Provides a means to test the generation of annotated binaries and the parsing
886ef9
of the resulting files.
886ef9
f5a3c0
BuildRequires: make
f5a3c0
f5a3c0
%if %{with debuginfod}
f5a3c0
BuildRequires: elfutils-debuginfod-client-devel
f5a3c0
%endif
f5a3c0
886ef9
%endif
886ef9
886ef9
#---------------------------------------------------------------------------------
886ef9
%if %{with annocheck}
886ef9
886ef9
%package annocheck
886ef9
Summary: A tool for checking the security hardening status of binaries
886ef9
252f85
BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel make
f5a3c0
1f6024
%if %{with debuginfod}
1f6024
BuildRequires: elfutils-debuginfod-client-devel
1f6024
%endif
f5a3c0
252f85
Requires: cpio rpm
886ef9
886ef9
%description annocheck
886ef9
Installs the annocheck program which uses the notes generated by annobin to
886ef9
check that the specified files were compiled with the correct security
886ef9
hardening options.
886ef9
886ef9
%endif
886ef9
886ef9
#---------------------------------------------------------------------------------
886ef9
1f6024
%global ANNOBIN_GCC_PLUGIN_DIR %(gcc --print-file-name=plugin)
1f6024
527a2f
%{!?llvm_plugin_dir:%global  llvm_plugin_dir  %{_libdir}/llvm/plugins}
527a2f
%{!?clang_plugin_dir:%global clang_plugin_dir %{_libdir}/clang/plugins}
527a2f
527a2f
%if %{with gccplugin}
527a2f
# Information about the gcc plugin is recorded in this file.
527a2f
%global aver annobin-plugin-version-info
1f6024
%endif
886ef9
886ef9
#---------------------------------------------------------------------------------
886ef9
886ef9
%prep
886ef9
if [ -z "%{gcc_vr}" ]; then
886ef9
    echo "*** Missing gcc_vr spec file macro, cannot continue." >&2
886ef9
    exit 1
886ef9
fi
886ef9
1f6024
echo "Requires: (gcc >= %{gcc_major} and gcc < %{gcc_next})"
886ef9
886ef9
%autosetup -p1
886ef9
886ef9
# The plugin has to be configured with the same arcane configure
886ef9
# scripts used by gcc.  Hence we must not allow the Fedora build
886ef9
# system to regenerate any of the configure files.
1f6024
touch aclocal.m4 gcc-plugin/config.h.in
886ef9
touch configure */configure Makefile.in */Makefile.in
886ef9
# Similarly we do not want to rebuild the documentation.
886ef9
touch doc/annobin.info
886ef9
886ef9
#---------------------------------------------------------------------------------
886ef9
886ef9
%build
1f6024
527a2f
CONFIG_ARGS="--quiet --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR}"
8d73dc
1f6024
%if %{with debuginfod}
8d73dc
CONFIG_ARGS="$CONFIG_ARGS --with-debuginfod"
1f6024
%else
f5a3c0
# Note - we explicitly disable debuginfod support if it was not configured.
f5a3c0
# This is because by default annobin's configue script will assume --with-debuginfod=auto
f5a3c0
# and then run a build time test to see if debugingfod is available.  It
f5a3c0
# may well be, but the build time environment may not match the run time
f5a3c0
# environment, and the rpm will not have a Requirement on the debuginfod
f5a3c0
# client.
8d73dc
CONFIG_ARGS="$CONFIG_ARGS --without-debuginfod"
1f6024
%endif
1f6024
8d73dc
%if %{with clangplugin}
8d73dc
CONFIG_ARGS="$CONFIG_ARGS --with-clang"
8d73dc
%endif
8d73dc
527a2f
%if %{without gccplugin}
527a2f
CONFIG_ARGS="$CONFIG_ARGS --without-gcc-plugin"
527a2f
%endif
527a2f
8d73dc
%if %{with llvmplugin}
8d73dc
CONFIG_ARGS="$CONFIG_ARGS --with-llvm"
8d73dc
%endif
8d73dc
8d73dc
%if %{without tests}
61ef5c
CONFIG_ARGS="$CONFIG_ARGS --without-tests"
8d73dc
%endif
8d73dc
f5a3c0
%if %{without annocheck}
f5a3c0
CONFIG_ARGS="$CONFIG_ARGS --without-annocheck"
f5a3c0
%endif
f5a3c0
527a2f
%set_build_flags
527a2f
f5a3c0
export CFLAGS="$CFLAGS $RPM_OPT_FLAGS %build_cflags"
f5a3c0
export LDFLAGS="$LDFLAGS %build_ldflags"
f5a3c0
527a2f
# Fedora supports AArch64's -mbranch-protection=bti, RHEL does not.
527a2f
%if 0%{?fedora} != 0
f5a3c0
export CFLAGS="$CFLAGS -DAARCH64_BRANCH_PROTECTION_SUPPORTED=1"
527a2f
%endif
527a2f
527a2f
CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CXXFLAGS="$CFLAGS" %configure ${CONFIG_ARGS} || cat config.log
527a2f
527a2f
%ifarch %{ix86} x86_64
527a2f
# FIXME: There should be a better way to do this.
527a2f
export CLANG_TARGET_OPTIONS="-fcf-protection"
527a2f
%endif
8d73dc
886ef9
%make_build
8d73dc
527a2f
#---------------------------------------------------------------------------------
527a2f
527a2f
%if %{with plugin_rebuild}
8d73dc
# Rebuild the plugin(s), this time using the plugin itself!  This
886ef9
# ensures that the plugin works, and that it contains annotations
8d73dc
# of its own.
527a2f
527a2f
%if %{with gccplugin}
1f6024
cp gcc-plugin/.libs/annobin.so.0.0.0 %{_tmppath}/tmp_annobin.so
1f6024
make -C gcc-plugin clean
8d73dc
BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so"
8d73dc
8d73dc
# Disable the standard annobin plugin so that we do get conflicts.
527a2f
OPTS="$(rpm --eval '%undefine _annotated_build %build_cflags %build_ldflags')"
8d73dc
8d73dc
# If building on RHEL7, enable the next option as the .attach_to_group
8d73dc
# assembler pseudo op is not available in the assembler.
886ef9
# BUILD_FLAGS="$BUILD_FLAGS -fplugin-arg-tmp_annobin-no-attach"
8d73dc
527a2f
make -C gcc-plugin CXXFLAGS="$OPTS $BUILD_FLAGS"
886ef9
rm %{_tmppath}/tmp_annobin.so
527a2f
%endif
886ef9
1f6024
%if %{with clangplugin}
8d73dc
cp clang-plugin/annobin-for-clang.so %{_tmppath}/tmp_annobin.so
527a2f
make -C clang-plugin all CXXFLAGS="$OPTS $BUILD_FLAGS"
8d73dc
%endif
8d73dc
8d73dc
%if %{with llvmplugin}
8d73dc
cp llvm-plugin/annobin-for-llvm.so %{_tmppath}/tmp_annobin.so
527a2f
make -C llvm-plugin all CXXFLAGS="$OPTS $BUILD_FLAGS"
527a2f
%endif
527a2f
1f6024
%endif
1f6024
886ef9
#---------------------------------------------------------------------------------
886ef9
8d73dc
# PLUGIN_INSTALL_DIR is used by the Clang and LLVM makefiles...
886ef9
%install
f5a3c0
527a2f
%make_install PLUGIN_INSTALL_DIR=%{buildroot}/%{llvm_plugin_dir}
527a2f
527a2f
%if %{with clangplugin}
527a2f
# Move the clang plugin to a seperate directory.
527a2f
mkdir -p %{buildroot}/%{clang_plugin_dir}
527a2f
mv %{buildroot}/%{llvm_plugin_dir}/annobin-for-clang.so %{buildroot}/%{clang_plugin_dir}
527a2f
%endif
527a2f
527a2f
%if %{with gccplugin}
527a2f
# Record the version of gcc that built this plugin.
527a2f
# Note - we cannot just store %%{gcc_vr} as sometimes the gcc rpm version changes
527a2f
# without the NVR being altered.  See BZ #2030671 for more discussion on this.
527a2f
mkdir -p                             %{buildroot}/%{ANNOBIN_GCC_PLUGIN_DIR}
527a2f
cat `gcc --print-file-name=rpmver` > %{buildroot}/%{ANNOBIN_GCC_PLUGIN_DIR}/%{aver}
527a2f
527a2f
# Also install a copy of the sources into the build tree.
527a2f
mkdir -p                            %{buildroot}%{annobin_source_dir}
527a2f
cp %{_sourcedir}/%{annobin_sources} %{buildroot}%{annobin_source_dir}/latest-annobin.tar.xz
527a2f
%endif
527a2f
527a2f
rm -f %{buildroot}%{_infodir}/dir
886ef9
886ef9
#---------------------------------------------------------------------------------
886ef9
886ef9
%if %{with tests}
886ef9
%check
1f6024
# Change the following line to "make check || :" on RHEL7 or if you need to see the
1f6024
# test suite logs in order to diagnose a test failure.
527a2f
make -k check CLANG_TESTS="check-pre-clang-13"
099118
886ef9
if [ -f tests/test-suite.log ]; then
527a2f
    cat tests/*.log
a11eb6
fi
886ef9
%endif
886ef9
886ef9
#---------------------------------------------------------------------------------
886ef9
886ef9
%files
886ef9
%license COPYING3 LICENSE
886ef9
%exclude %{_datadir}/doc/annobin-plugin/COPYING3
886ef9
%exclude %{_datadir}/doc/annobin-plugin/LICENSE
886ef9
%doc %{_datadir}/doc/annobin-plugin/annotation.proposal.txt
886ef9
%doc %{_infodir}/annobin.info.gz
886ef9
%doc %{_mandir}/man1/annobin.1.gz
f9a457
%exclude %{_mandir}/man1/built-by.1*
f9a457
%exclude %{_mandir}/man1/check-abi.1*
f9a457
%exclude %{_mandir}/man1/hardened.1*
f9a457
%exclude %{_mandir}/man1/run-on-binaries-in.1*
886ef9
1f6024
%if %{with clangplugin}
527a2f
%{clang_plugin_dir}/annobin-for-clang.so
1f6024
%endif
527a2f
8d73dc
%if %{with llvmplugin}
527a2f
%{llvm_plugin_dir}/annobin-for-llvm.so
527a2f
%endif
527a2f
527a2f
%if %{with gccplugin}
527a2f
%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so
527a2f
%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0
527a2f
%{ANNOBIN_GCC_PLUGIN_DIR}/annobin.so.0.0.0
527a2f
%{ANNOBIN_GCC_PLUGIN_DIR}/%{aver}
527a2f
%{annobin_source_dir}/latest-annobin.tar.xz
8d73dc
%endif
1f6024
886ef9
%if %{with annocheck}
1f6024
%files annocheck
527a2f
%{_includedir}/libannocheck.h
527a2f
%{_libdir}/libannocheck.*
886ef9
%{_bindir}/annocheck
886ef9
%doc %{_mandir}/man1/annocheck.1.gz
f5a3c0
%{_libdir}/pkgconfig/libannocheck.pc
886ef9
%endif
886ef9
886ef9
#---------------------------------------------------------------------------------
886ef9
886ef9
%changelog
f5a3c0
* Wed Dec 07 2022 Nick Clifton  <nickc@redhat.com> - 10.94-1
f5a3c0
- Rebase to 10.94.  (#2151312)
f5a3c0
- Annocheck: Better detection of binaries which do not contain code.  (#2144533)
f5a3c0
- Annocheck: Provide more information when a test is skipped because the file being tested was not compiled.
f5a3c0
- Annocheck: Try harder not to run mutually exclusive tests.
f5a3c0
- Tests: Fix future-test so that it properly handles the situation where the compiler does not support the new options.
f5a3c0
- Libannocheck: Actually set result fields after tests are run.
f5a3c0
- Libannocheck: Replace libannocheck_version variable with LIBANNOCHECK_VERSION define.
f5a3c0
- Libannocheck: Remove 'Requires binutils-devel' from libannocheck.pc.
f5a3c0
- Libannocheck: Move into separate sub-package.
f5a3c0
- Libannocheck: Add libannocheck.pc pkgconfig file.
f5a3c0
- Libannocheck: Add libannocheck_reinit().
f5a3c0
- GCC Plugin: Record -ftrivial-auto-var-init and -fzero-call-used-regs.
f5a3c0
- Annocheck: Add future tests for  -ftrivial-auto-var-init and -fzero-call-used-regs.
f5a3c0
- Clang Plugin: Fix for building with Clang-15.  (#2125875)
f5a3c0
- Annocheck: Add a test for the inconsistent use of -Ofast.  (#1248744)
f5a3c0
- Plugin: Fix top level configuration support for RiscV.
f5a3c0
- Annocheck: Improvements to the size tool.
f5a3c0
- Annocheck: Fixes for libannocheck.h.
f5a3c0
- Annocheck: Add automatic profile selection.
f5a3c0
- Annocheck: Improve gap detection and reporting.
f5a3c0
- Annocheck: Check build-id of separate debuginfo files.
f5a3c0
- Annocheck: Add GAPS test replacing --ignore-gaps.
f5a3c0
- Annocheck: Fix covscan detected race condition between stat() and open().
f5a3c0
- Annocheck: Handle binaries created by Rust 1.18.  (#2094420)
f5a3c0
- Annocheck: Add optional function name to --skip arguments.  (PR 29229)
f5a3c0
- Annocheck: Fix handling of command line options that take arguments.  (#2086850)
f5a3c0
- Annocheck: Do not complain about unenabled -mbranch-protection option in AArch64 binaries.  (#2078909)
f5a3c0
- gcc-plugin: Fix typo in configure.ac.
f5a3c0
- Add support for RISC-V.
f5a3c0
- Annocheck: Add another special case for glibc rpms.  (#2083070)
f5a3c0
- Annocheck: Do not complain about unenabled -mbranch-protection option in AArch64 binaries if compiled using LTO.  (#2082146)
f5a3c0
- Annocheck: Add more glibc exceptions + check PT_TLS segments.  (#2081131)
f5a3c0
ab9c6c
* Thu Jul 21 2022 Florian Weimer <fweimer@redhat.com> - 10.67-3
ab9c6c
- Rebuild to switch back to system annobin (#2108721)
ab9c6c
4afe60
* Fri Jul 15 2022 Florian Weimer <fweimer@redhat.com> - 10.67-2
4afe60
- Rebuild to switch back to system annobin (#2001788)
4afe60
1f6b03
* Fri Apr 29 2022 Nick Clifton  <nickc@redhat.com> - 10.67-1
1f6b03
- Rebuild against LLVM 14.  (#2064521)
1f6b03
- Annocheck: Do not complain about missing -mbranch-protection option in AArch64 binaries if compiled by golang.
1f6b03
- Annocheck: Do not complain about missing -mbranch-protection option in AArch64 binaries if compiled in LTO mode.
1f6b03
- gcc-plugin: Add support for CLVC_INTEGER options.
1f6b03
61ef5c
* Wed Apr 06 2022 Nick Clifton  <nickc@redhat.com> - 10.64-1
61ef5c
- Annocheck: Add more special cases for AArch64 glibc on RHEL-8.  (#2072082)
61ef5c
- llvm-plugin: Fix a thinko in the sources.
61ef5c
- gcc-plugin: Add remap of OPT_Wall.
61ef5c
- configure: Fix typo in top level configure.ac.
61ef5c
- Add support for building using meson+ninja.
61ef5c
- Annocheck: Fix test for AArch64 property notes.  (#2068657)
61ef5c
- gcc-plugin: Do not issue warning messages for autoconf generated source files.  (#2009958)
61ef5c
527a2f
* Thu Mar 24 2022 Nick Clifton  <nickc@redhat.com> - 10.58-1
527a2f
- Rebase to 10.58.  (#2067148)
527a2f
- gcc-plugin: Do not issue warning messages for autoconf generated source files.  (#2009958)
527a2f
- Annocheck: Update documentation and fix typo in annocheck.  (#2061291)
527a2f
- Annocheck: Add option to enable/disable following symbolic links.
527a2f
- Annocheck: Always identify Rust binaries, even if built on a host that does not know about Rust.  (#2057737)
527a2f
- Spec File: Use a different method to disable the annobin plugin  (#2054571)
527a2f
- Annocheck: Accept static GO binaries.  (#2053606)
527a2f
- gcc-plugin: Fix libtool so that extraneous runpaths are not added to the plugin.  (#2047356)
527a2f
- gcc-plugin: Use canonical_option field of save_decoded_options array. (#2047148)
527a2f
- Annocheck: Add an option to disable the use of debuginfod (if available).
527a2f
- Annocheck: Add more glibc special file names.
527a2f
- Annocheck: Skip some tests for BPF binaries.  (#2044897)
527a2f
- Annocheck: Skip property note test for GO binaries.  (#204300)
527a2f
- Annocheck: Add another glibc static library symbol.  (#2043047)
527a2f
- Spec File: Use gcc --print-file-name=rpmver for the gcc version info.
527a2f
- GCC Plugin: Do not fail if a section cannot be attached to a group.
527a2f
- Annocheck: Improve detection of kernel modules.
527a2f
- GCC Plugin: Only default to link-once when using gcc-12 or later.  (#2039297)
527a2f
- Annocheck: Add option to disable instrumentation test.
527a2f
- GCC Plugin: Fix building with gcc-12.
527a2f
- Spec file: Add requirement on cpio for annocheck.  (#2039747)
527a2f
- Annocheck: Add even more glibc function names. (#2037333)
527a2f
- Annocheck: ARM: Do not fail tests that rely upon annobin notes.
527a2f
- Annocheck: Extend list of known glibc functions.  (#2037333)
527a2f
- Annocheck: Ignore gaps that contain the _start symbol (for AArch64).  (#1995224)
527a2f
- Annocheck: Ignore more glibc special binaries.  (#2037220)
527a2f
- Annocheck: Do not complaining about missing stack clash notes if the compilation used LTO.  (#2034946)
527a2f
- Annocheck: Add /usr/lib/ld-linux-aarch64.so.1 to the list of known glibc binaries.  (#2033255)
527a2f
- Docs: Note that ENDBR is only needed as the landing pad for indirect branches/calls.  (#28705)
527a2f
- Spec File: Store full	gcc version release string in plugin info file.  (#2030671)
527a2f
- Annocheck: Add special case for x86_64 RHEL-7 gaps.  (#2031133)
527a2f
- Annocheck: Do not complaining about missing -mstackrealign notes in LTO mode.  (#2030298)
527a2f
- GCC Plugin: Do not record missing -mstackrealign in LTO mode.
527a2f
- Tests: Fix gaps and stat tests to use newly built annobin plugin.  (#2028063)
527a2f
- Annocheck: Ignore gaps in binaries at least partial built by golang.  (#2028583)
527a2f
- Annocheck: Allow spaces in gloang symbols.  (#2028583)
527a2f
- Annocheck: Initial deployment of libannocheck.  (#2028063)
527a2f
- gcc-plugin: Fix bug creating empty attachments.
527a2f
- Annocheck: Change MAYB result to SKIP for DT_RPATH.  (#2026300)
527a2f
- Annocheck: Skip missing fortify/warning notes for ARM32.
527a2f
b32d28
* Tue Feb 08 2022 Nick Clifton  <nickc@redhat.com> - 10.29-3
b32d28
- NVR bump in order to allow rebuilding against latest gcc.  (#2052060)
b32d28
252f85
* Mon Jan 24 2022 Nick Clifton  <nickc@redhat.com> - 10.29-2
252f85
- Spec File: Add "Requires: rpm cpio" to annocheck sub-package.  (#2043474)
252f85
ab8c00
* Tue Nov 30 2021 Nick Clifton  <nickc@redhat.com> - 10.28-1
ab8c00
- gcc-plugin: Fix bug creating empty attachments.  (#2026944)
ab8c00
- Annocheck: Change MAYB result to SKIP for DT_RPATH.  (#2026300)
ab8c00
919680
* Mon Nov 22 2021 Nick Clifton  <nickc@redhat.com> - 10.27-1
919680
- Annocheck: Skip missing fortify/warning notes for ARM32.
919680
- gcc-plugin: Try another fix for ppc64le section grouping.  (#2023437)
919680
- gcc-plugin: Revert 10.22 change.  (#2023437)
919680
- Annocheck: Add exception for /usr/sbin/ldconfig.  (#2022973)
919680
1b576a
* Mon Nov 08 2021 Nick Clifton  <nickc@redhat.com> - 10.23-1
1b576a
- Annocheck: Add a test for unicode characters in identifiers.  (#2017363)
1b576a
- gcc-plugin: Default to link-order grouping for PPC64LE.  (#2016458)
1b576a
aafa26
* Wed Oct 27 2021 Nick Clifton  <nickc@redhat.com> - 10.21-3
aafa26
- annocheck: Disable LTO test when checking ldconfig (attempt 3).  (#2017039)
aafa26
aafa26
* Tue Oct 26 2021 Nick Clifton  <nickc@redhat.com> - 10.21-2
aafa26
- annocheck: Disable LTO test when checking ldconfig (attempt 2).  (#2017039)
aafa26
aafa26
* Tue Oct 26 2021 Nick Clifton  <nickc@redhat.com> - 10.21-1
aafa26
- annocheck: Disable LTO test when checking ldconfig.  (#2017039)
aafa26
aafa26
* Mon Oct 25 2021 Nick Clifton  <nickc@redhat.com> - 10.20-1
aafa26
- annocheck: Add more glibc function names.  (#2017039)
aafa26
- gcc-plugin: Fix attaching the .text section to the .text.group section.
aafa26
- Complain about DT_RPATH for Fedora binaries.
aafa26
- Better reporting of problems in object files.  (#2013708)
aafa26
- Add a requirement on llvm-libs for clang and llvm plugins.  (#2014573)
aafa26
- Fix configuring annocheck without gcc-plugin.
aafa26
- Annocheck: Better reporting of debuginfod problems.
aafa26
- Tests: Fix bugs in debuginfod test.
aafa26
f9a457
* Mon Oct 18 2021 Nick Clifton  <nickc@redhat.com> - 10.15-2
f9a457
- Exclude man pages for uninstalled scripts.  (#2013565)
f9a457
fa81a3
* Wed Oct 13 2021 Nick Clifton  <nickc@redhat.com> - 10.15-1
fa81a3
- Annocheck: Add tests based upon recent bug fixes.
fa81a3
- Annocheck: Another tweak to glibc detection code.
fa81a3
fa81a3
* Mon Oct 11 2021 Nick Clifton  <nickc@redhat.com> - 10.13-1
fa81a3
- Annocheck: Fix memory corruptions when using --debug-path and when a corrupt note is found.  (#20011438)
fa81a3
- Annocheck: Fix MAYB results for mixed GO/C files.
fa81a3
- Annocheck: Move some messages from VERBOSE to VERBOSE2.
fa81a3
- Annocheck: Scan zero-length tool notes.  (#2011818)
fa81a3
fa81a3
* Wed Oct 06 2021 Nick Clifton  <nickc@redhat.com> - 10.11-1
fa81a3
- Annocheck: Fix covscan detected flaws.  (#201129)
fa81a3
- plugins: Add more required build options.  (#2011163)
fa81a3
fa81a3
* Tue Oct 05 2021 Nick Clifton  <nickc@redhat.com> - 10.10-1
fa81a3
- Annocheck: Fix cf-prot test to fail if the CET notes are missing.  (#2010671)
fa81a3
- Annocheck: Skip gaps in the .plt section.  (#2010675)
fa81a3
- Plugins: Add -g option when building LLVM and Clang. (#2010675)
fa81a3
fa81a3
* Mon Oct 04 2021 Nick Clifton  <nickc@redhat.com> - 10.09-1
fa81a3
- Annocheck: Add more cases of glibc startup functions.  (#1981410)
fa81a3
- Annocheck: Fix covscan detected problems.
fa81a3
- Annocheck: Add --profile=el8.
fa81a3
- gcc-plugin: Conditionalize generation of branch protection note.
fa81a3
- Annocheck: Ignore gaps containing NOP instructions.
fa81a3
099118
* Wed Sep 29 2021 Nick Clifton <nickc@redhat.com> - 10.06-1
099118
- Rebase to 10.06.  (#2002351)
099118
- GCC Plugin: Fix detection of running inside the LTO compiler.  (#2004917)
099118
- Annocheck: Do not insist on the DT_AARCH64_PAC_PLT flag being present in AArch64 binaries.
099118
- Annocheck: With gaps at the start/end of the .text section, check for special symbols before displaying a MAYB result.
099118
- Annocheck: Do not set CFLAGS/LDFLAGS when building.  Take from environment instead.
099118
- Annocheck: Fix exit code when tests PASS.
099118
- Documentation: Add node for each hardening test.
099118
- Documentation: Install online.
099118
- Annocheck: Annote FAIL and MAYB results with URL to documentation
099118
- Annocheck: Add --no-urls and --provide-urls options
099118
- Annocheck: Add --help-<tool> option.
099118
- Annocheck: Fix fuzzing detected failures.
099118
- Annocheck: Add --profile option.
099118
- Docs: Document --profile option and rpminspect.yaml.
099118
- Annocheck: Skip GO/CET checks.  Fix fuzzing detected failures.
099118
- LLVM Plugin: Automatically choose the correct tests to run, based upon the version of Clang installed. (#1997444)
099118
- Annocheck: Fix memory corruption.  (#1996963)
099118
- Annocheck: Fix conditionalization of AArch64's PAC+BTI detection.
099118
- Annocheck: Add linker generated function for ppc64le exceptions.  (#1981410)
099118
- LLVM Plugin: Allow checks to be selected from the command line.
099118
- Annocheck: Examine DW_AT_producer for -flto.    
099118
- Annocheck: Conditionalize detection of AArch64's PAC+BTI protection.
099118
- Annocheck: Add linker generated function for s390x exceptions.  (#1981410)
099118
- Annocheck: Generate MAYB results for gaps in notes covering the .text section.  (#1991943)
099118
- Annocheck: Close DWARF file descriptors once the debug info is no longer needed.  (#1981410)
099118
- LLVM Plugin: Update to build with Clang v13.  (Thanks to: Tom Stellard <tstellar@redhat.com>)
099118
- Annocheck: Fix memory corruption.  (#1988715)
099118
- Annocheck: Skip certain tests for kernel modules.
099118
- Annocheck: Detect a missing CET note.  (#1991931)
099118
- Annocheck: Do not report future fails for AArch64 notes.
099118
- Annocheck: Warn about multiple --debug-file, --debug-rpm and --debug-dir options.
099118
- Annocheck: Process files in command line order.  (#1988714)
099118
- Annocheck: Reverse AArch64 PAC+BTI check, ie fail if they are enabled.  (#1984995)
099118
- Annocheck: Add another test exceptions.
099118
- Annocheck: Add some more test exceptions.
099118
- Tests: Skip glibc-notes test if the assembler does not support --generate-missing-build-notes.  (#1978573)
099118
- Tests: Skip objcopy test if objcopy does not support --merge-notes.
099118
- Annocheck: Fix spelling mistake in -mstack-realign failure message.  (#1977349)
099118
- gcc-plugin: Do not record global versions of stack protection settings in LTO mode, if not set.  (#1958954)
099118
- Annocheck: Remove limit on number of input files.
099118
- clang/llvm plugins: Build with correct security options.
099118
- Annocheck: Better detection of GO compiler version.
099118
- Annocheck: Better support for symbolic links.
099118
- Annocheck: In verbose mode, report the reason for skipping specific tests.  (#1969584)
099118
- Annocheck: Improve detection of shared libraries.  (#1958954)
099118
099118
* Mon May 17 2021 Nick Clifton <nickc@redhat.com> - 9.72-1
099118
- Rebase to 9.72.  (#1960299)
099118
- annocheck: Accept 0 as a valid number for gcc minor versions and release numbers.
099118
- gcc-plugin: Add support for ARM and RISCV targets.
099118
- timing: do not initialise the clock if the timing tool is disabled.
099118
- gcc-plugin: Replace ICE messsages with verbose messages.
099118
- Fix the testsuite so that it can be run in parallel.
099118
- Annocheck: WARN if the annobin plugin was built for a newer version of the compiler than the one on which it was run.  (#1950657)
099118
- Annocheck: Improve detection of missing GNU-stack support.
099118
- Correct a package rename (bug #1949570)
099118
- Require docs subpackage by the other ones because of a license
099118
- Build-requiring perl-interpreter is enough
099118
- Fix bz1949570
099118
- Fix anomolies reported by covscan.
099118
- Move documentation into a sub-package.
099118
a11eb6
* Wed Mar 17 2021 Nick Clifton <nickc@redhat.com> - 9.65-1
a11eb6
- gcc-plugin: Use a fixed filename when running in LTO mode.
a11eb6
a11eb6
* Wed Mar 03 2021 Nick Clifton <nickc@redhat.com> - 9.64-1
a11eb6
- Annocheck: Fix detection of special function names.  (#1934189)
a11eb6
- Annocheck: FAIL the deliberate use of -fno-stack-protector, but add some exceptions for glibc.  (#1923439)
a11eb6
- Annocheck: Add colour to some messages.  Skip the deliberate use of -fno-stack-protector.  (#1923439)
a11eb6
- Annocheck: Fix some problems with tests for missing notes.
a11eb6
- Add some GO tests to annocheck.
a11eb6
- Add a future fail for the presence of RPATH in the dynamic tags.
a11eb6
- Add the ability to disable the warning message about -D_FORTIFY_SOURCE being missing.
a11eb6
- Workaround for elflint problems with PPC compiled files.  (#1880634)
a11eb6
- Fix bogus AArch64 test failures.
a11eb6
- Improved testing by annocheck.  Add fixed format message mode.
a11eb6
- Fix inconsistency reporting -fcf-protection and -fstack-clash-protection results.
a11eb6
- Add support for -D_FORTIFY_SOURCE=3.
a11eb6
- annocheck: When a binary is produced both by GAS and GCC, select GAS as the real producer.  (#1906171)
a11eb6
- annocheck: Improve test for LTO compiled binaries that do not have -Wall annotations.  (#1906171)
a11eb6
f47ae8
* Wed Dec 09 2020 Nick Clifton <nickc@redhat.com> - 9.50-1
f47ae8
- annocheck: Mark a missining -D_FORTIFY_SOURCE as a FAIL.
f47ae8
f47ae8
* Tue Dec 08 2020 Nick Clifton <nickc@redhat.com> - 9.49-1
f47ae8
- annocheck: Fix notes analyzer to accept empty PPC64 notes.
f47ae8
- gcc plugin: Tweak generation of end symbols for PPC64 when LTO is active.  (#1898075)(#1904479)
f47ae8
- gcc plugin: Add support for GCC 11's cl_vars array.
f47ae8
f47ae8
* Mon Nov 30 2020 Nick Clifton <nickc@redhat.com> - 9.46-1
f47ae8
- Annocheck: Support enabling/disabling future fails.
f47ae8
- GCC plugin: Always record global notes for the .text.startup,
f47ae8
  .text.exit, .text.hot and .text.cold sections.
f47ae8
- Clang plugin: Add -lLLVM to the build command line.
f47ae8
- Annocheck: Improve reporting of missing -D_FORTIFY_SOURCE option.  (#1898075)
f47ae8
- Annocheck: Improve reporting of missing LTO option.
f47ae8
- Add detecting of gimple compiled binaries.
f47ae8
- Add --without-gcc-plugin option.
f47ae8
- Annocheck: Fix bug parsing DW_AT_producer.
f47ae8
- Add test of .note.gnu.property section for PowerPC.
f47ae8
- Add test of objcopy's ability to merge notes.
f47ae8
- Record the -flto setting and produce a soft warning if it is absent.
f47ae8
- Suppress warnings about _D_GLIBCXX_ASSERTIONS if the source code is known to be something other than C++.
f47ae8
f47ae8
* Wed Oct 21 2020 Nick Clifton <nickc@redhat.com> - 9.35-3
f47ae8
- NVR bump to allow building on ELN sidetag.
f47ae8
8d73dc
* Tue Oct 13 2020 Nick Clifton <nickc@redhat.com> - 9.35-2
8d73dc
- Correct the directory chosen for 32-bit LLVM and Clang plugins.  (#1884951)
8d73dc
- Allow the use of the SHF_LINK_ORDER section flag to discard unused notes.  (Experimental).
8d73dc
- gcc-plugin: Fix test for empty PowerPC sections.  (#1880634)
8d73dc
8d73dc
* Thu Sep 10 2020 Nick Clifton <nickc@redhat.com> - 9.32-1
8d73dc
- annocheck: Add tests for the AArch64 BTI and PAC security features.  (#1862478)
8d73dc
- gcc plugin: Use a 4 byte offset for PowerPC start symbols, so that they do not break disassemblies.
8d73dc
- gcc plugin: Correct the detection of 32-bit x86 builds.  (#1876197)
8d73dc
8d73dc
* Tue Sep 08 2020 Nick Clifton <nickc@redhat.com> - 9.29-1
8d73dc
- gcc plugin: Detect any attempt to access the global_options array.
8d73dc
- gcc plugin: Do not complain about missing pre-processor options when examining a preprocessed input file.  (#1862718)
8d73dc
- Use more robust checks for AArch64 options.
8d73dc
- Detect CLANG compiled assembler that is missing IBT support.
8d73dc
- Improved target pointer size discovery.
8d73dc
- Add support for installing clang and llvm plugins.
8d73dc
- Temporary suppression of aarch64 pointer size check.  (#1860549)
8d73dc
c082f7
* Wed Jul 01 2020 Nick Clifton <nickc@redhat.com> - 9.23-1
c082f7
- Annocheck: Do not skip tests of the short-enums notes.  (#1743635)
c082f7
0f0dd9
* Thu Apr 23 2020 Nick Clifton <nickc@redhat.com> - 9.21-1
0f0dd9
- Annobin: Fall back on using the flags if the option cannot be found in cl_options.  (#1817659)
0f0dd9
- Annocheck: Detect Fortran compiled programs.  (#1824393)
0f0dd9
1f6024
* Mon Apr 06 2020 Nick Clifton <nickc@redhat.com> - 9.19-1
1f6024
- Annobin: If option name mismatch occurs, seach for the real option.  (#1817452)
1f6024
- Annocheck: Fix a division by zero error when parsing GO binaries.  (#1818863)
1f6024
- Annobin: Fix access to the -flto and -fsanitize flags.
1f6024
- 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.
1f6024
- Rename gcc plugin directory to gcc-plugin.
1f6024
- Stop annocheck from complaining about missing options when the binary has been built in a mixed environment.
1f6024
- Improve builtby tool.
1f6024
- Stop annocheck complaining about missing notes when the binary is not compiled by either gcc or clang.
1f6024
- Skip the check of the ENTRY instruction for binaries not compiled by gcc or clang.  (#1809656)
1f6024
- Fix infinite loop hangup in annocheck.
1f6024
- Disable debuginfod support by default.
1f6024
- Improve parsing of .comment section.
1f6024
- Fix clang plugin to use hidden symbols.
1f6024
- Add ability to build clang plugin (disabled by default).
1f6024
- Annocheck: Fix error printing out the version number.
1f6024
- Annobin: Add checks of the exact location of the examined switches.
c082f7
- Annobin: Note when stack clash notes are generated.  (#1803173, #1828797)
1f6024
- Annocheck: Handle multiple builder IDs in the .comment section.
1f6024
- Add configure option to suppress building annocheck.
1f6024
- Fix debuginfod test.
1f6024
- Correct the build requirement for building with debuginfod support.
1f6024
- Add debuginfod support.
1f6024
- Add clang plugin (experimental).
1f6024
- Have annocheck ignore notes with an end address of 0.
1f6024
- Improve checking of gcc versions.
1f6024
e78f0f
* Fri Nov 15 2019 Nick Clifton <nickc@redhat.com> - 8.90-1
e78f0f
- Do not skip positive results.
e78f0f
e78f0f
* Tue Nov 12 2019 Nick Clifton <nickc@redhat.com> - 8.89-2
e78f0f
- Bump NVR to allow rebuild after tweaking gating tests.
e78f0f
e78f0f
* Tue Nov 12 2019 Nick Clifton <nickc@redhat.com> - 8.89-1
e78f0f
- Update to version 8.89.  (#1766631)
e78f0f
- Generate a WARN result for code compiled with instrumentation enabled.  (#1753918)
e78f0f
- Replace address checks with dladdr1.
e78f0f
- Use libabigail like checking to ensure variable address consistency.
e78f0f
- Skip generation of global notes for hot/cold sections.
e78f0f
- Generate FAIL results if -Wall or -Wformat-security are missing.
e78f0f
- If notes cannot be found in the executable look for them in the debuginfo file, if available.
e78f0f
- Generate a FAIL if notes are missing from the executable/debuginfo file.
e78f0f
- Record and report the setting of the AArcht64 specific -mbranch-protection option.
e78f0f
- Improve detection of GO binaries.
e78f0f
- Add gcc version information to annobin notes.
0f0dd9
- Do not complain about missing FORTIFY_SOURCE and GLIBCXX_ASSERTIONS in LTO compilations.  (#1743635)
e78f0f
e78f0f
* Tue Aug 06 2019 Nick Clifton <nickc@redhat.com> - 8.78-1
e78f0f
- Fix a memory allocation error in the annobin plugin.  (#1737306)
e78f0f
e78f0f
* Mon Aug 05 2019 Nick Clifton <nickc@redhat.com> - 8.77-2
e78f0f
- NVR bump to allow rebuilding against latest gcc.
e78f0f
e78f0f
* Mon Jun 24 2019 Nick Clifton <nickc@redhat.com> - 8.77-1
e78f0f
- Another attempt at fixing the detection and reporting of missing -D_FORTIFY_SOURCE options.  (#1703500)
e78f0f
e78f0f
* Thu Jun 13 2019 Nick Clifton <nickc@redhat.com> - 8.76-2
e78f0f
- Release bump in order to allow rebuild against latest version of gcc in RHEL-8 buildroot.  (#1720179)
e78f0f
886ef9
* Tue Jun 04 2019 Nick Clifton <nickc@redhat.com> - 8.76-1
886ef9
- Report a missing -D_FORTIFY_SOUCRE option if -D_GLIBCXX_ASSERTIONS was detected.  (#1703500)
886ef9
- Do not report problems with -fstack-protection if the binary was not built by gcc or clang.  (#1703788)    
886ef9
- Add tests of clang command line options recorded in the DW_AT_producer attribute.
886ef9
886ef9
* Fri May 10 2019 Nick Clifton <nickc@redhat.com> - 8.73-2
886ef9
- Release bump in order to allow rebuild against latest version of gcc in RHEL-8 buildroot.  (#1657912)
886ef9
886ef9
* Wed Apr 24 2019 Nick Clifton <nickc@redhat.com> - 8.73-1
886ef9
- Fix test for an executable stack segment.  (#1700924)
886ef9
886ef9
* Thu Feb 28 2019 Nick Clifton <nickc@redhat.com> - 8.71-1
886ef9
- Annobin: Suppress more calls to free() which are triggering memory checker errors.  (#1684148)
886ef9
886ef9
* Fri Feb 01 2019 Nick Clifton <nickc@redhat.com> - 8.70-1
886ef9
- Add section flag matching ability to section size tool.
886ef9
886ef9
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 8.69-7
886ef9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
886ef9
886ef9
* Tue Jan 29 2019 Björn Esser <besser82@fedoraproject.org> - 8.69-6
886ef9
- Use 'with' for rich dependency on gcc
886ef9
886ef9
* Tue Jan 29 2019 Björn Esser <besser82@fedoraproject.org> - 8.69-5
886ef9
- Really fix rhbz#1607430.
886ef9
886ef9
* Mon Jan 28 2019 Björn Esser <besser82@fedoraproject.org> - 8.69-4
886ef9
- Rebuilt with annotations enabled
886ef9
886ef9
* Mon Jan 28 2019 Björn Esser <besser82@fedoraproject.org> - 8.69-3
886ef9
- Fix rpm query for gcc version.
886ef9
886ef9
* Mon Jan 28 2019 Nick Clifton <nickc@redhat.com> - 8.69-2
886ef9
- Add an exact requirement on the major version of gcc. (#1607430)
886ef9
886ef9
* Thu Jan 24 2019 Nick Clifton <nickc@redhat.com> - 8.69-1
886ef9
- Annobin: Add support for .text.startup and .text.exit sections generated by gcc 9.
886ef9
- Annocheck: Add a note displaying tool.
886ef9
886ef9
* Wed Jan 23 2019 Nick Clifton <nickc@redhat.com> - 8.68-1
886ef9
- Annocheck: Skip checks for -D_FORTIFY_SOURCE and -D_GLIBCXX_ASSERTIONS if there is no compiler generated code in the binary.
886ef9
886ef9
* Mon Jan 21 2019 Björn Esser <besser82@fedoraproject.org> - 8.67-3
886ef9
- Rebuilt with annotations enabled
886ef9
886ef9
* Mon Jan 21 2019 Björn Esser <besser82@fedoraproject.org> - 8.67-2
886ef9
- Rebuilt for GCC 9
886ef9
886ef9
* Thu Jan 17 2019 Nick Clifton <nickc@redhat.com> - 8.67-1
886ef9
- Annocheck: Only skip specific checks for specific symbols.  (#1666823)
886ef9
- Annobin: Record the setting of the -fomit-frame-pointer option.  (#1657912)
886ef9
886ef9
* Wed Jan 02 2019 Nick Clifton <nickc@redhat.com> - 8.66-1
886ef9
- Annocheck: Do not ignore -Og when checking to see if an optimization level has been set.  (#1624162)
886ef9
886ef9
* Tue Dec 11 2018 Nick Clifton <nickc@redhat.com> - 8.65-1
886ef9
- Annobin: Fix handling of multiple .text.unlikely sections.
886ef9
886ef9
* Fri Nov 30 2018 Nick Clifton <nickc@redhat.com> - 8.64-1
886ef9
- Annocheck: Skip gaps in PPC64 executables covered by start_bcax_ symbols.  (#1630564)
886ef9
886ef9
* Mon Nov 26 2018 Nick Clifton <nickc@redhat.com> - 8.63-1
886ef9
- Annocheck: Disable ENDBR test for shared libraries.  (#1652925)
886ef9
886ef9
* Mon Nov 26 2018 Nick Clifton <nickc@redhat.com> - 8.62-1
886ef9
- Annocheck: Add test for ENDBR instruction at entry address of x86/x86_64 executables.  (#1652925)
886ef9
886ef9
* Tue Nov 20 2018 David Cantrell <dcantrell@redhat.com> - 8.61-2
886ef9
- Adjust how the gcc_vr macro is set.
886ef9
886ef9
* Mon Nov 19 2018 Nick Clifton <nickc@redhat.com> - 8.61-1
886ef9
- Fix building with gcc version 4.
886ef9
886ef9
* Tue Nov 13 2018 Nick Clifton <nickc@redhat.com> - 8.60-1
886ef9
- Skip -Wl,-z,now and -Wl,-z,relro checks for non-gcc produced binaries.  (#1624421)
886ef9
886ef9
* Mon Nov 05 2018 Nick Clifton <nickc@redhat.com> - 8.59-1
886ef9
- Ensure GNU Property notes are 8-byte aligned in x86_64 binaries.  (#1645817)
886ef9
886ef9
* Thu Oct 18 2018 Nick Clifton <nickc@redhat.com> - 8.58-1
886ef9
- Skip PPC64 linker stubs created in the middle of text sections (again). (#1630640)
886ef9
886ef9
* Thu Oct 18 2018 Nick Clifton <nickc@redhat.com> - 8.57-1
886ef9
- Suppress free of invalid pointer. (#1638371)
886ef9
886ef9
* Thu Oct 18 2018 Nick Clifton <nickc@redhat.com> - 8.56-1
886ef9
- Skip PPC64 linker stubs created in the middle of text sections. (#1630640)
886ef9
886ef9
* Tue Oct 16 2018 Nick Clifton <nickc@redhat.com> - 8.55-1
886ef9
- Reset the (PPC64) section start symbol to 0 if its section is empty.  (#1638251)
886ef9
886ef9
* Thu Oct 11 2018 Nick Clifton <nickc@redhat.com> - 8.53-1
886ef9
- Also skip virtual thinks created by G++.  (#1630619)
886ef9
886ef9
* Wed Oct 10 2018 Nick Clifton <nickc@redhat.com> - 8.52-1
886ef9
- Use uppercase for all fail/mayb/pass results.  (#1637706)
886ef9
886ef9
* Wed Oct 10 2018 Nick Clifton <nickc@redhat.com> - 8.51-1
886ef9
- Generate notes for unlikely sections.  (#1630620)
886ef9
886ef9
* Mon Oct 08 2018 Nick Clifton <nickc@redhat.com> - 8.50-1
886ef9
- Fix edge case computing section names for end symbols.  (#1637039)
886ef9
886ef9
* Mon Oct 08 2018 Nick Clifton <nickc@redhat.com> - 8.49-1
886ef9
- Skip dynamic checks for binaries without a dynamic segment.  (#1636606)
886ef9
886ef9
* Fri Oct 05 2018 Nick Clifton <nickc@redhat.com> - 8.48-1
886ef9
- Delay generating attach_to_group directives until the end of the compilation.  (#1636265)
886ef9
886ef9
* Mon Oct 01 2018 Nick Clifton <nickc@redhat.com> - 8.47-1
886ef9
- Fix bug introduced in previous delta which would trigger a seg-fault when scanning for gaps.
886ef9
886ef9
* Mon Oct 01 2018 Nick Clifton <nickc@redhat.com> - 8.46-1
886ef9
- Annobin:   Fix section name selection for startup sections.
886ef9
- Annocheck: Improve gap skipping heuristics.   (#1630574)
886ef9
886ef9
* Mon Oct 01 2018 Nick Clifton <nickc@redhat.com> - 8.45-1
886ef9
- Fix function section support (again).   (#1630574)
886ef9
886ef9
* Fri Sep 28 2018 Nick Clifton <nickc@redhat.com> - 8.44-1
886ef9
- Skip compiler option checks for non-GNU producers.  (#1633749)
886ef9
886ef9
* Wed Sep 26 2018 Nick Clifton <nickc@redhat.com> - 8.43-1
886ef9
- Fix function section support (again).   (#1630574)
886ef9
886ef9
* Tue Sep 25 2018 Nick Clifton <nickc@redhat.com> - 8.42-1
886ef9
- Ignore ppc64le notes where start = end + 2.  (#1632259)
886ef9
886ef9
* Tue Sep 25 2018 Nick Clifton <nickc@redhat.com> - 8.41-1
886ef9
- Make annocheck ignore symbols suffixed with ".end".  (#1639618)
886ef9
886ef9
* Mon Sep 24 2018 Nick Clifton <nickc@redhat.com> - 8.40-1
886ef9
- Reinstate building annobin with annobin enabled.  (#1630550)
886ef9
886ef9
* Mon Sep 24 2018 Nick Clifton <nickc@redhat.com> - 8.39-2
886ef9
- Fix gating test.  (#1625683)
886ef9
886ef9
* Fri Sep 21 2018 Nick Clifton <nickc@redhat.com> - 8.39-1
886ef9
- Tweak tests.
886ef9
886ef9
* Fri Sep 21 2018 Nick Clifton <nickc@redhat.com> - 8.38-1
886ef9
- Generate notes and groups for .text.hot and .text.unlikely sections.
886ef9
- When -ffunction-sections is active, put notes for startup sections into .text.startup.foo rather than .text.foo.
886ef9
- Similarly put exit section notes into .text.exit.foo.  (#1630574)
886ef9
- Change annocheck's maybe result for GNU Property note being missing into a PASS if it is not needed and a FAIL if it is needed.
886ef9
886ef9
* Wed Sep 19 2018 Nick Clifton <nickc@redhat.com> - 8.37-1
886ef9
- Make the --skip-* options skip all messages about the specified test.
886ef9
- Add gating tests.   (#1625683)
886ef9
886ef9
* Tue Sep 18 2018 Nick Clifton <nickc@redhat.com> - 8.36-1
886ef9
- Improve error message when an ET_EXEC binary is detected.
886ef9
886ef9
* Mon Sep 17 2018 Nick Clifton <nickc@redhat.com> - 8.35-1
886ef9
- Skip failures for PIC vs PIE.  (#1629698)
886ef9
886ef9
* Mon Sep 17 2018 Nick Clifton <nickc@redhat.com> - 8.34-1
886ef9
- Ensure 4 byte alignment of note sub-sections.  (#1629671)
886ef9
886ef9
* Wed Sep 12 2018 Nick Clifton <nickc@redhat.com> - 8.33-1
886ef9
- Add timing tool to report on speed of the checks.
886ef9
- Add check for conflicting use of the -fshort-enum option.
886ef9
- Add check of the GNU Property notes.
886ef9
- Skip check for -O2 if compiled with -Og.  (#1624162)
886ef9
886ef9
* Mon Sep 03 2018 Nick Clifton <nickc@redhat.com> - 8.32-1
886ef9
- Add test for ET_EXEC binaries.  (#1625627)
886ef9
- Document --report-unknown option.
886ef9
886ef9
* Thu Aug 30 2018 Nick Clifton <nickc@redhat.com> - 8.31-1
886ef9
- Fix bug in hardened tool which would skip gcc compiled files if the notes were too small.
886ef9
- Fix bugs in section-size tool.
886ef9
- Fix bug in built-by tool.
886ef9
886ef9
* Wed Aug 29 2018 Nick Clifton <nickc@redhat.com> - 8.30-1
886ef9
- Generate notes for comdat sections. (#1619267)
886ef9
886ef9
* Thu Aug 23 2018 Nick Clifton <nickc@redhat.com> - 8.29-1
886ef9
- Add more names to the gap skip list. (#1619267)
886ef9
886ef9
* Thu Aug 23 2018 Nick Clifton <nickc@redhat.com> - 8.28-1
886ef9
- Skip gaps covered by _x86.get_pc_thunk and _savegpr symbols. (#1619267)
886ef9
- Merge ranges where one is wholly covered by another.
886ef9
886ef9
* Wed Aug 22 2018 Nick Clifton <nickc@redhat.com> - 8.27-1
886ef9
- Skip gaps at the end of functions. (#1619267)
886ef9
886ef9
* Tue Aug 21 2018 Nick Clifton <nickc@redhat.com> - 8.26-1
886ef9
- Fix thinko in ppc64 gap detection code. (#1619267)
886ef9
886ef9
* Mon Aug 20 2018 Nick Clifton <nickc@redhat.com> - 8.25-1
886ef9
- Skip gaps at the end of the .text section in ppc64 binaries. (#1619267)
886ef9
886ef9
* Fri Aug 17 2018 Nick Clifton <nickc@redhat.com> - 8.24-1
886ef9
- Skip checks in stack_chk_local_fail.c.  (#1618660)
886ef9
- Treat gaps as FAIL results rather than MAYBE.
886ef9
- Skip checks in __stack_chk_local_fail.
886ef9
- Reduce version check to gcc major version number only.  Skip compiler option checks if binary not built with gcc.  (#1603089)
886ef9
- Fix bug in annobin plugin.  Add --section-size=NAME option to annocheck.
886ef9
886ef9
* Thu Aug 02 2018 Nick Clifton <nickc@redhat.com> - 8.20-1
886ef9
- Correct name of man page for run-on-binaries-in script.  (#1611155)
886ef9
886ef9
* Mon Jul 30 2018 Florian Weimer <fweimer@redhat.com> - 8.19-3
886ef9
- Rebuild with fixed binutils
886ef9
886ef9
* Sat Jul 28 2018 Troy Dawson <tdawson@redhat.com> - 8.19-2
886ef9
- Rebuild for gcc 8.2.1
886ef9
886ef9
* Wed Jul 25 2018 Nick Clifton <nickc@redhat.com> - 8.19-1
886ef9
- Allow $ORIGN to be at the start of entries in DT_RPATH and DT_RUNPATH.
886ef9
886ef9
* Mon Jul 23 2018 Nick Clifton <nickc@redhat.com> - 8.18-1
886ef9
- Add support for big endian targets.
886ef9
886ef9
* Mon Jul 23 2018 Nick Clifton <nickc@redhat.com> - 8.17-1
886ef9
- Count passes and failures on a per-component basis and report gaps.
886ef9
886ef9
* Fri Jul 20 2018 Nick Clifton <nickc@redhat.com> - 8.16-1
886ef9
- Use our own copy of the targetm.asm_out.function_section() function.  (#159861 comment#17)
886ef9
886ef9
* Fri Jul 20 2018 Nick Clifton <nickc@redhat.com> - 8.15-1
886ef9
- Generate grouped note section name all the time.  (#159861 comment#16)
886ef9
886ef9
* Thu Jul 19 2018 Nick Clifton <nickc@redhat.com> - 8.14-1
886ef9
- Fix section conflict problem.  (#1603071)
886ef9
886ef9
* Wed Jul 18 2018 Nick Clifton <nickc@redhat.com> - 8.13-1
886ef9
- Fix for building with gcc version 4.
886ef9
- Fix symbol placement in functions with local assembler.
886ef9
886ef9
* Tue Jul 17 2018 Nick Clifton <nickc@redhat.com> - 8.12-1
886ef9
- Fix assertions in rnage checking code.  Add detection of -U options.
886ef9
886ef9
* Tue Jul 17 2018 Nick Clifton <nickc@redhat.com> - 8.11-1
886ef9
- Handle function sections properly.  Handle .text.startup and .text.unlikely sections.  Improve gap detection and reporting.  (#1601055)
886ef9
886ef9
* Thu Jul 12 2018 Nick Clifton <nickc@redhat.com> - 8.10-1
886ef9
- Fix construction of absolute versions of --dwarf-dir and --debug-rpm options.
886ef9
886ef9
* Tue Jul 10 2018 Nick Clifton <nickc@redhat.com> - 8.9-1
886ef9
- Fix buffer overrun when very long symbol names are encountered.
886ef9
886ef9
* Tue Jul 10 2018 Nick Clifton <nickc@redhat.com> - 8.8-1
886ef9
- Do not force the generation of function notes when -ffunction-sections is active.  (#1598961)
886ef9
886ef9
* Mon Jul 09 2018 Nick Clifton <nickc@redhat.com> - 8.7-1
886ef9
- Skip the .annobin_ prfix when reporting symbols.  (#1599315)
886ef9
886ef9
* Mon Jul 09 2018 Nick Clifton <nickc@redhat.com> - 8.6-1
886ef9
- Use the assembler (c++ mangled) version of function names when switching sections.  (#1598579)
886ef9
886ef9
* Mon Jul 09 2018 Nick Clifton <nickc@redhat.com> - 8.5-1
886ef9
- Do not call function_section.  (#1598961)
886ef9
886ef9
* Fri Jul 06 2018 Nick Clifton <nickc@redhat.com> - 8.4-1
886ef9
- Ignore cross-section gaps.  (#1598551)
886ef9
886ef9
* Thu Jul 05 2018 Nick Clifton <nickc@redhat.com> - 8.3-1
886ef9
- Do not skip empty range notes in object files.  (#1598361)
886ef9
886ef9
* Mon Jul 02 2018 Nick Clifton <nickc@redhat.com> - 8.2-1
886ef9
- Create the start symbol at the start of the function and the end symbol at the end.  (#1596823)
886ef9
886ef9
* Mon Jul 02 2018 Nick Clifton <nickc@redhat.com> - 8.1-1
886ef9
- Fix --debug-rpm when used inside a directory.
886ef9
886ef9
* Thu Jun 28 2018 Nick Clifton <nickc@redhat.com> - 8.0-1
886ef9
- Use a prefix for all annobin generated symbols, and make them hidden.
886ef9
- Only generate weak symbol definitions for linkonce sections.
886ef9
886ef9
* Wed Jun 27 2018 Nick Clifton <nickc@redhat.com> - 7.1-1
886ef9
- Skip some checks for relocatable object files, and dynamic objects.
886ef9
- Stop bogus complaints about stackrealignment not being enabled.
886ef9
886ef9
* Mon Jun 25 2018 Nick Clifton <nickc@redhat.com> - 7.0-1
886ef9
- Add -debug-rpm= option to annocheck.
886ef9
- Only use a 2 byte offset for the initial symbol on PowerPC.
886ef9
886ef9
* Fri Jun 22 2018 Nick Clifton <nickc@redhat.com> - 6.6-1
886ef9
- Use --dwarf-path when looking for build-id based debuginfo files.
886ef9
886ef9
* Fri Jun 22 2018 Nick Clifton <nickc@redhat.com> - 6.5-1
886ef9
- Fix premature closing of dwarf handle.
886ef9
886ef9
* Fri Jun 22 2018 Nick Clifton <nickc@redhat.com> - 6.4-1
886ef9
- Fix scoping bug computing the name of a separate debuginfo file.
886ef9
886ef9
* Tue Jun 19 2018 Nick Clifton <nickc@redhat.com> - 6.3-1
886ef9
- Fix file descriptor leak.
886ef9
886ef9
* Tue Jun 19 2018 Nick Clifton <nickc@redhat.com> - 6.2-1
886ef9
- Add command line options to annocheck to disable individual tests.
886ef9
886ef9
* Fri Jun 08 2018 Nick Clifton <nickc@redhat.com> - 6.1-1
886ef9
- Remove C99-ism from annocheck sources.
886ef9
886ef9
* Wed Jun 06 2018 Nick Clifton <nickc@redhat.com> - 6.0-1
886ef9
- Add the annocheck program.
886ef9
886ef9
* Fri Jun 01 2018 Nick Clifton <nickc@redhat.com> - 5.11-1
886ef9
- Do not use the SHF_GNU_BUILD_NOTE section flag.
886ef9
886ef9
* Thu May 31 2018 Nick Clifton <nickc@redhat.com> - 5.10-1
886ef9
- Remove .sh extension from shell scripts.
886ef9
886ef9
* Wed May 30 2018 Nick Clifton <nickc@redhat.com> - 5.9-1
886ef9
- Record the setting of the -mstackrealign option for i686 binaries.
886ef9
886ef9
* Mon May 14 2018 Nick Clifton <nickc@redhat.com> - 5.8-1
886ef9
- Hide the annobin start of file symbol.
886ef9
886ef9
* Tue May 08 2018 Nick Clifton <nickc@redhat.com> - 5.7-1
886ef9
- Fix script bug in hardended.sh.  (Thanks to: Stefan Sørensen <stefan.sorensen@spectralink.com>)
886ef9
886ef9
* Thu May 03 2018 Nick Clifton <nickc@redhat.com> - 5.6-3
886ef9
- Version number bump so that the plugin can be rebuilt with the latest version of GCC.
886ef9
886ef9
* Mon Apr 30 2018 Nick Clifton <nickc@redhat.com> - 5.6-2
886ef9
- Rebuild the plugin with the newly created plugin enabled.  (#1573082)
886ef9
886ef9
* Mon Apr 30 2018 Nick Clifton <nickc@redhat.com> - 5.6-1
886ef9
- Skip the isa_flags check in the ABI test because the crt[in].o files are compiled with different flags from the test files.
886ef9
886ef9
* Fri Apr 20 2018 Nick Clifton <nickc@redhat.com> - 5.3-1
886ef9
- Add manual pages for annobin and the scripts.
886ef9
886ef9
* Tue Apr 03 2018 Nick Clifton <nickc@redhat.com> - 5.2-1
886ef9
- Do not record a stack protection setting of -1.  (#1563141)
886ef9
886ef9
* Tue Mar 20 2018 Nick Clifton <nickc@redhat.com> - 5.1-1
886ef9
- Do not complain about a dwarf_version value of -1.  (#1557511)
886ef9
886ef9
* Thu Mar 15 2018 Nick Clifton <nickc@redhat.com> - 5.0-1
886ef9
- Bias file start symbols by 2 in order to avoid them confused with function symbols.  (#1554332)
886ef9
- Version jump is to sync the version number with the annobin plugins internal version number.
886ef9
886ef9
* Mon Mar 12 2018 Nick Clifton <nickc@redhat.com> - 3.6-1
886ef9
- Add --ignore-gaps option to check-abi.sh script.
886ef9
- Use this option in the abi-test check.
886ef9
- Tweak hardening test to skip pic and stack protection checks.
886ef9
886ef9
* Tue Mar 06 2018 Nick Clifton <nickc@redhat.com> - 3.5-1
886ef9
- Handle functions with specific assembler names.  (#1552018)
886ef9
886ef9
* Fri Feb 23 2018 Nick Clifton <nickc@redhat.com> - 3.4-2
886ef9
- Add an explicit requirement on the version of gcc used to built the plugin.  (#1547260)
886ef9
886ef9
* Fri Feb 09 2018 Nick Clifton <nickc@redhat.com> - 3.4-1
886ef9
- Change type and size of symbols to STT_NOTYPE/0 so that they do not confuse GDB.  (#1539664)
886ef9
- Add run-on-binaries-in.sh script to allow the other scripts to be run over a repository.
886ef9
886ef9
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.3-2
886ef9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
886ef9
886ef9
* Tue Jan 30 2018 Nick Clifton <nickc@redhat.com> - 3.3-1
886ef9
- Rebase on 3.3 release, which adds support for recording -mcet and -fcf-protection.
886ef9
886ef9
* Mon Jan 29 2018 Florian Weimer <fweimer@redhat.com> - 3.2-3
886ef9
- Rebuild for GCC 8
886ef9
886ef9
* Fri Jan 26 2018 Nick Clifton <nickc@redhat.com> - 3.2-2
886ef9
- Fix the installation of the annobin.info file.
886ef9
886ef9
* Fri Jan 26 2018 Nick Clifton <nickc@redhat.com> - 3.2-1
886ef9
- Rebase on 3.2 release, which now contains documentation!
886ef9
886ef9
* Fri Jan 26 2018 Richard W.M. Jones <rjones@redhat.com> - 3.1-3
886ef9
- Rebuild against GCC 7.3.1.
886ef9
886ef9
* Tue Jan 16 2018 Nick Clifton <nickc@redhat.com> - 3.1-2
886ef9
- Add --with-gcc-plugin-dir option to the configure command line.
886ef9
886ef9
* Thu Jan 04 2018 Nick Clifton <nickc@redhat.com> - 3.1-1
886ef9
- Rebase on version 3.1 sources.
886ef9
886ef9
* Mon Dec 11 2017 Nick Clifton <nickc@redhat.com> - 2.5.1-5
886ef9
- Do not generate notes when there is no output file.  (#1523875)
886ef9
886ef9
* Fri Dec 08 2017 Nick Clifton <nickc@redhat.com> - 2.5.1-4
886ef9
- Invent an input filename when reading from a pipe.  (#1523401)
886ef9
886ef9
* Thu Nov 30 2017 Florian Weimer <fweimer@redhat.com> - 2.5.1-3
886ef9
- Use DECL_ASSEMBLER_NAME for symbol references (#1519165)
886ef9
886ef9
* Tue Oct 03 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.5.1-2
886ef9
- Cleanups in spec
886ef9
886ef9
* Tue Sep 26 2017 Nick Clifton <nickc@redhat.com> - 2.5.1-1
886ef9
- Touch the auto-generated files in order to stop them from being regenerated.
886ef9
886ef9
* Tue Sep 26 2017 Nick Clifton <nickc@redhat.com> - 2.5-2
886ef9
- Stop the plugin complaining about compiler datestamp mismatches.
886ef9
886ef9
* Thu Sep 21 2017 Nick Clifton <nickc@redhat.com> - 2.4-1
886ef9
- Tweak tests so that they will run on older machines.
886ef9
886ef9
* Thu Sep 21 2017 Nick Clifton <nickc@redhat.com> - 2.3-1
886ef9
- Add annobin-tests subpackage containing some preliminary tests.
886ef9
- Remove link-time test for unsuported targets.
886ef9
886ef9
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0-3
886ef9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
886ef9
886ef9
* Mon Jul 31 2017 Florian Weimer <fweimer@redhat.com> - 2.0-2
886ef9
- Rebuild with binutils fix for ppc64le (#1475636)
886ef9
886ef9
* Wed Jun 28 2017 Nick Clifton <nickc@redhat.com> - 2.0-1
886ef9
- Fixes for problems reported by the package submission review:
886ef9
   * Add %%license entry to %%file section.
886ef9
   * Update License and BuildRequires tags.
886ef9
   * Add Requires tag.
886ef9
   * Remove %%clean.
886ef9
   * Add %%check.
886ef9
   * Clean up the %%changelog.
886ef9
- Update to use version 2 of the specification and sources.
886ef9
886ef9
* Thu May 11 2017 Nick Clifton <nickc@redhat.com> - 1.0-1
886ef9
- Initial submission.