Compare commits

...

8 Commits

5 changed files with 644 additions and 167 deletions

View File

@ -0,0 +1,102 @@
Submitted By: Armin K. <krejzi at email dot com>
Date: 2014-05-10
Initial Package Version: 4.9.0
Upstream Status: Fixed Upstream
Origin: Upstream VCS
Description: Prevents compiler from generating broken code that would cause
some programs to segfault or behave incorrectly when compiled
with gcc-4.9.0
--- a/gcc/ipa-devirt.c 2014-04-08 07:35:11.000000000 +0200
+++ b/gcc/ipa-devirt.c 2014-05-10 16:46:14.502859179 +0200
@@ -987,6 +987,17 @@
context->outer_type = expected_type;
context->offset = 0;
context->maybe_derived_type = true;
+ context->maybe_in_construction = true;
+ /* POD can be changed to an instance of a polymorphic type by
+ placement new. Here we play safe and assume that any
+ non-polymorphic type is POD. */
+ if ((TREE_CODE (type) != RECORD_TYPE
+ || !TYPE_BINFO (type)
+ || !polymorphic_type_binfo_p (TYPE_BINFO (type)))
+ && (TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST
+ || (offset + tree_to_uhwi (TYPE_SIZE (expected_type)) <=
+ tree_to_uhwi (TYPE_SIZE (type)))))
+ return true;
return false;
}
--- a/gcc/testsuite/g++.dg/ipa/devirt-11.C 2013-09-08 18:42:21.000000000 +0200
+++ b/gcc/testsuite/g++.dg/ipa/devirt-11.C 2014-05-10 16:46:14.503859198 +0200
@@ -45,5 +45,5 @@
/* While inlining function called once we should devirtualize a new call to fn2
and two to fn3. While doing so the new symbol for fn2 needs to be
introduced. */
-/* { dg-final { scan-ipa-dump-times "Discovered a virtual call to a known target" 3 "inline" } } */
+/* { dg-final { scan-ipa-dump-times "Discovered a virtual call to a known target" 1 "inline" } } */
/* { dg-final { cleanup-ipa-dump "inline" } } */
--- a/gcc/testsuite/g++.dg/ipa/devirt-31.C 1970-01-01 01:00:00.000000000 +0100
+++ b/gcc/testsuite/g++.dg/ipa/devirt-31.C 2014-05-10 16:46:14.503859198 +0200
@@ -0,0 +1,23 @@
+/* { dg-options "-O2 -std=c++11 -fdump-ipa-inline" } */
+#include <new>
+
+class EmbeddedObject {
+public:
+ virtual int val() { return 2; }
+};
+
+class Container {
+ alignas(EmbeddedObject) char buffer[sizeof(EmbeddedObject)];
+public:
+ EmbeddedObject *obj() { return (EmbeddedObject*)buffer; }
+ Container() { new (buffer) EmbeddedObject(); }
+};
+
+Container o;
+
+int main()
+{
+ __builtin_printf("%d\n", o.obj()->val());
+}
+/* { dg-final { scan-ipa-dump-not "__builtin_unreachable" "inline" } } */
+/* { dg-final { cleanup-ipa-dump "inline" } } */
--- a/gcc/tree-ssa-threadedge.c 2014-01-02 23:23:26.000000000 +0100
+++ b/gcc/tree-ssa-threadedge.c 2014-05-10 16:45:59.053571881 +0200
@@ -387,7 +387,34 @@
&& (gimple_code (stmt) != GIMPLE_CALL
|| gimple_call_lhs (stmt) == NULL_TREE
|| TREE_CODE (gimple_call_lhs (stmt)) != SSA_NAME))
- continue;
+ {
+ /* STMT might still have DEFS and we need to invalidate any known
+ equivalences for them.
+
+ Consider if STMT is a GIMPLE_ASM with one or more outputs that
+ feeds a conditional inside a loop. We might derive an equivalence
+ due to the conditional. */
+ tree op;
+ ssa_op_iter iter;
+
+ if (backedge_seen)
+ FOR_EACH_SSA_TREE_OPERAND (op, stmt, iter, SSA_OP_DEF)
+ {
+ /* This call only invalidates equivalences created by
+ PHI nodes. This is by design to keep the cost of
+ of invalidation reasonable. */
+ invalidate_equivalences (op, stack, src_map, dst_map);
+
+ /* However, conditionals can imply values for real
+ operands as well. And those won't be recorded in the
+ maps. In fact, those equivalences may be recorded totally
+ outside the threading code. We can just create a new
+ temporary NULL equivalence here. */
+ record_temporary_equivalence (op, NULL_TREE, stack);
+ }
+
+ continue;
+ }
/* The result of __builtin_object_size depends on all the arguments
of a phi node. Temporarily using only one edge produces invalid

View File

@ -0,0 +1,15 @@
--- trunk/gcc/lra-lives.c 2014/05/30 08:43:05 211074
+++ trunk/gcc/lra-lives.c 2014/06/16 09:58:34 211701
@@ -558,7 +558,11 @@
/* It might be 'inheritance pseudo <- reload pseudo'. */
|| (src_regno >= lra_constraint_new_regno_start
&& ((int) REGNO (SET_DEST (set))
- >= lra_constraint_new_regno_start))))
+ >= lra_constraint_new_regno_start)
+ /* Remember to skip special cases where src/dest regnos are
+ the same, e.g. insn SET pattern has matching constraints
+ like =r,0. */
+ && src_regno != (int) REGNO (SET_DEST (set)))))
{
int hard_regno = -1, regno = -1;

View File

@ -0,0 +1,11 @@
--- gcc-5.2.0/Makefile.in.orig 2015-08-16 18:06:23.099725324 +0200
+++ gcc-5.2.0/Makefile.in 2015-08-16 18:06:33.553684921 +0200
@@ -43118,7 +43118,7 @@
$$s/$$module_srcdir/configure \
--srcdir=$${topdir}/$$module_srcdir \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
- --target=${target_alias} $(EXTRA_CONFIGARGS_LIBJAVA) \
+ --target=${target_alias} $(EXTRA_CONFIGARGS_LIBJAVA) --disable-multilib \
|| exit 1
@endif target-libjava

View File

@ -0,0 +1,36 @@
--- gcc-6.1.0/gcc/java/decl.c.orig 2016-02-08 16:36:16.000000000 +0100
+++ gcc-6.1.0/gcc/java/decl.c 2016-05-08 13:57:25.854163381 +0200
@@ -507,7 +507,7 @@
parse_version (void)
{
const char *p = version_string;
- unsigned int major = 0, minor = 0;
+ unsigned int major = 0;
unsigned int abi_version;
/* Skip leading junk. */
@@ -525,13 +525,6 @@
gcc_assert (*p == '.' && ISDIGIT (p[1]));
++p;
- /* Extract minor version. */
- while (ISDIGIT (*p))
- {
- minor = minor * 10 + *p - '0';
- ++p;
- }
-
if (flag_indirect_dispatch)
{
abi_version = GCJ_CURRENT_BC_ABI_VERSION;
--- gcc-6.1.0/gcc/java/decl.c.orig 2016-05-08 17:15:16.964134546 +0200
+++ gcc-6.1.0/gcc/java/decl.c 2016-05-08 17:15:25.304134521 +0200
@@ -535,7 +535,7 @@
/* Implicit in this computation is the idea that we won't break the
old-style binary ABI in a sub-minor release (e.g., from 4.0.0 to
4.0.1). */
- abi_version = 100000 * major + 1000 * minor;
+ abi_version = 100000 * major;
}
if (flag_bootstrap_classes)
abi_version |= FLAG_BOOTSTRAP_LOADER;

647
gcc.spec
View File

@ -27,21 +27,23 @@
%define disable_cpp 1
%define disable_doc 1
%define disable_java 1
%define disable_go 1
%endif
%if "%{?stage2}" == "1"
%define bootstrap_append -stage2
%endif
#% if "%{?stage2}" == "1"
# % define bootstrap_append -stage2
#% endif
%define libstdcxx_name libstdc++6
%define libgcj_name libgcj4
%define java_home %{_jvmdir}/java-1.5.0-gcj-1.5.0.0/jre
%define MAJver %(echo %version | cut -d. -f 1)
%define majver %(echo %version | cut -d. -f 1-2)
Name: gcc
Version: 4.8.2
Release: 1mamba
Version: 6.1.0
Release: 2mamba
Summary: GNU Compiler Collection (C, C++, Fortran, Java, Ada)
Group: Applications/Development
Vendor: openmamba
@ -65,6 +67,10 @@ Patch11: %{name}-4.5.1-psignal_fix_bootstrap_build.patch
Patch12: %{name}-4.5.2-arm_define_ARM_PCS_and_ARM_PCS_VFP.patch
Patch13: %{name}-4.5.3-avr-new-devices.patch
Patch14: gcc-4.8.0-libffi-texinfo.patch
Patch15: gcc-4.9.0-upstream-fixes-1.patch
Patch16: gcc-4.9.2-arm-lra-bootstrap.patch
Patch17: gcc-5.2.0-libjava-disable-multilib.patch
Patch18: gcc-6.1.0-gcj-remove-minor-handling.patch
License: GPL
## AUTOBUILDREQ-BEGIN
## AUTOBUILDREQ-END
@ -72,6 +78,19 @@ License: GPL
BuildRequires: binutils
%else
BuildRequires: cross-%{_target_platform}-binutils
%if "%{?stage1}" == "1"
BuildRequires: cross-%{_target_platform}-glibc-stage1
%endif
%if "%{?stage2}" == "1"
BuildRequires: cross-%{_target_platform}-glibc-stage2
%endif
%if "%{?stage1}" != "1"
%if "%{?stage2}" != "1"
%if "%{target_cpu}" != "avr"
BuildRequires: cross-%{_target_platform}-glibc
%endif
%endif
%endif
%endif
BuildRequires: libz-devel
BuildRequires: gettext
@ -83,7 +102,7 @@ BuildRequires: libmpc-devel
BuildRequires: libmpfr-devel >= 2.1.2
%if "%{_target_platform}" == "%{_build}"
BuildRequires: glibc-devel >= 2.5
%if "%{?stage2}" != "1"
#% if "%{?stage2}" != "1"
BuildRequires: tetex >= 3.0
BuildRequires: libgtk2-devel >= 2.8.17
BuildRequires: libalsa-devel >= 1.0.11
@ -101,7 +120,8 @@ BuildRequires: antlr
%endif
BuildRequires: libcairo-devel >= 1.4.10
BuildRequires: libxcb-util-devel >= 0.2
%endif
BuildRequires: libisl-devel = 0.14
#% endif
#% else
# BuildRequires: cross-%{target_cpu}-glibc%{?glibc_require_append} >= 2.5
%endif
@ -196,6 +216,21 @@ Requires: %{libstdcxx_name} = %{version}-%{release}
This is the GNU implementation of the standard C++ libraries.
This package includes the files used by gdb for debugging.
%package -n libcc1
Summary: GNU cc1 plugin for GDB
Group: System/Libraries
%description -n libcc1
GCC cc1 plugin for GDB.
%package -n libcc1-devel
Summary: GNU cc1 plugin for GDB development files
Group: Development/Libraries
Requires: libcc1 = %{version}-%{release}
%description -n libcc1-devel
GCC cc1 plugin for GDB development files.
#
# Java Compiler
#
@ -245,6 +280,33 @@ Obsoletes: gcc-g77, gcc-gfortran
%description fortran
This package adds support for compiling Fortran 95 programs with the GNU compiler.
#
# Go compiler
#
%package go
Summary: The GNU compiler for the Go programming language
Group: System/Libraries
Requires: libgo = %{version}-%{release}
Requires: libgo-devel = %{version}-%{release}
%description go
The GNU compiler for the Go programming language.
%package -n libgo
Summary: Library for the Go programmi language
Group: System/Libraries
%description -n libgo
Library for the Go programmi language.
%package -n libgo-devel
Summary: Development headers and static library for libgo
Group: Development/Libraries
Requires: libgo = %{version}-%{release}
%description -n libgo-devel
Development files for the library for the Go programmi language.
#
# Fortran 95 Libraries
#
@ -255,6 +317,13 @@ Group: System/Libraries
%description -n libgfortran
This package contains Fortran 95 shared library which is needed to run Fortran 95 dynamically linked programs.
%package -n libiberty-devel
Summary: Development files for libiberty
Group: Development/Libraries
%description -n libiberty-devel
This package contains the libiberty static library and includes.
%package -n libitm
Summary: Transactional Memory library
Group: System/Libraries
@ -301,22 +370,23 @@ Requires: libobjc = %{version}-%{release}
%description -n libobjc-devel
This package contains Objective-C static library and includes which are needed to build Objective-C statically linked programs.
%package -n libmudflap
Summary: GCC mudflap support
#
# libmpx packages
#
%package -n libmpx
Summary: GCC MPX library
Group: System/Libraries
%description -n libmudflap
This package contains GCC shared support library which is needed for mudflap support.
%description -n libmpx
This package contains the GCC MPX library.
%package -n libmudflap-devel
Summary: GCC mudflap support
%package -n libmpx-devel
Summary: libmpx development libraries and headers
Group: Development/Libraries
Requires: libmudflap = %{version}-%{release}
Requires: libmpx = %{version}-%{release}
%description -n libmudflap-devel
This package contains headers and static libraries for building mudflap-instrumented programs.
To instrument a non-threaded program, add -fmudflap option to GCC and when linking add -lmudflap, for threaded programs also add -fmudflapth and -lmudflapth.
%description -n libmpx-devel
This package contains static libraries and headers to be used for development.
#
# libssp packages
@ -372,6 +442,21 @@ Requires: libasan = %{version}-%{release}
%description -n libasan-devel
This package contains static libraries and headers to be used for development.
%package -n liblsan
Summary: GCC Leak Sanitizer runtime library
Group: System/Libraries
%description -n liblsan
This package contains the GCC Leak Sanitizer runtime library.
%package -n liblsan-devel
Summary: liblsan development libraries and headers
Group: Development/Libraries
Requires: liblsan = %{version}-%{release}
%description -n liblsan-devel
This package contains static libraries and headers to be used for development.
%package -n libatomic
Summary: GCC Atomic library
Group: System/Libraries
@ -380,13 +465,58 @@ Group: System/Libraries
This package contains the GCC Atomic library.
%package -n libatomic-devel
Summary: libatimic development libraries and headers
Summary: libatomic development libraries and headers
Group: Development/Libraries
Requires: libatomic = %{version}-%{release}
%description -n libatomic-devel
This package contains static libraries and headers to be used for development.
%package -n libcilkrts
Summary: GCC Cilk runtime library
Group: System/Libraries
%description -n libcilkrts
This package contains the GCC Cilk runtime library.
%package -n libcilkrts-devel
Summary: libubsan development libraries and headers
Group: Development/Libraries
Requires: libcilkrts = %{version}-%{release}
%description -n libcilkrts-devel
This package contains static libraries and headers to be used for development.
%package -n libubsan
Summary: GCC Undefined Behavior Sanitizer library
Group: System/Libraries
%description -n libubsan
This package contains the GCC Undefined Behavior Sanitizer library.
%package -n libubsan-devel
Summary: libubsan development libraries and headers
Group: Development/Libraries
Requires: libubsan = %{version}-%{release}
%description -n libubsan-devel
This package contains static libraries and headers to be used for development.
%package -n libvtv
Summary: GCC vtable verification library
Group: System/Libraries
%description -n libvtv
This package contains the GCC vtable verification library.
%package -n libvtv-devel
Summary: libubsan development libraries and headers
Group: Development/Libraries
Requires: libvtv = %{version}-%{release}
%description -n libvtv-devel
This package contains static libraries and headers to be used for development.
#
# Documentation
#
@ -411,8 +541,9 @@ AutoReqProv: no
Cross Platform gcc for %{_target_platform}.
%prep
%setup -n gcc-%{version}%{?gcc_extraver} -q -D -T
:<< ___EOF
%setup -q -n gcc-%{version}%{?gcc_extraver}
#-D -T
#:<< ___EOF
%patch2 -p0
sed -i -e 's/libjawt/libgcjawt/g' libjava/Makefile.{am,in}
@ -432,16 +563,21 @@ sed -i -e 's/libjawt/libgcjawt/g' libjava/Makefile.{am,in}
%patch11 -p1
#%patch12 -p1
#%patch13 -p1
%patch14 -p1
#%patch14 -p1
#%patch15 -p1
#%patch16 -p1
%patch17 -p1
%patch18 -p1
%build
:<< ____EOF
#:<< ____EOF
rm -rf ../%{name}-build
____EOF
mkdir ../%{name}-build &&
#____EOF
mkdir -p ../%{name}-build
cd ../%{name}-build
slibdir=/%{_lib}
slibdir=%{_libdir}
# BUILD_LANGUAGES is only used in final (not staged) build
BUILD_LANGUAGES=c,objc,lto
@ -460,6 +596,9 @@ BUILD_LANGUAGES="${BUILD_LANGUAGES},fortran"
# Java depends on gdk
BUILD_LANGUAGES="${BUILD_LANGUAGES},java"
%endif
%if "%{disable_go}" != "1"
BUILD_LANGUAGES="${BUILD_LANGUAGES},go"
%endif
case %{_target_platform} in
i386-*|i486-*|i586-*|i686-*|athlon-*)
@ -469,7 +608,13 @@ case %{_target_platform} in
ADDITIONAL_OPTS=""
;;
arm-*)
ADDITIONAL_OPTS=""
abi=%{_target_platform}
abi=`echo ${abi/*-}`
if [ "$abi" = "gnueabihf" ]; then
ADDITIONAL_OPTS="--with-float=hard"
else
ADDITIONAL_OPTS=""
fi
#"--enable-multilib"
;;
avr*)
@ -478,9 +623,9 @@ case %{_target_platform} in
;;
x86_64-*)
%if "%{_target_platform}" != "%{_host}"
ADDITIONAL_OPTS="--with-slibdir=/usr/%{_target_platform}/lib64 --disable-multilib"
ADDITIONAL_OPTS="--disable-libjava-multilib --with-slibdir=/usr/%{_target_platform}/lib64 --disable-multilib"
%else
ADDITIONAL_OPTS="--with-slibdir=/lib64"
ADDITIONAL_OPTS="--with-slibdir=$slibdir"
%endif
;;
*)
@ -502,16 +647,18 @@ esac
--disable-nls \
--disable-shared \
--disable-threads \
--enable-languages=c,objc,fortran \
--enable-languages=c \
--with-newlib \
--without-headers \
--disable-libmudflap \
--disable-libssp \
--disable-libgomp \
--disable-libquadmath \
--disable-libatomic \
%if "%{_target_platform}" != "%{_host}"
--with-local-prefix=/usr/%{_target_platform} \
%endif
$ADDITIONAL_OPTS
make %{?_smp_mflags}
# all-gcc
@ -535,9 +682,11 @@ CROSS_SYSTEM_HEADER_DIR=/usr/%{_target_platform}/include \
--enable-clocale=gnu \
--x-includes=%{_includedir} \
--x-libraries=%{_libdir} \
%if "%{disable_java}" != "1"
--enable-java-awt=gtk \
--with-java-home=%{java_home} \
--enable-libgcj-multifile \
%endif
--with-system-zlib \
%if "%{?disable_jack}" == "1"
--disable-dssi \
@ -546,6 +695,7 @@ CROSS_SYSTEM_HEADER_DIR=/usr/%{_target_platform}/include \
--enable-symvers=gnu \
--with-local-prefix=/usr/%{_target_platform} \
%else
--enable-install-libiberty \
--with-slibdir=$slibdir \
%endif
%endif
@ -556,7 +706,11 @@ CROSS_SYSTEM_HEADER_DIR=/usr/%{_target_platform}/include \
%if "%{_target_platform}" != "%{_build}"
make %{?_smp_mflags} CFLAGS='' LIBCFLAGS='-g -O2' \
LIBCXXFLAGS='-g -O2 -fno-implicit-templates' all
LIBCXXFLAGS='-g -O2 -fno-implicit-templates' all \
%ifarch x86_64
CXXCPP=%{_libdir}/cpp
%endif
%else
make %{?_smp_mflags} CFLAGS='-O -I/usr/include/freetype2' LIBCFLAGS='-g -O2' \
LIBCXXFLAGS='-g -O2 -fno-implicit-templates' bootstrap
@ -586,10 +740,10 @@ for p in gcc gcc-ar gcc-nm gcc-ranlib cc gcov c++ g++ gcj gfortran; do
done
# create symlinks
mkdir -p %{buildroot}/%{_lib}
ln -s ../usr/bin/cpp %{buildroot}/%{_lib}/cpp
ln -s ../bin/cpp %{buildroot}%{_libdir}
ln -s gcc %{buildroot}/usr/bin/cc
# mkdir -p %{buildroot}/%{_lib}
# ln -s ../usr/bin/cpp %{buildroot}/%{_lib}/cpp
ln -s ../bin/cpp %{buildroot}%{_libdir}
ln -s gcc %{buildroot}/usr/bin/cc
#
# Documentation
@ -630,12 +784,10 @@ cp gcc/doc/*.pdf %{_builddir}/gcc-%{version}%{?gcc_extraver}/gcc/doc/
mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_libdir}
mv %{buildroot}%{_libdir}/libstdc++.so.*-gdb.py %{buildroot}%{_datadir}/gdb/auto-load/%{_libdir}/
%ifarch x86_64
%if "%{_target_platform}" != "%{_host}"
# fix for 32bit multilib build
mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/lib
mv %{buildroot}%{_prefix}/lib/libstdc++.so.*-gdb.py %{buildroot}%{_datadir}/gdb/auto-load/%{_prefix}/lib/
%endif
%endif
(cd ../gcc-%{version}%{?gcc_extraver}
%find_lang gcc
@ -649,7 +801,7 @@ mv %{buildroot}%{_prefix}/lib/libstdc++.so.*-gdb.py %{buildroot}%{_datadir}/gdb/
#done)
# fix permissions
chmod 755 %{buildroot}/%{_lib}/libgcc_s.so.1
#chmod 755 %{buildroot}/%{_lib}/libgcc_s.so.1
#cp gcc/doc/*.pdf ../gcc-%{version}%{?gcc_extraver}/gcc/doc/
%else # target_platform != host
@ -657,17 +809,14 @@ chmod 755 %{buildroot}/%{_lib}/libgcc_s.so.1
rm -rf %{buildroot}%{_mandir}/man7/{fsf-funding.*,gfdl.*,gpl.*}
rm -rf %{buildroot}%{_datadir}/locale/*
rm -rf %{buildroot}%{_datadir}/gcc-%{version}/python/libstdcxx/*
# FIXME: since 5.2.0
rm -rf %{buildroot}%{_libdir}/libcc1.*
%endif
# remove ffi provided by external package
rm -f %{buildroot}%{_libdir}/libffi*
rm -f %{buildroot}%{_libdir}/nof/libffi*
rm -f %{buildroot}%{_mandir}/man3/ffi*.3*
rm -f %{buildroot}%{_infodir}/libffi.info*
# remove libiberty (we use the one from binutils)
rm -f %{buildroot}%{_libdir}/libiberty.a
rm -f %{buildroot}%{_libdir}/nof/libiberty.a
rm -f %{buildroot}%{_prefix}/%{_target_platform}/%{_lib}/libiberty.a
rm -f %{buildroot}%{_prefix}/%{_target_platform}/%{_lib}/nof/libiberty.a
# don't strip libraries for avr
%if "%{target_cpu}" == "avr"
@ -692,9 +841,15 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%post -n libquadmath -p /sbin/ldconfig
%postun -n libquadmath -p /sbin/ldconfig
%post -n libasan -p /sbin/ldconfig
%post -n libatomic -p /sbin/ldconfig
%postun -n libatomic -p /sbin/ldconfig
%post -n libasan -p /sbin/ldconfig
%postun -n libasan -p /sbin/ldconfig
%post -n liblsan -p /sbin/ldconfig
%postun -n liblsan -p /sbin/ldconfig
%post doc
%install_info cppinternals.info
%install_info gcc.info
@ -731,6 +886,7 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%{_bindir}/gcc-nm
%{_bindir}/gcc-ranlib
%{_bindir}/gcov
%{_bindir}/gcov-tool
%{_bindir}/%{_target_platform}-cc
%{_bindir}/%{_target_platform}-gcc-%{version}
%{_bindir}/%{_target_platform}-gcc
@ -738,7 +894,6 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%{_bindir}/%{_target_platform}-gcc-nm
%{_bindir}/%{_target_platform}-gcc-ranlib
%{_bindir}/%{_target_platform}-gcov
%{_libdir}/cpp
%dir %{_libdir}/gcc
%{_libdir}/gcc/*
%ifarch x86_64
@ -746,6 +901,7 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%endif
%dir %{_prefix}/libexec/gcc/%{_target_platform}/%{version}
%{_prefix}/libexec/gcc/%{_target_platform}/%{version}/*
%{_datadir}/gcc-%{version}/python/libstdcxx/__init__.py
%{_datadir}/gcc-%{version}/python/libstdcxx/v6/__init__.py
%{_datadir}/gcc-%{version}/python/libstdcxx/v6/printers.py
@ -767,20 +923,38 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%files -n libgcc
%defattr(-,root,root)
/%{_lib}/libgcc*
%{_libdir}/libgcc*
%ifarch ppc
/%{_lib}/nof/libgcc*
%{_libdir}/nof/libgcc*
%endif
%files cpp -f cpplib.lang
%defattr(-,root,root)
/%{_lib}/cpp
%{_libdir}/cpp
%{_bindir}/cpp
%{_mandir}/man1/cpp.1*
%if "%{_target_platform}" == "%{_build}"
%{_infodir}/cp-tools.info.*
%endif
%files -n libiberty-devel
%defattr(-,root,root)
%dir %{_includedir}/libiberty
%{_includedir}/libiberty/*.h
%{_libdir}/libiberty.a
#%{_prefix}/%{_target_platform}/%{_lib}/libiberty.a
#%{_libdir}/nof/libiberty.a
#%{_prefix}/%{_target_platform}/%{_lib}/nof/libiberty.a
%files -n libcc1
%defattr(-,root,root)
%{_libdir}/libcc1.so.*
%files -n libcc1-devel
%defattr(-,root,root)
%{_libdir}/libcc1.la
%{_libdir}/libcc1.so
%files -n libitm
%defattr(-,root,root)
%{_libdir}/libitm.so.*
@ -796,6 +970,7 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%files -n libgomp
%defattr(-,root,root)
%{_libdir}/libgomp.so.*
#%{_libdir}/libgomp-plugin-host_nonshm.so.*
%ifarch ppc
%{_libdir}/nof/libgomp.so.*
%endif
@ -805,6 +980,8 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%{_libdir}/libgomp.a
%{_libdir}/libgomp.la
%{_libdir}/libgomp.so
#%{_libdir}/libgomp-plugin-host_nonshm.la
#%{_libdir}/libgomp-plugin-host_nonshm.so
%{_libdir}/libgomp.spec
%ifarch ppc
%{_libdir}/nof/libgomp.a
@ -834,32 +1011,6 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%dir %{_libdir}/gcc/%{_target_platform}/%{version}/include/objc
%{_libdir}/gcc/%{_target_platform}/%{version}/include/objc/*
%files -n libmudflap
%defattr(-,root,root)
%{_libdir}/libmudflap.so.*
%{_libdir}/libmudflapth.so.*
%ifarch ppc
%{_libdir}/nof/libmudflap.so.*
%{_libdir}/nof/libmudflapth.so.*
%endif
%files -n libmudflap-devel
%defattr(-,root,root)
%{_libdir}/libmudflap.a
%{_libdir}/libmudflap.la
%{_libdir}/libmudflap.so
%{_libdir}/libmudflapth.a
%{_libdir}/libmudflapth.la
%{_libdir}/libmudflapth.so
%ifarch ppc
%{_libdir}/nof/libmudflap.a
%{_libdir}/nof/libmudflap.la
%{_libdir}/nof/libmudflap.so
%{_libdir}/nof/libmudflapth.a
%{_libdir}/nof/libmudflapth.la
%{_libdir}/nof/libmudflapth.so
%endif
%files -n libssp
%defattr(-,root,root)
%{_libdir}/libssp.so.*
@ -884,12 +1035,9 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%dir %{_libdir}/gcc/%{_target_platform}/%{version}/include/ssp
%{_libdir}/gcc/%{_target_platform}/%{version}/include/ssp/*
%ifnarch arm
%files -n libasan
%defattr(-,root,root)
%ifnarch arm
%{_libdir}/libasan.so.*
%endif
%ifarch x86_64
%{_libdir}/libtsan.so.*
%endif
@ -905,6 +1053,17 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%{_libdir}/libtsan.la
%{_libdir}/libtsan.so
%endif
%ifarch x86_64
%files -n liblsan
%defattr(-,root,root)
%{_libdir}/liblsan.so.*
%files -n liblsan-devel
%defattr(-,root,root)
%{_libdir}/liblsan.a
%{_libdir}/liblsan.la
%{_libdir}/liblsan.so
%endif
%files -n libatomic
@ -917,6 +1076,57 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%{_libdir}/libatomic.la
%{_libdir}/libatomic.so
%ifnarch arm
%files -n libcilkrts
%defattr(-,root,root)
%{_libdir}/libcilkrts.so.*
%files -n libcilkrts-devel
%defattr(-,root,root)
%{_libdir}/libcilkrts.a
%{_libdir}/libcilkrts.la
%{_libdir}/libcilkrts.so
%{_libdir}/libcilkrts.spec
%endif
%ifnarch arm
%files -n libmpx
%defattr(-,root,root)
%{_libdir}/libmpx.so.*
%{_libdir}/libmpxwrappers.so.*
%files -n libmpx-devel
%defattr(-,root,root)
%{_libdir}/libmpx.a
%{_libdir}/libmpx.la
%{_libdir}/libmpx.so
%{_libdir}/libmpx.spec
%{_libdir}/libmpxwrappers.a
%{_libdir}/libmpxwrappers.la
%{_libdir}/libmpxwrappers.so
%endif
%files -n libubsan
%defattr(-,root,root)
%{_libdir}/libubsan.so.*
%files -n libubsan-devel
%defattr(-,root,root)
%{_libdir}/libubsan.a
%{_libdir}/libubsan.la
%{_libdir}/libubsan.so
%{_libdir}/libsanitizer.spec
%files -n libvtv
%defattr(-,root,root)
%{_libdir}/libvtv.so.*
%files -n libvtv-devel
%defattr(-,root,root)
%{_libdir}/libvtv.a
%{_libdir}/libvtv.la
%{_libdir}/libvtv.so
%if "%{disable_cpp}" != "1"
#
# C++ language
@ -927,6 +1137,7 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%{_bindir}/g++
%{_bindir}/%{_target_platform}-c++
%{_bindir}/%{_target_platform}-g++
%{_datadir}/gcc-%{version}/python/libstdcxx/v6/xmethods.py
%{_mandir}/man1/g++.1.*
%doc gcc/cp/ChangeLog*
@ -946,6 +1157,7 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%{_libdir}/libstdc++.*a
%{_libdir}/libstdc++.so
%{_libdir}/libsupc++.*a
%{_libdir}/libstdc++fs.*a
%ifarch ppc
%{_libdir}/nof/libstdc++.*a
%{_libdir}/nof/libstdc++.so
@ -986,9 +1198,9 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%{_bindir}/gappletviewer
%{_bindir}/gjar
%{_bindir}/gjavah
%if "%{disable_gjdoc}" != "1"
#%if "%{disable_gjdoc}" != "1"
%{_bindir}/gjdoc
%endif
#%endif
%{_bindir}/gnative2ascii
%{_bindir}/gorbd
%{_bindir}/gjarsigner
@ -1099,7 +1311,7 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
#%{_libdir}/lib-gnu-java-awt-peer-gtk.la
#%{_libdir}/lib-gnu-java-awt-peer-gtk.so
%{_datadir}/java/src-%{version}.zip
%{_libdir}/pkgconfig/libgcj-%{majver}.pc
%{_libdir}/pkgconfig/libgcj-%{MAJver}.pc
%{_mandir}/man1/jv-convert.1.*
#%doc rpm.doc/boehm-gc/*
#%doc rpm.doc/libjava/*
@ -1158,6 +1370,35 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%{_libdir}/libquadmath.so
%endif
#
# go language
#
%files go
%defattr(-,root,root)
%{_bindir}/gccgo
%{_bindir}/go
%{_bindir}/gofmt
%{_bindir}/%{_target_platform}-gccgo
%{_infodir}/gccgo.info*
%{_mandir}/man1/gccgo.1*
%{_mandir}/man1/go.1*
%{_mandir}/man1/gofmt.1*
%files -n libgo
%defattr(-,root,root)
%{_libdir}/libgo.so.*
%dir %{_libdir}/go/%{version}/%{_target_platform}
%{_libdir}/go/%{version}/%{_target_platform}/*
%files -n libgo-devel
%defattr(-,root,root)
%{_libdir}/libgo.a
%{_libdir}/libgo.la
%{_libdir}/libgo.so
%{_libdir}/libgobegin.a
%{_libdir}/libgolibbegin.a
%{_libdir}/libnetgo.a
%if "%{disable_doc}" != "1"
%files doc
%defattr(-,root,root)
@ -1182,6 +1423,121 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%doc gcc/doc/gccint.pdf
%endif # "%{disable_doc}" != "1"
#
# Multilib
#
%ifarch x86_64
%files -n gcc-multilib
%defattr(-,root,root)
%dir %{_libdir}/gcc/%{_target_platform}/%{version}/32
%{_libdir}/gcc/%{_target_platform}/%{version}/32/*
%{_prefix}/lib/libgcc_s.so
%{_prefix}/lib/libgcc_s.so.1
#
%{_prefix}/lib/libstdc++.*a
%{_prefix}/lib/libstdc++.so
%{_prefix}/lib/libstdc++.so.*
%{_prefix}/lib/libstdc++fs.*a
#
%{_prefix}/lib/libasan.a
%{_prefix}/lib/libasan.la
%{_prefix}/lib/libasan.so
%{_prefix}/lib/libasan.so.*
%{_prefix}/lib/libasan_preinit.o
%{_prefix}/lib/libatomic.a
%{_prefix}/lib/libatomic.la
%{_prefix}/lib/libatomic.so
%{_prefix}/lib/libatomic.so.*
#
#%{_prefix}/lib/gcj-*/*
#%{_prefix}/lib/libgcj-tools.la
#%{_prefix}/lib/libgcj-tools.so
#%{_prefix}/lib/libgcj-tools.so.*
#%{_prefix}/lib/libgcj.la
#%{_prefix}/lib/libgcj.so
#%{_prefix}/lib/libgcj.so.*
#%{_prefix}/lib/libgcj_bc.so
#%{_prefix}/lib/libgcj_bc.so.*
#%{_prefix}/lib/libgij.la
#%{_prefix}/lib/libgij.so
#%{_prefix}/lib/libgij.so.*
#%{_prefix}/lib/logging.properties
#%{_prefix}/lib/security/classpath.security
#%{_prefix}/lib/pkgconfig/libgcj-*.pc
#
%{_prefix}/lib/libgfortran.a
%{_prefix}/lib/libgfortran.la
%{_prefix}/lib/libgfortran.so
%{_prefix}/lib/libgfortran.so.*
%{_prefix}/lib/libgfortran.spec
#
# go
#
%dir %{_prefix}/lib/go
%dir %{_prefix}/lib/go/%{version}
%dir %{_prefix}/lib/go/%{version}/%{_target_platform}
%{_prefix}/lib/go/%{version}/%{_target_platform}/*
%{_prefix}/lib/libgo.a
%{_prefix}/lib/libgo.la
%{_prefix}/lib/libgo.so
%{_prefix}/lib/libgo.so.*
%{_prefix}/lib/libgobegin.a
%{_prefix}/lib/libgolibbegin.a
%{_prefix}/lib/libnetgo.a
#
#
#
%{_prefix}/lib/libgomp.a
%{_prefix}/lib/libgomp.la
%{_prefix}/lib/libgomp.so
%{_prefix}/lib/libgomp.so.*
%{_prefix}/lib/libgomp.spec
#%{_prefix}/lib/libgomp-plugin-host_nonshm.la
#%{_prefix}/lib/libgomp-plugin-host_nonshm.so
#%{_prefix}/lib/libgomp-plugin-host_nonshm.so.*
/usr/lib/libitm.a
/usr/lib/libitm.la
/usr/lib/libitm.so
/usr/lib/libitm.so.*
/usr/lib/libitm.spec
/usr/lib/libmpx*.a
/usr/lib/libmpx*.la
/usr/lib/libmpx*.so
/usr/lib/libmpx*.so.*
/usr/lib/libmpx.spec
/usr/lib/libobjc.a
/usr/lib/libobjc.la
/usr/lib/libobjc.so
/usr/lib/libobjc.so.*
/usr/lib/libssp.a
/usr/lib/libssp.la
/usr/lib/libssp.so
/usr/lib/libssp.so.*
/usr/lib/libssp_nonshared.a
/usr/lib/libssp_nonshared.la
/usr/lib/libsupc++.a
/usr/lib/libsupc++.la
/usr/lib/libcilkrts.a
/usr/lib/libcilkrts.la
/usr/lib/libcilkrts.so
/usr/lib/libcilkrts.so.*
/usr/lib/libcilkrts.spec
/usr/lib/libquadmath.a
/usr/lib/libquadmath.la
/usr/lib/libquadmath.so
/usr/lib/libquadmath.so.*
/usr/lib/libsanitizer.spec
/usr/lib/libubsan.a
/usr/lib/libubsan.la
/usr/lib/libubsan.so
/usr/lib/libubsan.so.*
/usr/lib/libvtv.a
/usr/lib/libvtv.la
/usr/lib/libvtv.so
/usr/lib/libvtv.so.*
%{_datadir}/gdb/auto-load/usr/lib/libstdc++.so.*-gdb.py
%endif
%else
#
# Cross-platform single package
@ -1192,12 +1548,16 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%if "%{_target_platform}" != "avr"
%if "%{?stage1}" != "1"
%{_prefix}/%{_target_platform}/include/*
%if "%{target_cpu}" == "x86_64"
%{_prefix}/%{_target_platform}/%{_lib}/*
%else
%{_prefix}/%{_target_platform}/lib/*
%endif
%{_prefix}/%{_target_platform}/%{_lib}/libgfortran.a
%{_prefix}/%{_target_platform}/%{_lib}/libgfortran.la
%{_prefix}/%{_target_platform}/%{_lib}/libobjc.a
%{_prefix}/%{_target_platform}/%{_lib}/libobjc.la
%endif
#%{_prefix}/%{_target_platform}/%{_lib}/libgfortran.a
#%{_prefix}/%{_target_platform}/%{_lib}/libgfortran.la
#%{_prefix}/%{_target_platform}/%{_lib}/libobjc.a
#%{_prefix}/%{_target_platform}/%{_lib}/libobjc.la
%if "%{target_cpu}" == "ppc"
%{_prefix}/%{_target_platform}/%{_lib}/nof/libgfortran.a
%{_prefix}/%{_target_platform}/%{_lib}/nof/libgfortran.la
@ -1206,93 +1566,46 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%endif
%endif
%{_libdir}/gcc/%{_target_platform}/%{version}/*
%if "%{target_cpu}" == "x86_64"
%{_libexecdir}/gcc/%{_target_platform}/%{version}/*
%else
%{_prefix}/libexec/gcc/%{_target_platform}/%{version}/*
%endif
%{_mandir}/man1/%{_target_platform}-*
%endif # cross-platform
%ifarch x86_64
%files -n gcc-multilib
%defattr(-,root,root)
%dir %{_libdir}/gcc/%{_target_platform}/%{version}/32
%{_libdir}/gcc/%{_target_platform}/%{version}/32/*
/lib/libgcc_s.so
/lib/libgcc_s.so.1
/usr/lib/gcj-*/*
%{_prefix}/lib/libasan.a
%{_prefix}/lib/libasan.la
%{_prefix}/lib/libasan.so
%{_prefix}/lib/libasan.so.*
%{_prefix}/lib/libasan_preinit.o
%{_prefix}/lib/libatomic.a
%{_prefix}/lib/libatomic.la
%{_prefix}/lib/libatomic.so
%{_prefix}/lib/libatomic.so.*
#/usr/lib/libgcj-tools.a
/usr/lib/libgcj-tools.la
/usr/lib/libgcj-tools.so
/usr/lib/libgcj-tools.so.*
#/usr/lib/libgcj.a
/usr/lib/libgcj.la
/usr/lib/libgcj.so
/usr/lib/libgcj.so.*
#/usr/lib/libgcj_bc.a
/usr/lib/libgcj_bc.so
/usr/lib/libgcj_bc.so.*
/usr/lib/libgfortran.a
/usr/lib/libgfortran.la
/usr/lib/libgfortran.so
/usr/lib/libgfortran.so.*
/usr/lib/libgfortran.spec
#/usr/lib/libgij.a
/usr/lib/libgij.la
/usr/lib/libgij.so
/usr/lib/libgij.so.*
/usr/lib/libgomp.a
/usr/lib/libgomp.la
/usr/lib/libgomp.so
/usr/lib/libgomp.so.*
/usr/lib/libgomp.spec
/usr/lib/libitm.a
/usr/lib/libitm.la
/usr/lib/libitm.so
/usr/lib/libitm.so.*
/usr/lib/libitm.spec
#/usr/lib/libiberty.a
/usr/lib/libmudflap.a
/usr/lib/libmudflap.la
/usr/lib/libmudflap.so
/usr/lib/libmudflap.so.*
/usr/lib/libmudflapth.a
/usr/lib/libmudflapth.la
/usr/lib/libmudflapth.so
/usr/lib/libmudflapth.so.*
/usr/lib/libobjc.a
/usr/lib/libobjc.la
/usr/lib/libobjc.so
/usr/lib/libobjc.so.*
%ifnarch arm
/usr/lib/libquadmath.a
/usr/lib/libquadmath.la
/usr/lib/libquadmath.so
/usr/lib/libquadmath.so.*
%endif
/usr/lib/libssp.a
/usr/lib/libssp.la
/usr/lib/libssp.so
/usr/lib/libssp.so.*
/usr/lib/libssp_nonshared.a
/usr/lib/libssp_nonshared.la
/usr/lib/libstdc++.a
/usr/lib/libstdc++.la
/usr/lib/libstdc++.so
/usr/lib/libstdc++.so.*
/usr/lib/libsupc++.a
/usr/lib/libsupc++.la
/usr/lib/logging.properties
/usr/lib/security/classpath.security
%endif
%changelog
* Mon May 09 2016 Silvan Calarco <silvan.calarco@mambasoft.it> 6.1.0-2mamba
- patched for libgcj abi minor
* Wed May 04 2016 Automatic Build System <autodist@mambasoft.it> 6.1.0-1mamba
- automatic version update by autodist
* Fri Dec 11 2015 Automatic Build System <autodist@mambasoft.it> 5.3.0-1mamba
- automatic version update by autodist
* Sat Nov 21 2015 Silvan Calarco <silvan.calarco@mambasoft.it> 5.2.0-2mamba
- rebuilt with go
- move to %{_libdir} files formerly installed in /%{_lib}
* Sun Aug 16 2015 Automatic Build System <autodist@mambasoft.it> 5.2.0-1mamba
- automatic version update by autodist
* Thu Apr 09 2015 Silvan Calarco <silvan.calarco@mambasoft.it> 4.9.2-2mamba
- new target: arm-openmamba-linux-gnueabihf
* Thu Oct 30 2014 Automatic Build System <autodist@mambasoft.it> 4.9.2-1mamba
- automatic version update by autodist
* Sun Jul 27 2014 Automatic Build System <autodist@mambasoft.it> 4.9.1-1mamba
- automatic version update by autodist
* Mon Jun 16 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 4.9.0-2mamba
- apply upstream fixes to fix crashes seen in libQtScript after building Qt (seehttps://bugzilla.redhat.com/show_bug.cgi?id=1091482 )
* Sat May 03 2014 Automatic Build System <autodist@mambasoft.it> 4.9.0-1mamba
- automatic version update by autodist
* Wed Oct 16 2013 Automatic Build System <autodist@mambasoft.it> 4.8.2-1mamba
- automatic version update by autodist