3 # - GCC ARM Improvement Project - http://www.inf.u-szeged.hu/gcc-arm/
4 # - Developing StrongARM shellocde - http://phrack.org/show.php?p=58&a=10
7 %bcond_without gnueabi # build without Embedded ABI support
9 Summary: Cross ARM GNU binary utility development utilities - gcc
10 Summary(es.UTF-8): Utilitarios para desarrollo de binarios de la GNU - ARM gcc
11 Summary(fr.UTF-8): Utilitaires de développement binaire de GNU - ARM gcc
12 Summary(pl.UTF-8): Skrośne narzędzia programistyczne GNU dla ARM - gcc
13 Summary(pt_BR.UTF-8): Utilitários para desenvolvimento de binários da GNU - ARM gcc
14 Summary(tr.UTF-8): GNU geliştirme araçları - ARM gcc
17 Release: 1%{?with_gnueabi:gnueabi}
20 Group: Development/Languages
21 Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2
22 # Source0-md5: 7ae33781417a35a2eb03ee098a9f4490
23 %define _llh_ver 2.6.12.0
24 Source1: http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-%{_llh_ver}.tar.bz2
25 # Source1-md5: eae2f562afe224ad50f65a6acfb4252c
26 %define _uclibc_ver 0.9.27
27 Source2: http://uclibc.org/downloads/uClibc-%{_uclibc_ver}.tar.bz2
28 # Source2-md5: 6250bd6524283bd8e7bc976d43a46ec0
29 Source3: crossarm-embedded-uclibc.config
30 Source4: crossarm-lpc210x-crt0.s
31 URL: http://gcc.gnu.org/
32 BuildRequires: autoconf
33 BuildRequires: automake
35 BuildRequires: crossarm-binutils%{?with_gnueabi:(gnueabi)}
37 BuildRequires: kernel-module-build
38 Requires: crossarm-binutils%{?with_gnueabi:(gnueabi)}
41 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
43 %define target arm-linux%{?with_gnueabi:-gnueabi}
44 %define arch %{_prefix}/%{target}
45 %define gccarch %{_libdir}/gcc/%{target}
46 %define gcclib %{gccarch}/%{version}
48 %define _noautostrip .*/libgc.*\\.a
51 This package contains a cross-gcc which allows the creation of
52 binaries to be run on ARM Linux on other machines.
54 %description -l de.UTF-8
55 Dieses Paket enthält einen Cross-gcc, der es erlaubt, auf einem
56 anderem Rechner Code für ARM Linux zu generieren.
58 %description -l pl.UTF-8
59 Ten pakiet zawiera skrośny gcc pozwalający na robienie na innych
60 maszynach binariów do uruchamiania na Linuksie ARM.
63 Summary: C++ support for crossarm-gcc
64 Summary(pl.UTF-8): Obsługa C++ dla crossarm-gcc
65 Group: Development/Languages
66 Requires: %{name} = %{epoch}:%{version}-%{release}
69 This package adds C++ support to the GNU Compiler Collection for ARM.
71 %description c++ -l pl.UTF-8
72 Ten pakiet dodaje obsługę C++ do kompilatora gcc dla ARM.
75 %setup -q -n gcc-%{version} -a1 -a2
78 FAKE_ROOT=$PWD/fake-root
81 install -d $FAKE_ROOT%{_prefix}
82 cp -r uClibc-%{_uclibc_ver}/* $FAKE_ROOT%{_prefix}
83 cd $FAKE_ROOT%{_prefix}
84 install %{SOURCE3} .config
88 cp -f /usr/share/automake/config.* .
90 install -d obj-%{target}
93 XCFLAGS="%{rpmcflags}" \
94 XCXXFLAGS="%{rpmcxxflags}" \
98 --infodir=%{_infodir} \
100 --bindir=%{_bindir} \
101 --libdir=%{_libdir} \
102 --libexecdir=%{_libdir} \
105 --enable-languages="c,c++" \
111 --with-demangler-in-ld \
114 --with-sysroot=$FAKE_ROOT \
117 --host=%{_target_platform} \
118 --build=%{_target_platform}
123 rm -rf $RPM_BUILD_ROOT
124 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
126 %{__make} -C obj-%{target} install-gcc \
127 DESTDIR=$RPM_BUILD_ROOT
129 install obj-%{target}/gcc/specs $RPM_BUILD_ROOT%{gcclib}
131 # don't want this here
132 rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
134 # include/ contains install-tools/include/* and headers that were fixed up
135 # by fixincludes, we don't want former
136 gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/)
138 # we have to save these however
139 #{?with_java:mv -f $gccdir/include/{gcj,libffi/ffitarget.h} $gccdir/tmp}
140 mv -f $gccdir/include/syslimits.h $gccdir/tmp
141 rm -rf $gccdir/include
142 mv -f $gccdir/tmp $gccdir/include
143 cp -f $gccdir/install-tools/include/*.h $gccdir/include
144 # but we don't want anything more from install-tools
145 rm -rf $gccdir/install-tools
148 %{target}-strip -g -R.note -R.comment $RPM_BUILD_ROOT%{gcclib}/libgcc.a
149 %{target}-strip -g -R.note -R.comment $RPM_BUILD_ROOT%{gcclib}/libgcov.a
152 # custom startup file(s)
153 install %{SOURCE4} $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
154 %{target}-as -mcpu=arm7tdmi %{SOURCE4} -o $RPM_BUILD_ROOT%{gcclib}/lpc210x-crt0.o
157 rm -rf $RPM_BUILD_ROOT
160 %defattr(644,root,root,755)
161 %attr(755,root,root) %{_bindir}/%{target}-cpp
162 %attr(755,root,root) %{_bindir}/%{target}-gcc
163 %attr(755,root,root) %{_bindir}/%{target}-gcc-%{version}
164 %attr(755,root,root) %{_bindir}/%{target}-gcov
167 %attr(755,root,root) %{gcclib}/cc1
168 %attr(755,root,root) %{gcclib}/collect2
173 %dir %{gcclib}/include
174 %{gcclib}/include/*.h
175 %{_mandir}/man1/%{target}-cpp.1*
176 %{_mandir}/man1/%{target}-gcc.1*
177 %{_mandir}/man1/%{target}-gcov.1*
178 %{_examplesdir}/%{name}-%{version}
181 %defattr(644,root,root,755)
182 %attr(755,root,root) %{_bindir}/%{target}-c++
183 %attr(755,root,root) %{_bindir}/%{target}-g++
184 %attr(755,root,root) %{gcclib}/cc1plus
185 %{_mandir}/man1/%{target}-g++.1*