Add support for RTEMS 4.10.

This change adds support for RTEMS 4.10 tools plus builds the latest
RTEMS 4.10.2 release.
This commit is contained in:
Chris Johns
2013-03-20 09:41:23 +11:00
parent 5439e8f060
commit e3aa3551fa
25 changed files with 535 additions and 15 deletions

View File

@@ -0,0 +1,28 @@
#
# Tools Set for RTEMS AVR 4.10 Stable
#
%define release 1
%define rtems_arch avr
#
# The RTEMS 4.10 base defines.
#
%include rtems-4.10-base.bset
#
# Disable building a C++ compiler.
# configure: error: unable to detect exception model
#
%define enable_cxx 0
%define rtems_cxx 0
#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-binutils-2.20.1-1
tools/rtems-gcc-4.4.7-newlib-1.18.0-1
tools/rtems-gdb-7.3.1-1
tools/rtems-kernel-4.10.2

View File

@@ -0,0 +1 @@
chris@kaka.contemporary.net.au.15313:1362261116

View File

@@ -0,0 +1,18 @@
#
# All RTEMS 4.10 Tools Sets
#
4.10/rtems-autotools
4.10/rtems-arm
4.10/rtems-avr
4.10/rtems-bfin
4.10/rtems-i386
4.10/rtems-lm32
4.10/rtems-m32c
4.10/rtems-m32r
4.10/rtems-m68k
4.10/rtems-mips
4.10/rtems-nios2
4.10/rtems-powerpc
4.10/rtems-sh
4.10/rtems-sparc

View File

@@ -0,0 +1,26 @@
#
# Tools Set for RTEMS ARM 4.10 Stable
#
%define release 1
%define rtems_arch arm
#
# The RTEMS 4.10 base defines.
#
%include rtems-4.10-base.bset
#
# Disable the tests because the samples do not build.
#
%define rtems_tests disable
#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-binutils-2.20.1-1
tools/rtems-gcc-4.4.7-newlib-1.18.0-1
tools/rtems-gdb-7.3.1-1
tools/rtems-kernel-4.10.2

View File

@@ -0,0 +1,23 @@
#
# Tools Set for RTEMS 4.9 Autotools Stable
#
%define release 1
%define rtems_arch none
#
# The RTEMS 4.9 base defines.
#
%include rtems-4.9-base.bset
#
# The autotoolspackage.
#
package: rtems-%{rtems_version}-autotools-%{release}
#
# Tools configuration.
#
autoconf-2.69-1
automake-1.12.2-1

View File

@@ -0,0 +1,29 @@
#
# Tools Set for RTEMS AVR 4.10 Stable
#
%define release 1
%define rtems_arch avr
#
# The RTEMS 4.10 base defines.
#
%include rtems-4.10-base.bset
#
# Disable building a C++ compiler.
# configure: error: unable to detect exception model
#
%define enable_cxx 0
%define rtems_cxx 0
#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-binutils-2.20.1-1
tools/rtems-gcc-4.4.7-newlib-1.18.0-1
tools/rtems-gdb-7.3.1-1
tools/rtems-kernel-4.10.2

View File

@@ -0,0 +1,21 @@
#
# Tools Set for RTEMS BFIN 4.10 Stable
#
%define release 1
%define rtems_arch bfin
#
# The RTEMS 4.10 base defines.
#
%include rtems-4.10-base.bset
#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-binutils-2.20.1-1
tools/rtems-gcc-4.4.7-newlib-1.18.0-1
tools/rtems-gdb-7.3.1-1
tools/rtems-kernel-4.10.2

View File

@@ -0,0 +1,21 @@
#
# Tools Set for RTEMS H8300 4.10 Stable
#
%define release 1
%define rtems_arch h8300
#
# The RTEMS 4.10 base defines.
#
%include rtems-4.10-base.bset
#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-binutils-2.20.1-1
tools/rtems-gcc-4.4.7-newlib-1.18.0-1
tools/rtems-gdb-7.3.1-1
tools/rtems-kernel-4.10.2

View File

@@ -0,0 +1,21 @@
#
# Tools Set for RTEMS i386 4.10 Stable
#
%define release 1
%define rtems_arch i386
#
# The RTEMS 4.10 base defines.
#
%include rtems-4.10-base.bset
#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-binutils-2.20.1-1
tools/rtems-gcc-4.4.7-newlib-1.18.0-1
tools/rtems-gdb-7.3.1-1
tools/rtems-kernel-4.10.2

View File

@@ -0,0 +1,21 @@
#
# Tools Set for RTEMS LM32 4.10 Stable
#
%define release 1
%define rtems_arch lm32
#
# The RTEMS 4.10 base defines.
#
%include rtems-4.10-base.bset
#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-binutils-2.20.1-1
tools/rtems-gcc-4.4.7-newlib-1.18.0-1
tools/rtems-gdb-7.3.1-1
tools/rtems-kernel-4.10.2

View File

@@ -0,0 +1,27 @@
#
# Tools Set for RTEMS M32C 4.10 Stable
#
%define release 1
%define rtems_arch m32c
#
# The RTEMS 4.10 base defines.
#
%include rtems-4.10-base.bset
#
# Disable building a C++ compiler.
#
%define enable_cxx 0
%define rtems_cxx 0
#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-binutils-2.20.1-1
tools/rtems-gcc-4.4.7-newlib-1.18.0-1
tools/rtems-gdb-7.3.1-1
tools/rtems-kernel-4.10.2

View File

@@ -0,0 +1,21 @@
#
# Tools Set for RTEMS M32R 4.10 Stable
#
%define release 1
%define rtems_arch m32r
#
# The RTEMS 4.10 base defines.
#
%include rtems-4.10-base.bset
#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-binutils-2.20.1-1
tools/rtems-gcc-4.4.7-newlib-1.18.0-1
tools/rtems-gdb-7.3.1-1
tools/rtems-kernel-4.10.2

View File

@@ -0,0 +1,21 @@
#
# Tools Set for RTEMS m68k 4.10 Stable
#
%define release 1
%define rtems_arch m68k
#
# The RTEMS 4.10 base defines.
#
%include rtems-4.10-base.bset
#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-binutils-2.20.1-1
tools/rtems-gcc-4.4.7-newlib-1.18.0-1
tools/rtems-gdb-7.3.1-1
tools/rtems-kernel-4.10.2

View File

@@ -0,0 +1,21 @@
#
# Tools Set for RTEMS MIPS 4.10 Stable
#
%define release 1
%define rtems_arch mips
#
# The RTEMS 4.10 base defines.
#
%include rtems-4.10-base.bset
#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-binutils-2.20.1-1
tools/rtems-gcc-4.4.7-newlib-1.18.0-1
tools/rtems-gdb-7.3.1-1
tools/rtems-kernel-4.10.2

View File

@@ -0,0 +1,22 @@
#
# Tools Set for RTEMS NIOS 4.10 Stable
#
# The NIOS source is a special version released by Altera.
#
%define release 1
%define rtems_arch nios2
#
# The RTEMS 4.10 base defines.
#
%include rtems-4.10-base.bset
#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-nios2-binutils-2.20-1
tools/rtems-nios2-gcc-4.1-newlib-1.19.0-1
tools/rtems-nios2-gdb-7.0-1

View File

@@ -0,0 +1,21 @@
#
# Tools Set for RTEMS PowerPC 4.10 Stable
#
%define release 1
%define rtems_arch powerpc
#
# The RTEMS 4.10 base defines.
#
%include rtems-4.10-base.bset
#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-binutils-2.20.1-1
tools/rtems-gcc-4.4.7-newlib-1.18.0-1
tools/rtems-gdb-7.3.1-1
tools/rtems-kernel-4.10.2

View File

@@ -0,0 +1,21 @@
#
# Tools Set for RTEMS SH 4.10 Stable
#
%define release 1
%define rtems_arch sh
#
# The RTEMS 4.10 base defines.
#
%include rtems-4.10-base.bset
#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-binutils-2.20.1-1
tools/rtems-gcc-4.4.7-newlib-1.18.0-1
tools/rtems-gdb-7.3.1-1
tools/rtems-kernel-4.10.2

View File

@@ -0,0 +1,21 @@
#
# Tools Set for RTEMS SPARC 4.10 Stable
#
%define release 1
%define rtems_arch sparc
#
# The RTEMS 4.10 base defines.
#
%include rtems-4.10-base.bset
#
# Tools configuration.
#
expat-2.1.0-1
tools/rtems-binutils-2.20.1-1
tools/rtems-gcc-4.4.7-newlib-1.18.0-1
tools/rtems-gdb-7.3.1-1
tools/rtems-kernel-4.10.2

View File

@@ -0,0 +1,7 @@
#
# Base defines for RTEMS 4.10
#
%define rtems_version 4.10
%include rtems-base.bset

View File

@@ -0,0 +1,28 @@
#
# Base defines for RTEMS
#
#
# Define the build target.
#
%define _target %{rtems_arch}-rtems%{rtems_version}
#
# The generic package name.
#
package: rtems-%{rtems_version}-%{_target}-%{release}
#
# Project custom message
#
%define gcc_version_message RTEMS %{rtems_version}-RSB(%{_sbgit_id})-%{release},gcc-%{gcc_version}/newlib-%{newlib_version}
#
# The RTEMS http git URL.
#
%define rtems_http_git http://git.rtems.org
%define rtems_git_tools %{rtems_http_git}/rtems-tools.git/plain/tools/%{rtems_version}
%define rtems_binutils_patches %{rtems_git_tools}/binutils
%define rtems_gcc_patches %{rtems_git_tools}/gcc
%define rtems_newlib_patches %{rtems_git_tools}/newlib
%define rtems_gdb_patches %{rtems_git_tools}/gdb

View File

@@ -7,7 +7,7 @@
%define binutils_version 2.20.1
Patch0: binutils-2.20.1-rtems4.10-20100826.diff
Patch0: %{rtems_binutils_patches}/binutils-2.20.1-rtems4.10-20100826.diff
#
# The binutils build instructions. We use 2.xx Release 1.

View File

@@ -7,22 +7,14 @@
%define gcc_version 4.4.7
%define newlib_version 1.18.0
%define mpfr_version 2.4.1
%define mpc_version 0.8.2
%define mpfr_version 2.4.2
%define mpc_version 0.8.1
%define gmp_version 5.0.5
%define with_threads 1
%define with_plugin 0
%define with_iconv 1
#
# AVR C++ does not work.
# configure: error: unable to detect exception model
#
%if %{_target} == avr-rtems4.10
%define enable_cxx 0
%endif
#
# M32C C++ does not work.
# gcc-4.4.7/libstdc++-v3/src/mt_allocator.cc:76: error: cast from 'void*' to 'size_t' loses precision
@@ -38,11 +30,12 @@
#
# The RTEMS 4.10 patches
#
Patch0: gcc-core-4.4.7-rtems4.10-20120314.diff
Patch0: %{rtems_gcc_patches}/gcc-core-4.4.7-rtems4.10-20120314.diff
%if %{enable_cxx}
Patch1: gcc-g++-4.4.7-rtems4.10-20120314.diff
Patch1: %{rtems_gcc_patches}/gcc-g++-4.4.7-rtems4.10-20120314.diff
%endif
Patch10: newlib-1.18.0-rtems4.10-20110518.diff
Patch10: %{rtems_newlib_patches}/newlib-1.18.0-rtems4.10-20110518.diff
%include rtems-gcc-patches.cfg
#
# The gcc/newlib build instructions. We use 4.4 Release 1.

View File

@@ -7,7 +7,7 @@
%define gdb_version 7.3.1
Patch0: gdb-7.3.1-rtems4.10-20120918.diff
Patch0: %{rtems_gdb_patches}/gdb-7.3.1-rtems4.10-20120918.diff
#
# The gdb build instructions. We use 7.xx Release 1.

View File

@@ -0,0 +1,95 @@
#
# RTEMS 4.xx Version 1.
#
# This configuration file configure's, make's and install's RTEMS.
#
%include %{_configdir}/checks.cfg
Name: %{_target}-kernel-%{rtems_kernel_version}-%{release}
Summary: RTEMS v%{rtems_kernel_version} for target %{_target} on host %{_host}
Version: %{rtems_kernel_version}
Release: %{release}
URL: http://www..rtems.org/
BuildRoot: %{_tmppath}/%{name}-root-%(%{__id_u} -n)
#
# Source
#
%ifn %{defined Source0}
Source0: http://www.rtems.org/ftp/pub/rtems/%{rtems_kernel_version}/rtems-%{rtems_kernel_version}.tar.bz2
%endif
#
# Default set up.
#
%ifn %{defined rtems_posix}
%define rtems_posix 1
%endif
%ifn %{defined rtems_networking}
%define rtems_networking 1
%endif
%ifn %{defined rtems_cxx}
%define rtems_cxx 1
%endif
%ifn %{defined rtems_tests}
%define rtems_tests samples
%endif
%if %{rtems_tests} == disable
%define rtems_tests_opt --disable-tests
%else
%define rtems_tests_opt --enable-tests=%{rtems_tests}
%endif
#
# Prepare the source code.
#
%prep
%setup -q -c -n %{name}-%{version}
cd rtems-%{rtems_kernel_version}
%{?patch0:%patch0 %{?patch0_opts:%{patch0_opts}}%{!?patch0_opts:-p1}}
%{?patch1:%patch1 %{?patch1_opts:%{patch1_opts}}%{!?patch1_opts:-p1}}
%{?patch2:%patch2 %{?patch2_opts:%{patch2_opts}}%{!?patch2_opts:-p1}}
%{?patch3:%patch3 %{?patch3_opts:%{patch3_opts}}%{!?patch3_opts:-p1}}
%{?patch4:%patch4 %{?patch4_opts:%{patch4_opts}}%{!?patch4_opts:-p1}}
%{?patch5:%patch5 %{?patch5_opts:%{patch5_opts}}%{!?patch5_opts:-p1}}
%{?patch6:%patch6 %{?patch6_opts:%{patch6_opts}}%{!?patch6_opts:-p1}}
%{?patch7:%patch7 %{?patch7_opts:%{patch7_opts}}%{!?patch7_opts:-p1}}
%{?patch8:%patch8 %{?patch8_opts:%{patch8_opts}}%{!?patch8_opts:-p1}}
%{?patch9:%patch9 %{?patch9_opts:%{patch9_opts}}%{!?patch9_opts:-p1}}
cd ..
%build
export PATH="%{_bindir}:${PATH}"
mkdir -p build
cd build
%{?host_force_32bit:HOST_FORCE_32BIT="-m32"}
%if "%{_build}" != "%{_host}"
CFLAGS_FOR_BUILD="-g -O2 -Wall ${HOST_FORCE_32BIT}" \
%endif
CFLAGS="$SB_OPT_FLAGS" \
../rtems-%{rtems_kernel_version}/configure \
--build=%{_build} --host=%{_host} \
--target=%{_target} \
%{?rtems_posix:--enable-posix}%{!?rtems_posix:--disable-posix} \
%{?rtems_networking:--enable-networking}%{!?rtems_networking:--disable-networking} \
%{?rtems_cxx:--enable-cxx}%{!?rtems_cxx:--disable-cxx} \
%{rtems_tests_opt} \
--target=%{_target} \
--prefix=%{_prefix} --bindir=%{_bindir} \
--exec-prefix=%{_exec_prefix} \
--includedir=%{_includedir} --libdir=%{_libdir} \
--mandir=%{_mandir} --infodir=%{_infodir}
%{__make} %{?_smp_mflags} all
cd ..
%install
export PATH="%{_bindir}:${PATH}"
rm -rf $SB_BUILD_ROOT
cd build
%{__make} DESTDIR=$SB_BUILD_ROOT install
cd ..

View File

@@ -0,0 +1,13 @@
#
# RTEMS 4.10.2
#
%include %{_configdir}/checks.cfg
%include %{_configdir}/base.cfg
%define rtems_kernel_version 4.10.2
#
# The RTEMS build instructions. We use 4.xx Release 1.
#
%include tools/rtems-kernel-4-1.cfg