Add ability to build clang plugin (disabled by default).
This commit is contained in:
parent
e8f56c0bdb
commit
f7f58a9fb9
1
.gitignore
vendored
1
.gitignore
vendored
@ -124,3 +124,4 @@
|
|||||||
/annobin-9.06.tar.xz
|
/annobin-9.06.tar.xz
|
||||||
/annobin-9.07.tar.xz
|
/annobin-9.07.tar.xz
|
||||||
/annobin-9.08.tar.xz
|
/annobin-9.08.tar.xz
|
||||||
|
/annobin-9.09.tar.xz
|
||||||
|
83
annobin.spec
83
annobin.spec
@ -1,12 +1,36 @@
|
|||||||
|
|
||||||
Name: annobin
|
Name: annobin
|
||||||
Summary: Binary annotation plugin for GCC
|
Summary: Binary annotations and discovery
|
||||||
Version: 9.08
|
Version: 9.09
|
||||||
Release: 1%{?dist}
|
Release: 1%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
URL: https://fedoraproject.org/wiki/Toolchain/Watermark
|
# ProtocolURL: https://fedoraproject.org/wiki/Toolchain/Watermark
|
||||||
# Maintainer: nickc@redhat.com
|
# Maintainer: nickc@redhat.com
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# Use "--without tests" to disable the testsuite. The default is to run them.
|
||||||
|
%bcond_without tests
|
||||||
|
|
||||||
|
# Use "--without annocheck" to disable the installation of the annocheck program.
|
||||||
|
# The default is to run the tests.
|
||||||
|
%bcond_without annocheck
|
||||||
|
|
||||||
|
# Use "--with debuginfod" to force support for debuginfod to be compiled into
|
||||||
|
# the annocheck program. By default the configure script will check for
|
||||||
|
# availablilty at build time, but this might not match the run time situation.
|
||||||
|
# FIXME: Add a --without debuginfod option to forcefully disable the configure
|
||||||
|
# time check for debuginfod support.
|
||||||
|
%bcond_with debuginfod
|
||||||
|
|
||||||
|
# Use "--with clangplugin" to build the annobin plugin for clang.
|
||||||
|
# The default is not to build the plugin.
|
||||||
|
%bcond_with clangplugin
|
||||||
|
|
||||||
|
# Set this to zero to disable the requirement for a specific version of gcc.
|
||||||
|
# This should only be needed if there is some kind of problem with the version
|
||||||
|
# checking logic or when building on RHEL-7 or earlier.
|
||||||
|
%global with_hard_gcc_version_requirement 1
|
||||||
|
|
||||||
# # Do not build the annobin plugin with annotation enabled.
|
# # Do not build the annobin plugin with annotation enabled.
|
||||||
# # This is because if we are bootstrapping a new build environment we can have
|
# # This is because if we are bootstrapping a new build environment we can have
|
||||||
@ -23,30 +47,8 @@ URL: https://fedoraproject.org/wiki/Toolchain/Watermark
|
|||||||
#
|
#
|
||||||
# %%undefine _annotated_build
|
# %%undefine _annotated_build
|
||||||
|
|
||||||
# Use "--without tests" to disable the testsuite. The default is to run them.
|
|
||||||
%bcond_without tests
|
|
||||||
|
|
||||||
# Use "--without annocheck" to disable the installation of the annocheck program.
|
|
||||||
%bcond_without annocheck
|
|
||||||
|
|
||||||
# Use "--with debuginfod" to force support for debuginfod to be compiled into
|
|
||||||
# the annocheck program. By default the configure script will check for
|
|
||||||
# availablilty at build time, but this might not match the run time situation.
|
|
||||||
%bcond_with debuginfod
|
|
||||||
|
|
||||||
# Set this to zero to disable the requirement for a specific version of gcc.
|
|
||||||
# This should only be needed if there is some kind of problem with the version
|
|
||||||
# checking logic or when building on RHEL-7 or earlier.
|
|
||||||
%global with_hard_gcc_version_requirement 1
|
|
||||||
|
|
||||||
# Enable this if it is necessary to build annobin without using annobin.
|
|
||||||
# This is useful for example if the annobin plugin fails because of a change
|
|
||||||
# in the size of gcc's global_options structure. In order to rebuild annobin
|
|
||||||
# against the changed gcc it is necessary to disable annobin as otherwise
|
|
||||||
# the configuration step of annobin's build will fail.
|
|
||||||
# %%undefine _annotated_build
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz
|
Source: https://nickc.fedorapeople.org/annobin-%{version}.tar.xz
|
||||||
# For the latest sources use: git clone git://sourceware.org/git/annobin.git
|
# For the latest sources use: git clone git://sourceware.org/git/annobin.git
|
||||||
|
|
||||||
@ -108,6 +110,9 @@ Requires: gcc
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
BuildRequires: gcc gcc-plugin-devel gcc-c++
|
BuildRequires: gcc gcc-plugin-devel gcc-c++
|
||||||
|
%if %{with clangplugin}
|
||||||
|
BuildRequires: clang clang-devel llvm llvm-devel
|
||||||
|
%endif
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Provides a plugin for GCC that records extra information in the files
|
Provides a plugin for GCC that records extra information in the files
|
||||||
@ -116,6 +121,10 @@ that it compiles.
|
|||||||
Note - the plugin is automatically enabled in gcc builds via flags
|
Note - the plugin is automatically enabled in gcc builds via flags
|
||||||
provided by the redhat-rpm-macros package.
|
provided by the redhat-rpm-macros package.
|
||||||
|
|
||||||
|
%if %{with clangplugin}
|
||||||
|
Note - the clang plugin has also been enabled.
|
||||||
|
%endif
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
%if %{with tests}
|
%if %{with tests}
|
||||||
|
|
||||||
@ -150,6 +159,11 @@ hardening options.
|
|||||||
|
|
||||||
%global ANNOBIN_PLUGIN_DIR %(gcc --print-file-name=plugin)
|
%global ANNOBIN_PLUGIN_DIR %(gcc --print-file-name=plugin)
|
||||||
|
|
||||||
|
%if %{with clangplugin}
|
||||||
|
# FIXME: This does not actually work - it returns the *gcc* plugin directory!
|
||||||
|
%global ANNOBIN_CLANG_PLUGIN_DIR %(clang --print-file-name=plugin)
|
||||||
|
%endif
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
@ -195,12 +209,23 @@ BUILD_FLAGS="-fplugin=%{_tmppath}/tmp_annobin.so -fplugin-arg-tmp_annobin-rename
|
|||||||
make -C plugin CXXFLAGS="%{optflags} $BUILD_FLAGS"
|
make -C plugin CXXFLAGS="%{optflags} $BUILD_FLAGS"
|
||||||
rm %{_tmppath}/tmp_annobin.so
|
rm %{_tmppath}/tmp_annobin.so
|
||||||
|
|
||||||
|
%if %{with clangplugin}
|
||||||
|
# FIXME: The symbolic link should not be needed.
|
||||||
|
ln -f -s ../annobin-global.h clang-plugin
|
||||||
|
make -C clang-plugin annobin.so
|
||||||
|
%endif
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%make_install
|
%make_install
|
||||||
%{__rm} -f %{buildroot}%{_infodir}/dir
|
%{__rm} -f %{buildroot}%{_infodir}/dir
|
||||||
|
|
||||||
|
%if %{with clangplugin}
|
||||||
|
# FIXME: I do not know where clang installs its plugins...
|
||||||
|
# cp clang-plugin/annobin.so %{ANNOBIN_CLANG_PLUGIN_DIR}
|
||||||
|
%endif
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
%if %{with tests}
|
%if %{with tests}
|
||||||
@ -231,6 +256,9 @@ fi
|
|||||||
%{_mandir}/man1/check-abi.1*
|
%{_mandir}/man1/check-abi.1*
|
||||||
%{_mandir}/man1/hardened.1*
|
%{_mandir}/man1/hardened.1*
|
||||||
%{_mandir}/man1/run-on-binaries-in.1*
|
%{_mandir}/man1/run-on-binaries-in.1*
|
||||||
|
%if %{with clangplugin}
|
||||||
|
# %{ANNOBIN_CLANG_PLUGIN_DIR}
|
||||||
|
%endif
|
||||||
|
|
||||||
%if %{with annocheck}
|
%if %{with annocheck}
|
||||||
%files annocheck
|
%files annocheck
|
||||||
@ -241,6 +269,9 @@ fi
|
|||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Feb 25 2020 Nick Clifton <nickc@redhat.com> - 9.09-1
|
||||||
|
- Add ability to build clang plugin (disabled by default).
|
||||||
|
|
||||||
* Mon Feb 17 2020 Nick Clifton <nickc@redhat.com> - 9.08-1
|
* Mon Feb 17 2020 Nick Clifton <nickc@redhat.com> - 9.08-1
|
||||||
- Annocheck: Fix error printing out the version number.
|
- Annocheck: Fix error printing out the version number.
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (annobin-9.08.tar.xz) = 85ee3d5026b0cdff8df6f90af3ae97f2466b3dfbd7c2a5c59456970a025fcc7bca436432766335f2a5a9b8a49d46901226249c102766f068b6c5ac8b67e5baab
|
SHA512 (annobin-9.09.tar.xz) = 3353cab4cbb82ea89fdb9c28333d480edca8e3bea631cb0df1897d00fab3ae1aa33198f3362c7edc9da8cf4bf1a9c20415a4fb88dabfae45e0d537bb958ebe9e
|
||||||
|
Loading…
x
Reference in New Issue
Block a user