Accepting request 442025 from home:marxin:gcc-devel

OBS-URL: https://build.opensuse.org/request/show/442025
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/gcc7?expand=0&rev=1
This commit is contained in:
Richard Biener 2016-11-28 08:25:49 +00:00 committed by Git OBS Bridge
commit 9e432acb0d
63 changed files with 20842 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

View File

@ -0,0 +1,31 @@
IMPORTANT: Please change gcc.spec.in and then run ./pre_checkin.sh!
Do not change gcc.spec directly!
Since GCC comes with a testsuite that runs for quite a long time and
that test suite also contains some known failures, we should run the
testsuite of GCC whenever the compiler is changed to ensure a high
quality compiler.
The package is now split into multiple parts, gcc$VER,
gcc$VER-testresults and libffi$VER (plus various spec files for
cross and icecream cross compilers). The testsuite is run from
gcc$VER-testresults, a dummy package with the testresults, gcc$VER-testresults,
is generated from it which contains testing logfiles and summary.
Before checking in a new compiler, please do the following steps as QA
measure to check that the new compiler does not introduce any new
failures:
- Run mbuild for all archs for at least the gcc$VER and the gcc$VER-testresults
subpackages
- When mbuild is finished, call
/suse/rguenther/bin/compare-testresults.sh mbuild-directory
(for the gcc$VER-testresults build).
The output of that script should not show any failures. If it does,
please fix them or discuss this with the gcc package maintainers.
- Do not remove this file.
Thanks,
Your GCC packagers.

28
_constraints Normal file
View File

@ -0,0 +1,28 @@
<constraints>
<hardware>
<disk>
<size unit="G">16</size>
</disk>
</hardware>
<overwrite>
<conditions>
<package>gcc7-testresults</package>
</conditions>
<hardware>
<physicalmemory>
<size unit="G">3</size>
</physicalmemory>
</hardware>
</overwrite>
<overwrite>
<conditions>
<package>gcc7</package>
</conditions>
<hardware>
<processors>4</processors>
<physicalmemory>
<size unit="G">2</size>
</physicalmemory>
</hardware>
</overwrite>
</constraints>

149
change_spec Normal file
View File

@ -0,0 +1,149 @@
#!/bin/bash
do_crosses=1
do_optional_compiler_languages=0
do_libffi=0
rm -f libffi*.spec libffi*.changes gcc*-testresults.spec gcc*-testresults.changes gcc*.spec cross*.spec cross*.changes
# Default is to generate the normal gcc package
# unless a parameter is given. In case that it is '-*',
# that parameter will be used as suffix for the package name
# and as suffix for the install path (/opt/gccSUFFIX)
# In case that it is '[0-9]*', that parameter will be used
# as a suffix for a versioned package name.
if [ $# -lt 1 ]; then
echo No package suffix given
outfile=gcc.spec
else
case $1 in
[0-9]*)
base_ver=$1
outfile=gcc$1.spec
;;
*)
echo Invalid package suffix
exit 1
;;
esac
fi
: > $outfile
if test "$do_optional_compiler_languages" = "1"; then
echo '%define build_optional_compiler_languages 1' >> $outfile
fi
sed -e 's%@base_ver@%'$base_ver'%g' \
gcc.spec.in \
| sed -n -e '{
/^# PACKAGE-BEGIN/h
/^# PACKAGE-BEGIN/,/^# PACKAGE-END/H
/^# PACKAGE-BEGIN/,/^# PACKAGE-END/!p
/^# PACKAGE-END/{g
s/@variant@//g
p
g
s/@variant@/-32bit/g
p
g
s/@variant@/-64bit/g
p
}
}' >> $outfile
if test "$do_libffi" = "1"; then
echo '%define building_libffi 1' > libffi-gcc$base_ver.spec
sed -e '/^# LIBFFI-DELETE-BEGIN/,/^# LIBFFI-DELETE-END/d;s/^Name:[[:space:]]*gcc/Name: libffi-gcc/g' \
gcc.spec.in \
| sed -e 's%@base_ver@%'$base_ver'%g' \
| sed -n -e '{
/^# PACKAGE-BEGIN/h
/^# PACKAGE-BEGIN/,/^# PACKAGE-END/H
/^# PACKAGE-BEGIN/,/^# PACKAGE-END/!p
/^# PACKAGE-END/{g
s/@variant@//g
p
g
s/@variant@/-32bit/g
p
g
s/@variant@/-64bit/g
p
}
}' \
>> libffi-gcc$base_ver.spec
test -f gcc$base_ver.changes \
&& ( ln -f gcc$base_ver.changes libffi-gcc$base_ver.changes; )
fi
echo '%define building_testsuite 1' > gcc$base_ver-testresults.spec
echo '%define run_tests 1' >> gcc$base_ver-testresults.spec
sed -e '/^# GCC-TESTSUITE-DELETE-BEGIN/,/^# GCC-TESTSUITE-DELETE-END/d;s/-n gcc@base_ver@-testresults$//g;s/^Name:[[:space:]]*gcc@base_ver@/Name: gcc@base_ver@-testresults/g' \
gcc.spec.in \
| sed -e 's%@base_ver@%'$base_ver'%g' \
>> gcc$base_ver-testresults.spec
test -f gcc$base_ver.changes \
&& ( ln -f gcc$base_ver.changes gcc$base_ver-testresults.changes; )
add_cross() {
local pkgname="$1"; shift
local rpmtarget="$1"; shift
local triplet="$1"; shift
echo "%define pkgname $pkgname" > $pkgname.spec
echo "%define cross_arch $rpmtarget" >> $pkgname.spec
echo "%define gcc_target_arch $triplet" >> $pkgname.spec
echo "$@" >> $pkgname.spec
{ sed -n -e '1,/COMMON-BEGIN/p' cross.spec.in
sed -n -e '/COMMON-BEGIN/,/COMMON-END/p' $outfile
sed -n -e '/COMMON-END/,$p' cross.spec.in; } |
sed -e "s#@base_ver@#$base_ver#" \
-e "s/^\(ExclusiveArch.*\) $rpmtarget[^ \r]*/\1 /" \
>> $pkgname.spec
test -f gcc$base_ver.changes && ln -f gcc$base_ver.changes $pkgname.changes
}
add_newlib_cross() {
add_cross $1-bootstrap $2 $3 "%define gcc_target_newlib 1
%define gcc_libc_bootstrap 1"
add_cross $1 $2 $3 "%define gcc_target_newlib 1"
}
# We now support "proper" cross-compilers to suse targets via a
# cross-glibc package, enable that via for example
#
# add_cross cross-aarch64-gcc$base_ver aarch64 aarch64-suse-linux
#
# For now keep the old way of doing things
if test "$do_crosses" = 1 ; then
add_cross cross-aarch64-gcc$base_ver aarch64 aarch64-suse-linux %define gcc_icecream 1
add_cross cross-armv6hl-gcc$base_ver armv6hl armv6hl-suse-linux-gnueabi %define gcc_icecream 1
add_cross cross-armv7hl-gcc$base_ver armv7hl armv7hl-suse-linux-gnueabi %define gcc_icecream 1
add_cross cross-arm-gcc$base_ver arm arm-suse-linux-gnueabi %define gcc_icecream 0
add_cross cross-avr-gcc$base_ver avr avr-suse-linux %define gcc_icecream 1
add_cross cross-i386-gcc$base_ver i386 i586-suse-linux %define gcc_icecream 1
add_cross cross-x86_64-gcc$base_ver x86_64 x86_64-suse-linux %define gcc_icecream 1
add_cross cross-s390x-gcc$base_ver s390x s390x-suse-linux %define gcc_icecream 1
add_cross cross-sparc-gcc$base_ver sparcv9 sparc-suse-linux %define gcc_icecream 1
add_cross cross-sparc64-gcc$base_ver sparc64 sparc64-suse-linux %define gcc_icecream 1
add_cross cross-ppc64-gcc$base_ver ppc64 powerpc64-suse-linux %define gcc_icecream 1
add_cross cross-ppc64le-gcc$base_ver ppc64le powerpc64le-suse-linux %define gcc_icecream 1
add_cross cross-m68k-gcc$base_ver m68k m68k-suse-linux %define gcc_icecream 1
add_cross cross-mips-gcc$base_ver mips mips-suse-linux %define gcc_icecream 1
add_cross cross-hppa-gcc$base_ver hppa hppa-suse-linux %define gcc_icecream 1
add_newlib_cross cross-epiphany-gcc$base_ver epiphany epiphany-elf
add_newlib_cross cross-rx-gcc$base_ver rx rx-elf
#add_newlib_cross cross-rl78-gcc$base_ver rl78 rl78-elf
#add_newlib_cross cross-nds32le-gcc$base_ver nds32le nds32le-elf
fi
for f in *.spec; do
sed -i -e '/^# .*-\(BEGIN\|END\)$/d' $f
done
osc service localrun format_spec_file
exit 0

38
check-build.sh Normal file
View File

@ -0,0 +1,38 @@
#!/bin/bash
# Copyright (c) 2003,2005 SUSE Linux Products GmbH, Germany. All rights reserved.
#
# Authors: Thorsten Kukuk <kukuk@suse.de>
#
# this script use the following variable(s):
#
# - $BUILD_BASENAME
#
case $BUILD_BASENAME in
*ppc*)
# Our biarch 32-bit compiler needs to be build on a 64-bit machine,
# otherwise some configure checks fail.
# Note that we cannot use uname here since powerpc32 was invoked
# already.
grep 'series64\|ppc64' /proc/version > /dev/null
if [ $? -ne 0 ] ; then
echo "build does not work on `hostname` for gcc"
exit 1
fi
;;
*x86_64*)
#if [ `ulimit -v` -le 740000 ] ; then
# echo "build does not work on ("`hostname`" for gcc)"
# exit 1
#fi
if [ `getconf _NPROCESSORS_CONF` -lt 2 ] ; then
echo "build does not work on `hostname` for gcc"
exit 1
fi
;;
*)
;;
esac
exit 0

221
cross-aarch64-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-aarch64-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-aarch64-gcc7
%define cross_arch aarch64
%define gcc_target_arch aarch64-suse-linux
%define gcc_icecream 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-arm-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-arm-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-arm-gcc7
%define cross_arch arm
%define gcc_target_arch arm-suse-linux-gnueabi
%define gcc_icecream 0
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-armv6hl-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-armv6hl-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-armv6hl-gcc7
%define cross_arch armv6hl
%define gcc_target_arch armv6hl-suse-linux-gnueabi
%define gcc_icecream 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-armv7hl-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-armv7hl-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-armv7hl-gcc7
%define cross_arch armv7hl
%define gcc_target_arch armv7hl-suse-linux-gnueabi
%define gcc_icecream 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-avr-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-avr-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-avr-gcc7
%define cross_arch avr
%define gcc_target_arch avr-suse-linux
%define gcc_icecream 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

View File

@ -0,0 +1,434 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-epiphany-gcc7-bootstrap
%define cross_arch epiphany
%define gcc_target_arch epiphany-elf
%define gcc_target_newlib 1
%define gcc_libc_bootstrap 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-epiphany-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-epiphany-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-epiphany-gcc7
%define cross_arch epiphany
%define gcc_target_arch epiphany-elf
%define gcc_target_newlib 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-hppa-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-hppa-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-hppa-gcc7
%define cross_arch hppa
%define gcc_target_arch hppa-suse-linux
%define gcc_icecream 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-i386-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-i386-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-i386-gcc7
%define cross_arch i386
%define gcc_target_arch i586-suse-linux
%define gcc_icecream 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-m68k-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-m68k-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-m68k-gcc7
%define cross_arch m68k
%define gcc_target_arch m68k-suse-linux
%define gcc_icecream 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-mips-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-mips-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-mips-gcc7
%define cross_arch mips
%define gcc_target_arch mips-suse-linux
%define gcc_icecream 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-ppc64-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-ppc64-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-ppc64-gcc7
%define cross_arch ppc64
%define gcc_target_arch powerpc64-suse-linux
%define gcc_icecream 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-ppc64le-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-ppc64le-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-ppc64le-gcc7
%define cross_arch ppc64le
%define gcc_target_arch powerpc64le-suse-linux
%define gcc_icecream 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

View File

@ -0,0 +1,434 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-rx-gcc7-bootstrap
%define cross_arch rx
%define gcc_target_arch rx-elf
%define gcc_target_newlib 1
%define gcc_libc_bootstrap 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-rx-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-rx-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-rx-gcc7
%define cross_arch rx
%define gcc_target_arch rx-elf
%define gcc_target_newlib 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-s390x-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-s390x-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-s390x-gcc7
%define cross_arch s390x
%define gcc_target_arch s390x-suse-linux
%define gcc_icecream 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-sparc-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-sparc-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-sparc-gcc7
%define cross_arch sparcv9
%define gcc_target_arch sparc-suse-linux
%define gcc_icecream 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-sparc64-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-sparc64-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-sparc64-gcc7
%define cross_arch sparc64
%define gcc_target_arch sparc64-suse-linux
%define gcc_icecream 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

221
cross-x86_64-gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

433
cross-x86_64-gcc7.spec Normal file
View File

@ -0,0 +1,433 @@
#
# spec file for package
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define pkgname cross-x86_64-gcc7
%define cross_arch x86_64
%define gcc_target_arch x86_64-suse-linux
%define gcc_icecream 1
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: The GNU C Compiler and Support Files
License: GPL-3.0+
Group: Development/Languages/C and C++
%description
Core package for the GNU Compiler Collection, including the C language
frontend.
Language frontends other than C are split to different sub-packages,
namely gcc-ada, gcc-c++, gcc-fortran, gcc-objc and
gcc-obj-c++.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
%changelog

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:32d3f3bd931aef0b5d780a9d8a20b5e0ca9ff67d187c2ef299444687698029af
size 74674882

51
gcc-add-defaultsspec.diff Normal file
View File

@ -0,0 +1,51 @@
Index: gcc/gcc.c
===================================================================
--- gcc/gcc.c.orig 2013-11-26 15:41:59.000000000 +0100
+++ gcc/gcc.c 2013-11-26 16:40:35.780548125 +0100
@@ -258,6 +258,7 @@ static const char *replace_outfile_spec_
static const char *remove_outfile_spec_function (int, const char **);
static const char *version_compare_spec_function (int, const char **);
static const char *include_spec_function (int, const char **);
+static const char *include_noerr_spec_function (int, const char **);
static const char *find_file_spec_function (int, const char **);
static const char *find_plugindir_spec_function (int, const char **);
static const char *print_asm_header_spec_function (int, const char **);
@@ -1357,6 +1358,7 @@ static const struct spec_function static
{ "remove-outfile", remove_outfile_spec_function },
{ "version-compare", version_compare_spec_function },
{ "include", include_spec_function },
+ { "include_noerr", include_noerr_spec_function },
{ "find-file", find_file_spec_function },
{ "find-plugindir", find_plugindir_spec_function },
{ "print-asm-header", print_asm_header_spec_function },
@@ -6480,6 +6482,8 @@ main (int argc, char **argv)
if (access (specs_file, R_OK) == 0)
read_specs (specs_file, true, false);
+ do_self_spec ("%:include_noerr(defaults.spec)%(default_spec)");
+
/* Process any configure-time defaults specified for the command line
options, via OPTION_DEFAULT_SPECS. */
for (i = 0; i < ARRAY_SIZE (option_default_specs); i++)
@@ -8401,6 +8405,21 @@ get_random_number (void)
return ret ^ getpid ();
}
+static const char *
+include_noerr_spec_function (int argc, const char **argv)
+{
+ char *file;
+
+ if (argc != 1)
+ abort ();
+
+ file = find_a_file (&startfile_prefixes, argv[0], R_OK, 0);
+ if (file)
+ read_specs (file, FALSE, TRUE);
+
+ return NULL;
+}
+
/* %:compare-debug-dump-opt spec function. Save the last argument,
expected to be the last -fdump-final-insns option, or generate a
temporary. */

102
gcc-dir-version.patch Normal file
View File

@ -0,0 +1,102 @@
Index: gcc/Makefile.in
===================================================================
--- gcc/Makefile.in.orig 2016-08-30 12:17:09.065533526 +0200
+++ gcc/Makefile.in 2016-08-30 12:18:38.402596792 +0200
@@ -828,12 +828,14 @@ GTM_H = tm.h $(tm_file_list) in
TM_H = $(GTM_H) insn-flags.h $(OPTIONS_H)
# Variables for version information.
-BASEVER := $(srcdir)/BASE-VER # 4.x.y
+BASEVER := $(srcdir)/BASE-VER # 5
+FULLVER := $(srcdir)/FULL-VER # 5.x.y
DEVPHASE := $(srcdir)/DEV-PHASE # experimental, prerelease, ""
DATESTAMP := $(srcdir)/DATESTAMP # YYYYMMDD or empty
REVISION := $(srcdir)/REVISION # [BRANCH revision XXXXXX]
BASEVER_c := $(shell cat $(BASEVER))
+FULLVER_c := $(shell cat $(FULLVER))
DEVPHASE_c := $(shell cat $(DEVPHASE))
DATESTAMP_c := $(shell cat $(DATESTAMP))
@@ -857,6 +859,7 @@ PATCHLEVEL_c := \
# immediately after the comma in the $(if ...) constructs is
# significant - do not remove it.
BASEVER_s := "\"$(BASEVER_c)\""
+FULLVER_s := "\"$(FULLVER_c)\""
DEVPHASE_s := "\"$(if $(DEVPHASE_c), ($(DEVPHASE_c)))\""
DATESTAMP_s := \
"\"$(if $(DEVPHASE_c)$(filter-out 0,$(PATCHLEVEL_c)), $(DATESTAMP_c))\""
@@ -2074,7 +2077,7 @@ s-options-h: optionlist $(srcdir)/opt-fu
dumpvers: dumpvers.c
-CFLAGS-version.o += -DBASEVER=$(BASEVER_s) -DDATESTAMP=$(DATESTAMP_s) \
+CFLAGS-version.o += -DBASEVER=$(FULLVER_s) -DDATESTAMP=$(DATESTAMP_s) \
-DREVISION=$(REVISION_s) \
-DDEVPHASE=$(DEVPHASE_s) -DPKGVERSION=$(PKGVERSION_s) \
-DBUGURL=$(BUGURL_s)
@@ -2084,10 +2087,10 @@ version.o: $(REVISION) $(DATESTAMP) $(BA
CFLAGS-lto-compress.o += $(ZLIBINC)
bversion.h: s-bversion; @true
-s-bversion: BASE-VER
- echo "#define BUILDING_GCC_MAJOR `echo $(BASEVER_c) | sed -e 's/^\([0-9]*\).*$$/\1/'`" > bversion.h
- echo "#define BUILDING_GCC_MINOR `echo $(BASEVER_c) | sed -e 's/^[0-9]*\.\([0-9]*\).*$$/\1/'`" >> bversion.h
- echo "#define BUILDING_GCC_PATCHLEVEL `echo $(BASEVER_c) | sed -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\)$$/\1/'`" >> bversion.h
+s-bversion: FULL-VER
+ echo "#define BUILDING_GCC_MAJOR `echo $(FULLVER_c) | sed -e 's/^\([0-9]*\).*$$/\1/'`" > bversion.h
+ echo "#define BUILDING_GCC_MINOR `echo $(FULLVER_c) | sed -e 's/^[0-9]*\.\([0-9]*\).*$$/\1/'`" >> bversion.h
+ echo "#define BUILDING_GCC_PATCHLEVEL `echo $(FULLVER_c) | sed -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\)$$/\1/'`" >> bversion.h
echo "#define BUILDING_GCC_VERSION (BUILDING_GCC_MAJOR * 1000 + BUILDING_GCC_MINOR)" >> bversion.h
$(STAMP) s-bversion
@@ -2476,9 +2479,9 @@ build/%.o : # dependencies provided by
## build/version.o is compiled by the $(COMPILER_FOR_BUILD) but needs
## several C macro definitions, just like version.o
build/version.o: version.c version.h \
- $(REVISION) $(DATESTAMP) $(BASEVER) $(DEVPHASE)
+ $(REVISION) $(DATESTAMP) $(FULLVER) $(DEVPHASE)
$(COMPILER_FOR_BUILD) -c $(BUILD_COMPILERFLAGS) $(BUILD_CPPFLAGS) \
- -DBASEVER=$(BASEVER_s) -DDATESTAMP=$(DATESTAMP_s) \
+ -DBASEVER=$(FULLVER_s) -DDATESTAMP=$(DATESTAMP_s) \
-DREVISION=$(REVISION_s) \
-DDEVPHASE=$(DEVPHASE_s) -DPKGVERSION=$(PKGVERSION_s) \
-DBUGURL=$(BUGURL_s) -o $@ $<
@@ -2701,8 +2704,8 @@ PREPROCESSOR_DEFINES = \
-DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \
@TARGET_SYSTEM_ROOT_DEFINE@
-CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(BASEVER_s)
-cppbuiltin.o: $(BASEVER)
+CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(FULLVER_s)
+cppbuiltin.o: $(FULLVER)
CFLAGS-cppdefault.o += $(PREPROCESSOR_DEFINES)
@@ -2718,8 +2721,8 @@ build/gcov-iov$(build_exeext): build/gco
build/gcov-iov.o -o $@
gcov-iov.h: s-iov; @true
-s-iov: build/gcov-iov$(build_exeext) $(BASEVER) $(DEVPHASE)
- build/gcov-iov$(build_exeext) '$(BASEVER_c)' '$(DEVPHASE_c)' \
+s-iov: build/gcov-iov$(build_exeext) $(FULLVER) $(DEVPHASE)
+ build/gcov-iov$(build_exeext) '$(FULLVER_c)' '$(DEVPHASE_c)' \
> tmp-gcov-iov.h
$(SHELL) $(srcdir)/../move-if-change tmp-gcov-iov.h gcov-iov.h
$(STAMP) s-iov
Index: gcc/cppbuiltin.c
===================================================================
--- gcc/cppbuiltin.c.orig 2016-08-30 12:17:09.069533573 +0200
+++ gcc/cppbuiltin.c 2016-08-30 12:17:14.505598282 +0200
@@ -36,9 +36,9 @@ parse_basever (int *major, int *minor, i
static int s_major = -1, s_minor, s_patchlevel;
if (s_major == -1)
- if (sscanf (BASEVER, "%d.%d.%d", &s_major, &s_minor, &s_patchlevel) != 3)
+ if (sscanf (version_string, "%d.%d.%d", &s_major, &s_minor, &s_patchlevel) != 3)
{
- sscanf (BASEVER, "%d.%d", &s_major, &s_minor);
+ sscanf (version_string, "%d.%d", &s_major, &s_minor);
s_patchlevel = 0;
}

2499
gcc.spec.in Normal file

File diff suppressed because it is too large Load Diff

91
gcc41-ppc32-retaddr.patch Normal file
View File

@ -0,0 +1,91 @@
2005-11-28 Jakub Jelinek <jakub@redhat.com>
* config/rs6000/rs6000.c (rs6000_return_addr): If COUNT == 0,
read word RETURN_ADDRESS_OFFSET bytes above arg_pointer_rtx
instead of doing an extran indirection from frame_pointer_rtx.
* gcc.dg/20051128-1.c: New test.
Index: gcc/config/rs6000/rs6000.c
===================================================================
--- gcc/config/rs6000/rs6000.c.orig 2013-11-26 15:42:33.000000000 +0100
+++ gcc/config/rs6000/rs6000.c 2013-11-26 16:44:14.566089231 +0100
@@ -20878,18 +20878,22 @@ rs6000_return_addr (int count, rtx frame
if (count != 0
|| ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN) && flag_pic))
{
+ rtx x;
cfun->machine->ra_needs_full_frame = 1;
- return
- gen_rtx_MEM
- (Pmode,
- memory_address
- (Pmode,
- plus_constant (Pmode,
- copy_to_reg
- (gen_rtx_MEM (Pmode,
- memory_address (Pmode, frame))),
- RETURN_ADDRESS_OFFSET)));
+ if (count == 0)
+ {
+ gcc_assert (frame == frame_pointer_rtx);
+ x = arg_pointer_rtx;
+ }
+ else
+ {
+ x = memory_address (Pmode, frame);
+ x = copy_to_reg (gen_rtx_MEM (Pmode, x));
+ }
+
+ x = plus_constant (Pmode, x, RETURN_ADDRESS_OFFSET);
+ return gen_rtx_MEM (Pmode, memory_address (Pmode, x));
}
cfun->machine->ra_need_lr = 1;
Index: gcc/testsuite/gcc.dg/20051128-1.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gcc/testsuite/gcc.dg/20051128-1.c 2013-11-26 16:44:14.566089231 +0100
@@ -0,0 +1,41 @@
+/* { dg-do run } */
+/* { dg-options "-O2 -fpic" } */
+
+extern void exit (int);
+extern void abort (void);
+
+int b;
+
+struct A
+{
+ void *pad[147];
+ void *ra, *h;
+ long o;
+};
+
+void
+__attribute__((noinline))
+foo (struct A *a, void *x)
+{
+ __builtin_memset (a, 0, sizeof (a));
+ if (!b)
+ exit (0);
+}
+
+void
+__attribute__((noinline))
+bar (void)
+{
+ struct A a;
+
+ __builtin_unwind_init ();
+ foo (&a, __builtin_return_address (0));
+}
+
+int
+main (void)
+{
+ bar ();
+ abort ();
+ return 0;
+}

View File

@ -0,0 +1,13 @@
Index: libgcc/Makefile.in
===================================================================
--- libgcc/Makefile.in.orig 2015-12-14 11:33:03.225790694 +0100
+++ libgcc/Makefile.in 2015-12-17 15:09:45.415136693 +0100
@@ -288,7 +288,7 @@ CRTSTUFF_CFLAGS = -O2 $(GCC_CFLAGS) $(IN
$(NO_PIE_CFLAGS) -finhibit-size-directive -fno-inline -fno-exceptions \
-fno-zero-initialized-in-bss -fno-toplevel-reorder -fno-tree-vectorize \
-fbuilding-libgcc -fno-stack-protector $(FORCE_EXPLICIT_EH_REGISTRY) \
- $(INHIBIT_LIBC_CFLAGS)
+ $(INHIBIT_LIBC_CFLAGS) -fno-unwind-tables -fno-asynchronous-unwind-tables
# Extra flags to use when compiling crt{begin,end}.o.
CRTSTUFF_T_CFLAGS =

View File

@ -0,0 +1,676 @@
#! /bin/sh -e
# DP: Allow transformations on info file names. Reference the
# DP: transformed info file names in the texinfo files.
dir=
if [ $# -eq 3 -a "$2" = '-d' ]; then
pdir="-d $3"
dir="$3/"
elif [ $# -ne 1 ]; then
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
fi
case "$1" in
-patch)
patch $pdir -f --no-backup-if-mismatch -p0 < $0
;;
-unpatch)
patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
esac
exit 0
gcc/ChangeLog:
2004-02-17 Matthias Klose <doko@debian.org>
* Makefile.in: Allow transformations on info file names.
Define MAKEINFODEFS, macros to pass transformated info file
names to makeinfo.
* doc/cpp.texi: Use macros defined in MAKEINFODEFS for references.
* doc/cppinternals.texi: Likewise.
* doc/extend.texi: Likewise.
* doc/gcc.texi: Likewise.
* doc/gccint.texi: Likewise.
* doc/invoke.texi: Likewise.
* doc/libgcc.texi: Likewise.
* doc/makefile.texi: Likewise.
* doc/passes.texi: Likewise.
* doc/sourcebuild.texi: Likewise.
* doc/standards.texi: Likewise.
* doc/trouble.texi: Likewise.
gcc/fortran/ChangeLog:
* Make-lang.in: Allow transformations on info file names.
Pass macros of transformated info file defined in MAKEINFODEFS
names to makeinfo.
* gfortran.texi: Use macros defined in MAKEINFODEFS for references.
gcc/java/ChangeLog:
* Make-lang.in: Allow transformations on info file names.
Pass macros of transformated info file defined in MAKEINFODEFS
names to makeinfo.
* gcj.texi: Use macros defined in MAKEINFODEFS for references.
---
gcc/Makefile.in | 74 ++++++++++++++++++++++++++++++++++++----------
gcc/ada/gnat-style.texi | 2 -
gcc/ada/gnat_rm.texi | 2 -
gcc/ada/gnat_ugn.texi | 2 -
gcc/doc/cpp.texi | 2 -
gcc/doc/cppinternals.texi | 2 -
gcc/doc/extend.texi | 2 -
gcc/doc/gcc.texi | 8 ++--
gcc/doc/gccint.texi | 4 +-
gcc/doc/install.texi | 2 -
gcc/doc/invoke.texi | 10 +++---
gcc/doc/libgcc.texi | 2 -
gcc/doc/makefile.texi | 2 -
gcc/doc/passes.texi | 2 -
gcc/doc/standards.texi | 4 +-
gcc/fortran/Make-lang.in | 11 +++---
gcc/fortran/gfortran.texi | 2 -
gcc/java/Make-lang.in | 19 +++++++++--
gcc/java/gcj.texi | 20 ++++++------
libgomp/Makefile.am | 13 ++++----
libgomp/Makefile.in | 14 ++++----
libgomp/libgomp.texi | 2 -
22 files changed, 131 insertions(+), 70 deletions(-)
Index: gcc/Makefile.in
===================================================================
--- gcc/Makefile.in.orig 2016-03-07 14:14:30.541648040 +0100
+++ gcc/Makefile.in 2016-03-07 14:14:30.557648222 +0100
@@ -2962,8 +2962,27 @@ install-no-fixedincludes:
doc: $(BUILD_INFO) $(GENERATED_MANPAGES)
-INFOFILES = doc/cpp.info doc/gcc.info doc/gccint.info \
- doc/gccinstall.info doc/cppinternals.info
+INFO_CPP_NAME = $(shell echo cpp|sed '$(program_transform_name)')
+INFO_GCC_NAME = $(shell echo gcc|sed '$(program_transform_name)')
+INFO_GXX_NAME = $(shell echo g++|sed '$(program_transform_name)')
+INFO_GCCINT_NAME = $(shell echo gccint|sed '$(program_transform_name)')
+INFO_GCCINSTALL_NAME = $(shell echo gccinstall|sed '$(program_transform_name)')
+INFO_CPPINT_NAME = $(shell echo cppinternals|sed '$(program_transform_name)')
+
+INFO_FORTRAN_NAME = $(shell echo gfortran|sed '$(program_transform_name)')
+INFO_GCJ_NAME = $(shell echo gcj|sed '$(program_transform_name)')
+
+INFOFILES = doc/$(INFO_CPP_NAME).info doc/$(INFO_GCC_NAME).info \
+ doc/$(INFO_GCCINT_NAME).info \
+ doc/$(INFO_GCCINSTALL_NAME).info doc/$(INFO_CPPINT_NAME).info
+
+MAKEINFODEFS = -D 'fncpp $(INFO_CPP_NAME)' -D 'fngcc $(INFO_GCC_NAME)' \
+ -D 'fngxx $(INFO_GXX_NAME)' \
+ -D 'fngccint $(INFO_GCCINT_NAME)' \
+ -D 'fngccinstall $(INFO_GCCINSTALL_NAME)' \
+ -D 'fncppint $(INFO_CPPINT_NAME)' \
+ -D 'fngfortran $(INFO_FORTRAN_NAME)' \
+ -D 'fngcj $(INFO_GCJ_NAME)'
info: $(INFOFILES) lang.info @GENINSRC@ srcinfo lang.srcinfo
@@ -3018,21 +3037,41 @@ gcc-vers.texi: $(BASEVER) $(DEVPHASE)
# patterns. To use them, put each of the specific targets with its
# specific dependencies but no build commands.
-doc/cpp.info: $(TEXI_CPP_FILES)
-doc/gcc.info: $(TEXI_GCC_FILES)
-doc/gccint.info: $(TEXI_GCCINT_FILES)
-doc/cppinternals.info: $(TEXI_CPPINT_FILES)
-
+# Generic entry to handle info files, which are not renamed (currently Ada)
doc/%.info: %.texi
if [ x$(BUILD_INFO) = xinfo ]; then \
$(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \
-I $(gcc_docdir)/include -o $@ $<; \
fi
+doc/$(INFO_CPP_NAME).info: $(TEXI_CPP_FILES)
+ if [ x$(BUILD_INFO) = xinfo ]; then \
+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
+ -I $(gcc_docdir)/include -o $@ $<; \
+ fi
+
+doc/$(INFO_GCC_NAME).info: $(TEXI_GCC_FILES)
+ if [ x$(BUILD_INFO) = xinfo ]; then \
+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
+ -I $(gcc_docdir)/include -o $@ $<; \
+ fi
+
+doc/$(INFO_GCCINT_NAME).info: $(TEXI_GCCINT_FILES)
+ if [ x$(BUILD_INFO) = xinfo ]; then \
+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
+ -I $(gcc_docdir)/include -o $@ $<; \
+ fi
+
+doc/$(INFO_CPPINT_NAME).info: $(TEXI_CPPINT_FILES)
+ if [ x$(BUILD_INFO) = xinfo ]; then \
+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
+ -I $(gcc_docdir)/include -o $@ $<; \
+ fi
+
# Duplicate entry to handle renaming of gccinstall.info
-doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES)
+doc/$(INFO_GCCINSTALL_NAME).info: $(TEXI_GCCINSTALL_FILES)
if [ x$(BUILD_INFO) = xinfo ]; then \
- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \
+ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \
-I $(gcc_docdir)/include -o $@ $<; \
fi
@@ -3435,11 +3474,11 @@ install-driver: installdirs xgcc$(exeext
# $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir
# to do the install.
install-info:: doc installdirs \
- $(DESTDIR)$(infodir)/cpp.info \
- $(DESTDIR)$(infodir)/gcc.info \
- $(DESTDIR)$(infodir)/cppinternals.info \
- $(DESTDIR)$(infodir)/gccinstall.info \
- $(DESTDIR)$(infodir)/gccint.info \
+ $(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info \
+ $(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info \
+ $(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info \
+ $(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info \
+ $(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info \
lang.install-info
$(DESTDIR)$(infodir)/%.info: doc/%.info installdirs
@@ -3653,8 +3692,11 @@ uninstall: lang.uninstall
-rm -rf $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext)
-rm -rf $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext)
-rm -rf $(DESTDIR)$(man1dir)/cpp$(man1ext)
- -rm -f $(DESTDIR)$(infodir)/cpp.info* $(DESTDIR)$(infodir)/gcc.info*
- -rm -f $(DESTDIR)$(infodir)/cppinternals.info* $(DESTDIR)$(infodir)/gccint.info*
+ -rm -f $(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info*
+ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info*
+ -rm -f $(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info*
+ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info*
+ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info*
for i in ar nm ranlib ; do \
install_name=`echo gcc-$$i|sed '$(program_transform_name)'`$(exeext) ;\
target_install_name=$(target_noncanonical)-`echo gcc-$$i|sed '$(program_transform_name)'`$(exeext) ; \
Index: gcc/ada/gnat-style.texi
===================================================================
--- gcc/ada/gnat-style.texi.orig 2015-12-14 11:33:31.158112093 +0100
+++ gcc/ada/gnat-style.texi 2016-03-07 14:14:30.561648268 +0100
@@ -31,7 +31,7 @@ Texts. A copy of the license is include
@dircategory Software development
@direntry
-* gnat-style: (gnat-style). GNAT Coding Style
+* gnat-style: (gnat-style-6). GNAT Coding Style
@end direntry
@macro syntax{element}
Index: gcc/ada/gnat_rm.texi
===================================================================
--- gcc/ada/gnat_rm.texi.orig 2016-01-08 09:30:08.457102667 +0100
+++ gcc/ada/gnat_rm.texi 2016-03-07 14:14:30.569648359 +0100
@@ -12,7 +12,7 @@
@finalout
@dircategory GNU Ada Tools
@direntry
-* gnat_rm: (gnat_rm.info). gnat_rm
+* GNAT Reference Manual: (gnat_rm-6). Reference Manual for GNU Ada tools.
@end direntry
@definfoenclose strong,`,'
Index: gcc/ada/gnat_ugn.texi
===================================================================
--- gcc/ada/gnat_ugn.texi.orig 2016-01-08 09:30:08.461102712 +0100
+++ gcc/ada/gnat_ugn.texi 2016-03-07 14:14:30.573648405 +0100
@@ -12,7 +12,7 @@
@finalout
@dircategory GNU Ada Tools
@direntry
-* gnat_ugn: (gnat_ugn.info). gnat_ugn
+* User's Guide: (gnat_ugn-6).
@end direntry
@definfoenclose strong,`,'
Index: gcc/doc/cpp.texi
===================================================================
--- gcc/doc/cpp.texi.orig 2016-01-21 09:51:11.415101482 +0100
+++ gcc/doc/cpp.texi 2016-03-07 14:14:30.573648405 +0100
@@ -50,7 +50,7 @@ This manual contains no Invariant Sectio
@ifinfo
@dircategory Software development
@direntry
-* Cpp: (cpp). The GNU C preprocessor.
+* @value{fncpp}: (@value{fncpp}). The GNU C preprocessor.
@end direntry
@end ifinfo
Index: gcc/doc/cppinternals.texi
===================================================================
--- gcc/doc/cppinternals.texi.orig 2016-01-08 09:29:42.028802453 +0100
+++ gcc/doc/cppinternals.texi 2016-03-07 14:14:30.573648405 +0100
@@ -7,7 +7,7 @@
@ifinfo
@dircategory Software development
@direntry
-* Cpplib: (cppinternals). Cpplib internals.
+* @value{fncppint}: (@value{fncppint}). Cpplib internals.
@end direntry
@end ifinfo
Index: gcc/doc/extend.texi
===================================================================
--- gcc/doc/extend.texi.orig 2016-03-04 09:34:42.599054435 +0100
+++ gcc/doc/extend.texi 2016-03-07 14:14:30.573648405 +0100
@@ -19810,7 +19810,7 @@ want to write code that checks whether t
test for the GNU compiler the same way as for C programs: check for a
predefined macro @code{__GNUC__}. You can also use @code{__GNUG__} to
test specifically for GNU C++ (@pxref{Common Predefined Macros,,
-Predefined Macros,cpp,The GNU C Preprocessor}).
+Predefined Macros,@value{fncpp},The GNU C Preprocessor}).
@menu
* C++ Volatiles:: What constitutes an access to a volatile object.
Index: gcc/doc/gcc.texi
===================================================================
--- gcc/doc/gcc.texi.orig 2016-01-08 09:29:42.028802453 +0100
+++ gcc/doc/gcc.texi 2016-03-07 14:14:30.573648405 +0100
@@ -63,10 +63,10 @@ Texts being (a) (see below), and with th
@ifnottex
@dircategory Software development
@direntry
-* gcc: (gcc). The GNU Compiler Collection.
-* g++: (gcc). The GNU C++ compiler.
-* gcov: (gcc) Gcov. @command{gcov}---a test coverage program.
-* gcov-tool: (gcc) Gcov-tool. @command{gcov-tool}---an offline gcda profile processing program.
+* @value{fngcc}: (@value{fngcc}). The GNU Compiler Collection.
+* @value{fngxx}: (@value{fngxx}). The GNU C++ compiler.
+* gcov: (@value{fngcc}) Gcov. @command{gcov}---a test coverage program.
+* gcov-tool: (@value{fngcc}) Gcov-tool. @command{gcov-tool}---an offline gcda profile processing program.
@end direntry
This file documents the use of the GNU compilers.
@sp 1
@@ -126,7 +126,7 @@ version @value{version-GCC}.
The internals of the GNU compilers, including how to port them to new
targets and some information about how to write front ends for new
languages, are documented in a separate manual. @xref{Top,,
-Introduction, gccint, GNU Compiler Collection (GCC) Internals}.
+Introduction, @value{fngccint}, GNU Compiler Collection (GCC) Internals}.
@menu
* G++ and GCC:: You can compile C or C++ programs.
Index: gcc/doc/gccint.texi
===================================================================
--- gcc/doc/gccint.texi.orig 2016-01-08 09:29:42.028802453 +0100
+++ gcc/doc/gccint.texi 2016-03-07 14:14:30.573648405 +0100
@@ -49,7 +49,7 @@ Texts being (a) (see below), and with th
@ifnottex
@dircategory Software development
@direntry
-* gccint: (gccint). Internals of the GNU Compiler Collection.
+* @value{fngccint}: (@value{fngccint}). Internals of the GNU Compiler Collection.
@end direntry
This file documents the internals of the GNU compilers.
@sp 1
@@ -81,7 +81,7 @@ write front ends for new languages. It
@value{VERSION_PACKAGE}
@end ifset
version @value{version-GCC}. The use of the GNU compilers is documented in a
-separate manual. @xref{Top,, Introduction, gcc, Using the GNU
+separate manual. @xref{Top,, Introduction, @value{fngcc}, Using the GNU
Compiler Collection (GCC)}.
This manual is mainly a reference manual rather than a tutorial. It
Index: gcc/doc/install.texi
===================================================================
--- gcc/doc/install.texi.orig 2016-02-29 09:45:37.403360796 +0100
+++ gcc/doc/install.texi 2016-03-07 14:14:30.577648450 +0100
@@ -94,7 +94,7 @@ Free Documentation License}''.
@end ifinfo
@dircategory Software development
@direntry
-* gccinstall: (gccinstall). Installing the GNU Compiler Collection.
+* @value{fngccinstall}: (@value{fngccinstall}). Installing the GNU Compiler Collection.
@end direntry
@c Part 3 Titlepage and Copyright
Index: gcc/doc/invoke.texi
===================================================================
--- gcc/doc/invoke.texi.orig 2016-02-29 09:45:37.403360796 +0100
+++ gcc/doc/invoke.texi 2016-03-07 14:14:30.577648450 +0100
@@ -6354,7 +6354,7 @@ the standard calling sequence automatica
and nothing is saved by pretending it doesn't exist. The
machine-description macro @code{FRAME_POINTER_REQUIRED} controls
whether a target machine supports this flag. @xref{Registers,,Register
-Usage, gccint, GNU Compiler Collection (GCC) Internals}.
+Usage, @value{fngccint}, GNU Compiler Collection (GCC) Internals}.
The default setting (when not optimizing for
size) for 32-bit GNU/Linux x86 and 32-bit Darwin x86 targets is
@@ -10548,7 +10548,7 @@ One of the standard libraries bypassed b
@option{-nodefaultlibs} is @file{libgcc.a}, a library of internal subroutines
which GCC uses to overcome shortcomings of particular machines, or special
needs for some languages.
-(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler
+(@xref{Interface,,Interfacing to GCC Output,@value{fngccint},GNU Compiler
Collection (GCC) Internals},
for more discussion of @file{libgcc.a}.)
In most cases, you need @file{libgcc.a} even when you want to avoid
@@ -10557,7 +10557,7 @@ or @option{-nodefaultlibs} you should us
This ensures that you have no unresolved references to internal GCC
library subroutines.
(An example of such an internal subroutine is @code{__main}, used to ensure C++
-constructors are called; @pxref{Collect2,,@code{collect2}, gccint,
+constructors are called; @pxref{Collect2,,@code{collect2}, @value{fngccint},
GNU Compiler Collection (GCC) Internals}.)
@item -pie
@@ -25046,7 +25046,7 @@ Note that you can also specify places to
@option{-B}, @option{-I} and @option{-L} (@pxref{Directory Options}). These
take precedence over places specified using environment variables, which
in turn take precedence over those specified by the configuration of GCC@.
-@xref{Driver,, Controlling the Compilation Driver @file{gcc}, gccint,
+@xref{Driver,, Controlling the Compilation Driver @file{gcc}, @value{fngccint},
GNU Compiler Collection (GCC) Internals}.
@table @env
@@ -25206,7 +25206,7 @@ the headers it contains change.
A precompiled header file is searched for when @code{#include} is
seen in the compilation. As it searches for the included file
-(@pxref{Search Path,,Search Path,cpp,The C Preprocessor}) the
+(@pxref{Search Path,,Search Path,@value{fncpp},The C Preprocessor}) the
compiler looks for a precompiled header in each directory just before it
looks for the include file in that directory. The name searched for is
the name specified in the @code{#include} with @samp{.gch} appended. If
Index: gcc/doc/libgcc.texi
===================================================================
--- gcc/doc/libgcc.texi.orig 2016-01-08 09:29:42.684809905 +0100
+++ gcc/doc/libgcc.texi 2016-03-07 14:14:30.577648450 +0100
@@ -24,7 +24,7 @@ that needs them.
GCC will also generate calls to C library routines, such as
@code{memcpy} and @code{memset}, in some cases. The set of routines
that GCC may possibly use is documented in @ref{Other
-Builtins,,,gcc, Using the GNU Compiler Collection (GCC)}.
+Builtins,,,@value{fngcc}, Using the GNU Compiler Collection (GCC)}.
These routines take arguments and return values of a specific machine
mode, not a specific C type. @xref{Machine Modes}, for an explanation
Index: gcc/doc/makefile.texi
===================================================================
--- gcc/doc/makefile.texi.orig 2016-01-08 09:29:42.680809860 +0100
+++ gcc/doc/makefile.texi 2016-03-07 14:14:30.577648450 +0100
@@ -139,7 +139,7 @@ regardless of how it itself was compiled
Builds a compiler with profiling feedback information. In this case,
the second and third stages are named @samp{profile} and @samp{feedback},
respectively. For more information, see
-@ref{Building,,Building with profile feedback,gccinstall,Installing GCC}.
+@ref{Building,,Building with profile feedback,@value{fngccinstall},Installing GCC}.
@item restrap
Restart a bootstrap, so that everything that was not built with
Index: gcc/fortran/Make-lang.in
===================================================================
--- gcc/fortran/Make-lang.in.orig 2016-01-08 09:30:10.857129930 +0100
+++ gcc/fortran/Make-lang.in 2016-03-07 14:14:30.581648496 +0100
@@ -114,7 +114,8 @@ fortran.tags: force
cd $(srcdir)/fortran; etags -o TAGS.sub *.c *.h; \
etags --include TAGS.sub --include ../TAGS.sub
-fortran.info: doc/gfortran.info doc/gfc-internals.info
+INFO_FORTRAN_NAME = $(shell echo gfortran|sed '$(program_transform_name)')
+fortran.info: doc/$(INFO_FORTRAN_NAME).info
fortran.dvi: doc/gfortran.dvi doc/gfc-internals.dvi
F95_HTMLFILES = $(build_htmldir)/gfortran
@@ -181,10 +182,10 @@ GFORTRAN_TEXI = \
$(srcdir)/doc/include/gcc-common.texi \
gcc-vers.texi
-doc/gfortran.info: $(GFORTRAN_TEXI)
+doc/$(INFO_FORTRAN_NAME).info: $(GFORTRAN_TEXI)
if [ x$(BUILD_INFO) = xinfo ]; then \
rm -f doc/gfortran.info-*; \
- $(MAKEINFO) -I $(srcdir)/doc/include -I $(srcdir)/fortran \
+ $(MAKEINFO) $(MAKEINFODEFS) -I $(srcdir)/doc/include -I $(srcdir)/fortran \
-o $@ $<; \
else true; fi
@@ -249,7 +250,7 @@ fortran.install-common: install-finclude
fortran.install-plugin:
-fortran.install-info: $(DESTDIR)$(infodir)/gfortran.info
+fortran.install-info: $(DESTDIR)$(infodir)/$(INFO_FORTRAN_NAME).info
fortran.install-man: $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext)
@@ -267,7 +268,7 @@ fortran.uninstall:
rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_INSTALL_NAME)$(exeext); \
rm -rf $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext); \
rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_TARGET_INSTALL_NAME)$(exeext); \
- rm -rf $(DESTDIR)$(infodir)/gfortran.info*
+ rm -rf $(DESTDIR)$(infodir)/$(INFO_FORTRAN_NAME).info*
#
# Clean hooks:
Index: gcc/fortran/gfortran.texi
===================================================================
--- gcc/fortran/gfortran.texi.orig 2016-01-08 09:30:10.853129884 +0100
+++ gcc/fortran/gfortran.texi 2016-03-07 14:14:30.581648496 +0100
@@ -101,7 +101,7 @@ Texts being (a) (see below), and with th
@ifinfo
@dircategory Software development
@direntry
-* gfortran: (gfortran). The GNU Fortran Compiler.
+* @value{fngfortran}: (@value{fngfortran}). The GNU Fortran Compiler.
@end direntry
This file documents the use and the internals of
the GNU Fortran compiler, (@command{gfortran}).
Index: libffi/Makefile.am
===================================================================
--- libffi/Makefile.am.orig 2016-03-03 14:52:56.924504713 +0100
+++ libffi/Makefile.am 2016-03-07 14:14:30.581648496 +0100
@@ -25,6 +25,8 @@ TEXINFO_TEX = ../gcc/doc/include/texin
# Defines info, dvi, pdf and html targets
MAKEINFOFLAGS = -I $(srcdir)/../gcc/doc/include
info_TEXINFOS = doc/libffi.texi
+INFO_LIBFFI_NAME = $(shell echo libffi | sed '${program_transform_name}')
+INFO_DEPS = doc/$(INFO_LIBFFI_NAME).info
# AM_CONDITIONAL on configure option --generated-files-in-srcdir
if GENINSRC
@@ -42,17 +44,17 @@ endif
all-local: $(STAMP_GENINSRC)
-stamp-geninsrc: doc/libffi.info
- cp -p $(top_builddir)/doc/libffi.info $(srcdir)/doc/libffi.info
+stamp-geninsrc: doc/$(INFO_LIBFFI_NAME).info
+ cp -p $(top_builddir)/doc/$(INFO_LIBFFI_NAME).info $(srcdir)/doc/libffi.info
@touch $@
-doc/libffi.info: $(STAMP_BUILD_INFO)
+doc/$(INFO_LIBFFI_NAME).info: $(STAMP_BUILD_INFO)
stamp-build-info: doc/libffi.texi $(srcdir)/doc/version.texi doc/$(am__dirstamp)
- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)/doc -o doc/libffi.info $(srcdir)/doc/libffi.texi
+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibffi $(INFO_LIBFFI_NAME)' -I $(srcdir)/doc -o doc/$(INFO_LIBFFI_NAME).info $(srcdir)/doc/libffi.texi
@touch $@
-CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) doc/libffi.info
+CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) doc/$(INFO_LIBFFI_NAME).info
MAINTAINERCLEANFILES = $(srcdir)/doc/libffi.info
## ################################################################
Index: libffi/Makefile.in
===================================================================
--- libffi/Makefile.in.orig 2016-03-07 14:02:47.897637673 +0100
+++ libffi/Makefile.in 2016-03-07 14:14:30.581648496 +0100
@@ -158,7 +158,6 @@ MULTIDIRS =
MULTISUBDIR =
MULTIDO = true
MULTICLEAN = true
-INFO_DEPS = doc/libffi.info
am__TEXINFO_TEX_DIR = $(srcdir)/../gcc/doc/include
DVIS = doc/libffi.dvi
PDFS = doc/libffi.pdf
@@ -351,6 +350,8 @@ TEXINFO_TEX = ../gcc/doc/include/texinfo
# Defines info, dvi, pdf and html targets
MAKEINFOFLAGS = -I $(srcdir)/../gcc/doc/include
info_TEXINFOS = doc/libffi.texi
+INFO_LIBFFI_NAME = $(shell echo libffi | sed '${program_transform_name}')
+INFO_DEPS = doc/$(INFO_LIBFFI_NAME).info
@GENINSRC_FALSE@STAMP_GENINSRC =
# AM_CONDITIONAL on configure option --generated-files-in-srcdir
@@ -359,7 +360,7 @@ info_TEXINFOS = doc/libffi.texi
# AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO])
@BUILD_INFO_TRUE@STAMP_BUILD_INFO = stamp-build-info
-CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) doc/libffi.info
+CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) doc/$(INFO_LIBFFI_NAME).info
MAINTAINERCLEANFILES = $(srcdir)/doc/libffi.info
# Work around what appears to be a GNU make bug handling MAKEFLAGS
@@ -1892,14 +1893,15 @@ uninstall-am: uninstall-dvi-am uninstall
all-local: $(STAMP_GENINSRC)
-stamp-geninsrc: doc/libffi.info
- cp -p $(top_builddir)/doc/libffi.info $(srcdir)/doc/libffi.info
+$(srcdir)/doc/libffi.info: stamp-geninsrc
+stamp-geninsrc: doc/$(INFO_LIBFFI_NAME).info
+ cp -p $(top_builddir)/doc/$(INFO_LIBFFI_NAME).info $(srcdir)/doc/libffi.info
@touch $@
-doc/libffi.info: $(STAMP_BUILD_INFO)
+doc/$(INFO_LIBFFI_NAME).info: $(STAMP_BUILD_INFO)
stamp-build-info: doc/libffi.texi $(srcdir)/doc/version.texi doc/$(am__dirstamp)
- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)/doc -o doc/libffi.info $(srcdir)/doc/libffi.texi
+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibffi $(INFO_LIBFFI_NAME)' -I $(srcdir)/doc -o doc/$(INFO_LIBFFI_NAME).info $(srcdir)/doc/libffi.texi
@touch $@
@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@libffi.map-sun : libffi.map $(top_srcdir)/../contrib/make_sunver.pl \
@LIBAT_BUILD_VERSIONED_SHLIB_SUN_TRUE@@LIBAT_BUILD_VERSIONED_SHLIB_TRUE@ $(libffi_la_OBJECTS) $(libffi_la_LIBADD)
Index: libffi/doc/libffi.texi
===================================================================
--- libffi/doc/libffi.texi.orig 2015-01-29 13:55:28.849745068 +0100
+++ libffi/doc/libffi.texi 2016-03-07 14:14:30.581648496 +0100
@@ -33,7 +33,7 @@ section entitled ``GNU General Public Li
@dircategory Development
@direntry
-* libffi: (libffi). Portable foreign-function interface library.
+* libffi: (@value{fnlibffi}). Portable foreign-function interface library.
@end direntry
@titlepage
Index: libgomp/Makefile.am
===================================================================
--- libgomp/Makefile.am.orig 2016-01-21 10:44:22.631247939 +0100
+++ libgomp/Makefile.am 2016-03-07 14:14:30.581648496 +0100
@@ -125,16 +125,19 @@ endif
all-local: $(STAMP_GENINSRC)
-stamp-geninsrc: libgomp.info
- cp -p $(top_builddir)/libgomp.info $(srcdir)/libgomp.info
+INFO_LIBGOMP_NAME = $(shell echo libgomp|sed '$(program_transform_name)')
+stamp-geninsrc: $(INFO_LIBGOMP_NAME).info
+ cp -p $(top_builddir)/$(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.info
@touch $@
-libgomp.info: $(STAMP_BUILD_INFO)
+libgomp.info: $(INFO_LIBGOMP_NAME).info
+ cp $(INFO_LIBGOMP_NAME).info libgomp.info
+$(INFO_LIBGOMP_NAME).info: $(STAMP_BUILD_INFO)
stamp-build-info: libgomp.texi
- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libgomp.info $(srcdir)/libgomp.texi
+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibgomp $(INFO_LIBGOMP_NAME)' -I $(srcdir) -o $(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.texi
@touch $@
-CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libgomp.info
+CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) $(INFO_LIBGOMP_NAME).info
MAINTAINERCLEANFILES = $(srcdir)/libgomp.info
Index: libgomp/Makefile.in
===================================================================
--- libgomp/Makefile.in.orig 2016-02-02 16:21:09.546745759 +0100
+++ libgomp/Makefile.in 2016-03-07 14:14:30.581648496 +0100
@@ -484,7 +484,8 @@ info_TEXINFOS = libgomp.texi
# AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO])
@BUILD_INFO_TRUE@STAMP_BUILD_INFO = stamp-build-info
-CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libgomp.info
+INFO_LIBGOMP_NAME = $(shell echo libgomp|sed '$(program_transform_name)')
+CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) $(INFO_LIBGOMP_NAME).info
MAINTAINERCLEANFILES = $(srcdir)/libgomp.info
all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive
@@ -1296,15 +1297,16 @@ env.lo: libgomp_f.h
env.o: libgomp_f.h
all-local: $(STAMP_GENINSRC)
-
-stamp-geninsrc: libgomp.info
- cp -p $(top_builddir)/libgomp.info $(srcdir)/libgomp.info
+stamp-geninsrc: $(INFO_LIBGOMP_NAME).info
+ cp -p $(top_builddir)/$(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.info
@touch $@
-libgomp.info: $(STAMP_BUILD_INFO)
+libgomp.info: $(INFO_LIBGOMP_NAME).info
+ cp $(INFO_LIBGOMP_NAME).info libgomp.info
+$(INFO_LIBGOMP_NAME).info: $(STAMP_BUILD_INFO)
stamp-build-info: libgomp.texi
- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libgomp.info $(srcdir)/libgomp.texi
+ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibgomp $(INFO_LIBGOMP_NAME)' -I $(srcdir) -o $(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.texi
@touch $@
# Tell versions [3.59,3.63) of GNU make to not export all variables.
Index: libgomp/libgomp.texi
===================================================================
--- libgomp/libgomp.texi.orig 2016-01-13 09:28:06.664462622 +0100
+++ libgomp/libgomp.texi 2016-03-07 14:14:30.581648496 +0100
@@ -31,7 +31,7 @@ texts being (a) (see below), and with th
@ifinfo
@dircategory GNU Libraries
@direntry
-* libgomp: (libgomp). GNU Offloading and Multi Processing Runtime Library.
+* @value{fnlibgomp}: (@value{fnlibgomp}). GNU Offloading and Multi Processing Runtime Library.
@end direntry
This manual documents libgomp, the GNU Offloading and Multi Processing
Index: libitm/libitm.texi
===================================================================
--- libitm/libitm.texi.orig 2016-01-08 09:26:09.966393468 +0100
+++ libitm/libitm.texi 2016-03-07 14:14:30.581648496 +0100
@@ -20,7 +20,7 @@ Free Documentation License''.
@ifinfo
@dircategory GNU Libraries
@direntry
-* libitm: (libitm). GNU Transactional Memory Library
+* libitm: (libitm-6). GNU Transactional Memory Library
@end direntry
This manual documents the GNU Transactional Memory Library.
Index: libquadmath/libquadmath.texi
===================================================================
--- libquadmath/libquadmath.texi.orig 2016-01-08 09:26:17.802482487 +0100
+++ libquadmath/libquadmath.texi 2016-03-07 14:14:30.581648496 +0100
@@ -25,7 +25,7 @@ copy and modify this GNU manual.
@ifinfo
@dircategory GNU Libraries
@direntry
-* libquadmath: (libquadmath). GCC Quad-Precision Math Library
+* libquadmath: (libquadmath-6). GCC Quad-Precision Math Library
@end direntry
This manual documents the GCC Quad-Precision Math Library API.

116
gcc44-textdomain.patch Normal file
View File

@ -0,0 +1,116 @@
#! /bin/sh -e
# DP: Set gettext's domain and textdomain to the versioned package name.
dir=
if [ $# -eq 3 -a "$2" = '-d' ]; then
pdir="-d $3"
dir="$3/"
elif [ $# -ne 1 ]; then
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
fi
case "$1" in
-patch)
patch $pdir -f --no-backup-if-mismatch -p0 < $0
;;
-unpatch)
patch $pdir -f --no-backup-if-mismatch -R -p0 < $0
;;
*)
echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
exit 1
esac
exit 0
Index: gcc/Makefile.in
===================================================================
--- gcc/Makefile.in.orig 2013-11-26 16:46:03.000000000 +0100
+++ gcc/Makefile.in 2013-11-26 16:46:43.271816000 +0100
@@ -3795,8 +3795,8 @@ install-po:
dir=$(localedir)/$$lang/LC_MESSAGES; \
echo $(mkinstalldirs) $(DESTDIR)$$dir; \
$(mkinstalldirs) $(DESTDIR)$$dir || exit 1; \
- echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \
- $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \
+ echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc-7.mo; \
+ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc-7.mo; \
done
# Rule for regenerating the message template (gcc.pot).
Index: gcc/intl.c
===================================================================
--- gcc/intl.c.orig 2013-11-26 15:42:31.000000000 +0100
+++ gcc/intl.c 2013-11-26 16:46:43.271816000 +0100
@@ -55,8 +55,8 @@ gcc_init_libintl (void)
setlocale (LC_ALL, "");
#endif
- (void) bindtextdomain ("gcc", LOCALEDIR);
- (void) textdomain ("gcc");
+ (void) bindtextdomain ("gcc-7", LOCALEDIR);
+ (void) textdomain ("gcc-7");
/* Opening quotation mark. */
open_quote = _("`");
Index: libcpp/Makefile.in
===================================================================
--- libcpp/Makefile.in.orig 2013-11-26 16:26:56.000000000 +0100
+++ libcpp/Makefile.in 2013-11-26 16:47:15.764193260 +0100
@@ -49,6 +49,7 @@ LDFLAGS = @LDFLAGS@
LIBICONV = @LIBICONV@
LIBINTL = @LIBINTL@
PACKAGE = @PACKAGE@
+PACKAGE_SUFFIX = -7
RANLIB = @RANLIB@
SHELL = @SHELL@
USED_CATALOGS = @USED_CATALOGS@
@@ -74,8 +75,10 @@ INCLUDES = -I$(srcdir) -I. -I$(srcdir)/.
-I$(srcdir)/include
ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS) $(PICFLAG)
+ALL_CFLAGS += -DPACKAGE_SUFFIX=\"$(strip $(PACKAGE_SUFFIX))\"
ALL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(NOEXCEPTION_FLAGS) $(INCLUDES) \
$(CPPFLAGS) $(PICFLAG)
+ALL_CXXFLAGS += -DPACKAGE_SUFFIX=\"$(strip $(PACKAGE_SUFFIX))\"
# The name of the compiler to use.
COMPILER = $(CXX)
@@ -164,8 +167,8 @@ install-strip install: all installdirs
else continue; \
fi; \
dir=$(localedir)/$$lang/LC_MESSAGES; \
- echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
- $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
+ echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE)$(PACKAGE_SUFFIX).mo; \
+ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE)$(PACKAGE_SUFFIX).mo; \
done
mostlyclean:
Index: libcpp/system.h
===================================================================
--- libcpp/system.h.orig 2013-01-15 10:49:52.000000000 +0100
+++ libcpp/system.h 2013-11-26 16:46:43.271816000 +0100
@@ -280,7 +280,7 @@ extern int errno;
#endif
#ifndef _
-# define _(msgid) dgettext (PACKAGE, msgid)
+# define _(msgid) dgettext (PACKAGE PACKAGE_SUFFIX, msgid)
#endif
#ifndef N_
Index: libcpp/init.c
===================================================================
--- libcpp/init.c.orig 2013-11-26 15:42:40.000000000 +0100
+++ libcpp/init.c 2013-11-26 16:46:43.271816000 +0100
@@ -152,7 +152,7 @@ init_library (void)
init_trigraph_map ();
#ifdef ENABLE_NLS
- (void) bindtextdomain (PACKAGE, LOCALEDIR);
+ (void) bindtextdomain (PACKAGE PACKAGE_SUFFIX, LOCALEDIR);
#endif
}
}

View File

@ -0,0 +1,14 @@
Index: libstdc++-v3/doc/html/index.html
===================================================================
--- libstdc++-v3/doc/html/index.html (revision 210144)
+++ libstdc++-v3/doc/html/index.html (working copy)
@@ -18,7 +18,7 @@
</p></li><li class="listitem"><p>
<a class="link" href="faq.html" title="Frequently Asked Questions">Frequently Asked Questions</a>
</p></li><li class="listitem"><p>
- <a class="link" href="api.html" title="The GNU C++ Library API Reference">API and Source Documentation</a>
+ <a class="link" href="api/index.html" title="The GNU C++ Library API Reference">API and Source Documentation</a>
</p></li></ul></div><p>
</p></div></div></div><hr /></div><div class="toc"><p><strong>Table of Contents</strong></p><dl class="toc"><dt><span class="book"><a href="manual/index.html">The GNU C++ Library Manual</a></span></dt><dd><dl><dt><span class="part"><a href="manual/intro.html">I.
Introduction

View File

@ -0,0 +1,108 @@
Index: configure.ac
===================================================================
--- configure.ac (revision 216911)
+++ configure.ac (working copy)
@@ -1454,7 +1454,7 @@ if test -d ${srcdir}/gcc && test "x$have
AC_MSG_CHECKING([for the correct version of mpfr.h])
AC_TRY_COMPILE([#include <gmp.h>
#include <mpfr.h>],[
- #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,0)
+ #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,1)
choke me
#endif
], [AC_TRY_COMPILE([#include <gmp.h>
Index: configure
===================================================================
--- configure (revision 216911)
+++ configure (working copy)
@@ -5524,7 +5524,7 @@ int
main ()
{
- #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,0)
+ #if MPFR_VERSION < MPFR_VERSION_NUM(2,3,1)
choke me
#endif
Index: gcc/fortran/simplify.c
===================================================================
--- gcc/fortran/simplify.c (revision 216911)
+++ gcc/fortran/simplify.c (working copy)
@@ -4278,10 +4278,7 @@ gfc_simplify_mod (gfc_expr *a, gfc_expr
return &gfc_bad_expr;
}
- gfc_set_model_kind (kind);
- mpfr_fmod (result->value.real, a->value.real, p->value.real,
- GFC_RND_MODE);
- break;
+ return NULL;
default:
gfc_internal_error ("gfc_simplify_mod(): Bad arguments");
@@ -4327,19 +4324,7 @@ gfc_simplify_modulo (gfc_expr *a, gfc_ex
return &gfc_bad_expr;
}
- gfc_set_model_kind (kind);
- mpfr_fmod (result->value.real, a->value.real, p->value.real,
- GFC_RND_MODE);
- if (mpfr_cmp_ui (result->value.real, 0) != 0)
- {
- if (mpfr_signbit (a->value.real) != mpfr_signbit (p->value.real))
- mpfr_add (result->value.real, result->value.real, p->value.real,
- GFC_RND_MODE);
- }
- else
- mpfr_copysign (result->value.real, result->value.real,
- p->value.real, GFC_RND_MODE);
- break;
+ return NULL;
default:
gfc_internal_error ("gfc_simplify_modulo(): Bad arguments");
Index: gcc/ubsan.c
===================================================================
--- gcc/ubsan.c.orig 2015-06-01 14:52:11.717105684 +0200
+++ gcc/ubsan.c 2015-06-01 14:52:26.945253071 +0200
@@ -1564,40 +1564,6 @@
min = build_real (expr_type, minval2);
}
}
- else if (REAL_MODE_FORMAT (mode)->b == 10)
- {
- /* For _Decimal128 up to 34 decimal digits, - sign,
- dot, e, exponent. */
- char buf[64];
- mpfr_t m;
- int p = REAL_MODE_FORMAT (mode)->p;
- REAL_VALUE_TYPE maxval, minval;
-
- /* Use mpfr_snprintf rounding to compute the smallest
- representable decimal number greater or equal than
- 1 << (prec - !uns_p). */
- mpfr_init2 (m, prec + 2);
- mpfr_set_ui_2exp (m, 1, prec - !uns_p, GMP_RNDN);
- mpfr_snprintf (buf, sizeof buf, "%.*RUe", p - 1, m);
- decimal_real_from_string (&maxval, buf);
- max = build_real (expr_type, maxval);
-
- /* For unsigned, assume -1.0 is always representable. */
- if (uns_p)
- min = build_minus_one_cst (expr_type);
- else
- {
- /* Use mpfr_snprintf rounding to compute the largest
- representable decimal number less or equal than
- (-1 << (prec - 1)) - 1. */
- mpfr_set_si_2exp (m, -1, prec - 1, GMP_RNDN);
- mpfr_sub_ui (m, m, 1, GMP_RNDN);
- mpfr_snprintf (buf, sizeof buf, "%.*RDe", p - 1, m);
- decimal_real_from_string (&minval, buf);
- min = build_real (expr_type, minval);
- }
- mpfr_clear (m);
- }
else
return NULL_TREE;

View File

@ -0,0 +1,23 @@
Workaround
[ 3445s] I: Program returns random data in a function
[ 3445s] E: gcc5 no-return-in-nonvoid-function ../../gcc/cp/constexpr.c:3676
during stage1 when compiling with a GCC 4.3 host compiler
--- gcc/cp/constexpr.c.orig 2015-06-02 09:33:15.085636193 +0200
+++ gcc/cp/constexpr.c 2015-06-02 09:34:04.637080196 +0200
@@ -3668,11 +3668,10 @@
{
r = get_target_expr (r);
TREE_CONSTANT (r) = true;
- return r;
}
}
- else
- return r;
+
+ return r;
}
/* Returns true if T is a valid subexpression of a constant expression,

8
gcc7-rpmlintrc Normal file
View File

@ -0,0 +1,8 @@
# This line is mandatory to access the configuration functions
from Config import *
addFilter ("gcc7.*devel-dependency glibc-devel")
addFilter ("gcc7-c.*devel-dependency libstdc")
addFilter ("shlib-policy-name-error")
addFilter ("gcc7.*devel-file-in-non-devel-package")

221
gcc7-testresults.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

786
gcc7-testresults.spec Normal file
View File

@ -0,0 +1,786 @@
#
# spec file for package gcc7-testresults
#
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# icecream 0
%define building_testsuite 1
%define run_tests 1
#
# spec file for package gcc7
#
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# Ada currently fails to build on a few platforms, enable it only
# on those that work
%if %{suse_version} >= 1310
%if %{suse_version} >= 1330
%define ada_arch %ix86 x86_64 ppc ppc64 ppc64le s390 ia64 aarch64
%else
%define ada_arch %ix86 x86_64 ppc ppc64 s390 ia64
%endif
%else
%define ada_arch %ix86 x86_64 ppc s390 ia64
%endif
%ifarch %ada_arch
%define build_ada !0%{?building_libffi:1}
%else
%define build_ada 0
%endif
%define quadmath_arch %ix86 x86_64 ia64
%define tsan_arch x86_64 aarch64
%define asan_arch x86_64 %ix86 ppc ppc64 ppc64le %sparc %arm aarch64
%define itm_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x %sparc
%define atomic_arch x86_64 %ix86 %arm aarch64 ppc ppc64 ppc64le s390 s390x %sparc m68k ia64
%define lsan_arch x86_64 aarch64
%define ubsan_arch x86_64 %ix86 ppc ppc64 ppc64le %arm aarch64
%if 0%{?build_libvtv:1}
%define vtv_arch x86_64 %ix86
%endif
%define cilkrts_arch x86_64 %ix86
%if %{suse_version} >= 1310
%define mpx_arch x86_64 %ix86
%endif
%define build_cp 1
%define build_fortran !0%{?building_libffi:1}
%define build_objc !0%{?building_libffi:1}
%define build_objcp !0%{?building_libffi:1}
%define build_go !0%{?building_libffi:1}
%if %{build_objcp}
%define build_cp 1
%define build_objc 1
%endif
# For optional compilers only build C, C++, Fortran, Ada and Go
%if 0%{?build_optional_compiler_languages:1}
%define build_objc 0
%define build_objcp 0
%endif
%ifarch x86_64
%define build_hsa 1
%else
%define build_hsa 0
%endif
# TODO
%define build_hsa 0
# Enable plugins just for Tumbleweed, not for SLE13
%if %{suse_version} == 1330
%define enable_plugins 1
%else
%define enable_plugins 0
%endif
# Shared library SONAME versions
%ifarch hppa
%define libgcc_s 4
%else
%ifarch m68k
%define libgcc_s 2
%else
%define libgcc_s 1
%endif
%endif
%define libffi_sover 7
%define libgomp_sover 1
%define libgomp_plugin_hsa_sover 1
%define libstdcxx_sover 6
%define libobjc_sover 4
%define libgfortran_sover 4
%define libquadmath_sover 0
%define libasan_sover 4
%define libtsan_sover 0
%define libatomic_sover 1
%define libitm_sover 1
%define libubsan_sover 0
%define liblsan_sover 0
%define libvtv_sover 0
%define libcilkrts_sover 5
%define libgo_sover 10
%define libmpx_sover 2
%define libmpxwrappers_sover 2
# Shared library package suffix
# This is used for the "non-standard" set of libraries, the standard
# being defined by %product_libs_gcc_ver, the GCC version that should
# provide un-suffixed shared library packages following the shared-library
# policy. Even suffixed variants should provide the shared-library policy
# mandated names and ensure they conflict with each other.
# Individual shared libraries can be directed to be built from individual
# gcc versions by defining %product_libs_gcc_ver_libgcc_s1 for example,
# generally %product_libs_gcc_ver_%name%sover, similarly.
%define itsme7 1
%define plv_ %{!?product_libs_gcc_ver:7}%{?product_libs_gcc_ver}
%define plv() %{expand:%%{!?itsme%{expand:%%{!?product_libs_gcc_ver_%{1}%{2}:%%{plv_}}%%{?product_libs_gcc_ver_%{1}%{2}}}:-gcc7}}
%define libgcc_s_suffix %{plv libgcc_s %{libgcc_s}}
%define libffi_suffix %{plv libffi %{libffi_sover}}
%define libgomp_suffix %{plv libgomp %{libgomp_sover}}
%define libgomp_plugin_hsa_suffix %{plv libgomp-plugin-hsa %{libgomp_plugin_hsa_sover}}
%define libstdcxx_suffix %{plv libstdcxx %{libstdcxx_sover}}
%define libobjc_suffix %{plv libobjc %{libobjc_sover}}
%define libgfortran_suffix %{plv libgfortran %{libgfortran_sover}}
%define libquadmath_suffix %{plv libquadmath %{libquadmath_sover}}
%define libasan_suffix %{plv libasan %{libasan_sover}}
%define libtsan_suffix %{plv libtsan %{libtsan_sover}}
%define libatomic_suffix %{plv libatomic %{libatomic_sover}}
%define libitm_suffix %{plv libitm %{libitm_sover}}
%define libubsan_suffix %{plv libubsan %{libubsan_sover}}
%define liblsan_suffix %{plv liblsan %{liblsan_sover}}
%define libvtv_suffix %{plv libvtv %{libvtv_sover}}
%define libcilkrts_suffix %{plv libcilkrts %{libcilkrts_sover}}
%define libgo_suffix %{plv libgo %{libgo_sover}}
%define libmpx_suffix %{plv libmpx %{libmpx_sover}}
%define libmpxwrappers_suffix %{plv libmpxwrappers %{libmpx_sover}}
# libFOO-devel package suffix
%define libdevel_suffix -gcc7
%if %{suse_version} >= 1220
%define selfconflict() %1
%else
%define selfconflict() otherproviders(%1)
%endif
Name: gcc7-testresults
# With generated files in src we could drop the following
BuildRequires: bison
BuildRequires: flex
BuildRequires: gettext-devel
%if %{suse_version} > 1220
BuildRequires: makeinfo
%else
BuildRequires: texinfo
%endif
# until here, but at least renaming and patching info files breaks this
BuildRequires: gcc-c++
BuildRequires: glibc-devel-32bit
BuildRequires: mpc-devel
BuildRequires: mpfr-devel
BuildRequires: perl
BuildRequires: zlib-devel
%if %{suse_version} >= 1230
BuildRequires: isl-devel
%endif
%if %{build_ada}
%if %{suse_version} > 1330
%define hostsuffix %{binsuffix}
BuildRequires: gcc7-ada
%else
%define hostsuffix %{nil}
BuildRequires: gcc-ada
%endif
%endif
%if 0%{?building_testsuite:1}
# For building the libstdc++ API reference
BuildRequires: doxygen
BuildRequires: graphviz
%endif
%if 0%{?building_libffi:1}
BuildRequires: pkg-config
%endif
%ifarch ia64
BuildRequires: libunwind-devel
%endif
%if 0%{?run_tests:1}
BuildRequires: dejagnu
BuildRequires: expect
BuildRequires: gdb
%endif
%define separate_bi32 0
%define separate_bi64 0
%if 0%{!?disable_32bit:1}
%ifarch ppc sparcv9
%define separate_bi64 1
%endif
%ifarch x86_64 s390x ppc64 sparc64
%define separate_bi32 1
%endif
%endif
# Define two macros to trigger -32bit or -64bit package variants
%define separate_biarch 0
%if %{separate_bi32}
%define separate_biarch 1
%define separate_biarch_suffix -32bit
%endif
%if %{separate_bi64}
%define separate_biarch 1
%define separate_biarch_suffix -64bit
%endif
%ifarch x86_64 ia64 s390x alpha ppc64 sparc64
# 64-bit is primary build target
%define build_primary_64bit 1
%else
%define build_primary_64bit 0
%endif
%define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64
Url: http://gcc.gnu.org/
Version: 7.0.0+r242874
Release: 0
%define gcc_version %(echo %version | sed 's/+.*//')
%define gcc_dir_version %(echo %gcc_version | cut -d '.' -f 1)
%define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/')
%define binsuffix -7
%if !0%{?building_libffi:1}%{?building_testsuite:1}
Requires: binutils
Requires: cpp7 = %{version}-%{release}
Requires: glibc-devel
Requires: libgcc_s%{libgcc_s} >= %{version}-%{release}
Requires: libgomp%{libgomp_sover} >= %{version}-%{release}
%ifarch %asan_arch
Requires: libasan%{libasan_sover} >= %{version}-%{release}
%endif
%ifarch %tsan_arch
Requires: libtsan%{libtsan_sover} >= %{version}-%{release}
%endif
%ifarch %atomic_arch
Requires: libatomic%{libatomic_sover} >= %{version}-%{release}
%endif
%ifarch %itm_arch
Requires: libitm%{libitm_sover} >= %{version}-%{release}
%endif
%ifarch %cilkrts_arch
Requires: libcilkrts%{libcilkrts_sover} >= %{version}-%{release}
%endif
%ifarch %lsan_arch
Requires: liblsan%{liblsan_sover} >= %{version}-%{release}
%endif
%ifarch %ubsan_arch
Requires: libubsan%{libubsan_sover} >= %{version}-%{release}
%endif
%ifarch %vtv_arch
Requires: libvtv%{libvtv_sover} >= %{version}-%{release}
%endif
%ifarch %mpx_arch
Requires: libmpx%{libmpx_sover} >= %{version}-%{release}
Requires: libmpxwrappers%{libmpxwrappers_sover} >= %{version}-%{release}
%endif
Suggests: gcc7-info gcc7-locale
%endif
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: gcc-%{gcc_version}%{gcc_snapshot_revision}.tar.bz2
Source1: change_spec
Source2: libffi-gcc7-rpmlintrc
Source3: gcc7-rpmlintrc
Source4: README.First-for.SuSE.packagers
#testpatch begin
Patch1: gcc-dir-version.patch
Patch2: gcc-add-defaultsspec.diff
Patch5: tls-no-direct.diff
Patch6: gcc43-no-unwind-tables.diff
Patch7: gcc48-libstdc++-api-reference.patch
Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch
Patch10: gcc5-no-return-gcc43-workaround.patch
# A set of patches from the RH srpm
Patch51: gcc41-ppc32-retaddr.patch
# Some patches taken from Debian
Patch60: gcc44-textdomain.patch
Patch61: gcc44-rename-info-files.patch
#testpatch end
Summary: Testsuite results
License: SUSE-Public-Domain
Group: Development/Languages/C and C++
%description
Results from running the gcc and target library testsuites.
# Define the canonical target and host architecture
# %gcc_target_arch is supposed to be the full target triple
# %cross_arch is supposed to be the rpm target variant arch
# %TARGET_ARCH will be the canonicalized target CPU part
# %HOST_ARCH will be the canonicalized host CPU part
%if 0%{?gcc_target_arch:1}
%define TARGET_ARCH %(echo %{cross_arch} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%else
%define TARGET_ARCH %(echo %{_target_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%endif
%if 0%{?disable_32bit:1}
%define biarch 0
%else
%define biarch %(case " %{biarch_targets} " in (*" %{TARGET_ARCH} "*) echo 1;; (*) echo 0;; esac)
%endif
%define HOST_ARCH %(echo %{_host_cpu} | sed -e "s/i.86/i586/;s/ppc/powerpc/;s/sparc64.*/sparc64/;s/sparcv.*/sparc/;")
%ifarch ppc
%define GCCDIST powerpc64-suse-linux
%else
%ifarch %sparc
%define GCCDIST sparc64-suse-linux
%else
%ifarch %arm
%define GCCDIST %{HOST_ARCH}-suse-linux-gnueabi
%else
%define GCCDIST %{HOST_ARCH}-suse-linux
%endif
%endif
%endif
%define libsubdir %{_libdir}/gcc/%{GCCDIST}/%{gcc_dir_version}
%define gxxinclude %{_prefix}/include/c++/%{gcc_dir_version}
# Versionspecific directories
%define versmainlibdir %{libsubdir}
%define versmainlibdirbi32 %{libsubdir}/32
%define versmainlibdirbi64 %{libsubdir}/64
%ifarch ppc
%define versmainlibdirbi32 %{libsubdir}
%define versmainlibdirbi64 %{libsubdir}/64
%endif
%if %{build_primary_64bit}
%define versmainlibdirbi %{versmainlibdirbi32}
%else
%define versmainlibdirbi %{versmainlibdirbi64}
%endif
%define mainlibdir %{_libdir}
%define mainlibdirbi32 %{_prefix}/lib
%define mainlibdirbi64 %{_prefix}/lib64
%if %{build_primary_64bit}
%define mainlibdirbi %{mainlibdirbi32}
%else
%define mainlibdirbi %{mainlibdirbi64}
%endif
# Now define a few macros that make it easy to package libs and
# related files just to the right package, without caring for the
# exact path the files are in.
# %mainlib package X from all dirs that belong to the main package
# %biarchlib package X from all dirs that belong to the -32/64bit package
%define mainlib() %{mainlibdir}/%1\
%{nil}
%define biarchlib() %{nil}
%if %{biarch}
%if !%{separate_biarch}
%define mainlib() %{mainlibdir}/%1\
%{mainlibdirbi}/%1\
%{nil}
%else
%define biarchlib() %{mainlibdirbi}/%1\
%{nil}
%endif
%endif
%define versmainlib() %{versmainlibdir}/%1\
%{nil}
%define versbiarchlib() %{nil}
%if %{biarch}
%if !%{separate_biarch}
%define versmainlib() %{versmainlibdir}/%1\
%{versmainlibdirbi}/%1\
%{nil}
%else
%define versbiarchlib() %{versmainlibdirbi}/%1\
%{nil}
%endif
%endif
%prep
%setup -q -n gcc-%{gcc_version}%{gcc_snapshot_revision}
#test patching start
%patch1
%patch2
%patch5
%patch6
%patch7
%if %{suse_version} < 1310
%patch9
%endif
%patch10
%patch51
%patch60
%patch61
#test patching end
# We are configuring ppc as ppc64 but with switched multilibs. Adjust
# the libstdc++ abi testsuite baseline files accordingly
%ifarch ppc
if [ -d libstdc++-v3/config/abi/post/powerpc64-linux-gnu ]; then
mkdir -p libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/64/
mv libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt \
libstdc++-v3/config/abi/post/powerpc64-linux-gnu/
fi
%endif
%build
# Avoid rebuilding of generated files
contrib/gcc_update --touch
# Avoid fucking up testsuite results with Java and indirect dispatch
export SUSE_ASNEEDED=0
# Split version file into version used for directories (X) and
# version to report with --version (X.Y.Z).
# See also gcc-dir-version.patch.
mv gcc/BASE-VER gcc/FULL-VER
cat gcc/FULL-VER | cut -d '.' -f 1 > gcc/BASE-VER
# SLE11 does not allow empty rpms
%if %{suse_version} < 1310
echo "This is a dummy package to provide a dependency." > README
%endif
rm -rf obj-%{GCCDIST}
mkdir obj-%{GCCDIST}
cd obj-%{GCCDIST}
RPM_OPT_FLAGS="$RPM_OPT_FLAGS -U_FORTIFY_SOURCE"
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fno-rtti//g' -e 's/-fno-exceptions//g' -e 's/-Wmissing-format-attribute//g' -e 's/-fstack-protector[^ ]*//g' -e 's/-ffortify=.//g' -e 's/-Wall//g' -e 's/-m32//g' -e 's/-m64//g'`
%ifarch %ix86
# -mcpu is superceded by -mtune but -mtune is not supported by
# our bootstrap compiler. -mcpu gives a warning that stops
# the build process, so remove it for now. Also remove all other
# -march and -mtune flags. They are superseeded by proper
# default compiler settings now.
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-mcpu=i.86//g' -e 's/-march=i.86//g' -e 's/-mtune=i.86//g'`
%endif
%ifarch s390 s390x
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-fsigned-char//g'`
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-O1/-O2/g'`
%endif
%if 0%{?gcc_target_arch:1}
# Kill all -march/tune/cpu because that screws building the target libs
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/-m\(arch\|tune\|cpu\)=[^ ]*//g'`
%endif
# Replace 2 spaces by one finally
RPM_OPT_FLAGS=`echo $RPM_OPT_FLAGS|sed -e 's/ / /g'`
languages=c
%if %{build_cp}
languages=$languages,c++
%endif
%if %{build_objc}
languages=$languages,objc
%endif
%if %{build_fortran}
languages=$languages,fortran
%endif
%if %{build_objcp}
languages=$languages,obj-c++
%endif
%if %{build_ada}
languages=$languages,ada
%endif
%if %{build_go}
languages=$languages,go
%endif
J=%{?jobs:%jobs}
if test -z "$J"; then
J=$(getconf _NPROCESSORS_CONF)
JL=$(($J * 2))
else
test 1 -gt "$J" && J=1
JL=$(($(getconf _NPROCESSORS_CONF)*2))
fi
if test "$J" == "0"; then
J=1
fi
if test "$JL" == "0"; then
JL=1
fi
PARALLEL="-j$J -l$JL"
# we don't want some miscompiles in the testsuite, or some fault in
# the compiler to kill the machine. Hence we limit the amount of memory
# by the physical RAM plus half of swap
#MEM=$(free -m | awk '/^Mem:/ {print $2}')
#SWAP=$(free -m | awk '/^Swap:/ {print $2}')
#ulimit -v $(((MEM + SWAP/2)*1024))
# In general we want to ship release checking enabled compilers
# which is the default for released compilers
#ENABLE_CHECKING="--enable-checking=yes"
ENABLE_CHECKING="--enable-checking=release"
#ENABLE_CHECKING=""
# Work around tail/head -1 changes
export _POSIX2_VERSION=199209
%if %{build_ada}
# Using the host gnatmake like
# CC="gcc%{hostsuffix}" GNATBIND="gnatbind%{hostsuffix}"
# GNATMAKE="gnatmake%{hostsuffix}"
# doesn't work due to PR33857, so an un-suffixed gnatmake has to be
# available
mkdir -p host-tools/bin
cp -a /usr/bin/gnatmake%{hostsuffix} host-tools/bin/gnatmake
cp -a /usr/bin/gnatlink%{hostsuffix} host-tools/bin/gnatlink
cp -a /usr/bin/gnatbind%{hostsuffix} host-tools/bin/gnatbind
cp -a /usr/bin/gcc%{hostsuffix} host-tools/bin/gcc
ln -sf /usr/%{_lib} host-tools/%{_lib}
export PATH="`pwd`/host-tools/bin:$PATH"
%endif
#%if 0%{?gcc_target_arch:1}
#%else
# --enable-threads=posix \
#%endif
# --enable-shared \
CFLAGS="$RPM_OPT_FLAGS" CXXFLAGS="$RPM_OPT_FLAGS" XCFLAGS="$RPM_OPT_FLAGS" \
TCFLAGS="$RPM_OPT_FLAGS" \
../configure \
--prefix=%{_prefix} \
--infodir=%{_infodir} \
--mandir=%{_mandir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
--enable-languages=$languages \
%if %{build_hsa}
--enable-offload-targets=hsa \
%endif
$ENABLE_CHECKING \
--with-gxx-include-dir=%{_prefix}/include/c++/%{gcc_dir_version} \
--enable-ssp \
--disable-libssp \
%if 0%{!?build_libvtv:1}
--disable-libvtv \
%endif
%ifnarch %mpx_arch
--disable-libmpx \
%endif
--disable-libcc1 \
%if %{enable_plugins}
--enable-plugin \
%else
--disable-plugin \
%endif
--with-bugurl="http://bugs.opensuse.org/" \
--with-pkgversion="SUSE Linux" \
--with-slibdir=/%{_lib} \
--with-system-zlib \
--enable-__cxa_atexit \
--enable-libstdcxx-allocator=new \
--disable-libstdcxx-pch \
%if 0%{suse_version} <= 1320
--with-default-libstdcxx-abi=gcc4-compatible \
%endif
--enable-version-specific-runtime-libs \
%if 0%{suse_version} > 1100
--enable-linker-build-id \
%endif
--enable-linux-futex \
%if %{suse_version} >= 1315
%ifarch %ix86 x86_64 ppc ppc64 ppc64le %arm aarch64 s390 s390x %sparc
--enable-gnu-indirect-function \
%endif
%endif
--program-suffix=%{binsuffix} \
%if 0%{?disable_32bit:1}
--disable-multilib \
%endif
%if 0%{!?gcc_target_arch:1}
%ifarch ia64
--with-system-libunwind \
%else
--without-system-libunwind \
%endif
%endif
%if 0%{?gcc_target_arch:1}
--program-prefix=%{gcc_target_arch}- \
--target=%{gcc_target_arch} \
--disable-nls \
%if 0%{?sysroot:1}
--with-sysroot=%sysroot \
%else
--with-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%if 0%{?build_sysroot:1}
--with-build-sysroot=%{build_sysroot} \
%else
%if 0%{?sysroot:1}
--with-build-sysroot=%{sysroot} \
%else
--with-build-sysroot=%{_prefix}/%{gcc_target_arch} \
%endif
%endif
%if 0%{?binutils_os:1}
--with-build-time-tools=/usr/%{binutils_os}/bin \
%endif
%if 0%{?gcc_target_newlib}
--with-newlib \
%if 0%{?gcc_libc_bootstrap:1}
--without-headers \
%endif
%endif
%if "%{TARGET_ARCH}" == "spu"
--with-gxx-include-dir=%sysroot/include/c++/%{gcc_dir_version} \
--with-newlib \
%endif
%endif
%if "%{TARGET_ARCH}" == "arm"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv5tel"
--with-arch=armv5te \
--with-float=soft \
--with-mode=arm \
--with-abi=aapcs-linux \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv6hl"
--with-arch=armv6zk \
--with-tune=arm1176jzf-s \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfp \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "armv7hl"
--with-arch=armv7-a \
--with-tune=cortex-a15 \
--with-float=hard \
--with-abi=aapcs-linux \
--with-fpu=vfpv3-d16 \
--disable-sjlj-exceptions \
%endif
%if "%{TARGET_ARCH}" == "powerpc" || "%{TARGET_ARCH}" == "powerpc64" || "%{TARGET_ARCH}" == "powerpc64le"
%if "%{TARGET_ARCH}" == "powerpc"
--with-cpu=default32 \
%endif
%if "%{TARGET_ARCH}" == "powerpc64le"
%if %{suse_version} >= 1315 && %{suse_version} != 1320
--with-cpu=power8 \
--with-tune=power8 \
%else
--with-cpu=power7 \
--with-tune=power7 \
%endif
%else
--with-cpu-64=power4 \
%endif
--enable-secureplt \
--with-long-double-128 \
%if "%{TARGET_ARCH}" == "powerpc64le"
--enable-targets=powerpcle-linux \
--disable-multilib \
%endif
%endif
%if "%{TARGET_ARCH}" == "sparc64"
--with-cpu=ultrasparc \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "sparc"
--with-cpu=v8 \
--with-long-double-128 \
%endif
%if "%{TARGET_ARCH}" == "i586"
--with-arch-32=i586 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "x86_64"
--enable-multilib \
--with-arch-32=x86-64 \
--with-tune=generic \
%endif
%if "%{TARGET_ARCH}" == "s390"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "s390x"
%if %{suse_version} >= 1310
--with-tune=zEC12 --with-arch=z196 \
%else
--with-tune=z9-109 --with-arch=z900 \
%endif
--with-long-double-128 \
--enable-decimal-float \
%endif
%if "%{TARGET_ARCH}" == "m68k"
--disable-multilib \
%endif
--build=%{GCCDIST} \
--host=%{GCCDIST}
STAGE1_FLAGS="-g"
# Only run profiled bootstrap on archs where it works and matters
%ifarch x86_64 ppc64le s390x aarch64
make profiledbootstrap STAGE1_CFLAGS="$STAGE1_FLAGS" BOOT_CFLAGS="$RPM_OPT_FLAGS" $PARALLEL
%else
make STAGE1_CFLAGS="$STAGE1_FLAGS" BOOT_CFLAGS="$RPM_OPT_FLAGS" $PARALLEL
%endif
make info
%if 0%{?run_tests:1}
echo "Run testsuite"
(make -C %{GCCDIST}/libstdc++-v3 check-abi || true)
mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.log %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.log
mv %{GCCDIST}/libstdc++-v3/testsuite/libstdc++.sum %{GCCDIST}/libstdc++-v3/testsuite/libstdc++-abi.sum
# asan needs a whole shadow address space
ulimit -v unlimited || true
make -k check $PARALLEL || true
mkdir ../testresults
../contrib/test_summary | tee ../testresults/test_summary.txt
%endif
%install
export NO_BRP_CHECK_BYTECODE_VERSION=true
cd obj-%{GCCDIST}
%if 0%{?run_tests:1}
cp `find . -name "*.sum"` ../testresults/
cp `find . -name "*.log" \! -name "config.log" | grep -v 'acats.\?/tests' ` ../testresults/
chmod 644 ../testresults/*
%endif
%if 0%{?run_tests:1}
%files
%defattr(-,root,root)
%doc testresults/test_summary.txt
%doc testresults/*.sum
%doc testresults/*.log
%endif
%changelog

221
gcc7.changes Normal file
View File

@ -0,0 +1,221 @@
-------------------------------------------------------------------
Fri Nov 25 08:30:28 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242874).
- Add avx5124fmapsintrin.h and avx5124vnniwintrin.h header files.
-------------------------------------------------------------------
Wed Nov 23 15:36:06 UTC 2016 - mliska@suse.cz
- Update to gcc trunk (r242828).
* Remove all Java related files and hunks in included patches.
* Remove gcc6-hsa-enablement.patch as it's part of trunk.
* Likewise for gcc41-java-slow_pthread_self.patch.
* Likewise for gcc6-SOURCE_DATE_EPOCH.patch.
* Likewise for gcc6-libsanitizer-aarch64-vma48.patch.
-------------------------------------------------------------------
Mon Nov 21 08:53:38 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r242645).
-------------------------------------------------------------------
Thu Nov 3 13:28:18 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r241818).
- Do not install removed pcommitintrin.h file on x86.
-------------------------------------------------------------------
Fri Oct 7 13:06:40 UTC 2016 - jslaby@suse.com
- add cross-hppa and cross-mips
-------------------------------------------------------------------
Tue Oct 4 12:55:20 UTC 2016 - schwab@suse.de
- gcc6-libsanitizer-aarch64-vma48.patch: add support for 48-bit VMA
- gcc5-libsanitize-aarch64-va42.patch: remove
-------------------------------------------------------------------
Tue Aug 30 07:43:28 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239849).
* Includes GCC 6.2 release.
* Includes fix for OVMF compilation.
- Refresh gcc-dir-version.patch.
-------------------------------------------------------------------
Wed Aug 17 18:43:55 UTC 2016 - jslaby@suse.com
- gcc6-devel: require gmp-devel and mpc-devel
-------------------------------------------------------------------
Wed Aug 17 08:51:42 UTC 2016 - mliska@suse.cz
- Update HSA_RUNTINE_LIB in gcc6-hsa-enablement.patch
-------------------------------------------------------------------
Mon Aug 15 12:30:00 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239476).
* includes GCC 6.2 RC1
- Make sure newlib crosses for the same target conflict
-------------------------------------------------------------------
Fri Aug 12 14:37:14 UTC 2016 - afaerber@suse.de
- Clean up newlib handling in spec files
* change_spec: Set new gcc_target_newlib in add_newlib_cross()
* gcc.spec.in: Converge per-target configure sections
* cross.spec.in: Prepare for more library options: gcc_target_glibc
-------------------------------------------------------------------
Fri Aug 12 09:37:52 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r239408).
- Remove gcc6-disable-aarch64-tsan.patch and re-enable TSAN for aarch64.
-------------------------------------------------------------------
Mon Aug 8 10:20:08 UTC 2016 - schwab@suse.de
- Enable ifunc attribute on archs with support for GNU_IFUNC in glibc
for SLE12 and up
-------------------------------------------------------------------
Sun Jul 31 10:53:38 UTC 2016 - afaerber@suse.de
- Prepare newlib targets epiphany, nds32le, rl78, rx
* Mostly forward-ported from gcc5 package
- change_spec: Add add_newlib_cross() convenience function
- Enable epiphany and rx packages
* Fix debugsources.list path for non-bootstrap packages w/debuginfo
-------------------------------------------------------------------
Thu Jul 7 11:58:26 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r238085)
* Fixes compile-time issues in the C++ frontend. [bnc#988017]
- Enable plugin support for Tumbleweed and add gcc6-devel package
for the hearder files required to develop plugins. [bnc#988009]
-------------------------------------------------------------------
Wed Jun 15 10:08:25 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237469)
- Refresh gcc6-SOURCE_DATE_EPOCH.patch with patch for PR71183.
- Use %preun instead of %postun for info file deletion. Register
libitm.info. [bnc#984767]
-------------------------------------------------------------------
Mon Jun 13 08:35:10 UTC 2016 - rguenther@suse.com
- Add cross-arm-gcc6 that should work with cross-arm-binutils and
defaults to armv6hl settings, but without builing an icecream
environment for it.
-------------------------------------------------------------------
Fri Jun 10 11:12:34 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r237296).
- Add gcc6-SOURCE_DATE_EPOCH.patch to backport SOURCE_DATE_EPOCH.
[bnc#982182]
-------------------------------------------------------------------
Mon Jun 6 11:29:15 UTC 2016 - rguenther@suse.com
- Update disk-space _constraints, add libgcj-gcc6 _constraints similar
to gcc6-testresults as that one is also building libjava.
-------------------------------------------------------------------
Wed Jun 1 13:17:59 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r236988).
- Enable profiledbootstrap for AARCH64.
-------------------------------------------------------------------
Tue May 10 09:59:24 UTC 2016 - rguenther@suse.com
- Add gcc6-disable-aarch64-tsan.patch to disable TSAN on aarch64 because
libtsan0 is not installable.
-------------------------------------------------------------------
Wed May 4 08:27:42 UTC 2016 - rguenther@suse.com
- Fix HSA build conditional for crosses.
-------------------------------------------------------------------
Mon May 2 07:22:08 UTC 2016 - rguenther@suse.com
- Update to gcc-6-branch head (r235696).
* Fixes libgcj_bc1 version check issue.
-------------------------------------------------------------------
Wed Apr 27 10:37:26 UTC 2016 - rguenther@suse.com
- Update to GCC 6.1.0 release (r235473).
* Includes fix for python3 miscompile [bnc#976024]
- Enable profiledbootstrap, but not if building libjava where also
disable bootstrap
-------------------------------------------------------------------
Mon Apr 18 14:01:38 UTC 2016 - martin.liska@suse.com
- Add gcc6-hsa-enablement.patch and enable HSA offloading target.
-------------------------------------------------------------------
Thu Apr 14 12:38:43 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234970).
-------------------------------------------------------------------
Thu Apr 14 12:05:43 UTC 2016 - rguenther@suse.com
- Enable Ada on ppc64le and aarch64.
-------------------------------------------------------------------
Thu Mar 24 09:16:23 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234449).
- Do not build libffi packages for now.
- Adds support for %disable_32bit.
- Build with release checking.
- Enable cross compiler builds.
-------------------------------------------------------------------
Thu Mar 10 12:45:44 UTC 2016 - rguenther@suse.com
- Update to SVN trunk head (r234106).
* Bumps libgo SO version to 9
* Bumps libffi SO version to 7
- Refresh gcc44-rename-info-files.patch
-------------------------------------------------------------------
Thu Dec 17 14:02:56 UTC 2015 - rguenther@suse.com
- New package, inherits from gcc5
* gcc-dir-version.patch, drop patchlevel from install directory names
* gcc-add-defaultsspec.diff, add the ability to provide a specs file
that is read by default
* libjava-no-multilib.diff, do not build multilibs for libjava even on
multilib systems (we use baselibs for it)
* tls-no-direct.diff, avoid direct %fs references on x86 to not slow down
Xen
* gcc43-no-unwind-tables.diff, do not produce unwind tables for CRT files
* gcc41-java-slow_pthread_self.patch, force us to assume pthread_self
is fast
* gcc41-ppc32-retaddr.patch, fix expansion of __builtin_return_addr for ppc
* gcc44-textdomain.patch, make translation files version specific and
adjust textdomain to find them
* gcc44-rename-info-files.patch, fix cross-references in info files when
renaming them to be version specific
* gcc48-libstdc++-api-reference.patch, fix link in the installed libstdc++
html documentation
* gcc48-remove-mpfr-2.4.0-requirement.patch, make GCC work with earlier
mpfr versions on old products
* gcc5-libsanitize-aarch64-va42.patch, make address sanitizer work with 42bit
address space on aarch64
* gcc5-no-return-gcc43-workaround.patch, make build work with host gcc 4.3
- Drops
* Wunprototyped-calls.diff because -std=gnu11 is default now.
* gcc5-libgo-fix-certificates-lookup.patch, no longer applies and is only
required for SLE11

3156
gcc7.spec Normal file

File diff suppressed because it is too large Load Diff

5
libffi-gcc7-rpmlintrc Normal file
View File

@ -0,0 +1,5 @@
# This line is mandatory to access the configuration functions
from Config import *
addFilter ("shlib-policy-name-error")

31
pre_checkin.sh Normal file
View File

@ -0,0 +1,31 @@
#!/bin/bash
# This script is called automatically during autobuild checkin.
case $0 in
\./*)
here=$PWD
;;
*/*)
here=${0%/*}
;;
*)
here=$PWD
;;
esac
case ${here##*/} in
gcc*.*)
# Handle maintainance projects with .$REPO suffix
suffix=${here##*/}
suffix=${suffix%%\.*}
set ${suffix#gcc}
;;
gcc-*)
suffix=${here##*/}
set ${suffix#*-}-
;;
gcc[0-9]*)
suffix=${here##*/}
set ${suffix#gcc}
;;
esac
. ${here}/change_spec

20
tls-no-direct.diff Normal file
View File

@ -0,0 +1,20 @@
For i?86 negative offsets to %fs segment accesses cause a hypervisor
trap for Xen. Avoid this by making accesses indirect.
??? Note that similar to the behavior on SLE11 this only affects
the compiler built on %ix86, not that on x86_64, even with -m32.
Index: gcc/config/i386/linux.h
===================================================================
--- gcc/config/i386/linux.h.orig 2015-12-17 15:07:37.785650062 +0100
+++ gcc/config/i386/linux.h 2015-12-17 15:08:06.393983290 +0100
@@ -24,3 +24,9 @@ along with GCC; see the file COPYING3.
#undef MUSL_DYNAMIC_LINKER
#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-i386.so.1"
+
+/* This slows down Xen, so take a very small general performance hit
+ for not accessing the %fs segment with negative offsets by making
+ GCC not emit direct accesses to %fs at all. */
+#undef TARGET_TLS_DIRECT_SEG_REFS_DEFAULT
+#define TARGET_TLS_DIRECT_SEG_REFS_DEFAULT 0