d1be1bd
03aecab
Name:    annobin
03aecab
Summary: Binary annotation plugin for GCC
980573d
Version: 9.01
3755b69
Release: 2%{?dist}
03aecab
03aecab
License: GPLv3+
03aecab
URL:     https://fedoraproject.org/wiki/Toolchain/Watermark
03aecab
# Maintainer: nickc@redhat.com
03aecab
03aecab
50a4793
# # Do not build the annobin plugin with annotation enabled.
50a4793
# # This is because if we are bootstrapping a new build environment we can have
50a4793
# # a new version of gcc installed, but without a new of annobin installed.
eef6b3c
# # (i.e. we are building the new version of annobin to go with the new version
50a4793
# # of gcc).  If the *old* annobin plugin is used whilst building this new
50a4793
# # version, the old plugin will complain that version of gcc for which it
50a4793
# # was built is different from the version of gcc that is now being used, and
50a4793
# # then it will abort.
03aecab
#
03aecab
# Suppress this for BZ 1630550.
03aecab
# The problem should now only arise when rebasing to a new major version
03aecab
# of gcc, in which case the undefine below can be temporarily reinstated.
03aecab
#
9265fb5
# %%undefine _annotated_build
267ee07
e7ed178
# Use "--without tests" to disable the testsuite.  The default is to run them.
e7ed178
%bcond_without tests
e7ed178
4656334
# Use "--without annocheck" to disable the installation of the annocheck program.
4656334
%bcond_without annocheck
4656334
38bf73b
# Set this to zero to disable the requirement for a specific version of gcc.
38bf73b
# This should only be needed if there is some kind of problem with the version
03aecab
# checking logic or when building on RHEL-7 or earlier.
38bf73b
%global with_hard_gcc_version_requirement 1
38bf73b
23baf8b
# Enable this if it is necessary to build annobin without using annobin.
23baf8b
%undefine _annotated_build
23baf8b
38bf73b
#---------------------------------------------------------------------------------
38bf73b
Source:  https://nickc.fedorapeople.org/annobin-%{version}.tar.xz
38bf73b
# For the latest sources use:  git clone git://sourceware.org/git/annobin.git
38bf73b
9d8fe91
# Insert patches here, if needed.
9d8fe91
# Patch01: annobin-xxx.patch
9d8fe91
848d99e
#---------------------------------------------------------------------------------
9d8fe91
5524770
# [Stolen from gcc-python-plugin]
5524770
# GCC will only load plugins that were built against exactly that build of GCC
5524770
# We thus need to embed the exact GCC version as a requirement within the
5524770
# metadata.
5524770
#
5524770
# Define "gcc_vr", a variable to hold the VERSION-RELEASE string for the gcc
5524770
# we are being built against.
5524770
#
5524770
# Unfortunately, we can't simply run:
5524770
#   rpm -q --qf="%%{version}-%%{release}"
5524770
# to determine this, as there's no guarantee of a sane rpm database within
5524770
# the chroots created by our build system
5524770
#
5524770
# So we instead query the version from gcc's output.
5524770
#
5524770
# gcc.spec has:
5524770
#   Version: %%{gcc_version}
5524770
#   Release: %%{gcc_release}%%{?dist}
5524770
#   ...snip...
5524770
#   echo 'Red Hat %%{version}-%%{gcc_release}' > gcc/DEV-PHASE
5524770
#
5524770
# So, given this output:
5524770
#
5524770
#   $ gcc --version
5524770
#   gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9)
5524770
#   Copyright (C) 2011 Free Software Foundation, Inc.
5524770
#   This is free software; see the source for copying conditions.  There is NO
5524770
#   warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5524770
#
5524770
# we can scrape out the "4.6.1" from the version line.
5524770
#
5524770
# The following implements the above:
5524770
5524770
%global gcc_vr %(gcc --version | head -n 1 | sed -e 's|.*(Red\ Hat\ ||g' -e 's|)$||g')
5524770
5524770
# We need the major version of gcc.
5524770
%global gcc_major %(echo "%{gcc_vr}" | cut -f1 -d".")
5524770
%global gcc_next  %(v="%{gcc_major}"; echo $((++v)))
5524770
e0d9656
# Needed when building the srpm.
e0d9656
%if 0%{?gcc_major} == 0
e0d9656
%global gcc_major 0
e0d9656
%endif
e0d9656
5524770
# This is a gcc plugin, hence gcc is required.
5524770
%if %{with_hard_gcc_version_requirement}
a8a0b58
# BZ 1607430 - There is an exact requirement on the major version of gcc.
a406d38
Requires: (gcc >= %{gcc_major} with gcc < %{gcc_next})
5524770
%else
5524770
Requires: gcc
5524770
%endif
a8a0b58
848d99e
BuildRequires: gcc gcc-plugin-devel gcc-c++
38bf73b
38bf73b
%description
eef6b3c
Provides a plugin for GCC that records extra information in the files
03aecab
that it compiles.
38bf73b
eef6b3c
Note - the plugin is automatically enabled in gcc builds via flags
eef6b3c
provided by the redhat-rpm-macros package.
38bf73b
38bf73b
#---------------------------------------------------------------------------------
38bf73b
%if %{with tests}
38bf73b
38bf73b
%package tests
38bf73b
Summary: Test scripts and binaries for checking the behaviour and output of the annobin plugin
38bf73b
38bf73b
%description tests
38bf73b
Provides a means to test the generation of annotated binaries and the parsing
38bf73b
of the resulting files.
38bf73b
38bf73b
%endif
4656334
4656334
#---------------------------------------------------------------------------------
4656334
%if %{with annocheck}
4656334
4656334
%package annocheck
4656334
Summary: A tool for checking the security hardening status of binaries
4656334
cb01155
BuildRequires: gcc elfutils elfutils-devel elfutils-libelf-devel rpm-devel binutils-devel
4656334
4656334
%description annocheck
4656334
Installs the annocheck program which uses the notes generated by annobin to
4656334
check that the specified files were compiled with the correct security
4656334
hardening options.
4656334
4656334
%endif
4656334
38bf73b
#---------------------------------------------------------------------------------
38bf73b
38bf73b
%global ANNOBIN_PLUGIN_DIR %(gcc --print-file-name=plugin)
38bf73b
967f47d
#---------------------------------------------------------------------------------
967f47d
35fd563
%prep
1a9432d
if [ -z "%{gcc_vr}" ]; then
1a9432d
    echo "*** Missing gcc_vr spec file macro, cannot continue." >&2
1a9432d
    exit 1
1a9432d
fi
1a9432d
a406d38
echo "Requires: (gcc >= %{gcc_major} with gcc < %{gcc_next})"
5524770
35fd563
%autosetup -p1
35fd563
26ba227
# The plugin has to be configured with the same arcane configure
26ba227
# scripts used by gcc.  Hence we must not allow the Fedora build
26ba227
# system to regenerate any of the configure files.
26ba227
touch aclocal.m4 plugin/config.h.in
c393d68
touch configure */configure Makefile.in */Makefile.in
6b89f32
# Similarly we do not want to rebuild the documentation.
6b89f32
touch doc/annobin.info
c393d68
967f47d
#---------------------------------------------------------------------------------
967f47d
35fd563
%build
ceb5d85
%configure --quiet --with-gcc-plugin-dir=%{ANNOBIN_PLUGIN_DIR}
757c3b0
%make_build
f45ff6b
# Rebuild the plugin, this time using the plugin itself!  This
f45ff6b
# ensures that the plugin works, and that it contains annotations
f45ff6b
# of its own.  This could mean that we end up with a plugin with
f45ff6b
# double annotations in it.  (If the build system enables annotations
967f47d
# for plugins by default).  I have not tested this yet, but I think
967f47d
# that it should be OK.
50a4793
cp plugin/.libs/annobin.so.0.0.0 %{_tmppath}/tmp_annobin.so
f45ff6b
make -C plugin clean
03aecab
BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so -fplugin-arg-tmp_annobin-rename"
03aecab
# If building on RHEL7, enable the next option as the .attach_to_group assembler pseudo op is not available in the assembler.
03aecab
# BUILD_FLAGS="$BUILD_FLAGS -fplugin-arg-tmp_annobin-no-attach"
03aecab
make -C plugin CXXFLAGS="%{optflags} $BUILD_FLAGS"
50a4793
rm %{_tmppath}/tmp_annobin.so
f45ff6b
967f47d
#---------------------------------------------------------------------------------
757c3b0
757c3b0
%install
757c3b0
%make_install
d1be1bd
%{__rm} -f %{buildroot}%{_infodir}/dir
35fd563
967f47d
#---------------------------------------------------------------------------------
967f47d
e7ed178
%if %{with tests}
757c3b0
%check
c240981
# Change the following line to "make check || :" on RHEL7 or if you need to see the
c240981
# test suite logs in order to diagnose a test failure.
e7ed178
make check
276edb1
if [ -f tests/test-suite.log ]; then
276edb1
    cat tests/test-suite.log
276edb1
fi
e7ed178
%endif
e7ed178
967f47d
#---------------------------------------------------------------------------------
967f47d
35fd563
%files
35fd563
%{ANNOBIN_PLUGIN_DIR}
db2c4ce
%{_bindir}/built-by
db2c4ce
%{_bindir}/check-abi
db2c4ce
%{_bindir}/hardened
db2c4ce
%{_bindir}/run-on-binaries-in
35fd563
%license COPYING3 LICENSE
35fd563
%exclude %{_datadir}/doc/annobin-plugin/COPYING3
35fd563
%exclude %{_datadir}/doc/annobin-plugin/LICENSE
35fd563
%doc %{_datadir}/doc/annobin-plugin/annotation.proposal.txt
16c7d0f
%{_infodir}/annobin.info*
16c7d0f
%{_mandir}/man1/annobin.1*
16c7d0f
%{_mandir}/man1/built-by.1*
16c7d0f
%{_mandir}/man1/check-abi.1*
16c7d0f
%{_mandir}/man1/hardened.1*
16c7d0f
%{_mandir}/man1/run-on-binaries-in.1*
35fd563
4656334
%if %{with annocheck}
fcc5d2b
%files annocheck
4656334
%{_bindir}/annocheck
16c7d0f
%{_mandir}/man1/annocheck.1*
4656334
%endif
4656334
e7ed178
#---------------------------------------------------------------------------------
967f47d
35fd563
%changelog
3755b69
* Mon Jan 20 2020 Nick Clifton <nickc@redhat.com> - 9.01-2
3755b69
- Rebuild againt latest gcc-10.
3755b69
980573d
* Mon Jan 20 2020 Nick Clifton <nickc@redhat.com> - 9.01-1
980573d
- Add clang plugin (experimental).
476968a
8997d89
* Fri Dec 06 2019 Nick Clifton <nickc@redhat.com> - 8.92-1
8997d89
- Have annocheck ignore notes with an end address of 0.
8997d89
27da4ae
* Mon Nov 18 2019 Nick Clifton <nickc@redhat.com> - 8.91-1
27da4ae
- Improve checking of gcc versions.
27da4ae
9f8f0cd
* Fri Nov 15 2019 Nick Clifton <nickc@redhat.com> - 8.90-1
9f8f0cd
- Do not skip positive results.
9f8f0cd
d97bf86
* Fri Nov 01 2019 Nick Clifton <nickc@redhat.com> - 8.88-1
d97bf86
- Generate a WARN result for code compiled with instrumentation enabled.  (#1753918)
d97bf86
fff201e
* Tue Oct 22 2019 Nick Clifton <nickc@redhat.com> - 8.87-1
fff201e
- Replace address checks with dladdr1.
fff201e
0468836
* Mon Oct 21 2019 Nick Clifton <nickc@redhat.com> - 8.86-1
0468836
- Use libabigail like checking to ensure variable address consistency.
0468836
07e0a5a
* Wed Oct 16 2019 Nick Clifton <nickc@redhat.com> - 8.85-1
07e0a5a
- Skip generation of global notes for hot/cold sections.
07e0a5a
59663eb
* Thu Oct 10 2019 Nick Clifton <nickc@redhat.com> - 8.84-1
59663eb
- Generate FAIL results if -Wall or -Wformat-security are missing.
59663eb
c240981
* Thu Oct 03 2019 Nick Clifton <nickc@redhat.com> - 8.83-1
c240981
- If notes cannot be found in the executable look for them in the debuginfo file, if available.
c240981
- Generate a FAIL if notes are missing from the executable/debuginfo file.
c240981
- Record and report the setting of the AArcht64 specific -mbranch-protection option.
c240981
af41c06
* Mon Sep 23 2019 Nick Clifton <nickc@redhat.com> - 8.81-1
af41c06
- Improve detection of GO binaries.
af41c06
- Add gcc version information to annobin notes.
af41c06
- Do not complain about missing FORTIFY_SOURCE and GLIBCXX_ASSERTIONS in LTO compilations.
af41c06
1650386
* Wed Sep 04 2019 Nick Clifton <nickc@redhat.com> - 8.79-2
1650386
- NVR bump to allow rebuild against latest gcc.  (#1748529)
1650386
b6d4688
* Tue Aug 06 2019 Nick Clifton <nickc@redhat.com> - 8.79-1
b6d4688
- Allow compiler used to run tests to be specified on the command line.  (#1723401)
b6d4688
4a6b895
* Tue Aug 06 2019 Nick Clifton <nickc@redhat.com> - 8.78-1
4a6b895
- Fix a memory allocation error in the annobin plugin.  (#1737306)
4a6b895
978810c
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 8.77-2
978810c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
978810c
03aecab
* Mon Jun 24 2019 Nick Clifton <nickc@redhat.com> - 8.77-1
03aecab
- Another attempt at fixing the detection and reporting of missing -D_FORTIFY_SOURCE options.  (#1703500)
03aecab
b20fc42
* Mon Jun 10 22:13:17 CET 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 8.76-4
b20fc42
- Rebuild for RPM 4.15
b20fc42
2fca1e2
* Mon Jun 10 15:42:00 CET 2019 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 8.76-3
2fca1e2
- Rebuild for RPM 4.15
2fca1e2
fcc5d2b
* Thu Jun 06 2019 Panu Matilainen <pmatilai@redhat.com> - 8.76-2
fcc5d2b
- Really enable annocheck sub-package
fcc5d2b
94317b5
* Tue Apr 30 2019 Nick Clifton <nickc@redhat.com> - 8.76-1
94317b5
- Report a missing -D_FORTIFY_SOUCRE option if -D_GLIBCXX_ASSERTIONS was detected.  (#1703499)
94317b5
- Do not report problems with -fstack-protection if the binary was not built by gcc or clang.  (#1703788)    
94317b5
64b0875
* Fri Apr 26 2019 Nick Clifton <nickc@redhat.com> - 8.74-1
64b0875
- Add tests of clang command line options recorded in the DW_AT_producer attribute.
64b0875
eeb41d9
* Wed Apr 24 2019 Nick Clifton <nickc@redhat.com> - 8.73-1
eeb41d9
- Fix test for an executable stack segment.  (#1700924)
eeb41d9
276edb1
* Thu Apr 18 2019 Nick Clifton <nickc@redhat.com> - 8.72-1
276edb1
- Rebuild annobin with the latest rawhide gcc sources.  (#1700923)
276edb1
6e6ab3b
* Thu Feb 28 2019 Nick Clifton <nickc@redhat.com> - 8.71-1
6e6ab3b
- Annobin: Suppress more calls to free() which are triggering memory checker errors.  (#1684148)
6e6ab3b
e7dabf6
* Fri Feb 01 2019 Nick Clifton <nickc@redhat.com> - 8.70-1
e7dabf6
- Add section flag matching ability to section size tool.
e7dabf6
cbc3459
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 8.69-7
cbc3459
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
cbc3459
a406d38
* Tue Jan 29 2019 Björn Esser <besser82@fedoraproject.org> - 8.69-6
a406d38
- Use 'with' for rich dependency on gcc
a406d38
5524770
* Tue Jan 29 2019 Björn Esser <besser82@fedoraproject.org> - 8.69-5
5524770
- Really fix rhbz#1607430.
5524770
9265fb5
* Mon Jan 28 2019 Björn Esser <besser82@fedoraproject.org> - 8.69-4
9265fb5
- Rebuilt with annotations enabled
9265fb5
fbf6e93
* Mon Jan 28 2019 Björn Esser <besser82@fedoraproject.org> - 8.69-3
fbf6e93
- Fix rpm query for gcc version.
fbf6e93
a8a0b58
* Mon Jan 28 2019 Nick Clifton <nickc@redhat.com> - 8.69-2
dc77d4f
- Add an exact requirement on the major version of gcc. (#1607430)
a8a0b58
443440a
* Thu Jan 24 2019 Nick Clifton <nickc@redhat.com> - 8.69-1
443440a
- Annobin: Add support for .text.startup and .text.exit sections generated by gcc 9.
443440a
- Annocheck: Add a note displaying tool.
443440a
16e73c5
* Wed Jan 23 2019 Nick Clifton <nickc@redhat.com> - 8.68-1
16e73c5
- Annocheck: Skip checks for -D_FORTIFY_SOURCE and -D_GLIBCXX_ASSERTIONS if there is no compiler generated code in the binary.
16e73c5
e1bf6de
* Mon Jan 21 2019 Björn Esser <besser82@fedoraproject.org> - 8.67-3
e1bf6de
- Rebuilt with annotations enabled
e1bf6de
1e95c47
* Mon Jan 21 2019 Björn Esser <besser82@fedoraproject.org> - 8.67-2
1e95c47
- Rebuilt for GCC 9
1e95c47
c418230
* Thu Jan 17 2019 Nick Clifton <nickc@redhat.com> - 8.67-1
c418230
- Annocheck: Only skip specific checks for specific symbols.  (#1666823)
c418230
- Annobin: Record the setting of the -fomit-frame-pointer option.
c418230
61981be
* Wed Jan 02 2019 Nick Clifton <nickc@redhat.com> - 8.66-1
61981be
- Annocheck: Do not ignore -Og when checking to see if an optimization level has been set.  (#1624162)
61981be
a4538d8
* Tue Dec 11 2018 Nick Clifton <nickc@redhat.com> - 8.65-1
a4538d8
- Annobin: Fix handling of multiple .text.unlikely sections.
a4538d8
60a01e9
* Fri Nov 30 2018 Nick Clifton <nickc@redhat.com> - 8.64-1
60a01e9
- Annocheck: Skip gaps in PPC64 executables covered by start_bcax_ symbols.  (#1630564)
60a01e9
dbdec1a
* Mon Nov 26 2018 Nick Clifton <nickc@redhat.com> - 8.63-1
dbdec1a
- Annocheck: Disable ENDBR test for shared libraries.  (#1652925)
dbdec1a
1a9432d
* Mon Nov 26 2018 Nick Clifton <nickc@redhat.com> - 8.62-1
1a9432d
- Annocheck: Add test for ENDBR instruction at entry address of x86/x86_64 executables.  (#1652925)
1a9432d
1a9432d
* Tue Nov 20 2018 David Cantrell <dcantrell@redhat.com> - 8.61-2
1a9432d
- Adjust how the gcc_vr macro is set.
1a9432d
d3a48b4
* Mon Nov 19 2018 Nick Clifton <nickc@redhat.com> - 8.61-1
d3a48b4
- Fix building with gcc version 4.
d3a48b4
eef6b3c
* Tue Nov 13 2018 Nick Clifton <nickc@redhat.com> - 8.60-1
eef6b3c
- Skip -Wl,-z,now and -Wl,-z,relro checks for non-gcc produced binaries.  (#1624421)
eef6b3c
819496e
* Mon Nov 05 2018 Nick Clifton <nickc@redhat.com> - 8.59-1
819496e
- Ensure GNU Property notes are 8-byte aligned in x86_64 binaries.  (#1645817)
819496e
9eeba25
* Thu Oct 18 2018 Nick Clifton <nickc@redhat.com> - 8.58-1
9eeba25
- Skip PPC64 linker stubs created in the middle of text sections (again). (#1630640)
9eeba25
b6fefda
* Thu Oct 18 2018 Nick Clifton <nickc@redhat.com> - 8.57-1
b6fefda
- Suppress free of invalid pointer. (#1638371)
b6fefda
a7bd5f0
* Thu Oct 18 2018 Nick Clifton <nickc@redhat.com> - 8.56-1
a7bd5f0
- Skip PPC64 linker stubs created in the middle of text sections. (#1630640)
a7bd5f0
107f5dd
* Tue Oct 16 2018 Nick Clifton <nickc@redhat.com> - 8.55-1
107f5dd
- Reset the (PPC64) section start symbol to 0 if its section is empty.  (#1638251)
107f5dd
31fd1df
* Thu Oct 11 2018 Nick Clifton <nickc@redhat.com> - 8.53-1
31fd1df
- Also skip virtual thinks created by G++.  (#1630619)
31fd1df
a4ffb9c
* Wed Oct 10 2018 Nick Clifton <nickc@redhat.com> - 8.52-1
a4ffb9c
- Use uppercase for all fail/mayb/pass results.  (#1637706)
a4ffb9c
28d895f
* Wed Oct 10 2018 Nick Clifton <nickc@redhat.com> - 8.51-1
28d895f
- Generate notes for unlikely sections.  (#1630620)
28d895f
863cedb
* Mon Oct 08 2018 Nick Clifton <nickc@redhat.com> - 8.50-1
863cedb
- Fix edge case computing section names for end symbols.  (#1637039)
863cedb
66bc630
* Mon Oct 08 2018 Nick Clifton <nickc@redhat.com> - 8.49-1
66bc630
- Skip dynamic checks for binaries without a dynamic segment.  (#1636606)
66bc630
1750e06
* Fri Oct 05 2018 Nick Clifton <nickc@redhat.com> - 8.48-1
1750e06
- Delay generating attach_to_group directives until the end of the compilation.  (#1636265)
1750e06
1750e06
* Mon Oct 01 2018 Nick Clifton <nickc@redhat.com> - 8.47-1
1750e06
- Fix bug introduced in previous delta which would trigger a seg-fault when scanning for gaps.
1750e06
1750e06
* Mon Oct 01 2018 Nick Clifton <nickc@redhat.com> - 8.46-1
1750e06
- Annobin:   Fix section name selection for startup sections.
1750e06
- Annocheck: Improve gap skipping heuristics.   (#1630574)
1750e06
5b660fd
* Mon Oct 01 2018 Nick Clifton <nickc@redhat.com> - 8.45-1
5b660fd
- Fix function section support (again).   (#1630574)
5b660fd
fa19a50
* Fri Sep 28 2018 Nick Clifton <nickc@redhat.com> - 8.44-1
fa19a50
- Skip compiler option checks for non-GNU producers.  (#1633749)
fa19a50
fa19a50
* Wed Sep 26 2018 Nick Clifton <nickc@redhat.com> - 8.43-1
fa19a50
- Fix function section support (again).   (#1630574)
fa19a50
fa19a50
* Tue Sep 25 2018 Nick Clifton <nickc@redhat.com> - 8.42-1
fa19a50
- Ignore ppc64le notes where start = end + 2.  (#1632259)
fa19a50
50a4793
* Tue Sep 25 2018 Nick Clifton <nickc@redhat.com> - 8.41-1
50a4793
- Make annocheck ignore symbols suffixed with ".end".  (#1639618)
50a4793
50a4793
* Mon Sep 24 2018 Nick Clifton <nickc@redhat.com> - 8.40-1
50a4793
- Reinstate building annobin with annobin enabled.  (#1630550)
50a4793
740bbaa
* Fri Sep 21 2018 Nick Clifton <nickc@redhat.com> - 8.39-1
740bbaa
- Tweak tests.
740bbaa
2cdf84f
* Fri Sep 21 2018 Nick Clifton <nickc@redhat.com> - 8.38-1
2cdf84f
- Generate notes and groups for .text.hot and .text.unlikely sections.
2cdf84f
- When -ffunction-sections is active, put notes for startup sections into .text.startup.foo rather than .text.foo.
2cdf84f
- Similarly put exit section notes into .text.exit.foo.  (#1630574)
2cdf84f
- 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.
2cdf84f
97b046a
* Wed Sep 19 2018 Nick Clifton <nickc@redhat.com> - 8.37-1
97b046a
- Make the --skip-* options skip all messages about the specified test.
97b046a
98aa3b8
* Tue Sep 18 2018 Nick Clifton <nickc@redhat.com> - 8.36-1
98aa3b8
- Improve error message when an ET_EXEC binary is detected.
98aa3b8
0064532
* Mon Sep 17 2018 Nick Clifton <nickc@redhat.com> - 8.35-1
0064532
- Skip failures for PIC vs PIE.  (#1629698)
0064532
62a035e
* Mon Sep 17 2018 Nick Clifton <nickc@redhat.com> - 8.34-1
62a035e
- Ensure 4 byte alignment of note sub-sections.  (#1629671)
62a035e
38c6f9e
* Wed Sep 12 2018 Nick Clifton <nickc@redhat.com> - 8.33-1
38c6f9e
- Add timing tool to report on speed of the checks.
38c6f9e
- Add check for conflicting use of the -fshort-enum option.
38c6f9e
- Add check of the GNU Property notes.
38c6f9e
- Skip check for -O2 if compiled with -Og.  (#1624162)
38c6f9e
3218a50
* Mon Sep 03 2018 Nick Clifton <nickc@redhat.com> - 8.32-1
38c6f9e
- Add test for ET_EXEC binaries.  (#1625627)
3218a50
- Document --report-unknown option.
3218a50
a241ed8
* Thu Aug 30 2018 Nick Clifton <nickc@redhat.com> - 8.31-1
a241ed8
- Fix bug in hardened tool which would skip gcc compiled files if the notes were too small.
a241ed8
- Fix bugs in section-size tool.
3218a50
- Fix bug in built-by tool.
a241ed8
ccb481d
* Wed Aug 29 2018 Nick Clifton <nickc@redhat.com> - 8.30-1
ccb481d
- Generate notes for comdat sections. (#1619267)
ccb481d
59960d3
* Thu Aug 23 2018 Nick Clifton <nickc@redhat.com> - 8.29-1
59960d3
- Add more names to the gap skip list. (#1619267)
59960d3
f8f44e9
* Thu Aug 23 2018 Nick Clifton <nickc@redhat.com> - 8.28-1
f8f44e9
- Skip gaps covered by _x86.get_pc_thunk and _savegpr symbols. (#1619267)
f8f44e9
- Merge ranges where one is wholly covered by another.
f8f44e9
665e3d6
* Wed Aug 22 2018 Nick Clifton <nickc@redhat.com> - 8.27-1
665e3d6
- Skip gaps at the end of functions. (#1619267)
665e3d6
1fa3a94
* Tue Aug 21 2018 Nick Clifton <nickc@redhat.com> - 8.26-1
1fa3a94
- Fix thinko in ppc64 gap detection code. (#1619267)
1fa3a94
4482b57
* Mon Aug 20 2018 Nick Clifton <nickc@redhat.com> - 8.25-1
1fa3a94
- Skip gaps at the end of the .text section in ppc64 binaries. (#1619267)
4482b57
c396cc5
* Wed Aug 15 2018 Nick Clifton <nickc@redhat.com> - 8.24-1
c396cc5
- Skip checks in stack_chk_local_fail.c
c396cc5
- Treat gaps as FAIL results rather than MAYBE.
c396cc5
34de7bc
* Wed Aug 08 2018 Nick Clifton <nickc@redhat.com> - 8.23-1
34de7bc
- Skip checks in __stack_chk_local_fail.
34de7bc
57a69d6
* Wed Aug 08 2018 Nick Clifton <nickc@redhat.com> - 8.22-1
57a69d6
- Reduce version check to gcc major version number only.  Skip compiler option checks if binary not built with gcc.  (#1603089)
57a69d6
a8c8418
* Tue Aug 07 2018 Nick Clifton <nickc@redhat.com> - 8.21-1
a8c8418
- Fix bug in annobin plugin.  Add --section-size=NAME option to annocheck.
a8c8418
2f44ce6
* Thu Aug  2 2018 Peter Robinson <pbrobinson@fedoraproject.org> 8.20-2
2f44ce6
- rebuild for new gcc
2f44ce6
504e1b0
* Thu Aug 02 2018 Nick Clifton <nickc@redhat.com> - 8.20-1
504e1b0
- Correct name of man page for run-on-binaries-in script.  (#1611155)
504e1b0
f7e6bb6
* Wed Jul 25 2018 Nick Clifton <nickc@redhat.com> - 8.19-1
eef6b3c
- Allow $ORIGIN to be at the start of entries in DT_RPATH and DT_RUNPATH.
f7e6bb6
f7e6bb6
* Mon Jul 23 2018 Nick Clifton <nickc@redhat.com> - 8.18-1
f7e6bb6
- Add support for big endian targets.
f7e6bb6
38eb35a
* Mon Jul 23 2018 Nick Clifton <nickc@redhat.com> - 8.17-1
38eb35a
- Count passes and failures on a per-component basis and report gaps.
38eb35a
9dbf46e
* Fri Jul 20 2018 Nick Clifton <nickc@redhat.com> - 8.16-1
9dbf46e
- Use our own copy of the targetm.asm_out.function_section() function.  (#159861 comment#17)
9dbf46e
9dbf46e
* Fri Jul 20 2018 Nick Clifton <nickc@redhat.com> - 8.15-1
baf40aa
- Generate grouped note section name all the time.  (#159861 comment#16)
baf40aa
d3e4501
* Thu Jul 19 2018 Nick Clifton <nickc@redhat.com> - 8.14-1
d3e4501
- Fix section conflict problem.  (#1603071)
d3e4501
c4f43f0
* Wed Jul 18 2018 Nick Clifton <nickc@redhat.com> - 8.13-1
c4f43f0
- Fix for building with gcc version 4.
c4f43f0
- Fix symbol placement in functions with local assembler.
c4f43f0
cc6b631
* Tue Jul 17 2018 Nick Clifton <nickc@redhat.com> - 8.12-1
eef6b3c
- Fix assertions in range checking code.  Add detection of -U options.
cc6b631
c760726
* Tue Jul 17 2018 Nick Clifton <nickc@redhat.com> - 8.11-1
c760726
- Handle function sections properly.  Handle .text.startup and .text.unlikely sections.  Improve gap detection and reporting.  (#1601055)
c760726
accc579
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 8.10-2
accc579
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
accc579
5a7b2e9
* Thu Jul 12 2018 Nick Clifton <nickc@redhat.com> - 8.10-1
5a7b2e9
- Fix construction of absolute versions of --dwarf-dir and --debug-rpm options.
5a7b2e9
4efcfc9
* Tue Jul 10 2018 Nick Clifton <nickc@redhat.com> - 8.9-1
4efcfc9
- Fix buffer overrun when very long symbol names are encountered.
4efcfc9
be50c56
* Tue Jul 10 2018 Nick Clifton <nickc@redhat.com> - 8.8-1
be50c56
- Do not force the generation of function notes when -ffunction-sections is active.  (#1598961)
be50c56
a231425
* Mon Jul 09 2018 Nick Clifton <nickc@redhat.com> - 8.7-1
a231425
- Skip the .annobin_ prfix when reporting symbols.  (#1599315)
a231425
0342042
* Mon Jul 09 2018 Nick Clifton <nickc@redhat.com> - 8.6-1
0342042
- Use the assembler (c++ mangled) version of function names when switching sections.  (#1598579)
0342042
efaf793
* Mon Jul 09 2018 Nick Clifton <nickc@redhat.com> - 8.5-1
efaf793
- Do not call function_section.  (#1598961)
efaf793
326c603
* Fri Jul 06 2018 Nick Clifton <nickc@redhat.com> - 8.4-1
326c603
- Ignore cross-section gaps.  (#1598551)
326c603
ce5f9d5
* Thu Jul 05 2018 Nick Clifton <nickc@redhat.com> - 8.3-1
5a7b2e9
- Do not skip empty range notes in object files.  (#1598361)
ce5f9d5
a1b8a53
* Mon Jul 02 2018 Nick Clifton <nickc@redhat.com> - 8.2-1
a1b8a53
- Create the start symbol at the start of the function and the end symbol at the end.  (#1596823)
a1b8a53
7fa87a2
* Mon Jul 02 2018 Nick Clifton <nickc@redhat.com> - 8.1-1
7fa87a2
- Fix --debug-rpm when used inside a directory.
7fa87a2
f4130c1
* Thu Jun 28 2018 Nick Clifton <nickc@redhat.com> - 8.0-1
f4130c1
- Use a prefix for all annobin generated symbols, and make them hidden.
f4130c1
- Only generate weak symbol definitions for linkonce sections.
f4130c1
ae10117
* Wed Jun 27 2018 Nick Clifton <nickc@redhat.com> - 7.1-1
ae10117
- Skip some checks for relocatable object files, and dynamic objects.
ae10117
- Stop bogus complaints about stackrealignment not being enabled.
ae10117
a55d84f
* Mon Jun 25 2018 Nick Clifton <nickc@redhat.com> - 7.0-1
a55d84f
- Add -debug-rpm= option to annocheck.
a55d84f
- Only use a 2 byte offset for the initial symbol on PowerPC.
a55d84f
ec37d82
* Fri Jun 22 2018 Nick Clifton <nickc@redhat.com> - 6.6-1
ec37d82
- Use --dwarf-path when looking for build-id based debuginfo files.
ec37d82
4a3f774
* Fri Jun 22 2018 Nick Clifton <nickc@redhat.com> - 6.5-1
4a3f774
- Fix premature closing of dwarf handle.
4a3f774
25bca4e
* Fri Jun 22 2018 Nick Clifton <nickc@redhat.com> - 6.4-1
25bca4e
- Fix scoping bug computing the name of a separate debuginfo file.
25bca4e
9a6d845
* Tue Jun 19 2018 Nick Clifton <nickc@redhat.com> - 6.3-1
9a6d845
- Fix file descriptor leak.
9a6d845
b8b6c86
* Tue Jun 19 2018 Nick Clifton <nickc@redhat.com> - 6.2-1
b8b6c86
- Add command line options to annocheck to disable individual tests.
b8b6c86
9657bbe
* Fri Jun 08 2018 Nick Clifton <nickc@redhat.com> - 6.1-1
9657bbe
- Remove C99-ism from annocheck sources.
9657bbe
4656334
* Wed Jun 06 2018 Nick Clifton <nickc@redhat.com> - 6.0-1
4656334
- Add the annocheck program.
4656334
a47a7d3
* Fri Jun 01 2018 Nick Clifton <nickc@redhat.com> - 5.11-1
a47a7d3
- Do not use the SHF_GNU_BUILD_NOTE section flag.
a47a7d3
db2c4ce
* Thu May 31 2018 Nick Clifton <nickc@redhat.com> - 5.10-1
db2c4ce
- Remove .sh extension from shell scripts.
db2c4ce
78f88fb
* Wed May 30 2018 Nick Clifton <nickc@redhat.com> - 5.9-1
78f88fb
- Record the setting of the -mstackrealign option for i686 binaries.
78f88fb
29f42b4
* Mon May 14 2018 Nick Clifton <nickc@redhat.com> - 5.8-1
29f42b4
- Hide the annobin start of file symbol.
29f42b4
7a683bb
* Tue May 08 2018 Nick Clifton <nickc@redhat.com> - 5.7-1
7a683bb
- Fix script bug in hardended.sh.  (Thanks to: Stefan Sørensen <stefan.sorensen@spectralink.com>)
7a683bb
967f47d
* Thu May 03 2018 Nick Clifton <nickc@redhat.com> - 5.6-3
967f47d
- Version number bump so that the plugin can be rebuilt with the latest version of GCC.
967f47d
f45ff6b
* Mon Apr 30 2018 Nick Clifton <nickc@redhat.com> - 5.6-2
f45ff6b
- Rebuild the plugin with the newly created plugin enabled.  (#1573082)
f45ff6b
9d8fe91
* Mon Apr 30 2018 Nick Clifton <nickc@redhat.com> - 5.6-1
9d8fe91
- Skip the isa_flags check in the ABI test because the crt[in].o files are compiled with different flags from the test files.
9d8fe91
4f0a7c2
* Fri Apr 20 2018 Nick Clifton <nickc@redhat.com> - 5.3-1
4f0a7c2
- Add manual pages for annobin and the scripts.
4f0a7c2
f2865c5
* Tue Apr 03 2018 Nick Clifton <nickc@redhat.com> - 5.2-1
f2865c5
- Do not record a stack protection setting of -1.  (#1563141)
f2865c5
3323867
* Tue Mar 20 2018 Nick Clifton <nickc@redhat.com> - 5.1-1
3323867
- Do not complain about a dwarf_version value of -1.  (#1557511)
3323867
0af9bb2
* Thu Mar 15 2018 Nick Clifton <nickc@redhat.com> - 5.0-1
0af9bb2
- Bias file start symbols by 2 in order to avoid them confused with function symbols.  (#1554332)
0af9bb2
- Version jump is to sync the version number with the annobin plugins internal version number.
0af9bb2
c42ae85
* Mon Mar 12 2018 Nick Clifton <nickc@redhat.com> - 3.6-1
c42ae85
- Add --ignore-gaps option to check-abi.sh script.
c42ae85
- Use this option in the abi-test check.
c42ae85
- Tweak hardening test to skip pic and stack protection checks.
c42ae85
a9bdd53
* Tue Mar 06 2018 Nick Clifton <nickc@redhat.com> - 3.5-1
a9bdd53
- Handle functions with specific assembler names.  (#1552018)
a9bdd53
0078c77
* Fri Feb 23 2018 Nick Clifton <nickc@redhat.com> - 3.4-2
0078c77
- Add an explicit requirement on the version of gcc used to built the plugin.  (#1547260)
0078c77
8a3889e
* Fri Feb 09 2018 Nick Clifton <nickc@redhat.com> - 3.4-1
8a3889e
- Change type and size of symbols to STT_NOTYPE/0 so that they do not confuse GDB.  (#1539664)
8a3889e
- Add run-on-binaries-in.sh script to allow the other scripts to be run over a repository.
8a3889e
b42c748
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 3.3-2
b42c748
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
b42c748
cfbd038
* Tue Jan 30 2018 Nick Clifton <nickc@redhat.com> - 3.3-1
cfbd038
- Rebase on 3.3 release, which adds support for recording -mcet and -fcf-protection.
cfbd038
ccd5e04
* Mon Jan 29 2018 Florian Weimer <fweimer@redhat.com> - 3.2-3
ccd5e04
- Rebuild for GCC 8
ccd5e04
d1be1bd
* Fri Jan 26 2018 Nick Clifton <nickc@redhat.com> - 3.2-2
d1be1bd
- Fix the installation of the annobin.info file.
d1be1bd
6b89f32
* Fri Jan 26 2018 Nick Clifton <nickc@redhat.com> - 3.2-1
6b89f32
- Rebase on 3.2 release, which now contains documentation!
6b89f32
3f1d08f
* Fri Jan 26 2018 Richard W.M. Jones <rjones@redhat.com> - 3.1-3
3f1d08f
- Rebuild against GCC 7.3.1.
3f1d08f
ceb5d85
* Tue Jan 16 2018 Nick Clifton <nickc@redhat.com> - 3.1-2
ceb5d85
- Add --with-gcc-plugin-dir option to the configure command line.
ceb5d85
26ba227
* Thu Jan 04 2018 Nick Clifton <nickc@redhat.com> - 3.1-1
26ba227
- Rebase on version 3.1 sources.
26ba227
ecf7069
* Mon Dec 11 2017 Nick Clifton <nickc@redhat.com> - 2.5.1-5
ecf7069
- Do not generate notes when there is no output file.  (#1523875)
ecf7069
ecf7069
* Fri Dec 08 2017 Nick Clifton <nickc@redhat.com> - 2.5.1-4
3dfaaa0
- Invent an input filename when reading from a pipe.  (#1523401)
3dfaaa0
a11e44b
* Thu Nov 30 2017 Florian Weimer <fweimer@redhat.com> - 2.5.1-3
a11e44b
- Use DECL_ASSEMBLER_NAME for symbol references (#1519165)
a11e44b
6112172
* Tue Oct 03 2017 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 2.5.1-2
6112172
- Cleanups in spec
6112172
ccfd4bf
* Tue Sep 26 2017 Nick Clifton <nickc@redhat.com> - 2.5.1-1
c393d68
- Touch the auto-generated files in order to stop them from being regenerated.
c393d68
ccfd4bf
* Tue Sep 26 2017 Nick Clifton <nickc@redhat.com> - 2.5-2
31b6780
- Stop the plugin complaining about compiler datestamp mismatches.
31b6780
ccfd4bf
* Thu Sep 21 2017 Nick Clifton <nickc@redhat.com> - 2.4-1
4b489fe
- Tweak tests so that they will run on older machines.
4b489fe
ccfd4bf
* Thu Sep 21 2017 Nick Clifton <nickc@redhat.com> - 2.3-1
e7ed178
- Add annobin-tests subpackage containing some preliminary tests.
eef6b3c
- Remove link-time test for unsupported targets.
e7ed178
3b2676b
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0-3
3b2676b
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
3b2676b
f53ae1f
* Mon Jul 31 2017 Florian Weimer <fweimer@redhat.com> - 2.0-2
f53ae1f
- Rebuild with binutils fix for ppc64le (#1475636)
f53ae1f
ccfd4bf
* Wed Jun 28 2017 Nick Clifton <nickc@redhat.com> - 2.0-1
35fd563
- Fixes for problems reported by the package submission review:
35fd563
   * Add %%license entry to %%file section.
35fd563
   * Update License and BuildRequires tags.
35fd563
   * Add Requires tag.
35fd563
   * Remove %%clean.
35fd563
   * Add %%check.
35fd563
   * Clean up the %%changelog.
35fd563
- Update to use version 2 of the specification and sources.
35fd563
ccfd4bf
* Thu May 11 2017 Nick Clifton <nickc@redhat.com> - 1.0-1
35fd563
- Initial submission.