[PATCH] [RSB] Add support for building rtems-or1k tool-chain.

Hesham ALMatary heshamelmatary at gmail.com
Sun May 25 00:12:54 UTC 2014


From: Hesham AL-Matary <heshamelmatary at gmail.com>

Configuration files get the following releases:
- binutils-2.24
- newlib-2.1.0
- gcc-4.8.2
- gdb-7.7

Patches are mix of OpenRISC original patches and other
additions to build the previous releases for RTEMS.
---
 rtems/config/4.11/rtems-or1k.bset                  | 26 ++++++
 rtems/config/tools/rtems-binutils-2.24-or1k.cfg    | 25 ++++++
 .../tools/rtems-gcc-4.8.2-newlib-2.1.0-or1k.cfg    | 39 +++++++++
 rtems/config/tools/rtems-gdb-7.7-or1k.cfg          | 28 +++++++
 source-builder/config/gdb-7-7-or1k.cfg             | 95 ++++++++++++++++++++++
 5 files changed, 213 insertions(+)
 create mode 100644 rtems/config/4.11/rtems-or1k.bset
 create mode 100644 rtems/config/tools/rtems-binutils-2.24-or1k.cfg
 create mode 100644 rtems/config/tools/rtems-gcc-4.8.2-newlib-2.1.0-or1k.cfg
 create mode 100644 rtems/config/tools/rtems-gdb-7.7-or1k.cfg
 create mode 100644 source-builder/config/gdb-7-7-or1k.cfg

diff --git a/rtems/config/4.11/rtems-or1k.bset b/rtems/config/4.11/rtems-or1k.bset
new file mode 100644
index 0000000..dbc95e7
--- /dev/null
+++ b/rtems/config/4.11/rtems-or1k.bset
@@ -0,0 +1,26 @@
+#
+# Tools Set for RTEMS or1k 4.11 Stable
+#
+
+%define release 1
+
+%define rtems_arch or1k
+
+#
+# The RTEMS 4.11 BSP to build and test
+#
+%define rtems_bsps      all
+
+#
+# The RTEMS 4.11 base defines.
+#
+%include rtems-4.11-base.bset
+
+#
+# Tools configuration.
+#
+4.11/rtems-autotools
+devel/expat-2.1.0-1
+tools/rtems-binutils-2.24-or1k
+tools/rtems-gcc-4.8.2-newlib-2.1.0-or1k
+tools/rtems-gdb-7.7-or1k
diff --git a/rtems/config/tools/rtems-binutils-2.24-or1k.cfg b/rtems/config/tools/rtems-binutils-2.24-or1k.cfg
new file mode 100644
index 0000000..d1e352a
--- /dev/null
+++ b/rtems/config/tools/rtems-binutils-2.24-or1k.cfg
@@ -0,0 +1,25 @@
+#
+# Binutils 2.24.
+#
+
+%include %{_configdir}/checks.cfg
+%include %{_configdir}/base.cfg
+
+%define binutils_version 2.24
+
+#
+# Enable deterministic archives by default. This will be the default
+# there all tools using this binutils will create deterministic
+# archives.
+#
+%define with_deterministic_archives 1
+
+#
+# or1k patches
+#
+%patch add binutils -p1 https://raw.githubusercontent.com/heshamelmatary/or1k-rtems/master/patches/binutils-2.24-or1k-rtems.diff
+
+#
+# The binutils build instructions. We use 2.xx Release 1.
+#
+%include %{_configdir}/binutils-2-1.cfg
diff --git a/rtems/config/tools/rtems-gcc-4.8.2-newlib-2.1.0-or1k.cfg b/rtems/config/tools/rtems-gcc-4.8.2-newlib-2.1.0-or1k.cfg
new file mode 100644
index 0000000..be4b7cc
--- /dev/null
+++ b/rtems/config/tools/rtems-gcc-4.8.2-newlib-2.1.0-or1k.cfg
@@ -0,0 +1,39 @@
+#
+# GCC 4.8.2., Newlib-2.1.0 
+#
+
+%include %{_configdir}/checks.cfg
+%include %{_configdir}/base.cfg
+%include %{_configdir}/versions.cfg
+
+%define newlib_version 2.1.0 
+%define gcc_version    4.8.2
+%define mpfr_version   3.0.1
+%define mpc_version    0.8.2
+%define gmp_version    5.0.5
+
+%define with_threads 1 
+%define with_plugin  0
+
+%ifn %{defined with_iconv}
+%define with_iconv 1
+%endif
+
+#
+# Chris's patch to use the POSIX thread model for C++.
+#
+%patch add gcc %{rtems_gcc_patches}/gcc-rtems-thread-model-posix-1.diff
+
+#
+# or1k patch for gcc-4.8.2
+#
+%patch add gcc -p1 https://raw.githubusercontent.com/heshamelmatary/or1k-rtems/master/patches/gcc-4.8.2-or1k-rtems-29-4-2014.diff
+
+#
+# newlib-2.1.0 or1k patch
+#
+%patch add newlib -p1 https://raw.githubusercontent.com/heshamelmatary/or1k-rtems/master/patches/newlib-cvs-or1k-rtems-29-4-2014.diff
+
+# The gcc/newlib build instructions. We use 4.8 Release 1.
+#
+%include %{_configdir}/gcc-4.8-1.cfg
diff --git a/rtems/config/tools/rtems-gdb-7.7-or1k.cfg b/rtems/config/tools/rtems-gdb-7.7-or1k.cfg
new file mode 100644
index 0000000..676e250
--- /dev/null
+++ b/rtems/config/tools/rtems-gdb-7.7-or1k.cfg
@@ -0,0 +1,28 @@
+#
+# GDB 7.7.
+#
+
+%include %{_configdir}/checks.cfg
+%include %{_configdir}/base.cfg
+
+%define gdb_version 7.7
+
+#
+# Clean up the sim-arange inline code so it builds.
+#
+%patch add gdb %{rtems_gdb_patches}/gdb-sim-arange-inline.diff
+%patch add gdb %{rtems_gdb_patches}/gdb-sim-cgen-inline.diff
+
+#
+# or1k patch 
+#
+%patch add gdb -p1 https://raw.githubusercontent.com/heshamelmatary/or1k-rtems/master/patches/gdb-7.7-or1k-rtems.diff 
+
+%if %{_build_os} == freebsd
+ %patch add gdb -p0 %{rtems_gdb_patches}/patch-gdb-python-python-config.py
+%endif
+
+#
+# The gdb build instructions. We use 7.xx Release 1.
+#
+%include %{_configdir}/gdb-7-7-or1k.cfg
diff --git a/source-builder/config/gdb-7-7-or1k.cfg b/source-builder/config/gdb-7-7-or1k.cfg
new file mode 100644
index 0000000..04d748f
--- /dev/null
+++ b/source-builder/config/gdb-7-7-or1k.cfg
@@ -0,0 +1,95 @@
+#
+# GDB 7.xx Version 1.
+#
+# This configuration file configure's, make's and install's gdb.
+#
+
+%include %{_configdir}/checks.cfg
+
+#
+# Select Snapshot Macro Maps
+#
+%select gdb-snapshot
+%select expat-snapshot
+
+#
+# The description.
+#
+Name:      %{_target}-gdb-%{gdb_version}-%{release}
+Summary:   GDB v%{gdb_version} for target %{_target} on host %{_host}
+Version:   %{gdb_version}
+Release:   %{release}
+URL: 	   http://www.gnu.org/software/gdb/
+BuildRoot: %{_tmppath}/%{name}-root-%(%{__id_u} -n)
+
+#
+# Source
+#
+%source set gdb http://ftp.gnu.org/gnu/gdb/gdb-%{gdb_version}.tar.bz2
+
+#
+#
+# Prepare the source code.
+#
+%prep
+  build_top=$(pwd)
+
+  source_dir_gdb="gdb-%{gdb_version}"
+  %source setup gdb -q -n gdb-%{gdb_version}
+  %patch setup gdb -p1
+
+  cd ${build_top}
+
+%build
+  build_top=$(pwd)
+
+  %{build_directory}
+
+  mkdir -p ${build_dir}
+  cd ${build_dir}
+
+  %{host_build_flags}
+
+  if test "%{_build}" != "%{_host}" ; then
+    GDB_LIBS_STATIC="-lexpat"
+  else
+    GDB_LIBS_STATIC="-lexpat"
+    GDB_LIBS="%{_forced_static}"
+  fi
+
+  LIBS_STATIC=${GDB_LIBS_STATIC} \
+  LIBS=${GDB_LIBS} \
+  ../${source_dir_gdb}/configure \
+    --build=%{_build} --host=%{_host} \
+    --target=%{_target} \
+    --verbose --disable-nls \
+    --without-included-gettext \
+    --disable-win32-registry \
+    --disable-werror \
+    --disable-sim \
+    --with-expat \
+    --without-python \
+    --prefix=%{_prefix} --bindir=%{_bindir} \
+    --exec-prefix=%{_exec_prefix} \
+    --includedir=%{_includedir} --libdir=%{_libdir} \
+    --mandir=%{_mandir} --infodir=%{_infodir}
+
+  %{__make} %{?_smp_mflags} all
+
+  cd ${build_top}
+
+%install
+  build_top=$(pwd)
+
+  %{__rmdir} $SB_BUILD_ROOT
+
+  cd ${build_dir}
+  %{__make} DESTDIR=$SB_BUILD_ROOT install
+
+  # Dropped in FSF-binutils-2.9.5, but Cygwin still ships it.
+  %{__rmdir} $SB_BUILD_ROOT%{_infodir}/configure.info*
+
+  %{__rmfile} $SB_BUILD_ROOT%{_infodir}/dir
+  touch $SB_BUILD_ROOT%{_infodir}/dir
+
+  cd ${build_top}
-- 
1.8.3.1




More information about the devel mailing list