#
-# Conditional build:
-%bcond_with bootstrap # for bootstraping
-#
+# Conditional build:
+%bcond_with bootstrap # for bootstraping
+#
Summary: Cross AVR GNU binary utility development utilities - gcc
Summary(es.UTF-8): Utilitarios para desarrollo de binarios de la GNU - AVR gcc
Summary(fr.UTF-8): Utilitaires de développement binaire de GNU - AVR gcc
Summary(pt_BR.UTF-8): Utilitários para desenvolvimento de binários da GNU - AVR gcc
Summary(tr.UTF-8): GNU geliştirme araçları - AVR gcc
Name: crossavr-gcc
-Version: 4.6.2
-Release: 2
+Version: 4.7.3
+Release: 3
Epoch: 1
-Patch1: gcc-bug51969.patch
-# Patches 1xx are taken form Atmel official AVR8-GNU toolchain version 3.4.0.663.
-Patch100: 200-gcc-libiberty-Makefile.in.patch
-Patch101: 300-gcc-fixedpoint-3-4-2010.patch
-Patch102: 301-gcc-xmega-v14.patch
-Patch103: 302-gcc-avrtiny10.patch
-Patch104: 303-gcc-osmain.patch
-Patch105: 304-gcc-builtins-v6.patch
-Patch106: 305-gcc-avrtiny10-non-fixedpoint.patch
-Patch107: 306-gcc-option-list-devices.patch
-Patch108: 400-gcc-new-devices.patch
-Patch109: 401-gcc-atmega32_5_50_90_pa.patch
-Patch110: 402-gcc-attiny1634.patch
-Patch111: 403-gcc-atmega48pa.patch
-Patch112: 404-gcc-atxmega_16_32_a4u.patch
-Patch113: 405-gcc-atxmega64_128_192_256a3u.patch
-Patch114: 406-gcc-atmegarfr2_a2.patch
-Patch115: 407-gcc-atmega165pa.patch
-Patch116: 408-gcc-atxmega384c3.patch
-Patch117: 409-gcc-attiny80.patch
-Patch118: 410-gcc-atxmega128a4u.patch
-Patch119: 411-gcc-atxmega64d4.patch
-Patch120: 412-gcc-atmega164pa_168pa_32a_64a.patch
-Patch121: 413-gcc-atxmega64_128_b3.patch
-Patch122: 414-gcc-atxmega64b1.patch
-Patch123: 415-gcc-atmega_8a_128a_1284.patch
-Patch124: 416-gcc-atxmega64a4u.patch
-Patch125: 417-gcc-atxmega128d4.patch
-Patch126: 418-gcc-atmxt336s.patch
-Patch127: 419-gcc-atxmega16c4_32c4_128c3_256c3.patch
-Patch128: 420-gcc-atxmega384d3.patch
-Patch129: 421-gcc-atmega48hvf.patch
-Patch130: 422-gcc-atmega26hvg.patch
-Patch131: 423-gcc-atmxt224_224e.patch
-Patch132: 424-gcc-atxmega192c3.patch
-Patch133: 425-gcc-atmxt112sl.patch
-Patch134: 426-gcc-atxmega64c3.patch
-Patch135: 427-gcc-ata6285_6286.patch
-Patch136: 428-gcc-attiny828.patch
-Patch137: 429-gcc-ata5790_5790n_5795.patch
-Patch138: 430-gcc-ata5272_ata5505.patch
-Patch139: 500-gcc-bug13473.patch
-Patch140: 501-gcc-avrtiny10-bug-12510.patch
-Patch141: 502-gcc-bug12915.patch
-Patch142: 503-gcc-bug13789.patch
-Patch143: 504-gcc-conditional-register.patch
-Patch144: 505-gcc-avrtc381-tiny.patch
-License: GPL
+License: GPL v3+
Group: Development/Languages
-Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2
-# Source0-md5: 028115c4fbfb6cfd75d6369f4a90d87e
+Source0: http://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2
+# Source0-md5: 86f428a30379bdee0224e353ee2f999e
+Patch0: gnu_inline-mismatch.patch
+# Patches 1xx are taken form Atmel official AVR8-GNU toolchain version 3.4.2
+# http://distribute.atmel.no/tools/opensource/Atmel-AVR-Toolchain-3.4.2/avr/avr-patches.tar.gz
+Patch100: 300-gcc-xmega-support.patch
+Patch101: 301-gcc-tiny-support.patch
+Patch102: 302-gcc-mlist-devices.patch
+Patch103: 303-ata6289-architecture-correction.patch
+Patch104: 400-gcc-public-devices-support.patch
+Patch105: 401-gcc-non-public-devices-support.patch
+Patch106: 402-gcc-atmega64_128_2564RFR2.patch
+Patch107: 403-gcc-atmxts200.patch
+Patch108: 501-gcc-avrtc579.patch
+Patch109: 502-gcc-pr54796.patch
+Patch110: 503-gcc-avrtc-513.patch
+Patch111: 504-gcc-avrtc-610.patch
+Patch112: 505-gcc-avrtc586.patch
+URL: http://gcc.gnu.org/
BuildRequires: /bin/bash
BuildRequires: autoconf
BuildRequires: bison
-BuildRequires: crossavr-binutils
+BuildRequires: cloog-ppl-devel >= 0.16.1
+BuildRequires: crossavr-binutils >= 2.23.1
BuildRequires: elfutils-devel >= 0.145-1
BuildRequires: flex
-BuildRequires: gmp-devel >= 4.1
-BuildRequires: libmpc-devel
-BuildRequires: mpfr-devel >= 2.3.0
+BuildRequires: gmp-devel >= 4.3.2
+BuildRequires: libmpc-devel >= 0.8.0
+BuildRequires: mpfr-devel >= 2.4.2
BuildRequires: perl-tools-pod
+BuildRequires: ppl-devel >= 0.11
BuildRequires: rpmbuild(macros) >= 1.565
BuildRequires: sed >= 4.0
-Requires: crossavr-binutils >= 2.15.91.0.2
+Requires: crossavr-binutils >= 2.23.1
%{!?with_bootstrap:Requires: crossavr-libc}
+Requires: cloog-ppl-libs >= 0.16.1
+Requires: gmp >= 4.3.2
Requires: gcc-dirs
+Requires: libmpc >= 0.8.0
+Requires: mpfr >= 2.4.2
+Requires: ppl >= 0.11
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define target avr
-%define arch %{_prefix}/%{target}
-%define gccarch %{_libdir}/gcc/%{target}
-%define gcclib %{_libdir}/gcc/%{target}/%{version}
-%define _noautostrip .*%{gcclib}.*/libgc.*\\.a
+%define archprefix %{_prefix}/%{target}
+%define gccarchdir %{_libdir}/gcc/%{target}
+%define gcclibdir %{_libdir}/gcc/%{target}/%{version}
+
+%define _noautostrip .*%{gcclibdir}.*/libgc.*\\.a
+
+# functions with printf format attribute but with special parser and also
+# receiving non constant format strings
+%define Werror_cflags %{nil}
%description
This package contains a cross-gcc which allows the creation of
%prep
%setup -q -n gcc-%{version}
cd gcc/config/%{target} && %undos -f c,h && cd -
-%patch1 -p2
+%patch0 -p1
%patch100 -p0
-%patch101 -p0
+#patch101 -p0
%patch102 -p0
%patch103 -p0
-%patch104 -p0
-%patch105 -p0
-%patch106 -p0
-%patch107 -p0
-%patch108 -p0
+#patch104 -p0
+#patch105 -p0
+#patch106 -p0
+#patch107 -p0
+#patch108 -p0
%patch109 -p0
-%patch110 -p0
+#patch110 -p0
%patch111 -p0
-%patch112 -p0
-%patch113 -p0
-%patch114 -p0
-%patch115 -p0
-%patch116 -p0
-%patch117 -p0
-%patch118 -p0
-%patch119 -p0
-%patch120 -p0
-%patch121 -p0
-%patch122 -p0
-%patch123 -p0
-%patch124 -p0
-%patch125 -p0
-%patch126 -p0
-%patch127 -p0
-%patch128 -p0
-%patch129 -p0
-%patch130 -p0
-%patch131 -p0
-%patch132 -p0
-%patch133 -p0
-%patch134 -p0
-%patch135 -p0
-%patch136 -p0
-%patch137 -p0
-%patch138 -p0
-%patch139 -p0
-%patch140 -p0
-%patch141 -p0
-%patch142 -p0
-%patch143 -p0
-%patch144 -p0
+#patch112 -p0
%build
rm -rf obj-%{target}
CXXFLAGS="%{rpmcflags}" \
TEXCONFIG=false \
../configure \
+ MAKEINFO=/bin/true \
--prefix=%{_prefix} \
- --infodir=%{_infodir} \
- --mandir=%{_mandir} \
--bindir=%{_bindir} \
--libdir=%{_libdir} \
--libexecdir=%{_libdir} \
+ --infodir=%{_infodir} \
+ --mandir=%{_mandir} \
--enable-c99 \
--enable-languages="c,c++" \
+ --disable-libssp \
--enable-long-long \
--enable-lto \
+ --disable-ppl-version-check \
--disable-shared \
- --disable-libssp \
--with-dwarf2 \
--with-gnu-as \
--with-gnu-ld \
- --with-system-zlib \
--with-multilib \
+ --with-ppl \
+ --with-system-zlib \
--without-x \
--build=%{_target_platform} \
--host=%{_target_platform} \
--target=%{target}
-%{__make} CFLAGS_FOR_TARGET="-Os"
+%{__make} \
+ CFLAGS_FOR_TARGET="-Os"
%install
rm -rf $RPM_BUILD_ROOT
DESTDIR=$RPM_BUILD_ROOT
# move fixed includes to proper place
-cp $RPM_BUILD_ROOT%{gcclib}/include-fixed/*.h $RPM_BUILD_ROOT%{gcclib}/include
+cp -p $RPM_BUILD_ROOT%{gcclibdir}/include-fixed/{limits,syslimits}.h $RPM_BUILD_ROOT%{gcclibdir}/include
# don't want it here
-rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
-rm -rf $RPM_BUILD_ROOT%{_infodir}
-rm -f $RPM_BUILD_ROOT%{_mandir}/man7/fsf-funding.7
-rm -f $RPM_BUILD_ROOT%{_mandir}/man7/gfdl.7
-rm -f $RPM_BUILD_ROOT%{_mandir}/man7/gpl.7
-rm -f $RPM_BUILD_ROOT%{_datadir}/locale/*/LC_MESSAGES/{gcc,cpplib}.mo
-rm -rf $RPM_BUILD_ROOT%{gcclib}/include-fixed
-rm -rf $RPM_BUILD_ROOT%{gcclib}/install-tools
-rm -f $RPM_BUILD_ROOT%{gcclib}/liblto_plugin.la
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/libiberty.a
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man7/{fsf-funding,gfdl,gpl}.7
+%{__rm} -r $RPM_BUILD_ROOT%{_infodir}
+%{__rm} -r $RPM_BUILD_ROOT%{_localedir}
+%{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/include-fixed
+%{__rm} -r $RPM_BUILD_ROOT%{gcclibdir}/install-tools
+%{__rm} $RPM_BUILD_ROOT%{gcclibdir}/liblto_plugin.la
%if 0%{!?debug:1}
# strip target libraries
-%{target}-strip -g $RPM_BUILD_ROOT%{gcclib}{,/avr*}/libg*.a
+%{target}-strip -g $RPM_BUILD_ROOT%{gcclibdir}{,/avr*}/libg*.a
%endif
%clean
%files
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/%{target}-gcc*
%attr(755,root,root) %{_bindir}/%{target}-cpp
+%attr(755,root,root) %{_bindir}/%{target}-gcc
+%attr(755,root,root) %{_bindir}/%{target}-gcc-%{version}
+%attr(755,root,root) %{_bindir}/%{target}-gcc-ar
+%attr(755,root,root) %{_bindir}/%{target}-gcc-nm
+%attr(755,root,root) %{_bindir}/%{target}-gcc-ranlib
%attr(755,root,root) %{_bindir}/%{target}-gcov
-%dir %{gccarch}
-%dir %{gcclib}
-%attr(755,root,root) %{gcclib}/cc1
-%attr(755,root,root) %{gcclib}/collect2
-%attr(755,root,root) %{gcclib}/lto-wrapper
-%attr(755,root,root) %{gcclib}/lto1
-%attr(755,root,root) %{gcclib}/liblto_plugin.so*
-%{gcclib}/libg*.a
-%{gcclib}/%{target}*
-%{gcclib}/plugin
-%dir %{gcclib}/include
-%{gcclib}/include/*.h
+%dir %{gccarchdir}
+%dir %{gcclibdir}
+%attr(755,root,root) %{gcclibdir}/cc1
+%attr(755,root,root) %{gcclibdir}/collect2
+%attr(755,root,root) %{gcclibdir}/lto-wrapper
+%attr(755,root,root) %{gcclibdir}/lto1
+%attr(755,root,root) %{gcclibdir}/liblto_plugin.so*
+%{gcclibdir}/libgcc.a
+%{gcclibdir}/libgcov.a
+# subtargets
+%{gcclibdir}/avr25
+%{gcclibdir}/avr3
+%{gcclibdir}/avr31
+%{gcclibdir}/avr35
+%{gcclibdir}/avr4
+%{gcclibdir}/avr5
+%{gcclibdir}/avr51
+%{gcclibdir}/avr6
+%{gcclibdir}/avrxmega2
+%{gcclibdir}/avrxmega4
+%{gcclibdir}/avrxmega5
+%{gcclibdir}/avrxmega6
+%{gcclibdir}/avrxmega7
+%{gcclibdir}/tiny-stack
+%dir %{gcclibdir}/include
+%{gcclibdir}/include/float.h
+%{gcclibdir}/include/iso646.h
+%{gcclibdir}/include/limits.h
+%{gcclibdir}/include/stdalign.h
+%{gcclibdir}/include/stdarg.h
+%{gcclibdir}/include/stdbool.h
+%{gcclibdir}/include/stddef.h
+%{gcclibdir}/include/stdfix.h
+%{gcclibdir}/include/stdint-gcc.h
+%{gcclibdir}/include/stdint.h
+%{gcclibdir}/include/stdnoreturn.h
+%{gcclibdir}/include/syslimits.h
+%{gcclibdir}/include/tgmath.h
+%{gcclibdir}/include/unwind.h
+%{gcclibdir}/include/varargs.h
+# plugin-devel
+%{gcclibdir}/plugin
%{_mandir}/man1/%{target}-cpp.1*
%{_mandir}/man1/%{target}-gcc.1*
%{_mandir}/man1/%{target}-gcov.1*
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/%{target}-g++
%attr(755,root,root) %{_bindir}/%{target}-c++
-%attr(755,root,root) %{gcclib}/cc1plus
+%attr(755,root,root) %{gcclibdir}/cc1plus
%{_mandir}/man1/%{target}-g++.1*