# openmamba cross platform gcc specfile

%define target_cpu %(echo %{_target_platform} | cut -d- -f1)
%if "%{?_target_platform}" != "%{_host}"
#   % define target_platform %{cross_target_cpu}-openmamba-linux-gnu
#   % define target_cpu %{cross_target_cpu}
   %define _as %{_target_platform}-as
   %define _ld %{_target_platform}-ld
   %if "%{target_cpu}" == "x86_64"
      %define _lib lib64
   %endif
%else
#   % define target_platform %{_target_platform}
   %define target_cpu %{_target_cpu}
   %define _as as
   %define _ld ld
%endif

%define gcc_branch            %(echo %{version} | cut -d. -f 1-2)
#% define gcc_extraver          -20050810

# use stage1 == 1 to have a gcc build not depending on
# glibc library; this is usually the first needed step in
# order to add support for a new (cross)target platform
%if "%{?stage1}" == "1"
   %define bootstrap_append    -stage1
   %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

%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:       5.3.0
Release:       1mamba
Summary:       GNU Compiler Collection (C, C++, Fortran, Java, Ada)
Group:         Applications/Development
Vendor:        openmamba
Distribution:  openmamba
Packager:      Silvan Calarco <silvan.calarco@mambasoft.it>
URL:           http://gcc.gnu.org/
Source:        ftp://ftp.gnu.org/gnu/gcc/gcc-%{version}/gcc-%{version}%{?gcc_extraver}.tar.bz2
Source1:       ftp://sourceware.org/pub/java/ecj-latest.jar
Source2:       gcc-4.3.2-ecj1-wrapper
Patch2:        gcc4-java-nomulti.patch
Patch0:        %{name}-4.5.0-no_fixincludes.patch
Patch1:        %{name}-4.0.2-zextract.patch
Patch3:        %{name}-4.0.2-BufferStrategy.patch
Patch4:        %{name}-4.0.2-failure_with_compound_literals.patch
Patch5:        %{name}-4.1.1-arm-t-linux.patch
Patch6:        %{name}-4.1.1-libgcc-softfloat-fix.patch
Patch7:        %{name}-shared-openmp.patch
Patch8:        %{name}-4.4.0-pr39543.patch
Patch9:        %{name}-4.4.3-cross_build_fix.patch
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
License:       GPL
## AUTOBUILDREQ-BEGIN
## AUTOBUILDREQ-END
%if "%{?cross_target_cpu}" == ""
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
BuildRequires: flex
BuildRequires: bison
BuildRequires: diffutils
BuildRequires: texinfo >= 4.6
BuildRequires: libmpc-devel
BuildRequires: libmpfr-devel >= 2.1.2
%if "%{_target_platform}" == "%{_build}"
BuildRequires: glibc-devel >= 2.5
#% if "%{?stage2}" != "1"
BuildRequires: tetex >= 3.0
BuildRequires: libgtk2-devel >= 2.8.17
BuildRequires: libalsa-devel >= 1.0.11
%if "%{?disable_jack}" != "1"
BuildRequires: dssi-devel >= 0.9
BuildRequires: libjack-devel >= 0.101.1
%endif
%if "%{?disable_java}" != "1"
BuildRequires: zip
BuildRequires: fastjar
BuildRequires: jpackage-utils
%endif
%if "%{?disable_gjdoc}" != "1"
BuildRequires: antlr
%endif
BuildRequires: libcairo-devel >= 1.4.10
BuildRequires: libxcb-util-devel >= 0.2
BuildRequires: libisl-devel = 0.14
#% endif
#% else
# BuildRequires: cross-%{target_cpu}-glibc%{?glibc_require_append} >= 2.5
%endif

Requires(post):%{__install_info}
Requires:      %{name}-cpp = %{version}-%{release}
Requires:      libgcc >= %{version}-%{release}
Requires:      binutils >= 2.16.1
BuildRoot:     %{_tmppath}/%{name}-%{version}-root

%description
A compiler aimed at integrating all the optimizations and features necessary for a high-performance and stable development environment.
This package is required for all other GCC compilers, namely C++, Fortran, Objective C and Java.

%package -n gcc-multilib
Summary:       gcc multilib package for building 32 bit applications on x86_64 architecture
Group:         Applications/Development

%description -n gcc-multilib
gcc multilib package for building 32 bit applications on x86_64 architecture.

#
# GCC Library
#
%package -n libgcc
Summary:       GNU C Library
Group:         System/Libraries

%description -n libgcc
The libgcc package contains GCC shared libraries for gcc %{gcc_branch}.

#
# Preprocessor
#
%package cpp
Summary:       The C Preprocessor
Group:         Development/Libraries
#Requires:      %{name} = %{version}-%{release}

%description cpp
The C preprocessor is a `macro processor' which is used automatically by the C compiler to transform your program before actual compilation.
It is called a macro processor because it allows you to define `macros,' which are abbreviations for longer constructs.

The C preprocessor provides four separate facilities that you can use as you see fit:
 * Inclusion of header files. These are files of declarations that can be substituted into your program.
 * Macro expansion. You can define 'macros,' which are abbreviations for arbitrary fragments of C code, and then the C preprocessor will replace the macros with their definitions throughout the program.
 * Conditional compilation. Using special preprocessing directives, you can include or exclude parts of the program according to various conditions.
 * Line control. If you use a program to combine or rearrange source files into an intermediate file which is then compiled, you can use line control to inform the compiler about where each source line originated.

You should install this package if you are a programmer who is searching for such a macro processor.

#
# C++ Compiler
#
%package c++
Summary:       C++ support for gcc
Group:         Applications/Development
Requires:      %{name} = %{version}-%{release}
Requires:      %{libstdcxx_name} = %{version}
Requires:      %{libstdcxx_name}-devel = %{version}

%description c++
This package adds C++ support to the GNU C compiler. It includes support for most of the current C++ specification, including templates and exception handling. It does include the static standard C++ library and C++ header files. 
The library for dynamically linking programs is available separately.

#
# C++ Library
#
%package -n %{libstdcxx_name}
Summary:       GNU C++ library
Group:         System/Libraries
Provides:      libstdc++

%description -n %{libstdcxx_name}
This package contains the GCC Standard C++ Library v3, an ongoing project to implement the ISO/IEC 14882:1998 Standard C++ library.

%package -n %{libstdcxx_name}-devel
Summary:       GNU C++ library development files
Group:         Development/Libraries
Requires:      %{libstdcxx_name} = %{version}-%{release}

%description -n %{libstdcxx_name}-devel
This is the GNU implementation of the standard C++ libraries.
This package includes the headers files and libraries needed for C++ development.

%package -n %{libstdcxx_name}-debug
Summary:       GNU C++ library debug files
Group:         Development/Libraries
Requires:      %{libstdcxx_name} = %{version}-%{release}

%description -n %{libstdcxx_name}-debug
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
#
%package java
Summary:       Java support for gcc
Group:         Applications/Development
Requires:      %{libgcj_name} >= %{version}
Requires:      %{libgcj_name}-devel >= %{version}
Provides:      gjdoc
Obsoletes:     gjdoc
Obsoletes:     %{name}-java-tools

%description java
This package adds experimental support for compiling Java(tm) programs and bytecode into native code. To use this you will also need the libgcj4 package.

#
# Java Libraries
#
%package -n %{libgcj_name} 
Summary:       GNU Java runtime libraries
Group:         System/Libraries
Provides:      libgcj

%description -n %{libgcj_name}
Runtime libraries for the GNU Java Compiler. The %{libgcj_name} includes parts of the Java Class Libraries, plus glue to connect the libraries to the compiler and the underlying OS.

%package -n %{libgcj_name}-devel
Summary:       Header files and libraries for Java development
Group:         Development/Libraries
Requires:      %{libgcj_name} = %{version}-%{release}
Provides:      libgcj-devel

%description -n %{libgcj_name}-devel
Development headers and libraries for the GNU Java Compiler. 
The %{libgcj_name} includes parts of the Java Class Libraries, plus glue to connect the libraries to the compiler and the underlying OS.

#
# Fortran 95 Compiler
#
%package fortran
Summary:       Fortran 95 support for gcc
Group:         Applications/Development
Requires:      libgfortran = %{version}-%{release}
Requires:      %{name} = %{version}-%{release}
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
#
%package -n libgfortran
Summary:       Fortran 95 runtime libraries
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

%description -n libitm
This package contains the GNU Transactional Memory library.

%package -n libitm-devel
Summary:        Development files for libitm
Group:          Development/Libraries
Requires:       libobjc = %{version}-%{release}

%description -n libitm-devel
This package contains libitm static library and includes.

%package -n libgomp
Summary:       GNU OpenMP library
Group:         System/Libraries

%description -n libgomp
An implementation of OpenMP for the C, C++, and Fortran 95 compilers in the GNU Compiler Collection.

%package -n libgomp-devel
Summary:        Development headers and static library for libgomp
Group:          Development/Libraries
Requires:       libgomp = %{version}-%{release}

%description -n libgomp-devel
An implementation of OpenMP for the C, C++, and Fortran 95 compilers in the GNU Compiler Collection.
This package contains development headers and static library for libgomp

%package -n libobjc
Summary:        Objective-C runtime library
Group:          System/Libraries

%description -n libobjc
This package contains Objective-C shared library which is needed to run Objective-C dynamically linked programs.

%package -n libobjc-devel
Summary:        Objective-C static library
Group:          Development/Libraries
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.

#
# libssp packages
#
%package -n libssp
Summary:       GCC extension library for protecting applications from stack-smashing attacks
Group:         System/Libraries

%description -n libssp
GCC extension library for protecting applications from stack-smashing attacks.

%package -n libssp-devel
Summary:        GCC extension library for protecting applications from stack-smashing attacks
Group:          Development/Libraries
Requires:       libssp = %{version}-%{release}

%description -n libssp-devel
GCC extension library for protecting applications from stack-smashing attacks.
This package contains static libraries and headers to be used for development.

#
# libquadmath packages
#
%package -n libquadmath
Summary:       GCC Quad-Precision (__float128) Math Library Application Programming Interface (API)
Group:         System/Libraries

%description -n libquadmath
GCC Quad-Precision (__float128) Math Library Application Programming Interface (API).

%package -n libquadmath-devel
Summary:        GCC Quad-Precision (__float128) Math Library Application Programming Interface (API)
Group:          Development/Libraries
Requires:       libquadmath = %{version}-%{release}

%description -n libquadmath-devel
GCC Quad-Precision (__float128) Math Library Application Programming Interface (API).

This package contains static libraries and headers to be used for development.

%package -n libasan
Summary:        GCC Address Sanitizer library
Group:          System/Libraries

%description -n libasan
This package contains the GCC Address Sanitizer library.

%package -n libasan-devel
Summary:        libasan development libraries and headers
Group:          Development/Libraries
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

%description -n libatomic
This package contains the GCC Atomic library.

%package -n libatomic-devel
Summary:        libatimic 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
#
%package doc
Group:         Documentation
Summary:       GCC documentation

%description doc
GCC is a compiler suite aimed at integrating all the optimizations and features necessary for a high-performance and stable development environment. 
This package contains the compiler documentation in INFO pages.

%package -n cross-%{_target_platform}-%{name}%{?bootstrap_append}
Summary:       Cross Platform gcc for %{_target_platform}
Group:         Development/Tools
Requires:      cross-%{_target_platform}-binutils
%if "%{?stage1}" != "1"
Obsoletes:     cross-%{_target_platform}-%{name}-stage1
%endif
AutoReqProv:   no

%description -n cross-%{_target_platform}-%{name}%{?bootstrap_append}
Cross Platform gcc for %{_target_platform}.

%prep
%setup -q -n gcc-%{version}%{?gcc_extraver}
#-D -T
#:<< ___EOF
%patch2 -p0
sed -i -e 's/libjawt/libgcjawt/g' libjava/Makefile.{am,in}

%patch0 -p1
#%patch1 -p1
#%patch3 -p1
#%patch4 -p1
#%patch5 -p1
#%patch6 -p1
#%patch7 -p1
#%patch8 -p0
%if "%{_target_platform}" != "%{_build}"
%patch9 -p1
%endif

# psignal_fix_bootstrap_build
%patch11 -p1
#%patch12 -p1
#%patch13 -p1
#%patch14 -p1
#%patch15 -p1
#%patch16 -p1
%patch17 -p1

%build
#:<< ____EOF
rm -rf ../%{name}-build
#____EOF
mkdir -p ../%{name}-build

cd ../%{name}-build

slibdir=%{_libdir}

# BUILD_LANGUAGES is only used in final (not staged) build
BUILD_LANGUAGES=c,objc,lto

# FIXME: other languages: lto, obj-c++

%if "%{disable_cpp}" != "1"
# Fortran won't build cross platform (?)
BUILD_LANGUAGES="${BUILD_LANGUAGES},c++,obj-c++"
%endif
%if "%{disable_fortran}" != "1"
# Fortran won't build cross platform (?)
BUILD_LANGUAGES="${BUILD_LANGUAGES},fortran"
%endif
%if "%{disable_java}" != "1"
# 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-*)
      ADDITIONAL_OPTS="--with-arch=i686"
      ;;
   ppc-* | powerpc-*)
      ADDITIONAL_OPTS=""
      ;;
   arm-*)
 	  abi=%{_target_platform}
 	  abi=`echo ${abi/*-}`
	  if [ "$abi" = "gnueabihf" ]; then
         ADDITIONAL_OPTS="--with-float=hard"
	  else
         ADDITIONAL_OPTS=""
	  fi
      #"--enable-multilib"
      ;;
   avr*)
      ADDITIONAL_OPTS="--with-dwarf2"
      BUILD_LANGUAGES="c,c++"
      ;;
   x86_64-*)
       %if "%{_target_platform}" != "%{_host}"
          ADDITIONAL_OPTS="--disable-libjava-multilib --with-slibdir=/usr/%{_target_platform}/lib64 --disable-multilib"
       %else
          ADDITIONAL_OPTS="--with-slibdir=$slibdir"
       %endif
       ;;
   *)
      echo "Error: target not supported."
      exit 1
      ;;
esac

%if "%{?stage1}" == "1"

../gcc-%{version}%{?gcc_extraver}/configure \
   --host=%{_host} \
   --build=%{_build} \
   --target=%{_target_platform} \
   --prefix=%{_prefix} \
   --libdir=%{_libdir} \
   --infodir=%{_infodir} \
   --mandir=%{_mandir} \
   --disable-nls \
   --disable-shared \
   --disable-threads \
   --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

%else


CROSS_SYSTEM_HEADER_DIR=/usr/%{_target_platform}/include \
../gcc-%{version}%{?gcc_extraver}/configure \
   --prefix=%{_prefix} \
   --libdir=%{_libdir} \
   --infodir=%{_infodir} \
   --mandir=%{_mandir} \
   --host=%{_host} \
   --build=%{_build} \
   --target=%{_target_platform} \
   --enable-shared \
   --enable-languages=$BUILD_LANGUAGES \
%if "%{target_cpu}" != "avr"
   --enable-threads=posix \
   --enable-__cxa_atexit \
   --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 \
%endif
%if "%{_target_platform}" != "%{_host}"
   --enable-symvers=gnu \
   --with-local-prefix=/usr/%{_target_platform} \
%else
   --enable-install-libiberty \
   --with-slibdir=$slibdir \
%endif
%endif
   $ADDITIONAL_OPTS
   
#   --with-headers=yes \
#   --with-headers=/usr/%{_target_platform}/include  \

%if "%{_target_platform}" != "%{_build}"
   make %{?_smp_mflags} CFLAGS='' LIBCFLAGS='-g -O2' \
      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
%endif
%if "%{disable_doc}" != "1"
   make pdf
%endif

%endif # stage1 = 1

%install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"

cd ../%{name}-build
make DESTDIR=%{buildroot} install

%if "%{_target_platform}" == "%{_host}"
# make target platform binaries symlinks to avoid binary duplicates
for p in gcc-%{version} gcc gcc-ar gcc-nm gcc-ranlib c++ g++ gcj gfortran; do
   rm -f %{buildroot}%{_bindir}/%{_target_platform}-$p
done

ln -s gcc %{buildroot}%{_bindir}/%{_target_platform}-gcc-%{version}

for p in gcc gcc-ar gcc-nm gcc-ranlib cc gcov c++ g++ gcj gfortran; do
   ln -s $p %{buildroot}%{_bindir}/%{_target_platform}-$p
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

#
# Documentation
#
%if "%{disable_java}" != "1"
mkdir -p ../gcc-%{version}%{?gcc_extraver}/rpm.doc/boehm-gc
mkdir -p ../gcc-%{version}%{?gcc_extraver}/rpm.doc/libjava
#(cd ../gcc-%{version}%{?gcc_extraver}/boehm-gc; for i in ChangeLog*; do
#   cp -p $i ../rpm.doc/boehm-gc/$i.gc
#done)
(cd ../gcc-%{version}%{?gcc_extraver}/libjava; for i in README THANKS COPYING ChangeLog; do
   cp -p $i ../rpm.doc/libjava/$i.libjava
done)
(cd ../gcc-%{version}%{?gcc_extraver}/libjava;
   cp -p LIBGCJ_LICENSE ../rpm.doc/libjava/LICENSE.libjava)

make DESTDIR=%{buildroot} -C %{_target_platform}/libjava install-src.zip

# FIXME: install precompiled ecj library (should come from Eclipse that is
#        currently missing in the distribution
install -m0755 %{SOURCE1} %{buildroot}%{_datadir}/java/ecj.jar
install -m0755 %{SOURCE2} %{buildroot}%{_bindir}/ecj1
%endif
#
# PDF gfortran documentation
#
#(cd ../gcc-%{version}%{?gcc_extraver}/gcc/fortran;
#   texi2dvi -p -t @afourpaper -t @finalout -I ../doc/include -I ../../../gcc-build/gcc gfortran.texi)

#
# copy PDF gcc documentation to builddir for use with %doc
#
%if "%{disable_doc}" != "1"
cp gcc/doc/*.pdf %{_builddir}/gcc-%{version}%{?gcc_extraver}/gcc/doc/
%endif

# FIXME: since 4.5.0 this file causes an annoying warning with ldconfig if installed in /usr/lib
mkdir -p %{buildroot}%{_datadir}/gdb/auto-load/%{_libdir}
mv %{buildroot}%{_libdir}/libstdc++.so.*-gdb.py %{buildroot}%{_datadir}/gdb/auto-load/%{_libdir}/
%ifarch x86_64
# 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

(cd ../gcc-%{version}%{?gcc_extraver}
%find_lang gcc
%find_lang cpplib
%find_lang libstdc++
)

#(cd ../gcc-%{version}%{?gcc_extraver}/gcc/doc; 
#   for file in gcc.texi cpp.texi cppinternals.texi; do
#   texi2dvi -p -t @afourpaper -t @finalout -I ./include -I ../../../gcc-build/gcc $file
#done)

# fix permissions
#chmod 755 %{buildroot}/%{_lib}/libgcc_s.so.1
#cp gcc/doc/*.pdf ../gcc-%{version}%{?gcc_extraver}/gcc/doc/

%else # target_platform != host
   rm -rf %{buildroot}%{_infodir}/*
   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*

# don't strip libraries for avr
%if "%{target_cpu}" == "avr"
find %{buildroot}%{_libdir}/gcc -name lib*.a -exec chmod -w {} \;
%endif

%clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"

%post -n libgcc -p /sbin/ldconfig
%postun -n libgcc -p /sbin/ldconfig

%post -n %{libstdcxx_name} -p /sbin/ldconfig
%postun -n %{libstdcxx_name} -p /sbin/ldconfig

%post -n %{libgcj_name} -p /sbin/ldconfig
%postun -n %{libgcj_name} -p /sbin/ldconfig

%post -n libgfortran -p /sbin/ldconfig
%postun -n libgfortran -p /sbin/ldconfig

%post -n libquadmath -p /sbin/ldconfig
%postun -n libquadmath -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
%install_info gccinstall.info
%install_info gccint.info
%if "%{disable_java}" != "1"
%install_info gcj.info
%endif
%if "%{disable_fortran}" != "1"
%install_info gfortran.info
%endif
:

%preun doc
%uninstall_info cppinternals.info
%uninstall_info gcc.info
%uninstall_info gccinstall.info
%uninstall_info gccint.info
%uninstall_info gcj.info
%uninstall_info gfortran.info
:


%if "%{_target_platform}" == "%{_host}"

#
# C Language and base tools and libraries
#
%files -f gcc.lang
%defattr(-,root,root)
%{_bindir}/cc
%{_bindir}/gcc
%{_bindir}/gcc-ar
%{_bindir}/gcc-nm
%{_bindir}/gcc-ranlib
%{_bindir}/gcov
%{_bindir}/gcov-tool
%{_bindir}/%{_target_platform}-cc
%{_bindir}/%{_target_platform}-gcc-%{version}
%{_bindir}/%{_target_platform}-gcc
%{_bindir}/%{_target_platform}-gcc-ar
%{_bindir}/%{_target_platform}-gcc-nm
%{_bindir}/%{_target_platform}-gcc-ranlib
%{_bindir}/%{_target_platform}-gcov
%dir %{_libdir}/gcc
%{_libdir}/gcc/*
%ifarch x86_64
%exclude %{_libdir}/gcc/%{_target_platform}/%{version}/32/*
%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
%{_mandir}/man1/gcc.1.*
%{_mandir}/man1/gcov.1.*
%{_mandir}/man7/fsf-funding.7.*
%{_mandir}/man7/gfdl.7.*
%{_mandir}/man7/gpl.7.*
%doc gcc/{README*,*ChangeLog*}
%exclude %{_libdir}/gcc/%{_target_platform}/%{version}/include/objc
%exclude %{_libdir}/gcc/%{_target_platform}/%{version}/include/ssp
%if "%{_target_platform}" == "%{_build}"
%exclude %{_libdir}/gcc/%{_target_platform}/%{version}/include/gcj/libgcj-config.h
%exclude %{_libdir}/gcc/%{_target_platform}/%{version}/include/jawt.h
%exclude %{_libdir}/gcc/%{_target_platform}/%{version}/include/jawt_md.h
%exclude %{_libdir}/gcc/%{_target_platform}/%{version}/include/jni.h
%exclude %{_libdir}/gcc/%{_target_platform}/%{version}/include/jvmpi.h
%endif

%files -n libgcc
%defattr(-,root,root)
%{_libdir}/libgcc*
%ifarch ppc
%{_libdir}/nof/libgcc*
%endif

%files cpp -f cpplib.lang
%defattr(-,root,root)
%{_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.*

%files -n libitm-devel
%defattr(-,root,root)
%{_libdir}/libitm.a
%{_libdir}/libitm.la
%{_libdir}/libitm.so
%{_libdir}/libitm.spec
%{_infodir}/libitm.info.gz

%files -n libgomp
%defattr(-,root,root)
%{_libdir}/libgomp.so.*
%{_libdir}/libgomp-plugin-host_nonshm.so.*
%ifarch ppc
%{_libdir}/nof/libgomp.so.*
%endif

%files -n libgomp-devel
%defattr(-,root,root)
%{_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
%{_libdir}/nof/libgomp.la
%{_libdir}/nof/libgomp.so
%{_libdir}/nof/libgomp.spec
%endif
%{_datadir}/info/libgomp.info.gz

%files -n libobjc
%defattr(-,root,root)
%{_libdir}/libobjc.so.*
%ifarch ppc
%{_libdir}/nof/libobjc.so.*
%endif

%files -n libobjc-devel
%defattr(-,root,root)
%{_libdir}/libobjc.a
%{_libdir}/libobjc.la
%{_libdir}/libobjc.so
%ifarch ppc
%{_libdir}/nof/libobjc.a
%{_libdir}/nof/libobjc.la
%{_libdir}/nof/libobjc.so
%endif
%dir %{_libdir}/gcc/%{_target_platform}/%{version}/include/objc
%{_libdir}/gcc/%{_target_platform}/%{version}/include/objc/*

%files -n libssp
%defattr(-,root,root)
%{_libdir}/libssp.so.*
%ifarch ppc
%{_libdir}/nof/libssp.so.*
%endif

%files -n libssp-devel
%defattr(-,root,root)
%{_libdir}/libssp.a
%{_libdir}/libssp.la
%{_libdir}/libssp.so
%{_libdir}/libssp_nonshared.a
%{_libdir}/libssp_nonshared.la
%ifarch ppc
%{_libdir}/nof/libssp.a
%{_libdir}/nof/libssp.la
%{_libdir}/nof/libssp.so
%{_libdir}/nof/libssp_nonshared.a
%{_libdir}/nof/libssp_nonshared.la
%endif
%dir %{_libdir}/gcc/%{_target_platform}/%{version}/include/ssp
%{_libdir}/gcc/%{_target_platform}/%{version}/include/ssp/*

%files -n libasan
%defattr(-,root,root)
%{_libdir}/libasan.so.*
%ifarch x86_64
%{_libdir}/libtsan.so.*
%endif

%files -n libasan-devel
%defattr(-,root,root)
%{_libdir}/libasan.a
%{_libdir}/libasan.la
%{_libdir}/libasan.so
%{_libdir}/libasan_preinit.o
%ifarch x86_64
%{_libdir}/libtsan.a
%{_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
%defattr(-,root,root)
%{_libdir}/libatomic.so.*

%files -n libatomic-devel
%defattr(-,root,root)
%{_libdir}/libatomic.a
%{_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

%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

%ifnarch arm
%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

%if "%{disable_cpp}" != "1"
#
# C++ language
#
%files c++
%defattr(-,root,root)
%{_bindir}/c++
%{_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*

%files -n %{libstdcxx_name} -f libstdc++.lang
%defattr(-,root,root)
%{_libdir}/libstdc++.so.*
%ifarch ppc
%{_libdir}/nof/libstdc++.so.*
%endif

%files -n %{libstdcxx_name}-debug
%defattr(-,root,root)
%{_datadir}/gdb/auto-load/%{_libdir}/libstdc++.so.*

%files -n %{libstdcxx_name}-devel
%defattr(-,root,root)
%{_libdir}/libstdc++.*a
%{_libdir}/libstdc++.so
%{_libdir}/libsupc++.*a
%{_libdir}/libstdc++fs.*a
%ifarch ppc
%{_libdir}/nof/libstdc++.*a
%{_libdir}/nof/libstdc++.so
%{_libdir}/nof/libsupc++.*a
%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/*
%exclude %{_includedir}/c++/%{version}/gnu/classpath/*
%exclude %{_includedir}/c++/%{version}/gnu/gcj/*
%exclude %{_includedir}/c++/%{version}/gnu/java/*
%exclude %{_includedir}/c++/%{version}/java/*
%exclude %{_includedir}/c++/%{version}/javax/*
%endif
%endif "%{disable_cpp}

%if "%{disable_java}" != "1"
#
# Java language
#
%files java
%defattr(-,root,root)
#%{_bindir}/addr2name.awk
%{_bindir}/aot-compile
%{_bindir}/ecj1
%{_bindir}/gcj
%{_bindir}/gcjh
%{_bindir}/jcf-dump
#%{_bindir}/jv-scan
#%{_bindir}/%{_target_platform}-gcjh
%{_bindir}/%{_target_platform}-gcj
%{_bindir}/gij
%{_bindir}/gc-analyze
%{_bindir}/gcj-dbtool
%{_bindir}/gappletviewer
%{_bindir}/gjar
%{_bindir}/gjavah
#%if "%{disable_gjdoc}" != "1"
%{_bindir}/gjdoc
#%endif
%{_bindir}/gnative2ascii
%{_bindir}/gorbd
%{_bindir}/gjarsigner
%{_bindir}/gkeytool
%{_bindir}/grmic
%{_bindir}/grmid
%{_bindir}/grmiregistry
%{_bindir}/gserialver
%{_bindir}/gtnameserv
%{_bindir}/rebuild-gcj-db
%{_datadir}/java/ecj.jar
%{_datadir}/gcc-%{version}/python/libjava/aotcompile.py
%{_datadir}/gcc-%{version}/python/libjava/classfile.py
%{_mandir}/man1/aot-compile.1.*
%{_mandir}/man1/gcj.1.*
%{_mandir}/man1/gcjh.1.*
#%{_mandir}/man1/gjnih.1.*
%{_mandir}/man1/jcf-dump.1.*
#%{_mandir}/man1/jv-scan.1.*
%{_mandir}/man1/gij.1.*
%{_mandir}/man1/gcj-dbtool.1.*
%{_mandir}/man1/gappletviewer.1.*
%{_mandir}/man1/gc-analyze.1.*
%{_mandir}/man1/gjar.1.*
%{_mandir}/man1/gjarsigner.1.*
%{_mandir}/man1/gjavah.1.*
%{_mandir}/man1/gjdoc.1.*
%{_mandir}/man1/gkeytool.1.*
%{_mandir}/man1/gnative2ascii.1.*
%{_mandir}/man1/gorbd.1.*
%{_mandir}/man1/grmid.1.*
%{_mandir}/man1/gserialver.1.*
%{_mandir}/man1/gtnameserv.1.*
%{_mandir}/man1/rebuild-gcj-db.1.*

%files -n %{libgcj_name}
%defattr(-,root,root)
%{_mandir}/man1/grmic.1.*
%{_mandir}/man1/grmiregistry.1.*
%dir %{_datadir}/java/
%{_datadir}/java/libgcj-%{version}.jar
%{_libdir}/logging.properties
%{_libdir}/libgcj.so.*
%{_libdir}/libgcj-tools.so.*
%{_libdir}/libgcj_bc.so.*
%{_libdir}/libgij.so.*
%ifarch ppc
%{_libdir}/nof/logging.properties
%{_libdir}/nof/libgcj.so.*
%{_libdir}/nof/libgcj-tools.so.*
%{_libdir}/nof/libgcj_bc.so.*
%{_libdir}/nof/libgij.so.*
%endif
%{_libdir}/gcj-%{version}*/classmap.db
%{_libdir}/gcj-%{version}*/libjavamath.la
%{_libdir}/gcj-%{version}*/libjavamath.so
%{_libdir}/gcj-%{version}*/libjawt.la
%{_libdir}/gcj-%{version}*/libjawt.so
%if "%{disable_jack}" != "1"
%{_libdir}/gcj-%{version}*/libgjsmdssi.la
%{_libdir}/gcj-%{version}*/libgjsmdssi.so
%endif
%{_libdir}/gcj-%{version}*/libgjsmalsa.la
%{_libdir}/gcj-%{version}*/libgjsmalsa.so
%{_libdir}/gcj-%{version}*/libgtkpeer.la
%{_libdir}/gcj-%{version}*/libgtkpeer.so
%{_libdir}/gcj-%{version}*/libjvm.la
%{_libdir}/gcj-%{version}*/libjvm.so
%ifarch ppc
%{_libdir}/nof/gcj-%{version}*/libjavamath.la
%{_libdir}/nof/gcj-%{version}*/libjavamath.so
%{_libdir}/nof/gcj-%{version}*/classmap.db
%{_libdir}/nof/gcj-%{version}*/libgjsmalsa.la
%{_libdir}/nof/gcj-%{version}*/libgjsmalsa.so
%{_libdir}/nof/gcj-%{version}*/libjvm.a
%{_libdir}/nof/gcj-%{version}*/libjvm.la
%{_libdir}/nof/gcj-%{version}*/libjvm.so
%endif
%{_datadir}/java/libgcj-tools-%{version}.jar
%config(noreplace) %{_libdir}/security/classpath.security
%ifarch ppc
%config(noreplace) %{_libdir}/nof/security/classpath.security
%endif
#%config(noreplace) %{_libdir}/security/libgcj.security
%doc libjava/{ChangeLog,COPYING,LIBGCJ_LICENSE,README,THANKS}

%files -n %{libgcj_name}-devel
%defattr(-,root,root)
%{_bindir}/jv-convert
%{_libdir}/libgcj.spec
%{_libdir}/libgcj.la
%{_libdir}/libgcj.so
%{_libdir}/libgcj_bc.so
%{_libdir}/libgij.la
%{_libdir}/libgij.so
%{_libdir}/libgcj-tools.la
%{_libdir}/libgcj-tools.so
%ifarch ppc
%{_libdir}/nof/libgcj.la
%{_libdir}/nof/libgcj.so
%{_libdir}/nof/libgcj_bc.so
%{_libdir}/nof/libgij.la
%{_libdir}/nof/libgij.so
%{_libdir}/nof/libgcj-tools.la
%{_libdir}/nof/libgcj-tools.so
%endif
#%{_libdir}/lib-gnu-java-awt-peer-gtk.a
#%{_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
%{_mandir}/man1/jv-convert.1.*
#%doc rpm.doc/boehm-gc/*
#%doc rpm.doc/libjava/*
%{_includedir}/c++/%{version}/gcj/*
%{_includedir}/c++/%{version}/gnu/awt/*
%{_includedir}/c++/%{version}/gnu/classpath
%{_includedir}/c++/%{version}/gnu/gcj/*
%{_includedir}/c++/%{version}/gnu/java/*
#%{_includedir}/c++/%{version}/gnu/regexp/*
%{_includedir}/c++/%{version}/java/*
%{_includedir}/c++/%{version}/javax/*
%{_libdir}/gcc/%{_target_platform}/%{version}/include/gcj/libgcj-config.h
%{_libdir}/gcc/%{_target_platform}/%{version}/include/jawt.h
%{_libdir}/gcc/%{_target_platform}/%{version}/include/jawt_md.h
%{_libdir}/gcc/%{_target_platform}/%{version}/include/jni.h
%{_libdir}/gcc/%{_target_platform}/%{version}/include/jvmpi.h
%endif # disable_java != 1

%if "%{disable_fortran}" != "1"
#
# Fortran language
#
%files fortran
%defattr(-,root,root)
%{_bindir}/gfortran
%{_bindir}/%{_target_platform}-gfortran
%{_libdir}/libgfortran.a
%{_libdir}/libgfortran.la
%{_libdir}/libgfortran.so
%ifarch ppc
%{_libdir}/nof/libgfortran.a
%{_libdir}/nof/libgfortran.la
%{_libdir}/nof/libgfortran.so
%endif
%{_mandir}/man1/gfortran.1.*
%doc gcc/fortran/ChangeLog

%files -n libgfortran
%defattr(-,root,root)
%{_libdir}/libgfortran.so.*
%{_libdir}/libgfortran.spec
%ifarch ppc
%{_libdir}/nof/libgfortran.so.*
%endif
%endif # disable_fortran != 1

%ifnarch arm
%files -n libquadmath
%defattr(-,root,root)
%{_libdir}/libquadmath.so.*

%files -n libquadmath-devel
%defattr(-,root,root)
%{_libdir}/libquadmath.a
%{_libdir}/libquadmath.la
%{_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)
%{_infodir}/cpp.info.*
%{_infodir}/cppinternals.info.*
%{_infodir}/gcc.info.*
%{_infodir}/gccinstall.info.*
%{_infodir}/gccint.info.*
%if "%{disable_java}" != "1"
%{_infodir}/gcj.info.*
%doc gcc/doc/gcj.pdf
%endif
%if "%{disable_fortran}" != "1"
%{_infodir}/gfortran.info.*
%doc gcc/doc/gfortran.pdf
%endif
%{_infodir}/libquadmath.info.*
%doc gcc/doc/cpp.pdf
%doc gcc/doc/cppinternals.pdf
%doc gcc/doc/gccinstall.pdf
%doc gcc/doc/gcc.pdf
%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/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
#
%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
* 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

* Sat Jul 27 2013 Silvan Calarco <silvan.calarco@mambasoft.it> 4.8.1-2mamba
- add %{_target_platform}-cc link to cc
- make %{_target_platform}-* symlink instead of binary duplicates
- x86_64: fix moving out of libdir libstdc++.so.6.0.18-gdb.py for lib32 package

* Tue Jun 04 2013 Automatic Build System <autodist@mambasoft.it> 4.8.1-1mamba
- automatic version update by autodist

* Thu Mar 28 2013 Automatic Build System <autodist@mambasoft.it> 4.8.0-1mamba
- automatic version update by autodist

* Tue Sep 25 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 4.7.2-2mamba
- rebuild with stack protector support in cross-compilers (removed --disable-libssp)

* Fri Sep 21 2012 Automatic Build System <autodist@mambasoft.it> 4.7.2-1mamba
- automatic update by autodist

* Thu Jun 14 2012 Automatic Build System <autodist@mambasoft.it> 4.7.1-1mamba
- automatic version update by autodist

* Mon Apr 02 2012 Automatic Build System <autodist@mambasoft.it> 4.7.0-1mamba
- automatic version update by autodist

* Wed Oct 26 2011 Automatic Build System <autodist@mambasoft.it> 4.6.2-1mamba
- automatic version update by autodist

* Wed Jun 29 2011 Automatic Build System <autodist@mambasoft.it> 4.6.1-1mamba
- automatic update by autodist

* Fri Apr 01 2011 Automatic Build System <autodist@mambasoft.it> 4.6.0-1mamba
- automatic update by autodist

* Fri Dec 17 2010 Automatic Build System <autodist@mambasoft.it> 4.5.2-1mamba
- automatic update to 4.5.2 by autodist

* Fri Sep 24 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 4.5.1-2mamba
- added obj-c++ and lto languages support
- added patch to fix bootstrap build
- added disable_java, disable_gjdoc, disable_jack build options
- build c,objc,fortran in stage1 mode
- don't provide libffi and libffi-devel in favour of external package (here it is used to embed it in gcj)

* Sat Jul 31 2010 Automatic Build System <autodist@mambasoft.it> 4.5.1-1mamba
- automatic update to 4.5.1 by autodist

* Tue Jul 20 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 4.5.0-4mamba
- added libffi patch to support pkgconfig libffi.pc (as needed by pygobject)

* Sun Jul 18 2010 Automatic Build System <autodist@mambasoft.it> 4.5.0-3mamba
- automatic rebuild by autodist

* Sat May 29 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 4.5.0-2mamba
- moved libstdc++.so.6.0.14-gdb.py for /usr/lib to gdb python dir to prevent ldconfig warning

* Sun May 09 2010 Automatic Build System <autodist@mambasoft.it> 4.5.0-1mamba
- automatic update to 4.5.0 by autodist

* Sat Apr 17 2010 Silvan Calarco <silvan.calarco@mambasoft.it> 4.4.3-2mamba
- modified to use standard rpm platform variables

* Thu Jan 21 2010 Automatic Build System <autodist@mambasoft.it> 4.4.3-1mamba
- automatic update to 4.4.3 by autodist

* Thu Oct 15 2009 Automatic Build System <autodist@mambasoft.it> 4.4.2-1mamba
- automatic update to 4.4.2 by autodist

* Sat Jul 25 2009 Automatic Build System <autodist@mambasoft.it> 4.4.1-1mamba
- automatic update to 4.4.1 by autodist

* Tue Jun 30 2009 Automatic Build System <autodist@mambasoft.it> 4.4.0-4mamba
- added pr39543 patch (fixes mplayer build)

* Sat May 23 2009 Automatic Build System <autodist@mambasoft.it> 4.4.0-3mamba
- automatic rebuild by autodist

* Fri Apr 24 2009 Automatic Build System <autodist@mambasoft.it> 4.4.0-2mamba
- automatic rebuild by autodist

* Wed Apr 22 2009 Automatic Build System <autodist@mambasoft.it> 4.4.0-1mamba
- automatic update to 4.4.0 by autodist

* Thu Apr 16 2009 Silvan Calarco <silvan.calarco@mambasoft.it> 4.3.3-2mamba
- added patch to disable fixincludes script

* Sat Jan 31 2009 Silvan Calarco <silvan.calarco@mambasoft.it> 4.3.3-1mamba
- automatic update by autodist

* Fri Sep 12 2008 Silvan Calarco <silvan.calarco@mambasoft.it> 4.3.2-2mamba
- added ecj.jar and /usr/bin/ecj1 bytecode interpreter wrapper from eclipse
- gcc-fortran: added requirement for exact release of gcc

* Sat Aug 30 2008 Silvan Calarco <silvan.calarco@mambasoft.it> 4.3.2-1mamba
- update to 4.3.2

* Thu Jul 10 2008 Silvan Calarco <silvan.calarco@mambasoft.it> 4.2.4-3mamba
- set correct path for current java-gcj-compat environment
- libgcj4-devel: don't obsolete libgcj3-devel and provide libgcj-devel
- libgcj4: provide libgcj

* Mon Jul 07 2008 Silvan Calarco <silvan.calarco@mambasoft.it> 4.2.4-2mamba
- added shared-openmp patch to allow dlopen of libgomp
- gcc-cpp: added requirement for gcc

* Wed Jun 04 2008 Silvan Calarco <silvan.calarco@mambasoft.it> 4.2.4-1mamba
- update to 4.2.4

* Mon Dec 10 2007 Silvan Calarco <silvan.calarco@mambasoft.it> 4.2.2-1mamba
- update to 4.2.2

* Mon Jul 23 2007 Silvan Calarco <silvan.calarco@mambasoft.it> 4.2.1-1mamba
- update to 4.2.1
- libstdcxx: provide libstdc++

* Wed May 16 2007 Silvan Calarco <silvan.calarco@mambasoft.it> 4.2.0-1mamba
- update to 4.2.0
- use make pdf to build pdf documentation

* Thu Mar 08 2007 Silvan Calarco <silvan.calarco@mambasoft.it> 4.1.2-1qilnx
- update to version 4.1.2 by autospec

* Tue Aug 22 2006 Silvan Calarco <silvan.calarco@mambasoft.it> 4.1.1-2qilnx
- added arm-softfloat target support (multilib libgcc support)

* Tue Jun 06 2006 Silvan Calarco <silvan.calarco@mambasoft.it> 4.1.1-1qilnx
- update to version 4.1.1 by autospec
- added arm platform support
- added support for stage1 build with autodist

* Mon Nov 14 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 4.0.2-5qilnx
- added patch to bug #24109 (see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24109)

* Tue Oct 25 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 4.0.2-4qilnx
- add libjava patch to java.awt.Window backported from Classpath 0.18 for ooo2

* Mon Oct 24 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 4.0.2-3qilnx
- add a patch for java zextract, see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23617)

* Fri Oct 21 2005 Davide Madrisan <davide.madrisan@qilinux.it> 4.0.2-2qilnx
- install/uninstall info files
- Silvan Calarco: add nofixincludes patch

* Thu Sep 29 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 4.0.2-1qilnx
- new version build

* Fri Sep 23 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 4.0.1-5qilnx
- added libgfortran sub-package
- description of libffi corrected
- removed requirements for gcc in gcc-java and gcc-fortran

* Mon Aug 23 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 4.0.1-4qilnx
- rebuilt with fixincludes script disabled

* Sun Aug 22 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 4.0.1-3qilnx
- first ppc full cross-platform compiler build

* Wed Aug 17 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 4.0.1-2qilnx
- rebuilt with standard gcc sources
- removed Obsoletes field for some library

* Mon Aug 15 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 4.0.1-1qilnx
- first gcc4 build (using RedHat sources)

* Thu Jul 21 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 3.4.4-2qilnx
- build with host os = linux-gnu

* Tue Jul 19 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 3.4.4-1qilnx
- update to version 3.4.4 by autospec

* Tue Jul 19 2005 Silvan Calarco <silvan.calarco@mambasoft.it> 3.4.3-4qilnx
- rebuild with default rpm target platform (i586-qilinux-linux)

* Wed Apr 06 2005 Davide Madrisan <davide.madrisan@qilinux.it> 3.4.3-2qilnx
- do not fix non standard include files found at building time
- fixed package group
- added missing symlinks

* Tue Nov 15 2004 Davide Madrisan <davide.madrisan@qilinux.it> 3.4.3-1qilnx
- updated to gcc-3.4.3

* Wed Sep 15 2004 Davide Madrisan <davide.madrisan@qilinux.it> 3.4.2-2qilnx
- libstdc++6-devel obsoletes libstdc++5-devel

* Mon Sep 13 2004 Silvan Calarco <silvan.calarco@mambasoft.it> 3.4.2-1qilnx
- new version build
- added x-includes-dir and x-library-dir configure paths

* Mon Jun 21 2004 Silvan Calarco <silvan.calarco@mambasoft.it> 3.4.0-1qilnx
- new version build

* Wed Apr 07 2004 Davide Madrisan <davide.madrisan@qilinux.it> 3.3.3-1qilnx
- first build for 3.3.3
- added cpp and g77, libf2c packages
- added documentation in text and pdf formats

* Mon Jun 16 2003 Silvan Calarco <silvan.calarco@qinet.it> 3.2.3-1qilnx
- first build for 3.2.3

* Fri May 16 2003 Silvan Calarco <silvan.calarco@qinet.it> 3.2.2-7qilnx
- added libstdc++.so symlink in devel package

* Mon Apr 24 2003 Silvan Calarco <silvan.calarco@qinet.it> 3.2.2-6qilnx
- added symlinks /usr/lib/cpp and /usr/bin/cc

* Mon Apr 24 2003 Silvan Calarco <silvan.calarco@qinet.it> 3.2.2-5qilnx
- added symlink /lib/cpp

* Mon Apr 17 2003 Silvan Calarco <silvan.calarco@qinet.it> 3.2.2-4qilnx
- fixed install problems by using make install DESTDIR=xxxx

* Mon Apr 16 2003 Silvan Calarco <silvan.calarco@qinet.it> 3.2.2-3qilnx
- changed %%dir reference to system dirs with more specific file lists
- added -doc package

* Mon Apr 14 2003 Silvan Calarco <silvan.calarco@qinet.it> 3.2.2-2qilnx
- changed all .bz2 occurences with *

* Tue Apr 09 2003 Silvan Calarco <silvan.calarco@qinet.it> 3.2.2-1qilnx
- first build for 3.2.2
