diff options
Diffstat (limited to 'meta')
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 0000000000..427cdaa5c7 --- /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 0000000000..4461bedd4e --- /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 0000000000..9d16011a06 --- /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 0000000000..25222e5df2 --- /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 0000000000..04a7e61e25 --- /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 0000000000..f337611edf --- /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 0000000000..498651a90c --- /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 0000000000..5959c718d2 --- /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 0000000000..9ef7a7c9ec --- /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Ãe 5, 90409 NÃ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 0000000000..07f2b33fa7 --- /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 0000000000..76c8fe53dc --- /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 0000000000..17cf7b4d9b --- /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 0000000000..662c1b0763 --- /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 0000000000..c845503303 --- /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 0000000000..3548c0bb8e --- /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 0000000000..a5b5ad867a --- /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 0000000000..905e7d3839 --- /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 8b80f4820a..0f86ff2a31 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 0000000000..88f7c7ebd6 --- /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" |