import gcc-8.5.0-12.el8
This commit is contained in:
parent
6a8a66e376
commit
3eb52d3089
122
SPECS/gcc.spec
122
SPECS/gcc.spec
@ -4,7 +4,7 @@
|
|||||||
%global gcc_major 8
|
%global gcc_major 8
|
||||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||||
# %%{release}, append them after %%{gcc_release} on Release: line.
|
# %%{release}, append them after %%{gcc_release} on Release: line.
|
||||||
%global gcc_release 10
|
%global gcc_release 12
|
||||||
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
|
%global nvptx_tools_gitrev c28050f60193b3b95a18866a96f03334e874e78f
|
||||||
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
|
%global nvptx_newlib_gitrev aadc8eb0ec43b7cd0dd2dfb484bae63c8b05ef24
|
||||||
%global _unpackaged_files_terminate_build 0
|
%global _unpackaged_files_terminate_build 0
|
||||||
@ -833,6 +833,25 @@ NVidia PTX. OpenMP and OpenACC programs linked with -fopenmp will
|
|||||||
by default add PTX code into the binaries, which can be offloaded
|
by default add PTX code into the binaries, which can be offloaded
|
||||||
to NVidia PTX capable devices if available.
|
to NVidia PTX capable devices if available.
|
||||||
|
|
||||||
|
%package plugin-annobin
|
||||||
|
Summary: The annobin plugin for gcc, built by the installed version of gcc
|
||||||
|
Requires: gcc = %{version}-%{release}
|
||||||
|
# Starting with release 10.01 annobin fixed a bug in its configure scripts
|
||||||
|
# which prevented them from working with a built but not installed compiler
|
||||||
|
BuildRequires: annobin >= 10.01
|
||||||
|
# Starting with release 9.93 annobin-plugin-gcc puts a copy of the sources
|
||||||
|
# in /usr/src/annobin
|
||||||
|
# FIXME: Currently the annobin-plugin-gcc subpackage only exists in Fedora.
|
||||||
|
# For RHEL-9 the annobin package does everything.
|
||||||
|
# BuildRequires: annobin-plugin-gcc
|
||||||
|
# Needed in order to be able to decompress the annobin source tarball.
|
||||||
|
BuildRequires: xz
|
||||||
|
|
||||||
|
%description plugin-annobin
|
||||||
|
This package adds a version of the annobin plugin for gcc. This version
|
||||||
|
of the plugin is explicitly built by the same version of gcc that is installed
|
||||||
|
so that there cannot be any synchronization problems.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n gcc-%{version}-%{DATE} -a 1 -a 2
|
%setup -q -n gcc-%{version}-%{DATE} -a 1 -a 2
|
||||||
%patch0 -p0 -b .hack~
|
%patch0 -p0 -b .hack~
|
||||||
@ -1210,6 +1229,82 @@ done)
|
|||||||
rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
|
rm -f rpm.doc/changelogs/gcc/ChangeLog.[1-9]
|
||||||
find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9
|
find rpm.doc -name \*ChangeLog\* | xargs bzip2 -9
|
||||||
|
|
||||||
|
# Get the annobin sources. Note these are not added to the rpm as SOURCE4
|
||||||
|
# because if they were the build phase would try to include them as part of
|
||||||
|
# gcc itself, and this causes problems. Instead we locate the sources in
|
||||||
|
# the buildroot. They should have been put there when annobin was installed.
|
||||||
|
|
||||||
|
pushd %{_builddir}
|
||||||
|
|
||||||
|
%global annobin_source_dir %{_usrsrc}/annobin
|
||||||
|
|
||||||
|
if [ -d %{annobin_source_dir} ]
|
||||||
|
then
|
||||||
|
# Unpack the sources.
|
||||||
|
echo "Unpacking annobin sources"
|
||||||
|
rm -fr annobin-*
|
||||||
|
tar xvf %{annobin_source_dir}/latest-annobin.tar.xz
|
||||||
|
|
||||||
|
# Setting this as a local symbol because using %%global does not appear to work.
|
||||||
|
annobin_dir=$(find . -maxdepth 1 -type d -name "annobin*")
|
||||||
|
|
||||||
|
# Now build the annobin plugin using the just built compiler.
|
||||||
|
echo "annobin directory = ${annobin_dir}"
|
||||||
|
cd ${annobin_dir}
|
||||||
|
|
||||||
|
# Change the plugin so that it generates "nop" instead of ".nop" instructions.
|
||||||
|
sed -e "s/\.nop/nop/" -i gcc-plugin/annobin.cc
|
||||||
|
|
||||||
|
# Work out where this version of gcc stores its plugins.
|
||||||
|
%global ANNOBIN_GCC_PLUGIN_DIR %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin
|
||||||
|
|
||||||
|
CONFIG_ARGS="--quiet"
|
||||||
|
CONFIG_ARGS="$CONFIG_ARGS --with-gcc-plugin-dir=%{ANNOBIN_GCC_PLUGIN_DIR}"
|
||||||
|
CONFIG_ARGS="$CONFIG_ARGS --without-annocheck"
|
||||||
|
CONFIG_ARGS="$CONFIG_ARGS --without-tests"
|
||||||
|
CONFIG_ARGS="$CONFIG_ARGS --disable-rpath"
|
||||||
|
|
||||||
|
comp_dir="%{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/gcc/"
|
||||||
|
ccompiler="%{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/gcc/xgcc -B $comp_dir"
|
||||||
|
cxxcompiler="%{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/gcc/xg++ -B $comp_dir"
|
||||||
|
|
||||||
|
comp_flags="%build_cflags"
|
||||||
|
comp_flags="$comp_flags -I %{_builddir}/gcc-%{version}-%{DATE}/gcc"
|
||||||
|
comp_flags="$comp_flags -I %{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/gcc/"
|
||||||
|
comp_flags="$comp_flags -I %{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/include"
|
||||||
|
comp_flags="$comp_flags -I %{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/include/%{gcc_target_platform}"
|
||||||
|
comp_flags="$comp_flags -I %{_builddir}/gcc-%{version}-%{DATE}/libstdc++-v3/libsupc++"
|
||||||
|
comp_flags="$comp_flags -I %{_builddir}/gcc-%{version}-%{DATE}/include"
|
||||||
|
comp_flags="$comp_flags -I %{_builddir}/gcc-%{version}-%{DATE}/libcpp/include"
|
||||||
|
|
||||||
|
ld_flags="%build_ldflags"
|
||||||
|
ld_flags="$ld_flags -L%{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/libstdc++-v3/.libs"
|
||||||
|
ld_flags="$ld_flags -L%{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/.libs"
|
||||||
|
ld_flags="$ld_flags -L%{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/src/.libs"
|
||||||
|
ld_flags="$ld_flags -L%{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/libstdc++-v3/libsupc++/.libs"
|
||||||
|
ld_flags="$ld_flags -L%{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/%{gcc_target_platform}/libstdc++-v3/libsupc++/.libs"
|
||||||
|
ld_flags="$ld_flags -L%{_builddir}/gcc-%{version}-%{DATE}/obj-%{gcc_target_platform}/%{gcc_target_platform}/libgcc/.libs"
|
||||||
|
|
||||||
|
# libtool works with CFLAGS but ignores LDFLAGS, so we have to combine them.
|
||||||
|
comp_flags="$comp_flags $ld_flags"
|
||||||
|
|
||||||
|
echo "Configuring the annobin plugin"
|
||||||
|
CC="${ccompiler}" CFLAGS="${comp_flags}" \
|
||||||
|
CXX="${cxxcompiler}" CXXFLAGS="${comp_flags}" \
|
||||||
|
LDFLAGS="${ld_flags}" \
|
||||||
|
./configure ${CONFIG_ARGS} || cat config.log
|
||||||
|
|
||||||
|
echo "Building the annobin plugin"
|
||||||
|
make
|
||||||
|
|
||||||
|
echo "Annobin plugin build complete"
|
||||||
|
else
|
||||||
|
echo "Unable to locate annobin sources (expected to find: %{annobin_source_dir}/latest-annobin.tar.xz)"
|
||||||
|
echo "These should be provided by installing the annobin package"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
popd
|
||||||
|
|
||||||
%install
|
%install
|
||||||
rm -rf %{buildroot}
|
rm -rf %{buildroot}
|
||||||
|
|
||||||
@ -1989,6 +2084,20 @@ rm -f %{buildroot}%{mandir}/man3/ffi*
|
|||||||
# Help plugins find out nvra.
|
# Help plugins find out nvra.
|
||||||
echo gcc-%{version}-%{release}.%{_arch} > $FULLPATH/rpmver
|
echo gcc-%{version}-%{release}.%{_arch} > $FULLPATH/rpmver
|
||||||
|
|
||||||
|
# Rename the annobin plugin to gcc-annobin.
|
||||||
|
mkdir -p %{buildroot}%{ANNOBIN_GCC_PLUGIN_DIR}
|
||||||
|
pushd %{buildroot}%{ANNOBIN_GCC_PLUGIN_DIR}
|
||||||
|
|
||||||
|
annobin_dir=$(find %{_builddir} -maxdepth 1 -type d -name "annobin*")
|
||||||
|
echo "annobin directory = ${annobin_dir}"
|
||||||
|
|
||||||
|
cp ${annobin_dir}/gcc-plugin/.libs/annobin.so.0.0.0 gcc-annobin.so.0.0.0
|
||||||
|
|
||||||
|
rm -f gcc-annobin.so.0 gcc-annobin.so
|
||||||
|
ln -s gcc-annobin.so.0.0.0 gcc-annobin.so.0
|
||||||
|
ln -s gcc-annobin.so.0.0.0 gcc-annobin.so
|
||||||
|
popd
|
||||||
|
|
||||||
%check
|
%check
|
||||||
cd obj-%{gcc_target_platform}
|
cd obj-%{gcc_target_platform}
|
||||||
|
|
||||||
@ -3184,7 +3293,18 @@ fi
|
|||||||
%{_prefix}/%{_lib}/libgomp-plugin-nvptx.so.*
|
%{_prefix}/%{_lib}/libgomp-plugin-nvptx.so.*
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%files plugin-annobin
|
||||||
|
%{ANNOBIN_GCC_PLUGIN_DIR}/gcc-annobin.so
|
||||||
|
%{ANNOBIN_GCC_PLUGIN_DIR}/gcc-annobin.so.0
|
||||||
|
%{ANNOBIN_GCC_PLUGIN_DIR}/gcc-annobin.so.0.0.0
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Apr 01 2022 Marek Polacek <polacek@redhat.com> 8.5.0-12
|
||||||
|
- Fix nop generation in annobin plugin. (#2067150)
|
||||||
|
|
||||||
|
* Wed Mar 30 2022 Marek Polacek <polacek@redhat.com> 8.5.0-11
|
||||||
|
- Add a plugin-annobin subpackage. (#2067150)
|
||||||
|
|
||||||
* Thu Jan 27 2022 Marek Polacek <polacek@redhat.com> 8.5.0-10
|
* Thu Jan 27 2022 Marek Polacek <polacek@redhat.com> 8.5.0-10
|
||||||
- fix typo in the cprop_hardreg patch (#2028609)
|
- fix typo in the cprop_hardreg patch (#2028609)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user