Blame SPECS/annobin.spec

375e4b
375e4b
%define __python /opt/rh/gcc-toolset-9/root/usr/bin/python3
375e4b
%{?scl:%{?scl_package:%scl_package annobin}}
375e4b
375e4b
Name:    %{?scl_prefix}annobin
375e4b
Summary: Binary annotation plugin for GCC
375e4b
Version: 9.08
375e4b
Release: 4%{?dist}
375e4b
375e4b
License: GPLv3+
375e4b
# ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark
375e4b
# Maintainer: nickc@redhat.com
375e4b
375e4b
375e4b
# # Do not build the annobin plugin with annotation enabled.
375e4b
# # This is because if we are bootstrapping a new build environment we can have
375e4b
# # a new version of gcc installed, but without a new of annobin installed.
375e4b
# # (i.e. we are building the new version of annobin to go with the new version
375e4b
# # of gcc).  If the *old* annobin plugin is used whilst building this new
375e4b
# # version, the old plugin will complain that version of gcc for which it
375e4b
# # was built is different from the version of gcc that is now being used, and
375e4b
# # then it will abort.
375e4b
#
375e4b
# Suppress this for BZ 1630550.
375e4b
# The problem should now only arise when rebasing to a new major version
375e4b
# of gcc, in which case the undefine below can be temporarily reinstated.
375e4b
#
375e4b
# %%undefine _annotated_build
375e4b
#
375e4b
# Do not use annobin whilst building annobin.  Needed when bootstrapping annobin.
375e4b
%undefine _annotated_build
375e4b
375e4b
# Use "--without tests" to disable the testsuite.  The default is to run them.
375e4b
%bcond_without tests
375e4b
375e4b
# Use "--without annocheck" to disable the installation of the annocheck program.
375e4b
%bcond_without annocheck
375e4b
375e4b
# Use "--with debuginfod" to force support for debuginfod to be compiled into
375e4b
# the annocheck program.  By default the configure script will check for
375e4b
# availablilty at build time, but this might not match the run time situation.
375e4b
%bcond_with debuginfod
375e4b
375e4b
# Set this to zero to disable the requirement for a specific version of gcc.
375e4b
# This should only be needed if there is some kind of problem with the version
375e4b
# checking logic or when building on RHEL-7 or earlier.
375e4b
%global with_hard_gcc_version_requirement 1
375e4b
375e4b
#---------------------------------------------------------------------------------
375e4b
#Source: https://nickc.fedorapeople.org/annobin-%%{version}.tar.xz
375e4b
Source:  annobin-%{version}.tar.xz
375e4b
# For the latest sources use:  git clone git://sourceware.org/git/annobin.git
375e4b
375e4b
# Insert patches here, if needed.
375e4b
# Patch01: annobin-xxx.patch
375e4b
375e4b
#---------------------------------------------------------------------------------
375e4b
375e4b
%{?scl:Requires:%scl_runtime}
375e4b
# We need the gcc-toolset-9 to build annobin, as otherwise the versions will not match.
375e4b
%{?scl:Requires:%scl_require_package %{scl} gcc}
375e4b
375e4b
BuildRequires: %{?scl_prefix}gcc %{?scl_prefix}gcc-plugin-devel %{?scl_prefix}gcc-c++
375e4b
%{?scl:BuildRequires:%scl_runtime}
375e4b
%{?scl:BuildRequires:scl-utils-build}
375e4b
375e4b
%define gcc_for_annobin %{?_scl_root}/usr/bin/gcc
375e4b
%define gxx_for_annobin %{?_scl_root}/usr/bin/g++
375e4b
375e4b
# [Stolen from gcc-python-plugin]
375e4b
# GCC will only load plugins that were built against exactly that build of GCC
375e4b
# We thus need to embed the exact GCC version as a requirement within the
375e4b
# metadata.
375e4b
#
375e4b
# Define "gcc_vr", a variable to hold the VERSION-RELEASE string for the gcc
375e4b
# we are being built against.
375e4b
#
375e4b
# Unfortunately, we can't simply run:
375e4b
#   rpm -q --qf="%%{version}-%%{release}"
375e4b
# to determine this, as there's no guarantee of a sane rpm database within
375e4b
# the chroots created by our build system
375e4b
#
375e4b
# So we instead query the version from gcc's output.
375e4b
#
375e4b
# gcc.spec has:
375e4b
#   Version: %%{gcc_version}
375e4b
#   Release: %%{gcc_release}%%{?dist}
375e4b
#   ...snip...
375e4b
#   echo 'Red Hat %%{version}-%%{gcc_release}' > gcc/DEV-PHASE
375e4b
#
375e4b
# So, given this output:
375e4b
#
375e4b
#   $ gcc --version
375e4b
#   gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9)
375e4b
#   Copyright (C) 2011 Free Software Foundation, Inc.
375e4b
#   This is free software; see the source for copying conditions.  There is NO
375e4b
#   warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
375e4b
#
375e4b
# we can scrape out the "4.6.1" from the version line.
375e4b
#
375e4b
# The following implements the above:
375e4b
375e4b
%global gcc_vr %(%gcc_for_annobin --version | head -n 1 | sed -e 's|.*(Red\ Hat\ ||g' -e 's|)$||g')
375e4b
375e4b
# We need the major version of gcc.
375e4b
%global gcc_major %(echo "%{gcc_vr}" | cut -f1 -d".")
375e4b
%global gcc_next  %(v="%{gcc_major}"; echo $((++v)))
375e4b
375e4b
# Needed when building the srpm.
375e4b
%if 0%{?gcc_major} == 0
375e4b
%global gcc_major 0
375e4b
%endif
375e4b
375e4b
# This is a gcc plugin, hence gcc is required.
375e4b
%if %{with_hard_gcc_version_requirement}
375e4b
# BZ 1607430 - There is an exact requirement on the major version of gcc.
375e4b
Requires: (%{?scl_prefix}gcc >= %{gcc_major} with %{?scl_prefix}gcc < %{gcc_next})
375e4b
%else
375e4b
Requires: %{?scl_prefix}gcc
375e4b
%endif
375e4b
375e4b
BuildRequires: %{?scl_prefix}gcc %{?scl_prefix}gcc-plugin-devel %{?scl_prefix}gcc-c++
375e4b
375e4b
%description
375e4b
Provides a plugin for GCC that records extra information in the files
375e4b
that it compiles.
375e4b
375e4b
Note - the plugin is automatically enabled in gcc builds via flags
375e4b
provided by the redhat-rpm-macros package.
375e4b
375e4b
#---------------------------------------------------------------------------------
375e4b
%if %{with tests}
375e4b
375e4b
%package tests
375e4b
Summary: Test scripts and binaries for checking the behaviour and output of the annobin plugin
375e4b
375e4b
%description tests
375e4b
Provides a means to test the generation of annotated binaries and the parsing
375e4b
of the resulting files.
375e4b
375e4b
%if %{with debuginfod}
375e4b
BuildRequires: elfutils-debuginfod-client-devel
375e4b
%endif
375e4b
375e4b
%endif
375e4b
375e4b
#---------------------------------------------------------------------------------
375e4b
%if %{with annocheck}
375e4b
375e4b
%package annocheck
375e4b
Summary: A tool for checking the security hardening status of binaries
375e4b
375e4b
BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel
375e4b
%if %{with debuginfod}
375e4b
BuildRequires: elfutils-debuginfod-client-devel
375e4b
%endif
375e4b
375e4b
%description annocheck
375e4b
Installs the annocheck program which uses the notes generated by annobin to
375e4b
check that the specified files were compiled with the correct security
375e4b
hardening options.
375e4b
375e4b
%endif
375e4b
375e4b
#---------------------------------------------------------------------------------
375e4b
375e4b
%global ANNOBIN_PLUGIN_DIR %(%gcc_for_annobin --print-file-name=plugin)
375e4b
375e4b
#---------------------------------------------------------------------------------
375e4b
375e4b
%prep
375e4b
if [ -z "%{gcc_vr}" ]; then
375e4b
    echo "*** Missing gcc_vr spec file macro, cannot continue." >&2
375e4b
    exit 1
375e4b
fi
375e4b
375e4b
echo "Requires: (%{?scl_prefix}gcc >= %{gcc_major} with %{?scl_prefix}gcc < %{gcc_next})"
375e4b
375e4b
# Cannot use autosetup as it untar's the sources into annobin-<version>
375e4b
# but then tries to change directory into <scl-prefix>-annobin-<version>.
375e4b
# %%autosetup -p1
375e4b
%setup -q -n annobin-%{version}
375e4b
375e4b
# The plugin has to be configured with the same arcane configure
375e4b
# scripts used by gcc.  Hence we must not allow the Fedora build
375e4b
# system to regenerate any of the configure files.
375e4b
touch aclocal.m4 plugin/config.h.in
375e4b
touch configure */configure Makefile.in */Makefile.in
375e4b
# Similarly we do not want to rebuild the documentation.
375e4b
touch doc/annobin.info
375e4b
375e4b
#---------------------------------------------------------------------------------
375e4b
375e4b
%build
375e4b
375e4b
%if %{with debuginfod}
375e4b
%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_PLUGIN_DIR} CC=%gcc_for_annobin CXX=%gxx_for_annobin --with-debuginfod
375e4b
%else
375e4b
# Note - we explicitly disable debuginfod support if it was not configured.
375e4b
# This is because by default annobin's configue script will assume --with-debuginfod=auto
375e4b
# and then run a build time test to see if debugingfod is available.  It
375e4b
# may well be, but the build time environment may not match the run time
375e4b
# environment, and the rpm will not have a Requirement on the debuginfod
375e4b
# client.
375e4b
%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_PLUGIN_DIR} CC=%gcc_for_annobin CXX=%gxx_for_annobin --with-debuginfod=no
375e4b
%endif
375e4b
375e4b
%make_build
375e4b
# Rebuild the plugin, this time using the plugin itself!  This
375e4b
# ensures that the plugin works, and that it contains annotations
375e4b
# of its own.  This could mean that we end up with a plugin with
375e4b
# double annotations in it.  (If the build system enables annotations
375e4b
# for plugins by default).  I have not tested this yet, but I think
375e4b
# that it should be OK.
375e4b
cp plugin/.libs/annobin.so.0.0.0 %{_tmppath}/tmp_annobin.so
375e4b
make -C plugin clean
375e4b
BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so -fplugin-arg-tmp_annobin-rename"
375e4b
# If building on RHEL7, enable the next option as the .attach_to_group assembler pseudo op is not available in the assembler.
375e4b
# BUILD_FLAGS="$BUILD_FLAGS -fplugin-arg-tmp_annobin-no-attach"
375e4b
make -C plugin CXXFLAGS="%{optflags} $BUILD_FLAGS"
375e4b
rm %{_tmppath}/tmp_annobin.so
375e4b
375e4b
#---------------------------------------------------------------------------------
375e4b
375e4b
%install
375e4b
%make_install
375e4b
%{__rm} -f %{buildroot}%{_infodir}/dir
375e4b
375e4b
#---------------------------------------------------------------------------------
375e4b
375e4b
%if %{with tests}
375e4b
%check
375e4b
# On RHEL7 the assembler does not support all of the annobin tests.
375e4b
# With scl the tests are run with the wrong version of gcc.
375e4b
# Change the following line to "make check GCC=%gcc_for_annobin || :"
375e4b
# on RHEL7 or if you need to see the test suite logs in order to
375e4b
# diagnose a test failure.
375e4b
make check GCC=%gcc_for_annobin
375e4b
if [ -f tests/test-suite.log ]; then
375e4b
    cat tests/test-suite.log
375e4b
fi
375e4b
%endif
375e4b
375e4b
#---------------------------------------------------------------------------------
375e4b
375e4b
%files
375e4b
%{ANNOBIN_PLUGIN_DIR}
375e4b
%{_bindir}/built-by
375e4b
%{_bindir}/check-abi
375e4b
%{_bindir}/hardened
375e4b
%{_bindir}/run-on-binaries-in
375e4b
%license COPYING3 LICENSE
375e4b
%exclude %{_datadir}/doc/annobin-plugin/COPYING3
375e4b
%exclude %{_datadir}/doc/annobin-plugin/LICENSE
375e4b
%doc %{_datadir}/doc/annobin-plugin/annotation.proposal.txt
375e4b
%{_infodir}/annobin.info*
375e4b
%{_mandir}/man1/annobin.1*
375e4b
%{_mandir}/man1/built-by.1*
375e4b
%{_mandir}/man1/check-abi.1*
375e4b
%{_mandir}/man1/hardened.1*
375e4b
%{_mandir}/man1/run-on-binaries-in.1*
375e4b
375e4b
%if %{with annocheck}
375e4b
%files annocheck
375e4b
%{_bindir}/annocheck
375e4b
%{_mandir}/man1/annocheck.1*
375e4b
%endif
375e4b
375e4b
#---------------------------------------------------------------------------------
375e4b
375e4b
%changelog
375e4b
* Tue Feb 18 2020 Nick Clifton <nickc@redhat.com> - 9.08-4
375e4b
- Update gating tests to use the correct gcc-toolset-9 executables.
375e4b
375e4b
* Mon Feb 17 2020 Nick Clifton <nickc@redhat.com> - 9.08-2
375e4b
- Explicitly disable debuginfod support unless configured otherwise.
375e4b
375e4b
* Mon Feb 17 2020 Nick Clifton <nickc@redhat.com> - 9.08-1
375e4b
- Annocheck: Fix error printing out the version number.
375e4b
375e4b
* Fri Feb 14 2020 Nick Clifton <nickc@redhat.com> - 9.07-1
375e4b
- Rebase to 9.07 release:
375e4b
- Annobin: Add checks of the exact location of the examined switches.
375e4b
- Annobin: Note when stack clash notes are generated.
375e4b
- Annocheck: Handle multiple builder IDs in the .comment section.
375e4b
- Add configure option to suppress building annocheck.
375e4b
- Fix debuginfod test.
375e4b
- Correct the build requirement for building with debuginfod support.
375e4b
- Add debuginfod support.
375e4b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
375e4b
- Rebuild againt latest gcc-10.
375e4b
- Add clang plugin (experimental).
375e4b
- Have annocheck ignore notes with an end address of 0.
375e4b
- Improve checking of gcc versions.
375e4b
- Do not skip positive results.
375e4b
- Generate a WARN result for code compiled with instrumentation enabled.  (#1753918)
375e4b
- Replace address checks with dladdr1.
375e4b
- Use libabigail like checking to ensure variable address consistency.
375e4b
- Skip generation of global notes for hot/cold sections.
375e4b
- Generate FAIL results if -Wall or -Wformat-security are missing.
375e4b
- If notes cannot be found in the executable look for them in the debuginfo file, if available.
375e4b
- Generate a FAIL if notes are missing from the executable/debuginfo file.
375e4b
- Record and report the setting of the AArcht64 specific -mbranch-protection option.
375e4b
- Improve detection of GO binaries.
375e4b
- Add gcc version information to annobin notes.
375e4b
- Do not complain about missing FORTIFY_SOURCE and GLIBCXX_ASSERTIONS in LTO compilations.
375e4b
- Allow compiler used to run tests to be specified on the command line.  (#1723401)
375e4b
375e4b
* Thu Aug 08 2019 Nick Clifton <nickc@redhat.com> - 8.79-2
375e4b
- Import the missing tests/ sub-directory.
375e4b
375e4b
* Thu Aug 08 2019 Nick Clifton <nickc@redhat.com> - 8.79-1
375e4b
- Allow the compiler used to run tests to be specified on the command line.
375e4b
375e4b
* Tue Aug 06 2019 Nick Clifton <nickc@redhat.com> - 8.78-1
375e4b
- Fix a memory allocation error in the annobin plugin.  (#1737306)
375e4b
375e4b
* Tue Jul 23 2019 Nick Clifton <nickc@redhat.com> - 8.77-4
375e4b
- Change the requirement of gcc-toolset-9 to gcc-toolset-9-gcc.  (#1732767)
375e4b
375e4b
* Tue Jul 23 2019 Nick Clifton <nickc@redhat.com> - 8.77-2
375e4b
- Version bump to allow rebuilding with scl_prefix.
375e4b
375e4b
* Tue Jul 23 2019 Nick Clifton <nickc@redhat.com> - 8.77-1
375e4b
- gcc-toolset-9: INITIAL IMPORT OF ANNOBIN FROM RAWHIDE.  (#1730483)
375e4b
375e4b
* Mon Jun 24 2019 Nick Clifton <nickc@redhat.com> - 8.77-1
375e4b
- Another attempt at fixing the detection and reporting of missing -D_FORTIFY_SOURCE options.  (#1703500)
375e4b
375e4b
* Mon Jun 10 22:13:17 CET 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 8.76-4
375e4b
- Rebuild for RPM 4.15
375e4b
375e4b
* Mon Jun 10 15:42:00 CET 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 8.76-3
375e4b
- Rebuild for RPM 4.15
375e4b
375e4b
* Thu Jun 06 2019 Panu Matilainen <pmatilai@redhat.com> - 8.76-2
375e4b
- Really enable annocheck sub-package
375e4b
375e4b
* Tue Apr 30 2019 Nick Clifton <nickc@redhat.com> - 8.76-1
375e4b
- Report a missing -D_FORTIFY_SOUCRE option if -D_GLIBCXX_ASSERTIONS was detected.  (#1703499)
375e4b
- Do not report problems with -fstack-protection if the binary was not built by gcc or clang.  (#1703788)    
375e4b
375e4b
* Fri Apr 26 2019 Nick Clifton <nickc@redhat.com> - 8.74-1
375e4b
- Add tests of clang command line options recorded in the DW_AT_producer attribute.
375e4b
375e4b
* Wed Apr 24 2019 Nick Clifton <nickc@redhat.com> - 8.73-1
375e4b
- Fix test for an executable stack segment.  (#1700924)
375e4b
375e4b
* Thu Apr 18 2019 Nick Clifton <nickc@redhat.com> - 8.72-1
375e4b
- Rebuild annobin with the latest rawhide gcc sources.  (#1700923)
375e4b
375e4b
* Thu Feb 28 2019 Nick Clifton <nickc@redhat.com> - 8.71-1
375e4b
- Annobin: Suppress more calls to free() which are triggering memory checker errors.  (#1684148)
375e4b
375e4b
* Fri Feb 01 2019 Nick Clifton <nickc@redhat.com> - 8.70-1
375e4b
- Add section flag matching ability to section size tool.
375e4b
375e4b
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 8.69-7
375e4b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
375e4b
375e4b
* Tue Jan 29 2019 Björn Esser <besser82@fedoraproject.org> - 8.69-6
375e4b
- Use 'with' for rich dependency on gcc
375e4b
375e4b
* Tue Jan 29 2019 Björn Esser <besser82@fedoraproject.org> - 8.69-5
375e4b
- Really fix rhbz#1607430.
375e4b
375e4b
* Mon Jan 28 2019 Björn Esser <besser82@fedoraproject.org> - 8.69-4
375e4b
- Rebuilt with annotations enabled
375e4b
375e4b
* Mon Jan 28 2019 Björn Esser <besser82@fedoraproject.org> - 8.69-3
375e4b
- Fix rpm query for gcc version.
375e4b
375e4b
* Mon Jan 28 2019 Nick Clifton <nickc@redhat.com> - 8.69-2
375e4b
- Add an exact requirement on the major version of gcc. (#1607430)
375e4b
375e4b
* Thu Jan 24 2019 Nick Clifton <nickc@redhat.com> - 8.69-1
375e4b
- Annobin: Add support for .text.startup and .text.exit sections generated by gcc 9.
375e4b
- Annocheck: Add a note displaying tool.
375e4b
375e4b
* Wed Jan 23 2019 Nick Clifton <nickc@redhat.com> - 8.68-1
375e4b
- Annocheck: Skip checks for -D_FORTIFY_SOURCE and -D_GLIBCXX_ASSERTIONS if there is no compiler generated code in the binary.
375e4b
375e4b
* Mon Jan 21 2019 Björn Esser <besser82@fedoraproject.org> - 8.67-3
375e4b
- Rebuilt with annotations enabled
375e4b
375e4b
* Mon Jan 21 2019 Björn Esser <besser82@fedoraproject.org> - 8.67-2
375e4b
- Rebuilt for GCC 9
375e4b
375e4b
* Thu Jan 17 2019 Nick Clifton <nickc@redhat.com> - 8.67-1
375e4b
- Annocheck: Only skip specific checks for specific symbols.  (#1666823)
375e4b
- Annobin: Record the setting of the -fomit-frame-pointer option.
375e4b
375e4b
* Wed Jan 02 2019 Nick Clifton <nickc@redhat.com> - 8.66-1
375e4b
- Annocheck: Do not ignore -Og when checking to see if an optimization level has been set.  (#1624162)
375e4b
375e4b
* Tue Dec 11 2018 Nick Clifton <nickc@redhat.com> - 8.65-1
375e4b
- Annobin: Fix handling of multiple .text.unlikely sections.
375e4b
375e4b
* Fri Nov 30 2018 Nick Clifton <nickc@redhat.com> - 8.64-1
375e4b
- Annocheck: Skip gaps in PPC64 executables covered by start_bcax_ symbols.  (#1630564)
375e4b
375e4b
* Mon Nov 26 2018 Nick Clifton <nickc@redhat.com> - 8.63-1
375e4b
- Annocheck: Disable ENDBR test for shared libraries.  (#1652925)
375e4b
375e4b
* Mon Nov 26 2018 Nick Clifton <nickc@redhat.com> - 8.62-1
375e4b
- Annocheck: Add test for ENDBR instruction at entry address of x86/x86_64 executables.  (#1652925)
375e4b
375e4b
* Tue Nov 20 2018 David Cantrell <dcantrell@redhat.com> - 8.61-2
375e4b
- Adjust how the gcc_vr macro is set.
375e4b
375e4b
* Mon Nov 19 2018 Nick Clifton <nickc@redhat.com> - 8.61-1
375e4b
- Fix building with gcc version 4.
375e4b
375e4b
* Tue Nov 13 2018 Nick Clifton <nickc@redhat.com> - 8.60-1
375e4b
- Skip -Wl,-z,now and -Wl,-z,relro checks for non-gcc produced binaries.  (#1624421)
375e4b
375e4b
* Mon Nov 05 2018 Nick Clifton <nickc@redhat.com> - 8.59-1
375e4b
- Ensure GNU Property notes are 8-byte aligned in x86_64 binaries.  (#1645817)
375e4b
375e4b
* Thu Oct 18 2018 Nick Clifton <nickc@redhat.com> - 8.58-1
375e4b
- Skip PPC64 linker stubs created in the middle of text sections (again). (#1630640)
375e4b
375e4b
* Thu Oct 18 2018 Nick Clifton <nickc@redhat.com> - 8.57-1
375e4b
- Suppress free of invalid pointer. (#1638371)
375e4b
375e4b
* Thu Oct 18 2018 Nick Clifton <nickc@redhat.com> - 8.56-1
375e4b
- Skip PPC64 linker stubs created in the middle of text sections. (#1630640)
375e4b
375e4b
* Tue Oct 16 2018 Nick Clifton <nickc@redhat.com> - 8.55-1
375e4b
- Reset the (PPC64) section start symbol to 0 if its section is empty.  (#1638251)
375e4b
375e4b
* Thu Oct 11 2018 Nick Clifton <nickc@redhat.com> - 8.53-1
375e4b
- Also skip virtual thinks created by G++.  (#1630619)
375e4b
375e4b
* Wed Oct 10 2018 Nick Clifton <nickc@redhat.com> - 8.52-1
375e4b
- Use uppercase for all fail/mayb/pass results.  (#1637706)
375e4b
375e4b
* Wed Oct 10 2018 Nick Clifton <nickc@redhat.com> - 8.51-1
375e4b
- Generate notes for unlikely sections.  (#1630620)
375e4b
375e4b
* Mon Oct 08 2018 Nick Clifton <nickc@redhat.com> - 8.50-1
375e4b
- Fix edge case computing section names for end symbols.  (#1637039)
375e4b
375e4b
* Mon Oct 08 2018 Nick Clifton <nickc@redhat.com> - 8.49-1
375e4b
- Skip dynamic checks for binaries without a dynamic segment.  (#1636606)
375e4b
375e4b
* Fri Oct 05 2018 Nick Clifton <nickc@redhat.com> - 8.48-1
375e4b
- Delay generating attach_to_group directives until the end of the compilation.  (#1636265)
375e4b
375e4b
* Mon Oct 01 2018 Nick Clifton <nickc@redhat.com> - 8.47-1
375e4b
- Fix bug introduced in previous delta which would trigger a seg-fault when scanning for gaps.
375e4b
375e4b
* Mon Oct 01 2018 Nick Clifton <nickc@redhat.com> - 8.46-1
375e4b
- Annobin:   Fix section name selection for startup sections.
375e4b
- Annocheck: Improve gap skipping heuristics.   (#1630574)
375e4b
375e4b
* Mon Oct 01 2018 Nick Clifton <nickc@redhat.com> - 8.45-1
375e4b
- Fix function section support (again).   (#1630574)
375e4b
375e4b
* Fri Sep 28 2018 Nick Clifton <nickc@redhat.com> - 8.44-1
375e4b
- Skip compiler option checks for non-GNU producers.  (#1633749)
375e4b
375e4b
* Wed Sep 26 2018 Nick Clifton <nickc@redhat.com> - 8.43-1
375e4b
- Fix function section support (again).   (#1630574)
375e4b
375e4b
* Tue Sep 25 2018 Nick Clifton <nickc@redhat.com> - 8.42-1
375e4b
- Ignore ppc64le notes where start = end + 2.  (#1632259)
375e4b
375e4b
* Tue Sep 25 2018 Nick Clifton <nickc@redhat.com> - 8.41-1
375e4b
- Make annocheck ignore symbols suffixed with ".end".  (#1639618)
375e4b
375e4b
* Mon Sep 24 2018 Nick Clifton <nickc@redhat.com> - 8.40-1
375e4b
- Reinstate building annobin with annobin enabled.  (#1630550)
375e4b
375e4b
* Fri Sep 21 2018 Nick Clifton <nickc@redhat.com> - 8.39-1
375e4b
- Tweak tests.
375e4b
375e4b
* Fri Sep 21 2018 Nick Clifton <nickc@redhat.com> - 8.38-1
375e4b
- Generate notes and groups for .text.hot and .text.unlikely sections.
375e4b
- When -ffunction-sections is active, put notes for startup sections into .text.startup.foo rather than .text.foo.
375e4b
- Similarly put exit section notes into .text.exit.foo.  (#1630574)
375e4b
- 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.
375e4b
375e4b
* Wed Sep 19 2018 Nick Clifton <nickc@redhat.com> - 8.37-1
375e4b
- Make the --skip-* options skip all messages about the specified test.
375e4b
375e4b
* Tue Sep 18 2018 Nick Clifton <nickc@redhat.com> - 8.36-1
375e4b
- Improve error message when an ET_EXEC binary is detected.
375e4b
375e4b
* Mon Sep 17 2018 Nick Clifton <nickc@redhat.com> - 8.35-1
375e4b
- Skip failures for PIC vs PIE.  (#1629698)
375e4b
375e4b
* Mon Sep 17 2018 Nick Clifton <nickc@redhat.com> - 8.34-1
375e4b
- Ensure 4 byte alignment of note sub-sections.  (#1629671)
375e4b
375e4b
* Wed Sep 12 2018 Nick Clifton <nickc@redhat.com> - 8.33-1
375e4b
- Add timing tool to report on speed of the checks.
375e4b
- Add check for conflicting use of the -fshort-enum option.
375e4b
- Add check of the GNU Property notes.
375e4b
- Skip check for -O2 if compiled with -Og.  (#1624162)
375e4b
375e4b
* Mon Sep 03 2018 Nick Clifton <nickc@redhat.com> - 8.32-1
375e4b
- Add test for ET_EXEC binaries.  (#1625627)
375e4b
- Document --report-unknown option.
375e4b
375e4b
* Thu Aug 30 2018 Nick Clifton <nickc@redhat.com> - 8.31-1
375e4b
- Fix bug in hardened tool which would skip gcc compiled files if the notes were too small.
375e4b
- Fix bugs in section-size tool.
375e4b
- Fix bug in built-by tool.
375e4b
375e4b
* Wed Aug 29 2018 Nick Clifton <nickc@redhat.com> - 8.30-1
375e4b
- Generate notes for comdat sections. (#1619267)
375e4b
375e4b
* Thu Aug 23 2018 Nick Clifton <nickc@redhat.com> - 8.29-1
375e4b
- Add more names to the gap skip list. (#1619267)
375e4b
375e4b
* Thu Aug 23 2018 Nick Clifton <nickc@redhat.com> - 8.28-1
375e4b
- Skip gaps covered by _x86.get_pc_thunk and _savegpr symbols. (#1619267)
375e4b
- Merge ranges where one is wholly covered by another.
375e4b
375e4b
* Wed Aug 22 2018 Nick Clifton <nickc@redhat.com> - 8.27-1
375e4b
- Skip gaps at the end of functions. (#1619267)
375e4b
375e4b
* Tue Aug 21 2018 Nick Clifton <nickc@redhat.com> - 8.26-1
375e4b
- Fix thinko in ppc64 gap detection code. (#1619267)
375e4b
375e4b
* Mon Aug 20 2018 Nick Clifton <nickc@redhat.com> - 8.25-1
375e4b
- Skip gaps at the end of the .text section in ppc64 binaries. (#1619267)
375e4b
375e4b
* Wed Aug 15 2018 Nick Clifton <nickc@redhat.com> - 8.24-1
375e4b
- Skip checks in stack_chk_local_fail.c
375e4b
- Treat gaps as FAIL results rather than MAYBE.
375e4b
375e4b
* Wed Aug 08 2018 Nick Clifton <nickc@redhat.com> - 8.23-1
375e4b
- Skip checks in __stack_chk_local_fail.
375e4b
375e4b
* Wed Aug 08 2018 Nick Clifton <nickc@redhat.com> - 8.22-1
375e4b
- Reduce version check to gcc major version number only.  Skip compiler option checks if binary not built with gcc.  (#1603089)
375e4b
375e4b
* Tue Aug 07 2018 Nick Clifton <nickc@redhat.com> - 8.21-1
375e4b
- Fix bug in annobin plugin.  Add --section-size=NAME option to annocheck.
375e4b
375e4b
* Thu Aug  2 2018 Peter Robinson <pbrobinson@fedoraproject.org> 8.20-2
375e4b
- rebuild for new gcc
375e4b
375e4b
* Thu Aug 02 2018 Nick Clifton <nickc@redhat.com> - 8.20-1
375e4b
- Correct name of man page for run-on-binaries-in script.  (#1611155)
375e4b
375e4b
* Wed Jul 25 2018 Nick Clifton <nickc@redhat.com> - 8.19-1
375e4b
- Allow $ORIGIN to be at the start of entries in DT_RPATH and DT_RUNPATH.
375e4b
375e4b
* Mon Jul 23 2018 Nick Clifton <nickc@redhat.com> - 8.18-1
375e4b
- Add support for big endian targets.
375e4b
375e4b
* Mon Jul 23 2018 Nick Clifton <nickc@redhat.com> - 8.17-1
375e4b
- Count passes and failures on a per-component basis and report gaps.
375e4b
375e4b
* Fri Jul 20 2018 Nick Clifton <nickc@redhat.com> - 8.16-1
375e4b
- Use our own copy of the targetm.asm_out.function_section() function.  (#159861 comment#17)
375e4b
375e4b
* Fri Jul 20 2018 Nick Clifton <nickc@redhat.com> - 8.15-1
375e4b
- Generate grouped note section name all the time.  (#159861 comment#16)
375e4b
375e4b
* Thu Jul 19 2018 Nick Clifton <nickc@redhat.com> - 8.14-1
375e4b
- Fix section conflict problem.  (#1603071)
375e4b
375e4b
* Wed Jul 18 2018 Nick Clifton <nickc@redhat.com> - 8.13-1
375e4b
- Fix for building with gcc version 4.
375e4b
- Fix symbol placement in functions with local assembler.
375e4b
375e4b
* Tue Jul 17 2018 Nick Clifton <nickc@redhat.com> - 8.12-1
375e4b
- Fix assertions in range checking code.  Add detection of -U options.
375e4b
375e4b
* Tue Jul 17 2018 Nick Clifton <nickc@redhat.com> - 8.11-1
375e4b
- Handle function sections properly.  Handle .text.startup and .text.unlikely sections.  Improve gap detection and reporting.  (#1601055)
375e4b
375e4b
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 8.10-2
375e4b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
375e4b
375e4b
* Thu Jul 12 2018 Nick Clifton <nickc@redhat.com> - 8.10-1
375e4b
- Fix construction of absolute versions of --dwarf-dir and --debug-rpm options.
375e4b
375e4b
* Tue Jul 10 2018 Nick Clifton <nickc@redhat.com> - 8.9-1
375e4b
- Fix buffer overrun when very long symbol names are encountered.
375e4b
375e4b
* Tue Jul 10 2018 Nick Clifton <nickc@redhat.com> - 8.8-1
375e4b
- Do not force the generation of function notes when -ffunction-sections is active.  (#1598961)
375e4b
375e4b
* Mon Jul 09 2018 Nick Clifton <nickc@redhat.com> - 8.7-1
375e4b
- Skip the .annobin_ prfix when reporting symbols.  (#1599315)
375e4b
375e4b
* Mon Jul 09 2018 Nick Clifton <nickc@redhat.com> - 8.6-1
375e4b
- Use the assembler (c++ mangled) version of function names when switching sections.  (#1598579)
375e4b
375e4b
* Mon Jul 09 2018 Nick Clifton <nickc@redhat.com> - 8.5-1
375e4b
- Do not call function_section.  (#1598961)
375e4b
375e4b
* Fri Jul 06 2018 Nick Clifton <nickc@redhat.com> - 8.4-1
375e4b
- Ignore cross-section gaps.  (#1598551)
375e4b
375e4b
* Thu Jul 05 2018 Nick Clifton <nickc@redhat.com> - 8.3-1
375e4b
- Do not skip empty range notes in object files.  (#1598361)
375e4b
375e4b
* Mon Jul 02 2018 Nick Clifton <nickc@redhat.com> - 8.2-1
375e4b
- Create the start symbol at the start of the function and the end symbol at the end.  (#1596823)
375e4b
375e4b
* Mon Jul 02 2018 Nick Clifton <nickc@redhat.com> - 8.1-1
375e4b
- Fix --debug-rpm when used inside a directory.
375e4b
375e4b
* Thu Jun 28 2018 Nick Clifton <nickc@redhat.com> - 8.0-1
375e4b
- Use a prefix for all annobin generated symbols, and make them hidden.
375e4b
- Only generate weak symbol definitions for linkonce sections.
375e4b
375e4b
* Wed Jun 27 2018 Nick Clifton <nickc@redhat.com> - 7.1-1
375e4b
- Skip some checks for relocatable object files, and dynamic objects.
375e4b
- Stop bogus complaints about stackrealignment not being enabled.
375e4b
375e4b
* Mon Jun 25 2018 Nick Clifton <nickc@redhat.com> - 7.0-1
375e4b
- Add -debug-rpm= option to annocheck.
375e4b
- Only use a 2 byte offset for the initial symbol on PowerPC.
375e4b
375e4b
* Fri Jun 22 2018 Nick Clifton <nickc@redhat.com> - 6.6-1
375e4b
- Use --dwarf-path when looking for build-id based debuginfo files.
375e4b
375e4b
* Fri Jun 22 2018 Nick Clifton <nickc@redhat.com> - 6.5-1
375e4b
- Fix premature closing of dwarf handle.
375e4b
375e4b
* Fri Jun 22 2018 Nick Clifton <nickc@redhat.com> - 6.4-1
375e4b
- Fix scoping bug computing the name of a separate debuginfo file.
375e4b
375e4b
* Tue Jun 19 2018 Nick Clifton <nickc@redhat.com> - 6.3-1
375e4b
- Fix file descriptor leak.
375e4b
375e4b
* Tue Jun 19 2018 Nick Clifton <nickc@redhat.com> - 6.2-1
375e4b
- Add command line options to annocheck to disable individual tests.
375e4b
375e4b
* Fri Jun 08 2018 Nick Clifton <nickc@redhat.com> - 6.1-1
375e4b
- Remove C99-ism from annocheck sources.
375e4b
375e4b
* Wed Jun 06 2018 Nick Clifton <nickc@redhat.com> - 6.0-1
375e4b
- Add the annocheck program.
375e4b
375e4b
* Fri Jun 01 2018 Nick Clifton <nickc@redhat.com> - 5.11-1
375e4b
- Do not use the SHF_GNU_BUILD_NOTE section flag.
375e4b
375e4b
* Thu May 31 2018 Nick Clifton <nickc@redhat.com> - 5.10-1
375e4b
- Remove .sh extension from shell scripts.
375e4b
375e4b
* Wed May 30 2018 Nick Clifton <nickc@redhat.com> - 5.9-1
375e4b
- Record the setting of the -mstackrealign option for i686 binaries.
375e4b
375e4b
* Mon May 14 2018 Nick Clifton <nickc@redhat.com> - 5.8-1
375e4b
- Hide the annobin start of file symbol.
375e4b
375e4b
* Tue May 08 2018 Nick Clifton <nickc@redhat.com> - 5.7-1
375e4b
- Fix script bug in hardended.sh.  (Thanks to: Stefan Sørensen <stefan.sorensen@spectralink.com>)
375e4b
375e4b
* Thu May 03 2018 Nick Clifton <nickc@redhat.com> - 5.6-3
375e4b
- Version number bump so that the plugin can be rebuilt with the latest version of GCC.
375e4b
375e4b
* Mon Apr 30 2018 Nick Clifton <nickc@redhat.com> - 5.6-2
375e4b
- Rebuild the plugin with the newly created plugin enabled.  (#1573082)
375e4b
375e4b
* Mon Apr 30 2018 Nick Clifton <nickc@redhat.com> - 5.6-1
375e4b
- Skip the isa_flags check in the ABI test because the crt[in].o files are compiled with different flags from the test files.
375e4b
375e4b
* Fri Apr 20 2018 Nick Clifton <nickc@redhat.com> - 5.3-1
375e4b
- Add manual pages for annobin and the scripts.
375e4b
375e4b
* Tue Apr 03 2018 Nick Clifton <nickc@redhat.com> - 5.2-1
375e4b
- Do not record a stack protection setting of -1.  (#1563141)
375e4b
375e4b
* Tue Mar 20 2018 Nick Clifton <nickc@redhat.com> - 5.1-1
375e4b
- Do not complain about a dwarf_version value of -1.  (#1557511)
375e4b
375e4b
* Thu Mar 15 2018 Nick Clifton <nickc@redhat.com> - 5.0-1
375e4b
- Bias file start symbols by 2 in order to avoid them confused with function symbols.  (#1554332)
375e4b
- Version jump is to sync the version number with the annobin plugins internal version number.
375e4b
375e4b
* Mon Mar 12 2018 Nick Clifton <nickc@redhat.com> - 3.6-1
375e4b
- Add --ignore-gaps option to check-abi.sh script.
375e4b
- Use this option in the abi-test check.
375e4b
- Tweak hardening test to skip pic and stack protection checks.
375e4b
375e4b
* Tue Mar 06 2018 Nick Clifton <nickc@redhat.com> - 3.5-1
375e4b
- Handle functions with specific assembler names.  (#1552018)
375e4b
375e4b
* Fri Feb 23 2018 Nick Clifton <nickc@redhat.com> - 3.4-2
375e4b
- Add an explicit requirement on the version of gcc used to built the plugin.  (#1547260)
375e4b
375e4b
* Fri Feb 09 2018 Nick Clifton <nickc@redhat.com> - 3.4-1
375e4b
- Change type and size of symbols to STT_NOTYPE/0 so that they do not confuse GDB.  (#1539664)
375e4b
- Add run-on-binaries-in.sh script to allow the other scripts to be run over a repository.
375e4b
375e4b
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.3-2
375e4b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
375e4b
375e4b
* Tue Jan 30 2018 Nick Clifton <nickc@redhat.com> - 3.3-1
375e4b
- Rebase on 3.3 release, which adds support for recording -mcet and -fcf-protection.
375e4b
375e4b
* Mon Jan 29 2018 Florian Weimer <fweimer@redhat.com> - 3.2-3
375e4b
- Rebuild for GCC 8
375e4b
375e4b
* Fri Jan 26 2018 Nick Clifton <nickc@redhat.com> - 3.2-2
375e4b
- Fix the installation of the annobin.info file.
375e4b
375e4b
* Fri Jan 26 2018 Nick Clifton <nickc@redhat.com> - 3.2-1
375e4b
- Rebase on 3.2 release, which now contains documentation!
375e4b
375e4b
* Fri Jan 26 2018 Richard W.M. Jones <rjones@redhat.com> - 3.1-3
375e4b
- Rebuild against GCC 7.3.1.
375e4b
375e4b
* Tue Jan 16 2018 Nick Clifton <nickc@redhat.com> - 3.1-2
375e4b
- Add --with-gcc-plugin-dir option to the configure command line.
375e4b
375e4b
* Thu Jan 04 2018 Nick Clifton <nickc@redhat.com> - 3.1-1
375e4b
- Rebase on version 3.1 sources.
375e4b
375e4b
* Mon Dec 11 2017 Nick Clifton <nickc@redhat.com> - 2.5.1-5
375e4b
- Do not generate notes when there is no output file.  (#1523875)
375e4b
375e4b
* Fri Dec 08 2017 Nick Clifton <nickc@redhat.com> - 2.5.1-4
375e4b
- Invent an input filename when reading from a pipe.  (#1523401)
375e4b
375e4b
* Thu Nov 30 2017 Florian Weimer <fweimer@redhat.com> - 2.5.1-3
375e4b
- Use DECL_ASSEMBLER_NAME for symbol references (#1519165)
375e4b
375e4b
* Tue Oct 03 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.5.1-2
375e4b
- Cleanups in spec
375e4b
375e4b
* Tue Sep 26 2017 Nick Clifton <nickc@redhat.com> - 2.5.1-1
375e4b
- Touch the auto-generated files in order to stop them from being regenerated.
375e4b
375e4b
* Tue Sep 26 2017 Nick Clifton <nickc@redhat.com> - 2.5-2
375e4b
- Stop the plugin complaining about compiler datestamp mismatches.
375e4b
375e4b
* Thu Sep 21 2017 Nick Clifton <nickc@redhat.com> - 2.4-1
375e4b
- Tweak tests so that they will run on older machines.
375e4b
375e4b
* Thu Sep 21 2017 Nick Clifton <nickc@redhat.com> - 2.3-1
375e4b
- Add annobin-tests subpackage containing some preliminary tests.
375e4b
- Remove link-time test for unsupported targets.
375e4b
375e4b
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0-3
375e4b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
375e4b
375e4b
* Mon Jul 31 2017 Florian Weimer <fweimer@redhat.com> - 2.0-2
375e4b
- Rebuild with binutils fix for ppc64le (#1475636)
375e4b
375e4b
* Wed Jun 28 2017 Nick Clifton <nickc@redhat.com> - 2.0-1
375e4b
- Fixes for problems reported by the package submission review:
375e4b
   * Add %%license entry to %%file section.
375e4b
   * Update License and BuildRequires tags.
375e4b
   * Add Requires tag.
375e4b
   * Remove %%clean.
375e4b
   * Add %%check.
375e4b
   * Clean up the %%changelog.
375e4b
- Update to use version 2 of the specification and sources.
375e4b
375e4b
* Thu May 11 2017 Nick Clifton <nickc@redhat.com> - 1.0-1
375e4b
- Initial submission.