Fork preps.

This commit is contained in:
Ralf Corsepius
2010-03-17 05:07:25 +00:00
parent cf293d1562
commit bf862710dd
141 changed files with 20304 additions and 0 deletions

View File

@@ -0,0 +1,2 @@
Makefile
Makefile.in

View File

@@ -0,0 +1,17 @@
# $Id$
SUBDIRS =
SUBDIRS += arm
SUBDIRS += avr
SUBDIRS += bfin
SUBDIRS += h8300
SUBDIRS += i386
SUBDIRS += lm32
SUBDIRS += m32c
SUBDIRS += m32r
SUBDIRS += m68k
SUBDIRS += mips
SUBDIRS += mipstx39
SUBDIRS += powerpc
SUBDIRS += sh
SUBDIRS += sparc

View File

@@ -0,0 +1,3 @@
Makefile
Makefile.in
*.spec.in

View File

@@ -0,0 +1,33 @@
# $Id$
TARGET = arm-rtems4.11
include $(top_srcdir)/mkspec.am
BINUTILS_VERS = 2.20.1
BINUTILS_PKGVERS = $(BINUTILS_VERS)
BINUTILS_RPMREL = 1
include ../binutils.am
BINUTILS_OPTS +=
GCC_VERS = 4.4.3
GCC_PKGVERS = $(GCC_VERS)
GCC_RPMREL = 1
NEWLIB_VERS = 1.18.0
NEWLIB_PKGVERS = $(NEWLIB_VERS)
NEWLIB_RPMREL = `expr $(GCC_RPMREL)`
include ../gcc.am
GCC_OPTS += --languages=cxx
GDB_VERS = 7.0.90
GDB_PKGVERS = $(GDB_VERS)
GDB_RPMREL = 1
include ../gdb.am
GDB_OPTS +=
CPUKIT_VERS = 4.9.99.0
CPUKIT_PKGVERS = $(CPUKIT_VERS)-20090206-2
CPUKIT_RPMREL = 1
include ../cpukit.am
CPUKIT_OPTS +=

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}

View File

@@ -0,0 +1,47 @@
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100315.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if %build_cxx
%if "%{gcc_version}" == "4.4.3"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%if "%{gcc_version}" == "4.4.2"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%{?_without_sources:NoSource: 1}
%endif
%if %build_fortran
Source2: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-fortran-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 2}
%endif
%if %build_gcj
Source3: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-java-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 3}
%endif
%if %build_gnat
Source4: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-ada-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 4}
%endif
%if %build_objc
Source5: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-objc-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 5}
%endif
%if %build_newlib
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%endif

View File

@@ -0,0 +1,9 @@
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif

View File

@@ -0,0 +1,268 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define binutils_pkgvers 2.20.1
%define binutils_version 2.20.1
%define binutils_rpmvers %{expand:%(echo "2.20.1" | tr - _ )}
Name: rtems-4.11-arm-rtems4.11-binutils
Summary: Binutils for target arm-rtems4.11
Group: Development/Tools
Version: %{binutils_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/binutils
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%if "%{binutils_version}" >= "2.18"
# Bug in bfd: Doesn't build without texinfo installed
BuildRequires: texinfo >= 4.2
%else
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
%endif
BuildRequires: flex
BuildRequires: bison
Requires: rtems-4.11-binutils-common
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
%description
Cross binutils for target arm-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd binutils-%{binutils_pkgvers}
%{?PATCH0:%patch0 -p1}
cd ..
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../binutils-%{binutils_pkgvers}/configure \
--build=%_build --host=%_host \
--target=arm-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
--prefix=%{_prefix} --bindir=%{_bindir} \
--exec-prefix=%{_exec_prefix} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
make prefix=$RPM_BUILD_ROOT%{_prefix} \
bindir=$RPM_BUILD_ROOT%{_bindir} \
includedir=$RPM_BUILD_ROOT%{_includedir} \
libdir=$RPM_BUILD_ROOT%{_libdir} \
infodir=$RPM_BUILD_ROOT%{_infodir} \
mandir=$RPM_BUILD_ROOT%{_mandir} \
exec_prefix=$RPM_BUILD_ROOT%{_exec_prefix} \
install-info
# Dropped in FSF-binutils-2.9.5, but Cygwin still ships it.
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure.info*
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# binutils does not install share/locale, however it uses it
mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/locale
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# manpages without corresponding tools
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/arm-rtems4.11-dlltool%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/arm-rtems4.11-dlltool*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/arm-rtems4.11-nlmconv%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/arm-rtems4.11-nlmconv*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/arm-rtems4.11-windres%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/arm-rtems4.11-windres*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/arm-rtems4.11-windmc%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/arm-rtems4.11-windmc*
fi
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# arm-rtems4.11-binutils
# ==============================================================
# %package -n rtems-4.11-arm-rtems4.11-binutils
# Summary: rtems binutils for arm-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-binutils-common
# %endif
%description -n rtems-4.11-arm-rtems4.11-binutils
GNU binutils targetting arm-rtems4.11.
%files -n rtems-4.11-arm-rtems4.11-binutils
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_datarootdir}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/arm-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/arm-rtems4.11-*
%dir %{_exec_prefix}/arm-rtems4.11
%dir %{_exec_prefix}/arm-rtems4.11/bin
%{_exec_prefix}/arm-rtems4.11/bin/*
%dir %{_exec_prefix}/arm-rtems4.11/lib
%{_exec_prefix}/arm-rtems4.11/lib/ldscripts
# ==============================================================
# rtems-4.11-binutils-common
# ==============================================================
%package -n rtems-4.11-binutils-common
Summary: Base package for RTEMS binutils
Group: Development/Tools
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-binutils-common
RTEMS is an open source operating system for embedded systems.
This is the base for binutils regardless of target CPU.
%post -n rtems-4.11-binutils-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
%preun -n rtems-4.11-binutils-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
fi
%files -n rtems-4.11-binutils-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/as.info*
%{_infodir}/bfd.info*
%{_infodir}/binutils.info*
%{_infodir}/ld.info*
%{_infodir}/standards.info*
%{_infodir}/gprof.info*
%dir %{_prefix}/share
%dir %{_prefix}/share/locale

View File

@@ -0,0 +1,158 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define cpukit_pkgvers 4.9.99.0-20090206-2
%define cpukit_version 4.9.99.0
%define cpukit_rpmvers %{expand:%(echo "4.9.99.0-20090206-2" | tr - . )}
Name: rtems-4.11-arm-rtems4.11-cpukit
Summary: arm-rtems4.11 cpukit
Group: Development/Tools
Version: %{cpukit_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://cpukit.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
%define debug_package %{nil}
BuildRequires: rtems-4.11-arm-rtems4.11-gcc
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}
%description
RTEMS cpukit for arm-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
../rtems-%{cpukit_version}/configure \
--prefix=%{_prefix} \
--target=arm-rtems4.11 \
--enable-multilib \
--disable-rtemsbsp
make all RTEMS_BSP=
cd ..
%install
rm -rf $RPM_BUILD_ROOT
export PATH="%{_bindir}:${PATH}"
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
rm -rf $RPM_BUILD_ROOT%{_prefix}/share/man
rm -rf $RPM_BUILD_ROOT%{_prefix}/bin
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{version}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/arm-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/arm-rtems4.11/' | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-provides
%define __find_provides %{_builddir}/%{name}-%{version}/find-provides
cat << EOF > %{_builddir}/%{name}-%{version}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/arm-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/arm-rtems4.11/' | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-requires
%define __find_requires %{_builddir}/%{name}-%{version}/find-requires
%clean
rm -rf $RPM_BUILD_ROOT
%description -n rtems-4.11-arm-rtems4.11-cpukit
RTEMS cpukit for target arm-rtems4.11.
%files -n rtems-4.11-arm-rtems4.11-cpukit
%defattr(-,root,root)
%dir %{_prefix}
%{_prefix}/arm-rtems4.11
# Violates the FHS
%exclude %{_prefix}/make

View File

@@ -0,0 +1,716 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gcc_pkgvers 4.4.3
%define gcc_version 4.4.3
%define gcc_rpmvers %{expand:%(echo "4.4.3" | tr - _ )}
%define newlib_pkgvers 1.18.0
%define newlib_version 1.18.0
Name: rtems-4.11-arm-rtems4.11-gcc
Summary: arm-rtems4.11 gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://gcc.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%define _use_internal_dependency_generator 0
BuildRequires: %{_host_rpmprefix}gcc
%if "%{gcc_version}" >= "4.3.0"
%define _gmp_minvers 4.1
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%if %{defined _gmp_minvers}
BuildRequires: gmp-devel >= %{_gmp_minvers}
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}gmp-devel >= %{_gmp_minvers}
%endif
%endif
%if "%{gcc_version}" >= "4.3.3"
%define _cloog_minvers 0.15
%endif
%if %{defined _cloog_minvers}
%{?fc11:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc12:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc13:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?suse11_2:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%{?suse11_1:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%endif
%if "%{gcc_version}" >= "4.4.0"
%define _mpfr_minvers 2.3.2
%define mpfr_version 2.4.1
%else
%if "%{gcc_version}" >= "4.3.0"
%define _mpfr_minvers 2.3.1
%define mpfr_version 2.3.2
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%endif
%if %{defined _mpfr_minvers}
# FIXME: This is an ugly cludge
%{?fc11:%global mpfr_provided 2.4.1}
%{?fc12:%global mpfr_provided 2.4.1}
%{?fc13:%global mpfr_provided 2.4.1}
%{?suse11_0:%global mpfr_provided 2.3.1}
%{?suse11_1:%global mpfr_provided 2.3.2}
%{?suse11_2:%global mpfr_provided 2.4.1}
%{?cygwin:%global mpfr_provided 2.4.1}
%{?mingw32:%global mpfr_provided %{nil}}
%if %{defined mpfr_provided}
%if "%{mpfr_provided}" < "%{_mpfr_minvers}"
%define _build_mpfr 1
%else
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}mpfr-devel >= %{_mpfr_minvers}
%else
BuildRequires: mpfr-devel >= %{_mpfr_minvers}
%endif
%endif
%else
%define _build_mpfr 1
%endif
%endif
%if "%{_build}" != "%{_host}"
BuildRequires: rtems-4.11-arm-rtems4.11-gcc = %{gcc_rpmvers}
%endif
%if "%{gcc_version}" >= "4.2.0"
BuildRequires: flex bison
%endif
BuildRequires: texinfo >= 4.2
BuildRequires: rtems-4.11-arm-rtems4.11-binutils
Requires: rtems-4.11-gcc-common
Requires: rtems-4.11-arm-rtems4.11-binutils
Requires: rtems-4.11-arm-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
Requires: rtems-4.11-arm-rtems4.11-newlib = %{newlib_version}-1%{?dist}
%define _gcclibdir %{_prefix}/lib
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100315.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if "%{gcc_version}" == "4.4.3"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%if "%{gcc_version}" == "4.4.2"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%{?_without_sources:NoSource: 1}
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%if "%{gcc_version}" >= "4.3.0"
Source60: http://www.mpfr.org/mpfr-current/mpfr-%{mpfr_version}.tar.bz2
%endif
%description
Cross gcc for arm-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%{?PATCH0:%patch0 -p0}
%setup -q -T -D -n %{name}-%{version} -a1
%{?PATCH1:%patch1 -p0}
%setup -q -T -D -n %{name}-%{version} -a50
cd newlib-%{newlib_version}
%{?PATCH50:%patch50 -p1}
cd ..
# Copy the C library into gcc's source tree
ln -s ../newlib-%{newlib_version}/newlib gcc-%{gcc_pkgvers}
%if 0%{?_build_mpfr}
%setup -q -T -D -n %{name}-%{version} -a60
%{?PATCH60:%patch60 -p1}
# Build mpfr one-tree style
ln -s ../mpfr-%{mpfr_version} gcc-%{gcc_pkgvers}/mpfr
%endif
echo "RTEMS gcc-%{gcc_version}-1%{?dist}/newlib-%{newlib_version}-1%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
# Fix timestamps
cd gcc-%{gcc_pkgvers}
contrib/gcc_update --touch
cd ..
%build
mkdir -p build
cd build
languages="c"
languages="$languages,c++"
export PATH="%{_bindir}:${PATH}"
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
CC="%{_host}-gcc ${RPM_OPT_FLAGS}" \
%else
# gcc is not ready to be compiled with -std=gnu99
CC=$(echo "%{__cc} ${RPM_OPT_FLAGS}" | sed -e 's,-std=gnu99 ,,') \
%endif
../gcc-%{gcc_pkgvers}/configure \
--prefix=%{_prefix} \
--bindir=%{_bindir} \
--exec_prefix=%{_exec_prefix} \
--includedir=%{_includedir} \
--libdir=%{_gcclibdir} \
--libexecdir=%{_libexecdir} \
--mandir=%{_mandir} \
--infodir=%{_infodir} \
--datadir=%{_datadir} \
--build=%_build --host=%_host \
--target=arm-rtems4.11 \
--disable-libstdcxx-pch \
--with-gnu-as --with-gnu-ld --verbose \
--with-newlib \
--with-system-zlib \
--disable-nls --without-included-gettext \
--disable-win32-registry \
--enable-version-specific-runtime-libs \
--enable-threads \
--enable-newlib-io-c99-formats \
--enable-languages="$languages" $optargs
%if "%_host" != "%_build"
# Bug in gcc-3.2.1:
# Somehow, gcc doesn't get syslimits.h right for Cdn-Xs
mkdir -p gcc/include
cp ../gcc-%{gcc_pkgvers}/gcc/gsyslimits.h gcc/include/syslimits.h
%endif
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
cd build/arm-rtems4.11/newlib
make DESTDIR=$RPM_BUILD_ROOT install-info
cd ../../..
%if "%{gcc_version}" <= "4.1.2"
# Misplaced header file
if test -f $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h; then
mv $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h \
$RPM_BUILD_ROOT%{_gcclibdir}/gcc/arm-rtems4.11/%{gcc_version}/include/
fi
%endif
# host library
%if "%{gcc_version}" >= "4.2.0"
# libiberty doesn't honor --libdir, but always installs to a
# magically guessed _libdir
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty.a
%else
# libiberty installs to --libdir=...
rm -f ${RPM_BUILD_ROOT}%{_gcclibdir}/libiberty.a
%endif
# We use the version from binutils
rm -f $RPM_BUILD_ROOT%{_bindir}/arm-rtems4.11-c++filt%{_exeext}
# We don't ship info/dir
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# Bug in gcc-3.4.0pre
rm -f $RPM_BUILD_ROOT%{_bindir}/arm-rtems4.11-arm-rtems4.11-gcjh%{_exeext}
# Bug in gcc-3.3.x/gcc-3.4.x: Despite we don't need fixincludes, it installs
# the fixinclude-install-tools
rm -rf ${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/arm-rtems4.11/%{gcc_version}/install-tools
rm -rf ${RPM_BUILD_ROOT}%{_libexecdir}/gcc/arm-rtems4.11/%{gcc_version}/install-tools
# Bug in gcc > 4.1.0: Installs an unused, empty directory
if test -d ${RPM_BUILD_ROOT}%{_prefix}/arm-rtems4.11/include/bits; then
rmdir ${RPM_BUILD_ROOT}%{_prefix}/arm-rtems4.11/include/bits
fi
# Collect multilib subdirectories
multilibs=`build/gcc/xgcc -Bbuild/gcc/ --print-multi-lib | sed -e 's,;.*$,,'`
echo "%defattr(-,root,root,-)" > build/files.newlib
TGTDIR="%{_exec_prefix}/arm-rtems4.11/lib"
for i in $multilibs; do
case $i in
\.) echo "%dir ${TGTDIR}" >> build/files.newlib
;;
*) echo "%dir ${TGTDIR}/$i" >> build/files.newlib
;;
esac
done
rm -f dirs ;
echo "%defattr(-,root,root,-)" >> dirs
TGTDIR="%{_gcclibdir}/gcc/arm-rtems4.11/%{gcc_version}"
for i in $multilibs; do
case $i in
\.) ;; # ignore, handled elsewhere
*) echo "%dir ${TGTDIR}/$i" >> dirs
;;
esac
done
# Collect files to go into different packages
cp dirs build/files.gcc
cp dirs build/files.gfortran
cp dirs build/files.objc
cp dirs build/files.gcj
cp dirs build/files.g++
TGTDIR="%{_gcclibdir}/gcc/arm-rtems4.11/%{gcc_version}"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i ;; # ignore: gcc produces bogus libtool libs
*f771) ;;
*f951) ;;
*cc1) ;;
*cc1obj) ;;
*cc1plus) ;; # ignore: explicitly put into rpm elsewhere
*collect2) ;;
*libobjc*) echo "$i" >> build/files.objc ;;
*include/objc*) ;;
*include/g++*);;
*include/c++*);;
*include-fixed/*);;
*finclude/*);;
*adainclude*);;
*adalib*);;
*gnat1);;
*jc1) ;;
*jvgenmain) ;;
*/libgfortran*.*) echo "$i" >> build/files.gfortran ;;
*/libstdc++.*) echo "$i" >> build/files.g++ ;;
*/libsupc++.*) echo "$i" >> build/files.g++ ;;
*) echo "$i" >> build/files.gcc ;;
esac
done
TGTDIR="%{_exec_prefix}/arm-rtems4.11/lib"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i;; # ignore - gcc produces bogus libtool libs
*libiberty.a) rm ${RPM_BUILD_ROOT}/$i ;; # ignore - GPL'ed
# all other files belong to newlib
*) echo "$i" >> build/files.newlib ;;
esac
done
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/arm-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/arm-rtems4.11/'} | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
%define __find_provides %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/arm-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/arm-rtems4.11/'} | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%define __find_requires %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%ifnarch noarch
# Extract %%__debug_install_post into debug_install_post~
cat << \EOF > debug_install_post~
%__debug_install_post
EOF
# Generate customized debug_install_post script
cat debug_install_post~ | while read a x y; do
case $a in
# Prevent find-debuginfo.sh* from trying to handle foreign binaries
*/find-debuginfo.sh)
b=$(basename $a)
sed -e 's,find "$RPM_BUILD_ROOT" !,find "$RPM_BUILD_ROOT"%_bindir "$RPM_BUILD_ROOT"%_libexecdir !,' $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm/find-debuginfo.sh,./find-debuginfo.sh,' \
< debug_install_post~ > debug_install_post
%define __debug_install_post . ./debug_install_post
%endif
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# rtems-4.11-arm-rtems4.11-gcc
# ==============================================================
# %package -n rtems-4.11-arm-rtems4.11-gcc
# Summary: GNU cc compiler for arm-rtems4.11
# Group: Development/Tools
# Version: %{gcc_rpmvers}
# Requires: rtems-4.11-arm-rtems4.11-binutils
# Requires: rtems-4.11-arm-rtems4.11-newlib = %{newlib_version}-1%{?dist}
# License: GPL
# %if %build_infos
# Requires: rtems-4.11-gcc-common
# %endif
%description -n rtems-4.11-arm-rtems4.11-gcc
GNU cc compiler for arm-rtems4.11.
# ==============================================================
# rtems-4.11-arm-rtems4.11-gcc-libgcc
# ==============================================================
%package -n rtems-4.11-arm-rtems4.11-gcc-libgcc
Summary: libgcc for arm-rtems4.11-gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-arm-rtems4.11-newlib = %{newlib_version}-1%{?dist}
License: GPL
%description -n rtems-4.11-arm-rtems4.11-gcc-libgcc
libgcc arm-rtems4.11-gcc.
%files -n rtems-4.11-arm-rtems4.11-gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/arm-rtems4.11-gcc.1*
%{_mandir}/man1/arm-rtems4.11-cpp.1*
%{_mandir}/man1/arm-rtems4.11-gcov.1*
%dir %{_bindir}
%{_bindir}/arm-rtems4.11-cpp%{_exeext}
%{_bindir}/arm-rtems4.11-gcc%{_exeext}
%{_bindir}/arm-rtems4.11-gcc-%{gcc_version}%{_exeext}
%{_bindir}/arm-rtems4.11-gcov%{_exeext}
%{_bindir}/arm-rtems4.11-gccbug
%dir %{_libexecdir}
%dir %{_libexecdir}/gcc
%dir %{_libexecdir}/gcc/arm-rtems4.11
%dir %{_libexecdir}/gcc/arm-rtems4.11/%{gcc_version}
%{_libexecdir}/gcc/arm-rtems4.11/%{gcc_version}/cc1%{_exeext}
%{_libexecdir}/gcc/arm-rtems4.11/%{gcc_version}/collect2%{_exeext}
%files -n rtems-4.11-arm-rtems4.11-gcc-libgcc -f build/files.gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_gcclibdir}
%dir %{_gcclibdir}/gcc
%dir %{_gcclibdir}/gcc/arm-rtems4.11
%dir %{_gcclibdir}/gcc/arm-rtems4.11/%{gcc_version}
%dir %{_gcclibdir}/gcc/arm-rtems4.11/%{gcc_version}/include
%if "%{gcc_version}" > "4.0.3"
%if "arm-rtems4.11" != "bfin-rtems4.10"
%if "arm-rtems4.11" != "avr-rtems4.10"
%dir %{_gcclibdir}/gcc/arm-rtems4.11/%{gcc_version}/include/ssp
%endif
%endif
%endif
%if "%{gcc_version}" >= "4.3.0"
%{_gcclibdir}/gcc/arm-rtems4.11/%{gcc_version}/include-fixed
%endif
# ==============================================================
# rtems-4.11-gcc-common
# ==============================================================
%package -n rtems-4.11-gcc-common
Summary: Base package for rtems gcc and newlib C Library
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: GPL
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-gcc-common
GCC files that are shared by all targets.
%files -n rtems-4.11-gcc-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/cpp.info*
%{_infodir}/cppinternals.info*
%{_infodir}/gcc.info*
%{_infodir}/gccint.info*
%{_infodir}/gccinstall.info*
%dir %{_mandir}
%dir %{_mandir}/man7
%{_mandir}/man7/fsf-funding.7*
%{_mandir}/man7/gfdl.7*
%{_mandir}/man7/gpl.7*
%post -n rtems-4.11-gcc-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
%preun -n rtems-4.11-gcc-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
fi
# ==============================================================
# rtems-4.11-arm-rtems4.11-gcc-c++
# ==============================================================
%package -n rtems-4.11-arm-rtems4.11-gcc-c++
Summary: GCC c++ compiler for arm-rtems4.11
Group: Development/Tools
Version: %{gcc_rpmvers}
License: GPL
Requires: rtems-4.11-arm-rtems4.11-gcc-libstdc++ = %{gcc_rpmvers}-%{release}
%if "%{_build}" != "%{_host}"
BuildRequires: rtems-4.11-arm-rtems4.11-gcc-c++ = %{gcc_rpmvers}
%endif
Requires: rtems-4.11-gcc-common
Requires: rtems-4.11-arm-rtems4.11-gcc = %{gcc_rpmvers}-%{release}
%description -n rtems-4.11-arm-rtems4.11-gcc-c++
GCC c++ compiler for arm-rtems4.11.
%package -n rtems-4.11-arm-rtems4.11-gcc-libstdc++
Summary: libstdc++ for arm-rtems4.11
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: GPL
%description -n rtems-4.11-arm-rtems4.11-gcc-libstdc++
%{summary}
%files -n rtems-4.11-arm-rtems4.11-gcc-c++
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/arm-rtems4.11-g++.1*
%dir %{_bindir}
%{_bindir}/arm-rtems4.11-c++%{_exeext}
%{_bindir}/arm-rtems4.11-g++%{_exeext}
%dir %{_libexecdir}
%dir %{_libexecdir}/gcc
%dir %{_libexecdir}/gcc/arm-rtems4.11
%dir %{_libexecdir}/gcc/arm-rtems4.11/%{gcc_version}
%{_libexecdir}/gcc/arm-rtems4.11/%{gcc_version}/cc1plus%{_exeext}
%files -n rtems-4.11-arm-rtems4.11-gcc-libstdc++ -f build/files.g++
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_gcclibdir}
%dir %{_gcclibdir}/gcc
%dir %{_gcclibdir}/gcc/arm-rtems4.11
%dir %{_gcclibdir}/gcc/arm-rtems4.11/%{gcc_version}
%dir %{_gcclibdir}/gcc/arm-rtems4.11/%{gcc_version}/include
%{_gcclibdir}/gcc/arm-rtems4.11/%{gcc_version}/include/c++
# ==============================================================
# rtems-4.11-arm-rtems4.11-newlib
# ==============================================================
%package -n rtems-4.11-arm-rtems4.11-newlib
Summary: C Library (newlib) for arm-rtems4.11
Group: Development/Tools
License: Distributable
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-newlib-common
%description -n rtems-4.11-arm-rtems4.11-newlib
Newlib C Library for arm-rtems4.11.
%files -n rtems-4.11-arm-rtems4.11-newlib -f build/files.newlib
%defattr(-,root,root)
%dir %{_exec_prefix}
%dir %{_exec_prefix}/arm-rtems4.11
%{_exec_prefix}/arm-rtems4.11/include
# ==============================================================
# rtems-4.11-newlib-common
# ==============================================================
%package -n rtems-4.11-newlib-common
Summary: Base package for RTEMS newlib C Library
Group: Development/Tools
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: Distributable
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-newlib-common
newlib files that are shared by all targets.
%files -n rtems-4.11-newlib-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/libc.info*
%{_infodir}/libm.info*
%post -n rtems-4.11-newlib-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
%preun -n rtems-4.11-newlib-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
fi

View File

@@ -0,0 +1,319 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gdb_version 7.0.90
%define gdb_rpmvers %{expand:%(echo 7.0.90 | tr - _)}
Name: rtems-4.11-arm-rtems4.11-gdb
Summary: Gdb for target arm-rtems4.11
Group: Development/Tools
Version: %{gdb_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/gdb
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%define build_sim --enable-sim
%if "%{_build}" != "%{_host}"
# psim doesn't support Cdn-X
%if "arm-rtems4.11" == "powerpc-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%ifos mingw mingw32
# Mingw lacks functions required by the simulator
%if "arm-rtems4.11" == "sparc-rtems4.10"
%define build_sim --disable-sim
%endif
%if "arm-rtems4.11" == "h8300-rtems4.10"
%define build_sim --disable-sim
%endif
%if "%{gdb_version}" >= "6.8.50"
%if "arm-rtems4.11" == "m32c-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "arm-rtems4.11" == "lm32-rtems4.10"
%define build_sim --disable-sim
%endif
%if "arm-rtems4.11" == "mipstx39-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "%{gdb_version}" >= "6.6"
# suse
%if "%{?suse}" >= "10.3"
BuildRequires: libexpat-devel
%else
# Fedora/CentOS/Cygwin/MinGW
BuildRequires: %{_host_rpmprefix}expat-devel
%endif
%endif
%if "%{gdb_version}" < "6.7"
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}termcap-devel
%endif
%bcond_with system_readline
%else
%bcond_without system_readline
%endif
%{?with_system_readline:BuildRequires: %{_host_rpmprefix}readline-devel}
BuildRequires: %{_host_rpmprefix}ncurses-devel
%if "%{gdb_version}" >= "6.8.50"
%if "%{_build}" != "%{_host}"
# Can't build python Cdn-X
%bcond_with python
%else
%bcond_without python
%endif
%endif
%{?with_python:BuildRequires: %{_host_rpmprefix}python-devel}
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
Requires: rtems-4.11-gdb-common
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif
%description
GDB for target arm-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd gdb-%{gdb_version}
%{?PATCH0:%patch0 -p1}
cd ..
# Force using a system-provided libreadline
%{?with_system_readline:rm -f gdb-%{gdb_version}/readline/configure}
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../gdb-%{gdb_version}/configure \
--build=%_build --host=%_host \
--target=arm-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
%{build_sim} \
%{?with_system_readline:--with-system-readline} \
%if "%{gdb_version}" >= "6.6"
--with-expat \
%endif
%if "%{gdb_version}" >= "6.8.50"
%if %{with python}
--with-python \
%else
--without-python \
%endif
%endif
--prefix=%{_prefix} --bindir=%{_bindir} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# These come from other packages
rm -rf $RPM_BUILD_ROOT%{_infodir}/bfd*
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure*
rm -rf $RPM_BUILD_ROOT%{_infodir}/standards*
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# host library, installed to a bogus directory
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libarm-rtems4.11-sim.a
%if "%{gdb_version}" >= "7.0"
# Bug in gdb-7.0, bogusly installs linux-only files
somethinguseful=0
for f in ${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls/*.xml; do
case $f in
*linux.xml) rm -f $f;;
*.xml) somethinguseful=1;;
esac
done
if test $somethinguseful -eq 0; then
rm -rf "${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls"
fi
%endif
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# arm-rtems4.11-gdb
# ==============================================================
# %package -n rtems-4.11-arm-rtems4.11-gdb
# Summary: rtems gdb for arm-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-gdb-common
# %endif
%description -n rtems-4.11-arm-rtems4.11-gdb
GNU gdb targetting arm-rtems4.11.
%files -n rtems-4.11-arm-rtems4.11-gdb
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/arm-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/arm-rtems4.11-*
# ==============================================================
# rtems-4.11-gdb-common
# ==============================================================
%package -n rtems-4.11-gdb-common
Summary: Base package for RTEMS gdbs
Group: Development/Tools
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%{?_with_noarch_subpackages:BuildArch: noarch}
%description -n rtems-4.11-gdb-common
GDB files shared by all targets.
%post -n rtems-4.11-gdb-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
%preun -n rtems-4.11-gdb-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
fi
%files -n rtems-4.11-gdb-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/gdb.info*
%{_infodir}/gdbint.info*
%{_infodir}/stabs.info*
%{_infodir}/annotate.info*

View File

@@ -0,0 +1,3 @@
Makefile
Makefile.in
*.spec.in

View File

@@ -0,0 +1,32 @@
# $Id$
TARGET = avr-rtems4.11
include $(top_srcdir)/mkspec.am
BINUTILS_VERS = 2.20.1
BINUTILS_PKGVERS = $(BINUTILS_VERS)
BINUTILS_RPMREL = 1
include ../binutils.am
BINUTILS_OPTS +=
GCC_VERS = 4.4.3
GCC_PKGVERS = $(GCC_VERS)
GCC_RPMREL = 1
NEWLIB_VERS = 1.18.0
NEWLIB_PKGVERS = $(NEWLIB_VERS)
NEWLIB_RPMREL = `expr $(GCC_RPMREL)`
include ../gcc.am
GCC_OPTS +=
GDB_VERS = 7.0.90
GDB_PKGVERS = $(GDB_VERS)
GDB_RPMREL = 1
include ../gdb.am
GDB_OPTS +=
CPUKIT_VERS = 4.9.99.0
CPUKIT_PKGVERS = $(CPUKIT_VERS)-20090206-2
CPUKIT_RPMREL = 1
include ../cpukit.am
CPUKIT_OPTS +=

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}

View File

@@ -0,0 +1,47 @@
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if %build_cxx
%if "%{gcc_version}" == "4.4.3"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%if "%{gcc_version}" == "4.4.2"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%{?_without_sources:NoSource: 1}
%endif
%if %build_fortran
Source2: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-fortran-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 2}
%endif
%if %build_gcj
Source3: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-java-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 3}
%endif
%if %build_gnat
Source4: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-ada-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 4}
%endif
%if %build_objc
Source5: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-objc-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 5}
%endif
%if %build_newlib
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%endif

View File

@@ -0,0 +1,9 @@
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif

View File

@@ -0,0 +1,268 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define binutils_pkgvers 2.20.1
%define binutils_version 2.20.1
%define binutils_rpmvers %{expand:%(echo "2.20.1" | tr - _ )}
Name: rtems-4.11-avr-rtems4.11-binutils
Summary: Binutils for target avr-rtems4.11
Group: Development/Tools
Version: %{binutils_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/binutils
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%if "%{binutils_version}" >= "2.18"
# Bug in bfd: Doesn't build without texinfo installed
BuildRequires: texinfo >= 4.2
%else
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
%endif
BuildRequires: flex
BuildRequires: bison
Requires: rtems-4.11-binutils-common
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
%description
Cross binutils for target avr-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd binutils-%{binutils_pkgvers}
%{?PATCH0:%patch0 -p1}
cd ..
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../binutils-%{binutils_pkgvers}/configure \
--build=%_build --host=%_host \
--target=avr-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
--prefix=%{_prefix} --bindir=%{_bindir} \
--exec-prefix=%{_exec_prefix} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
make prefix=$RPM_BUILD_ROOT%{_prefix} \
bindir=$RPM_BUILD_ROOT%{_bindir} \
includedir=$RPM_BUILD_ROOT%{_includedir} \
libdir=$RPM_BUILD_ROOT%{_libdir} \
infodir=$RPM_BUILD_ROOT%{_infodir} \
mandir=$RPM_BUILD_ROOT%{_mandir} \
exec_prefix=$RPM_BUILD_ROOT%{_exec_prefix} \
install-info
# Dropped in FSF-binutils-2.9.5, but Cygwin still ships it.
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure.info*
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# binutils does not install share/locale, however it uses it
mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/locale
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# manpages without corresponding tools
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/avr-rtems4.11-dlltool%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/avr-rtems4.11-dlltool*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/avr-rtems4.11-nlmconv%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/avr-rtems4.11-nlmconv*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/avr-rtems4.11-windres%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/avr-rtems4.11-windres*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/avr-rtems4.11-windmc%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/avr-rtems4.11-windmc*
fi
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# avr-rtems4.11-binutils
# ==============================================================
# %package -n rtems-4.11-avr-rtems4.11-binutils
# Summary: rtems binutils for avr-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-binutils-common
# %endif
%description -n rtems-4.11-avr-rtems4.11-binutils
GNU binutils targetting avr-rtems4.11.
%files -n rtems-4.11-avr-rtems4.11-binutils
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_datarootdir}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/avr-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/avr-rtems4.11-*
%dir %{_exec_prefix}/avr-rtems4.11
%dir %{_exec_prefix}/avr-rtems4.11/bin
%{_exec_prefix}/avr-rtems4.11/bin/*
%dir %{_exec_prefix}/avr-rtems4.11/lib
%{_exec_prefix}/avr-rtems4.11/lib/ldscripts
# ==============================================================
# rtems-4.11-binutils-common
# ==============================================================
%package -n rtems-4.11-binutils-common
Summary: Base package for RTEMS binutils
Group: Development/Tools
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-binutils-common
RTEMS is an open source operating system for embedded systems.
This is the base for binutils regardless of target CPU.
%post -n rtems-4.11-binutils-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
%preun -n rtems-4.11-binutils-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
fi
%files -n rtems-4.11-binutils-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/as.info*
%{_infodir}/bfd.info*
%{_infodir}/binutils.info*
%{_infodir}/ld.info*
%{_infodir}/standards.info*
%{_infodir}/gprof.info*
%dir %{_prefix}/share
%dir %{_prefix}/share/locale

View File

@@ -0,0 +1,158 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define cpukit_pkgvers 4.9.99.0-20090206-2
%define cpukit_version 4.9.99.0
%define cpukit_rpmvers %{expand:%(echo "4.9.99.0-20090206-2" | tr - . )}
Name: rtems-4.11-avr-rtems4.11-cpukit
Summary: avr-rtems4.11 cpukit
Group: Development/Tools
Version: %{cpukit_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://cpukit.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
%define debug_package %{nil}
BuildRequires: rtems-4.11-avr-rtems4.11-gcc
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}
%description
RTEMS cpukit for avr-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
../rtems-%{cpukit_version}/configure \
--prefix=%{_prefix} \
--target=avr-rtems4.11 \
--enable-multilib \
--disable-rtemsbsp
make all RTEMS_BSP=
cd ..
%install
rm -rf $RPM_BUILD_ROOT
export PATH="%{_bindir}:${PATH}"
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
rm -rf $RPM_BUILD_ROOT%{_prefix}/share/man
rm -rf $RPM_BUILD_ROOT%{_prefix}/bin
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{version}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/avr-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/avr-rtems4.11/' | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-provides
%define __find_provides %{_builddir}/%{name}-%{version}/find-provides
cat << EOF > %{_builddir}/%{name}-%{version}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/avr-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/avr-rtems4.11/' | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-requires
%define __find_requires %{_builddir}/%{name}-%{version}/find-requires
%clean
rm -rf $RPM_BUILD_ROOT
%description -n rtems-4.11-avr-rtems4.11-cpukit
RTEMS cpukit for target avr-rtems4.11.
%files -n rtems-4.11-avr-rtems4.11-cpukit
%defattr(-,root,root)
%dir %{_prefix}
%{_prefix}/avr-rtems4.11
# Violates the FHS
%exclude %{_prefix}/make

View File

@@ -0,0 +1,645 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gcc_pkgvers 4.4.3
%define gcc_version 4.4.3
%define gcc_rpmvers %{expand:%(echo "4.4.3" | tr - _ )}
%define newlib_pkgvers 1.18.0
%define newlib_version 1.18.0
Name: rtems-4.11-avr-rtems4.11-gcc
Summary: avr-rtems4.11 gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://gcc.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%define _use_internal_dependency_generator 0
BuildRequires: %{_host_rpmprefix}gcc
%if "%{gcc_version}" >= "4.3.0"
%define _gmp_minvers 4.1
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%if %{defined _gmp_minvers}
BuildRequires: gmp-devel >= %{_gmp_minvers}
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}gmp-devel >= %{_gmp_minvers}
%endif
%endif
%if "%{gcc_version}" >= "4.3.3"
%define _cloog_minvers 0.15
%endif
%if %{defined _cloog_minvers}
%{?fc11:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc12:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc13:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?suse11_2:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%{?suse11_1:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%endif
%if "%{gcc_version}" >= "4.4.0"
%define _mpfr_minvers 2.3.2
%define mpfr_version 2.4.1
%else
%if "%{gcc_version}" >= "4.3.0"
%define _mpfr_minvers 2.3.1
%define mpfr_version 2.3.2
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%endif
%if %{defined _mpfr_minvers}
# FIXME: This is an ugly cludge
%{?fc11:%global mpfr_provided 2.4.1}
%{?fc12:%global mpfr_provided 2.4.1}
%{?fc13:%global mpfr_provided 2.4.1}
%{?suse11_0:%global mpfr_provided 2.3.1}
%{?suse11_1:%global mpfr_provided 2.3.2}
%{?suse11_2:%global mpfr_provided 2.4.1}
%{?cygwin:%global mpfr_provided 2.4.1}
%{?mingw32:%global mpfr_provided %{nil}}
%if %{defined mpfr_provided}
%if "%{mpfr_provided}" < "%{_mpfr_minvers}"
%define _build_mpfr 1
%else
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}mpfr-devel >= %{_mpfr_minvers}
%else
BuildRequires: mpfr-devel >= %{_mpfr_minvers}
%endif
%endif
%else
%define _build_mpfr 1
%endif
%endif
%if "%{_build}" != "%{_host}"
BuildRequires: rtems-4.11-avr-rtems4.11-gcc = %{gcc_rpmvers}
%endif
%if "%{gcc_version}" >= "4.2.0"
BuildRequires: flex bison
%endif
BuildRequires: texinfo >= 4.2
BuildRequires: rtems-4.11-avr-rtems4.11-binutils
Requires: rtems-4.11-gcc-common
Requires: rtems-4.11-avr-rtems4.11-binutils
Requires: rtems-4.11-avr-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
Requires: rtems-4.11-avr-rtems4.11-newlib = %{newlib_version}-1%{?dist}
%define _gcclibdir %{_prefix}/lib
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%if "%{gcc_version}" >= "4.3.0"
Source60: http://www.mpfr.org/mpfr-current/mpfr-%{mpfr_version}.tar.bz2
%endif
%description
Cross gcc for avr-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%{?PATCH0:%patch0 -p0}
%setup -q -T -D -n %{name}-%{version} -a50
cd newlib-%{newlib_version}
%{?PATCH50:%patch50 -p1}
cd ..
# Copy the C library into gcc's source tree
ln -s ../newlib-%{newlib_version}/newlib gcc-%{gcc_pkgvers}
%if 0%{?_build_mpfr}
%setup -q -T -D -n %{name}-%{version} -a60
%{?PATCH60:%patch60 -p1}
# Build mpfr one-tree style
ln -s ../mpfr-%{mpfr_version} gcc-%{gcc_pkgvers}/mpfr
%endif
echo "RTEMS gcc-%{gcc_version}-1%{?dist}/newlib-%{newlib_version}-1%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
# Fix timestamps
cd gcc-%{gcc_pkgvers}
contrib/gcc_update --touch
cd ..
%build
mkdir -p build
cd build
languages="c"
export PATH="%{_bindir}:${PATH}"
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
CC="%{_host}-gcc ${RPM_OPT_FLAGS}" \
%else
# gcc is not ready to be compiled with -std=gnu99
CC=$(echo "%{__cc} ${RPM_OPT_FLAGS}" | sed -e 's,-std=gnu99 ,,') \
%endif
../gcc-%{gcc_pkgvers}/configure \
--prefix=%{_prefix} \
--bindir=%{_bindir} \
--exec_prefix=%{_exec_prefix} \
--includedir=%{_includedir} \
--libdir=%{_gcclibdir} \
--libexecdir=%{_libexecdir} \
--mandir=%{_mandir} \
--infodir=%{_infodir} \
--datadir=%{_datadir} \
--build=%_build --host=%_host \
--target=avr-rtems4.11 \
--disable-libstdcxx-pch \
--with-gnu-as --with-gnu-ld --verbose \
--with-newlib \
--with-system-zlib \
--disable-nls --without-included-gettext \
--disable-win32-registry \
--enable-version-specific-runtime-libs \
--enable-threads \
--enable-newlib-io-c99-formats \
--enable-languages="$languages" $optargs
%if "%_host" != "%_build"
# Bug in gcc-3.2.1:
# Somehow, gcc doesn't get syslimits.h right for Cdn-Xs
mkdir -p gcc/include
cp ../gcc-%{gcc_pkgvers}/gcc/gsyslimits.h gcc/include/syslimits.h
%endif
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
cd build/avr-rtems4.11/newlib
make DESTDIR=$RPM_BUILD_ROOT install-info
cd ../../..
%if "%{gcc_version}" <= "4.1.2"
# Misplaced header file
if test -f $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h; then
mv $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h \
$RPM_BUILD_ROOT%{_gcclibdir}/gcc/avr-rtems4.11/%{gcc_version}/include/
fi
%endif
# host library
%if "%{gcc_version}" >= "4.2.0"
# libiberty doesn't honor --libdir, but always installs to a
# magically guessed _libdir
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty.a
%else
# libiberty installs to --libdir=...
rm -f ${RPM_BUILD_ROOT}%{_gcclibdir}/libiberty.a
%endif
# We use the version from binutils
rm -f $RPM_BUILD_ROOT%{_bindir}/avr-rtems4.11-c++filt%{_exeext}
# We don't ship info/dir
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# Bug in gcc-3.4.0pre
rm -f $RPM_BUILD_ROOT%{_bindir}/avr-rtems4.11-avr-rtems4.11-gcjh%{_exeext}
# Bug in gcc-3.3.x/gcc-3.4.x: Despite we don't need fixincludes, it installs
# the fixinclude-install-tools
rm -rf ${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/avr-rtems4.11/%{gcc_version}/install-tools
rm -rf ${RPM_BUILD_ROOT}%{_libexecdir}/gcc/avr-rtems4.11/%{gcc_version}/install-tools
# Bug in gcc > 4.1.0: Installs an unused, empty directory
if test -d ${RPM_BUILD_ROOT}%{_prefix}/avr-rtems4.11/include/bits; then
rmdir ${RPM_BUILD_ROOT}%{_prefix}/avr-rtems4.11/include/bits
fi
# Collect multilib subdirectories
multilibs=`build/gcc/xgcc -Bbuild/gcc/ --print-multi-lib | sed -e 's,;.*$,,'`
echo "%defattr(-,root,root,-)" > build/files.newlib
TGTDIR="%{_exec_prefix}/avr-rtems4.11/lib"
for i in $multilibs; do
case $i in
\.) echo "%dir ${TGTDIR}" >> build/files.newlib
;;
*) echo "%dir ${TGTDIR}/$i" >> build/files.newlib
;;
esac
done
rm -f dirs ;
echo "%defattr(-,root,root,-)" >> dirs
TGTDIR="%{_gcclibdir}/gcc/avr-rtems4.11/%{gcc_version}"
for i in $multilibs; do
case $i in
\.) ;; # ignore, handled elsewhere
*) echo "%dir ${TGTDIR}/$i" >> dirs
;;
esac
done
# Collect files to go into different packages
cp dirs build/files.gcc
cp dirs build/files.gfortran
cp dirs build/files.objc
cp dirs build/files.gcj
cp dirs build/files.g++
TGTDIR="%{_gcclibdir}/gcc/avr-rtems4.11/%{gcc_version}"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i ;; # ignore: gcc produces bogus libtool libs
*f771) ;;
*f951) ;;
*cc1) ;;
*cc1obj) ;;
*cc1plus) ;; # ignore: explicitly put into rpm elsewhere
*collect2) ;;
*libobjc*) echo "$i" >> build/files.objc ;;
*include/objc*) ;;
*include/g++*);;
*include/c++*);;
*include-fixed/*);;
*finclude/*);;
*adainclude*);;
*adalib*);;
*gnat1);;
*jc1) ;;
*jvgenmain) ;;
*/libgfortran*.*) echo "$i" >> build/files.gfortran ;;
*/libstdc++.*) echo "$i" >> build/files.g++ ;;
*/libsupc++.*) echo "$i" >> build/files.g++ ;;
*) echo "$i" >> build/files.gcc ;;
esac
done
TGTDIR="%{_exec_prefix}/avr-rtems4.11/lib"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i;; # ignore - gcc produces bogus libtool libs
*libiberty.a) rm ${RPM_BUILD_ROOT}/$i ;; # ignore - GPL'ed
# all other files belong to newlib
*) echo "$i" >> build/files.newlib ;;
esac
done
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/avr-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/avr-rtems4.11/'} | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
%define __find_provides %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/avr-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/avr-rtems4.11/'} | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%define __find_requires %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%ifnarch noarch
# Extract %%__debug_install_post into debug_install_post~
cat << \EOF > debug_install_post~
%__debug_install_post
EOF
# Generate customized debug_install_post script
cat debug_install_post~ | while read a x y; do
case $a in
# Prevent find-debuginfo.sh* from trying to handle foreign binaries
*/find-debuginfo.sh)
b=$(basename $a)
sed -e 's,find "$RPM_BUILD_ROOT" !,find "$RPM_BUILD_ROOT"%_bindir "$RPM_BUILD_ROOT"%_libexecdir !,' $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm/find-debuginfo.sh,./find-debuginfo.sh,' \
< debug_install_post~ > debug_install_post
%define __debug_install_post . ./debug_install_post
%endif
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# rtems-4.11-avr-rtems4.11-gcc
# ==============================================================
# %package -n rtems-4.11-avr-rtems4.11-gcc
# Summary: GNU cc compiler for avr-rtems4.11
# Group: Development/Tools
# Version: %{gcc_rpmvers}
# Requires: rtems-4.11-avr-rtems4.11-binutils
# Requires: rtems-4.11-avr-rtems4.11-newlib = %{newlib_version}-1%{?dist}
# License: GPL
# %if %build_infos
# Requires: rtems-4.11-gcc-common
# %endif
%description -n rtems-4.11-avr-rtems4.11-gcc
GNU cc compiler for avr-rtems4.11.
# ==============================================================
# rtems-4.11-avr-rtems4.11-gcc-libgcc
# ==============================================================
%package -n rtems-4.11-avr-rtems4.11-gcc-libgcc
Summary: libgcc for avr-rtems4.11-gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-avr-rtems4.11-newlib = %{newlib_version}-1%{?dist}
License: GPL
%description -n rtems-4.11-avr-rtems4.11-gcc-libgcc
libgcc avr-rtems4.11-gcc.
%files -n rtems-4.11-avr-rtems4.11-gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/avr-rtems4.11-gcc.1*
%{_mandir}/man1/avr-rtems4.11-cpp.1*
%{_mandir}/man1/avr-rtems4.11-gcov.1*
%dir %{_bindir}
%{_bindir}/avr-rtems4.11-cpp%{_exeext}
%{_bindir}/avr-rtems4.11-gcc%{_exeext}
%{_bindir}/avr-rtems4.11-gcc-%{gcc_version}%{_exeext}
%{_bindir}/avr-rtems4.11-gcov%{_exeext}
%{_bindir}/avr-rtems4.11-gccbug
%dir %{_libexecdir}
%dir %{_libexecdir}/gcc
%dir %{_libexecdir}/gcc/avr-rtems4.11
%dir %{_libexecdir}/gcc/avr-rtems4.11/%{gcc_version}
%{_libexecdir}/gcc/avr-rtems4.11/%{gcc_version}/cc1%{_exeext}
%{_libexecdir}/gcc/avr-rtems4.11/%{gcc_version}/collect2%{_exeext}
%files -n rtems-4.11-avr-rtems4.11-gcc-libgcc -f build/files.gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_gcclibdir}
%dir %{_gcclibdir}/gcc
%dir %{_gcclibdir}/gcc/avr-rtems4.11
%dir %{_gcclibdir}/gcc/avr-rtems4.11/%{gcc_version}
%dir %{_gcclibdir}/gcc/avr-rtems4.11/%{gcc_version}/include
%if "%{gcc_version}" > "4.0.3"
%if "avr-rtems4.11" != "bfin-rtems4.10"
%if "avr-rtems4.11" != "avr-rtems4.10"
%dir %{_gcclibdir}/gcc/avr-rtems4.11/%{gcc_version}/include/ssp
%endif
%endif
%endif
%if "%{gcc_version}" >= "4.3.0"
%{_gcclibdir}/gcc/avr-rtems4.11/%{gcc_version}/include-fixed
%endif
# ==============================================================
# rtems-4.11-gcc-common
# ==============================================================
%package -n rtems-4.11-gcc-common
Summary: Base package for rtems gcc and newlib C Library
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: GPL
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-gcc-common
GCC files that are shared by all targets.
%files -n rtems-4.11-gcc-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/cpp.info*
%{_infodir}/cppinternals.info*
%{_infodir}/gcc.info*
%{_infodir}/gccint.info*
%{_infodir}/gccinstall.info*
%dir %{_mandir}
%dir %{_mandir}/man7
%{_mandir}/man7/fsf-funding.7*
%{_mandir}/man7/gfdl.7*
%{_mandir}/man7/gpl.7*
%post -n rtems-4.11-gcc-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
%preun -n rtems-4.11-gcc-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
fi
# ==============================================================
# rtems-4.11-avr-rtems4.11-newlib
# ==============================================================
%package -n rtems-4.11-avr-rtems4.11-newlib
Summary: C Library (newlib) for avr-rtems4.11
Group: Development/Tools
License: Distributable
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-newlib-common
%description -n rtems-4.11-avr-rtems4.11-newlib
Newlib C Library for avr-rtems4.11.
%files -n rtems-4.11-avr-rtems4.11-newlib -f build/files.newlib
%defattr(-,root,root)
%dir %{_exec_prefix}
%dir %{_exec_prefix}/avr-rtems4.11
%{_exec_prefix}/avr-rtems4.11/include
# ==============================================================
# rtems-4.11-newlib-common
# ==============================================================
%package -n rtems-4.11-newlib-common
Summary: Base package for RTEMS newlib C Library
Group: Development/Tools
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: Distributable
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-newlib-common
newlib files that are shared by all targets.
%files -n rtems-4.11-newlib-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/libc.info*
%{_infodir}/libm.info*
%post -n rtems-4.11-newlib-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
%preun -n rtems-4.11-newlib-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
fi

View File

@@ -0,0 +1,319 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gdb_version 7.0.90
%define gdb_rpmvers %{expand:%(echo 7.0.90 | tr - _)}
Name: rtems-4.11-avr-rtems4.11-gdb
Summary: Gdb for target avr-rtems4.11
Group: Development/Tools
Version: %{gdb_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/gdb
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%define build_sim --enable-sim
%if "%{_build}" != "%{_host}"
# psim doesn't support Cdn-X
%if "avr-rtems4.11" == "powerpc-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%ifos mingw mingw32
# Mingw lacks functions required by the simulator
%if "avr-rtems4.11" == "sparc-rtems4.10"
%define build_sim --disable-sim
%endif
%if "avr-rtems4.11" == "h8300-rtems4.10"
%define build_sim --disable-sim
%endif
%if "%{gdb_version}" >= "6.8.50"
%if "avr-rtems4.11" == "m32c-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "avr-rtems4.11" == "lm32-rtems4.10"
%define build_sim --disable-sim
%endif
%if "avr-rtems4.11" == "mipstx39-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "%{gdb_version}" >= "6.6"
# suse
%if "%{?suse}" >= "10.3"
BuildRequires: libexpat-devel
%else
# Fedora/CentOS/Cygwin/MinGW
BuildRequires: %{_host_rpmprefix}expat-devel
%endif
%endif
%if "%{gdb_version}" < "6.7"
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}termcap-devel
%endif
%bcond_with system_readline
%else
%bcond_without system_readline
%endif
%{?with_system_readline:BuildRequires: %{_host_rpmprefix}readline-devel}
BuildRequires: %{_host_rpmprefix}ncurses-devel
%if "%{gdb_version}" >= "6.8.50"
%if "%{_build}" != "%{_host}"
# Can't build python Cdn-X
%bcond_with python
%else
%bcond_without python
%endif
%endif
%{?with_python:BuildRequires: %{_host_rpmprefix}python-devel}
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
Requires: rtems-4.11-gdb-common
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif
%description
GDB for target avr-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd gdb-%{gdb_version}
%{?PATCH0:%patch0 -p1}
cd ..
# Force using a system-provided libreadline
%{?with_system_readline:rm -f gdb-%{gdb_version}/readline/configure}
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../gdb-%{gdb_version}/configure \
--build=%_build --host=%_host \
--target=avr-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
%{build_sim} \
%{?with_system_readline:--with-system-readline} \
%if "%{gdb_version}" >= "6.6"
--with-expat \
%endif
%if "%{gdb_version}" >= "6.8.50"
%if %{with python}
--with-python \
%else
--without-python \
%endif
%endif
--prefix=%{_prefix} --bindir=%{_bindir} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# These come from other packages
rm -rf $RPM_BUILD_ROOT%{_infodir}/bfd*
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure*
rm -rf $RPM_BUILD_ROOT%{_infodir}/standards*
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# host library, installed to a bogus directory
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libavr-rtems4.11-sim.a
%if "%{gdb_version}" >= "7.0"
# Bug in gdb-7.0, bogusly installs linux-only files
somethinguseful=0
for f in ${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls/*.xml; do
case $f in
*linux.xml) rm -f $f;;
*.xml) somethinguseful=1;;
esac
done
if test $somethinguseful -eq 0; then
rm -rf "${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls"
fi
%endif
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# avr-rtems4.11-gdb
# ==============================================================
# %package -n rtems-4.11-avr-rtems4.11-gdb
# Summary: rtems gdb for avr-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-gdb-common
# %endif
%description -n rtems-4.11-avr-rtems4.11-gdb
GNU gdb targetting avr-rtems4.11.
%files -n rtems-4.11-avr-rtems4.11-gdb
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/avr-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/avr-rtems4.11-*
# ==============================================================
# rtems-4.11-gdb-common
# ==============================================================
%package -n rtems-4.11-gdb-common
Summary: Base package for RTEMS gdbs
Group: Development/Tools
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%{?_with_noarch_subpackages:BuildArch: noarch}
%description -n rtems-4.11-gdb-common
GDB files shared by all targets.
%post -n rtems-4.11-gdb-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
%preun -n rtems-4.11-gdb-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
fi
%files -n rtems-4.11-gdb-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/gdb.info*
%{_infodir}/gdbint.info*
%{_infodir}/stabs.info*
%{_infodir}/annotate.info*

View File

@@ -0,0 +1,3 @@
Makefile
Makefile.in
*.spec.in

View File

@@ -0,0 +1,32 @@
# $Id$
TARGET = bfin-rtems4.11
include $(top_srcdir)/mkspec.am
BINUTILS_VERS = 2.20.1
BINUTILS_PKGVERS = $(BINUTILS_VERS)
BINUTILS_RPMREL = 1
include ../binutils.am
BINUTILS_OPTS +=
GCC_VERS = 4.4.3
GCC_PKGVERS = $(GCC_VERS)
GCC_RPMREL = 1
NEWLIB_VERS = 1.18.0
NEWLIB_PKGVERS = $(NEWLIB_VERS)
NEWLIB_RPMREL = `expr $(GCC_RPMREL)`
include ../gcc.am
GCC_OPTS += --languages=cxx
GDB_VERS = 6.5
GDB_PKGVERS = $(GDB_VERS)
GDB_RPMREL = 1
include ../gdb.am
GDB_OPTS += --disable-infos
CPUKIT_VERS = 4.9.99.0
CPUKIT_PKGVERS = $(CPUKIT_VERS)-20090206-2
CPUKIT_RPMREL = 1
include ../cpukit.am
CPUKIT_OPTS +=

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}

View File

@@ -0,0 +1,47 @@
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if %build_cxx
%if "%{gcc_version}" == "4.4.3"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%if "%{gcc_version}" == "4.4.2"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%{?_without_sources:NoSource: 1}
%endif
%if %build_fortran
Source2: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-fortran-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 2}
%endif
%if %build_gcj
Source3: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-java-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 3}
%endif
%if %build_gnat
Source4: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-ada-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 4}
%endif
%if %build_objc
Source5: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-objc-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 5}
%endif
%if %build_newlib
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%endif

View File

@@ -0,0 +1,3 @@
Source0: ftp://ftp.gnu.org/pub/gnu/gdb/gdb-%{gdb_version}.tar.bz2
%{?_without_sources:NoSource: 0}
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-6.5-bfinrtems-20090122.diff

View File

@@ -0,0 +1,268 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define binutils_pkgvers 2.20.1
%define binutils_version 2.20.1
%define binutils_rpmvers %{expand:%(echo "2.20.1" | tr - _ )}
Name: rtems-4.11-bfin-rtems4.11-binutils
Summary: Binutils for target bfin-rtems4.11
Group: Development/Tools
Version: %{binutils_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/binutils
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%if "%{binutils_version}" >= "2.18"
# Bug in bfd: Doesn't build without texinfo installed
BuildRequires: texinfo >= 4.2
%else
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
%endif
BuildRequires: flex
BuildRequires: bison
Requires: rtems-4.11-binutils-common
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
%description
Cross binutils for target bfin-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd binutils-%{binutils_pkgvers}
%{?PATCH0:%patch0 -p1}
cd ..
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../binutils-%{binutils_pkgvers}/configure \
--build=%_build --host=%_host \
--target=bfin-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
--prefix=%{_prefix} --bindir=%{_bindir} \
--exec-prefix=%{_exec_prefix} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
make prefix=$RPM_BUILD_ROOT%{_prefix} \
bindir=$RPM_BUILD_ROOT%{_bindir} \
includedir=$RPM_BUILD_ROOT%{_includedir} \
libdir=$RPM_BUILD_ROOT%{_libdir} \
infodir=$RPM_BUILD_ROOT%{_infodir} \
mandir=$RPM_BUILD_ROOT%{_mandir} \
exec_prefix=$RPM_BUILD_ROOT%{_exec_prefix} \
install-info
# Dropped in FSF-binutils-2.9.5, but Cygwin still ships it.
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure.info*
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# binutils does not install share/locale, however it uses it
mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/locale
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# manpages without corresponding tools
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/bfin-rtems4.11-dlltool%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/bfin-rtems4.11-dlltool*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/bfin-rtems4.11-nlmconv%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/bfin-rtems4.11-nlmconv*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/bfin-rtems4.11-windres%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/bfin-rtems4.11-windres*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/bfin-rtems4.11-windmc%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/bfin-rtems4.11-windmc*
fi
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# bfin-rtems4.11-binutils
# ==============================================================
# %package -n rtems-4.11-bfin-rtems4.11-binutils
# Summary: rtems binutils for bfin-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-binutils-common
# %endif
%description -n rtems-4.11-bfin-rtems4.11-binutils
GNU binutils targetting bfin-rtems4.11.
%files -n rtems-4.11-bfin-rtems4.11-binutils
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_datarootdir}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/bfin-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/bfin-rtems4.11-*
%dir %{_exec_prefix}/bfin-rtems4.11
%dir %{_exec_prefix}/bfin-rtems4.11/bin
%{_exec_prefix}/bfin-rtems4.11/bin/*
%dir %{_exec_prefix}/bfin-rtems4.11/lib
%{_exec_prefix}/bfin-rtems4.11/lib/ldscripts
# ==============================================================
# rtems-4.11-binutils-common
# ==============================================================
%package -n rtems-4.11-binutils-common
Summary: Base package for RTEMS binutils
Group: Development/Tools
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-binutils-common
RTEMS is an open source operating system for embedded systems.
This is the base for binutils regardless of target CPU.
%post -n rtems-4.11-binutils-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
%preun -n rtems-4.11-binutils-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
fi
%files -n rtems-4.11-binutils-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/as.info*
%{_infodir}/bfd.info*
%{_infodir}/binutils.info*
%{_infodir}/ld.info*
%{_infodir}/standards.info*
%{_infodir}/gprof.info*
%dir %{_prefix}/share
%dir %{_prefix}/share/locale

View File

@@ -0,0 +1,158 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define cpukit_pkgvers 4.9.99.0-20090206-2
%define cpukit_version 4.9.99.0
%define cpukit_rpmvers %{expand:%(echo "4.9.99.0-20090206-2" | tr - . )}
Name: rtems-4.11-bfin-rtems4.11-cpukit
Summary: bfin-rtems4.11 cpukit
Group: Development/Tools
Version: %{cpukit_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://cpukit.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
%define debug_package %{nil}
BuildRequires: rtems-4.11-bfin-rtems4.11-gcc
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}
%description
RTEMS cpukit for bfin-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
../rtems-%{cpukit_version}/configure \
--prefix=%{_prefix} \
--target=bfin-rtems4.11 \
--enable-multilib \
--disable-rtemsbsp
make all RTEMS_BSP=
cd ..
%install
rm -rf $RPM_BUILD_ROOT
export PATH="%{_bindir}:${PATH}"
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
rm -rf $RPM_BUILD_ROOT%{_prefix}/share/man
rm -rf $RPM_BUILD_ROOT%{_prefix}/bin
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{version}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/bfin-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/bfin-rtems4.11/' | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-provides
%define __find_provides %{_builddir}/%{name}-%{version}/find-provides
cat << EOF > %{_builddir}/%{name}-%{version}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/bfin-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/bfin-rtems4.11/' | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-requires
%define __find_requires %{_builddir}/%{name}-%{version}/find-requires
%clean
rm -rf $RPM_BUILD_ROOT
%description -n rtems-4.11-bfin-rtems4.11-cpukit
RTEMS cpukit for target bfin-rtems4.11.
%files -n rtems-4.11-bfin-rtems4.11-cpukit
%defattr(-,root,root)
%dir %{_prefix}
%{_prefix}/bfin-rtems4.11
# Violates the FHS
%exclude %{_prefix}/make

View File

@@ -0,0 +1,716 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gcc_pkgvers 4.4.3
%define gcc_version 4.4.3
%define gcc_rpmvers %{expand:%(echo "4.4.3" | tr - _ )}
%define newlib_pkgvers 1.18.0
%define newlib_version 1.18.0
Name: rtems-4.11-bfin-rtems4.11-gcc
Summary: bfin-rtems4.11 gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://gcc.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%define _use_internal_dependency_generator 0
BuildRequires: %{_host_rpmprefix}gcc
%if "%{gcc_version}" >= "4.3.0"
%define _gmp_minvers 4.1
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%if %{defined _gmp_minvers}
BuildRequires: gmp-devel >= %{_gmp_minvers}
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}gmp-devel >= %{_gmp_minvers}
%endif
%endif
%if "%{gcc_version}" >= "4.3.3"
%define _cloog_minvers 0.15
%endif
%if %{defined _cloog_minvers}
%{?fc11:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc12:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc13:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?suse11_2:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%{?suse11_1:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%endif
%if "%{gcc_version}" >= "4.4.0"
%define _mpfr_minvers 2.3.2
%define mpfr_version 2.4.1
%else
%if "%{gcc_version}" >= "4.3.0"
%define _mpfr_minvers 2.3.1
%define mpfr_version 2.3.2
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%endif
%if %{defined _mpfr_minvers}
# FIXME: This is an ugly cludge
%{?fc11:%global mpfr_provided 2.4.1}
%{?fc12:%global mpfr_provided 2.4.1}
%{?fc13:%global mpfr_provided 2.4.1}
%{?suse11_0:%global mpfr_provided 2.3.1}
%{?suse11_1:%global mpfr_provided 2.3.2}
%{?suse11_2:%global mpfr_provided 2.4.1}
%{?cygwin:%global mpfr_provided 2.4.1}
%{?mingw32:%global mpfr_provided %{nil}}
%if %{defined mpfr_provided}
%if "%{mpfr_provided}" < "%{_mpfr_minvers}"
%define _build_mpfr 1
%else
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}mpfr-devel >= %{_mpfr_minvers}
%else
BuildRequires: mpfr-devel >= %{_mpfr_minvers}
%endif
%endif
%else
%define _build_mpfr 1
%endif
%endif
%if "%{_build}" != "%{_host}"
BuildRequires: rtems-4.11-bfin-rtems4.11-gcc = %{gcc_rpmvers}
%endif
%if "%{gcc_version}" >= "4.2.0"
BuildRequires: flex bison
%endif
BuildRequires: texinfo >= 4.2
BuildRequires: rtems-4.11-bfin-rtems4.11-binutils
Requires: rtems-4.11-gcc-common
Requires: rtems-4.11-bfin-rtems4.11-binutils
Requires: rtems-4.11-bfin-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
Requires: rtems-4.11-bfin-rtems4.11-newlib = %{newlib_version}-1%{?dist}
%define _gcclibdir %{_prefix}/lib
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if "%{gcc_version}" == "4.4.3"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%if "%{gcc_version}" == "4.4.2"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%{?_without_sources:NoSource: 1}
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%if "%{gcc_version}" >= "4.3.0"
Source60: http://www.mpfr.org/mpfr-current/mpfr-%{mpfr_version}.tar.bz2
%endif
%description
Cross gcc for bfin-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%{?PATCH0:%patch0 -p0}
%setup -q -T -D -n %{name}-%{version} -a1
%{?PATCH1:%patch1 -p0}
%setup -q -T -D -n %{name}-%{version} -a50
cd newlib-%{newlib_version}
%{?PATCH50:%patch50 -p1}
cd ..
# Copy the C library into gcc's source tree
ln -s ../newlib-%{newlib_version}/newlib gcc-%{gcc_pkgvers}
%if 0%{?_build_mpfr}
%setup -q -T -D -n %{name}-%{version} -a60
%{?PATCH60:%patch60 -p1}
# Build mpfr one-tree style
ln -s ../mpfr-%{mpfr_version} gcc-%{gcc_pkgvers}/mpfr
%endif
echo "RTEMS gcc-%{gcc_version}-1%{?dist}/newlib-%{newlib_version}-1%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
# Fix timestamps
cd gcc-%{gcc_pkgvers}
contrib/gcc_update --touch
cd ..
%build
mkdir -p build
cd build
languages="c"
languages="$languages,c++"
export PATH="%{_bindir}:${PATH}"
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
CC="%{_host}-gcc ${RPM_OPT_FLAGS}" \
%else
# gcc is not ready to be compiled with -std=gnu99
CC=$(echo "%{__cc} ${RPM_OPT_FLAGS}" | sed -e 's,-std=gnu99 ,,') \
%endif
../gcc-%{gcc_pkgvers}/configure \
--prefix=%{_prefix} \
--bindir=%{_bindir} \
--exec_prefix=%{_exec_prefix} \
--includedir=%{_includedir} \
--libdir=%{_gcclibdir} \
--libexecdir=%{_libexecdir} \
--mandir=%{_mandir} \
--infodir=%{_infodir} \
--datadir=%{_datadir} \
--build=%_build --host=%_host \
--target=bfin-rtems4.11 \
--disable-libstdcxx-pch \
--with-gnu-as --with-gnu-ld --verbose \
--with-newlib \
--with-system-zlib \
--disable-nls --without-included-gettext \
--disable-win32-registry \
--enable-version-specific-runtime-libs \
--enable-threads \
--enable-newlib-io-c99-formats \
--enable-languages="$languages" $optargs
%if "%_host" != "%_build"
# Bug in gcc-3.2.1:
# Somehow, gcc doesn't get syslimits.h right for Cdn-Xs
mkdir -p gcc/include
cp ../gcc-%{gcc_pkgvers}/gcc/gsyslimits.h gcc/include/syslimits.h
%endif
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
cd build/bfin-rtems4.11/newlib
make DESTDIR=$RPM_BUILD_ROOT install-info
cd ../../..
%if "%{gcc_version}" <= "4.1.2"
# Misplaced header file
if test -f $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h; then
mv $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h \
$RPM_BUILD_ROOT%{_gcclibdir}/gcc/bfin-rtems4.11/%{gcc_version}/include/
fi
%endif
# host library
%if "%{gcc_version}" >= "4.2.0"
# libiberty doesn't honor --libdir, but always installs to a
# magically guessed _libdir
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty.a
%else
# libiberty installs to --libdir=...
rm -f ${RPM_BUILD_ROOT}%{_gcclibdir}/libiberty.a
%endif
# We use the version from binutils
rm -f $RPM_BUILD_ROOT%{_bindir}/bfin-rtems4.11-c++filt%{_exeext}
# We don't ship info/dir
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# Bug in gcc-3.4.0pre
rm -f $RPM_BUILD_ROOT%{_bindir}/bfin-rtems4.11-bfin-rtems4.11-gcjh%{_exeext}
# Bug in gcc-3.3.x/gcc-3.4.x: Despite we don't need fixincludes, it installs
# the fixinclude-install-tools
rm -rf ${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/bfin-rtems4.11/%{gcc_version}/install-tools
rm -rf ${RPM_BUILD_ROOT}%{_libexecdir}/gcc/bfin-rtems4.11/%{gcc_version}/install-tools
# Bug in gcc > 4.1.0: Installs an unused, empty directory
if test -d ${RPM_BUILD_ROOT}%{_prefix}/bfin-rtems4.11/include/bits; then
rmdir ${RPM_BUILD_ROOT}%{_prefix}/bfin-rtems4.11/include/bits
fi
# Collect multilib subdirectories
multilibs=`build/gcc/xgcc -Bbuild/gcc/ --print-multi-lib | sed -e 's,;.*$,,'`
echo "%defattr(-,root,root,-)" > build/files.newlib
TGTDIR="%{_exec_prefix}/bfin-rtems4.11/lib"
for i in $multilibs; do
case $i in
\.) echo "%dir ${TGTDIR}" >> build/files.newlib
;;
*) echo "%dir ${TGTDIR}/$i" >> build/files.newlib
;;
esac
done
rm -f dirs ;
echo "%defattr(-,root,root,-)" >> dirs
TGTDIR="%{_gcclibdir}/gcc/bfin-rtems4.11/%{gcc_version}"
for i in $multilibs; do
case $i in
\.) ;; # ignore, handled elsewhere
*) echo "%dir ${TGTDIR}/$i" >> dirs
;;
esac
done
# Collect files to go into different packages
cp dirs build/files.gcc
cp dirs build/files.gfortran
cp dirs build/files.objc
cp dirs build/files.gcj
cp dirs build/files.g++
TGTDIR="%{_gcclibdir}/gcc/bfin-rtems4.11/%{gcc_version}"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i ;; # ignore: gcc produces bogus libtool libs
*f771) ;;
*f951) ;;
*cc1) ;;
*cc1obj) ;;
*cc1plus) ;; # ignore: explicitly put into rpm elsewhere
*collect2) ;;
*libobjc*) echo "$i" >> build/files.objc ;;
*include/objc*) ;;
*include/g++*);;
*include/c++*);;
*include-fixed/*);;
*finclude/*);;
*adainclude*);;
*adalib*);;
*gnat1);;
*jc1) ;;
*jvgenmain) ;;
*/libgfortran*.*) echo "$i" >> build/files.gfortran ;;
*/libstdc++.*) echo "$i" >> build/files.g++ ;;
*/libsupc++.*) echo "$i" >> build/files.g++ ;;
*) echo "$i" >> build/files.gcc ;;
esac
done
TGTDIR="%{_exec_prefix}/bfin-rtems4.11/lib"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i;; # ignore - gcc produces bogus libtool libs
*libiberty.a) rm ${RPM_BUILD_ROOT}/$i ;; # ignore - GPL'ed
# all other files belong to newlib
*) echo "$i" >> build/files.newlib ;;
esac
done
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/bfin-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/bfin-rtems4.11/'} | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
%define __find_provides %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/bfin-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/bfin-rtems4.11/'} | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%define __find_requires %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%ifnarch noarch
# Extract %%__debug_install_post into debug_install_post~
cat << \EOF > debug_install_post~
%__debug_install_post
EOF
# Generate customized debug_install_post script
cat debug_install_post~ | while read a x y; do
case $a in
# Prevent find-debuginfo.sh* from trying to handle foreign binaries
*/find-debuginfo.sh)
b=$(basename $a)
sed -e 's,find "$RPM_BUILD_ROOT" !,find "$RPM_BUILD_ROOT"%_bindir "$RPM_BUILD_ROOT"%_libexecdir !,' $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm/find-debuginfo.sh,./find-debuginfo.sh,' \
< debug_install_post~ > debug_install_post
%define __debug_install_post . ./debug_install_post
%endif
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# rtems-4.11-bfin-rtems4.11-gcc
# ==============================================================
# %package -n rtems-4.11-bfin-rtems4.11-gcc
# Summary: GNU cc compiler for bfin-rtems4.11
# Group: Development/Tools
# Version: %{gcc_rpmvers}
# Requires: rtems-4.11-bfin-rtems4.11-binutils
# Requires: rtems-4.11-bfin-rtems4.11-newlib = %{newlib_version}-1%{?dist}
# License: GPL
# %if %build_infos
# Requires: rtems-4.11-gcc-common
# %endif
%description -n rtems-4.11-bfin-rtems4.11-gcc
GNU cc compiler for bfin-rtems4.11.
# ==============================================================
# rtems-4.11-bfin-rtems4.11-gcc-libgcc
# ==============================================================
%package -n rtems-4.11-bfin-rtems4.11-gcc-libgcc
Summary: libgcc for bfin-rtems4.11-gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-bfin-rtems4.11-newlib = %{newlib_version}-1%{?dist}
License: GPL
%description -n rtems-4.11-bfin-rtems4.11-gcc-libgcc
libgcc bfin-rtems4.11-gcc.
%files -n rtems-4.11-bfin-rtems4.11-gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/bfin-rtems4.11-gcc.1*
%{_mandir}/man1/bfin-rtems4.11-cpp.1*
%{_mandir}/man1/bfin-rtems4.11-gcov.1*
%dir %{_bindir}
%{_bindir}/bfin-rtems4.11-cpp%{_exeext}
%{_bindir}/bfin-rtems4.11-gcc%{_exeext}
%{_bindir}/bfin-rtems4.11-gcc-%{gcc_version}%{_exeext}
%{_bindir}/bfin-rtems4.11-gcov%{_exeext}
%{_bindir}/bfin-rtems4.11-gccbug
%dir %{_libexecdir}
%dir %{_libexecdir}/gcc
%dir %{_libexecdir}/gcc/bfin-rtems4.11
%dir %{_libexecdir}/gcc/bfin-rtems4.11/%{gcc_version}
%{_libexecdir}/gcc/bfin-rtems4.11/%{gcc_version}/cc1%{_exeext}
%{_libexecdir}/gcc/bfin-rtems4.11/%{gcc_version}/collect2%{_exeext}
%files -n rtems-4.11-bfin-rtems4.11-gcc-libgcc -f build/files.gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_gcclibdir}
%dir %{_gcclibdir}/gcc
%dir %{_gcclibdir}/gcc/bfin-rtems4.11
%dir %{_gcclibdir}/gcc/bfin-rtems4.11/%{gcc_version}
%dir %{_gcclibdir}/gcc/bfin-rtems4.11/%{gcc_version}/include
%if "%{gcc_version}" > "4.0.3"
%if "bfin-rtems4.11" != "bfin-rtems4.10"
%if "bfin-rtems4.11" != "avr-rtems4.10"
%dir %{_gcclibdir}/gcc/bfin-rtems4.11/%{gcc_version}/include/ssp
%endif
%endif
%endif
%if "%{gcc_version}" >= "4.3.0"
%{_gcclibdir}/gcc/bfin-rtems4.11/%{gcc_version}/include-fixed
%endif
# ==============================================================
# rtems-4.11-gcc-common
# ==============================================================
%package -n rtems-4.11-gcc-common
Summary: Base package for rtems gcc and newlib C Library
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: GPL
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-gcc-common
GCC files that are shared by all targets.
%files -n rtems-4.11-gcc-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/cpp.info*
%{_infodir}/cppinternals.info*
%{_infodir}/gcc.info*
%{_infodir}/gccint.info*
%{_infodir}/gccinstall.info*
%dir %{_mandir}
%dir %{_mandir}/man7
%{_mandir}/man7/fsf-funding.7*
%{_mandir}/man7/gfdl.7*
%{_mandir}/man7/gpl.7*
%post -n rtems-4.11-gcc-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
%preun -n rtems-4.11-gcc-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
fi
# ==============================================================
# rtems-4.11-bfin-rtems4.11-gcc-c++
# ==============================================================
%package -n rtems-4.11-bfin-rtems4.11-gcc-c++
Summary: GCC c++ compiler for bfin-rtems4.11
Group: Development/Tools
Version: %{gcc_rpmvers}
License: GPL
Requires: rtems-4.11-bfin-rtems4.11-gcc-libstdc++ = %{gcc_rpmvers}-%{release}
%if "%{_build}" != "%{_host}"
BuildRequires: rtems-4.11-bfin-rtems4.11-gcc-c++ = %{gcc_rpmvers}
%endif
Requires: rtems-4.11-gcc-common
Requires: rtems-4.11-bfin-rtems4.11-gcc = %{gcc_rpmvers}-%{release}
%description -n rtems-4.11-bfin-rtems4.11-gcc-c++
GCC c++ compiler for bfin-rtems4.11.
%package -n rtems-4.11-bfin-rtems4.11-gcc-libstdc++
Summary: libstdc++ for bfin-rtems4.11
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: GPL
%description -n rtems-4.11-bfin-rtems4.11-gcc-libstdc++
%{summary}
%files -n rtems-4.11-bfin-rtems4.11-gcc-c++
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/bfin-rtems4.11-g++.1*
%dir %{_bindir}
%{_bindir}/bfin-rtems4.11-c++%{_exeext}
%{_bindir}/bfin-rtems4.11-g++%{_exeext}
%dir %{_libexecdir}
%dir %{_libexecdir}/gcc
%dir %{_libexecdir}/gcc/bfin-rtems4.11
%dir %{_libexecdir}/gcc/bfin-rtems4.11/%{gcc_version}
%{_libexecdir}/gcc/bfin-rtems4.11/%{gcc_version}/cc1plus%{_exeext}
%files -n rtems-4.11-bfin-rtems4.11-gcc-libstdc++ -f build/files.g++
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_gcclibdir}
%dir %{_gcclibdir}/gcc
%dir %{_gcclibdir}/gcc/bfin-rtems4.11
%dir %{_gcclibdir}/gcc/bfin-rtems4.11/%{gcc_version}
%dir %{_gcclibdir}/gcc/bfin-rtems4.11/%{gcc_version}/include
%{_gcclibdir}/gcc/bfin-rtems4.11/%{gcc_version}/include/c++
# ==============================================================
# rtems-4.11-bfin-rtems4.11-newlib
# ==============================================================
%package -n rtems-4.11-bfin-rtems4.11-newlib
Summary: C Library (newlib) for bfin-rtems4.11
Group: Development/Tools
License: Distributable
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-newlib-common
%description -n rtems-4.11-bfin-rtems4.11-newlib
Newlib C Library for bfin-rtems4.11.
%files -n rtems-4.11-bfin-rtems4.11-newlib -f build/files.newlib
%defattr(-,root,root)
%dir %{_exec_prefix}
%dir %{_exec_prefix}/bfin-rtems4.11
%{_exec_prefix}/bfin-rtems4.11/include
# ==============================================================
# rtems-4.11-newlib-common
# ==============================================================
%package -n rtems-4.11-newlib-common
Summary: Base package for RTEMS newlib C Library
Group: Development/Tools
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: Distributable
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-newlib-common
newlib files that are shared by all targets.
%files -n rtems-4.11-newlib-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/libc.info*
%{_infodir}/libm.info*
%post -n rtems-4.11-newlib-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
%preun -n rtems-4.11-newlib-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
fi

View File

@@ -0,0 +1,261 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gdb_version 6.5
%define gdb_rpmvers %{expand:%(echo 6.5 | tr - _)}
Name: rtems-4.11-bfin-rtems4.11-gdb
Summary: Gdb for target bfin-rtems4.11
Group: Development/Tools
Version: %{gdb_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/gdb
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%define build_sim --enable-sim
%if "%{_build}" != "%{_host}"
# psim doesn't support Cdn-X
%if "bfin-rtems4.11" == "powerpc-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%ifos mingw mingw32
# Mingw lacks functions required by the simulator
%if "bfin-rtems4.11" == "sparc-rtems4.10"
%define build_sim --disable-sim
%endif
%if "bfin-rtems4.11" == "h8300-rtems4.10"
%define build_sim --disable-sim
%endif
%if "%{gdb_version}" >= "6.8.50"
%if "bfin-rtems4.11" == "m32c-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "bfin-rtems4.11" == "lm32-rtems4.10"
%define build_sim --disable-sim
%endif
%if "bfin-rtems4.11" == "mipstx39-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "%{gdb_version}" >= "6.6"
# suse
%if "%{?suse}" >= "10.3"
BuildRequires: libexpat-devel
%else
# Fedora/CentOS/Cygwin/MinGW
BuildRequires: %{_host_rpmprefix}expat-devel
%endif
%endif
%if "%{gdb_version}" < "6.7"
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}termcap-devel
%endif
%bcond_with system_readline
%else
%bcond_without system_readline
%endif
%{?with_system_readline:BuildRequires: %{_host_rpmprefix}readline-devel}
BuildRequires: %{_host_rpmprefix}ncurses-devel
%if "%{gdb_version}" >= "6.8.50"
%if "%{_build}" != "%{_host}"
# Can't build python Cdn-X
%bcond_with python
%else
%bcond_without python
%endif
%endif
%{?with_python:BuildRequires: %{_host_rpmprefix}python-devel}
Source0: ftp://ftp.gnu.org/pub/gnu/gdb/gdb-%{gdb_version}.tar.bz2
%{?_without_sources:NoSource: 0}
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-6.5-bfinrtems-20090122.diff
%description
GDB for target bfin-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd gdb-%{gdb_version}
%{?PATCH0:%patch0 -p1}
cd ..
# Force using a system-provided libreadline
%{?with_system_readline:rm -f gdb-%{gdb_version}/readline/configure}
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../gdb-%{gdb_version}/configure \
--build=%_build --host=%_host \
--target=bfin-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
%{build_sim} \
%{?with_system_readline:--with-system-readline} \
%if "%{gdb_version}" >= "6.6"
--with-expat \
%endif
%if "%{gdb_version}" >= "6.8.50"
%if %{with python}
--with-python \
%else
--without-python \
%endif
%endif
--prefix=%{_prefix} --bindir=%{_bindir} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
# Conflict with a native gdb's infos
rm -rf $RPM_BUILD_ROOT%{_infodir}
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# host library, installed to a bogus directory
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libbfin-rtems4.11-sim.a
%if "%{gdb_version}" >= "7.0"
# Bug in gdb-7.0, bogusly installs linux-only files
somethinguseful=0
for f in ${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls/*.xml; do
case $f in
*linux.xml) rm -f $f;;
*.xml) somethinguseful=1;;
esac
done
if test $somethinguseful -eq 0; then
rm -rf "${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls"
fi
%endif
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# bfin-rtems4.11-gdb
# ==============================================================
# %package -n rtems-4.11-bfin-rtems4.11-gdb
# Summary: rtems gdb for bfin-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-gdb-common
# %endif
%description -n rtems-4.11-bfin-rtems4.11-gdb
GNU gdb targetting bfin-rtems4.11.
%files -n rtems-4.11-bfin-rtems4.11-gdb
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/bfin-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/bfin-rtems4.11-*

View File

@@ -0,0 +1,31 @@
EXTRA_DIST += binutils-sources.add
BINUTILS_OPTS =
BINUTILS_SUBPACKAGES = $(top_srcdir)/common/common.add
BINUTILS_SUBPACKAGES += $(top_srcdir)/binutils/binutils.add
BINUTILS_SUBPACKAGES += $(top_srcdir)/binutils/prep.add
BINUTILS_SUBPACKAGES += $(top_srcdir)/binutils/build.add
BINUTILS_SUBPACKAGES += $(top_srcdir)/binutils/install.add
BINUTILS_SUBPACKAGES += $(top_srcdir)/binutils/rpm-install.add
BINUTILS_SUBPACKAGES += $(top_srcdir)/common/clean.add
BINUTILS_SUBPACKAGES += $(top_srcdir)/binutils/target-binutils.add
BINUTILS_SUBPACKAGES += $(top_srcdir)/binutils/base-binutils.add
$(TARGET)-binutils.spec.in: $(BINUTILS_SUBPACKAGES) Makefile.am $(srcdir)/binutils-sources.add $(srcdir)/../binutils.am
cat $(BINUTILS_SUBPACKAGES) | sed \
-e "/[@]SOURCES[@]/r $(srcdir)/binutils-sources.add" \
-e "/[@]SOURCES[@]/d" \
-e "s/[@]BINUTILS_VERS[@]/$(BINUTILS_VERS)/g" \
-e "s/[@]BINUTILS_PKGVERS[@]/$(BINUTILS_PKGVERS)/g" \
-e "s/[@]BINUTILS_RPMREL[@]/$(BINUTILS_RPMREL)%{?dist}/g" \
-e "/--with-sysroot/d" \
| $(MKSPEC0) > $(TARGET)-binutils.spec.in
CLEANFILES += $(TARGET)-binutils.spec.in
@rpmprefix@$(TARGET)-binutils.spec: $(TARGET)-binutils.spec.in
$(MKSPEC) $(TARGET)-binutils.spec.in | $(SPECSTRIP) $(BINUTILS_OPTS) > $@
CLEANFILES += @rpmprefix@$(TARGET)-binutils.spec
noinst_DATA += @rpmprefix@$(TARGET)-binutils.spec
EXTRA_DIST += $(BINUTILS_SUBPACKAGES)

View File

@@ -0,0 +1 @@

View File

@@ -0,0 +1,35 @@
EXTRA_DIST += $(srcdir)/../rtems-prep.add
EXTRA_DIST += $(srcdir)/rtems-sources.add
CPUKIT_OPTS =
CPUKIT_SUBPACKAGES = $(top_srcdir)/common/common.add
CPUKIT_SUBPACKAGES += $(top_srcdir)/cpukit/cpukit.add
CPUKIT_SUBPACKAGES += $(top_srcdir)/cpukit/prep.add
CPUKIT_SUBPACKAGES += $(top_srcdir)/cpukit/build.add
CPUKIT_SUBPACKAGES += $(top_srcdir)/cpukit/install.add
CPUKIT_SUBPACKAGES += $(top_srcdir)/cpukit/rpm-install.add
CPUKIT_SUBPACKAGES += $(top_srcdir)/common/clean.add
CPUKIT_SUBPACKAGES += $(top_srcdir)/cpukit/target-cpukit.add
$(TARGET)-cpukit.spec.in: $(CPUKIT_SUBPACKAGES) Makefile.am $(srcdir)/cpukit-sources.add $(srcdir)/../cpukit-prep.add
cat $(CPUKIT_SUBPACKAGES) | sed \
-e "/[@]SOURCES[@]/r $(srcdir)/cpukit-sources.add" \
-e "/[@]SOURCES[@]/d" \
-e "/[@]PREP[@]/r $(srcdir)/../cpukit-prep.add" \
-e "/[@]PREP[@]/d" \
-e "s/[@]CPUKIT_VERS[@]/$(CPUKIT_VERS)/g" \
-e "s/[@]CPUKIT_PKGVERS[@]/$(CPUKIT_PKGVERS)/g" \
-e "s/[@]CPUKIT_RPMREL[@]/$(CPUKIT_RPMREL)%{?dist}/g" \
-e "/--with-sysroot/d" \
-e "/[@]tool_target[@]-sys-root/d" \
-e "/[@]tool_target[@]-w32api-sys-root/d" \
| $(MKSPEC0) > $(TARGET)-cpukit.spec.in
CLEANFILES += $(TARGET)-cpukit.spec.in
@rpmprefix@$(TARGET)-cpukit.spec: $(TARGET)-cpukit.spec.in
$(MKSPEC) $(TARGET)-cpukit.spec.in | $(SPECSTRIP) $(CPUKIT_OPTS) > $@
CLEANFILES += @rpmprefix@$(TARGET)-cpukit.spec
noinst_DATA += @rpmprefix@$(TARGET)-cpukit.spec
EXTRA_DIST += $(CPUKIT_SUBPACKAGES)

View File

@@ -0,0 +1,2 @@
echo "RTEMS gcc-%{gcc_version}-@GCC_RPMREL@/newlib-%{newlib_version}-@NEWLIB_RPMREL@" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE

View File

@@ -0,0 +1,47 @@
EXTRA_DIST += $(srcdir)/../gcc-prep.add
EXTRA_DIST += $(srcdir)/gcc-sources.add
GCC_OPTS = --languages=c --newlib
GCC_SUBPACKAGES = $(top_srcdir)/common/common.add
GCC_SUBPACKAGES += $(top_srcdir)/gcc/gccnewlib.add
GCC_SUBPACKAGES += $(top_srcdir)/gcc/prep.add
GCC_SUBPACKAGES += $(top_srcdir)/gcc/build.add
GCC_SUBPACKAGES += $(top_srcdir)/gcc/install.add
GCC_SUBPACKAGES += $(top_srcdir)/gcc/rpm-install.add
GCC_SUBPACKAGES += $(top_srcdir)/common/clean.add
GCC_SUBPACKAGES += $(top_srcdir)/gcc/target-gcc.add
GCC_SUBPACKAGES += $(top_srcdir)/gcc/base-gcc.add
GCC_SUBPACKAGES += $(top_srcdir)/gcc/target-c++.add
GCC_SUBPACKAGES += $(top_srcdir)/gcc/target-gfortran.add
GCC_SUBPACKAGES += $(top_srcdir)/gcc/base-gfortran.add
GCC_SUBPACKAGES += $(top_srcdir)/gcc/target-objc.add
GCC_SUBPACKAGES += $(top_srcdir)/gcc/target-newlib.add
GCC_SUBPACKAGES += $(top_srcdir)/gcc/base-newlib.add
$(TARGET)-gcc.spec.in: $(GCC_SUBPACKAGES) Makefile.am $(srcdir)/gcc-sources.add $(srcdir)/../gcc-prep.add $(srcdir)/../gcc.am
cat $(GCC_SUBPACKAGES) \
| sed \
-e "/[@]SOURCES[@]/r $(srcdir)/gcc-sources.add" \
-e "/[@]SOURCES[@]/d" \
-e "/[@]PREP[@]/r $(srcdir)/../gcc-prep.add" \
-e "/[@]PREP[@]/d" \
| sed \
-e "s/[@]GCC_VERS[@]/$(GCC_VERS)/g" \
-e "s/[@]GCC_PKGVERS[@]/$(GCC_PKGVERS)/g" \
-e "s/[@]GCC_RPMREL[@]/$(GCC_RPMREL)%{?dist}/g" \
-e "s/[@]NEWLIB_VERS[@]/$(NEWLIB_VERS)/g" \
-e "s/[@]NEWLIB_PKGVERS[@]/$(NEWLIB_PKGVERS)/g" \
-e "s/[@]NEWLIB_RPMREL[@]/$(NEWLIB_RPMREL)%{?dist}/g" \
-e "/--with-sysroot/d" \
-e "/[@]tool_target[@]-sys-root/d" \
-e "/[@]tool_target[@]-w32api-sys-root/d" \
| $(MKSPEC0) > $(TARGET)-gcc.spec.in
CLEANFILES += $(TARGET)-gcc.spec.in
@rpmprefix@$(TARGET)-gcc.spec: $(TARGET)-gcc.spec.in
$(MKSPEC) $(TARGET)-gcc.spec.in | $(SPECSTRIP) $(GCC_OPTS) > $@
CLEANFILES += @rpmprefix@$(TARGET)-gcc.spec
noinst_DATA += @rpmprefix@$(TARGET)-gcc.spec
EXTRA_DIST += $(GCC_SUBPACKAGES)

View File

@@ -0,0 +1,31 @@
EXTRA_DIST += gdb-sources.add
GDB_OPTS =
GDB_SUBPACKAGES = $(top_srcdir)/common/common.add
GDB_SUBPACKAGES += $(top_srcdir)/gdb/gdb.add
GDB_SUBPACKAGES += $(top_srcdir)/gdb/prep.add
GDB_SUBPACKAGES += $(top_srcdir)/gdb/build.add
GDB_SUBPACKAGES += $(top_srcdir)/gdb/install.add
GDB_SUBPACKAGES += $(top_srcdir)/gdb/rpm-install.add
GDB_SUBPACKAGES += $(top_srcdir)/common/clean.add
GDB_SUBPACKAGES += $(top_srcdir)/gdb/target-gdb.add
GDB_SUBPACKAGES += $(top_srcdir)/gdb/base-gdb.add
$(TARGET)-gdb.spec.in: $(GDB_SUBPACKAGES) Makefile.am $(srcdir)/gdb-sources.add $(srcdir)/../gdb.am
cat $(GDB_SUBPACKAGES) | sed \
-e "/[@]SOURCES[@]/r $(srcdir)/gdb-sources.add" \
-e "/[@]SOURCES[@]/d" \
-e "s/[@]GDB_VERS[@]/$(GDB_VERS)/g" \
-e "s/[@]GDB_PKGVERS[@]/$(GDB_PKGVERS)/g" \
-e "s/[@]GDB_RPMREL[@]/$(GDB_RPMREL)%{?dist}/g" \
-e "/--with-sysroot/d" \
| $(MKSPEC0) > $(TARGET)-gdb.spec.in
CLEANFILES += $(TARGET)-gdb.spec.in
@rpmprefix@$(TARGET)-gdb.spec: $(TARGET)-gdb.spec.in
$(MKSPEC) $(TARGET)-gdb.spec.in | $(SPECSTRIP) $(GDB_OPTS) > $@
CLEANFILES += @rpmprefix@$(TARGET)-gdb.spec
noinst_DATA += @rpmprefix@$(TARGET)-gdb.spec
EXTRA_DIST += $(GDB_SUBPACKAGES)

View File

@@ -0,0 +1,3 @@
Makefile
Makefile.in
*.spec.in

View File

@@ -0,0 +1,32 @@
# $Id$
TARGET = h8300-rtems4.11
include $(top_srcdir)/mkspec.am
BINUTILS_VERS = 2.20.1
BINUTILS_PKGVERS = $(BINUTILS_VERS)
BINUTILS_RPMREL = 1
include ../binutils.am
BINUTILS_OPTS +=
GCC_VERS = 4.4.3
GCC_PKGVERS = $(GCC_VERS)
GCC_RPMREL = 1
NEWLIB_VERS = 1.18.0
NEWLIB_PKGVERS = $(NEWLIB_VERS)
NEWLIB_RPMREL = `expr $(GCC_RPMREL)`
include ../gcc.am
GCC_OPTS += --languages=cxx
GDB_VERS = 7.0.90
GDB_PKGVERS = $(GDB_VERS)
GDB_RPMREL = 1
include ../gdb.am
GDB_OPTS +=
CPUKIT_VERS = 4.9.99.0
CPUKIT_PKGVERS = $(CPUKIT_VERS)-20090206-2
CPUKIT_RPMREL = 1
include ../cpukit.am
CPUKIT_OPTS +=

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}

View File

@@ -0,0 +1,47 @@
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if %build_cxx
%if "%{gcc_version}" == "4.4.3"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%if "%{gcc_version}" == "4.4.2"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%{?_without_sources:NoSource: 1}
%endif
%if %build_fortran
Source2: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-fortran-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 2}
%endif
%if %build_gcj
Source3: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-java-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 3}
%endif
%if %build_gnat
Source4: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-ada-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 4}
%endif
%if %build_objc
Source5: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-objc-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 5}
%endif
%if %build_newlib
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%endif

View File

@@ -0,0 +1,9 @@
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif

View File

@@ -0,0 +1,268 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define binutils_pkgvers 2.20.1
%define binutils_version 2.20.1
%define binutils_rpmvers %{expand:%(echo "2.20.1" | tr - _ )}
Name: rtems-4.11-h8300-rtems4.11-binutils
Summary: Binutils for target h8300-rtems4.11
Group: Development/Tools
Version: %{binutils_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/binutils
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%if "%{binutils_version}" >= "2.18"
# Bug in bfd: Doesn't build without texinfo installed
BuildRequires: texinfo >= 4.2
%else
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
%endif
BuildRequires: flex
BuildRequires: bison
Requires: rtems-4.11-binutils-common
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
%description
Cross binutils for target h8300-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd binutils-%{binutils_pkgvers}
%{?PATCH0:%patch0 -p1}
cd ..
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../binutils-%{binutils_pkgvers}/configure \
--build=%_build --host=%_host \
--target=h8300-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
--prefix=%{_prefix} --bindir=%{_bindir} \
--exec-prefix=%{_exec_prefix} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
make prefix=$RPM_BUILD_ROOT%{_prefix} \
bindir=$RPM_BUILD_ROOT%{_bindir} \
includedir=$RPM_BUILD_ROOT%{_includedir} \
libdir=$RPM_BUILD_ROOT%{_libdir} \
infodir=$RPM_BUILD_ROOT%{_infodir} \
mandir=$RPM_BUILD_ROOT%{_mandir} \
exec_prefix=$RPM_BUILD_ROOT%{_exec_prefix} \
install-info
# Dropped in FSF-binutils-2.9.5, but Cygwin still ships it.
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure.info*
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# binutils does not install share/locale, however it uses it
mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/locale
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# manpages without corresponding tools
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/h8300-rtems4.11-dlltool%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/h8300-rtems4.11-dlltool*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/h8300-rtems4.11-nlmconv%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/h8300-rtems4.11-nlmconv*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/h8300-rtems4.11-windres%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/h8300-rtems4.11-windres*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/h8300-rtems4.11-windmc%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/h8300-rtems4.11-windmc*
fi
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# h8300-rtems4.11-binutils
# ==============================================================
# %package -n rtems-4.11-h8300-rtems4.11-binutils
# Summary: rtems binutils for h8300-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-binutils-common
# %endif
%description -n rtems-4.11-h8300-rtems4.11-binutils
GNU binutils targetting h8300-rtems4.11.
%files -n rtems-4.11-h8300-rtems4.11-binutils
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_datarootdir}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/h8300-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/h8300-rtems4.11-*
%dir %{_exec_prefix}/h8300-rtems4.11
%dir %{_exec_prefix}/h8300-rtems4.11/bin
%{_exec_prefix}/h8300-rtems4.11/bin/*
%dir %{_exec_prefix}/h8300-rtems4.11/lib
%{_exec_prefix}/h8300-rtems4.11/lib/ldscripts
# ==============================================================
# rtems-4.11-binutils-common
# ==============================================================
%package -n rtems-4.11-binutils-common
Summary: Base package for RTEMS binutils
Group: Development/Tools
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-binutils-common
RTEMS is an open source operating system for embedded systems.
This is the base for binutils regardless of target CPU.
%post -n rtems-4.11-binutils-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
%preun -n rtems-4.11-binutils-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
fi
%files -n rtems-4.11-binutils-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/as.info*
%{_infodir}/bfd.info*
%{_infodir}/binutils.info*
%{_infodir}/ld.info*
%{_infodir}/standards.info*
%{_infodir}/gprof.info*
%dir %{_prefix}/share
%dir %{_prefix}/share/locale

View File

@@ -0,0 +1,158 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define cpukit_pkgvers 4.9.99.0-20090206-2
%define cpukit_version 4.9.99.0
%define cpukit_rpmvers %{expand:%(echo "4.9.99.0-20090206-2" | tr - . )}
Name: rtems-4.11-h8300-rtems4.11-cpukit
Summary: h8300-rtems4.11 cpukit
Group: Development/Tools
Version: %{cpukit_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://cpukit.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
%define debug_package %{nil}
BuildRequires: rtems-4.11-h8300-rtems4.11-gcc
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}
%description
RTEMS cpukit for h8300-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
../rtems-%{cpukit_version}/configure \
--prefix=%{_prefix} \
--target=h8300-rtems4.11 \
--enable-multilib \
--disable-rtemsbsp
make all RTEMS_BSP=
cd ..
%install
rm -rf $RPM_BUILD_ROOT
export PATH="%{_bindir}:${PATH}"
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
rm -rf $RPM_BUILD_ROOT%{_prefix}/share/man
rm -rf $RPM_BUILD_ROOT%{_prefix}/bin
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{version}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/h8300-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/h8300-rtems4.11/' | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-provides
%define __find_provides %{_builddir}/%{name}-%{version}/find-provides
cat << EOF > %{_builddir}/%{name}-%{version}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/h8300-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/h8300-rtems4.11/' | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-requires
%define __find_requires %{_builddir}/%{name}-%{version}/find-requires
%clean
rm -rf $RPM_BUILD_ROOT
%description -n rtems-4.11-h8300-rtems4.11-cpukit
RTEMS cpukit for target h8300-rtems4.11.
%files -n rtems-4.11-h8300-rtems4.11-cpukit
%defattr(-,root,root)
%dir %{_prefix}
%{_prefix}/h8300-rtems4.11
# Violates the FHS
%exclude %{_prefix}/make

View File

@@ -0,0 +1,716 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gcc_pkgvers 4.4.3
%define gcc_version 4.4.3
%define gcc_rpmvers %{expand:%(echo "4.4.3" | tr - _ )}
%define newlib_pkgvers 1.18.0
%define newlib_version 1.18.0
Name: rtems-4.11-h8300-rtems4.11-gcc
Summary: h8300-rtems4.11 gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://gcc.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%define _use_internal_dependency_generator 0
BuildRequires: %{_host_rpmprefix}gcc
%if "%{gcc_version}" >= "4.3.0"
%define _gmp_minvers 4.1
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%if %{defined _gmp_minvers}
BuildRequires: gmp-devel >= %{_gmp_minvers}
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}gmp-devel >= %{_gmp_minvers}
%endif
%endif
%if "%{gcc_version}" >= "4.3.3"
%define _cloog_minvers 0.15
%endif
%if %{defined _cloog_minvers}
%{?fc11:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc12:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc13:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?suse11_2:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%{?suse11_1:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%endif
%if "%{gcc_version}" >= "4.4.0"
%define _mpfr_minvers 2.3.2
%define mpfr_version 2.4.1
%else
%if "%{gcc_version}" >= "4.3.0"
%define _mpfr_minvers 2.3.1
%define mpfr_version 2.3.2
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%endif
%if %{defined _mpfr_minvers}
# FIXME: This is an ugly cludge
%{?fc11:%global mpfr_provided 2.4.1}
%{?fc12:%global mpfr_provided 2.4.1}
%{?fc13:%global mpfr_provided 2.4.1}
%{?suse11_0:%global mpfr_provided 2.3.1}
%{?suse11_1:%global mpfr_provided 2.3.2}
%{?suse11_2:%global mpfr_provided 2.4.1}
%{?cygwin:%global mpfr_provided 2.4.1}
%{?mingw32:%global mpfr_provided %{nil}}
%if %{defined mpfr_provided}
%if "%{mpfr_provided}" < "%{_mpfr_minvers}"
%define _build_mpfr 1
%else
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}mpfr-devel >= %{_mpfr_minvers}
%else
BuildRequires: mpfr-devel >= %{_mpfr_minvers}
%endif
%endif
%else
%define _build_mpfr 1
%endif
%endif
%if "%{_build}" != "%{_host}"
BuildRequires: rtems-4.11-h8300-rtems4.11-gcc = %{gcc_rpmvers}
%endif
%if "%{gcc_version}" >= "4.2.0"
BuildRequires: flex bison
%endif
BuildRequires: texinfo >= 4.2
BuildRequires: rtems-4.11-h8300-rtems4.11-binutils
Requires: rtems-4.11-gcc-common
Requires: rtems-4.11-h8300-rtems4.11-binutils
Requires: rtems-4.11-h8300-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
Requires: rtems-4.11-h8300-rtems4.11-newlib = %{newlib_version}-1%{?dist}
%define _gcclibdir %{_prefix}/lib
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if "%{gcc_version}" == "4.4.3"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%if "%{gcc_version}" == "4.4.2"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%{?_without_sources:NoSource: 1}
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%if "%{gcc_version}" >= "4.3.0"
Source60: http://www.mpfr.org/mpfr-current/mpfr-%{mpfr_version}.tar.bz2
%endif
%description
Cross gcc for h8300-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%{?PATCH0:%patch0 -p0}
%setup -q -T -D -n %{name}-%{version} -a1
%{?PATCH1:%patch1 -p0}
%setup -q -T -D -n %{name}-%{version} -a50
cd newlib-%{newlib_version}
%{?PATCH50:%patch50 -p1}
cd ..
# Copy the C library into gcc's source tree
ln -s ../newlib-%{newlib_version}/newlib gcc-%{gcc_pkgvers}
%if 0%{?_build_mpfr}
%setup -q -T -D -n %{name}-%{version} -a60
%{?PATCH60:%patch60 -p1}
# Build mpfr one-tree style
ln -s ../mpfr-%{mpfr_version} gcc-%{gcc_pkgvers}/mpfr
%endif
echo "RTEMS gcc-%{gcc_version}-1%{?dist}/newlib-%{newlib_version}-1%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
# Fix timestamps
cd gcc-%{gcc_pkgvers}
contrib/gcc_update --touch
cd ..
%build
mkdir -p build
cd build
languages="c"
languages="$languages,c++"
export PATH="%{_bindir}:${PATH}"
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
CC="%{_host}-gcc ${RPM_OPT_FLAGS}" \
%else
# gcc is not ready to be compiled with -std=gnu99
CC=$(echo "%{__cc} ${RPM_OPT_FLAGS}" | sed -e 's,-std=gnu99 ,,') \
%endif
../gcc-%{gcc_pkgvers}/configure \
--prefix=%{_prefix} \
--bindir=%{_bindir} \
--exec_prefix=%{_exec_prefix} \
--includedir=%{_includedir} \
--libdir=%{_gcclibdir} \
--libexecdir=%{_libexecdir} \
--mandir=%{_mandir} \
--infodir=%{_infodir} \
--datadir=%{_datadir} \
--build=%_build --host=%_host \
--target=h8300-rtems4.11 \
--disable-libstdcxx-pch \
--with-gnu-as --with-gnu-ld --verbose \
--with-newlib \
--with-system-zlib \
--disable-nls --without-included-gettext \
--disable-win32-registry \
--enable-version-specific-runtime-libs \
--enable-threads \
--enable-newlib-io-c99-formats \
--enable-languages="$languages" $optargs
%if "%_host" != "%_build"
# Bug in gcc-3.2.1:
# Somehow, gcc doesn't get syslimits.h right for Cdn-Xs
mkdir -p gcc/include
cp ../gcc-%{gcc_pkgvers}/gcc/gsyslimits.h gcc/include/syslimits.h
%endif
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
cd build/h8300-rtems4.11/newlib
make DESTDIR=$RPM_BUILD_ROOT install-info
cd ../../..
%if "%{gcc_version}" <= "4.1.2"
# Misplaced header file
if test -f $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h; then
mv $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h \
$RPM_BUILD_ROOT%{_gcclibdir}/gcc/h8300-rtems4.11/%{gcc_version}/include/
fi
%endif
# host library
%if "%{gcc_version}" >= "4.2.0"
# libiberty doesn't honor --libdir, but always installs to a
# magically guessed _libdir
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty.a
%else
# libiberty installs to --libdir=...
rm -f ${RPM_BUILD_ROOT}%{_gcclibdir}/libiberty.a
%endif
# We use the version from binutils
rm -f $RPM_BUILD_ROOT%{_bindir}/h8300-rtems4.11-c++filt%{_exeext}
# We don't ship info/dir
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# Bug in gcc-3.4.0pre
rm -f $RPM_BUILD_ROOT%{_bindir}/h8300-rtems4.11-h8300-rtems4.11-gcjh%{_exeext}
# Bug in gcc-3.3.x/gcc-3.4.x: Despite we don't need fixincludes, it installs
# the fixinclude-install-tools
rm -rf ${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/h8300-rtems4.11/%{gcc_version}/install-tools
rm -rf ${RPM_BUILD_ROOT}%{_libexecdir}/gcc/h8300-rtems4.11/%{gcc_version}/install-tools
# Bug in gcc > 4.1.0: Installs an unused, empty directory
if test -d ${RPM_BUILD_ROOT}%{_prefix}/h8300-rtems4.11/include/bits; then
rmdir ${RPM_BUILD_ROOT}%{_prefix}/h8300-rtems4.11/include/bits
fi
# Collect multilib subdirectories
multilibs=`build/gcc/xgcc -Bbuild/gcc/ --print-multi-lib | sed -e 's,;.*$,,'`
echo "%defattr(-,root,root,-)" > build/files.newlib
TGTDIR="%{_exec_prefix}/h8300-rtems4.11/lib"
for i in $multilibs; do
case $i in
\.) echo "%dir ${TGTDIR}" >> build/files.newlib
;;
*) echo "%dir ${TGTDIR}/$i" >> build/files.newlib
;;
esac
done
rm -f dirs ;
echo "%defattr(-,root,root,-)" >> dirs
TGTDIR="%{_gcclibdir}/gcc/h8300-rtems4.11/%{gcc_version}"
for i in $multilibs; do
case $i in
\.) ;; # ignore, handled elsewhere
*) echo "%dir ${TGTDIR}/$i" >> dirs
;;
esac
done
# Collect files to go into different packages
cp dirs build/files.gcc
cp dirs build/files.gfortran
cp dirs build/files.objc
cp dirs build/files.gcj
cp dirs build/files.g++
TGTDIR="%{_gcclibdir}/gcc/h8300-rtems4.11/%{gcc_version}"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i ;; # ignore: gcc produces bogus libtool libs
*f771) ;;
*f951) ;;
*cc1) ;;
*cc1obj) ;;
*cc1plus) ;; # ignore: explicitly put into rpm elsewhere
*collect2) ;;
*libobjc*) echo "$i" >> build/files.objc ;;
*include/objc*) ;;
*include/g++*);;
*include/c++*);;
*include-fixed/*);;
*finclude/*);;
*adainclude*);;
*adalib*);;
*gnat1);;
*jc1) ;;
*jvgenmain) ;;
*/libgfortran*.*) echo "$i" >> build/files.gfortran ;;
*/libstdc++.*) echo "$i" >> build/files.g++ ;;
*/libsupc++.*) echo "$i" >> build/files.g++ ;;
*) echo "$i" >> build/files.gcc ;;
esac
done
TGTDIR="%{_exec_prefix}/h8300-rtems4.11/lib"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i;; # ignore - gcc produces bogus libtool libs
*libiberty.a) rm ${RPM_BUILD_ROOT}/$i ;; # ignore - GPL'ed
# all other files belong to newlib
*) echo "$i" >> build/files.newlib ;;
esac
done
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/h8300-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/h8300-rtems4.11/'} | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
%define __find_provides %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/h8300-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/h8300-rtems4.11/'} | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%define __find_requires %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%ifnarch noarch
# Extract %%__debug_install_post into debug_install_post~
cat << \EOF > debug_install_post~
%__debug_install_post
EOF
# Generate customized debug_install_post script
cat debug_install_post~ | while read a x y; do
case $a in
# Prevent find-debuginfo.sh* from trying to handle foreign binaries
*/find-debuginfo.sh)
b=$(basename $a)
sed -e 's,find "$RPM_BUILD_ROOT" !,find "$RPM_BUILD_ROOT"%_bindir "$RPM_BUILD_ROOT"%_libexecdir !,' $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm/find-debuginfo.sh,./find-debuginfo.sh,' \
< debug_install_post~ > debug_install_post
%define __debug_install_post . ./debug_install_post
%endif
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# rtems-4.11-h8300-rtems4.11-gcc
# ==============================================================
# %package -n rtems-4.11-h8300-rtems4.11-gcc
# Summary: GNU cc compiler for h8300-rtems4.11
# Group: Development/Tools
# Version: %{gcc_rpmvers}
# Requires: rtems-4.11-h8300-rtems4.11-binutils
# Requires: rtems-4.11-h8300-rtems4.11-newlib = %{newlib_version}-1%{?dist}
# License: GPL
# %if %build_infos
# Requires: rtems-4.11-gcc-common
# %endif
%description -n rtems-4.11-h8300-rtems4.11-gcc
GNU cc compiler for h8300-rtems4.11.
# ==============================================================
# rtems-4.11-h8300-rtems4.11-gcc-libgcc
# ==============================================================
%package -n rtems-4.11-h8300-rtems4.11-gcc-libgcc
Summary: libgcc for h8300-rtems4.11-gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-h8300-rtems4.11-newlib = %{newlib_version}-1%{?dist}
License: GPL
%description -n rtems-4.11-h8300-rtems4.11-gcc-libgcc
libgcc h8300-rtems4.11-gcc.
%files -n rtems-4.11-h8300-rtems4.11-gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/h8300-rtems4.11-gcc.1*
%{_mandir}/man1/h8300-rtems4.11-cpp.1*
%{_mandir}/man1/h8300-rtems4.11-gcov.1*
%dir %{_bindir}
%{_bindir}/h8300-rtems4.11-cpp%{_exeext}
%{_bindir}/h8300-rtems4.11-gcc%{_exeext}
%{_bindir}/h8300-rtems4.11-gcc-%{gcc_version}%{_exeext}
%{_bindir}/h8300-rtems4.11-gcov%{_exeext}
%{_bindir}/h8300-rtems4.11-gccbug
%dir %{_libexecdir}
%dir %{_libexecdir}/gcc
%dir %{_libexecdir}/gcc/h8300-rtems4.11
%dir %{_libexecdir}/gcc/h8300-rtems4.11/%{gcc_version}
%{_libexecdir}/gcc/h8300-rtems4.11/%{gcc_version}/cc1%{_exeext}
%{_libexecdir}/gcc/h8300-rtems4.11/%{gcc_version}/collect2%{_exeext}
%files -n rtems-4.11-h8300-rtems4.11-gcc-libgcc -f build/files.gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_gcclibdir}
%dir %{_gcclibdir}/gcc
%dir %{_gcclibdir}/gcc/h8300-rtems4.11
%dir %{_gcclibdir}/gcc/h8300-rtems4.11/%{gcc_version}
%dir %{_gcclibdir}/gcc/h8300-rtems4.11/%{gcc_version}/include
%if "%{gcc_version}" > "4.0.3"
%if "h8300-rtems4.11" != "bfin-rtems4.10"
%if "h8300-rtems4.11" != "avr-rtems4.10"
%dir %{_gcclibdir}/gcc/h8300-rtems4.11/%{gcc_version}/include/ssp
%endif
%endif
%endif
%if "%{gcc_version}" >= "4.3.0"
%{_gcclibdir}/gcc/h8300-rtems4.11/%{gcc_version}/include-fixed
%endif
# ==============================================================
# rtems-4.11-gcc-common
# ==============================================================
%package -n rtems-4.11-gcc-common
Summary: Base package for rtems gcc and newlib C Library
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: GPL
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-gcc-common
GCC files that are shared by all targets.
%files -n rtems-4.11-gcc-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/cpp.info*
%{_infodir}/cppinternals.info*
%{_infodir}/gcc.info*
%{_infodir}/gccint.info*
%{_infodir}/gccinstall.info*
%dir %{_mandir}
%dir %{_mandir}/man7
%{_mandir}/man7/fsf-funding.7*
%{_mandir}/man7/gfdl.7*
%{_mandir}/man7/gpl.7*
%post -n rtems-4.11-gcc-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
%preun -n rtems-4.11-gcc-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
fi
# ==============================================================
# rtems-4.11-h8300-rtems4.11-gcc-c++
# ==============================================================
%package -n rtems-4.11-h8300-rtems4.11-gcc-c++
Summary: GCC c++ compiler for h8300-rtems4.11
Group: Development/Tools
Version: %{gcc_rpmvers}
License: GPL
Requires: rtems-4.11-h8300-rtems4.11-gcc-libstdc++ = %{gcc_rpmvers}-%{release}
%if "%{_build}" != "%{_host}"
BuildRequires: rtems-4.11-h8300-rtems4.11-gcc-c++ = %{gcc_rpmvers}
%endif
Requires: rtems-4.11-gcc-common
Requires: rtems-4.11-h8300-rtems4.11-gcc = %{gcc_rpmvers}-%{release}
%description -n rtems-4.11-h8300-rtems4.11-gcc-c++
GCC c++ compiler for h8300-rtems4.11.
%package -n rtems-4.11-h8300-rtems4.11-gcc-libstdc++
Summary: libstdc++ for h8300-rtems4.11
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: GPL
%description -n rtems-4.11-h8300-rtems4.11-gcc-libstdc++
%{summary}
%files -n rtems-4.11-h8300-rtems4.11-gcc-c++
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/h8300-rtems4.11-g++.1*
%dir %{_bindir}
%{_bindir}/h8300-rtems4.11-c++%{_exeext}
%{_bindir}/h8300-rtems4.11-g++%{_exeext}
%dir %{_libexecdir}
%dir %{_libexecdir}/gcc
%dir %{_libexecdir}/gcc/h8300-rtems4.11
%dir %{_libexecdir}/gcc/h8300-rtems4.11/%{gcc_version}
%{_libexecdir}/gcc/h8300-rtems4.11/%{gcc_version}/cc1plus%{_exeext}
%files -n rtems-4.11-h8300-rtems4.11-gcc-libstdc++ -f build/files.g++
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_gcclibdir}
%dir %{_gcclibdir}/gcc
%dir %{_gcclibdir}/gcc/h8300-rtems4.11
%dir %{_gcclibdir}/gcc/h8300-rtems4.11/%{gcc_version}
%dir %{_gcclibdir}/gcc/h8300-rtems4.11/%{gcc_version}/include
%{_gcclibdir}/gcc/h8300-rtems4.11/%{gcc_version}/include/c++
# ==============================================================
# rtems-4.11-h8300-rtems4.11-newlib
# ==============================================================
%package -n rtems-4.11-h8300-rtems4.11-newlib
Summary: C Library (newlib) for h8300-rtems4.11
Group: Development/Tools
License: Distributable
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-newlib-common
%description -n rtems-4.11-h8300-rtems4.11-newlib
Newlib C Library for h8300-rtems4.11.
%files -n rtems-4.11-h8300-rtems4.11-newlib -f build/files.newlib
%defattr(-,root,root)
%dir %{_exec_prefix}
%dir %{_exec_prefix}/h8300-rtems4.11
%{_exec_prefix}/h8300-rtems4.11/include
# ==============================================================
# rtems-4.11-newlib-common
# ==============================================================
%package -n rtems-4.11-newlib-common
Summary: Base package for RTEMS newlib C Library
Group: Development/Tools
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: Distributable
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-newlib-common
newlib files that are shared by all targets.
%files -n rtems-4.11-newlib-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/libc.info*
%{_infodir}/libm.info*
%post -n rtems-4.11-newlib-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
%preun -n rtems-4.11-newlib-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
fi

View File

@@ -0,0 +1,319 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gdb_version 7.0.90
%define gdb_rpmvers %{expand:%(echo 7.0.90 | tr - _)}
Name: rtems-4.11-h8300-rtems4.11-gdb
Summary: Gdb for target h8300-rtems4.11
Group: Development/Tools
Version: %{gdb_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/gdb
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%define build_sim --enable-sim
%if "%{_build}" != "%{_host}"
# psim doesn't support Cdn-X
%if "h8300-rtems4.11" == "powerpc-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%ifos mingw mingw32
# Mingw lacks functions required by the simulator
%if "h8300-rtems4.11" == "sparc-rtems4.10"
%define build_sim --disable-sim
%endif
%if "h8300-rtems4.11" == "h8300-rtems4.10"
%define build_sim --disable-sim
%endif
%if "%{gdb_version}" >= "6.8.50"
%if "h8300-rtems4.11" == "m32c-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "h8300-rtems4.11" == "lm32-rtems4.10"
%define build_sim --disable-sim
%endif
%if "h8300-rtems4.11" == "mipstx39-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "%{gdb_version}" >= "6.6"
# suse
%if "%{?suse}" >= "10.3"
BuildRequires: libexpat-devel
%else
# Fedora/CentOS/Cygwin/MinGW
BuildRequires: %{_host_rpmprefix}expat-devel
%endif
%endif
%if "%{gdb_version}" < "6.7"
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}termcap-devel
%endif
%bcond_with system_readline
%else
%bcond_without system_readline
%endif
%{?with_system_readline:BuildRequires: %{_host_rpmprefix}readline-devel}
BuildRequires: %{_host_rpmprefix}ncurses-devel
%if "%{gdb_version}" >= "6.8.50"
%if "%{_build}" != "%{_host}"
# Can't build python Cdn-X
%bcond_with python
%else
%bcond_without python
%endif
%endif
%{?with_python:BuildRequires: %{_host_rpmprefix}python-devel}
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
Requires: rtems-4.11-gdb-common
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif
%description
GDB for target h8300-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd gdb-%{gdb_version}
%{?PATCH0:%patch0 -p1}
cd ..
# Force using a system-provided libreadline
%{?with_system_readline:rm -f gdb-%{gdb_version}/readline/configure}
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../gdb-%{gdb_version}/configure \
--build=%_build --host=%_host \
--target=h8300-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
%{build_sim} \
%{?with_system_readline:--with-system-readline} \
%if "%{gdb_version}" >= "6.6"
--with-expat \
%endif
%if "%{gdb_version}" >= "6.8.50"
%if %{with python}
--with-python \
%else
--without-python \
%endif
%endif
--prefix=%{_prefix} --bindir=%{_bindir} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# These come from other packages
rm -rf $RPM_BUILD_ROOT%{_infodir}/bfd*
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure*
rm -rf $RPM_BUILD_ROOT%{_infodir}/standards*
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# host library, installed to a bogus directory
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libh8300-rtems4.11-sim.a
%if "%{gdb_version}" >= "7.0"
# Bug in gdb-7.0, bogusly installs linux-only files
somethinguseful=0
for f in ${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls/*.xml; do
case $f in
*linux.xml) rm -f $f;;
*.xml) somethinguseful=1;;
esac
done
if test $somethinguseful -eq 0; then
rm -rf "${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls"
fi
%endif
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# h8300-rtems4.11-gdb
# ==============================================================
# %package -n rtems-4.11-h8300-rtems4.11-gdb
# Summary: rtems gdb for h8300-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-gdb-common
# %endif
%description -n rtems-4.11-h8300-rtems4.11-gdb
GNU gdb targetting h8300-rtems4.11.
%files -n rtems-4.11-h8300-rtems4.11-gdb
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/h8300-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/h8300-rtems4.11-*
# ==============================================================
# rtems-4.11-gdb-common
# ==============================================================
%package -n rtems-4.11-gdb-common
Summary: Base package for RTEMS gdbs
Group: Development/Tools
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%{?_with_noarch_subpackages:BuildArch: noarch}
%description -n rtems-4.11-gdb-common
GDB files shared by all targets.
%post -n rtems-4.11-gdb-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
%preun -n rtems-4.11-gdb-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
fi
%files -n rtems-4.11-gdb-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/gdb.info*
%{_infodir}/gdbint.info*
%{_infodir}/stabs.info*
%{_infodir}/annotate.info*

View File

@@ -0,0 +1,3 @@
Makefile
Makefile.in
*.spec.in

View File

@@ -0,0 +1,32 @@
# $Id$
TARGET = i386-rtems4.11
include $(top_srcdir)/mkspec.am
BINUTILS_VERS = 2.20.1
BINUTILS_PKGVERS = $(BINUTILS_VERS)
BINUTILS_RPMREL = 1
include ../binutils.am
BINUTILS_OPTS +=
GCC_VERS = 4.4.3
GCC_PKGVERS = $(GCC_VERS)
GCC_RPMREL = 1
NEWLIB_VERS = 1.18.0
NEWLIB_PKGVERS = $(NEWLIB_VERS)
NEWLIB_RPMREL = `expr $(GCC_RPMREL)`
include ../gcc.am
GCC_OPTS += --languages=cxx
GDB_VERS = 7.0.90
GDB_PKGVERS = $(GDB_VERS)
GDB_RPMREL = 1
include ../gdb.am
GDB_OPTS +=
CPUKIT_VERS = 4.9.99.0
CPUKIT_PKGVERS = $(CPUKIT_VERS)-20090206-2
CPUKIT_RPMREL = 1
include ../cpukit.am
CPUKIT_OPTS +=

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}

View File

@@ -0,0 +1,47 @@
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if %build_cxx
%if "%{gcc_version}" == "4.4.3"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%if "%{gcc_version}" == "4.4.2"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%{?_without_sources:NoSource: 1}
%endif
%if %build_fortran
Source2: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-fortran-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 2}
%endif
%if %build_gcj
Source3: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-java-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 3}
%endif
%if %build_gnat
Source4: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-ada-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 4}
%endif
%if %build_objc
Source5: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-objc-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 5}
%endif
%if %build_newlib
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%endif

View File

@@ -0,0 +1,9 @@
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif

View File

@@ -0,0 +1,268 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define binutils_pkgvers 2.20.1
%define binutils_version 2.20.1
%define binutils_rpmvers %{expand:%(echo "2.20.1" | tr - _ )}
Name: rtems-4.11-i386-rtems4.11-binutils
Summary: Binutils for target i386-rtems4.11
Group: Development/Tools
Version: %{binutils_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/binutils
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%if "%{binutils_version}" >= "2.18"
# Bug in bfd: Doesn't build without texinfo installed
BuildRequires: texinfo >= 4.2
%else
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
%endif
BuildRequires: flex
BuildRequires: bison
Requires: rtems-4.11-binutils-common
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
%description
Cross binutils for target i386-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd binutils-%{binutils_pkgvers}
%{?PATCH0:%patch0 -p1}
cd ..
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../binutils-%{binutils_pkgvers}/configure \
--build=%_build --host=%_host \
--target=i386-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
--prefix=%{_prefix} --bindir=%{_bindir} \
--exec-prefix=%{_exec_prefix} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
make prefix=$RPM_BUILD_ROOT%{_prefix} \
bindir=$RPM_BUILD_ROOT%{_bindir} \
includedir=$RPM_BUILD_ROOT%{_includedir} \
libdir=$RPM_BUILD_ROOT%{_libdir} \
infodir=$RPM_BUILD_ROOT%{_infodir} \
mandir=$RPM_BUILD_ROOT%{_mandir} \
exec_prefix=$RPM_BUILD_ROOT%{_exec_prefix} \
install-info
# Dropped in FSF-binutils-2.9.5, but Cygwin still ships it.
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure.info*
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# binutils does not install share/locale, however it uses it
mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/locale
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# manpages without corresponding tools
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/i386-rtems4.11-dlltool%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/i386-rtems4.11-dlltool*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/i386-rtems4.11-nlmconv%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/i386-rtems4.11-nlmconv*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/i386-rtems4.11-windres%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/i386-rtems4.11-windres*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/i386-rtems4.11-windmc%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/i386-rtems4.11-windmc*
fi
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# i386-rtems4.11-binutils
# ==============================================================
# %package -n rtems-4.11-i386-rtems4.11-binutils
# Summary: rtems binutils for i386-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-binutils-common
# %endif
%description -n rtems-4.11-i386-rtems4.11-binutils
GNU binutils targetting i386-rtems4.11.
%files -n rtems-4.11-i386-rtems4.11-binutils
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_datarootdir}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/i386-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/i386-rtems4.11-*
%dir %{_exec_prefix}/i386-rtems4.11
%dir %{_exec_prefix}/i386-rtems4.11/bin
%{_exec_prefix}/i386-rtems4.11/bin/*
%dir %{_exec_prefix}/i386-rtems4.11/lib
%{_exec_prefix}/i386-rtems4.11/lib/ldscripts
# ==============================================================
# rtems-4.11-binutils-common
# ==============================================================
%package -n rtems-4.11-binutils-common
Summary: Base package for RTEMS binutils
Group: Development/Tools
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-binutils-common
RTEMS is an open source operating system for embedded systems.
This is the base for binutils regardless of target CPU.
%post -n rtems-4.11-binutils-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
%preun -n rtems-4.11-binutils-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
fi
%files -n rtems-4.11-binutils-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/as.info*
%{_infodir}/bfd.info*
%{_infodir}/binutils.info*
%{_infodir}/ld.info*
%{_infodir}/standards.info*
%{_infodir}/gprof.info*
%dir %{_prefix}/share
%dir %{_prefix}/share/locale

View File

@@ -0,0 +1,158 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define cpukit_pkgvers 4.9.99.0-20090206-2
%define cpukit_version 4.9.99.0
%define cpukit_rpmvers %{expand:%(echo "4.9.99.0-20090206-2" | tr - . )}
Name: rtems-4.11-i386-rtems4.11-cpukit
Summary: i386-rtems4.11 cpukit
Group: Development/Tools
Version: %{cpukit_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://cpukit.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
%define debug_package %{nil}
BuildRequires: rtems-4.11-i386-rtems4.11-gcc
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}
%description
RTEMS cpukit for i386-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
../rtems-%{cpukit_version}/configure \
--prefix=%{_prefix} \
--target=i386-rtems4.11 \
--enable-multilib \
--disable-rtemsbsp
make all RTEMS_BSP=
cd ..
%install
rm -rf $RPM_BUILD_ROOT
export PATH="%{_bindir}:${PATH}"
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
rm -rf $RPM_BUILD_ROOT%{_prefix}/share/man
rm -rf $RPM_BUILD_ROOT%{_prefix}/bin
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{version}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/i386-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/i386-rtems4.11/' | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-provides
%define __find_provides %{_builddir}/%{name}-%{version}/find-provides
cat << EOF > %{_builddir}/%{name}-%{version}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/i386-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/i386-rtems4.11/' | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-requires
%define __find_requires %{_builddir}/%{name}-%{version}/find-requires
%clean
rm -rf $RPM_BUILD_ROOT
%description -n rtems-4.11-i386-rtems4.11-cpukit
RTEMS cpukit for target i386-rtems4.11.
%files -n rtems-4.11-i386-rtems4.11-cpukit
%defattr(-,root,root)
%dir %{_prefix}
%{_prefix}/i386-rtems4.11
# Violates the FHS
%exclude %{_prefix}/make

View File

@@ -0,0 +1,716 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gcc_pkgvers 4.4.3
%define gcc_version 4.4.3
%define gcc_rpmvers %{expand:%(echo "4.4.3" | tr - _ )}
%define newlib_pkgvers 1.18.0
%define newlib_version 1.18.0
Name: rtems-4.11-i386-rtems4.11-gcc
Summary: i386-rtems4.11 gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://gcc.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%define _use_internal_dependency_generator 0
BuildRequires: %{_host_rpmprefix}gcc
%if "%{gcc_version}" >= "4.3.0"
%define _gmp_minvers 4.1
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%if %{defined _gmp_minvers}
BuildRequires: gmp-devel >= %{_gmp_minvers}
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}gmp-devel >= %{_gmp_minvers}
%endif
%endif
%if "%{gcc_version}" >= "4.3.3"
%define _cloog_minvers 0.15
%endif
%if %{defined _cloog_minvers}
%{?fc11:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc12:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc13:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?suse11_2:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%{?suse11_1:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%endif
%if "%{gcc_version}" >= "4.4.0"
%define _mpfr_minvers 2.3.2
%define mpfr_version 2.4.1
%else
%if "%{gcc_version}" >= "4.3.0"
%define _mpfr_minvers 2.3.1
%define mpfr_version 2.3.2
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%endif
%if %{defined _mpfr_minvers}
# FIXME: This is an ugly cludge
%{?fc11:%global mpfr_provided 2.4.1}
%{?fc12:%global mpfr_provided 2.4.1}
%{?fc13:%global mpfr_provided 2.4.1}
%{?suse11_0:%global mpfr_provided 2.3.1}
%{?suse11_1:%global mpfr_provided 2.3.2}
%{?suse11_2:%global mpfr_provided 2.4.1}
%{?cygwin:%global mpfr_provided 2.4.1}
%{?mingw32:%global mpfr_provided %{nil}}
%if %{defined mpfr_provided}
%if "%{mpfr_provided}" < "%{_mpfr_minvers}"
%define _build_mpfr 1
%else
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}mpfr-devel >= %{_mpfr_minvers}
%else
BuildRequires: mpfr-devel >= %{_mpfr_minvers}
%endif
%endif
%else
%define _build_mpfr 1
%endif
%endif
%if "%{_build}" != "%{_host}"
BuildRequires: rtems-4.11-i386-rtems4.11-gcc = %{gcc_rpmvers}
%endif
%if "%{gcc_version}" >= "4.2.0"
BuildRequires: flex bison
%endif
BuildRequires: texinfo >= 4.2
BuildRequires: rtems-4.11-i386-rtems4.11-binutils
Requires: rtems-4.11-gcc-common
Requires: rtems-4.11-i386-rtems4.11-binutils
Requires: rtems-4.11-i386-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
Requires: rtems-4.11-i386-rtems4.11-newlib = %{newlib_version}-1%{?dist}
%define _gcclibdir %{_prefix}/lib
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if "%{gcc_version}" == "4.4.3"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%if "%{gcc_version}" == "4.4.2"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%{?_without_sources:NoSource: 1}
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%if "%{gcc_version}" >= "4.3.0"
Source60: http://www.mpfr.org/mpfr-current/mpfr-%{mpfr_version}.tar.bz2
%endif
%description
Cross gcc for i386-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%{?PATCH0:%patch0 -p0}
%setup -q -T -D -n %{name}-%{version} -a1
%{?PATCH1:%patch1 -p0}
%setup -q -T -D -n %{name}-%{version} -a50
cd newlib-%{newlib_version}
%{?PATCH50:%patch50 -p1}
cd ..
# Copy the C library into gcc's source tree
ln -s ../newlib-%{newlib_version}/newlib gcc-%{gcc_pkgvers}
%if 0%{?_build_mpfr}
%setup -q -T -D -n %{name}-%{version} -a60
%{?PATCH60:%patch60 -p1}
# Build mpfr one-tree style
ln -s ../mpfr-%{mpfr_version} gcc-%{gcc_pkgvers}/mpfr
%endif
echo "RTEMS gcc-%{gcc_version}-1%{?dist}/newlib-%{newlib_version}-1%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
# Fix timestamps
cd gcc-%{gcc_pkgvers}
contrib/gcc_update --touch
cd ..
%build
mkdir -p build
cd build
languages="c"
languages="$languages,c++"
export PATH="%{_bindir}:${PATH}"
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
CC="%{_host}-gcc ${RPM_OPT_FLAGS}" \
%else
# gcc is not ready to be compiled with -std=gnu99
CC=$(echo "%{__cc} ${RPM_OPT_FLAGS}" | sed -e 's,-std=gnu99 ,,') \
%endif
../gcc-%{gcc_pkgvers}/configure \
--prefix=%{_prefix} \
--bindir=%{_bindir} \
--exec_prefix=%{_exec_prefix} \
--includedir=%{_includedir} \
--libdir=%{_gcclibdir} \
--libexecdir=%{_libexecdir} \
--mandir=%{_mandir} \
--infodir=%{_infodir} \
--datadir=%{_datadir} \
--build=%_build --host=%_host \
--target=i386-rtems4.11 \
--disable-libstdcxx-pch \
--with-gnu-as --with-gnu-ld --verbose \
--with-newlib \
--with-system-zlib \
--disable-nls --without-included-gettext \
--disable-win32-registry \
--enable-version-specific-runtime-libs \
--enable-threads \
--enable-newlib-io-c99-formats \
--enable-languages="$languages" $optargs
%if "%_host" != "%_build"
# Bug in gcc-3.2.1:
# Somehow, gcc doesn't get syslimits.h right for Cdn-Xs
mkdir -p gcc/include
cp ../gcc-%{gcc_pkgvers}/gcc/gsyslimits.h gcc/include/syslimits.h
%endif
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
cd build/i386-rtems4.11/newlib
make DESTDIR=$RPM_BUILD_ROOT install-info
cd ../../..
%if "%{gcc_version}" <= "4.1.2"
# Misplaced header file
if test -f $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h; then
mv $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h \
$RPM_BUILD_ROOT%{_gcclibdir}/gcc/i386-rtems4.11/%{gcc_version}/include/
fi
%endif
# host library
%if "%{gcc_version}" >= "4.2.0"
# libiberty doesn't honor --libdir, but always installs to a
# magically guessed _libdir
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty.a
%else
# libiberty installs to --libdir=...
rm -f ${RPM_BUILD_ROOT}%{_gcclibdir}/libiberty.a
%endif
# We use the version from binutils
rm -f $RPM_BUILD_ROOT%{_bindir}/i386-rtems4.11-c++filt%{_exeext}
# We don't ship info/dir
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# Bug in gcc-3.4.0pre
rm -f $RPM_BUILD_ROOT%{_bindir}/i386-rtems4.11-i386-rtems4.11-gcjh%{_exeext}
# Bug in gcc-3.3.x/gcc-3.4.x: Despite we don't need fixincludes, it installs
# the fixinclude-install-tools
rm -rf ${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/i386-rtems4.11/%{gcc_version}/install-tools
rm -rf ${RPM_BUILD_ROOT}%{_libexecdir}/gcc/i386-rtems4.11/%{gcc_version}/install-tools
# Bug in gcc > 4.1.0: Installs an unused, empty directory
if test -d ${RPM_BUILD_ROOT}%{_prefix}/i386-rtems4.11/include/bits; then
rmdir ${RPM_BUILD_ROOT}%{_prefix}/i386-rtems4.11/include/bits
fi
# Collect multilib subdirectories
multilibs=`build/gcc/xgcc -Bbuild/gcc/ --print-multi-lib | sed -e 's,;.*$,,'`
echo "%defattr(-,root,root,-)" > build/files.newlib
TGTDIR="%{_exec_prefix}/i386-rtems4.11/lib"
for i in $multilibs; do
case $i in
\.) echo "%dir ${TGTDIR}" >> build/files.newlib
;;
*) echo "%dir ${TGTDIR}/$i" >> build/files.newlib
;;
esac
done
rm -f dirs ;
echo "%defattr(-,root,root,-)" >> dirs
TGTDIR="%{_gcclibdir}/gcc/i386-rtems4.11/%{gcc_version}"
for i in $multilibs; do
case $i in
\.) ;; # ignore, handled elsewhere
*) echo "%dir ${TGTDIR}/$i" >> dirs
;;
esac
done
# Collect files to go into different packages
cp dirs build/files.gcc
cp dirs build/files.gfortran
cp dirs build/files.objc
cp dirs build/files.gcj
cp dirs build/files.g++
TGTDIR="%{_gcclibdir}/gcc/i386-rtems4.11/%{gcc_version}"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i ;; # ignore: gcc produces bogus libtool libs
*f771) ;;
*f951) ;;
*cc1) ;;
*cc1obj) ;;
*cc1plus) ;; # ignore: explicitly put into rpm elsewhere
*collect2) ;;
*libobjc*) echo "$i" >> build/files.objc ;;
*include/objc*) ;;
*include/g++*);;
*include/c++*);;
*include-fixed/*);;
*finclude/*);;
*adainclude*);;
*adalib*);;
*gnat1);;
*jc1) ;;
*jvgenmain) ;;
*/libgfortran*.*) echo "$i" >> build/files.gfortran ;;
*/libstdc++.*) echo "$i" >> build/files.g++ ;;
*/libsupc++.*) echo "$i" >> build/files.g++ ;;
*) echo "$i" >> build/files.gcc ;;
esac
done
TGTDIR="%{_exec_prefix}/i386-rtems4.11/lib"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i;; # ignore - gcc produces bogus libtool libs
*libiberty.a) rm ${RPM_BUILD_ROOT}/$i ;; # ignore - GPL'ed
# all other files belong to newlib
*) echo "$i" >> build/files.newlib ;;
esac
done
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/i386-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/i386-rtems4.11/'} | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
%define __find_provides %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/i386-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/i386-rtems4.11/'} | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%define __find_requires %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%ifnarch noarch
# Extract %%__debug_install_post into debug_install_post~
cat << \EOF > debug_install_post~
%__debug_install_post
EOF
# Generate customized debug_install_post script
cat debug_install_post~ | while read a x y; do
case $a in
# Prevent find-debuginfo.sh* from trying to handle foreign binaries
*/find-debuginfo.sh)
b=$(basename $a)
sed -e 's,find "$RPM_BUILD_ROOT" !,find "$RPM_BUILD_ROOT"%_bindir "$RPM_BUILD_ROOT"%_libexecdir !,' $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm/find-debuginfo.sh,./find-debuginfo.sh,' \
< debug_install_post~ > debug_install_post
%define __debug_install_post . ./debug_install_post
%endif
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# rtems-4.11-i386-rtems4.11-gcc
# ==============================================================
# %package -n rtems-4.11-i386-rtems4.11-gcc
# Summary: GNU cc compiler for i386-rtems4.11
# Group: Development/Tools
# Version: %{gcc_rpmvers}
# Requires: rtems-4.11-i386-rtems4.11-binutils
# Requires: rtems-4.11-i386-rtems4.11-newlib = %{newlib_version}-1%{?dist}
# License: GPL
# %if %build_infos
# Requires: rtems-4.11-gcc-common
# %endif
%description -n rtems-4.11-i386-rtems4.11-gcc
GNU cc compiler for i386-rtems4.11.
# ==============================================================
# rtems-4.11-i386-rtems4.11-gcc-libgcc
# ==============================================================
%package -n rtems-4.11-i386-rtems4.11-gcc-libgcc
Summary: libgcc for i386-rtems4.11-gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-i386-rtems4.11-newlib = %{newlib_version}-1%{?dist}
License: GPL
%description -n rtems-4.11-i386-rtems4.11-gcc-libgcc
libgcc i386-rtems4.11-gcc.
%files -n rtems-4.11-i386-rtems4.11-gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/i386-rtems4.11-gcc.1*
%{_mandir}/man1/i386-rtems4.11-cpp.1*
%{_mandir}/man1/i386-rtems4.11-gcov.1*
%dir %{_bindir}
%{_bindir}/i386-rtems4.11-cpp%{_exeext}
%{_bindir}/i386-rtems4.11-gcc%{_exeext}
%{_bindir}/i386-rtems4.11-gcc-%{gcc_version}%{_exeext}
%{_bindir}/i386-rtems4.11-gcov%{_exeext}
%{_bindir}/i386-rtems4.11-gccbug
%dir %{_libexecdir}
%dir %{_libexecdir}/gcc
%dir %{_libexecdir}/gcc/i386-rtems4.11
%dir %{_libexecdir}/gcc/i386-rtems4.11/%{gcc_version}
%{_libexecdir}/gcc/i386-rtems4.11/%{gcc_version}/cc1%{_exeext}
%{_libexecdir}/gcc/i386-rtems4.11/%{gcc_version}/collect2%{_exeext}
%files -n rtems-4.11-i386-rtems4.11-gcc-libgcc -f build/files.gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_gcclibdir}
%dir %{_gcclibdir}/gcc
%dir %{_gcclibdir}/gcc/i386-rtems4.11
%dir %{_gcclibdir}/gcc/i386-rtems4.11/%{gcc_version}
%dir %{_gcclibdir}/gcc/i386-rtems4.11/%{gcc_version}/include
%if "%{gcc_version}" > "4.0.3"
%if "i386-rtems4.11" != "bfin-rtems4.10"
%if "i386-rtems4.11" != "avr-rtems4.10"
%dir %{_gcclibdir}/gcc/i386-rtems4.11/%{gcc_version}/include/ssp
%endif
%endif
%endif
%if "%{gcc_version}" >= "4.3.0"
%{_gcclibdir}/gcc/i386-rtems4.11/%{gcc_version}/include-fixed
%endif
# ==============================================================
# rtems-4.11-gcc-common
# ==============================================================
%package -n rtems-4.11-gcc-common
Summary: Base package for rtems gcc and newlib C Library
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: GPL
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-gcc-common
GCC files that are shared by all targets.
%files -n rtems-4.11-gcc-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/cpp.info*
%{_infodir}/cppinternals.info*
%{_infodir}/gcc.info*
%{_infodir}/gccint.info*
%{_infodir}/gccinstall.info*
%dir %{_mandir}
%dir %{_mandir}/man7
%{_mandir}/man7/fsf-funding.7*
%{_mandir}/man7/gfdl.7*
%{_mandir}/man7/gpl.7*
%post -n rtems-4.11-gcc-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
%preun -n rtems-4.11-gcc-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
fi
# ==============================================================
# rtems-4.11-i386-rtems4.11-gcc-c++
# ==============================================================
%package -n rtems-4.11-i386-rtems4.11-gcc-c++
Summary: GCC c++ compiler for i386-rtems4.11
Group: Development/Tools
Version: %{gcc_rpmvers}
License: GPL
Requires: rtems-4.11-i386-rtems4.11-gcc-libstdc++ = %{gcc_rpmvers}-%{release}
%if "%{_build}" != "%{_host}"
BuildRequires: rtems-4.11-i386-rtems4.11-gcc-c++ = %{gcc_rpmvers}
%endif
Requires: rtems-4.11-gcc-common
Requires: rtems-4.11-i386-rtems4.11-gcc = %{gcc_rpmvers}-%{release}
%description -n rtems-4.11-i386-rtems4.11-gcc-c++
GCC c++ compiler for i386-rtems4.11.
%package -n rtems-4.11-i386-rtems4.11-gcc-libstdc++
Summary: libstdc++ for i386-rtems4.11
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: GPL
%description -n rtems-4.11-i386-rtems4.11-gcc-libstdc++
%{summary}
%files -n rtems-4.11-i386-rtems4.11-gcc-c++
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/i386-rtems4.11-g++.1*
%dir %{_bindir}
%{_bindir}/i386-rtems4.11-c++%{_exeext}
%{_bindir}/i386-rtems4.11-g++%{_exeext}
%dir %{_libexecdir}
%dir %{_libexecdir}/gcc
%dir %{_libexecdir}/gcc/i386-rtems4.11
%dir %{_libexecdir}/gcc/i386-rtems4.11/%{gcc_version}
%{_libexecdir}/gcc/i386-rtems4.11/%{gcc_version}/cc1plus%{_exeext}
%files -n rtems-4.11-i386-rtems4.11-gcc-libstdc++ -f build/files.g++
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_gcclibdir}
%dir %{_gcclibdir}/gcc
%dir %{_gcclibdir}/gcc/i386-rtems4.11
%dir %{_gcclibdir}/gcc/i386-rtems4.11/%{gcc_version}
%dir %{_gcclibdir}/gcc/i386-rtems4.11/%{gcc_version}/include
%{_gcclibdir}/gcc/i386-rtems4.11/%{gcc_version}/include/c++
# ==============================================================
# rtems-4.11-i386-rtems4.11-newlib
# ==============================================================
%package -n rtems-4.11-i386-rtems4.11-newlib
Summary: C Library (newlib) for i386-rtems4.11
Group: Development/Tools
License: Distributable
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-newlib-common
%description -n rtems-4.11-i386-rtems4.11-newlib
Newlib C Library for i386-rtems4.11.
%files -n rtems-4.11-i386-rtems4.11-newlib -f build/files.newlib
%defattr(-,root,root)
%dir %{_exec_prefix}
%dir %{_exec_prefix}/i386-rtems4.11
%{_exec_prefix}/i386-rtems4.11/include
# ==============================================================
# rtems-4.11-newlib-common
# ==============================================================
%package -n rtems-4.11-newlib-common
Summary: Base package for RTEMS newlib C Library
Group: Development/Tools
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: Distributable
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-newlib-common
newlib files that are shared by all targets.
%files -n rtems-4.11-newlib-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/libc.info*
%{_infodir}/libm.info*
%post -n rtems-4.11-newlib-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
%preun -n rtems-4.11-newlib-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
fi

View File

@@ -0,0 +1,319 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gdb_version 7.0.90
%define gdb_rpmvers %{expand:%(echo 7.0.90 | tr - _)}
Name: rtems-4.11-i386-rtems4.11-gdb
Summary: Gdb for target i386-rtems4.11
Group: Development/Tools
Version: %{gdb_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/gdb
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%define build_sim --enable-sim
%if "%{_build}" != "%{_host}"
# psim doesn't support Cdn-X
%if "i386-rtems4.11" == "powerpc-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%ifos mingw mingw32
# Mingw lacks functions required by the simulator
%if "i386-rtems4.11" == "sparc-rtems4.10"
%define build_sim --disable-sim
%endif
%if "i386-rtems4.11" == "h8300-rtems4.10"
%define build_sim --disable-sim
%endif
%if "%{gdb_version}" >= "6.8.50"
%if "i386-rtems4.11" == "m32c-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "i386-rtems4.11" == "lm32-rtems4.10"
%define build_sim --disable-sim
%endif
%if "i386-rtems4.11" == "mipstx39-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "%{gdb_version}" >= "6.6"
# suse
%if "%{?suse}" >= "10.3"
BuildRequires: libexpat-devel
%else
# Fedora/CentOS/Cygwin/MinGW
BuildRequires: %{_host_rpmprefix}expat-devel
%endif
%endif
%if "%{gdb_version}" < "6.7"
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}termcap-devel
%endif
%bcond_with system_readline
%else
%bcond_without system_readline
%endif
%{?with_system_readline:BuildRequires: %{_host_rpmprefix}readline-devel}
BuildRequires: %{_host_rpmprefix}ncurses-devel
%if "%{gdb_version}" >= "6.8.50"
%if "%{_build}" != "%{_host}"
# Can't build python Cdn-X
%bcond_with python
%else
%bcond_without python
%endif
%endif
%{?with_python:BuildRequires: %{_host_rpmprefix}python-devel}
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
Requires: rtems-4.11-gdb-common
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif
%description
GDB for target i386-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd gdb-%{gdb_version}
%{?PATCH0:%patch0 -p1}
cd ..
# Force using a system-provided libreadline
%{?with_system_readline:rm -f gdb-%{gdb_version}/readline/configure}
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../gdb-%{gdb_version}/configure \
--build=%_build --host=%_host \
--target=i386-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
%{build_sim} \
%{?with_system_readline:--with-system-readline} \
%if "%{gdb_version}" >= "6.6"
--with-expat \
%endif
%if "%{gdb_version}" >= "6.8.50"
%if %{with python}
--with-python \
%else
--without-python \
%endif
%endif
--prefix=%{_prefix} --bindir=%{_bindir} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# These come from other packages
rm -rf $RPM_BUILD_ROOT%{_infodir}/bfd*
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure*
rm -rf $RPM_BUILD_ROOT%{_infodir}/standards*
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# host library, installed to a bogus directory
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libi386-rtems4.11-sim.a
%if "%{gdb_version}" >= "7.0"
# Bug in gdb-7.0, bogusly installs linux-only files
somethinguseful=0
for f in ${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls/*.xml; do
case $f in
*linux.xml) rm -f $f;;
*.xml) somethinguseful=1;;
esac
done
if test $somethinguseful -eq 0; then
rm -rf "${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls"
fi
%endif
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# i386-rtems4.11-gdb
# ==============================================================
# %package -n rtems-4.11-i386-rtems4.11-gdb
# Summary: rtems gdb for i386-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-gdb-common
# %endif
%description -n rtems-4.11-i386-rtems4.11-gdb
GNU gdb targetting i386-rtems4.11.
%files -n rtems-4.11-i386-rtems4.11-gdb
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/i386-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/i386-rtems4.11-*
# ==============================================================
# rtems-4.11-gdb-common
# ==============================================================
%package -n rtems-4.11-gdb-common
Summary: Base package for RTEMS gdbs
Group: Development/Tools
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%{?_with_noarch_subpackages:BuildArch: noarch}
%description -n rtems-4.11-gdb-common
GDB files shared by all targets.
%post -n rtems-4.11-gdb-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
%preun -n rtems-4.11-gdb-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
fi
%files -n rtems-4.11-gdb-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/gdb.info*
%{_infodir}/gdbint.info*
%{_infodir}/stabs.info*
%{_infodir}/annotate.info*

View File

@@ -0,0 +1,3 @@
Makefile
Makefile.in
*.spec.in

View File

@@ -0,0 +1,33 @@
# $Id$
TARGET = lm32-rtems4.11
include $(top_srcdir)/mkspec.am
BINUTILS_VERS = 2.20.1
BINUTILS_PKGVERS = $(BINUTILS_VERS)
BINUTILS_RPMREL = 1
include ../binutils.am
BINUTILS_OPTS +=
GCC_VERS = 4.4.3
GCC_PKGVERS = $(GCC_VERS)
GCC_RPMREL = 1
NEWLIB_VERS = 1.18.0
NEWLIB_PKGVERS = $(NEWLIB_VERS)
NEWLIB_RPMREL = `expr $(GCC_RPMREL)`
include ../gcc.am
GCC_OPTS += --languages=cxx
GDB_VERS = 7.0.90
GDB_PKGVERS = $(GDB_VERS)
GDB_RPMREL = 1
include ../gdb.am
GDB_OPTS +=
# NOTREADY
#CPUKIT_VERS = 4.9.99.0
#CPUKIT_PKGVERS = $(CPUKIT_VERS)-20090206-2
#CPUKIT_RPMREL = 1
#include ../cpukit.am
#CPUKIT_OPTS +=

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}

View File

@@ -0,0 +1,47 @@
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if %build_cxx
%if "%{gcc_version}" == "4.4.3"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%if "%{gcc_version}" == "4.4.2"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%{?_without_sources:NoSource: 1}
%endif
%if %build_fortran
Source2: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-fortran-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 2}
%endif
%if %build_gcj
Source3: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-java-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 3}
%endif
%if %build_gnat
Source4: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-ada-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 4}
%endif
%if %build_objc
Source5: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-objc-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 5}
%endif
%if %build_newlib
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%endif

View File

@@ -0,0 +1,9 @@
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif

View File

@@ -0,0 +1,268 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define binutils_pkgvers 2.20.1
%define binutils_version 2.20.1
%define binutils_rpmvers %{expand:%(echo "2.20.1" | tr - _ )}
Name: rtems-4.11-lm32-rtems4.11-binutils
Summary: Binutils for target lm32-rtems4.11
Group: Development/Tools
Version: %{binutils_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/binutils
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%if "%{binutils_version}" >= "2.18"
# Bug in bfd: Doesn't build without texinfo installed
BuildRequires: texinfo >= 4.2
%else
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
%endif
BuildRequires: flex
BuildRequires: bison
Requires: rtems-4.11-binutils-common
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
%description
Cross binutils for target lm32-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd binutils-%{binutils_pkgvers}
%{?PATCH0:%patch0 -p1}
cd ..
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../binutils-%{binutils_pkgvers}/configure \
--build=%_build --host=%_host \
--target=lm32-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
--prefix=%{_prefix} --bindir=%{_bindir} \
--exec-prefix=%{_exec_prefix} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
make prefix=$RPM_BUILD_ROOT%{_prefix} \
bindir=$RPM_BUILD_ROOT%{_bindir} \
includedir=$RPM_BUILD_ROOT%{_includedir} \
libdir=$RPM_BUILD_ROOT%{_libdir} \
infodir=$RPM_BUILD_ROOT%{_infodir} \
mandir=$RPM_BUILD_ROOT%{_mandir} \
exec_prefix=$RPM_BUILD_ROOT%{_exec_prefix} \
install-info
# Dropped in FSF-binutils-2.9.5, but Cygwin still ships it.
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure.info*
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# binutils does not install share/locale, however it uses it
mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/locale
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# manpages without corresponding tools
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/lm32-rtems4.11-dlltool%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/lm32-rtems4.11-dlltool*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/lm32-rtems4.11-nlmconv%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/lm32-rtems4.11-nlmconv*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/lm32-rtems4.11-windres%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/lm32-rtems4.11-windres*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/lm32-rtems4.11-windmc%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/lm32-rtems4.11-windmc*
fi
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# lm32-rtems4.11-binutils
# ==============================================================
# %package -n rtems-4.11-lm32-rtems4.11-binutils
# Summary: rtems binutils for lm32-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-binutils-common
# %endif
%description -n rtems-4.11-lm32-rtems4.11-binutils
GNU binutils targetting lm32-rtems4.11.
%files -n rtems-4.11-lm32-rtems4.11-binutils
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_datarootdir}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/lm32-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/lm32-rtems4.11-*
%dir %{_exec_prefix}/lm32-rtems4.11
%dir %{_exec_prefix}/lm32-rtems4.11/bin
%{_exec_prefix}/lm32-rtems4.11/bin/*
%dir %{_exec_prefix}/lm32-rtems4.11/lib
%{_exec_prefix}/lm32-rtems4.11/lib/ldscripts
# ==============================================================
# rtems-4.11-binutils-common
# ==============================================================
%package -n rtems-4.11-binutils-common
Summary: Base package for RTEMS binutils
Group: Development/Tools
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-binutils-common
RTEMS is an open source operating system for embedded systems.
This is the base for binutils regardless of target CPU.
%post -n rtems-4.11-binutils-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
%preun -n rtems-4.11-binutils-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
fi
%files -n rtems-4.11-binutils-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/as.info*
%{_infodir}/bfd.info*
%{_infodir}/binutils.info*
%{_infodir}/ld.info*
%{_infodir}/standards.info*
%{_infodir}/gprof.info*
%dir %{_prefix}/share
%dir %{_prefix}/share/locale

View File

@@ -0,0 +1,716 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gcc_pkgvers 4.4.3
%define gcc_version 4.4.3
%define gcc_rpmvers %{expand:%(echo "4.4.3" | tr - _ )}
%define newlib_pkgvers 1.18.0
%define newlib_version 1.18.0
Name: rtems-4.11-lm32-rtems4.11-gcc
Summary: lm32-rtems4.11 gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://gcc.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%define _use_internal_dependency_generator 0
BuildRequires: %{_host_rpmprefix}gcc
%if "%{gcc_version}" >= "4.3.0"
%define _gmp_minvers 4.1
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%if %{defined _gmp_minvers}
BuildRequires: gmp-devel >= %{_gmp_minvers}
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}gmp-devel >= %{_gmp_minvers}
%endif
%endif
%if "%{gcc_version}" >= "4.3.3"
%define _cloog_minvers 0.15
%endif
%if %{defined _cloog_minvers}
%{?fc11:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc12:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc13:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?suse11_2:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%{?suse11_1:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%endif
%if "%{gcc_version}" >= "4.4.0"
%define _mpfr_minvers 2.3.2
%define mpfr_version 2.4.1
%else
%if "%{gcc_version}" >= "4.3.0"
%define _mpfr_minvers 2.3.1
%define mpfr_version 2.3.2
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%endif
%if %{defined _mpfr_minvers}
# FIXME: This is an ugly cludge
%{?fc11:%global mpfr_provided 2.4.1}
%{?fc12:%global mpfr_provided 2.4.1}
%{?fc13:%global mpfr_provided 2.4.1}
%{?suse11_0:%global mpfr_provided 2.3.1}
%{?suse11_1:%global mpfr_provided 2.3.2}
%{?suse11_2:%global mpfr_provided 2.4.1}
%{?cygwin:%global mpfr_provided 2.4.1}
%{?mingw32:%global mpfr_provided %{nil}}
%if %{defined mpfr_provided}
%if "%{mpfr_provided}" < "%{_mpfr_minvers}"
%define _build_mpfr 1
%else
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}mpfr-devel >= %{_mpfr_minvers}
%else
BuildRequires: mpfr-devel >= %{_mpfr_minvers}
%endif
%endif
%else
%define _build_mpfr 1
%endif
%endif
%if "%{_build}" != "%{_host}"
BuildRequires: rtems-4.11-lm32-rtems4.11-gcc = %{gcc_rpmvers}
%endif
%if "%{gcc_version}" >= "4.2.0"
BuildRequires: flex bison
%endif
BuildRequires: texinfo >= 4.2
BuildRequires: rtems-4.11-lm32-rtems4.11-binutils
Requires: rtems-4.11-gcc-common
Requires: rtems-4.11-lm32-rtems4.11-binutils
Requires: rtems-4.11-lm32-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
Requires: rtems-4.11-lm32-rtems4.11-newlib = %{newlib_version}-1%{?dist}
%define _gcclibdir %{_prefix}/lib
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if "%{gcc_version}" == "4.4.3"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%if "%{gcc_version}" == "4.4.2"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%{?_without_sources:NoSource: 1}
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%if "%{gcc_version}" >= "4.3.0"
Source60: http://www.mpfr.org/mpfr-current/mpfr-%{mpfr_version}.tar.bz2
%endif
%description
Cross gcc for lm32-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%{?PATCH0:%patch0 -p0}
%setup -q -T -D -n %{name}-%{version} -a1
%{?PATCH1:%patch1 -p0}
%setup -q -T -D -n %{name}-%{version} -a50
cd newlib-%{newlib_version}
%{?PATCH50:%patch50 -p1}
cd ..
# Copy the C library into gcc's source tree
ln -s ../newlib-%{newlib_version}/newlib gcc-%{gcc_pkgvers}
%if 0%{?_build_mpfr}
%setup -q -T -D -n %{name}-%{version} -a60
%{?PATCH60:%patch60 -p1}
# Build mpfr one-tree style
ln -s ../mpfr-%{mpfr_version} gcc-%{gcc_pkgvers}/mpfr
%endif
echo "RTEMS gcc-%{gcc_version}-1%{?dist}/newlib-%{newlib_version}-1%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
# Fix timestamps
cd gcc-%{gcc_pkgvers}
contrib/gcc_update --touch
cd ..
%build
mkdir -p build
cd build
languages="c"
languages="$languages,c++"
export PATH="%{_bindir}:${PATH}"
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
CC="%{_host}-gcc ${RPM_OPT_FLAGS}" \
%else
# gcc is not ready to be compiled with -std=gnu99
CC=$(echo "%{__cc} ${RPM_OPT_FLAGS}" | sed -e 's,-std=gnu99 ,,') \
%endif
../gcc-%{gcc_pkgvers}/configure \
--prefix=%{_prefix} \
--bindir=%{_bindir} \
--exec_prefix=%{_exec_prefix} \
--includedir=%{_includedir} \
--libdir=%{_gcclibdir} \
--libexecdir=%{_libexecdir} \
--mandir=%{_mandir} \
--infodir=%{_infodir} \
--datadir=%{_datadir} \
--build=%_build --host=%_host \
--target=lm32-rtems4.11 \
--disable-libstdcxx-pch \
--with-gnu-as --with-gnu-ld --verbose \
--with-newlib \
--with-system-zlib \
--disable-nls --without-included-gettext \
--disable-win32-registry \
--enable-version-specific-runtime-libs \
--enable-threads \
--enable-newlib-io-c99-formats \
--enable-languages="$languages" $optargs
%if "%_host" != "%_build"
# Bug in gcc-3.2.1:
# Somehow, gcc doesn't get syslimits.h right for Cdn-Xs
mkdir -p gcc/include
cp ../gcc-%{gcc_pkgvers}/gcc/gsyslimits.h gcc/include/syslimits.h
%endif
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
cd build/lm32-rtems4.11/newlib
make DESTDIR=$RPM_BUILD_ROOT install-info
cd ../../..
%if "%{gcc_version}" <= "4.1.2"
# Misplaced header file
if test -f $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h; then
mv $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h \
$RPM_BUILD_ROOT%{_gcclibdir}/gcc/lm32-rtems4.11/%{gcc_version}/include/
fi
%endif
# host library
%if "%{gcc_version}" >= "4.2.0"
# libiberty doesn't honor --libdir, but always installs to a
# magically guessed _libdir
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty.a
%else
# libiberty installs to --libdir=...
rm -f ${RPM_BUILD_ROOT}%{_gcclibdir}/libiberty.a
%endif
# We use the version from binutils
rm -f $RPM_BUILD_ROOT%{_bindir}/lm32-rtems4.11-c++filt%{_exeext}
# We don't ship info/dir
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# Bug in gcc-3.4.0pre
rm -f $RPM_BUILD_ROOT%{_bindir}/lm32-rtems4.11-lm32-rtems4.11-gcjh%{_exeext}
# Bug in gcc-3.3.x/gcc-3.4.x: Despite we don't need fixincludes, it installs
# the fixinclude-install-tools
rm -rf ${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/lm32-rtems4.11/%{gcc_version}/install-tools
rm -rf ${RPM_BUILD_ROOT}%{_libexecdir}/gcc/lm32-rtems4.11/%{gcc_version}/install-tools
# Bug in gcc > 4.1.0: Installs an unused, empty directory
if test -d ${RPM_BUILD_ROOT}%{_prefix}/lm32-rtems4.11/include/bits; then
rmdir ${RPM_BUILD_ROOT}%{_prefix}/lm32-rtems4.11/include/bits
fi
# Collect multilib subdirectories
multilibs=`build/gcc/xgcc -Bbuild/gcc/ --print-multi-lib | sed -e 's,;.*$,,'`
echo "%defattr(-,root,root,-)" > build/files.newlib
TGTDIR="%{_exec_prefix}/lm32-rtems4.11/lib"
for i in $multilibs; do
case $i in
\.) echo "%dir ${TGTDIR}" >> build/files.newlib
;;
*) echo "%dir ${TGTDIR}/$i" >> build/files.newlib
;;
esac
done
rm -f dirs ;
echo "%defattr(-,root,root,-)" >> dirs
TGTDIR="%{_gcclibdir}/gcc/lm32-rtems4.11/%{gcc_version}"
for i in $multilibs; do
case $i in
\.) ;; # ignore, handled elsewhere
*) echo "%dir ${TGTDIR}/$i" >> dirs
;;
esac
done
# Collect files to go into different packages
cp dirs build/files.gcc
cp dirs build/files.gfortran
cp dirs build/files.objc
cp dirs build/files.gcj
cp dirs build/files.g++
TGTDIR="%{_gcclibdir}/gcc/lm32-rtems4.11/%{gcc_version}"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i ;; # ignore: gcc produces bogus libtool libs
*f771) ;;
*f951) ;;
*cc1) ;;
*cc1obj) ;;
*cc1plus) ;; # ignore: explicitly put into rpm elsewhere
*collect2) ;;
*libobjc*) echo "$i" >> build/files.objc ;;
*include/objc*) ;;
*include/g++*);;
*include/c++*);;
*include-fixed/*);;
*finclude/*);;
*adainclude*);;
*adalib*);;
*gnat1);;
*jc1) ;;
*jvgenmain) ;;
*/libgfortran*.*) echo "$i" >> build/files.gfortran ;;
*/libstdc++.*) echo "$i" >> build/files.g++ ;;
*/libsupc++.*) echo "$i" >> build/files.g++ ;;
*) echo "$i" >> build/files.gcc ;;
esac
done
TGTDIR="%{_exec_prefix}/lm32-rtems4.11/lib"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i;; # ignore - gcc produces bogus libtool libs
*libiberty.a) rm ${RPM_BUILD_ROOT}/$i ;; # ignore - GPL'ed
# all other files belong to newlib
*) echo "$i" >> build/files.newlib ;;
esac
done
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/lm32-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/lm32-rtems4.11/'} | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
%define __find_provides %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/lm32-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/lm32-rtems4.11/'} | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%define __find_requires %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%ifnarch noarch
# Extract %%__debug_install_post into debug_install_post~
cat << \EOF > debug_install_post~
%__debug_install_post
EOF
# Generate customized debug_install_post script
cat debug_install_post~ | while read a x y; do
case $a in
# Prevent find-debuginfo.sh* from trying to handle foreign binaries
*/find-debuginfo.sh)
b=$(basename $a)
sed -e 's,find "$RPM_BUILD_ROOT" !,find "$RPM_BUILD_ROOT"%_bindir "$RPM_BUILD_ROOT"%_libexecdir !,' $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm/find-debuginfo.sh,./find-debuginfo.sh,' \
< debug_install_post~ > debug_install_post
%define __debug_install_post . ./debug_install_post
%endif
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# rtems-4.11-lm32-rtems4.11-gcc
# ==============================================================
# %package -n rtems-4.11-lm32-rtems4.11-gcc
# Summary: GNU cc compiler for lm32-rtems4.11
# Group: Development/Tools
# Version: %{gcc_rpmvers}
# Requires: rtems-4.11-lm32-rtems4.11-binutils
# Requires: rtems-4.11-lm32-rtems4.11-newlib = %{newlib_version}-1%{?dist}
# License: GPL
# %if %build_infos
# Requires: rtems-4.11-gcc-common
# %endif
%description -n rtems-4.11-lm32-rtems4.11-gcc
GNU cc compiler for lm32-rtems4.11.
# ==============================================================
# rtems-4.11-lm32-rtems4.11-gcc-libgcc
# ==============================================================
%package -n rtems-4.11-lm32-rtems4.11-gcc-libgcc
Summary: libgcc for lm32-rtems4.11-gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-lm32-rtems4.11-newlib = %{newlib_version}-1%{?dist}
License: GPL
%description -n rtems-4.11-lm32-rtems4.11-gcc-libgcc
libgcc lm32-rtems4.11-gcc.
%files -n rtems-4.11-lm32-rtems4.11-gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/lm32-rtems4.11-gcc.1*
%{_mandir}/man1/lm32-rtems4.11-cpp.1*
%{_mandir}/man1/lm32-rtems4.11-gcov.1*
%dir %{_bindir}
%{_bindir}/lm32-rtems4.11-cpp%{_exeext}
%{_bindir}/lm32-rtems4.11-gcc%{_exeext}
%{_bindir}/lm32-rtems4.11-gcc-%{gcc_version}%{_exeext}
%{_bindir}/lm32-rtems4.11-gcov%{_exeext}
%{_bindir}/lm32-rtems4.11-gccbug
%dir %{_libexecdir}
%dir %{_libexecdir}/gcc
%dir %{_libexecdir}/gcc/lm32-rtems4.11
%dir %{_libexecdir}/gcc/lm32-rtems4.11/%{gcc_version}
%{_libexecdir}/gcc/lm32-rtems4.11/%{gcc_version}/cc1%{_exeext}
%{_libexecdir}/gcc/lm32-rtems4.11/%{gcc_version}/collect2%{_exeext}
%files -n rtems-4.11-lm32-rtems4.11-gcc-libgcc -f build/files.gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_gcclibdir}
%dir %{_gcclibdir}/gcc
%dir %{_gcclibdir}/gcc/lm32-rtems4.11
%dir %{_gcclibdir}/gcc/lm32-rtems4.11/%{gcc_version}
%dir %{_gcclibdir}/gcc/lm32-rtems4.11/%{gcc_version}/include
%if "%{gcc_version}" > "4.0.3"
%if "lm32-rtems4.11" != "bfin-rtems4.10"
%if "lm32-rtems4.11" != "avr-rtems4.10"
%dir %{_gcclibdir}/gcc/lm32-rtems4.11/%{gcc_version}/include/ssp
%endif
%endif
%endif
%if "%{gcc_version}" >= "4.3.0"
%{_gcclibdir}/gcc/lm32-rtems4.11/%{gcc_version}/include-fixed
%endif
# ==============================================================
# rtems-4.11-gcc-common
# ==============================================================
%package -n rtems-4.11-gcc-common
Summary: Base package for rtems gcc and newlib C Library
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: GPL
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-gcc-common
GCC files that are shared by all targets.
%files -n rtems-4.11-gcc-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/cpp.info*
%{_infodir}/cppinternals.info*
%{_infodir}/gcc.info*
%{_infodir}/gccint.info*
%{_infodir}/gccinstall.info*
%dir %{_mandir}
%dir %{_mandir}/man7
%{_mandir}/man7/fsf-funding.7*
%{_mandir}/man7/gfdl.7*
%{_mandir}/man7/gpl.7*
%post -n rtems-4.11-gcc-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
%preun -n rtems-4.11-gcc-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
fi
# ==============================================================
# rtems-4.11-lm32-rtems4.11-gcc-c++
# ==============================================================
%package -n rtems-4.11-lm32-rtems4.11-gcc-c++
Summary: GCC c++ compiler for lm32-rtems4.11
Group: Development/Tools
Version: %{gcc_rpmvers}
License: GPL
Requires: rtems-4.11-lm32-rtems4.11-gcc-libstdc++ = %{gcc_rpmvers}-%{release}
%if "%{_build}" != "%{_host}"
BuildRequires: rtems-4.11-lm32-rtems4.11-gcc-c++ = %{gcc_rpmvers}
%endif
Requires: rtems-4.11-gcc-common
Requires: rtems-4.11-lm32-rtems4.11-gcc = %{gcc_rpmvers}-%{release}
%description -n rtems-4.11-lm32-rtems4.11-gcc-c++
GCC c++ compiler for lm32-rtems4.11.
%package -n rtems-4.11-lm32-rtems4.11-gcc-libstdc++
Summary: libstdc++ for lm32-rtems4.11
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: GPL
%description -n rtems-4.11-lm32-rtems4.11-gcc-libstdc++
%{summary}
%files -n rtems-4.11-lm32-rtems4.11-gcc-c++
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/lm32-rtems4.11-g++.1*
%dir %{_bindir}
%{_bindir}/lm32-rtems4.11-c++%{_exeext}
%{_bindir}/lm32-rtems4.11-g++%{_exeext}
%dir %{_libexecdir}
%dir %{_libexecdir}/gcc
%dir %{_libexecdir}/gcc/lm32-rtems4.11
%dir %{_libexecdir}/gcc/lm32-rtems4.11/%{gcc_version}
%{_libexecdir}/gcc/lm32-rtems4.11/%{gcc_version}/cc1plus%{_exeext}
%files -n rtems-4.11-lm32-rtems4.11-gcc-libstdc++ -f build/files.g++
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_gcclibdir}
%dir %{_gcclibdir}/gcc
%dir %{_gcclibdir}/gcc/lm32-rtems4.11
%dir %{_gcclibdir}/gcc/lm32-rtems4.11/%{gcc_version}
%dir %{_gcclibdir}/gcc/lm32-rtems4.11/%{gcc_version}/include
%{_gcclibdir}/gcc/lm32-rtems4.11/%{gcc_version}/include/c++
# ==============================================================
# rtems-4.11-lm32-rtems4.11-newlib
# ==============================================================
%package -n rtems-4.11-lm32-rtems4.11-newlib
Summary: C Library (newlib) for lm32-rtems4.11
Group: Development/Tools
License: Distributable
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-newlib-common
%description -n rtems-4.11-lm32-rtems4.11-newlib
Newlib C Library for lm32-rtems4.11.
%files -n rtems-4.11-lm32-rtems4.11-newlib -f build/files.newlib
%defattr(-,root,root)
%dir %{_exec_prefix}
%dir %{_exec_prefix}/lm32-rtems4.11
%{_exec_prefix}/lm32-rtems4.11/include
# ==============================================================
# rtems-4.11-newlib-common
# ==============================================================
%package -n rtems-4.11-newlib-common
Summary: Base package for RTEMS newlib C Library
Group: Development/Tools
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: Distributable
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-newlib-common
newlib files that are shared by all targets.
%files -n rtems-4.11-newlib-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/libc.info*
%{_infodir}/libm.info*
%post -n rtems-4.11-newlib-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
%preun -n rtems-4.11-newlib-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
fi

View File

@@ -0,0 +1,319 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gdb_version 7.0.90
%define gdb_rpmvers %{expand:%(echo 7.0.90 | tr - _)}
Name: rtems-4.11-lm32-rtems4.11-gdb
Summary: Gdb for target lm32-rtems4.11
Group: Development/Tools
Version: %{gdb_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/gdb
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%define build_sim --enable-sim
%if "%{_build}" != "%{_host}"
# psim doesn't support Cdn-X
%if "lm32-rtems4.11" == "powerpc-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%ifos mingw mingw32
# Mingw lacks functions required by the simulator
%if "lm32-rtems4.11" == "sparc-rtems4.10"
%define build_sim --disable-sim
%endif
%if "lm32-rtems4.11" == "h8300-rtems4.10"
%define build_sim --disable-sim
%endif
%if "%{gdb_version}" >= "6.8.50"
%if "lm32-rtems4.11" == "m32c-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "lm32-rtems4.11" == "lm32-rtems4.10"
%define build_sim --disable-sim
%endif
%if "lm32-rtems4.11" == "mipstx39-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "%{gdb_version}" >= "6.6"
# suse
%if "%{?suse}" >= "10.3"
BuildRequires: libexpat-devel
%else
# Fedora/CentOS/Cygwin/MinGW
BuildRequires: %{_host_rpmprefix}expat-devel
%endif
%endif
%if "%{gdb_version}" < "6.7"
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}termcap-devel
%endif
%bcond_with system_readline
%else
%bcond_without system_readline
%endif
%{?with_system_readline:BuildRequires: %{_host_rpmprefix}readline-devel}
BuildRequires: %{_host_rpmprefix}ncurses-devel
%if "%{gdb_version}" >= "6.8.50"
%if "%{_build}" != "%{_host}"
# Can't build python Cdn-X
%bcond_with python
%else
%bcond_without python
%endif
%endif
%{?with_python:BuildRequires: %{_host_rpmprefix}python-devel}
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
Requires: rtems-4.11-gdb-common
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif
%description
GDB for target lm32-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd gdb-%{gdb_version}
%{?PATCH0:%patch0 -p1}
cd ..
# Force using a system-provided libreadline
%{?with_system_readline:rm -f gdb-%{gdb_version}/readline/configure}
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../gdb-%{gdb_version}/configure \
--build=%_build --host=%_host \
--target=lm32-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
%{build_sim} \
%{?with_system_readline:--with-system-readline} \
%if "%{gdb_version}" >= "6.6"
--with-expat \
%endif
%if "%{gdb_version}" >= "6.8.50"
%if %{with python}
--with-python \
%else
--without-python \
%endif
%endif
--prefix=%{_prefix} --bindir=%{_bindir} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# These come from other packages
rm -rf $RPM_BUILD_ROOT%{_infodir}/bfd*
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure*
rm -rf $RPM_BUILD_ROOT%{_infodir}/standards*
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# host library, installed to a bogus directory
rm -f ${RPM_BUILD_ROOT}%{_libdir}/liblm32-rtems4.11-sim.a
%if "%{gdb_version}" >= "7.0"
# Bug in gdb-7.0, bogusly installs linux-only files
somethinguseful=0
for f in ${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls/*.xml; do
case $f in
*linux.xml) rm -f $f;;
*.xml) somethinguseful=1;;
esac
done
if test $somethinguseful -eq 0; then
rm -rf "${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls"
fi
%endif
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# lm32-rtems4.11-gdb
# ==============================================================
# %package -n rtems-4.11-lm32-rtems4.11-gdb
# Summary: rtems gdb for lm32-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-gdb-common
# %endif
%description -n rtems-4.11-lm32-rtems4.11-gdb
GNU gdb targetting lm32-rtems4.11.
%files -n rtems-4.11-lm32-rtems4.11-gdb
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/lm32-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/lm32-rtems4.11-*
# ==============================================================
# rtems-4.11-gdb-common
# ==============================================================
%package -n rtems-4.11-gdb-common
Summary: Base package for RTEMS gdbs
Group: Development/Tools
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%{?_with_noarch_subpackages:BuildArch: noarch}
%description -n rtems-4.11-gdb-common
GDB files shared by all targets.
%post -n rtems-4.11-gdb-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
%preun -n rtems-4.11-gdb-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
fi
%files -n rtems-4.11-gdb-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/gdb.info*
%{_infodir}/gdbint.info*
%{_infodir}/stabs.info*
%{_infodir}/annotate.info*

View File

@@ -0,0 +1,3 @@
Makefile
Makefile.in
*.spec.in

View File

@@ -0,0 +1,32 @@
# $Id$
TARGET = m32c-rtems4.11
include $(top_srcdir)/mkspec.am
BINUTILS_VERS = 2.20.1
BINUTILS_PKGVERS = $(BINUTILS_VERS)
BINUTILS_RPMREL = 1
include ../binutils.am
BINUTILS_OPTS +=
GCC_VERS = 4.4.3
GCC_PKGVERS = $(GCC_VERS)
GCC_RPMREL = 1
NEWLIB_VERS = 1.18.0
NEWLIB_PKGVERS = $(NEWLIB_VERS)
NEWLIB_RPMREL = `expr $(GCC_RPMREL)`
include ../gcc.am
GCC_OPTS +=
GDB_VERS = 7.0.90
GDB_PKGVERS = $(GDB_VERS)
GDB_RPMREL = 1
include ../gdb.am
GDB_OPTS +=
CPUKIT_VERS = 4.9.99.0
CPUKIT_PKGVERS = $(CPUKIT_VERS)-20090206-2
CPUKIT_RPMREL = 1
include ../cpukit.am
CPUKIT_OPTS +=

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}

View File

@@ -0,0 +1,47 @@
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if %build_cxx
%if "%{gcc_version}" == "4.4.3"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%if "%{gcc_version}" == "4.4.2"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%{?_without_sources:NoSource: 1}
%endif
%if %build_fortran
Source2: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-fortran-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 2}
%endif
%if %build_gcj
Source3: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-java-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 3}
%endif
%if %build_gnat
Source4: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-ada-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 4}
%endif
%if %build_objc
Source5: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-objc-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 5}
%endif
%if %build_newlib
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%endif

View File

@@ -0,0 +1,9 @@
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif

View File

@@ -0,0 +1,268 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define binutils_pkgvers 2.20.1
%define binutils_version 2.20.1
%define binutils_rpmvers %{expand:%(echo "2.20.1" | tr - _ )}
Name: rtems-4.11-m32c-rtems4.11-binutils
Summary: Binutils for target m32c-rtems4.11
Group: Development/Tools
Version: %{binutils_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/binutils
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%if "%{binutils_version}" >= "2.18"
# Bug in bfd: Doesn't build without texinfo installed
BuildRequires: texinfo >= 4.2
%else
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
%endif
BuildRequires: flex
BuildRequires: bison
Requires: rtems-4.11-binutils-common
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
%description
Cross binutils for target m32c-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd binutils-%{binutils_pkgvers}
%{?PATCH0:%patch0 -p1}
cd ..
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../binutils-%{binutils_pkgvers}/configure \
--build=%_build --host=%_host \
--target=m32c-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
--prefix=%{_prefix} --bindir=%{_bindir} \
--exec-prefix=%{_exec_prefix} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
make prefix=$RPM_BUILD_ROOT%{_prefix} \
bindir=$RPM_BUILD_ROOT%{_bindir} \
includedir=$RPM_BUILD_ROOT%{_includedir} \
libdir=$RPM_BUILD_ROOT%{_libdir} \
infodir=$RPM_BUILD_ROOT%{_infodir} \
mandir=$RPM_BUILD_ROOT%{_mandir} \
exec_prefix=$RPM_BUILD_ROOT%{_exec_prefix} \
install-info
# Dropped in FSF-binutils-2.9.5, but Cygwin still ships it.
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure.info*
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# binutils does not install share/locale, however it uses it
mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/locale
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# manpages without corresponding tools
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/m32c-rtems4.11-dlltool%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/m32c-rtems4.11-dlltool*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/m32c-rtems4.11-nlmconv%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/m32c-rtems4.11-nlmconv*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/m32c-rtems4.11-windres%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/m32c-rtems4.11-windres*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/m32c-rtems4.11-windmc%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/m32c-rtems4.11-windmc*
fi
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# m32c-rtems4.11-binutils
# ==============================================================
# %package -n rtems-4.11-m32c-rtems4.11-binutils
# Summary: rtems binutils for m32c-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-binutils-common
# %endif
%description -n rtems-4.11-m32c-rtems4.11-binutils
GNU binutils targetting m32c-rtems4.11.
%files -n rtems-4.11-m32c-rtems4.11-binutils
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_datarootdir}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/m32c-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/m32c-rtems4.11-*
%dir %{_exec_prefix}/m32c-rtems4.11
%dir %{_exec_prefix}/m32c-rtems4.11/bin
%{_exec_prefix}/m32c-rtems4.11/bin/*
%dir %{_exec_prefix}/m32c-rtems4.11/lib
%{_exec_prefix}/m32c-rtems4.11/lib/ldscripts
# ==============================================================
# rtems-4.11-binutils-common
# ==============================================================
%package -n rtems-4.11-binutils-common
Summary: Base package for RTEMS binutils
Group: Development/Tools
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-binutils-common
RTEMS is an open source operating system for embedded systems.
This is the base for binutils regardless of target CPU.
%post -n rtems-4.11-binutils-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
%preun -n rtems-4.11-binutils-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
fi
%files -n rtems-4.11-binutils-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/as.info*
%{_infodir}/bfd.info*
%{_infodir}/binutils.info*
%{_infodir}/ld.info*
%{_infodir}/standards.info*
%{_infodir}/gprof.info*
%dir %{_prefix}/share
%dir %{_prefix}/share/locale

View File

@@ -0,0 +1,158 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define cpukit_pkgvers 4.9.99.0-20090206-2
%define cpukit_version 4.9.99.0
%define cpukit_rpmvers %{expand:%(echo "4.9.99.0-20090206-2" | tr - . )}
Name: rtems-4.11-m32c-rtems4.11-cpukit
Summary: m32c-rtems4.11 cpukit
Group: Development/Tools
Version: %{cpukit_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://cpukit.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
%define debug_package %{nil}
BuildRequires: rtems-4.11-m32c-rtems4.11-gcc
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}
%description
RTEMS cpukit for m32c-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
../rtems-%{cpukit_version}/configure \
--prefix=%{_prefix} \
--target=m32c-rtems4.11 \
--enable-multilib \
--disable-rtemsbsp
make all RTEMS_BSP=
cd ..
%install
rm -rf $RPM_BUILD_ROOT
export PATH="%{_bindir}:${PATH}"
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
rm -rf $RPM_BUILD_ROOT%{_prefix}/share/man
rm -rf $RPM_BUILD_ROOT%{_prefix}/bin
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{version}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m32c-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/m32c-rtems4.11/' | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-provides
%define __find_provides %{_builddir}/%{name}-%{version}/find-provides
cat << EOF > %{_builddir}/%{name}-%{version}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m32c-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/m32c-rtems4.11/' | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-requires
%define __find_requires %{_builddir}/%{name}-%{version}/find-requires
%clean
rm -rf $RPM_BUILD_ROOT
%description -n rtems-4.11-m32c-rtems4.11-cpukit
RTEMS cpukit for target m32c-rtems4.11.
%files -n rtems-4.11-m32c-rtems4.11-cpukit
%defattr(-,root,root)
%dir %{_prefix}
%{_prefix}/m32c-rtems4.11
# Violates the FHS
%exclude %{_prefix}/make

View File

@@ -0,0 +1,645 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gcc_pkgvers 4.4.3
%define gcc_version 4.4.3
%define gcc_rpmvers %{expand:%(echo "4.4.3" | tr - _ )}
%define newlib_pkgvers 1.18.0
%define newlib_version 1.18.0
Name: rtems-4.11-m32c-rtems4.11-gcc
Summary: m32c-rtems4.11 gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://gcc.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%define _use_internal_dependency_generator 0
BuildRequires: %{_host_rpmprefix}gcc
%if "%{gcc_version}" >= "4.3.0"
%define _gmp_minvers 4.1
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%if %{defined _gmp_minvers}
BuildRequires: gmp-devel >= %{_gmp_minvers}
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}gmp-devel >= %{_gmp_minvers}
%endif
%endif
%if "%{gcc_version}" >= "4.3.3"
%define _cloog_minvers 0.15
%endif
%if %{defined _cloog_minvers}
%{?fc11:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc12:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc13:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?suse11_2:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%{?suse11_1:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%endif
%if "%{gcc_version}" >= "4.4.0"
%define _mpfr_minvers 2.3.2
%define mpfr_version 2.4.1
%else
%if "%{gcc_version}" >= "4.3.0"
%define _mpfr_minvers 2.3.1
%define mpfr_version 2.3.2
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%endif
%if %{defined _mpfr_minvers}
# FIXME: This is an ugly cludge
%{?fc11:%global mpfr_provided 2.4.1}
%{?fc12:%global mpfr_provided 2.4.1}
%{?fc13:%global mpfr_provided 2.4.1}
%{?suse11_0:%global mpfr_provided 2.3.1}
%{?suse11_1:%global mpfr_provided 2.3.2}
%{?suse11_2:%global mpfr_provided 2.4.1}
%{?cygwin:%global mpfr_provided 2.4.1}
%{?mingw32:%global mpfr_provided %{nil}}
%if %{defined mpfr_provided}
%if "%{mpfr_provided}" < "%{_mpfr_minvers}"
%define _build_mpfr 1
%else
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}mpfr-devel >= %{_mpfr_minvers}
%else
BuildRequires: mpfr-devel >= %{_mpfr_minvers}
%endif
%endif
%else
%define _build_mpfr 1
%endif
%endif
%if "%{_build}" != "%{_host}"
BuildRequires: rtems-4.11-m32c-rtems4.11-gcc = %{gcc_rpmvers}
%endif
%if "%{gcc_version}" >= "4.2.0"
BuildRequires: flex bison
%endif
BuildRequires: texinfo >= 4.2
BuildRequires: rtems-4.11-m32c-rtems4.11-binutils
Requires: rtems-4.11-gcc-common
Requires: rtems-4.11-m32c-rtems4.11-binutils
Requires: rtems-4.11-m32c-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
Requires: rtems-4.11-m32c-rtems4.11-newlib = %{newlib_version}-1%{?dist}
%define _gcclibdir %{_prefix}/lib
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%if "%{gcc_version}" >= "4.3.0"
Source60: http://www.mpfr.org/mpfr-current/mpfr-%{mpfr_version}.tar.bz2
%endif
%description
Cross gcc for m32c-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%{?PATCH0:%patch0 -p0}
%setup -q -T -D -n %{name}-%{version} -a50
cd newlib-%{newlib_version}
%{?PATCH50:%patch50 -p1}
cd ..
# Copy the C library into gcc's source tree
ln -s ../newlib-%{newlib_version}/newlib gcc-%{gcc_pkgvers}
%if 0%{?_build_mpfr}
%setup -q -T -D -n %{name}-%{version} -a60
%{?PATCH60:%patch60 -p1}
# Build mpfr one-tree style
ln -s ../mpfr-%{mpfr_version} gcc-%{gcc_pkgvers}/mpfr
%endif
echo "RTEMS gcc-%{gcc_version}-1%{?dist}/newlib-%{newlib_version}-1%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
# Fix timestamps
cd gcc-%{gcc_pkgvers}
contrib/gcc_update --touch
cd ..
%build
mkdir -p build
cd build
languages="c"
export PATH="%{_bindir}:${PATH}"
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
CC="%{_host}-gcc ${RPM_OPT_FLAGS}" \
%else
# gcc is not ready to be compiled with -std=gnu99
CC=$(echo "%{__cc} ${RPM_OPT_FLAGS}" | sed -e 's,-std=gnu99 ,,') \
%endif
../gcc-%{gcc_pkgvers}/configure \
--prefix=%{_prefix} \
--bindir=%{_bindir} \
--exec_prefix=%{_exec_prefix} \
--includedir=%{_includedir} \
--libdir=%{_gcclibdir} \
--libexecdir=%{_libexecdir} \
--mandir=%{_mandir} \
--infodir=%{_infodir} \
--datadir=%{_datadir} \
--build=%_build --host=%_host \
--target=m32c-rtems4.11 \
--disable-libstdcxx-pch \
--with-gnu-as --with-gnu-ld --verbose \
--with-newlib \
--with-system-zlib \
--disable-nls --without-included-gettext \
--disable-win32-registry \
--enable-version-specific-runtime-libs \
--enable-threads \
--enable-newlib-io-c99-formats \
--enable-languages="$languages" $optargs
%if "%_host" != "%_build"
# Bug in gcc-3.2.1:
# Somehow, gcc doesn't get syslimits.h right for Cdn-Xs
mkdir -p gcc/include
cp ../gcc-%{gcc_pkgvers}/gcc/gsyslimits.h gcc/include/syslimits.h
%endif
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
cd build/m32c-rtems4.11/newlib
make DESTDIR=$RPM_BUILD_ROOT install-info
cd ../../..
%if "%{gcc_version}" <= "4.1.2"
# Misplaced header file
if test -f $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h; then
mv $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h \
$RPM_BUILD_ROOT%{_gcclibdir}/gcc/m32c-rtems4.11/%{gcc_version}/include/
fi
%endif
# host library
%if "%{gcc_version}" >= "4.2.0"
# libiberty doesn't honor --libdir, but always installs to a
# magically guessed _libdir
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty.a
%else
# libiberty installs to --libdir=...
rm -f ${RPM_BUILD_ROOT}%{_gcclibdir}/libiberty.a
%endif
# We use the version from binutils
rm -f $RPM_BUILD_ROOT%{_bindir}/m32c-rtems4.11-c++filt%{_exeext}
# We don't ship info/dir
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# Bug in gcc-3.4.0pre
rm -f $RPM_BUILD_ROOT%{_bindir}/m32c-rtems4.11-m32c-rtems4.11-gcjh%{_exeext}
# Bug in gcc-3.3.x/gcc-3.4.x: Despite we don't need fixincludes, it installs
# the fixinclude-install-tools
rm -rf ${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/m32c-rtems4.11/%{gcc_version}/install-tools
rm -rf ${RPM_BUILD_ROOT}%{_libexecdir}/gcc/m32c-rtems4.11/%{gcc_version}/install-tools
# Bug in gcc > 4.1.0: Installs an unused, empty directory
if test -d ${RPM_BUILD_ROOT}%{_prefix}/m32c-rtems4.11/include/bits; then
rmdir ${RPM_BUILD_ROOT}%{_prefix}/m32c-rtems4.11/include/bits
fi
# Collect multilib subdirectories
multilibs=`build/gcc/xgcc -Bbuild/gcc/ --print-multi-lib | sed -e 's,;.*$,,'`
echo "%defattr(-,root,root,-)" > build/files.newlib
TGTDIR="%{_exec_prefix}/m32c-rtems4.11/lib"
for i in $multilibs; do
case $i in
\.) echo "%dir ${TGTDIR}" >> build/files.newlib
;;
*) echo "%dir ${TGTDIR}/$i" >> build/files.newlib
;;
esac
done
rm -f dirs ;
echo "%defattr(-,root,root,-)" >> dirs
TGTDIR="%{_gcclibdir}/gcc/m32c-rtems4.11/%{gcc_version}"
for i in $multilibs; do
case $i in
\.) ;; # ignore, handled elsewhere
*) echo "%dir ${TGTDIR}/$i" >> dirs
;;
esac
done
# Collect files to go into different packages
cp dirs build/files.gcc
cp dirs build/files.gfortran
cp dirs build/files.objc
cp dirs build/files.gcj
cp dirs build/files.g++
TGTDIR="%{_gcclibdir}/gcc/m32c-rtems4.11/%{gcc_version}"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i ;; # ignore: gcc produces bogus libtool libs
*f771) ;;
*f951) ;;
*cc1) ;;
*cc1obj) ;;
*cc1plus) ;; # ignore: explicitly put into rpm elsewhere
*collect2) ;;
*libobjc*) echo "$i" >> build/files.objc ;;
*include/objc*) ;;
*include/g++*);;
*include/c++*);;
*include-fixed/*);;
*finclude/*);;
*adainclude*);;
*adalib*);;
*gnat1);;
*jc1) ;;
*jvgenmain) ;;
*/libgfortran*.*) echo "$i" >> build/files.gfortran ;;
*/libstdc++.*) echo "$i" >> build/files.g++ ;;
*/libsupc++.*) echo "$i" >> build/files.g++ ;;
*) echo "$i" >> build/files.gcc ;;
esac
done
TGTDIR="%{_exec_prefix}/m32c-rtems4.11/lib"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i;; # ignore - gcc produces bogus libtool libs
*libiberty.a) rm ${RPM_BUILD_ROOT}/$i ;; # ignore - GPL'ed
# all other files belong to newlib
*) echo "$i" >> build/files.newlib ;;
esac
done
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m32c-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/m32c-rtems4.11/'} | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
%define __find_provides %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m32c-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/m32c-rtems4.11/'} | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%define __find_requires %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%ifnarch noarch
# Extract %%__debug_install_post into debug_install_post~
cat << \EOF > debug_install_post~
%__debug_install_post
EOF
# Generate customized debug_install_post script
cat debug_install_post~ | while read a x y; do
case $a in
# Prevent find-debuginfo.sh* from trying to handle foreign binaries
*/find-debuginfo.sh)
b=$(basename $a)
sed -e 's,find "$RPM_BUILD_ROOT" !,find "$RPM_BUILD_ROOT"%_bindir "$RPM_BUILD_ROOT"%_libexecdir !,' $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm/find-debuginfo.sh,./find-debuginfo.sh,' \
< debug_install_post~ > debug_install_post
%define __debug_install_post . ./debug_install_post
%endif
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# rtems-4.11-m32c-rtems4.11-gcc
# ==============================================================
# %package -n rtems-4.11-m32c-rtems4.11-gcc
# Summary: GNU cc compiler for m32c-rtems4.11
# Group: Development/Tools
# Version: %{gcc_rpmvers}
# Requires: rtems-4.11-m32c-rtems4.11-binutils
# Requires: rtems-4.11-m32c-rtems4.11-newlib = %{newlib_version}-1%{?dist}
# License: GPL
# %if %build_infos
# Requires: rtems-4.11-gcc-common
# %endif
%description -n rtems-4.11-m32c-rtems4.11-gcc
GNU cc compiler for m32c-rtems4.11.
# ==============================================================
# rtems-4.11-m32c-rtems4.11-gcc-libgcc
# ==============================================================
%package -n rtems-4.11-m32c-rtems4.11-gcc-libgcc
Summary: libgcc for m32c-rtems4.11-gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-m32c-rtems4.11-newlib = %{newlib_version}-1%{?dist}
License: GPL
%description -n rtems-4.11-m32c-rtems4.11-gcc-libgcc
libgcc m32c-rtems4.11-gcc.
%files -n rtems-4.11-m32c-rtems4.11-gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/m32c-rtems4.11-gcc.1*
%{_mandir}/man1/m32c-rtems4.11-cpp.1*
%{_mandir}/man1/m32c-rtems4.11-gcov.1*
%dir %{_bindir}
%{_bindir}/m32c-rtems4.11-cpp%{_exeext}
%{_bindir}/m32c-rtems4.11-gcc%{_exeext}
%{_bindir}/m32c-rtems4.11-gcc-%{gcc_version}%{_exeext}
%{_bindir}/m32c-rtems4.11-gcov%{_exeext}
%{_bindir}/m32c-rtems4.11-gccbug
%dir %{_libexecdir}
%dir %{_libexecdir}/gcc
%dir %{_libexecdir}/gcc/m32c-rtems4.11
%dir %{_libexecdir}/gcc/m32c-rtems4.11/%{gcc_version}
%{_libexecdir}/gcc/m32c-rtems4.11/%{gcc_version}/cc1%{_exeext}
%{_libexecdir}/gcc/m32c-rtems4.11/%{gcc_version}/collect2%{_exeext}
%files -n rtems-4.11-m32c-rtems4.11-gcc-libgcc -f build/files.gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_gcclibdir}
%dir %{_gcclibdir}/gcc
%dir %{_gcclibdir}/gcc/m32c-rtems4.11
%dir %{_gcclibdir}/gcc/m32c-rtems4.11/%{gcc_version}
%dir %{_gcclibdir}/gcc/m32c-rtems4.11/%{gcc_version}/include
%if "%{gcc_version}" > "4.0.3"
%if "m32c-rtems4.11" != "bfin-rtems4.10"
%if "m32c-rtems4.11" != "avr-rtems4.10"
%dir %{_gcclibdir}/gcc/m32c-rtems4.11/%{gcc_version}/include/ssp
%endif
%endif
%endif
%if "%{gcc_version}" >= "4.3.0"
%{_gcclibdir}/gcc/m32c-rtems4.11/%{gcc_version}/include-fixed
%endif
# ==============================================================
# rtems-4.11-gcc-common
# ==============================================================
%package -n rtems-4.11-gcc-common
Summary: Base package for rtems gcc and newlib C Library
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: GPL
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-gcc-common
GCC files that are shared by all targets.
%files -n rtems-4.11-gcc-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/cpp.info*
%{_infodir}/cppinternals.info*
%{_infodir}/gcc.info*
%{_infodir}/gccint.info*
%{_infodir}/gccinstall.info*
%dir %{_mandir}
%dir %{_mandir}/man7
%{_mandir}/man7/fsf-funding.7*
%{_mandir}/man7/gfdl.7*
%{_mandir}/man7/gpl.7*
%post -n rtems-4.11-gcc-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
%preun -n rtems-4.11-gcc-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
fi
# ==============================================================
# rtems-4.11-m32c-rtems4.11-newlib
# ==============================================================
%package -n rtems-4.11-m32c-rtems4.11-newlib
Summary: C Library (newlib) for m32c-rtems4.11
Group: Development/Tools
License: Distributable
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-newlib-common
%description -n rtems-4.11-m32c-rtems4.11-newlib
Newlib C Library for m32c-rtems4.11.
%files -n rtems-4.11-m32c-rtems4.11-newlib -f build/files.newlib
%defattr(-,root,root)
%dir %{_exec_prefix}
%dir %{_exec_prefix}/m32c-rtems4.11
%{_exec_prefix}/m32c-rtems4.11/include
# ==============================================================
# rtems-4.11-newlib-common
# ==============================================================
%package -n rtems-4.11-newlib-common
Summary: Base package for RTEMS newlib C Library
Group: Development/Tools
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: Distributable
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-newlib-common
newlib files that are shared by all targets.
%files -n rtems-4.11-newlib-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/libc.info*
%{_infodir}/libm.info*
%post -n rtems-4.11-newlib-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
%preun -n rtems-4.11-newlib-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
fi

View File

@@ -0,0 +1,319 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gdb_version 7.0.90
%define gdb_rpmvers %{expand:%(echo 7.0.90 | tr - _)}
Name: rtems-4.11-m32c-rtems4.11-gdb
Summary: Gdb for target m32c-rtems4.11
Group: Development/Tools
Version: %{gdb_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/gdb
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%define build_sim --enable-sim
%if "%{_build}" != "%{_host}"
# psim doesn't support Cdn-X
%if "m32c-rtems4.11" == "powerpc-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%ifos mingw mingw32
# Mingw lacks functions required by the simulator
%if "m32c-rtems4.11" == "sparc-rtems4.10"
%define build_sim --disable-sim
%endif
%if "m32c-rtems4.11" == "h8300-rtems4.10"
%define build_sim --disable-sim
%endif
%if "%{gdb_version}" >= "6.8.50"
%if "m32c-rtems4.11" == "m32c-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "m32c-rtems4.11" == "lm32-rtems4.10"
%define build_sim --disable-sim
%endif
%if "m32c-rtems4.11" == "mipstx39-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "%{gdb_version}" >= "6.6"
# suse
%if "%{?suse}" >= "10.3"
BuildRequires: libexpat-devel
%else
# Fedora/CentOS/Cygwin/MinGW
BuildRequires: %{_host_rpmprefix}expat-devel
%endif
%endif
%if "%{gdb_version}" < "6.7"
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}termcap-devel
%endif
%bcond_with system_readline
%else
%bcond_without system_readline
%endif
%{?with_system_readline:BuildRequires: %{_host_rpmprefix}readline-devel}
BuildRequires: %{_host_rpmprefix}ncurses-devel
%if "%{gdb_version}" >= "6.8.50"
%if "%{_build}" != "%{_host}"
# Can't build python Cdn-X
%bcond_with python
%else
%bcond_without python
%endif
%endif
%{?with_python:BuildRequires: %{_host_rpmprefix}python-devel}
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
Requires: rtems-4.11-gdb-common
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif
%description
GDB for target m32c-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd gdb-%{gdb_version}
%{?PATCH0:%patch0 -p1}
cd ..
# Force using a system-provided libreadline
%{?with_system_readline:rm -f gdb-%{gdb_version}/readline/configure}
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../gdb-%{gdb_version}/configure \
--build=%_build --host=%_host \
--target=m32c-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
%{build_sim} \
%{?with_system_readline:--with-system-readline} \
%if "%{gdb_version}" >= "6.6"
--with-expat \
%endif
%if "%{gdb_version}" >= "6.8.50"
%if %{with python}
--with-python \
%else
--without-python \
%endif
%endif
--prefix=%{_prefix} --bindir=%{_bindir} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# These come from other packages
rm -rf $RPM_BUILD_ROOT%{_infodir}/bfd*
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure*
rm -rf $RPM_BUILD_ROOT%{_infodir}/standards*
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# host library, installed to a bogus directory
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libm32c-rtems4.11-sim.a
%if "%{gdb_version}" >= "7.0"
# Bug in gdb-7.0, bogusly installs linux-only files
somethinguseful=0
for f in ${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls/*.xml; do
case $f in
*linux.xml) rm -f $f;;
*.xml) somethinguseful=1;;
esac
done
if test $somethinguseful -eq 0; then
rm -rf "${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls"
fi
%endif
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# m32c-rtems4.11-gdb
# ==============================================================
# %package -n rtems-4.11-m32c-rtems4.11-gdb
# Summary: rtems gdb for m32c-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-gdb-common
# %endif
%description -n rtems-4.11-m32c-rtems4.11-gdb
GNU gdb targetting m32c-rtems4.11.
%files -n rtems-4.11-m32c-rtems4.11-gdb
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/m32c-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/m32c-rtems4.11-*
# ==============================================================
# rtems-4.11-gdb-common
# ==============================================================
%package -n rtems-4.11-gdb-common
Summary: Base package for RTEMS gdbs
Group: Development/Tools
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%{?_with_noarch_subpackages:BuildArch: noarch}
%description -n rtems-4.11-gdb-common
GDB files shared by all targets.
%post -n rtems-4.11-gdb-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
%preun -n rtems-4.11-gdb-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
fi
%files -n rtems-4.11-gdb-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/gdb.info*
%{_infodir}/gdbint.info*
%{_infodir}/stabs.info*
%{_infodir}/annotate.info*

View File

@@ -0,0 +1,3 @@
Makefile
Makefile.in
*.spec.in

View File

@@ -0,0 +1,32 @@
# $Id$
TARGET = m32r-rtems4.11
include $(top_srcdir)/mkspec.am
BINUTILS_VERS = 2.20.1
BINUTILS_PKGVERS = $(BINUTILS_VERS)
BINUTILS_RPMREL = 1
include ../binutils.am
BINUTILS_OPTS +=
GCC_VERS = 4.4.3
GCC_PKGVERS = $(GCC_VERS)
GCC_RPMREL = 1
NEWLIB_VERS = 1.18.0
NEWLIB_PKGVERS = $(NEWLIB_VERS)
NEWLIB_RPMREL = `expr $(GCC_RPMREL)`
include ../gcc.am
GCC_OPTS +=
GDB_VERS = 7.0.90
GDB_PKGVERS = $(GDB_VERS)
GDB_RPMREL = 1
include ../gdb.am
GDB_OPTS +=
CPUKIT_VERS = 4.9.99.0
CPUKIT_PKGVERS = $(CPUKIT_VERS)-20090206-2
CPUKIT_RPMREL = 1
include ../cpukit.am
CPUKIT_OPTS +=

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}

View File

@@ -0,0 +1,47 @@
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if %build_cxx
%if "%{gcc_version}" == "4.4.3"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%if "%{gcc_version}" == "4.4.2"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%{?_without_sources:NoSource: 1}
%endif
%if %build_fortran
Source2: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-fortran-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 2}
%endif
%if %build_gcj
Source3: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-java-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 3}
%endif
%if %build_gnat
Source4: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-ada-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 4}
%endif
%if %build_objc
Source5: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-objc-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 5}
%endif
%if %build_newlib
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%endif

View File

@@ -0,0 +1,9 @@
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif

View File

@@ -0,0 +1,268 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define binutils_pkgvers 2.20.1
%define binutils_version 2.20.1
%define binutils_rpmvers %{expand:%(echo "2.20.1" | tr - _ )}
Name: rtems-4.11-m32r-rtems4.11-binutils
Summary: Binutils for target m32r-rtems4.11
Group: Development/Tools
Version: %{binutils_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/binutils
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%if "%{binutils_version}" >= "2.18"
# Bug in bfd: Doesn't build without texinfo installed
BuildRequires: texinfo >= 4.2
%else
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
%endif
BuildRequires: flex
BuildRequires: bison
Requires: rtems-4.11-binutils-common
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
%description
Cross binutils for target m32r-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd binutils-%{binutils_pkgvers}
%{?PATCH0:%patch0 -p1}
cd ..
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../binutils-%{binutils_pkgvers}/configure \
--build=%_build --host=%_host \
--target=m32r-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
--prefix=%{_prefix} --bindir=%{_bindir} \
--exec-prefix=%{_exec_prefix} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
make prefix=$RPM_BUILD_ROOT%{_prefix} \
bindir=$RPM_BUILD_ROOT%{_bindir} \
includedir=$RPM_BUILD_ROOT%{_includedir} \
libdir=$RPM_BUILD_ROOT%{_libdir} \
infodir=$RPM_BUILD_ROOT%{_infodir} \
mandir=$RPM_BUILD_ROOT%{_mandir} \
exec_prefix=$RPM_BUILD_ROOT%{_exec_prefix} \
install-info
# Dropped in FSF-binutils-2.9.5, but Cygwin still ships it.
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure.info*
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# binutils does not install share/locale, however it uses it
mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/locale
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# manpages without corresponding tools
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/m32r-rtems4.11-dlltool%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/m32r-rtems4.11-dlltool*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/m32r-rtems4.11-nlmconv%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/m32r-rtems4.11-nlmconv*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/m32r-rtems4.11-windres%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/m32r-rtems4.11-windres*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/m32r-rtems4.11-windmc%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/m32r-rtems4.11-windmc*
fi
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# m32r-rtems4.11-binutils
# ==============================================================
# %package -n rtems-4.11-m32r-rtems4.11-binutils
# Summary: rtems binutils for m32r-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-binutils-common
# %endif
%description -n rtems-4.11-m32r-rtems4.11-binutils
GNU binutils targetting m32r-rtems4.11.
%files -n rtems-4.11-m32r-rtems4.11-binutils
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_datarootdir}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/m32r-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/m32r-rtems4.11-*
%dir %{_exec_prefix}/m32r-rtems4.11
%dir %{_exec_prefix}/m32r-rtems4.11/bin
%{_exec_prefix}/m32r-rtems4.11/bin/*
%dir %{_exec_prefix}/m32r-rtems4.11/lib
%{_exec_prefix}/m32r-rtems4.11/lib/ldscripts
# ==============================================================
# rtems-4.11-binutils-common
# ==============================================================
%package -n rtems-4.11-binutils-common
Summary: Base package for RTEMS binutils
Group: Development/Tools
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-binutils-common
RTEMS is an open source operating system for embedded systems.
This is the base for binutils regardless of target CPU.
%post -n rtems-4.11-binutils-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
%preun -n rtems-4.11-binutils-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
fi
%files -n rtems-4.11-binutils-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/as.info*
%{_infodir}/bfd.info*
%{_infodir}/binutils.info*
%{_infodir}/ld.info*
%{_infodir}/standards.info*
%{_infodir}/gprof.info*
%dir %{_prefix}/share
%dir %{_prefix}/share/locale

View File

@@ -0,0 +1,158 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define cpukit_pkgvers 4.9.99.0-20090206-2
%define cpukit_version 4.9.99.0
%define cpukit_rpmvers %{expand:%(echo "4.9.99.0-20090206-2" | tr - . )}
Name: rtems-4.11-m32r-rtems4.11-cpukit
Summary: m32r-rtems4.11 cpukit
Group: Development/Tools
Version: %{cpukit_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://cpukit.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
%define debug_package %{nil}
BuildRequires: rtems-4.11-m32r-rtems4.11-gcc
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}
%description
RTEMS cpukit for m32r-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
../rtems-%{cpukit_version}/configure \
--prefix=%{_prefix} \
--target=m32r-rtems4.11 \
--enable-multilib \
--disable-rtemsbsp
make all RTEMS_BSP=
cd ..
%install
rm -rf $RPM_BUILD_ROOT
export PATH="%{_bindir}:${PATH}"
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
rm -rf $RPM_BUILD_ROOT%{_prefix}/share/man
rm -rf $RPM_BUILD_ROOT%{_prefix}/bin
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{version}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m32r-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/m32r-rtems4.11/' | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-provides
%define __find_provides %{_builddir}/%{name}-%{version}/find-provides
cat << EOF > %{_builddir}/%{name}-%{version}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m32r-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/m32r-rtems4.11/' | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-requires
%define __find_requires %{_builddir}/%{name}-%{version}/find-requires
%clean
rm -rf $RPM_BUILD_ROOT
%description -n rtems-4.11-m32r-rtems4.11-cpukit
RTEMS cpukit for target m32r-rtems4.11.
%files -n rtems-4.11-m32r-rtems4.11-cpukit
%defattr(-,root,root)
%dir %{_prefix}
%{_prefix}/m32r-rtems4.11
# Violates the FHS
%exclude %{_prefix}/make

View File

@@ -0,0 +1,645 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gcc_pkgvers 4.4.3
%define gcc_version 4.4.3
%define gcc_rpmvers %{expand:%(echo "4.4.3" | tr - _ )}
%define newlib_pkgvers 1.18.0
%define newlib_version 1.18.0
Name: rtems-4.11-m32r-rtems4.11-gcc
Summary: m32r-rtems4.11 gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://gcc.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%define _use_internal_dependency_generator 0
BuildRequires: %{_host_rpmprefix}gcc
%if "%{gcc_version}" >= "4.3.0"
%define _gmp_minvers 4.1
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%if %{defined _gmp_minvers}
BuildRequires: gmp-devel >= %{_gmp_minvers}
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}gmp-devel >= %{_gmp_minvers}
%endif
%endif
%if "%{gcc_version}" >= "4.3.3"
%define _cloog_minvers 0.15
%endif
%if %{defined _cloog_minvers}
%{?fc11:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc12:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc13:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?suse11_2:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%{?suse11_1:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%endif
%if "%{gcc_version}" >= "4.4.0"
%define _mpfr_minvers 2.3.2
%define mpfr_version 2.4.1
%else
%if "%{gcc_version}" >= "4.3.0"
%define _mpfr_minvers 2.3.1
%define mpfr_version 2.3.2
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%endif
%if %{defined _mpfr_minvers}
# FIXME: This is an ugly cludge
%{?fc11:%global mpfr_provided 2.4.1}
%{?fc12:%global mpfr_provided 2.4.1}
%{?fc13:%global mpfr_provided 2.4.1}
%{?suse11_0:%global mpfr_provided 2.3.1}
%{?suse11_1:%global mpfr_provided 2.3.2}
%{?suse11_2:%global mpfr_provided 2.4.1}
%{?cygwin:%global mpfr_provided 2.4.1}
%{?mingw32:%global mpfr_provided %{nil}}
%if %{defined mpfr_provided}
%if "%{mpfr_provided}" < "%{_mpfr_minvers}"
%define _build_mpfr 1
%else
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}mpfr-devel >= %{_mpfr_minvers}
%else
BuildRequires: mpfr-devel >= %{_mpfr_minvers}
%endif
%endif
%else
%define _build_mpfr 1
%endif
%endif
%if "%{_build}" != "%{_host}"
BuildRequires: rtems-4.11-m32r-rtems4.11-gcc = %{gcc_rpmvers}
%endif
%if "%{gcc_version}" >= "4.2.0"
BuildRequires: flex bison
%endif
BuildRequires: texinfo >= 4.2
BuildRequires: rtems-4.11-m32r-rtems4.11-binutils
Requires: rtems-4.11-gcc-common
Requires: rtems-4.11-m32r-rtems4.11-binutils
Requires: rtems-4.11-m32r-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
Requires: rtems-4.11-m32r-rtems4.11-newlib = %{newlib_version}-1%{?dist}
%define _gcclibdir %{_prefix}/lib
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%if "%{gcc_version}" >= "4.3.0"
Source60: http://www.mpfr.org/mpfr-current/mpfr-%{mpfr_version}.tar.bz2
%endif
%description
Cross gcc for m32r-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%{?PATCH0:%patch0 -p0}
%setup -q -T -D -n %{name}-%{version} -a50
cd newlib-%{newlib_version}
%{?PATCH50:%patch50 -p1}
cd ..
# Copy the C library into gcc's source tree
ln -s ../newlib-%{newlib_version}/newlib gcc-%{gcc_pkgvers}
%if 0%{?_build_mpfr}
%setup -q -T -D -n %{name}-%{version} -a60
%{?PATCH60:%patch60 -p1}
# Build mpfr one-tree style
ln -s ../mpfr-%{mpfr_version} gcc-%{gcc_pkgvers}/mpfr
%endif
echo "RTEMS gcc-%{gcc_version}-1%{?dist}/newlib-%{newlib_version}-1%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
# Fix timestamps
cd gcc-%{gcc_pkgvers}
contrib/gcc_update --touch
cd ..
%build
mkdir -p build
cd build
languages="c"
export PATH="%{_bindir}:${PATH}"
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
CC="%{_host}-gcc ${RPM_OPT_FLAGS}" \
%else
# gcc is not ready to be compiled with -std=gnu99
CC=$(echo "%{__cc} ${RPM_OPT_FLAGS}" | sed -e 's,-std=gnu99 ,,') \
%endif
../gcc-%{gcc_pkgvers}/configure \
--prefix=%{_prefix} \
--bindir=%{_bindir} \
--exec_prefix=%{_exec_prefix} \
--includedir=%{_includedir} \
--libdir=%{_gcclibdir} \
--libexecdir=%{_libexecdir} \
--mandir=%{_mandir} \
--infodir=%{_infodir} \
--datadir=%{_datadir} \
--build=%_build --host=%_host \
--target=m32r-rtems4.11 \
--disable-libstdcxx-pch \
--with-gnu-as --with-gnu-ld --verbose \
--with-newlib \
--with-system-zlib \
--disable-nls --without-included-gettext \
--disable-win32-registry \
--enable-version-specific-runtime-libs \
--enable-threads \
--enable-newlib-io-c99-formats \
--enable-languages="$languages" $optargs
%if "%_host" != "%_build"
# Bug in gcc-3.2.1:
# Somehow, gcc doesn't get syslimits.h right for Cdn-Xs
mkdir -p gcc/include
cp ../gcc-%{gcc_pkgvers}/gcc/gsyslimits.h gcc/include/syslimits.h
%endif
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
cd build/m32r-rtems4.11/newlib
make DESTDIR=$RPM_BUILD_ROOT install-info
cd ../../..
%if "%{gcc_version}" <= "4.1.2"
# Misplaced header file
if test -f $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h; then
mv $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h \
$RPM_BUILD_ROOT%{_gcclibdir}/gcc/m32r-rtems4.11/%{gcc_version}/include/
fi
%endif
# host library
%if "%{gcc_version}" >= "4.2.0"
# libiberty doesn't honor --libdir, but always installs to a
# magically guessed _libdir
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty.a
%else
# libiberty installs to --libdir=...
rm -f ${RPM_BUILD_ROOT}%{_gcclibdir}/libiberty.a
%endif
# We use the version from binutils
rm -f $RPM_BUILD_ROOT%{_bindir}/m32r-rtems4.11-c++filt%{_exeext}
# We don't ship info/dir
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# Bug in gcc-3.4.0pre
rm -f $RPM_BUILD_ROOT%{_bindir}/m32r-rtems4.11-m32r-rtems4.11-gcjh%{_exeext}
# Bug in gcc-3.3.x/gcc-3.4.x: Despite we don't need fixincludes, it installs
# the fixinclude-install-tools
rm -rf ${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/m32r-rtems4.11/%{gcc_version}/install-tools
rm -rf ${RPM_BUILD_ROOT}%{_libexecdir}/gcc/m32r-rtems4.11/%{gcc_version}/install-tools
# Bug in gcc > 4.1.0: Installs an unused, empty directory
if test -d ${RPM_BUILD_ROOT}%{_prefix}/m32r-rtems4.11/include/bits; then
rmdir ${RPM_BUILD_ROOT}%{_prefix}/m32r-rtems4.11/include/bits
fi
# Collect multilib subdirectories
multilibs=`build/gcc/xgcc -Bbuild/gcc/ --print-multi-lib | sed -e 's,;.*$,,'`
echo "%defattr(-,root,root,-)" > build/files.newlib
TGTDIR="%{_exec_prefix}/m32r-rtems4.11/lib"
for i in $multilibs; do
case $i in
\.) echo "%dir ${TGTDIR}" >> build/files.newlib
;;
*) echo "%dir ${TGTDIR}/$i" >> build/files.newlib
;;
esac
done
rm -f dirs ;
echo "%defattr(-,root,root,-)" >> dirs
TGTDIR="%{_gcclibdir}/gcc/m32r-rtems4.11/%{gcc_version}"
for i in $multilibs; do
case $i in
\.) ;; # ignore, handled elsewhere
*) echo "%dir ${TGTDIR}/$i" >> dirs
;;
esac
done
# Collect files to go into different packages
cp dirs build/files.gcc
cp dirs build/files.gfortran
cp dirs build/files.objc
cp dirs build/files.gcj
cp dirs build/files.g++
TGTDIR="%{_gcclibdir}/gcc/m32r-rtems4.11/%{gcc_version}"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i ;; # ignore: gcc produces bogus libtool libs
*f771) ;;
*f951) ;;
*cc1) ;;
*cc1obj) ;;
*cc1plus) ;; # ignore: explicitly put into rpm elsewhere
*collect2) ;;
*libobjc*) echo "$i" >> build/files.objc ;;
*include/objc*) ;;
*include/g++*);;
*include/c++*);;
*include-fixed/*);;
*finclude/*);;
*adainclude*);;
*adalib*);;
*gnat1);;
*jc1) ;;
*jvgenmain) ;;
*/libgfortran*.*) echo "$i" >> build/files.gfortran ;;
*/libstdc++.*) echo "$i" >> build/files.g++ ;;
*/libsupc++.*) echo "$i" >> build/files.g++ ;;
*) echo "$i" >> build/files.gcc ;;
esac
done
TGTDIR="%{_exec_prefix}/m32r-rtems4.11/lib"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i;; # ignore - gcc produces bogus libtool libs
*libiberty.a) rm ${RPM_BUILD_ROOT}/$i ;; # ignore - GPL'ed
# all other files belong to newlib
*) echo "$i" >> build/files.newlib ;;
esac
done
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m32r-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/m32r-rtems4.11/'} | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
%define __find_provides %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m32r-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/m32r-rtems4.11/'} | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%define __find_requires %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%ifnarch noarch
# Extract %%__debug_install_post into debug_install_post~
cat << \EOF > debug_install_post~
%__debug_install_post
EOF
# Generate customized debug_install_post script
cat debug_install_post~ | while read a x y; do
case $a in
# Prevent find-debuginfo.sh* from trying to handle foreign binaries
*/find-debuginfo.sh)
b=$(basename $a)
sed -e 's,find "$RPM_BUILD_ROOT" !,find "$RPM_BUILD_ROOT"%_bindir "$RPM_BUILD_ROOT"%_libexecdir !,' $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm/find-debuginfo.sh,./find-debuginfo.sh,' \
< debug_install_post~ > debug_install_post
%define __debug_install_post . ./debug_install_post
%endif
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# rtems-4.11-m32r-rtems4.11-gcc
# ==============================================================
# %package -n rtems-4.11-m32r-rtems4.11-gcc
# Summary: GNU cc compiler for m32r-rtems4.11
# Group: Development/Tools
# Version: %{gcc_rpmvers}
# Requires: rtems-4.11-m32r-rtems4.11-binutils
# Requires: rtems-4.11-m32r-rtems4.11-newlib = %{newlib_version}-1%{?dist}
# License: GPL
# %if %build_infos
# Requires: rtems-4.11-gcc-common
# %endif
%description -n rtems-4.11-m32r-rtems4.11-gcc
GNU cc compiler for m32r-rtems4.11.
# ==============================================================
# rtems-4.11-m32r-rtems4.11-gcc-libgcc
# ==============================================================
%package -n rtems-4.11-m32r-rtems4.11-gcc-libgcc
Summary: libgcc for m32r-rtems4.11-gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-m32r-rtems4.11-newlib = %{newlib_version}-1%{?dist}
License: GPL
%description -n rtems-4.11-m32r-rtems4.11-gcc-libgcc
libgcc m32r-rtems4.11-gcc.
%files -n rtems-4.11-m32r-rtems4.11-gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/m32r-rtems4.11-gcc.1*
%{_mandir}/man1/m32r-rtems4.11-cpp.1*
%{_mandir}/man1/m32r-rtems4.11-gcov.1*
%dir %{_bindir}
%{_bindir}/m32r-rtems4.11-cpp%{_exeext}
%{_bindir}/m32r-rtems4.11-gcc%{_exeext}
%{_bindir}/m32r-rtems4.11-gcc-%{gcc_version}%{_exeext}
%{_bindir}/m32r-rtems4.11-gcov%{_exeext}
%{_bindir}/m32r-rtems4.11-gccbug
%dir %{_libexecdir}
%dir %{_libexecdir}/gcc
%dir %{_libexecdir}/gcc/m32r-rtems4.11
%dir %{_libexecdir}/gcc/m32r-rtems4.11/%{gcc_version}
%{_libexecdir}/gcc/m32r-rtems4.11/%{gcc_version}/cc1%{_exeext}
%{_libexecdir}/gcc/m32r-rtems4.11/%{gcc_version}/collect2%{_exeext}
%files -n rtems-4.11-m32r-rtems4.11-gcc-libgcc -f build/files.gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_gcclibdir}
%dir %{_gcclibdir}/gcc
%dir %{_gcclibdir}/gcc/m32r-rtems4.11
%dir %{_gcclibdir}/gcc/m32r-rtems4.11/%{gcc_version}
%dir %{_gcclibdir}/gcc/m32r-rtems4.11/%{gcc_version}/include
%if "%{gcc_version}" > "4.0.3"
%if "m32r-rtems4.11" != "bfin-rtems4.10"
%if "m32r-rtems4.11" != "avr-rtems4.10"
%dir %{_gcclibdir}/gcc/m32r-rtems4.11/%{gcc_version}/include/ssp
%endif
%endif
%endif
%if "%{gcc_version}" >= "4.3.0"
%{_gcclibdir}/gcc/m32r-rtems4.11/%{gcc_version}/include-fixed
%endif
# ==============================================================
# rtems-4.11-gcc-common
# ==============================================================
%package -n rtems-4.11-gcc-common
Summary: Base package for rtems gcc and newlib C Library
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: GPL
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-gcc-common
GCC files that are shared by all targets.
%files -n rtems-4.11-gcc-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/cpp.info*
%{_infodir}/cppinternals.info*
%{_infodir}/gcc.info*
%{_infodir}/gccint.info*
%{_infodir}/gccinstall.info*
%dir %{_mandir}
%dir %{_mandir}/man7
%{_mandir}/man7/fsf-funding.7*
%{_mandir}/man7/gfdl.7*
%{_mandir}/man7/gpl.7*
%post -n rtems-4.11-gcc-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
%preun -n rtems-4.11-gcc-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
fi
# ==============================================================
# rtems-4.11-m32r-rtems4.11-newlib
# ==============================================================
%package -n rtems-4.11-m32r-rtems4.11-newlib
Summary: C Library (newlib) for m32r-rtems4.11
Group: Development/Tools
License: Distributable
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-newlib-common
%description -n rtems-4.11-m32r-rtems4.11-newlib
Newlib C Library for m32r-rtems4.11.
%files -n rtems-4.11-m32r-rtems4.11-newlib -f build/files.newlib
%defattr(-,root,root)
%dir %{_exec_prefix}
%dir %{_exec_prefix}/m32r-rtems4.11
%{_exec_prefix}/m32r-rtems4.11/include
# ==============================================================
# rtems-4.11-newlib-common
# ==============================================================
%package -n rtems-4.11-newlib-common
Summary: Base package for RTEMS newlib C Library
Group: Development/Tools
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: Distributable
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-newlib-common
newlib files that are shared by all targets.
%files -n rtems-4.11-newlib-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/libc.info*
%{_infodir}/libm.info*
%post -n rtems-4.11-newlib-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
%preun -n rtems-4.11-newlib-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
fi

View File

@@ -0,0 +1,319 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gdb_version 7.0.90
%define gdb_rpmvers %{expand:%(echo 7.0.90 | tr - _)}
Name: rtems-4.11-m32r-rtems4.11-gdb
Summary: Gdb for target m32r-rtems4.11
Group: Development/Tools
Version: %{gdb_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/gdb
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%define build_sim --enable-sim
%if "%{_build}" != "%{_host}"
# psim doesn't support Cdn-X
%if "m32r-rtems4.11" == "powerpc-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%ifos mingw mingw32
# Mingw lacks functions required by the simulator
%if "m32r-rtems4.11" == "sparc-rtems4.10"
%define build_sim --disable-sim
%endif
%if "m32r-rtems4.11" == "h8300-rtems4.10"
%define build_sim --disable-sim
%endif
%if "%{gdb_version}" >= "6.8.50"
%if "m32r-rtems4.11" == "m32c-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "m32r-rtems4.11" == "lm32-rtems4.10"
%define build_sim --disable-sim
%endif
%if "m32r-rtems4.11" == "mipstx39-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "%{gdb_version}" >= "6.6"
# suse
%if "%{?suse}" >= "10.3"
BuildRequires: libexpat-devel
%else
# Fedora/CentOS/Cygwin/MinGW
BuildRequires: %{_host_rpmprefix}expat-devel
%endif
%endif
%if "%{gdb_version}" < "6.7"
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}termcap-devel
%endif
%bcond_with system_readline
%else
%bcond_without system_readline
%endif
%{?with_system_readline:BuildRequires: %{_host_rpmprefix}readline-devel}
BuildRequires: %{_host_rpmprefix}ncurses-devel
%if "%{gdb_version}" >= "6.8.50"
%if "%{_build}" != "%{_host}"
# Can't build python Cdn-X
%bcond_with python
%else
%bcond_without python
%endif
%endif
%{?with_python:BuildRequires: %{_host_rpmprefix}python-devel}
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
Requires: rtems-4.11-gdb-common
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif
%description
GDB for target m32r-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd gdb-%{gdb_version}
%{?PATCH0:%patch0 -p1}
cd ..
# Force using a system-provided libreadline
%{?with_system_readline:rm -f gdb-%{gdb_version}/readline/configure}
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../gdb-%{gdb_version}/configure \
--build=%_build --host=%_host \
--target=m32r-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
%{build_sim} \
%{?with_system_readline:--with-system-readline} \
%if "%{gdb_version}" >= "6.6"
--with-expat \
%endif
%if "%{gdb_version}" >= "6.8.50"
%if %{with python}
--with-python \
%else
--without-python \
%endif
%endif
--prefix=%{_prefix} --bindir=%{_bindir} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# These come from other packages
rm -rf $RPM_BUILD_ROOT%{_infodir}/bfd*
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure*
rm -rf $RPM_BUILD_ROOT%{_infodir}/standards*
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# host library, installed to a bogus directory
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libm32r-rtems4.11-sim.a
%if "%{gdb_version}" >= "7.0"
# Bug in gdb-7.0, bogusly installs linux-only files
somethinguseful=0
for f in ${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls/*.xml; do
case $f in
*linux.xml) rm -f $f;;
*.xml) somethinguseful=1;;
esac
done
if test $somethinguseful -eq 0; then
rm -rf "${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls"
fi
%endif
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# m32r-rtems4.11-gdb
# ==============================================================
# %package -n rtems-4.11-m32r-rtems4.11-gdb
# Summary: rtems gdb for m32r-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-gdb-common
# %endif
%description -n rtems-4.11-m32r-rtems4.11-gdb
GNU gdb targetting m32r-rtems4.11.
%files -n rtems-4.11-m32r-rtems4.11-gdb
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/m32r-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/m32r-rtems4.11-*
# ==============================================================
# rtems-4.11-gdb-common
# ==============================================================
%package -n rtems-4.11-gdb-common
Summary: Base package for RTEMS gdbs
Group: Development/Tools
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%{?_with_noarch_subpackages:BuildArch: noarch}
%description -n rtems-4.11-gdb-common
GDB files shared by all targets.
%post -n rtems-4.11-gdb-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
%preun -n rtems-4.11-gdb-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
fi
%files -n rtems-4.11-gdb-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/gdb.info*
%{_infodir}/gdbint.info*
%{_infodir}/stabs.info*
%{_infodir}/annotate.info*

View File

@@ -0,0 +1,3 @@
Makefile
Makefile.in
*.spec.in

View File

@@ -0,0 +1,32 @@
# $Id$
TARGET = m68k-rtems4.11
include $(top_srcdir)/mkspec.am
BINUTILS_VERS = 2.20.1
BINUTILS_PKGVERS = $(BINUTILS_VERS)
BINUTILS_RPMREL = 1
include ../binutils.am
BINUTILS_OPTS +=
GCC_VERS = 4.4.3
GCC_PKGVERS = $(GCC_VERS)
GCC_RPMREL = 1
NEWLIB_VERS = 1.18.0
NEWLIB_PKGVERS = $(NEWLIB_VERS)
NEWLIB_RPMREL = `expr $(GCC_RPMREL)`
include ../gcc.am
GCC_OPTS += --languages=cxx
GDB_VERS = 7.0.90
GDB_PKGVERS = $(GDB_VERS)
GDB_RPMREL = 1
include ../gdb.am
GDB_OPTS +=
CPUKIT_VERS = 4.9.99.0
CPUKIT_PKGVERS = $(CPUKIT_VERS)-20090206-2
CPUKIT_RPMREL = 1
include ../cpukit.am
CPUKIT_OPTS +=

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}

View File

@@ -0,0 +1,47 @@
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if %build_cxx
%if "%{gcc_version}" == "4.4.3"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%if "%{gcc_version}" == "4.4.2"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%{?_without_sources:NoSource: 1}
%endif
%if %build_fortran
Source2: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-fortran-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 2}
%endif
%if %build_gcj
Source3: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-java-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 3}
%endif
%if %build_gnat
Source4: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-ada-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 4}
%endif
%if %build_objc
Source5: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-objc-%{gcc_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 5}
%endif
%if %build_newlib
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%endif

View File

@@ -0,0 +1,9 @@
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif

View File

@@ -0,0 +1,268 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define binutils_pkgvers 2.20.1
%define binutils_version 2.20.1
%define binutils_rpmvers %{expand:%(echo "2.20.1" | tr - _ )}
Name: rtems-4.11-m68k-rtems4.11-binutils
Summary: Binutils for target m68k-rtems4.11
Group: Development/Tools
Version: %{binutils_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/binutils
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%if "%{binutils_version}" >= "2.18"
# Bug in bfd: Doesn't build without texinfo installed
BuildRequires: texinfo >= 4.2
%else
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
%endif
BuildRequires: flex
BuildRequires: bison
Requires: rtems-4.11-binutils-common
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff
%description
Cross binutils for target m68k-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd binutils-%{binutils_pkgvers}
%{?PATCH0:%patch0 -p1}
cd ..
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../binutils-%{binutils_pkgvers}/configure \
--build=%_build --host=%_host \
--target=m68k-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
--prefix=%{_prefix} --bindir=%{_bindir} \
--exec-prefix=%{_exec_prefix} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
make prefix=$RPM_BUILD_ROOT%{_prefix} \
bindir=$RPM_BUILD_ROOT%{_bindir} \
includedir=$RPM_BUILD_ROOT%{_includedir} \
libdir=$RPM_BUILD_ROOT%{_libdir} \
infodir=$RPM_BUILD_ROOT%{_infodir} \
mandir=$RPM_BUILD_ROOT%{_mandir} \
exec_prefix=$RPM_BUILD_ROOT%{_exec_prefix} \
install-info
# Dropped in FSF-binutils-2.9.5, but Cygwin still ships it.
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure.info*
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# binutils does not install share/locale, however it uses it
mkdir -p $RPM_BUILD_ROOT%{_prefix}/share/locale
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# manpages without corresponding tools
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/m68k-rtems4.11-dlltool%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/m68k-rtems4.11-dlltool*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/m68k-rtems4.11-nlmconv%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/m68k-rtems4.11-nlmconv*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/m68k-rtems4.11-windres%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/m68k-rtems4.11-windres*
fi
if test ! -f ${RPM_BUILD_ROOT}%{_bindir}/m68k-rtems4.11-windmc%{_exeext}; then
rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/m68k-rtems4.11-windmc*
fi
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# m68k-rtems4.11-binutils
# ==============================================================
# %package -n rtems-4.11-m68k-rtems4.11-binutils
# Summary: rtems binutils for m68k-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-binutils-common
# %endif
%description -n rtems-4.11-m68k-rtems4.11-binutils
GNU binutils targetting m68k-rtems4.11.
%files -n rtems-4.11-m68k-rtems4.11-binutils
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_datarootdir}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/m68k-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/m68k-rtems4.11-*
%dir %{_exec_prefix}/m68k-rtems4.11
%dir %{_exec_prefix}/m68k-rtems4.11/bin
%{_exec_prefix}/m68k-rtems4.11/bin/*
%dir %{_exec_prefix}/m68k-rtems4.11/lib
%{_exec_prefix}/m68k-rtems4.11/lib/ldscripts
# ==============================================================
# rtems-4.11-binutils-common
# ==============================================================
%package -n rtems-4.11-binutils-common
Summary: Base package for RTEMS binutils
Group: Development/Tools
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-binutils-common
RTEMS is an open source operating system for embedded systems.
This is the base for binutils regardless of target CPU.
%post -n rtems-4.11-binutils-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
%preun -n rtems-4.11-binutils-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/as.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/bfd.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/binutils.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/ld.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/standards.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gprof.info.gz || :
fi
%files -n rtems-4.11-binutils-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/as.info*
%{_infodir}/bfd.info*
%{_infodir}/binutils.info*
%{_infodir}/ld.info*
%{_infodir}/standards.info*
%{_infodir}/gprof.info*
%dir %{_prefix}/share
%dir %{_prefix}/share/locale

View File

@@ -0,0 +1,158 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define cpukit_pkgvers 4.9.99.0-20090206-2
%define cpukit_version 4.9.99.0
%define cpukit_rpmvers %{expand:%(echo "4.9.99.0-20090206-2" | tr - . )}
Name: rtems-4.11-m68k-rtems4.11-cpukit
Summary: m68k-rtems4.11 cpukit
Group: Development/Tools
Version: %{cpukit_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://cpukit.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
%define debug_package %{nil}
BuildRequires: rtems-4.11-m68k-rtems4.11-gcc
Source0: ftp://ftp.rtems.org/pub/rtems/SOURCES/rtems-%{cpukit_pkgvers}.tar.bz2
%{?_without_sources:NoSource: 0}
%description
RTEMS cpukit for m68k-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
../rtems-%{cpukit_version}/configure \
--prefix=%{_prefix} \
--target=m68k-rtems4.11 \
--enable-multilib \
--disable-rtemsbsp
make all RTEMS_BSP=
cd ..
%install
rm -rf $RPM_BUILD_ROOT
export PATH="%{_bindir}:${PATH}"
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
rm -rf $RPM_BUILD_ROOT%{_prefix}/share/man
rm -rf $RPM_BUILD_ROOT%{_prefix}/bin
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{version}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m68k-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/m68k-rtems4.11/' | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-provides
%define __find_provides %{_builddir}/%{name}-%{version}/find-provides
cat << EOF > %{_builddir}/%{name}-%{version}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m68k-rtems4.11/(lib|include|sys-root)' \
| grep -v '^${RPM_BUILD_ROOT}%{cpukitlib}/m68k-rtems4.11/' | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{version}/find-requires
%define __find_requires %{_builddir}/%{name}-%{version}/find-requires
%clean
rm -rf $RPM_BUILD_ROOT
%description -n rtems-4.11-m68k-rtems4.11-cpukit
RTEMS cpukit for target m68k-rtems4.11.
%files -n rtems-4.11-m68k-rtems4.11-cpukit
%defattr(-,root,root)
%dir %{_prefix}
%{_prefix}/m68k-rtems4.11
# Violates the FHS
%exclude %{_prefix}/make

View File

@@ -0,0 +1,716 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gcc_pkgvers 4.4.3
%define gcc_version 4.4.3
%define gcc_rpmvers %{expand:%(echo "4.4.3" | tr - _ )}
%define newlib_pkgvers 1.18.0
%define newlib_version 1.18.0
Name: rtems-4.11-m68k-rtems4.11-gcc
Summary: m68k-rtems4.11 gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
Release: 1%{?dist}
License: GPL
URL: http://gcc.gnu.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
%define _use_internal_dependency_generator 0
BuildRequires: %{_host_rpmprefix}gcc
%if "%{gcc_version}" >= "4.3.0"
%define _gmp_minvers 4.1
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%if %{defined _gmp_minvers}
BuildRequires: gmp-devel >= %{_gmp_minvers}
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}gmp-devel >= %{_gmp_minvers}
%endif
%endif
%if "%{gcc_version}" >= "4.3.3"
%define _cloog_minvers 0.15
%endif
%if %{defined _cloog_minvers}
%{?fc11:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc12:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?fc13:BuildRequires: cloog-ppl-devel >= %_cloog_minvers}
%{?suse11_2:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%{?suse11_1:BuildRequires: cloog-devel >= %_cloog_minvers, ppl-devel}
%endif
%if "%{gcc_version}" >= "4.4.0"
%define _mpfr_minvers 2.3.2
%define mpfr_version 2.4.1
%else
%if "%{gcc_version}" >= "4.3.0"
%define _mpfr_minvers 2.3.1
%define mpfr_version 2.3.2
%else
%if "%{gcc_version}" >= "4.2.0"
%endif
%endif
%endif
%if %{defined _mpfr_minvers}
# FIXME: This is an ugly cludge
%{?fc11:%global mpfr_provided 2.4.1}
%{?fc12:%global mpfr_provided 2.4.1}
%{?fc13:%global mpfr_provided 2.4.1}
%{?suse11_0:%global mpfr_provided 2.3.1}
%{?suse11_1:%global mpfr_provided 2.3.2}
%{?suse11_2:%global mpfr_provided 2.4.1}
%{?cygwin:%global mpfr_provided 2.4.1}
%{?mingw32:%global mpfr_provided %{nil}}
%if %{defined mpfr_provided}
%if "%{mpfr_provided}" < "%{_mpfr_minvers}"
%define _build_mpfr 1
%else
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}mpfr-devel >= %{_mpfr_minvers}
%else
BuildRequires: mpfr-devel >= %{_mpfr_minvers}
%endif
%endif
%else
%define _build_mpfr 1
%endif
%endif
%if "%{_build}" != "%{_host}"
BuildRequires: rtems-4.11-m68k-rtems4.11-gcc = %{gcc_rpmvers}
%endif
%if "%{gcc_version}" >= "4.2.0"
BuildRequires: flex bison
%endif
BuildRequires: texinfo >= 4.2
BuildRequires: rtems-4.11-m68k-rtems4.11-binutils
Requires: rtems-4.11-gcc-common
Requires: rtems-4.11-m68k-rtems4.11-binutils
Requires: rtems-4.11-m68k-rtems4.11-gcc-libgcc = %{gcc_rpmvers}-%{release}
Requires: rtems-4.11-m68k-rtems4.11-newlib = %{newlib_version}-1%{?dist}
%define _gcclibdir %{_prefix}/lib
%if "%{gcc_version}" == "4.4.3"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.3-rtems4.10-20100210.diff
%endif
%if "%{gcc_version}" == "4.4.2"
Source0: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.4.2-rtems4.10-20091104.diff
%endif
%{?_without_sources:NoSource: 0}
%if "%{gcc_version}" == "4.4.3"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%if "%{gcc_version}" == "4.4.2"
Source1: ftp://ftp.gnu.org/gnu/gcc/gcc-%{gcc_pkgvers}/gcc-g++-%{gcc_pkgvers}.tar.bz2
%endif
%{?_without_sources:NoSource: 1}
%if "%{newlib_version}" == "1.18.0"
Source50: ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_pkgvers}.tar.gz
Patch50: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.18.0-rtems4.10-20100310.diff
%endif
%{?_without_sources:NoSource: 50}
%if "%{gcc_version}" >= "4.3.0"
Source60: http://www.mpfr.org/mpfr-current/mpfr-%{mpfr_version}.tar.bz2
%endif
%description
Cross gcc for m68k-rtems4.11.
%prep
%setup -c -T -n %{name}-%{version}
%setup -q -T -D -n %{name}-%{version} -a0
%{?PATCH0:%patch0 -p0}
%setup -q -T -D -n %{name}-%{version} -a1
%{?PATCH1:%patch1 -p0}
%setup -q -T -D -n %{name}-%{version} -a50
cd newlib-%{newlib_version}
%{?PATCH50:%patch50 -p1}
cd ..
# Copy the C library into gcc's source tree
ln -s ../newlib-%{newlib_version}/newlib gcc-%{gcc_pkgvers}
%if 0%{?_build_mpfr}
%setup -q -T -D -n %{name}-%{version} -a60
%{?PATCH60:%patch60 -p1}
# Build mpfr one-tree style
ln -s ../mpfr-%{mpfr_version} gcc-%{gcc_pkgvers}/mpfr
%endif
echo "RTEMS gcc-%{gcc_version}-1%{?dist}/newlib-%{newlib_version}-1%{?dist}" > gcc-%{gcc_pkgvers}/gcc/DEV-PHASE
# Fix timestamps
cd gcc-%{gcc_pkgvers}
contrib/gcc_update --touch
cd ..
%build
mkdir -p build
cd build
languages="c"
languages="$languages,c++"
export PATH="%{_bindir}:${PATH}"
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
CC="%{_host}-gcc ${RPM_OPT_FLAGS}" \
%else
# gcc is not ready to be compiled with -std=gnu99
CC=$(echo "%{__cc} ${RPM_OPT_FLAGS}" | sed -e 's,-std=gnu99 ,,') \
%endif
../gcc-%{gcc_pkgvers}/configure \
--prefix=%{_prefix} \
--bindir=%{_bindir} \
--exec_prefix=%{_exec_prefix} \
--includedir=%{_includedir} \
--libdir=%{_gcclibdir} \
--libexecdir=%{_libexecdir} \
--mandir=%{_mandir} \
--infodir=%{_infodir} \
--datadir=%{_datadir} \
--build=%_build --host=%_host \
--target=m68k-rtems4.11 \
--disable-libstdcxx-pch \
--with-gnu-as --with-gnu-ld --verbose \
--with-newlib \
--with-system-zlib \
--disable-nls --without-included-gettext \
--disable-win32-registry \
--enable-version-specific-runtime-libs \
--enable-threads \
--enable-newlib-io-c99-formats \
--enable-languages="$languages" $optargs
%if "%_host" != "%_build"
# Bug in gcc-3.2.1:
# Somehow, gcc doesn't get syslimits.h right for Cdn-Xs
mkdir -p gcc/include
cp ../gcc-%{gcc_pkgvers}/gcc/gsyslimits.h gcc/include/syslimits.h
%endif
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
cd ..
cd build/m68k-rtems4.11/newlib
make DESTDIR=$RPM_BUILD_ROOT install-info
cd ../../..
%if "%{gcc_version}" <= "4.1.2"
# Misplaced header file
if test -f $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h; then
mv $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h \
$RPM_BUILD_ROOT%{_gcclibdir}/gcc/m68k-rtems4.11/%{gcc_version}/include/
fi
%endif
# host library
%if "%{gcc_version}" >= "4.2.0"
# libiberty doesn't honor --libdir, but always installs to a
# magically guessed _libdir
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty.a
%else
# libiberty installs to --libdir=...
rm -f ${RPM_BUILD_ROOT}%{_gcclibdir}/libiberty.a
%endif
# We use the version from binutils
rm -f $RPM_BUILD_ROOT%{_bindir}/m68k-rtems4.11-c++filt%{_exeext}
# We don't ship info/dir
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# Bug in gcc-3.4.0pre
rm -f $RPM_BUILD_ROOT%{_bindir}/m68k-rtems4.11-m68k-rtems4.11-gcjh%{_exeext}
# Bug in gcc-3.3.x/gcc-3.4.x: Despite we don't need fixincludes, it installs
# the fixinclude-install-tools
rm -rf ${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/m68k-rtems4.11/%{gcc_version}/install-tools
rm -rf ${RPM_BUILD_ROOT}%{_libexecdir}/gcc/m68k-rtems4.11/%{gcc_version}/install-tools
# Bug in gcc > 4.1.0: Installs an unused, empty directory
if test -d ${RPM_BUILD_ROOT}%{_prefix}/m68k-rtems4.11/include/bits; then
rmdir ${RPM_BUILD_ROOT}%{_prefix}/m68k-rtems4.11/include/bits
fi
# Collect multilib subdirectories
multilibs=`build/gcc/xgcc -Bbuild/gcc/ --print-multi-lib | sed -e 's,;.*$,,'`
echo "%defattr(-,root,root,-)" > build/files.newlib
TGTDIR="%{_exec_prefix}/m68k-rtems4.11/lib"
for i in $multilibs; do
case $i in
\.) echo "%dir ${TGTDIR}" >> build/files.newlib
;;
*) echo "%dir ${TGTDIR}/$i" >> build/files.newlib
;;
esac
done
rm -f dirs ;
echo "%defattr(-,root,root,-)" >> dirs
TGTDIR="%{_gcclibdir}/gcc/m68k-rtems4.11/%{gcc_version}"
for i in $multilibs; do
case $i in
\.) ;; # ignore, handled elsewhere
*) echo "%dir ${TGTDIR}/$i" >> dirs
;;
esac
done
# Collect files to go into different packages
cp dirs build/files.gcc
cp dirs build/files.gfortran
cp dirs build/files.objc
cp dirs build/files.gcj
cp dirs build/files.g++
TGTDIR="%{_gcclibdir}/gcc/m68k-rtems4.11/%{gcc_version}"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i ;; # ignore: gcc produces bogus libtool libs
*f771) ;;
*f951) ;;
*cc1) ;;
*cc1obj) ;;
*cc1plus) ;; # ignore: explicitly put into rpm elsewhere
*collect2) ;;
*libobjc*) echo "$i" >> build/files.objc ;;
*include/objc*) ;;
*include/g++*);;
*include/c++*);;
*include-fixed/*);;
*finclude/*);;
*adainclude*);;
*adalib*);;
*gnat1);;
*jc1) ;;
*jvgenmain) ;;
*/libgfortran*.*) echo "$i" >> build/files.gfortran ;;
*/libstdc++.*) echo "$i" >> build/files.g++ ;;
*/libsupc++.*) echo "$i" >> build/files.g++ ;;
*) echo "$i" >> build/files.gcc ;;
esac
done
TGTDIR="%{_exec_prefix}/m68k-rtems4.11/lib"
f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
for i in $f; do
case $i in
*lib*.la) rm ${RPM_BUILD_ROOT}/$i;; # ignore - gcc produces bogus libtool libs
*libiberty.a) rm ${RPM_BUILD_ROOT}/$i ;; # ignore - GPL'ed
# all other files belong to newlib
*) echo "$i" >> build/files.newlib ;;
esac
done
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m68k-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/m68k-rtems4.11/'} | %__find_provides
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
%define __find_provides %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
#!/bin/sh
grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m68k-rtems4.11/(lib|include|sys-root)' \
%{?_gcclibdir:| grep -v '^${RPM_BUILD_ROOT}%{_gcclibdir}/gcc/m68k-rtems4.11/'} | %__find_requires
EOF
chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%define __find_requires %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
%ifnarch noarch
# Extract %%__debug_install_post into debug_install_post~
cat << \EOF > debug_install_post~
%__debug_install_post
EOF
# Generate customized debug_install_post script
cat debug_install_post~ | while read a x y; do
case $a in
# Prevent find-debuginfo.sh* from trying to handle foreign binaries
*/find-debuginfo.sh)
b=$(basename $a)
sed -e 's,find "$RPM_BUILD_ROOT" !,find "$RPM_BUILD_ROOT"%_bindir "$RPM_BUILD_ROOT"%_libexecdir !,' $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm/find-debuginfo.sh,./find-debuginfo.sh,' \
< debug_install_post~ > debug_install_post
%define __debug_install_post . ./debug_install_post
%endif
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# rtems-4.11-m68k-rtems4.11-gcc
# ==============================================================
# %package -n rtems-4.11-m68k-rtems4.11-gcc
# Summary: GNU cc compiler for m68k-rtems4.11
# Group: Development/Tools
# Version: %{gcc_rpmvers}
# Requires: rtems-4.11-m68k-rtems4.11-binutils
# Requires: rtems-4.11-m68k-rtems4.11-newlib = %{newlib_version}-1%{?dist}
# License: GPL
# %if %build_infos
# Requires: rtems-4.11-gcc-common
# %endif
%description -n rtems-4.11-m68k-rtems4.11-gcc
GNU cc compiler for m68k-rtems4.11.
# ==============================================================
# rtems-4.11-m68k-rtems4.11-gcc-libgcc
# ==============================================================
%package -n rtems-4.11-m68k-rtems4.11-gcc-libgcc
Summary: libgcc for m68k-rtems4.11-gcc
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-m68k-rtems4.11-newlib = %{newlib_version}-1%{?dist}
License: GPL
%description -n rtems-4.11-m68k-rtems4.11-gcc-libgcc
libgcc m68k-rtems4.11-gcc.
%files -n rtems-4.11-m68k-rtems4.11-gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/m68k-rtems4.11-gcc.1*
%{_mandir}/man1/m68k-rtems4.11-cpp.1*
%{_mandir}/man1/m68k-rtems4.11-gcov.1*
%dir %{_bindir}
%{_bindir}/m68k-rtems4.11-cpp%{_exeext}
%{_bindir}/m68k-rtems4.11-gcc%{_exeext}
%{_bindir}/m68k-rtems4.11-gcc-%{gcc_version}%{_exeext}
%{_bindir}/m68k-rtems4.11-gcov%{_exeext}
%{_bindir}/m68k-rtems4.11-gccbug
%dir %{_libexecdir}
%dir %{_libexecdir}/gcc
%dir %{_libexecdir}/gcc/m68k-rtems4.11
%dir %{_libexecdir}/gcc/m68k-rtems4.11/%{gcc_version}
%{_libexecdir}/gcc/m68k-rtems4.11/%{gcc_version}/cc1%{_exeext}
%{_libexecdir}/gcc/m68k-rtems4.11/%{gcc_version}/collect2%{_exeext}
%files -n rtems-4.11-m68k-rtems4.11-gcc-libgcc -f build/files.gcc
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_gcclibdir}
%dir %{_gcclibdir}/gcc
%dir %{_gcclibdir}/gcc/m68k-rtems4.11
%dir %{_gcclibdir}/gcc/m68k-rtems4.11/%{gcc_version}
%dir %{_gcclibdir}/gcc/m68k-rtems4.11/%{gcc_version}/include
%if "%{gcc_version}" > "4.0.3"
%if "m68k-rtems4.11" != "bfin-rtems4.10"
%if "m68k-rtems4.11" != "avr-rtems4.10"
%dir %{_gcclibdir}/gcc/m68k-rtems4.11/%{gcc_version}/include/ssp
%endif
%endif
%endif
%if "%{gcc_version}" >= "4.3.0"
%{_gcclibdir}/gcc/m68k-rtems4.11/%{gcc_version}/include-fixed
%endif
# ==============================================================
# rtems-4.11-gcc-common
# ==============================================================
%package -n rtems-4.11-gcc-common
Summary: Base package for rtems gcc and newlib C Library
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: GPL
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-gcc-common
GCC files that are shared by all targets.
%files -n rtems-4.11-gcc-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/cpp.info*
%{_infodir}/cppinternals.info*
%{_infodir}/gcc.info*
%{_infodir}/gccint.info*
%{_infodir}/gccinstall.info*
%dir %{_mandir}
%dir %{_mandir}/man7
%{_mandir}/man7/fsf-funding.7*
%{_mandir}/man7/gfdl.7*
%{_mandir}/man7/gpl.7*
%post -n rtems-4.11-gcc-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
%preun -n rtems-4.11-gcc-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cpp.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/cppinternals.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gcc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gccinstall.info.gz || :
fi
# ==============================================================
# rtems-4.11-m68k-rtems4.11-gcc-c++
# ==============================================================
%package -n rtems-4.11-m68k-rtems4.11-gcc-c++
Summary: GCC c++ compiler for m68k-rtems4.11
Group: Development/Tools
Version: %{gcc_rpmvers}
License: GPL
Requires: rtems-4.11-m68k-rtems4.11-gcc-libstdc++ = %{gcc_rpmvers}-%{release}
%if "%{_build}" != "%{_host}"
BuildRequires: rtems-4.11-m68k-rtems4.11-gcc-c++ = %{gcc_rpmvers}
%endif
Requires: rtems-4.11-gcc-common
Requires: rtems-4.11-m68k-rtems4.11-gcc = %{gcc_rpmvers}-%{release}
%description -n rtems-4.11-m68k-rtems4.11-gcc-c++
GCC c++ compiler for m68k-rtems4.11.
%package -n rtems-4.11-m68k-rtems4.11-gcc-libstdc++
Summary: libstdc++ for m68k-rtems4.11
Group: Development/Tools
Version: %{gcc_rpmvers}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: GPL
%description -n rtems-4.11-m68k-rtems4.11-gcc-libstdc++
%{summary}
%files -n rtems-4.11-m68k-rtems4.11-gcc-c++
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/m68k-rtems4.11-g++.1*
%dir %{_bindir}
%{_bindir}/m68k-rtems4.11-c++%{_exeext}
%{_bindir}/m68k-rtems4.11-g++%{_exeext}
%dir %{_libexecdir}
%dir %{_libexecdir}/gcc
%dir %{_libexecdir}/gcc/m68k-rtems4.11
%dir %{_libexecdir}/gcc/m68k-rtems4.11/%{gcc_version}
%{_libexecdir}/gcc/m68k-rtems4.11/%{gcc_version}/cc1plus%{_exeext}
%files -n rtems-4.11-m68k-rtems4.11-gcc-libstdc++ -f build/files.g++
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_gcclibdir}
%dir %{_gcclibdir}/gcc
%dir %{_gcclibdir}/gcc/m68k-rtems4.11
%dir %{_gcclibdir}/gcc/m68k-rtems4.11/%{gcc_version}
%dir %{_gcclibdir}/gcc/m68k-rtems4.11/%{gcc_version}/include
%{_gcclibdir}/gcc/m68k-rtems4.11/%{gcc_version}/include/c++
# ==============================================================
# rtems-4.11-m68k-rtems4.11-newlib
# ==============================================================
%package -n rtems-4.11-m68k-rtems4.11-newlib
Summary: C Library (newlib) for m68k-rtems4.11
Group: Development/Tools
License: Distributable
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
Requires: rtems-4.11-newlib-common
%description -n rtems-4.11-m68k-rtems4.11-newlib
Newlib C Library for m68k-rtems4.11.
%files -n rtems-4.11-m68k-rtems4.11-newlib -f build/files.newlib
%defattr(-,root,root)
%dir %{_exec_prefix}
%dir %{_exec_prefix}/m68k-rtems4.11
%{_exec_prefix}/m68k-rtems4.11/include
# ==============================================================
# rtems-4.11-newlib-common
# ==============================================================
%package -n rtems-4.11-newlib-common
Summary: Base package for RTEMS newlib C Library
Group: Development/Tools
Version: %{newlib_version}
Release: 1%{?dist}
%{?_with_noarch_subpackages:BuildArch: noarch}
License: Distributable
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%description -n rtems-4.11-newlib-common
newlib files that are shared by all targets.
%files -n rtems-4.11-newlib-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/libc.info*
%{_infodir}/libm.info*
%post -n rtems-4.11-newlib-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
%preun -n rtems-4.11-newlib-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libc.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/libm.info.gz || :
fi

View File

@@ -0,0 +1,319 @@
#
# Please send bugfixes or comments to
# http://www.rtems.org/bugzilla
#
%define _prefix /opt/rtems-4.11
%define _exec_prefix %{_prefix}
%define _bindir %{_exec_prefix}/bin
%define _sbindir %{_exec_prefix}/sbin
%define _libexecdir %{_exec_prefix}/libexec
%define _datarootdir %{_prefix}/share
%define _datadir %{_datarootdir}
%define _sysconfdir %{_prefix}/etc
%define _sharedstatedir %{_prefix}/com
%define _localstatedir %{_prefix}/var
%define _includedir %{_prefix}/include
%define _libdir %{_exec_prefix}/%{_lib}
%define _mandir %{_datarootdir}/man
%define _infodir %{_datarootdir}/info
%define _localedir %{_datarootdir}/locale
%ifos cygwin cygwin32 mingw mingw32
%define _exeext .exe
%define debug_package %{nil}
%define _libdir %{_exec_prefix}/lib
%else
%define _exeext %{nil}
%endif
%ifos cygwin cygwin32
%define optflags -O3 -pipe -march=i486 -funroll-loops
%endif
%ifos mingw mingw32
%if %{defined _mingw32_cflags}
%define optflags %{_mingw32_cflags}
%else
%define optflags -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -mms-bitfields
%endif
%endif
%if "%{_build}" != "%{_host}"
%define _host_rpmprefix %{_host}-
%else
%define _host_rpmprefix %{nil}
%endif
%define gdb_version 7.0.90
%define gdb_rpmvers %{expand:%(echo 7.0.90 | tr - _)}
Name: rtems-4.11-m68k-rtems4.11-gdb
Summary: Gdb for target m68k-rtems4.11
Group: Development/Tools
Version: %{gdb_rpmvers}
Release: 1%{?dist}
License: GPL/LGPL
URL: http://sources.redhat.com/gdb
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: %{_host_rpmprefix}gcc
%define build_sim --enable-sim
%if "%{_build}" != "%{_host}"
# psim doesn't support Cdn-X
%if "m68k-rtems4.11" == "powerpc-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%ifos mingw mingw32
# Mingw lacks functions required by the simulator
%if "m68k-rtems4.11" == "sparc-rtems4.10"
%define build_sim --disable-sim
%endif
%if "m68k-rtems4.11" == "h8300-rtems4.10"
%define build_sim --disable-sim
%endif
%if "%{gdb_version}" >= "6.8.50"
%if "m68k-rtems4.11" == "m32c-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "m68k-rtems4.11" == "lm32-rtems4.10"
%define build_sim --disable-sim
%endif
%if "m68k-rtems4.11" == "mipstx39-rtems4.10"
%define build_sim --disable-sim
%endif
%endif
%if "%{gdb_version}" >= "6.6"
# suse
%if "%{?suse}" >= "10.3"
BuildRequires: libexpat-devel
%else
# Fedora/CentOS/Cygwin/MinGW
BuildRequires: %{_host_rpmprefix}expat-devel
%endif
%endif
%if "%{gdb_version}" < "6.7"
%if "%{_build}" != "%{_host}"
BuildRequires: %{_host_rpmprefix}termcap-devel
%endif
%bcond_with system_readline
%else
%bcond_without system_readline
%endif
%{?with_system_readline:BuildRequires: %{_host_rpmprefix}readline-devel}
BuildRequires: %{_host_rpmprefix}ncurses-devel
%if "%{gdb_version}" >= "6.8.50"
%if "%{_build}" != "%{_host}"
# Can't build python Cdn-X
%bcond_with python
%else
%bcond_without python
%endif
%endif
%{?with_python:BuildRequires: %{_host_rpmprefix}python-devel}
# Required for building the infos
BuildRequires: /sbin/install-info
BuildRequires: texinfo >= 4.2
Requires: rtems-4.11-gdb-common
%if "%{gdb_version}" == "7.0.90"
Source0: ftp://sourceware.org/pub/gdb/snapshots/branch/gdb-7.0.90.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-7.0.90-rtems4.10-20100225.diff
%endif
%if "%{gdb_version}" == "7.0.1"
Source0: ftp://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gdb-%{gdb_version}-rtems4.10-20091222.diff
%endif
%description
GDB for target m68k-rtems4.11
%prep
%setup -q -c -T -n %{name}-%{version}
%setup -q -D -T -n %{name}-%{version} -a0
cd gdb-%{gdb_version}
%{?PATCH0:%patch0 -p1}
cd ..
# Force using a system-provided libreadline
%{?with_system_readline:rm -f gdb-%{gdb_version}/readline/configure}
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall" \
%endif
CFLAGS="$RPM_OPT_FLAGS" \
../gdb-%{gdb_version}/configure \
--build=%_build --host=%_host \
--target=m68k-rtems4.11 \
--verbose --disable-nls \
--without-included-gettext \
--disable-win32-registry \
--disable-werror \
%{build_sim} \
%{?with_system_readline:--with-system-readline} \
%if "%{gdb_version}" >= "6.6"
--with-expat \
%endif
%if "%{gdb_version}" >= "6.8.50"
%if %{with python}
--with-python \
%else
--without-python \
%endif
%endif
--prefix=%{_prefix} --bindir=%{_bindir} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
make %{?_smp_mflags} all
make info
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $RPM_BUILD_ROOT
cd build
make DESTDIR=$RPM_BUILD_ROOT install
rm -f $RPM_BUILD_ROOT%{_infodir}/dir
touch $RPM_BUILD_ROOT%{_infodir}/dir
# These come from other packages
rm -rf $RPM_BUILD_ROOT%{_infodir}/bfd*
rm -rf $RPM_BUILD_ROOT%{_infodir}/configure*
rm -rf $RPM_BUILD_ROOT%{_infodir}/standards*
# We don't ship host files
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libiberty*
# host library, installed to a bogus directory
rm -f ${RPM_BUILD_ROOT}%{_libdir}/libm68k-rtems4.11-sim.a
%if "%{gdb_version}" >= "7.0"
# Bug in gdb-7.0, bogusly installs linux-only files
somethinguseful=0
for f in ${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls/*.xml; do
case $f in
*linux.xml) rm -f $f;;
*.xml) somethinguseful=1;;
esac
done
if test $somethinguseful -eq 0; then
rm -rf "${RPM_BUILD_ROOT}%{_datadir}/gdb/syscalls"
fi
%endif
cd ..
# Extract %%__os_install_post into os_install_post~
cat << \EOF > os_install_post~
%__os_install_post
EOF
# Generate customized brp-*scripts
cat os_install_post~ | while read a x y; do
case $a in
# Prevent brp-strip* from trying to handle foreign binaries
*/brp-strip*)
b=$(basename $a)
sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
chmod a+x $b
;;
# Fix up brp-compress to handle %%_prefix != /usr
*/brp-compress*)
b=$(basename $a)
sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
chmod a+x $b
;;
esac
done
sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
-e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
< os_install_post~ > os_install_post
%define __os_install_post . ./os_install_post
%clean
rm -rf $RPM_BUILD_ROOT
# ==============================================================
# m68k-rtems4.11-gdb
# ==============================================================
# %package -n rtems-4.11-m68k-rtems4.11-gdb
# Summary: rtems gdb for m68k-rtems4.11
# Group: Development/Tools
# %if %build_infos
# Requires: rtems-4.11-gdb-common
# %endif
%description -n rtems-4.11-m68k-rtems4.11-gdb
GNU gdb targetting m68k-rtems4.11.
%files -n rtems-4.11-m68k-rtems4.11-gdb
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_mandir}
%dir %{_mandir}/man1
%{_mandir}/man1/m68k-rtems4.11-*.1*
%dir %{_bindir}
%{_bindir}/m68k-rtems4.11-*
# ==============================================================
# rtems-4.11-gdb-common
# ==============================================================
%package -n rtems-4.11-gdb-common
Summary: Base package for RTEMS gdbs
Group: Development/Tools
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
%{?_with_noarch_subpackages:BuildArch: noarch}
%description -n rtems-4.11-gdb-common
GDB files shared by all targets.
%post -n rtems-4.11-gdb-common
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
%preun -n rtems-4.11-gdb-common
if [ $1 -eq 0 ]; then
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdb.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/gdbint.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/stabs.info.gz || :
/sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/annotate.info.gz || :
fi
%files -n rtems-4.11-gdb-common
%defattr(-,root,root)
%dir %{_prefix}
%dir %{_prefix}/share
%dir %{_infodir}
%ghost %{_infodir}/dir
%{_infodir}/gdb.info*
%{_infodir}/gdbint.info*
%{_infodir}/stabs.info*
%{_infodir}/annotate.info*

View File

@@ -0,0 +1,3 @@
Makefile
Makefile.in
*.spec.in

View File

@@ -0,0 +1,32 @@
# $Id$
TARGET = mips-rtems4.11
include $(top_srcdir)/mkspec.am
BINUTILS_VERS = 2.20.1
BINUTILS_PKGVERS = $(BINUTILS_VERS)
BINUTILS_RPMREL = 1
include ../binutils.am
BINUTILS_OPTS +=
GCC_VERS = 4.4.3
GCC_PKGVERS = $(GCC_VERS)
GCC_RPMREL = 1
NEWLIB_VERS = 1.18.0
NEWLIB_PKGVERS = $(NEWLIB_VERS)
NEWLIB_RPMREL = `expr $(GCC_RPMREL)`
include ../gcc.am
GCC_OPTS += --languages=cxx
GDB_VERS = 7.0.90
GDB_PKGVERS = $(GDB_VERS)
GDB_RPMREL = 1
include ../gdb.am
GDB_OPTS +=
CPUKIT_VERS = 4.9.99.0
CPUKIT_PKGVERS = $(CPUKIT_VERS)-20090206-2
CPUKIT_RPMREL = 1
include ../cpukit.am
CPUKIT_OPTS +=

View File

@@ -0,0 +1,2 @@
Source0: ftp://ftp.gnu.org/gnu/binutils/binutils-%{binutils_pkgvers}.tar.bz2
Patch0: ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/binutils-2.20.1-rtems4.10-20100310.diff

Some files were not shown because too many files have changed in this diff Show More