]> code.ossystems Code Review - openembedded-core.git/commitdiff
configuration for csl2006q1-6 compiler and binutils
authorTomas Frydrych <tf@openedhand.com>
Wed, 6 Sep 2006 15:12:59 +0000 (15:12 +0000)
committerTomas Frydrych <tf@openedhand.com>
Wed, 6 Sep 2006 15:12:59 +0000 (15:12 +0000)
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@697 311d38ba-8fff-0310-9ca6-ca027cbcb966

19 files changed:
meta/conf/distro/include/poky-eabi3.inc [new file with mode: 0644]
meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-2.16.91.0.6-objcopy-rename-errorcode.patch [new file with mode: 0644]
meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-2.17-csl-tc-arm-mmxwc-polymorphism.patch [new file with mode: 0644]
meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-100-uclibc-conf.patch [new file with mode: 0644]
meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-300-001_ld_makefile_patch.patch [new file with mode: 0644]
meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-300-006_better_file_error.patch [new file with mode: 0644]
meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-300-012_check_ldrunpath_length.patch [new file with mode: 0644]
meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-400-mips-ELF_MAXPAGESIZE-4K.patch [new file with mode: 0644]
meta/packages/binutils/binutils-2.17+csl-arm-2006q1-6/binutils-uclibc-702-binutils-skip-comments.patch [new file with mode: 0644]
meta/packages/binutils/binutils-cross_csl-arm-2006q1.bb [new file with mode: 0644]
meta/packages/binutils/binutils_csl-arm-2006q1.bb [new file with mode: 0644]
meta/packages/gcc/gcc-cross-initial_csl-arm-2006q1.bb [new file with mode: 0644]
meta/packages/gcc/gcc-cross_csl-arm-2006q1.bb [new file with mode: 0644]
meta/packages/gcc/gcc-csl-arm/gcc-configure-no-fortran.patch [new file with mode: 0644]
meta/packages/gcc/gcc-package-cross-no-fortran.inc [new file with mode: 0644]
meta/packages/gcc/gcc-package-no-fortran.inc [new file with mode: 0644]
meta/packages/gcc/gcc4-build-cross.inc [new file with mode: 0644]
meta/packages/gcc/gcc4-build.inc
meta/packages/gcc/gcc_csl-arm-2006q1.bb [new file with mode: 0644]

diff --git a/meta/conf/distro/include/poky-eabi3.inc b/meta/conf/distro/include/poky-eabi3.inc
new file mode 100644 (file)
index 0000000..427cdaa
--- /dev/null
@@ -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 (file)
index 0000000..4461bed
--- /dev/null
@@ -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 (file)
index 0000000..9d16011
--- /dev/null
@@ -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 (file)
index 0000000..25222e5
--- /dev/null
@@ -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 (file)
index 0000000..04a7e61
--- /dev/null
@@ -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 (file)
index 0000000..f337611
--- /dev/null
@@ -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 (file)
index 0000000..498651a
--- /dev/null
@@ -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 (file)
index 0000000..5959c71
--- /dev/null
@@ -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 (file)
index 0000000..9ef7a7c
--- /dev/null
@@ -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 (file)
index 0000000..07f2b33
--- /dev/null
@@ -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 (file)
index 0000000..76c8fe5
--- /dev/null
@@ -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 (file)
index 0000000..17cf7b4
--- /dev/null
@@ -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 (file)
index 0000000..662c1b0
--- /dev/null
@@ -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 (file)
index 0000000..c845503
--- /dev/null
@@ -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 (file)
index 0000000..3548c0b
--- /dev/null
@@ -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 (file)
index 0000000..a5b5ad8
--- /dev/null
@@ -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 (file)
index 0000000..905e7d3
--- /dev/null
@@ -0,0 +1,6 @@
+FORTRAN = "f95"
+HAS_GFORTRAN = "yes"
+HAS_G2C = "no"
+
+include gcc3-build-cross.inc
+
index 8b80f4820a0e98804aa6dc556df0b8fa6bbf57d1..0f86ff2a312b275e525c30cf9e6ccbb64bfbd4a6 100644 (file)
@@ -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 (file)
index 0000000..88f7c7e
--- /dev/null
@@ -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"