summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--meta/conf/distro/include/poky-eabi3.inc20
-rw-r--r--meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-2.16.91.0.6-objcopy-rename-errorcode.patch31
-rw-r--r--meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-2.17-csl-tc-arm-mmxwc-polymorphism.patch25
-rw-r--r--meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-100-uclibc-conf.patch139
-rw-r--r--meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-300-001_ld_makefile_patch.patch50
-rw-r--r--meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-300-006_better_file_error.patch43
-rw-r--r--meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-300-012_check_ldrunpath_length.patch47
-rw-r--r--meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-400-mips-ELF_MAXPAGESIZE-4K.patch26
-rw-r--r--meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-702-binutils-skip-comments.patch93
-rw-r--r--meta/packages/binutils/binutils-cross_csl-arm-2006q1.bb34
-rw-r--r--meta/packages/binutils/binutils_csl-arm-2006q1.bb138
-rw-r--r--meta/packages/gcc/gcc-cross-initial_csl-arm-2006q1.bb32
-rw-r--r--meta/packages/gcc/gcc-cross_csl-arm-2006q1.bb19
-rw-r--r--meta/packages/gcc/gcc-csl-arm/gcc-configure-no-fortran.patch1075
-rw-r--r--meta/packages/gcc/gcc-package-cross-no-fortran.inc66
-rw-r--r--meta/packages/gcc/gcc-package-no-fortran.inc103
-rw-r--r--meta/packages/gcc/gcc4-build-cross.inc6
-rw-r--r--meta/packages/gcc/gcc4-build.inc100
-rw-r--r--meta/packages/gcc/gcc_csl-arm-2006q1.bb30
19 files changed, 2074 insertions, 3 deletions
diff --git a/meta/conf/distro/include/poky-eabi3.inc b/meta/conf/distro/include/poky-eabi3.inc
new file mode 100644
index 000000000..427cdaa5c
--- /dev/null
+++ b/meta/conf/distro/include/poky-eabi3.inc
@@ -0,0 +1,20 @@
+#
+# Poky configuration to use EABI
+#
+
+PREFERRED_PROVIDER_virtual/arm-poky-linux-gnueabi-libc-for-gcc = "glibc-intermediate"
+PREFERRED_PROVIDER_virtual/arm-linux-libc-for-gcc = "glibc-intermediate"
+
+PREFERRED_VERSION_gcc ?= "4.1.0+csl-arm-2006q1-6"
+PREFERRED_VERSION_gcc-cross ?= "4.1.0+csl-arm-2006q1-6"
+PREFERRED_VERSION_gcc-cross-initial ?= "4.1.0+csl-arm-2006q1-6"
+PREFERRED_VERSION_binutils ?= "2.17+csl-arm-2006q1-6"
+PREFERRED_VERSION_binutils-cross ?= "2.17+csl-arm-2006q1-6"
+PREFERRED_VERSION_linux-libc-headers ?= "2.6.15.99"
+PREFERRED_VERSION_glibc ?= "2.4"
+PREFERRED_VERSION_glibc-intermediate ?= "2.4"
+
+#Use the ARM EABI when building for an ARM cpu. We can't use overrides
+#here because this breaks all places where ":=" is used.
+TARGET_VENDOR = "${@['','-poky'][bb.data.getVar('TARGET_ARCH',d,1)=='arm']}"
+TARGET_OS = "linux${@['','-gnueabi'][bb.data.getVar('TARGET_ARCH',d,1)=='arm']}" \ No newline at end of file
diff --git a/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-2.16.91.0.6-objcopy-rename-errorcode.patch b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-2.16.91.0.6-objcopy-rename-errorcode.patch
new file mode 100644
index 000000000..4461bedd4
--- /dev/null
+++ b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-2.16.91.0.6-objcopy-rename-errorcode.patch
@@ -0,0 +1,31 @@
+# strip (and objcopy) fail to set the error code if there is no
+# output file name and the rename of the stripped (or copied) file
+# fails, yet the command fails to do anything. This fixes both
+# objcopy and strip.
+#
+# modification by bero: Ported to 2.16.91.0.6
+#
+#Signed-off-by: John Bowler <jbowler@acm.org>
+#Signed-off-by: Bernhard Rosenkraenzer <bero@arklinux.org>
+--- binutils-2.16.91.0.6/binutils/objcopy.c.ark 2006-03-11 15:59:07.000000000 +0100
++++ binutils-2.16.91.0.6/binutils/objcopy.c 2006-03-11 15:59:45.000000000 +0100
+@@ -2593,7 +2593,8 @@
+ if (preserve_dates)
+ set_times (tmpname, &statbuf);
+ if (output_file == NULL)
+- smart_rename (tmpname, argv[i], preserve_dates);
++ if(smart_rename (tmpname, argv[i], preserve_dates))
++ hold_status = 1;
+ status = hold_status;
+ }
+ else
+@@ -3184,7 +3185,8 @@
+ {
+ if (preserve_dates)
+ set_times (tmpname, &statbuf);
+- smart_rename (tmpname, input_filename, preserve_dates);
++ if (smart_rename (tmpname, input_filename, preserve_dates))
++ status = 1;
+ }
+ else
+ unlink (tmpname);
diff --git a/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-2.17-csl-tc-arm-mmxwc-polymorphism.patch b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-2.17-csl-tc-arm-mmxwc-polymorphism.patch
new file mode 100644
index 000000000..9d16011a0
--- /dev/null
+++ b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-2.17-csl-tc-arm-mmxwc-polymorphism.patch
@@ -0,0 +1,25 @@
+--- binutils-2.17/gas/config/tc-arm.c.orig 2006-09-05 14:59:25.000000000 +0100
++++ binutils-2.17/gas/config/tc-arm.c 2006-09-05 14:59:25.000000000 +0100
+@@ -1252,13 +1252,15 @@
+ }
+
+ /* Undo polymorphism when a set of register types may be accepted. */
+- if ((type == REG_TYPE_NDQ
+- && (reg->type == REG_TYPE_NQ || reg->type == REG_TYPE_VFD))
+- || (type == REG_TYPE_VFSD
+- && (reg->type == REG_TYPE_VFS || reg->type == REG_TYPE_VFD))
+- || (type == REG_TYPE_NSDQ
+- && (reg->type == REG_TYPE_VFS || reg->type == REG_TYPE_VFD
+- || reg->type == REG_TYPE_NQ)))
++ if (((type == REG_TYPE_NDQ
++ && (reg->type == REG_TYPE_NQ || reg->type == REG_TYPE_VFD))
++ || (type == REG_TYPE_VFSD
++ && (reg->type == REG_TYPE_VFS || reg->type == REG_TYPE_VFD))
++ || (type == REG_TYPE_NSDQ
++ && (reg->type == REG_TYPE_VFS || reg->type == REG_TYPE_VFD
++ || reg->type == REG_TYPE_NQ)))
++ ||(type == REG_TYPE_MMXWC
++ && (reg->type == REG_TYPE_MMXWCG)))
+ type = reg->type;
+
+ if (type != reg->type)
diff --git a/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-100-uclibc-conf.patch b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-100-uclibc-conf.patch
new file mode 100644
index 000000000..25222e5df
--- /dev/null
+++ b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-100-uclibc-conf.patch
@@ -0,0 +1,139 @@
+--- binutils-2.16.91.0.7/bfd/configure
++++ binutils-2.16.91.0.7/bfd/configure
+@@ -3576,7 +3576,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux-gnu*|linux-uclibc*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- binutils-2.16.91.0.7/binutils/configure
++++ binutils-2.16.91.0.7/binutils/configure
+@@ -3411,7 +3411,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux-gnu*|linux-uclibc*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- binutils-2.16.91.0.7/configure
++++ binutils-2.16.91.0.7/configure
+@@ -1270,7 +1270,7 @@
+ am33_2.0-*-linux*)
+ noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+ ;;
+- sh-*-linux*)
++ sh*-*-linux*)
+ noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+ ;;
+ sh*-*-pe|mips*-*-pe|*arm-wince-pe)
+@@ -1578,7 +1578,7 @@
+ romp-*-*)
+ noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
+ ;;
+- sh-*-* | sh64-*-*)
++ sh*-*-* | sh64-*-*)
+ case "${host}" in
+ i[3456789]86-*-vsta) ;; # don't add gprof back in
+ i[3456789]86-*-go32*) ;; # don't add gprof back in
+--- binutils-2.16.91.0.7/configure.in
++++ binutils-2.16.91.0.7/configure.in
+@@ -468,7 +468,7 @@
+ am33_2.0-*-linux*)
+ noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+ ;;
+- sh-*-linux*)
++ sh*-*-linux*)
+ noconfigdirs="$noconfigdirs ${libgcj} target-newlib target-libgloss"
+ ;;
+ sh*-*-pe|mips*-*-pe|*arm-wince-pe)
+@@ -776,7 +776,7 @@
+ romp-*-*)
+ noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes target-libgloss ${libgcj}"
+ ;;
+- sh-*-* | sh64-*-*)
++ sh*-*-* | sh64-*-*)
+ case "${host}" in
+ i[[3456789]]86-*-vsta) ;; # don't add gprof back in
+ i[[3456789]]86-*-go32*) ;; # don't add gprof back in
+--- binutils-2.16.91.0.7/gas/configure
++++ binutils-2.16.91.0.7/gas/configure
+@@ -3411,7 +3411,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux-gnu*|linux-uclibc*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- binutils-2.16.91.0.7/gprof/configure
++++ binutils-2.16.91.0.7/gprof/configure
+@@ -3419,6 +3419,11 @@
+ lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+ ;;
+
++linux-uclibc*)
++ lt_cv_deplibs_check_method=pass_all
++ lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
++ ;;
++
+ netbsd* | knetbsd*-gnu)
+ if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
+--- binutils-2.16.91.0.7/ld/configure
++++ binutils-2.16.91.0.7/ld/configure
+@@ -3413,7 +3413,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux-gnu*|linux-uclibc*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- binutils-2.16.91.0.7/libtool.m4
++++ binutils-2.16.91.0.7/libtool.m4
+@@ -739,7 +739,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux-gnu*|linux-uclibc*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+--- binutils-2.16.91.0.7/ltconfig
++++ binutils-2.16.91.0.7/ltconfig
+@@ -602,6 +602,7 @@
+
+ # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
+ case $host_os in
++linux-uclibc*) ;;
+ linux-gnu*) ;;
+ linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
+ esac
+@@ -1247,7 +1248,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux-gnu*|linux-uclibc*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+--- binutils-2.16.91.0.7/opcodes/configure
++++ binutils-2.16.91.0.7/opcodes/configure
+@@ -3579,7 +3579,7 @@
+ ;;
+
+ # This must be Linux ELF.
+-linux-gnu*)
++linux-gnu*|linux-uclibc*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
diff --git a/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-300-001_ld_makefile_patch.patch b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-300-001_ld_makefile_patch.patch
new file mode 100644
index 000000000..04a7e61e2
--- /dev/null
+++ b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-300-001_ld_makefile_patch.patch
@@ -0,0 +1,50 @@
+#!/bin/sh -e
+## 001_ld_makefile_patch.dpatch
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Description: correct where ld scripts are installed
+## DP: Author: Chris Chimelis <chris@debian.org>
+## DP: Upstream status: N/A
+## DP: Date: ??
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
+
+case "$1" in
+ -patch) patch $patch_opts -p1 < $0;;
+ -unpatch) patch $patch_opts -p1 -R < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+--- binutils-2.16.91.0.1/ld/Makefile.am
++++ binutils-2.16.91.0.1/ld/Makefile.am
+@@ -20,7 +20,7 @@
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+
+ EMUL = @EMUL@
+ EMULATION_OFILES = @EMULATION_OFILES@
+--- binutils-2.16.91.0.1/ld/Makefile.in
++++ binutils-2.16.91.0.1/ld/Makefile.in
+@@ -268,7 +268,7 @@
+ # We put the scripts in the directory $(scriptdir)/ldscripts.
+ # We can't put the scripts in $(datadir) because the SEARCH_DIR
+ # directives need to be different for native and cross linkers.
+-scriptdir = $(tooldir)/lib
++scriptdir = $(libdir)
+ BASEDIR = $(srcdir)/..
+ BFDDIR = $(BASEDIR)/bfd
+ INCDIR = $(BASEDIR)/include
diff --git a/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-300-006_better_file_error.patch b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-300-006_better_file_error.patch
new file mode 100644
index 000000000..f337611ed
--- /dev/null
+++ b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-300-006_better_file_error.patch
@@ -0,0 +1,43 @@
+#!/bin/sh -e
+## 006_better_file_error.dpatch by David Kimdon <dwhedon@gordian.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Specify which filename is causing an error if the filename is a
+## DP: directory. (#45832)
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
+
+case "$1" in
+ -patch) patch $patch_opts -p1 < $0;;
+ -unpatch) patch $patch_opts -p1 -R < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c binutils-2.14.90.0.6/bfd/opncls.c
+--- /home/james/debian/packages/binutils/binutils-2.14.90.0.6/bfd/opncls.c 2003-07-23 16:08:09.000000000 +0100
++++ binutils-2.14.90.0.6/bfd/opncls.c 2003-09-10 22:35:00.000000000 +0100
+@@ -150,6 +150,13 @@
+ {
+ bfd *nbfd;
+ const bfd_target *target_vec;
++ struct stat s;
++
++ if (stat (filename, &s) == 0)
++ if (S_ISDIR(s.st_mode)) {
++ bfd_set_error (bfd_error_file_not_recognized);
++ return NULL;
++ }
+
+ nbfd = _bfd_new_bfd ();
+ if (nbfd == NULL)
diff --git a/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-300-012_check_ldrunpath_length.patch b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-300-012_check_ldrunpath_length.patch
new file mode 100644
index 000000000..498651a90
--- /dev/null
+++ b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-300-012_check_ldrunpath_length.patch
@@ -0,0 +1,47 @@
+#!/bin/sh -e
+## 012_check_ldrunpath_length.dpatch by Chris Chimelis <chris@debian.org>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Only generate an RPATH entry if LD_RUN_PATH is not empty, for
+## DP: cases where -rpath isn't specified. (#151024)
+
+if [ $# -ne 1 ]; then
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1
+fi
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
+
+case "$1" in
+ -patch) patch $patch_opts -p1 < $0;;
+ -unpatch) patch $patch_opts -p1 -R < $0;;
+ *)
+ echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+ exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+diff -urNad /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em binutils-2.15/ld/emultempl/elf32.em
+--- /home/james/debian/packages/binutils/new/binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:58.000000000 +0100
++++ binutils-2.15/ld/emultempl/elf32.em 2004-05-21 23:12:59.000000000 +0100
+@@ -692,6 +692,8 @@
+ && command_line.rpath == NULL)
+ {
+ lib_path = (const char *) getenv ("LD_RUN_PATH");
++ if ((lib_path) && (strlen (lib_path) == 0))
++ lib_path = NULL;
+ if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
+ force))
+ break;
+@@ -871,6 +873,8 @@
+ rpath = command_line.rpath;
+ if (rpath == NULL)
+ rpath = (const char *) getenv ("LD_RUN_PATH");
++ if ((rpath) && (strlen (rpath) == 0))
++ rpath = NULL;
+ if (! (bfd_elf_size_dynamic_sections
+ (output_bfd, command_line.soname, rpath,
+ command_line.filter_shlib,
diff --git a/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-400-mips-ELF_MAXPAGESIZE-4K.patch b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-400-mips-ELF_MAXPAGESIZE-4K.patch
new file mode 100644
index 000000000..5959c718d
--- /dev/null
+++ b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-400-mips-ELF_MAXPAGESIZE-4K.patch
@@ -0,0 +1,26 @@
+--- binutils/bfd/elf32-mips.c~
++++ binutils/bfd/elf32-mips.c
+@@ -1613,7 +1613,9 @@
+
+ /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
+ page sizes of up to that limit, so we need to respect it. */
+-#define ELF_MAXPAGESIZE 0x10000
++/*#define ELF_MAXPAGESIZE 0x10000*/
++/* Use 4K to shrink the elf header. NOT for general use! */
++#define ELF_MAXPAGESIZE 0x1000
+ #define elf32_bed elf32_tradbed
+
+ /* Include the target file again for this target. */
+--- binutils/bfd/elfn32-mips.c~
++++ binutils/bfd/elfn32-mips.c
+@@ -2399,7 +2399,9 @@
+
+ /* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses
+ page sizes of up to that limit, so we need to respect it. */
+-#define ELF_MAXPAGESIZE 0x10000
++/*#define ELF_MAXPAGESIZE 0x10000*/
++/* Use 4K to shrink the elf header. NOT for general use! */
++#define ELF_MAXPAGESIZE 0x1000
+ #define elf32_bed elf32_tradbed
+
+ /* Include the target file again for this target. */
diff --git a/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-702-binutils-skip-comments.patch b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-702-binutils-skip-comments.patch
new file mode 100644
index 000000000..9ef7a7c9e
--- /dev/null
+++ b/meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-702-binutils-skip-comments.patch
@@ -0,0 +1,93 @@
+Retrieved from http://sources.redhat.com/ml/binutils/2004-04/msg00646.html
+Fixes
+localealias.s:544: Error: junk at end of line, first unrecognized character is `,'
+when building glibc-2.3.2 with gcc-3.4.0 and binutils-2.15.90.0.3
+
+Paths adjusted to match crosstool's patcher.
+
+Message-Id: m3n052qw2g.fsf@whitebox.m5r.de
+From: Andreas Schwab <schwab at suse dot de>
+To: Nathan Sidwell <nathan at codesourcery dot com>
+Cc: Ian Lance Taylor <ian at wasabisystems dot com>, binutils at sources dot redhat dot com
+Date: Fri, 23 Apr 2004 22:27:19 +0200
+Subject: Re: demand_empty_rest_of_line and ignore_rest_of_line
+
+Nathan Sidwell <nathan@codesourcery.com> writes:
+
+> Index: read.c
+> ===================================================================
+> RCS file: /cvs/src/src/gas/read.c,v
+> retrieving revision 1.76
+> diff -c -3 -p -r1.76 read.c
+> *** read.c 12 Mar 2004 17:48:12 -0000 1.76
+> --- read.c 18 Mar 2004 09:56:05 -0000
+> *************** read_a_source_file (char *name)
+> *** 1053,1059 ****
+> #endif
+> input_line_pointer--;
+> /* Report unknown char as ignored. */
+> ! ignore_rest_of_line ();
+> }
+>
+> #ifdef md_after_pass_hook
+> --- 1053,1059 ----
+> #endif
+> input_line_pointer--;
+> /* Report unknown char as ignored. */
+> ! demand_empty_rest_of_line ();
+> }
+>
+> #ifdef md_after_pass_hook
+
+This means that the unknown character is no longer ignored, despite the
+comment. As a side effect a line starting with a line comment character
+not followed by APP in NO_APP mode now triggers an error instead of just a
+warning, breaking builds of glibc on m68k-linux. Earlier in
+read_a_source_file where #APP is handled there is another comment that
+claims that unknown comments are ignored, when in fact they aren't (only
+the initial line comment character is skipped).
+
+Note that the presence of #APP will mess up the line counters, but
+that appears to be difficult to fix.
+
+Andreas.
+
+2004-04-23 Andreas Schwab <schwab@suse.de>
+
+ * read.c (read_a_source_file): Ignore unknown text after line
+ comment character. Fix misleading comment.
+
+--- binutils/gas/read.c.~1.78.~ 2004-04-23 08:58:23.000000000 +0200
++++ binutils/gas/read.c 2004-04-23 21:49:01.000000000 +0200
+@@ -950,10 +950,14 @@ read_a_source_file (char *name)
+ unsigned int new_length;
+ char *tmp_buf = 0;
+
+- bump_line_counters ();
+ s = input_line_pointer;
+ if (strncmp (s, "APP\n", 4))
+- continue; /* We ignore it */
++ {
++ /* We ignore it */
++ ignore_rest_of_line ();
++ continue;
++ }
++ bump_line_counters ();
+ s += 4;
+
+ sb_new (&sbuf);
+@@ -1052,7 +1056,7 @@ read_a_source_file (char *name)
+ continue;
+ #endif
+ input_line_pointer--;
+- /* Report unknown char as ignored. */
++ /* Report unknown char as error. */
+ demand_empty_rest_of_line ();
+ }
+
+
+--
+Andreas Schwab, SuSE Labs, schwab@suse.de
+SuSE Linux AG, Maxfeldstra&#xC3;e 5, 90409 N&#xC3;rnberg, Germany
+Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
+"And now for something completely different."
diff --git a/meta/packages/binutils/binutils-cross_csl-arm-2006q1.bb b/meta/packages/binutils/binutils-cross_csl-arm-2006q1.bb
new file mode 100644
index 000000000..07f2b33fa
--- /dev/null
+++ b/meta/packages/binutils/binutils-cross_csl-arm-2006q1.bb
@@ -0,0 +1,34 @@
+SECTION = "devel"
+require binutils_csl-arm-2006q1.bb
+inherit cross
+DEPENDS += "flex-native bison-native"
+PROVIDES = "virtual/${TARGET_PREFIX}binutils"
+FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/binutils-${PV}"
+PACKAGES = ""
+EXTRA_OECONF = "--with-sysroot=${CROSS_DIR}/${TARGET_SYS} \
+ --program-prefix=${TARGET_PREFIX}"
+
+S = "${WORKDIR}/binutils-2.17"
+
+do_stage () {
+ oe_runmake install
+
+ # We don't really need these, so we'll remove them...
+ rm -rf ${CROSS_DIR}/lib/ldscripts
+ rm -rf ${CROSS_DIR}/share/info
+ rm -rf ${CROSS_DIR}/share/locale
+ rm -rf ${CROSS_DIR}/share/man
+ rmdir ${CROSS_DIR}/share || :
+ rmdir ${CROSS_DIR}/${libdir}/gcc-lib || :
+ rmdir ${CROSS_DIR}/${libdir} || :
+ rmdir ${CROSS_DIR}/${prefix} || :
+
+ # We want to move this into the target specific location
+ mkdir -p ${CROSS_DIR}/${TARGET_SYS}/lib
+ mv -f ${CROSS_DIR}/lib/libiberty.a ${CROSS_DIR}/${TARGET_SYS}/lib
+ rmdir ${CROSS_DIR}/lib || :
+}
+
+do_install () {
+ :
+}
diff --git a/meta/packages/binutils/binutils_csl-arm-2006q1.bb b/meta/packages/binutils/binutils_csl-arm-2006q1.bb
new file mode 100644
index 000000000..76c8fe53d
--- /dev/null
+++ b/meta/packages/binutils/binutils_csl-arm-2006q1.bb
@@ -0,0 +1,138 @@
+DESCRIPTION = "A GNU collection of binary utilities"
+HOMEPAGE = "http://www.gnu.org/software/binutils/"
+SECTION = "devel"
+LICENSE = "GPL"
+DEFAULT_PREFERENCE = "-1"
+
+BINV = "2.17"
+PV = "2.17+csl-arm-2006q1-6"
+
+#FILESDIR = "${FILE_DIRNAME}/binutils-"
+
+S = "${WORKDIR}/binutils-2.17"
+
+inherit autotools gettext
+
+PACKAGES = "${PN} ${PN}-dev ${PN}-doc ${PN}-symlinks"
+
+FILES_${PN} = " \
+ ${bindir}/${TARGET_PREFIX}* \
+ ${libdir}/lib*-*.so \
+ ${prefix}/${TARGET_SYS}/bin/*"
+
+FILES_${PN}-dev = " \
+ ${includedir} \
+ ${libdir}/*.a \
+ ${libdir}/*.la \
+ ${libdir}/libbfd.so \
+ ${libdir}/libopcodes.so"
+
+FILES_${PN}-symlinks = " \
+ ${bindir}/addr2line \
+ ${bindir}/ar \
+ ${bindir}/as \
+ ${bindir}/c++filt \
+ ${bindir}/gprof \
+ ${bindir}/ld \
+ ${bindir}/nm \
+ ${bindir}/objcopy \
+ ${bindir}/objdump \
+ ${bindir}/ranlib \
+ ${bindir}/readelf \
+ ${bindir}/size \
+ ${bindir}/strings \
+ ${bindir}/strip"
+
+SRC_URI = \
+ "http://www.codesourcery.com/public/gnu_toolchain/arm-none-eabi/arm-2006q1-6-arm-none-eabi.src.tar.bz2 \
+ file://binutils-2.17-csl-tc-arm-mmxwc-polymorphism.patch;patch=1;pnum=1\
+ file://binutils-2.16.91.0.6-objcopy-rename-errorcode.patch;patch=1;pnum=1\
+ file://binutils-uclibc-100-uclibc-conf.patch;patch=1;pnum=1 \
+ file://binutils-uclibc-300-001_ld_makefile_patch.patch;patch=1;pnum=1 \
+ file://binutils-uclibc-300-006_better_file_error.patch;patch=1;pnum=1 \
+ file://binutils-uclibc-300-012_check_ldrunpath_length.patch;patch=1;pnum=1 \
+ file://binutils-uclibc-400-mips-ELF_MAXPAGESIZE-4K.patch;patch=1;pnum=1 \
+ file://binutils-uclibc-702-binutils-skip-comments.patch;patch=1;pnum=1"
+
+do_unpack2() {
+ cd ${WORKDIR}
+ pwd
+ tar -xvjf ./arm-2006q1-6-arm-none-eabi/binutils-2006q1-6.tar.bz2
+}
+
+addtask unpack2 after do_unpack before do_patch
+
+B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
+
+EXTRA_OECONF = "--program-prefix=${TARGET_PREFIX} \
+ --enable-shared"
+
+# This is necessary due to a bug in the binutils Makefiles
+EXTRA_OEMAKE = "configure-build-libiberty all"
+
+export AR = "${HOST_PREFIX}ar"
+export AS = "${HOST_PREFIX}as"
+export LD = "${HOST_PREFIX}ld"
+export NM = "${HOST_PREFIX}nm"
+export RANLIB = "${HOST_PREFIX}ranlib"
+export OBJCOPY = "${HOST_PREFIX}objcopy"
+export OBJDUMP = "${HOST_PREFIX}objdump"
+
+export AR_FOR_TARGET = "${TARGET_PREFIX}ar"
+export AS_FOR_TARGET = "${TARGET_PREFIX}as"
+export LD_FOR_TARGET = "${TARGET_PREFIX}ld"
+export NM_FOR_TARGET = "${TARGET_PREFIX}nm"
+export RANLIB_FOR_TARGET = "${TARGET_PREFIX}ranlib"
+
+export CC_FOR_HOST = "${CCACHE} ${HOST_PREFIX}gcc ${HOST_CC_ARCH}"
+export CXX_FOR_HOST = "${CCACHE} ${HOST_PREFIX}gcc ${HOST_CC_ARCH}"
+
+export CC_FOR_BUILD = "${BUILD_CC}"
+export CPP_FOR_BUILD = "${BUILD_CPP}"
+export CFLAGS_FOR_BUILD = "${BUILD_CFLAGS}"
+
+export CC = "${CCACHE} ${HOST_PREFIX}gcc ${HOST_CC_ARCH}"
+
+do_configure () {
+ (cd ${S}; gnu-configize) || die "Failed to run gnu-configize"
+ oe_runconf
+}
+
+do_stage () {
+ oe_libinstall -so -a -C opcodes libopcodes ${STAGING_LIBDIR}/
+ oe_libinstall -a -C libiberty libiberty ${STAGING_LIBDIR}/
+ oe_libinstall -so -a -C bfd libbfd ${STAGING_LIBDIR}/
+ install -m 0644 ${S}/include/dis-asm.h ${STAGING_INCDIR}/
+ install -m 0644 ${S}/include/symcat.h ${STAGING_INCDIR}/
+ install -m 0644 ${S}/include/libiberty.h ${STAGING_INCDIR}/
+ install -m 0644 ${S}/include/ansidecl.h ${STAGING_INCDIR}/
+ install -m 0644 ${S}/include/bfdlink.h ${STAGING_INCDIR}/
+ install -m 0644 bfd/bfd.h ${STAGING_INCDIR}/
+}
+
+do_install () {
+ autotools_do_install
+
+ # We don't really need these, so we'll remove them...
+ rm -rf ${D}${libdir}/ldscripts
+
+ # Fix the /usr/${TARGET_SYS}/bin/* links
+ for l in ${D}${prefix}/${TARGET_SYS}/bin/*; do
+ rm -f $l
+ ln -sf `echo ${prefix}/${TARGET_SYS}/bin \
+ | tr -s / \
+ | sed -e 's,^/,,' -e 's,[^/]*,..,g'`${bindir}/${TARGET_PREFIX}`basename $l` $l
+ done
+
+ # Install the libiberty header
+ install -d ${D}${includedir}
+ install -m 644 ${S}/include/ansidecl.h ${D}${includedir}
+ install -m 644 ${S}/include/libiberty.h ${D}${includedir}
+
+ cd ${D}${bindir}
+
+ # Symlinks for ease of running these on the native target
+ for p in ${TARGET_SYS}-* ; do
+ ln -sf $p `echo $p | sed -e s,${TARGET_SYS}-,,`
+ done
+}
diff --git a/meta/packages/gcc/gcc-cross-initial_csl-arm-2006q1.bb b/meta/packages/gcc/gcc-cross-initial_csl-arm-2006q1.bb
new file mode 100644
index 000000000..17cf7b4d9
--- /dev/null
+++ b/meta/packages/gcc/gcc-cross-initial_csl-arm-2006q1.bb
@@ -0,0 +1,32 @@
+require gcc-cross_${PV}.bb
+
+DEPENDS = "virtual/${TARGET_PREFIX}binutils"
+DEPENDS += "${@['virtual/${TARGET_PREFIX}libc-initial',''][bb.data.getVar('TARGET_ARCH', d, 1) in ['arm', 'armeb', 'mips', 'mipsel']]}"
+PROVIDES = "virtual/${TARGET_PREFIX}gcc-initial"
+PACKAGES = ""
+
+S = "${WORKDIR}/gcc-2006q1"
+
+# This is intended to be a -very- basic config
+EXTRA_OECONF = "--with-local-prefix=${CROSS_DIR}/${TARGET_SYS} \
+ --with-newlib \
+ --disable-shared \
+ --disable-threads \
+ --disable-multilib \
+ --disable-__cxa_atexit \
+ --disable-libmudflap \
+ --disable-libssp \
+ --enable-languages=c \
+ --enable-target-optspace \
+ --program-prefix=${TARGET_PREFIX} \
+ ${@get_gcc_fpu_setting(bb, d)}"
+
+do_stage_prepend () {
+ mkdir -p ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}
+ ln -sf libgcc.a ${CROSS_DIR}/lib/gcc/${TARGET_SYS}/${BINV}/libgcc_eh.a
+}
+
+# Override the method from gcc-cross so we don't try to install libgcc
+do_install () {
+ oe_runmake 'DESTDIR=${D}' install
+}
diff --git a/meta/packages/gcc/gcc-cross_csl-arm-2006q1.bb b/meta/packages/gcc/gcc-cross_csl-arm-2006q1.bb
new file mode 100644
index 000000000..662c1b076
--- /dev/null
+++ b/meta/packages/gcc/gcc-cross_csl-arm-2006q1.bb
@@ -0,0 +1,19 @@
+require gcc_csl-arm-2006q1.bb
+# path mangling, needed by the cross packaging
+require gcc-paths-cross.inc
+inherit cross
+# NOTE: split PR. If the main .oe changes something that affects its *build*
+# remember to increment this one too.
+PR = "r0"
+
+DEPENDS = "virtual/${TARGET_PREFIX}binutils virtual/${TARGET_PREFIX}libc-for-gcc"
+# gmp-native mpfr-native"
+
+PROVIDES = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++"
+
+# cross build
+require gcc4-build-cross.inc
+# cross packaging
+require gcc-package-cross-no-fortran.inc
+
+S = "${WORKDIR}/gcc-2006q1"
diff --git a/meta/packages/gcc/gcc-csl-arm/gcc-configure-no-fortran.patch b/meta/packages/gcc/gcc-csl-arm/gcc-configure-no-fortran.patch
new file mode 100644
index 000000000..c84550330
--- /dev/null
+++ b/meta/packages/gcc/gcc-csl-arm/gcc-configure-no-fortran.patch
@@ -0,0 +1,1075 @@
+--- tmp/configure.in.orig 2006-09-05 17:50:48.000000000 +0100
++++ tmp/configure.in 2006-09-05 17:50:48.000000000 +0100
+@@ -157,7 +157,6 @@
+ target-libstdc++-v3 \
+ target-libmudflap \
+ target-libssp \
+- target-libgfortran \
+ ${libgcj} \
+ target-libobjc \
+ target-libada"
+@@ -1084,77 +1083,6 @@
+ AC_SUBST(docdir)
+ AC_SUBST(htmldir)
+
+-# Check for GMP and MPFR
+-gmplibs=
+-gmpinc=
+-have_gmp=yes
+-# Specify a location for mpfr
+-# check for this first so it ends up on the link line before gmp.
+-AC_ARG_WITH(mpfr-dir, [ --with-mpfr-dir=PATH Specify source directory for MPFR library])
+-
+-if test "x$with_mpfr_dir" != x; then
+- gmpinc="-I$with_mpfr_dir"
+- gmplibs="$with_mpfr_dir/libmpfr.a"
+-else
+- gmplibs="-lmpfr"
+-fi
+-
+-AC_ARG_WITH(mpfr, [ --with-mpfr=PATH Specify directory for installed MPFR library])
+-
+-if test "x$with_mpfr" != x; then
+- gmplibs="-L$with_mpfr/lib $gmplibs"
+- gmpinc="-I$with_mpfr/include"
+-fi
+-
+-# Specify a location for gmp
+-AC_ARG_WITH(gmp-dir, [ --with-gmp-dir=PATH Specify source directory for GMP library])
+-
+-if test "x$with_gmp_dir" != x; then
+- gmpinc="$gmpinc -I$with_gmp_dir"
+- if test -f "$with_gmp_dir/.libs/libgmp.a"; then
+- gmplibs="$gmplibs $with_gmp_dir/.libs/libgmp.a"
+- elif test -f "$with_gmp_dir/_libs/libgmp.a"; then
+- gmplibs="$gmplibs $with_gmp_dir/_libs/libgmp.a"
+- fi
+- # One of the later tests will catch the error if neither library is present.
+-else
+- gmplibs="$gmplibs -lgmp"
+-fi
+-
+-AC_ARG_WITH(gmp, [ --with-gmp=PATH Specify directory for installed GMP library])
+-
+-if test "x$with_gmp" != x; then
+- gmplibs="-L$with_gmp/lib $gmplibs"
+- gmpinc="-I$with_gmp/include $gmpinc"
+-fi
+-
+-saved_CFLAGS="$CFLAGS"
+-CFLAGS="$CFLAGS $gmpinc"
+-# Check GMP actually works
+-AC_MSG_CHECKING([for correct version of gmp.h])
+-AC_TRY_COMPILE([#include "gmp.h"],[
+-#if __GNU_MP_VERSION < 3
+-choke me
+-#endif
+-], [AC_MSG_RESULT([yes])],
+- [AC_MSG_RESULT([no]); have_gmp=no])
+-
+-if test x"$have_gmp" = xyes; then
+- AC_MSG_CHECKING([for MPFR])
+-
+- saved_LIBS="$LIBS"
+- LIBS="$LIBS $gmplibs"
+- AC_TRY_LINK([#include <gmp.h>
+-#include <mpfr.h>], [mpfr_t n; mpfr_init(n);],
+- [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no]); have_gmp=no])
+- LIBS="$saved_LIBS"
+- CFLAGS="$saved_CFLAGS"
+-fi
+-
+-# Flags needed for both GMP and/or MPFR
+-AC_SUBST(gmplibs)
+-AC_SUBST(gmpinc)
+-
+ # By default, C is the only stage 1 language.
+ stage1_languages=c
+ AC_SUBST(stage1_languages)
+@@ -1182,15 +1110,6 @@
+ fi
+ enable_languages=`echo "${enable_languages}" | sed -e 's/[[ ,]][[ ,]]*/,/g' -e 's/,$//'`
+
+- # 'f95' is the old name for the 'fortran' language. We issue a warning
+- # and make the substitution.
+- case ,${enable_languages}, in
+- *,f95,*)
+- echo configure.in: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
+- enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
+- ;;
+- esac
+-
+ # First scan to see if an enabled language requires some other language.
+ # We assume that a given config-lang.in will list all the language
+ # front ends it requires, even if some are required indirectly.
+@@ -2213,7 +2132,6 @@
+ NCN_STRICT_CHECK_TARGET_TOOLS(DLLTOOL_FOR_TARGET, dlltool)
+ NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET})
+ NCN_STRICT_CHECK_TARGET_TOOLS(GCJ_FOR_TARGET, gcj)
+-NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran)
+ NCN_STRICT_CHECK_TARGET_TOOLS(LD_FOR_TARGET, ld)
+ NCN_STRICT_CHECK_TARGET_TOOLS(LIPO_FOR_TARGET, lipo)
+ NCN_STRICT_CHECK_TARGET_TOOLS(NM_FOR_TARGET, nm)
+@@ -2237,9 +2155,7 @@
+ GCC_TARGET_TOOL(gcc, GCC_FOR_TARGET, , [gcc/xgcc -B$$r/$(HOST_SUBDIR)/gcc/])
+ GCC_TARGET_TOOL(gcj, GCJ_FOR_TARGET, GCJ,
+ [gcc/gcj -B$$r/$(HOST_SUBDIR)/gcc/], java)
+-GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_TARGET, GFORTRAN,
+- [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran)
+ GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new])
+ GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO)
+ GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new])
+
+--- tmp/Makefile.in.orig 2006-09-06 08:33:46.000000000 +0100
++++ tmp/Makefile.in 2006-09-06 08:33:46.000000000 +0100
+@@ -119,7 +119,6 @@
+ CXX="$(CXX_FOR_BUILD)"; export CXX; \
+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
+ GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \
+- GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \
+ DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \
+ LD="$(LD_FOR_BUILD)"; export LD; \
+ LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \
+@@ -201,7 +200,6 @@
+ CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
+ CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+ GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+- GFORTRAN="$(GFORTRAN_FOR_TARGET)"; export GFORTRAN; \
+ DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+ LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \
+ LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+@@ -313,7 +311,6 @@
+ CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_FOR_TARGET@ $(FLAGS_FOR_TARGET)
+ RAW_CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @RAW_CXX_FOR_TARGET@ $(FLAGS_FOR_TARGET)
+ GCJ_FOR_TARGET=$(STAGE_CC_WRAPPER) @GCJ_FOR_TARGET@ $(FLAGS_FOR_TARGET)
+-GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) @GFORTRAN_FOR_TARGET@ $(FLAGS_FOR_TARGET)
+ DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
+ LD_FOR_TARGET=@LD_FOR_TARGET@
+
+@@ -452,7 +449,6 @@
+ "CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \
+ "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \
+ "GCJ_FOR_TARGET=$(GCJ_FOR_TARGET)" \
+- "GFORTRAN_FOR_TARGET=$(GFORTRAN_FOR_TARGET)" \
+ "LD_FOR_TARGET=$(LD_FOR_TARGET)" \
+ "LIPO_FOR_TARGET=$(LIPO_FOR_TARGET)" \
+ "LDFLAGS_FOR_TARGET=$(LDFLAGS_FOR_TARGET)" \
+@@ -618,7 +614,6 @@
+ maybe-configure-target-libmudflap \
+ maybe-configure-target-libssp \
+ maybe-configure-target-newlib \
+- maybe-configure-target-libgfortran \
+ maybe-configure-target-libobjc \
+ maybe-configure-target-libtermcap \
+ maybe-configure-target-winsup \
+@@ -737,7 +732,6 @@
+ maybe-all-target-libmudflap \
+ maybe-all-target-libssp \
+ maybe-all-target-newlib \
+- maybe-all-target-libgfortran \
+ maybe-all-target-libobjc \
+ maybe-all-target-libtermcap \
+ maybe-all-target-winsup \
+@@ -844,7 +838,6 @@
+ maybe-info-target-libmudflap \
+ maybe-info-target-libssp \
+ maybe-info-target-newlib \
+- maybe-info-target-libgfortran \
+ maybe-info-target-libobjc \
+ maybe-info-target-libtermcap \
+ maybe-info-target-winsup \
+@@ -946,7 +939,6 @@
+ maybe-dvi-target-libmudflap \
+ maybe-dvi-target-libssp \
+ maybe-dvi-target-newlib \
+- maybe-dvi-target-libgfortran \
+ maybe-dvi-target-libobjc \
+ maybe-dvi-target-libtermcap \
+ maybe-dvi-target-winsup \
+@@ -1048,7 +1040,6 @@
+ maybe-html-target-libmudflap \
+ maybe-html-target-libssp \
+ maybe-html-target-newlib \
+- maybe-html-target-libgfortran \
+ maybe-html-target-libobjc \
+ maybe-html-target-libtermcap \
+ maybe-html-target-winsup \
+@@ -1150,7 +1141,6 @@
+ maybe-TAGS-target-libmudflap \
+ maybe-TAGS-target-libssp \
+ maybe-TAGS-target-newlib \
+- maybe-TAGS-target-libgfortran \
+ maybe-TAGS-target-libobjc \
+ maybe-TAGS-target-libtermcap \
+ maybe-TAGS-target-winsup \
+@@ -1252,7 +1242,6 @@
+ maybe-install-info-target-libmudflap \
+ maybe-install-info-target-libssp \
+ maybe-install-info-target-newlib \
+- maybe-install-info-target-libgfortran \
+ maybe-install-info-target-libobjc \
+ maybe-install-info-target-libtermcap \
+ maybe-install-info-target-winsup \
+@@ -1354,7 +1343,6 @@
+ maybe-install-html-target-libmudflap \
+ maybe-install-html-target-libssp \
+ maybe-install-html-target-newlib \
+- maybe-install-html-target-libgfortran \
+ maybe-install-html-target-libobjc \
+ maybe-install-html-target-libtermcap \
+ maybe-install-html-target-winsup \
+@@ -1456,7 +1444,6 @@
+ maybe-installcheck-target-libmudflap \
+ maybe-installcheck-target-libssp \
+ maybe-installcheck-target-newlib \
+- maybe-installcheck-target-libgfortran \
+ maybe-installcheck-target-libobjc \
+ maybe-installcheck-target-libtermcap \
+ maybe-installcheck-target-winsup \
+@@ -1558,7 +1545,6 @@
+ maybe-mostlyclean-target-libmudflap \
+ maybe-mostlyclean-target-libssp \
+ maybe-mostlyclean-target-newlib \
+- maybe-mostlyclean-target-libgfortran \
+ maybe-mostlyclean-target-libobjc \
+ maybe-mostlyclean-target-libtermcap \
+ maybe-mostlyclean-target-winsup \
+@@ -1660,7 +1646,6 @@
+ maybe-clean-target-libmudflap \
+ maybe-clean-target-libssp \
+ maybe-clean-target-newlib \
+- maybe-clean-target-libgfortran \
+ maybe-clean-target-libobjc \
+ maybe-clean-target-libtermcap \
+ maybe-clean-target-winsup \
+@@ -1762,7 +1747,6 @@
+ maybe-distclean-target-libmudflap \
+ maybe-distclean-target-libssp \
+ maybe-distclean-target-newlib \
+- maybe-distclean-target-libgfortran \
+ maybe-distclean-target-libobjc \
+ maybe-distclean-target-libtermcap \
+ maybe-distclean-target-winsup \
+@@ -1864,7 +1848,6 @@
+ maybe-maintainer-clean-target-libmudflap \
+ maybe-maintainer-clean-target-libssp \
+ maybe-maintainer-clean-target-newlib \
+- maybe-maintainer-clean-target-libgfortran \
+ maybe-maintainer-clean-target-libobjc \
+ maybe-maintainer-clean-target-libtermcap \
+ maybe-maintainer-clean-target-winsup \
+@@ -2024,7 +2007,6 @@
+ maybe-check-target-libmudflap \
+ maybe-check-target-libssp \
+ maybe-check-target-newlib \
+- maybe-check-target-libgfortran \
+ maybe-check-target-libobjc \
+ maybe-check-target-libtermcap \
+ maybe-check-target-winsup \
+@@ -2223,7 +2205,6 @@
+ maybe-install-target-libmudflap \
+ maybe-install-target-libssp \
+ maybe-install-target-newlib \
+- maybe-install-target-libgfortran \
+ maybe-install-target-libobjc \
+ maybe-install-target-libtermcap \
+ maybe-install-target-winsup \
+@@ -31606,382 +31587,6 @@
+
+
+ # There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
+-@if target-libgfortran
+-$(TARGET_SUBDIR)/libgfortran/multilib.out: multilib.out
+- $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgfortran ; \
+- rm -f $(TARGET_SUBDIR)/libgfortran/Makefile || : ; \
+- cp multilib.out $(TARGET_SUBDIR)/libgfortran/multilib.out
+-@endif target-libgfortran
+-
+-
+-
+-.PHONY: configure-target-libgfortran maybe-configure-target-libgfortran
+-maybe-configure-target-libgfortran:
+-@if target-libgfortran
+-maybe-configure-target-libgfortran: configure-target-libgfortran
+-configure-target-libgfortran: $(TARGET_SUBDIR)/libgfortran/multilib.out
+- @$(unstage)
+- @test ! -f $(TARGET_SUBDIR)/libgfortran/Makefile || exit 0; \
+- $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgfortran ; \
+- r=`${PWD_COMMAND}`; export r; \
+- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+- $(NORMAL_TARGET_EXPORTS) \
+- echo Configuring in $(TARGET_SUBDIR)/libgfortran; \
+- cd "$(TARGET_SUBDIR)/libgfortran" || exit 1; \
+- case $(srcdir) in \
+- /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
+- *) topdir=`echo $(TARGET_SUBDIR)/libgfortran/ | \
+- sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
+- esac; \
+- srcdiroption="--srcdir=$${topdir}/libgfortran"; \
+- libsrcdir="$$s/libgfortran"; \
+- rm -f no-such-file || : ; \
+- CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
+- $(TARGET_CONFIGARGS) $${srcdiroption} \
+- || exit 1
+-@endif target-libgfortran
+-
+-
+-
+-
+-
+-.PHONY: all-target-libgfortran maybe-all-target-libgfortran
+-maybe-all-target-libgfortran:
+-@if target-libgfortran
+-TARGET-target-libgfortran=all
+-maybe-all-target-libgfortran: all-target-libgfortran
+-all-target-libgfortran: configure-target-libgfortran
+- @$(unstage)
+- @r=`${PWD_COMMAND}`; export r; \
+- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+- $(NORMAL_TARGET_EXPORTS) \
+- (cd $(TARGET_SUBDIR)/libgfortran && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) $(TARGET-target-libgfortran))
+-@endif target-libgfortran
+-
+-
+-
+-
+-
+-.PHONY: check-target-libgfortran maybe-check-target-libgfortran
+-maybe-check-target-libgfortran:
+-@if target-libgfortran
+-maybe-check-target-libgfortran: check-target-libgfortran
+-
+-check-target-libgfortran:
+- @: $(MAKE); $(unstage)
+- @r=`${PWD_COMMAND}`; export r; \
+- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+- $(NORMAL_TARGET_EXPORTS) \
+- (cd $(TARGET_SUBDIR)/libgfortran && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) check)
+-
+-@endif target-libgfortran
+-
+-.PHONY: install-target-libgfortran maybe-install-target-libgfortran
+-maybe-install-target-libgfortran:
+-@if target-libgfortran
+-maybe-install-target-libgfortran: install-target-libgfortran
+-
+-install-target-libgfortran: installdirs
+- @: $(MAKE); $(unstage)
+- @r=`${PWD_COMMAND}`; export r; \
+- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+- $(NORMAL_TARGET_EXPORTS) \
+- (cd $(TARGET_SUBDIR)/libgfortran && \
+- $(MAKE) $(TARGET_FLAGS_TO_PASS) install)
+-
+-@endif target-libgfortran
+-
+-# Other targets (info, dvi, etc.)
+-
+-.PHONY: maybe-info-target-libgfortran info-target-libgfortran
+-maybe-info-target-libgfortran:
+-@if target-libgfortran
+-maybe-info-target-libgfortran: info-target-libgfortran
+-
+-info-target-libgfortran: \
+- configure-target-libgfortran
+- @: $(MAKE); $(unstage)
+- @[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0 ; \
+- r=`${PWD_COMMAND}`; export r; \
+- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+- $(NORMAL_TARGET_EXPORTS) \
+- echo "Doing info in $(TARGET_SUBDIR)/libgfortran" ; \
+- for flag in $(EXTRA_TARGET_FLAGS); do \
+- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+- done; \
+- (cd $(TARGET_SUBDIR)/libgfortran && \
+- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+- "RANLIB=$${RANLIB}" \
+- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+- info) \
+- || exit 1
+-
+-@endif target-libgfortran
+-
+-.PHONY: maybe-dvi-target-libgfortran dvi-target-libgfortran
+-maybe-dvi-target-libgfortran:
+-@if target-libgfortran
+-maybe-dvi-target-libgfortran: dvi-target-libgfortran
+-
+-dvi-target-libgfortran: \
+- configure-target-libgfortran
+- @: $(MAKE); $(unstage)
+- @[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0 ; \
+- r=`${PWD_COMMAND}`; export r; \
+- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+- $(NORMAL_TARGET_EXPORTS) \
+- echo "Doing dvi in $(TARGET_SUBDIR)/libgfortran" ; \
+- for flag in $(EXTRA_TARGET_FLAGS); do \
+- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+- done; \
+- (cd $(TARGET_SUBDIR)/libgfortran && \
+- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+- "RANLIB=$${RANLIB}" \
+- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+- dvi) \
+- || exit 1
+-
+-@endif target-libgfortran
+-
+-.PHONY: maybe-html-target-libgfortran html-target-libgfortran
+-maybe-html-target-libgfortran:
+-@if target-libgfortran
+-maybe-html-target-libgfortran: html-target-libgfortran
+-
+-html-target-libgfortran: \
+- configure-target-libgfortran
+- @: $(MAKE); $(unstage)
+- @[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0 ; \
+- r=`${PWD_COMMAND}`; export r; \
+- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+- $(NORMAL_TARGET_EXPORTS) \
+- echo "Doing html in $(TARGET_SUBDIR)/libgfortran" ; \
+- for flag in $(EXTRA_TARGET_FLAGS); do \
+- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+- done; \
+- (cd $(TARGET_SUBDIR)/libgfortran && \
+- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+- "RANLIB=$${RANLIB}" \
+- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+- html) \
+- || exit 1
+-
+-@endif target-libgfortran
+-
+-.PHONY: maybe-TAGS-target-libgfortran TAGS-target-libgfortran
+-maybe-TAGS-target-libgfortran:
+-@if target-libgfortran
+-maybe-TAGS-target-libgfortran: TAGS-target-libgfortran
+-
+-TAGS-target-libgfortran: \
+- configure-target-libgfortran
+- @: $(MAKE); $(unstage)
+- @[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0 ; \
+- r=`${PWD_COMMAND}`; export r; \
+- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+- $(NORMAL_TARGET_EXPORTS) \
+- echo "Doing TAGS in $(TARGET_SUBDIR)/libgfortran" ; \
+- for flag in $(EXTRA_TARGET_FLAGS); do \
+- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+- done; \
+- (cd $(TARGET_SUBDIR)/libgfortran && \
+- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+- "RANLIB=$${RANLIB}" \
+- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+- TAGS) \
+- || exit 1
+-
+-@endif target-libgfortran
+-
+-.PHONY: maybe-install-info-target-libgfortran install-info-target-libgfortran
+-maybe-install-info-target-libgfortran:
+-@if target-libgfortran
+-maybe-install-info-target-libgfortran: install-info-target-libgfortran
+-
+-install-info-target-libgfortran: \
+- configure-target-libgfortran \
+- info-target-libgfortran
+- @: $(MAKE); $(unstage)
+- @[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0 ; \
+- r=`${PWD_COMMAND}`; export r; \
+- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+- $(NORMAL_TARGET_EXPORTS) \
+- echo "Doing install-info in $(TARGET_SUBDIR)/libgfortran" ; \
+- for flag in $(EXTRA_TARGET_FLAGS); do \
+- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+- done; \
+- (cd $(TARGET_SUBDIR)/libgfortran && \
+- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+- "RANLIB=$${RANLIB}" \
+- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+- install-info) \
+- || exit 1
+-
+-@endif target-libgfortran
+-
+-.PHONY: maybe-install-html-target-libgfortran install-html-target-libgfortran
+-maybe-install-html-target-libgfortran:
+-@if target-libgfortran
+-maybe-install-html-target-libgfortran: install-html-target-libgfortran
+-
+-install-html-target-libgfortran: \
+- configure-target-libgfortran \
+- html-target-libgfortran
+- @: $(MAKE); $(unstage)
+- @[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0 ; \
+- r=`${PWD_COMMAND}`; export r; \
+- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+- $(NORMAL_TARGET_EXPORTS) \
+- echo "Doing install-html in $(TARGET_SUBDIR)/libgfortran" ; \
+- for flag in $(EXTRA_TARGET_FLAGS); do \
+- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+- done; \
+- (cd $(TARGET_SUBDIR)/libgfortran && \
+- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+- "RANLIB=$${RANLIB}" \
+- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+- install-html) \
+- || exit 1
+-
+-@endif target-libgfortran
+-
+-.PHONY: maybe-installcheck-target-libgfortran installcheck-target-libgfortran
+-maybe-installcheck-target-libgfortran:
+-@if target-libgfortran
+-maybe-installcheck-target-libgfortran: installcheck-target-libgfortran
+-
+-installcheck-target-libgfortran: \
+- configure-target-libgfortran
+- @: $(MAKE); $(unstage)
+- @[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0 ; \
+- r=`${PWD_COMMAND}`; export r; \
+- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+- $(NORMAL_TARGET_EXPORTS) \
+- echo "Doing installcheck in $(TARGET_SUBDIR)/libgfortran" ; \
+- for flag in $(EXTRA_TARGET_FLAGS); do \
+- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+- done; \
+- (cd $(TARGET_SUBDIR)/libgfortran && \
+- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+- "RANLIB=$${RANLIB}" \
+- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+- installcheck) \
+- || exit 1
+-
+-@endif target-libgfortran
+-
+-.PHONY: maybe-mostlyclean-target-libgfortran mostlyclean-target-libgfortran
+-maybe-mostlyclean-target-libgfortran:
+-@if target-libgfortran
+-maybe-mostlyclean-target-libgfortran: mostlyclean-target-libgfortran
+-
+-mostlyclean-target-libgfortran:
+- @: $(MAKE); $(unstage)
+- @[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0 ; \
+- r=`${PWD_COMMAND}`; export r; \
+- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+- $(NORMAL_TARGET_EXPORTS) \
+- echo "Doing mostlyclean in $(TARGET_SUBDIR)/libgfortran" ; \
+- for flag in $(EXTRA_TARGET_FLAGS); do \
+- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+- done; \
+- (cd $(TARGET_SUBDIR)/libgfortran && \
+- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+- "RANLIB=$${RANLIB}" \
+- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+- mostlyclean) \
+- || exit 1
+-
+-@endif target-libgfortran
+-
+-.PHONY: maybe-clean-target-libgfortran clean-target-libgfortran
+-maybe-clean-target-libgfortran:
+-@if target-libgfortran
+-maybe-clean-target-libgfortran: clean-target-libgfortran
+-
+-clean-target-libgfortran:
+- @: $(MAKE); $(unstage)
+- @[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0 ; \
+- r=`${PWD_COMMAND}`; export r; \
+- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+- $(NORMAL_TARGET_EXPORTS) \
+- echo "Doing clean in $(TARGET_SUBDIR)/libgfortran" ; \
+- for flag in $(EXTRA_TARGET_FLAGS); do \
+- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+- done; \
+- (cd $(TARGET_SUBDIR)/libgfortran && \
+- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+- "RANLIB=$${RANLIB}" \
+- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+- clean) \
+- || exit 1
+-
+-@endif target-libgfortran
+-
+-.PHONY: maybe-distclean-target-libgfortran distclean-target-libgfortran
+-maybe-distclean-target-libgfortran:
+-@if target-libgfortran
+-maybe-distclean-target-libgfortran: distclean-target-libgfortran
+-
+-distclean-target-libgfortran:
+- @: $(MAKE); $(unstage)
+- @[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0 ; \
+- r=`${PWD_COMMAND}`; export r; \
+- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+- $(NORMAL_TARGET_EXPORTS) \
+- echo "Doing distclean in $(TARGET_SUBDIR)/libgfortran" ; \
+- for flag in $(EXTRA_TARGET_FLAGS); do \
+- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+- done; \
+- (cd $(TARGET_SUBDIR)/libgfortran && \
+- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+- "RANLIB=$${RANLIB}" \
+- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+- distclean) \
+- || exit 1
+-
+-@endif target-libgfortran
+-
+-.PHONY: maybe-maintainer-clean-target-libgfortran maintainer-clean-target-libgfortran
+-maybe-maintainer-clean-target-libgfortran:
+-@if target-libgfortran
+-maybe-maintainer-clean-target-libgfortran: maintainer-clean-target-libgfortran
+-
+-maintainer-clean-target-libgfortran:
+- @: $(MAKE); $(unstage)
+- @[ -f $(TARGET_SUBDIR)/libgfortran/Makefile ] || exit 0 ; \
+- r=`${PWD_COMMAND}`; export r; \
+- s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
+- $(NORMAL_TARGET_EXPORTS) \
+- echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libgfortran" ; \
+- for flag in $(EXTRA_TARGET_FLAGS); do \
+- eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
+- done; \
+- (cd $(TARGET_SUBDIR)/libgfortran && \
+- $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
+- "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
+- "RANLIB=$${RANLIB}" \
+- "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \
+- maintainer-clean) \
+- || exit 1
+-
+-@endif target-libgfortran
+-
+-
+-
+-# There's only one multilib.out. Cleverer subdirs shouldn't need it copied.
+ @if target-libobjc
+ $(TARGET_SUBDIR)/libobjc/multilib.out: multilib.out
+ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libobjc ; \
+@@ -38574,8 +38179,6 @@
+
+ configure-target-newlib: maybe-all-gcc
+
+-configure-target-libgfortran: maybe-all-gcc
+-
+ configure-target-libobjc: maybe-all-gcc
+
+ configure-target-libtermcap: maybe-all-gcc
+@@ -38613,9 +38216,7 @@
+
+ configure-target-libada: maybe-all-target-newlib maybe-all-target-libgloss
+
+-configure-target-libgfortran: maybe-all-target-newlib maybe-all-target-libgloss
+-
+ configure-target-libffi: maybe-all-target-newlib maybe-all-target-libgloss
+
+ configure-target-libjava: maybe-all-target-newlib maybe-all-target-libgloss
+
+--- tmp/Makefile.tpl.orig 2006-09-06 08:36:52.000000000 +0100
++++ tmp/Makefile.tpl 2006-09-06 08:36:52.000000000 +0100
+@@ -122,7 +122,6 @@
+ CXX="$(CXX_FOR_BUILD)"; export CXX; \
+ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
+ GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \
+- GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \
+ DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \
+ LD="$(LD_FOR_BUILD)"; export LD; \
+ LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \
+@@ -204,7 +203,6 @@
+ CPPFLAGS="$(CPPFLAGS_FOR_TARGET)"; export CPPFLAGS; \
+ CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \
+ GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \
+- GFORTRAN="$(GFORTRAN_FOR_TARGET)"; export GFORTRAN; \
+ DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \
+ LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \
+ LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \
+@@ -316,7 +314,6 @@
+ CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_FOR_TARGET@ $(FLAGS_FOR_TARGET)
+ RAW_CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @RAW_CXX_FOR_TARGET@ $(FLAGS_FOR_TARGET)
+ GCJ_FOR_TARGET=$(STAGE_CC_WRAPPER) @GCJ_FOR_TARGET@ $(FLAGS_FOR_TARGET)
+-GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) @GFORTRAN_FOR_TARGET@ $(FLAGS_FOR_TARGET)
+ DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@
+ LD_FOR_TARGET=@LD_FOR_TARGET@
+
+--- tmp/Makefile.def.orig 2006-09-06 08:38:50.000000000 +0100
++++ tmp/Makefile.def 2006-09-06 08:38:50.000000000 +0100
+@@ -117,7 +117,6 @@
+ target_modules = { module= libmudflap; lib_path=.libs; };
+ target_modules = { module= libssp; lib_path=.libs; };
+ target_modules = { module= newlib; };
+-target_modules = { module= libgfortran; };
+ target_modules = { module= libobjc; };
+ target_modules = { module= libtermcap; no_check=true;
+ missing=mostlyclean;
+@@ -227,7 +226,6 @@
+ flags_to_pass = { flag= CXXFLAGS_FOR_TARGET ; };
+ flags_to_pass = { flag= DLLTOOL_FOR_TARGET ; };
+ flags_to_pass = { flag= GCJ_FOR_TARGET ; };
+-flags_to_pass = { flag= GFORTRAN_FOR_TARGET ; };
+ flags_to_pass = { flag= LD_FOR_TARGET ; };
+ flags_to_pass = { flag= LIPO_FOR_TARGET ; };
+ flags_to_pass = { flag= LDFLAGS_FOR_TARGET ; };
+@@ -415,7 +413,6 @@
+ lang_env_dependencies = { module=boehm-gc; };
+ lang_env_dependencies = { module=gperf; cxx=true; };
+ lang_env_dependencies = { module=libada; };
+-lang_env_dependencies = { module=libgfortran; };
+ lang_env_dependencies = { module=libffi; };
+ lang_env_dependencies = { module=libjava; cxx=true; };
+ lang_env_dependencies = { module=libmudflap; };
+
+--- tmp/configure.orgig 2006-09-06 10:01:52.000000000 +0100
++++ tmp/configure 2006-09-06 10:01:52.000000000 +0100
+@@ -921,7 +921,6 @@
+ target-libstdc++-v3 \
+ target-libmudflap \
+ target-libssp \
+- target-libgfortran \
+ ${libgcj} \
+ target-libobjc \
+ target-libada"
+@@ -2246,135 +2245,6 @@
+ fi
+
+
+-
+-
+-
+-
+-# Check for GMP and MPFR
+-gmplibs=
+-gmpinc=
+-have_gmp=yes
+-# Specify a location for mpfr
+-# check for this first so it ends up on the link line before gmp.
+-# Check whether --with-mpfr-dir or --without-mpfr-dir was given.
+-if test "${with_mpfr_dir+set}" = set; then
+- withval="$with_mpfr_dir"
+- :
+-fi
+-
+-
+-if test "x$with_mpfr_dir" != x; then
+- gmpinc="-I$with_mpfr_dir"
+- gmplibs="$with_mpfr_dir/libmpfr.a"
+-else
+- gmplibs="-lmpfr"
+-fi
+-
+-# Check whether --with-mpfr or --without-mpfr was given.
+-if test "${with_mpfr+set}" = set; then
+- withval="$with_mpfr"
+- :
+-fi
+-
+-
+-if test "x$with_mpfr" != x; then
+- gmplibs="-L$with_mpfr/lib $gmplibs"
+- gmpinc="-I$with_mpfr/include"
+-fi
+-
+-# Specify a location for gmp
+-# Check whether --with-gmp-dir or --without-gmp-dir was given.
+-if test "${with_gmp_dir+set}" = set; then
+- withval="$with_gmp_dir"
+- :
+-fi
+-
+-
+-if test "x$with_gmp_dir" != x; then
+- gmpinc="$gmpinc -I$with_gmp_dir"
+- if test -f "$with_gmp_dir/.libs/libgmp.a"; then
+- gmplibs="$gmplibs $with_gmp_dir/.libs/libgmp.a"
+- elif test -f "$with_gmp_dir/_libs/libgmp.a"; then
+- gmplibs="$gmplibs $with_gmp_dir/_libs/libgmp.a"
+- fi
+- # One of the later tests will catch the error if neither library is present.
+-else
+- gmplibs="$gmplibs -lgmp"
+-fi
+-
+-# Check whether --with-gmp or --without-gmp was given.
+-if test "${with_gmp+set}" = set; then
+- withval="$with_gmp"
+- :
+-fi
+-
+-
+-if test "x$with_gmp" != x; then
+- gmplibs="-L$with_gmp/lib $gmplibs"
+- gmpinc="-I$with_gmp/include $gmpinc"
+-fi
+-
+-saved_CFLAGS="$CFLAGS"
+-CFLAGS="$CFLAGS $gmpinc"
+-# Check GMP actually works
+-echo $ac_n "checking for correct version of gmp.h""... $ac_c" 1>&6
+-echo "configure:2322: checking for correct version of gmp.h" >&5
+-cat > conftest.$ac_ext <<EOF
+-#line 2324 "configure"
+-#include "confdefs.h"
+-#include "gmp.h"
+-int main() {
+-
+-#if __GNU_MP_VERSION < 3
+-choke me
+-#endif
+-
+-; return 0; }
+-EOF
+-if { (eval echo configure:2335: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+- rm -rf conftest*
+- echo "$ac_t""yes" 1>&6
+-else
+- echo "configure: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- rm -rf conftest*
+- echo "$ac_t""no" 1>&6; have_gmp=no
+-fi
+-rm -f conftest*
+-
+-if test x"$have_gmp" = xyes; then
+- echo $ac_n "checking for MPFR""... $ac_c" 1>&6
+-echo "configure:2348: checking for MPFR" >&5
+-
+- saved_LIBS="$LIBS"
+- LIBS="$LIBS $gmplibs"
+- cat > conftest.$ac_ext <<EOF
+-#line 2353 "configure"
+-#include "confdefs.h"
+-#include <gmp.h>
+-#include <mpfr.h>
+-int main() {
+-mpfr_t n; mpfr_init(n);
+-; return 0; }
+-EOF
+-if { (eval echo configure:2361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+- rm -rf conftest*
+- echo "$ac_t""yes" 1>&6
+-else
+- echo "configure: failed program was:" >&5
+- cat conftest.$ac_ext >&5
+- rm -rf conftest*
+- echo "$ac_t""no" 1>&6; have_gmp=no
+-fi
+-rm -f conftest*
+- LIBS="$saved_LIBS"
+- CFLAGS="$saved_CFLAGS"
+-fi
+-
+-# Flags needed for both GMP and/or MPFR
+-
+-
+-
+ # By default, C is the only stage 1 language.
+ stage1_languages=c
+
+@@ -2402,15 +2272,6 @@
+ fi
+ enable_languages=`echo "${enable_languages}" | sed -e 's/[ ,][ ,]*/,/g' -e 's/,$//'`
+
+- # 'f95' is the old name for the 'fortran' language. We issue a warning
+- # and make the substitution.
+- case ,${enable_languages}, in
+- *,f95,*)
+- echo configure.in: warning: 'f95' as language name is deprecated, use 'fortran' instead 1>&2
+- enable_languages=`echo "${enable_languages}" | sed -e 's/f95/fortran/g'`
+- ;;
+- esac
+-
+ # First scan to see if an enabled language requires some other language.
+ # We assume that a given config-lang.in will list all the language
+ # front ends it requires, even if some are required indirectly.
+@@ -5036,81 +4897,6 @@
+ fi
+ fi
+
+- for ncn_progname in gfortran; do
+- if test -n "$ncn_target_tool_prefix"; then
+- # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
+-set dummy ${ncn_target_tool_prefix}${ncn_progname}; ac_word=$2
+-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:5045: checking for $ac_word" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_GFORTRAN_FOR_TARGET'+set}'`\" = set"; then
+- echo $ac_n "(cached) $ac_c" 1>&6
+-else
+- if test -n "$GFORTRAN_FOR_TARGET"; then
+- ac_cv_prog_GFORTRAN_FOR_TARGET="$GFORTRAN_FOR_TARGET" # Let the user override the test.
+-else
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+- ac_dummy="$PATH"
+- for ac_dir in $ac_dummy; do
+- test -z "$ac_dir" && ac_dir=.
+- if test -f $ac_dir/$ac_word; then
+- ac_cv_prog_GFORTRAN_FOR_TARGET="${ncn_target_tool_prefix}${ncn_progname}"
+- break
+- fi
+- done
+- IFS="$ac_save_ifs"
+-fi
+-fi
+-GFORTRAN_FOR_TARGET="$ac_cv_prog_GFORTRAN_FOR_TARGET"
+-if test -n "$GFORTRAN_FOR_TARGET"; then
+- echo "$ac_t""$GFORTRAN_FOR_TARGET" 1>&6
+-else
+- echo "$ac_t""no" 1>&6
+-fi
+-
+- fi
+- if test -z "$ac_cv_prog_GFORTRAN_FOR_TARGET" && test $build = $target ; then
+- # Extract the first word of "${ncn_progname}", so it can be a program name with args.
+-set dummy ${ncn_progname}; ac_word=$2
+-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+-echo "configure:5076: checking for $ac_word" >&5
+-if eval "test \"`echo '$''{'ac_cv_prog_GFORTRAN_FOR_TARGET'+set}'`\" = set"; then
+- echo $ac_n "(cached) $ac_c" 1>&6
+-else
+- if test -n "$GFORTRAN_FOR_TARGET"; then
+- ac_cv_prog_GFORTRAN_FOR_TARGET="$GFORTRAN_FOR_TARGET" # Let the user override the test.
+-else
+- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
+- ac_dummy="$PATH"
+- for ac_dir in $ac_dummy; do
+- test -z "$ac_dir" && ac_dir=.
+- if test -f $ac_dir/$ac_word; then
+- ac_cv_prog_GFORTRAN_FOR_TARGET="${ncn_progname}"
+- break
+- fi
+- done
+- IFS="$ac_save_ifs"
+-fi
+-fi
+-GFORTRAN_FOR_TARGET="$ac_cv_prog_GFORTRAN_FOR_TARGET"
+-if test -n "$GFORTRAN_FOR_TARGET"; then
+- echo "$ac_t""$GFORTRAN_FOR_TARGET" 1>&6
+-else
+- echo "$ac_t""no" 1>&6
+-fi
+-
+- fi
+- test -n "$ac_cv_prog_GFORTRAN_FOR_TARGET" && break
+-done
+-
+-if test -z "$ac_cv_prog_GFORTRAN_FOR_TARGET" ; then
+- set dummy gfortran
+- if test $build = $target ; then
+- GFORTRAN_FOR_TARGET="$2"
+- else
+- GFORTRAN_FOR_TARGET="${ncn_target_tool_prefix}$2"
+- fi
+-fi
+-
+ for ncn_progname in ld; do
+ if test -n "$ncn_target_tool_prefix"; then
+ # Extract the first word of "${ncn_target_tool_prefix}${ncn_progname}", so it can be a program name with args.
+@@ -5843,34 +5629,6 @@
+ echo "$ac_t""pre-installed" 1>&6
+ fi
+ fi
+-echo $ac_n "checking where to find the target gfortran""... $ac_c" 1>&6
+-echo "configure:5848: checking where to find the target gfortran" >&5
+-if test "x${build}" != "x${host}" ; then
+- # Canadian cross, just use what we found
+- echo "$ac_t""pre-installed" 1>&6
+-else
+- ok=yes
+- case " ${configdirs} " in
+- *" gcc "*) ;;
+- *) ok=no ;;
+- esac
+- case ,${enable_languages}, in
+- *,fortran,*) ;;
+- *) ok=no ;;
+- esac
+- if test $ok = yes; then
+- # An in-tree tool is available and we can use it
+- GFORTRAN_FOR_TARGET='$$r/$(HOST_SUBDIR)/gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/'
+- echo "$ac_t""just compiled" 1>&6
+- elif test "x$target" = "x$host"; then
+- # We can use an host tool
+- GFORTRAN_FOR_TARGET='$(GFORTRAN)'
+- echo "$ac_t""host tool" 1>&6
+- else
+- # We need a cross tool
+- echo "$ac_t""pre-installed" 1>&6
+- fi
+-fi
+ echo $ac_n "checking where to find the target ld""... $ac_c" 1>&6
+ echo "configure:5876: checking where to find the target ld" >&5
+ if test "x${build}" != "x${host}" ; then
+@@ -6413,7 +6171,6 @@
+ s%@DLLTOOL_FOR_TARGET@%$DLLTOOL_FOR_TARGET%g
+ s%@GCC_FOR_TARGET@%$GCC_FOR_TARGET%g
+ s%@GCJ_FOR_TARGET@%$GCJ_FOR_TARGET%g
+-s%@GFORTRAN_FOR_TARGET@%$GFORTRAN_FOR_TARGET%g
+ s%@LD_FOR_TARGET@%$LD_FOR_TARGET%g
+ s%@LIPO_FOR_TARGET@%$LIPO_FOR_TARGET%g
+ s%@NM_FOR_TARGET@%$NM_FOR_TARGET%g
+
+--- tmp/config-ml.in.orig 2006-09-06 10:27:49.000000000 +0100
++++ tmp/config-ml.in 2006-09-06 10:27:49.000000000 +0100
+@@ -785,14 +785,12 @@
+ break
+ fi
+ done
+- ml_config_env='CC="${CC_}$flags" CXX="${CXX_}$flags" F77="${F77_}$flags" GCJ="${GCJ_}$flags" GFORTRAN="${GFORTRAN_}$flags"'
++ ml_config_env='CC="${CC_}$flags" CXX="${CXX_}$flags" GCJ="${GCJ_}$flags"'
+
+ if [ "${with_target_subdir}" = "." ]; then
+ CC_=$CC' '
+ CXX_=$CXX' '
+- F77_=$F77' '
+ GCJ_=$GCJ' '
+- GFORTRAN_=$GFORTRAN' '
+ else
+ # Create a regular expression that matches any string as long
+ # as ML_POPDIR.
+@@ -821,18 +819,6 @@
+ esac
+ done
+
+- F77_=
+- for arg in ${F77}; do
+- case $arg in
+- -[BIL]"${ML_POPDIR}"/*)
+- F77_="${F77_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
+- "${ML_POPDIR}"/*)
+- F77_="${F77_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
+- *)
+- F77_="${F77_}${arg} " ;;
+- esac
+- done
+-
+ GCJ_=
+ for arg in ${GCJ}; do
+ case $arg in
+@@ -845,18 +831,6 @@
+ esac
+ done
+
+- GFORTRAN_=
+- for arg in ${GFORTRAN}; do
+- case $arg in
+- -[BIL]"${ML_POPDIR}"/*)
+- GFORTRAN_="${GFORTRAN_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
+- "${ML_POPDIR}"/*)
+- GFORTRAN_="${GFORTRAN_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;;
+- *)
+- GFORTRAN_="${GFORTRAN_}${arg} " ;;
+- esac
+- done
+-
+ if test "x${LD_LIBRARY_PATH+set}" = xset; then
+ LD_LIBRARY_PATH_=
+ for arg in `echo "$LD_LIBRARY_PATH" | tr ':' ' '`; do
diff --git a/meta/packages/gcc/gcc-package-cross-no-fortran.inc b/meta/packages/gcc/gcc-package-cross-no-fortran.inc
new file mode 100644
index 000000000..3548c0bb8
--- /dev/null
+++ b/meta/packages/gcc/gcc-package-cross-no-fortran.inc
@@ -0,0 +1,66 @@
+# Packages emitted by our gcc-cross builds.
+#
+INHIBIT_PACKAGE_STRIP ?= ""
+HAS_G2C ?= "yes"
+OLD_INHIBIT_PACKAGE_STRIP := "${INHIBIT_PACKAGE_STRIP}"
+INHIBIT_PACKAGE_STRIP = "1"
+
+PACKAGES = "libgcc libstdc++ libg2c libg2c-dev"
+
+PACKAGE_ARCH_libg2c = "${TARGET_ARCH}"
+PACKAGE_ARCH_libg2c-dev = "${TARGET_ARCH}"
+
+# Called from within gcc-cross, so libdir is set wrong
+FILES_libg2c = "${target_libdir}/libg2c.so.*"
+FILES_libg2c-dev = "${target_libdir}/libg2c.so \
+ ${target_libdir}/libg2c.a \
+ ${target_libdir}/libfrtbegin.a"
+
+PACKAGE_ARCH_libgcc = "${TARGET_ARCH}"
+FILES_libgcc = "${target_base_libdir}/libgcc_s.so.1"
+
+PACKAGE_ARCH_libstdc++ = "${TARGET_ARCH}"
+PACKAGE_ARCH_libstdc++-dev = "${TARGET_ARCH}"
+FILES_libstdc++ = "${target_libdir}/libstdc++.so.*"
+FILES_libstdc++-dev = "${target_includedir}/c++/${PV} \
+ ${target_libdir}/libstdc++.so \
+ ${target_libdir}/libstdc++.la \
+ ${target_libdir}/libstdc++.a \
+ ${target_libdir}/libsupc++.la \
+ ${target_libdir}/libsupc++.a"
+
+python do_package() {
+ if bb.data.getVar('DEBIAN_NAMES', d, 1):
+ bb.data.setVar('PKG_libgcc', 'libgcc1', d)
+ bb.build.exec_func('package_do_package', d)
+}
+
+do_install () {
+ oe_runmake 'DESTDIR=${D}' install
+
+ # Move libgcc_s into /lib
+ mkdir -p ${D}${target_base_libdir}
+ if [ -f ${D}${target_base_libdir}/libgcc_s.so.? ]; then
+ # Already in the right location
+ :
+ elif [ -f ${D}${prefix}/lib/libgcc_s.so.? ]; then
+ mv -f ${D}${prefix}/lib/libgcc_s.so.* ${D}${target_base_libdir}
+ else
+ mv -f ${D}${prefix}/*/lib/libgcc_s.so.* ${D}${target_base_libdir}
+ fi
+
+ # Move libstdc++ and libg2c into libdir (resetting our prefix to /usr
+ mkdir -p ${D}${target_libdir}
+ mv -f ${D}${prefix}/*/lib/libstdc++.so.* ${D}${target_libdir}
+ if [ "${HAS_G2C}" = "yes" ]; then
+ mv -f ${D}${prefix}/*/lib/libg2c.so.* ${D}${target_libdir}
+ fi
+
+ # Manually run the target stripper since we won't get it run by
+ # the packaging.
+ if [ "x${OLD_INHIBIT_PACKAGE_STRIP}" != "x1" ]; then
+ ${TARGET_PREFIX}strip ${D}${target_libdir}/libstdc++.so.*
+ ${TARGET_PREFIX}strip ${D}${target_libdir}/libg2c.so.*
+ ${TARGET_PREFIX}strip ${D}${target_base_libdir}/libgcc_s.so.*
+ fi
+}
diff --git a/meta/packages/gcc/gcc-package-no-fortran.inc b/meta/packages/gcc/gcc-package-no-fortran.inc
new file mode 100644
index 000000000..a5b5ad867
--- /dev/null
+++ b/meta/packages/gcc/gcc-package-no-fortran.inc
@@ -0,0 +1,103 @@
+gcclibdir ?= "${libdir}/gcc"
+BINV ?= "${PV}"
+
+# libgcc libstdc++ libg2c are listed in our FILES_*, but are actually
+# packaged in the respective cross packages.
+PACKAGES = "${PN} ${PN}-symlinks \
+ g++ g++-symlinks \
+ cpp cpp-symlinks \
+ gcov gcov-symlinks \
+ libstdc++-dev libg2c-dev \
+ ${PN}-doc"
+
+FILES_${PN} = "${bindir}/${TARGET_PREFIX}gcc \
+ ${bindir}/${TARGET_PREFIX}gccbug \
+ ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/cc1 \
+ ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/collect2 \
+ ${gcclibdir}/${TARGET_SYS}/${BINV}/*.o \
+ ${gcclibdir}/${TARGET_SYS}/${BINV}/specs \
+ ${gcclibdir}/${TARGET_SYS}/${BINV}/lib* \
+ ${gcclibdir}/${TARGET_SYS}/${BINV}/include"
+FILES_${PN}-symlinks = "${bindir}/cc \
+ ${bindir}/gcc \
+ ${bindir}/gccbug"
+
+FILES_cpp = "${bindir}/${TARGET_PREFIX}cpp \
+ ${base_libdir}/cpp"
+FILES_cpp-symlinks = "${bindir}/cpp"
+
+FILES_gcov = "${bindir}/${TARGET_PREFIX}gcov"
+FILES_gcov-symlinks = "${bindir}/gcov"
+
+PACKAGE_ARCH_libg2c-dev = "${TARGET_ARCH}"
+# Called from within gcc-cross, so libdir is set wrong
+FILES_libg2c-dev = "${libdir}/libg2c.so \
+ ${libdir}/libg2c.a \
+ ${libdir}/libfrtbegin.a"
+
+FILES_g++ = "${bindir}/${TARGET_PREFIX}g++ \
+ ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/cc1plus"
+FILES_g++-symlinks = "${bindir}/c++ \
+ ${bindir}/g++"
+
+PACKAGE_ARCH_libstdc++-dev = "${TARGET_ARCH}"
+FILES_libstdc++-dev = "${includedir}/c++/${BINV} \
+ ${libdir}/libstdc++.so \
+ ${libdir}/libstdc++.la \
+ ${libdir}/libstdc++.a \
+ ${libdir}/libsupc++.la \
+ ${libdir}/libsupc++.a"
+
+FILES_${PN}-doc = "${infodir} \
+ ${mandir} \
+ ${gcclibdir}/${TARGET_SYS}/${BINV}/include/README"
+
+
+do_install () {
+ autotools_do_install
+
+ # Cleanup some of the ${libdir}{,exec}/gcc stuff ...
+ rm -r ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/install-tools
+ rm -r ${D}${libexecdir}/gcc/${TARGET_SYS}/${BINV}/install-tools
+
+ # Hack around specs file assumptions
+ sed -i -e '/^*cross_compile:$/ { n; s/1/0/; }' ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/specs &>/dev/null || true
+
+ # Move libgcc_s into /lib
+ mkdir -p ${D}${base_libdir}
+ mv ${D}${libdir}/libgcc_s.so.* ${D}${base_libdir}
+ rm ${D}${libdir}/libgcc_s.so
+ ln -sf `echo ${libdir}/gcc/${TARGET_SYS}/${BINV} \
+ | tr -s / \
+ | sed -e 's,^/,,' -e 's,[^/]*,..,g'`/lib/libgcc_s.so.1 \
+ ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/libgcc_s.so
+
+ # We don't need libtool libraries
+ rm ${D}${libdir}/libg2c.la &>/dev/null || true
+
+
+ # Cleanup manpages..
+ rm -r ${D}${mandir}/man7
+
+ # We use libiberty from binutils
+ rm ${D}${libdir}/libiberty.a
+
+ cd ${D}${bindir}
+
+ # We care about g++ not c++
+ rm *c++
+
+ # We don't care about the gcc-<version> ones for this
+ rm *gcc-?.?*
+
+ # These sometimes show up, they are strange, we remove them
+ rm -f ${TARGET_ARCH}-*${TARGET_ARCH}-*
+
+ # Symlinks so we can use these trivially on the target
+ ln -sf ${TARGET_SYS}-g++ g++
+ ln -sf ${TARGET_SYS}-gcc gcc
+ ln -sf g++ c++
+ ln -sf gcc cc
+ ln -sf ${bindir}/${TARGET_SYS}-cpp ${D}${base_libdir}/cpp
+ ln -sf ${bindir}/${TARGET_SYS}-cpp ${D}${bindir}/cpp
+}
diff --git a/meta/packages/gcc/gcc4-build-cross.inc b/meta/packages/gcc/gcc4-build-cross.inc
new file mode 100644
index 000000000..905e7d383
--- /dev/null
+++ b/meta/packages/gcc/gcc4-build-cross.inc
@@ -0,0 +1,6 @@
+FORTRAN = "f95"
+HAS_GFORTRAN = "yes"
+HAS_G2C = "no"
+
+include gcc3-build-cross.inc
+
diff --git a/meta/packages/gcc/gcc4-build.inc b/meta/packages/gcc/gcc4-build.inc
index 8b80f4820..0f86ff2a3 100644
--- a/meta/packages/gcc/gcc4-build.inc
+++ b/meta/packages/gcc/gcc4-build.inc
@@ -1,6 +1,100 @@
-FORTRAN = "f95"
-HAS_GFORTRAN = "yes"
+HAS_GFORTRAN = "no"
HAS_G2C = "no"
-include gcc3-build.inc
+MIRRORS_prepend () {
+${GNU_MIRROR}/gcc/releases/ ftp://gcc.gnu.org/pub/gcc/releases/
+${GNU_MIRROR}/gcc/ http://mirrors.rcn.net/pub/sourceware/gcc/releases/
+${GNU_MIRROR}/gcc/releases/ http://gcc.get-software.com/releases/
+${GNU_MIRROR}/gcc/ http://gcc.get-software.com/releases/
+}
+
+gcclibdir ?= "${libdir}/gcc"
+S = "${WORKDIR}/gcc-${PV}"
+B = "${S}/build.${HOST_SYS}.${TARGET_SYS}"
+BINV ?= "${PV}"
+
+# gcj doesn't work on some architectures
+JAVA = ",java"
+JAVA_arm = ""
+JAVA_armeb = ""
+JAVA_mipsel = ""
+JAVA_sh3 = ""
+# gcc4-build sets this to f95
+#FORTRAN ?= "f77"
+#LANGUAGES ?= "c,c++,${JAVA}"
+LANGUAGES ?= "c,c++,${JAVA}"
+
+EXTRA_OECONF = "${@['--enable-clocale=generic', ''][bb.data.getVar('USE_NLS', d, 1) != 'no']} \
+ --with-gnu-ld \
+ --enable-shared \
+ --enable-target-optspace \
+ --enable-languages=${LANGUAGES} \
+ --enable-threads=posix \
+ --enable-multilib \
+ --enable-c99 \
+ --enable-long-long \
+ --enable-symvers=gnu \
+ --enable-libstdcxx-pch \
+ --program-prefix=${TARGET_PREFIX} \
+ ${EXTRA_OECONF_PATHS} \
+ ${EXTRA_OECONF_DEP}"
+
+EXTRA_OECONF_PATHS = " \
+ --with-local-prefix=${prefix}/local \
+ --with-gxx-include-dir=${includedir}/c++/${BINV}"
+
+EXTRA_OECONF_DEP = ""
+EXTRA_OECONF_uclibc = "--disable-__cxa_atexit"
+EXTRA_OECONF_glibc = "--enable-__cxa_atexit"
+EXTRA_OECONF += "${@get_gcc_fpu_setting(bb, d)}"
+CPPFLAGS = ""
+
+# Used by configure to define additional values for FLAGS_FOR_TARGET -
+# passed to all the compilers.
+ARCH_FLAGS_FOR_TARGET = ""
+#NOTE: not tested on other platforms, the following is probably correct
+# everywhere!
+ARCH_FLAGS_FOR_TARGET_slugos = "${TARGET_CC_ARCH}"
+ARCH_FLAGS_FOR_TARGET_unslung = "${TARGET_CC_ARCH}"
+EXTRA_OEMAKE += "ARCH_FLAGS_FOR_TARGET='${ARCH_FLAGS_FOR_TARGET}'"
+
+def get_gcc_fpu_setting(bb, d):
+ if bb.data.getVar('TARGET_FPU', d, 1) in [ 'soft' ]:
+ return "--with-float=soft"
+ return ""
+
+python __anonymous () {
+ import bb, re
+ if (re.match('linux-uclibc$', bb.data.getVar('TARGET_OS', d, 1)) != None):
+ bb.data.setVar('EXTRA_OECONF_DEP', '${EXTRA_OECONF_uclibc}', d)
+ elif (re.match('linux$', bb.data.getVar('TARGET_OS', d, 1)) != None):
+ bb.data.setVar('EXTRA_OECONF_DEP', '${EXTRA_OECONF_glibc}', d)
+}
+
+do_configure () {
+ # Setup these vars for cross building only
+ # ... because foo_FOR_TARGET apparently gets misinterpreted inside the
+ # gcc build stuff when the build is producing a cross compiler - i.e.
+ # when the 'current' target is the 'host' system, and the host is not
+ # the target (because the build is actually making a cross compiler!)
+ if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
+ export CC_FOR_TARGET="${CC}"
+ export GCC_FOR_TARGET="${CC}"
+ export CXX_FOR_TARGET="${CXX}"
+ export AS_FOR_TARGET="${HOST_PREFIX}as"
+ export LD_FOR_TARGET="${HOST_PREFIX}ld"
+ export NM_FOR_TARGET="${HOST_PREFIX}nm"
+ export AR_FOR_TARGET="${HOST_PREFIX}ar"
+ export RANLIB_FOR_TARGET="${HOST_PREFIX}ranlib"
+ fi
+ export CC_FOR_BUILD="${BUILD_CC}"
+ export CXX_FOR_BUILD="${BUILD_CXX}"
+ export CFLAGS_FOR_BUILD="${BUILD_CFLAGS}"
+ export CPPFLAGS_FOR_BUILD="${BUILD_CPPFLAGS}"
+ export CXXFLAGS_FOR_BUILD="${BUILD_CXXFLAGS}"
+ export LDFLAGS_FOR_BUILD="${BUILD_LDFLAGS}"
+ export ARCH_FLAGS_FOR_TARGET="${ARCH_FLAGS_FOR_TARGET}"
+ (cd ${S} && gnu-configize) || die "failure running gnu-configize"
+ oe_runconf
+}
diff --git a/meta/packages/gcc/gcc_csl-arm-2006q1.bb b/meta/packages/gcc/gcc_csl-arm-2006q1.bb
new file mode 100644
index 000000000..88f7c7ebd
--- /dev/null
+++ b/meta/packages/gcc/gcc_csl-arm-2006q1.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "The GNU cc and gcc C compilers."
+HOMEPAGE = "http://www.gnu.org/software/gcc/"
+SECTION = "devel"
+LICENSE = "GPL"
+BINV = "4.1.0"
+PV = "4.1.0+csl-arm-2006q1-6"
+PR = "r1"
+
+FILESDIR = "${FILE_DIRNAME}/gcc-csl-arm"
+
+inherit autotools gettext
+
+require gcc-package-no-fortran.inc
+
+SRC_URI = "http://www.codesourcery.com/public/gnu_toolchain/arm-none-eabi/arm-2006q1-6-arm-none-eabi.src.tar.bz2 \
+ file://gcc-configure-no-fortran.patch;patch=1;pnum=1"
+
+#the optabi patch is already applied
+
+do_unpack2() {
+ cd ${WORKDIR}
+ pwd
+ tar -xvjf ./arm-2006q1-6-arm-none-eabi/gcc-2006q1-6.tar.bz2
+}
+
+addtask unpack2 after do_unpack before do_patch
+
+require gcc4-build.inc
+
+S = "${WORKDIR}/gcc-2006q1"