Compare commits

...

8 Commits

5 changed files with 490 additions and 96 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;

422
gcc.spec
View File

@ -27,20 +27,22 @@
%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.9.0
Version: 6.2.0
Release: 1mamba
Summary: GNU Compiler Collection (C, C++, Fortran, Java, Ada)
Group: Applications/Development
@ -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
#
@ -308,6 +370,24 @@ 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.
#
# libmpx packages
#
%package -n libmpx
Summary: GCC MPX library
Group: System/Libraries
%description -n libmpx
This package contains the GCC MPX library.
%package -n libmpx-devel
Summary: libmpx development libraries and headers
Group: Development/Libraries
Requires: libmpx = %{version}-%{release}
%description -n libmpx-devel
This package contains static libraries and headers to be used for development.
#
# libssp packages
#
@ -385,7 +465,7 @@ 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}
@ -461,8 +541,8 @@ AutoReqProv: no
Cross Platform gcc for %{_target_platform}.
%prep
%setup -n gcc-%{version}%{?gcc_extraver} -q
# -D -T
%setup -q -n gcc-%{version}%{?gcc_extraver}
#-D -T
#:<< ___EOF
%patch2 -p0
sed -i -e 's/libjawt/libgcjawt/g' libjava/Makefile.{am,in}
@ -484,15 +564,20 @@ sed -i -e 's/libjawt/libgcjawt/g' libjava/Makefile.{am,in}
#%patch12 -p1
#%patch13 -p1
#%patch14 -p1
#%patch15 -p1
#%patch16 -p1
%patch17 -p1
#%patch18 -p1
%build
#:<< ____EOF
rm -rf ../%{name}-build
#____EOF
mkdir -p ../%{name}-build
mkdir ../%{name}-build &&
cd ../%{name}-build
slibdir=/%{_lib}
slibdir=%{_libdir}
# BUILD_LANGUAGES is only used in final (not staged) build
BUILD_LANGUAGES=c,objc,lto
@ -511,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-*)
@ -520,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*)
@ -529,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
;;
*)
@ -553,15 +647,18 @@ esac
--disable-nls \
--disable-shared \
--disable-threads \
--enable-languages=c,objc,fortran \
--enable-languages=c \
--with-newlib \
--without-headers \
--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
@ -585,10 +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 \
--enable-install-libiberty \
%endif
--with-system-zlib \
%if "%{?disable_jack}" == "1"
--disable-dssi \
@ -597,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
@ -607,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
@ -637,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
@ -698,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
@ -706,6 +809,8 @@ 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*
@ -781,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
@ -788,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
@ -818,14 +923,14 @@ 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}"
@ -841,6 +946,15 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
#%{_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.*
@ -856,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
@ -865,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
@ -972,6 +1089,23 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%{_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.*
@ -983,17 +1117,15 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%{_libdir}/libubsan.so
%{_libdir}/libsanitizer.spec
%ifnarch arm
%files -n libvtv
%defattr(-,root,root)
%{_libdir}/libvtv.so.*
#%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
%endif
#%files -n libvtv-devel
#%defattr(-,root,root)
#%{_libdir}/libvtv.a
#%{_libdir}/libvtv.la
#%{_libdir}/libvtv.so
%if "%{disable_cpp}" != "1"
#
@ -1005,8 +1137,9 @@ 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*
#%doc gcc/cp/ChangeLog*
%files -n %{libstdcxx_name} -f libstdc++.lang
%defattr(-,root,root)
@ -1024,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
@ -1031,7 +1165,6 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%endif
%dir %{_includedir}/c++
%{_includedir}/c++/*
%doc libstdc++-v3/{ChangeLog*,README*,doc/html/}
%if "%{_target_platform}" == "%{_build}"
%exclude %{_includedir}/c++/%{version}/gcj/*
%exclude %{_includedir}/c++/%{version}/gnu/awt/*
@ -1041,6 +1174,7 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%exclude %{_includedir}/c++/%{version}/java/*
%exclude %{_includedir}/c++/%{version}/javax/*
%endif
#%doc libstdc++-v3/{ChangeLog*,README*,doc/html/}
%endif "%{disable_cpp}
%if "%{disable_java}" != "1"
@ -1064,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
@ -1151,7 +1285,7 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%config(noreplace) %{_libdir}/nof/security/classpath.security
%endif
#%config(noreplace) %{_libdir}/security/libgcj.security
%doc libjava/{ChangeLog,COPYING,LIBGCJ_LICENSE,README,THANKS}
#%doc libjava/{ChangeLog,COPYING,LIBGCJ_LICENSE,README,THANKS}
%files -n %{libgcj_name}-devel
%defattr(-,root,root)
@ -1177,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/*
@ -1236,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)
@ -1260,46 +1423,21 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%doc gcc/doc/gccint.pdf
%endif # "%{disable_doc}" != "1"
%else
#
# Cross-platform single package
# Multilib
#
%files -n cross-%{_target_platform}-%{name}%{?bootstrap_append}
%defattr(-,root,root)
%{_bindir}/%{_target_platform}-*
%if "%{_target_platform}" != "avr"
%if "%{?stage1}" != "1"
%{_prefix}/%{_target_platform}/include/*
%{_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
%if "%{target_cpu}" == "ppc"
%{_prefix}/%{_target_platform}/%{_lib}/nof/libgfortran.a
%{_prefix}/%{_target_platform}/%{_lib}/nof/libgfortran.la
%{_prefix}/%{_target_platform}/%{_lib}/nof/libobjc.a
%{_prefix}/%{_target_platform}/%{_lib}/nof/libobjc.la
%endif
%endif
%{_libdir}/gcc/%{_target_platform}/%{version}/*
%{_libexecdir}/gcc/%{_target_platform}/%{version}/*
%{_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
%{_prefix}/lib/libgcc_s.so
%{_prefix}/lib/libgcc_s.so.1
#
%{_prefix}/lib/libstdc++.a
%{_prefix}/lib/libstdc++.la
%{_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
@ -1311,37 +1449,62 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%{_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/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
/usr/lib/libgomp.a
/usr/lib/libgomp.la
/usr/lib/libgomp.so
/usr/lib/libgomp.so.*
/usr/lib/libgomp.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
@ -1368,14 +1531,81 @@ find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
/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.*
#/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
#
%files -n cross-%{_target_platform}-%{name}%{?bootstrap_append}
%defattr(-,root,root)
%{_bindir}/%{_target_platform}-*
%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
%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
%{_prefix}/%{_target_platform}/%{_lib}/nof/libobjc.a
%{_prefix}/%{_target_platform}/%{_lib}/nof/libobjc.la
%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
%changelog
* Wed Aug 24 2016 Automatic Build System <autodist@mambasoft.it> 6.2.0-1mamba
- automatic version update by autodist
* 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