]> git.pld-linux.org Git - packages/crossarm-gcc.git/blobdiff - crossarm-gcc.spec
- 4.2.2
[packages/crossarm-gcc.git] / crossarm-gcc.spec
index 94271f115cc8898a237bd772bbe409b1ba99163b..15d93abba3c6c2d1b966cf7dafa00e56b2f0bf05 100644 (file)
@@ -1,58 +1,97 @@
+#
+# MUST SEE:
+#              - GCC ARM Improvement Project - http://www.inf.u-szeged.hu/gcc-arm/
+#              - Developing StrongARM shellocde - http://phrack.org/show.php?p=58&a=10
+#
+# Conditional build:
+%bcond_without gnueabi         # build without Embedded ABI support
+#
 Summary:       Cross ARM GNU binary utility development utilities - gcc
-Summary(es):   Utilitarios para desarrollo de binarios de la GNU - ARM gcc
-Summary(fr):   Utilitaires de développement binaire de GNU - ARM gcc
-Summary(pl):   Skro¶ne narzêdzia programistyczne GNU dla ARM - gcc
-Summary(pt_BR):        Utilitários para desenvolvimento de binários da GNU - ARM gcc
-Summary(tr):   GNU geliþtirme araçlarý - ARM gcc
+Summary(es.UTF-8):     Utilitarios para desarrollo de binarios de la GNU - ARM gcc
+Summary(fr.UTF-8):     Utilitaires de développement binaire de GNU - ARM gcc
+Summary(pl.UTF-8):     Skrośne narzędzia programistyczne GNU dla ARM - gcc
+Summary(pt_BR.UTF-8):  Utilitários para desenvolvimento de binários da GNU - ARM gcc
+Summary(tr.UTF-8):     GNU geliştirme araçları - ARM gcc
 Name:          crossarm-gcc
-%define                _snap   20040827
-Version:       3.4.2
-Release:       0.%{_snap}.1
+Version:       4.2.2
+Release:       1%{?with_gnueabi:gnueabi}
 Epoch:         1
 License:       GPL
 Group:         Development/Languages
-Source0:       ftp://gcc.gnu.org/pub/gcc/snapshots/3.4-%{_snap}/gcc-3.4-%{_snap}.tar.bz2
-# Source0-md5: a1b3041177090adab4098e3ad4099dd8
-BuildRequires: crossarm-binutils
-BuildRequires: flex
-BuildRequires: bison
+Source0:       ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2
+# Source0-md5: 7ae33781417a35a2eb03ee098a9f4490
+%define                _llh_ver        2.6.12.0
+Source1:       http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-%{_llh_ver}.tar.bz2
+# Source1-md5: eae2f562afe224ad50f65a6acfb4252c
+%define                _uclibc_ver     0.9.27
+Source2:       http://uclibc.org/downloads/uClibc-%{_uclibc_ver}.tar.bz2
+# Source2-md5: 6250bd6524283bd8e7bc976d43a46ec0
+Source3:       crossarm-embedded-uclibc.config
+Source4:       crossarm-lpc210x-crt0.s
+URL:           http://gcc.gnu.org/
 BuildRequires: autoconf
-BuildRequires: /bin/bash
-Requires:      crossarm-binutils
+BuildRequires: automake
+BuildRequires: bison
+BuildRequires: crossarm-binutils%{?with_gnueabi:(gnueabi)}
+BuildRequires: flex
+BuildRequires: kernel-module-build
+Requires:      crossarm-binutils%{?with_gnueabi:(gnueabi)}
+Requires:      gcc-dirs
 ExcludeArch:   arm
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
-%define                target          arm-pld-linux
+%define                target          arm-linux%{?with_gnueabi:-gnueabi}
 %define                arch            %{_prefix}/%{target}
 %define                gccarch         %{_libdir}/gcc/%{target}
 %define                gcclib          %{gccarch}/%{version}
 
-%define                _noautostrip    .*%{gcclib}.*/libgc.*\\.a
+%define                _noautostrip    .*/libgc.*\\.a
 
 %description
 This package contains a cross-gcc which allows the creation of
-binaries to be run on ARM linux (architecture arm-linux) on
-other machines.
+binaries to be run on ARM Linux on other machines.
+
+%description -l de.UTF-8
+Dieses Paket enthält einen Cross-gcc, der es erlaubt, auf einem
+anderem Rechner Code für ARM Linux zu generieren.
+
+%description -l pl.UTF-8
+Ten pakiet zawiera skrośny gcc pozwalający na robienie na innych
+maszynach binariów do uruchamiania na Linuksie ARM.
+
+%package c++
+Summary:       C++ support for crossarm-gcc
+Summary(pl.UTF-8):     Obsługa C++ dla crossarm-gcc
+Group:         Development/Languages
+Requires:      %{name} = %{epoch}:%{version}-%{release}
 
-%description -l de
-Dieses Paket enthält einen Cross-gcc, der es erlaubt, auf einem
-anderem Rechner Code für arm-Linux zu generieren.
+%description c++
+This package adds C++ support to the GNU Compiler Collection for ARM.
 
-%description -l pl
-Ten pakiet zawiera skro¶ny gcc pozwalaj±cy na robienie na innych
-maszynach binariów do uruchamiania na ARM (architektura
-arm-linux).
+%description c++ -l pl.UTF-8
+Ten pakiet dodaje obsługę C++ do kompilatora gcc dla ARM.
 
 %prep
-%setup -q -n gcc-3.4-%{_snap}
+%setup -q -n gcc-%{version} -a1 -a2
 
 %build
+FAKE_ROOT=$PWD/fake-root
+rm -rf $FAKE_ROOT
+
+install -d $FAKE_ROOT%{_prefix}
+cp -r uClibc-%{_uclibc_ver}/* $FAKE_ROOT%{_prefix}
+cd $FAKE_ROOT%{_prefix}
+install %{SOURCE3} .config
+%{__make} headers
+cd -
+
+cp -f /usr/share/automake/config.* .
 rm -rf obj-%{target}
 install -d obj-%{target}
 cd obj-%{target}
 
-CFLAGS="%{rpmcflags}" \
-CXXFLAGS="%{rpmcflags}" \
+XCFLAGS="%{rpmcflags}" \
+XCXXFLAGS="%{rpmcxxflags}" \
 TEXCONFIG=false \
 ../configure \
        --prefix=%{_prefix} \
@@ -63,49 +102,84 @@ TEXCONFIG=false \
        --libexecdir=%{_libdir} \
        --disable-shared \
        --disable-threads \
-       --enable-languages="c" \
+       --enable-languages="c,c++" \
+       --enable-c99 \
+       --enable-long-long \
+       --disable-nls \
        --with-gnu-as \
        --with-gnu-ld \
+       --with-demangler-in-ld \
        --with-system-zlib \
-       --with-multilib \
-       --with-newlib \
-       --without-headers \
+       --enable-multilib \
+       --with-sysroot=$FAKE_ROOT \
        --without-x \
        --target=%{target} \
        --host=%{_target_platform} \
        --build=%{_target_platform}
 
-%{__make}
+%{__make} all-gcc
 
 %install
 rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
 
-%{__make} -C obj-%{target} install \
+%{__make} -C obj-%{target} install-gcc \
        DESTDIR=$RPM_BUILD_ROOT
 
+install obj-%{target}/gcc/specs $RPM_BUILD_ROOT%{gcclib}
+
 # don't want this here
 rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty.a
 
-%{target}-strip -g $RPM_BUILD_ROOT%{gcclib}/libgcov.a
+# include/ contains install-tools/include/* and headers that were fixed up
+# by fixincludes, we don't want former
+gccdir=$(echo $RPM_BUILD_ROOT%{_libdir}/gcc/*/*/)
+mkdir  $gccdir/tmp
+# we have to save these however
+#{?with_java:mv -f $gccdir/include/{gcj,libffi/ffitarget.h} $gccdir/tmp}
+mv -f  $gccdir/include/syslimits.h $gccdir/tmp
+rm -rf $gccdir/include
+mv -f  $gccdir/tmp $gccdir/include
+cp -f  $gccdir/install-tools/include/*.h $gccdir/include
+# but we don't want anything more from install-tools
+rm -rf $gccdir/install-tools
+
 %if 0%{!?debug:1}
-%{target}-strip -g $RPM_BUILD_ROOT%{gcclib}/libgcc.a
+%{target}-strip -g -R.note -R.comment $RPM_BUILD_ROOT%{gcclib}/libgcc.a
+%{target}-strip -g -R.note -R.comment $RPM_BUILD_ROOT%{gcclib}/libgcov.a
 %endif
 
+# custom startup file(s)
+install %{SOURCE4} $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
+%{target}-as -mcpu=arm7tdmi %{SOURCE4} -o $RPM_BUILD_ROOT%{gcclib}/lpc210x-crt0.o
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/%{target}-cpp
-%attr(755,root,root) %{_bindir}/%{target}-gcc*
+%attr(755,root,root) %{_bindir}/%{target}-gcc
+%attr(755,root,root) %{_bindir}/%{target}-gcc-%{version}
 %attr(755,root,root) %{_bindir}/%{target}-gcov
 %dir %{gccarch}
 %dir %{gcclib}
 %attr(755,root,root) %{gcclib}/cc1
 %attr(755,root,root) %{gcclib}/collect2
-%{gcclib}/crt*.o
+%{gcclib}/*crt*.o
 %{gcclib}/libgcc.a
+%{gcclib}/libgcov.a
 %{gcclib}/specs*
 %dir %{gcclib}/include
 %{gcclib}/include/*.h
+%{_mandir}/man1/%{target}-cpp.1*
 %{_mandir}/man1/%{target}-gcc.1*
+%{_mandir}/man1/%{target}-gcov.1*
+%{_examplesdir}/%{name}-%{version}
+
+%files c++
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/%{target}-c++
+%attr(755,root,root) %{_bindir}/%{target}-g++
+%attr(755,root,root) %{gcclib}/cc1plus
+%{_mandir}/man1/%{target}-g++.1*
This page took 0.090983 seconds and 4 git commands to generate.