diff options
Diffstat (limited to 'oecore.patch')
-rw-r--r-- | oecore.patch | 3244 |
1 files changed, 3244 insertions, 0 deletions
diff --git a/oecore.patch b/oecore.patch new file mode 100644 index 0000000..a30858e --- /dev/null +++ b/oecore.patch @@ -0,0 +1,3244 @@ +diff --git a/meta/classes/chrpath.bbclass b/meta/classes/chrpath.bbclass +index 0c7ab77..61a24b3 100644 +--- a/meta/classes/chrpath.bbclass ++++ b/meta/classes/chrpath.bbclass +@@ -1,18 +1,103 @@ + CHRPATH_BIN ?= "chrpath" + PREPROCESS_RELOCATE_DIRS ?= "" + +-def process_dir (directory, d): ++def process_file_linux(cmd, fpath, basedir, tmpdir, d): + import subprocess as sub ++ ++ p = sub.Popen([cmd, '-l', fpath],stdout=sub.PIPE,stderr=sub.PIPE) ++ err, out = p.communicate() ++ # If returned succesfully, process stderr for results ++ if p.returncode != 0: ++ return ++ ++ # Throw away everything other than the rpath list ++ curr_rpath = err.partition("RPATH=")[2] ++ #bb.note("Current rpath for %s is %s" % (fpath, curr_rpath.strip())) ++ rpaths = curr_rpath.split(":") ++ new_rpaths = [] ++ for rpath in rpaths: ++ # If rpath is already dynamic copy it to new_rpath and continue ++ if rpath.find("$ORIGIN") != -1: ++ new_rpaths.append(rpath.strip()) ++ continue ++ rpath = os.path.normpath(rpath) ++ # If the rpath shares a root with base_prefix determine a new dynamic rpath from the ++ # base_prefix shared root ++ if rpath.find(basedir) != -1: ++ depth = fpath.partition(basedir)[2].count('/') ++ libpath = rpath.partition(basedir)[2].strip() ++ # otherwise (i.e. cross packages) determine a shared root based on the TMPDIR ++ # NOTE: This will not work reliably for cross packages, particularly in the case ++ # where your TMPDIR is a short path (i.e. /usr/poky) as chrpath cannot insert an ++ # rpath longer than that which is already set. ++ elif rpath.find(tmpdir) != -1: ++ depth = fpath.rpartition(tmpdir)[2].count('/') ++ libpath = rpath.partition(tmpdir)[2].strip() ++ else: ++ new_rpaths.append(rpath.strip()) ++ return ++ base = "$ORIGIN" ++ while depth > 1: ++ base += "/.." ++ depth-=1 ++ new_rpaths.append("%s%s" % (base, libpath)) ++ ++ # if we have modified some rpaths call chrpath to update the binary ++ if len(new_rpaths): ++ args = ":".join(new_rpaths) ++ #bb.note("Setting rpath for %s to %s" %(fpath, args)) ++ p = sub.Popen([cmd, '-r', args, fpath],stdout=sub.PIPE,stderr=sub.PIPE) ++ out, err = p.communicate() ++ if p.returncode != 0: ++ bb.error("%s: chrpath command failed with exit code %d:\n%s%s" % (d.getVar('PN', True), p.returncode, out, err)) ++ raise bb.build.FuncFailed ++ ++def process_file_darwin(cmd, fpath, basedir, tmpdir, d): ++ import subprocess as sub ++ ++ p = sub.Popen([d.expand("${HOST_PREFIX}otool"), '-L', fpath],stdout=sub.PIPE,stderr=sub.PIPE) ++ err, out = p.communicate() ++ # If returned succesfully, process stderr for results ++ if p.returncode != 0: ++ return ++ for l in err.split("\n"): ++ if "(compatibility" not in l: ++ continue ++ rpath = l.partition("(compatibility")[0].strip() ++ if rpath.find(basedir) != -1: ++ depth = fpath.partition(basedir)[2].count('/') ++ libpath = rpath.partition(basedir)[2].strip() ++ else: ++ continue ++ ++ base = "@loader_path" ++ while depth > 1: ++ base += "/.." ++ depth-=1 ++ base = base + libpath ++ p = sub.Popen([d.expand("${HOST_PREFIX}install_name_tool"), '-change', rpath, base, fpath],stdout=sub.PIPE,stderr=sub.PIPE) ++ err, out = p.communicate() ++ ++def process_dir (directory, d): + import stat + + cmd = d.expand('${CHRPATH_BIN}') + tmpdir = os.path.normpath(d.getVar('TMPDIR')) + basedir = os.path.normpath(d.expand('${base_prefix}')) ++ hostos = d.getVar("HOST_OS", True) + + #bb.debug("Checking %s for binaries to process" % directory) + if not os.path.exists(directory): + return + ++ if "linux" in hostos: ++ process_file = process_file_linux ++ elif "darwin" in hostos: ++ process_file = process_file_darwin ++ else: ++ # Relocations not supported ++ return ++ + dirs = os.listdir(directory) + for file in dirs: + fpath = directory + "/" + file +@@ -35,55 +120,8 @@ def process_dir (directory, d): + else: + # Temporarily make the file writeable so we can chrpath it + os.chmod(fpath, perms|stat.S_IRWXU) +- +- p = sub.Popen([cmd, '-l', fpath],stdout=sub.PIPE,stderr=sub.PIPE) +- err, out = p.communicate() +- # If returned succesfully, process stderr for results +- if p.returncode != 0: +- continue +- +- # Throw away everything other than the rpath list +- curr_rpath = err.partition("RPATH=")[2] +- #bb.note("Current rpath for %s is %s" % (fpath, curr_rpath.strip())) +- rpaths = curr_rpath.split(":") +- new_rpaths = [] +- for rpath in rpaths: +- # If rpath is already dynamic copy it to new_rpath and continue +- if rpath.find("$ORIGIN") != -1: +- new_rpaths.append(rpath.strip()) +- continue +- rpath = os.path.normpath(rpath) +- # If the rpath shares a root with base_prefix determine a new dynamic rpath from the +- # base_prefix shared root +- if rpath.find(basedir) != -1: +- depth = fpath.partition(basedir)[2].count('/') +- libpath = rpath.partition(basedir)[2].strip() +- # otherwise (i.e. cross packages) determine a shared root based on the TMPDIR +- # NOTE: This will not work reliably for cross packages, particularly in the case +- # where your TMPDIR is a short path (i.e. /usr/poky) as chrpath cannot insert an +- # rpath longer than that which is already set. +- elif rpath.find(tmpdir) != -1: +- depth = fpath.rpartition(tmpdir)[2].count('/') +- libpath = rpath.partition(tmpdir)[2].strip() +- else: +- new_rpaths.append(rpath.strip()) +- continue +- base = "$ORIGIN" +- while depth > 1: +- base += "/.." +- depth-=1 +- new_rpaths.append("%s%s" % (base, libpath)) +- +- # if we have modified some rpaths call chrpath to update the binary +- if len(new_rpaths): +- args = ":".join(new_rpaths) +- #bb.note("Setting rpath for %s to %s" %(fpath, args)) +- p = sub.Popen([cmd, '-r', args, fpath],stdout=sub.PIPE,stderr=sub.PIPE) +- out, err = p.communicate() +- if p.returncode != 0: +- bb.error("%s: chrpath command failed with exit code %d:\n%s%s" % (d.getVar('PN', True), p.returncode, out, err)) +- raise bb.build.FuncFailed +- ++ process_file(cmd, fpath, basedir, tmpdir, d) ++ + if perms: + os.chmod(fpath, perms) + +diff --git a/meta/classes/cross-canadian.bbclass b/meta/classes/cross-canadian.bbclass +index 7ab36ac..a6eb3e5 100644 +--- a/meta/classes/cross-canadian.bbclass ++++ b/meta/classes/cross-canadian.bbclass +@@ -14,25 +14,25 @@ STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${SDK_ARCH}${S + # + # Update BASE_PACKAGE_ARCH and PACKAGE_ARCHS + # +-PACKAGE_ARCH = "${SDK_ARCH}-nativesdk" ++PACKAGE_ARCH = "${SDK_ARCH}-${SDKPKGSUFFIX}" + python () { + archs = d.getVar('PACKAGE_ARCHS', True).split() + sdkarchs = [] + for arch in archs: +- sdkarchs.append(arch + '-nativesdk') ++ sdkarchs.append(arch + '-${SDKPKGSUFFIX}') + d.setVar('PACKAGE_ARCHS', " ".join(sdkarchs)) + } + MULTIMACH_TARGET_SYS = "${PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}" + + INHIBIT_DEFAULT_DEPS = "1" + +-STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}" ++STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}" + +-TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR}/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}" ++TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR}/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}" + + PATH_append = ":${TMPDIR}/sysroots/${HOST_ARCH}/${bindir_cross}" +-PKGDATA_DIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}" +-PKGHIST_DIR = "${TMPDIR}/pkghistory/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}/" ++PKGDATA_DIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}" ++PKGHIST_DIR = "${TMPDIR}/pkghistory/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}/" + + HOST_ARCH = "${SDK_ARCH}" + HOST_VENDOR = "${SDK_VENDOR}" +@@ -90,7 +90,7 @@ export PKG_CONFIG_DIR = "${STAGING_DIR_HOST}${layout_libdir}/pkgconfig" + export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}" + + # Cross-canadian packages need to pull in nativesdk dynamic libs +-SHLIBSDIRS = "${TMPDIR}/pkgdata/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}/shlibs/ ${TMPDIR}/pkgdata/all-${HOST_VENDOR}-${HOST_OS}/shlibs/" +-SHLIBSDIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-nativesdk${HOST_VENDOR}-${HOST_OS}/shlibs/" ++SHLIBSDIRS = "${TMPDIR}/pkgdata/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}/shlibs/ ${TMPDIR}/pkgdata/all-${HOST_VENDOR}-${HOST_OS}/shlibs/" ++SHLIBSDIR = "${TMPDIR}/pkgdata/${HOST_ARCH}-${SDKPKGSUFFIX}${HOST_VENDOR}-${HOST_OS}/shlibs/" + + do_populate_sysroot[stamp-extra-info] = "" +diff --git a/meta/classes/crosssdk.bbclass b/meta/classes/crosssdk.bbclass +index 32b14d3..5dd910f 100644 +--- a/meta/classes/crosssdk.bbclass ++++ b/meta/classes/crosssdk.bbclass +@@ -7,7 +7,7 @@ python () { + d.setVar('TUNE_PKGARCH', d.getVar('SDK_ARCH', True)) + } + +-STAGING_DIR_TARGET = "${STAGING_DIR}/${SDK_ARCH}-nativesdk${SDK_VENDOR}-${SDK_OS}" ++STAGING_DIR_TARGET = "${STAGING_DIR}/${SDK_ARCH}-${SDKPKGSUFFIX}${SDK_VENDOR}-${SDK_OS}" + STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}" + + TARGET_ARCH = "${SDK_ARCH}" +@@ -23,7 +23,7 @@ target_libdir = "${SDKPATHNATIVE}${libdir_nativesdk}" + target_includedir = "${SDKPATHNATIVE}${includedir_nativesdk}" + target_base_libdir = "${SDKPATHNATIVE}${base_libdir_nativesdk}" + target_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}" +-target_exec_prefix = "${SDKPATHNATIVE}${exec_prefix_nativesdk}" ++target_exec_prefix = "${SDKPATHNATIVE}${prefix_nativesdk}" + baselib = "lib" + + do_populate_sysroot[stamp-extra-info] = "" +diff --git a/meta/classes/gettext.bbclass b/meta/classes/gettext.bbclass +index 95818c6..a4e5ab6 100644 +--- a/meta/classes/gettext.bbclass ++++ b/meta/classes/gettext.bbclass +@@ -1,5 +1,5 @@ + def gettext_dependencies(d): +- if d.getVar('USE_NLS', True) == 'no' and not oe.utils.inherits(d, 'native', 'nativesdk', 'cross'): ++ if d.getVar('USE_NLS', True) == 'no' and not oe.utils.inherits(d, 'native', 'cross'): + return "" + if d.getVar('INHIBIT_DEFAULT_DEPS', True) and not oe.utils.inherits(d, 'cross-canadian'): + return "" +@@ -11,7 +11,7 @@ def gettext_oeconf(d): + if oe.utils.inherits(d, 'native', 'cross'): + return '--disable-nls' + # Remove the NLS bits if USE_NLS is no. +- if d.getVar('USE_NLS', True) == 'no' and not oe.utils.inherits(d, 'nativesdk', 'cross-canadian'): ++ if d.getVar('USE_NLS', True) == 'no' and not oe.utils.inherits(d, 'cross-canadian'): + return '--disable-nls' + return "--enable-nls" + +diff --git a/meta/classes/nativesdk.bbclass b/meta/classes/nativesdk.bbclass +index 8b689e7..28d755b 100644 +--- a/meta/classes/nativesdk.bbclass ++++ b/meta/classes/nativesdk.bbclass +@@ -13,7 +13,7 @@ CLASSOVERRIDE = "class-nativesdk" + # + # Update PACKAGE_ARCH and PACKAGE_ARCHS + # +-PACKAGE_ARCH = "${SDK_ARCH}-nativesdk" ++PACKAGE_ARCH = "${SDK_ARCH}-${SDKPKGSUFFIX}" + PACKAGE_ARCHS = "${SDK_PACKAGE_ARCHS}" + + # +diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass +index 551cafc..33317ce 100644 +--- a/meta/classes/package.bbclass ++++ b/meta/classes/package.bbclass +@@ -313,6 +313,12 @@ def copydebugsources(debugsrcdir, d): + #if retval: + # bb.fatal("debug source copy failed with exit code %s (cmd was %s)" % (retval, cmd)) + ++ # cpio seems to have a bug with -lL together and symbolic links are just copied, not dereferenced. ++ # Work around this by manually finding and copying any symbolic links that made it through. ++ cmd = "find %s%s -type l -print0 -delete | sed s#%s%s/##g | (cd '%s' ; cpio -pd0mL --no-preserve-owner '%s%s' 2>/dev/null)" % (dvar, debugsrcdir, dvar, debugsrcdir, workparentdir, dvar, debugsrcdir) ++ retval = subprocess.call(cmd, shell=True) ++ if retval: ++ bb.fatal("debugsrc symlink fixup failed with exit code %s (cmd was %s)" % (retval, cmd)) + + # The copy by cpio may have resulted in some empty directories! Remove these + cmd = "find %s%s -empty -type d -delete" % (dvar, debugsrcdir) +diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass +index 897159a..69ce859 100644 +--- a/meta/classes/populate_sdk_base.bbclass ++++ b/meta/classes/populate_sdk_base.bbclass +@@ -108,11 +108,13 @@ fakeroot create_sdk_files() { + sed -i -e "s:##DEFAULT_INSTALL_DIR##:$escaped_sdkpath:" ${SDK_OUTPUT}/${SDKPATH}/relocate_sdk.py + } + ++SDKTAROPTS = "--owner=root --group=root -j" ++ + fakeroot tar_sdk() { + # Package it up + mkdir -p ${SDK_DEPLOY} + cd ${SDK_OUTPUT}/${SDKPATH} +- tar --owner=root --group=root -cj --file=${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 . ++ tar ${SDKTAROPTS} -c --file=${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 . + } + + fakeroot create_shar() { +diff --git a/meta/conf/bitbake.conf b/meta/conf/bitbake.conf +index cd5d61e..0e59267 100644 +--- a/meta/conf/bitbake.conf ++++ b/meta/conf/bitbake.conf +@@ -126,7 +126,8 @@ SDK_VENDOR = "-oesdk" + SDK_SYS = "${SDK_ARCH}${SDK_VENDOR}${@['-' + d.getVar('SDK_OS', True), ''][d.getVar('SDK_OS', True) == ('' or 'custom')]}" + SDK_PREFIX = "${SDK_SYS}-" + SDK_CC_ARCH = "${BUILD_CC_ARCH}" +-SDK_PACKAGE_ARCHS = "all any noarch ${SDK_ARCH}-nativesdk" ++SDKPKGSUFFIX = "nativesdk" ++SDK_PACKAGE_ARCHS = "all any noarch ${SDK_ARCH}-${SDKPKGSUFFIX}" + SDK_LD_ARCH = "${BUILD_LD_ARCH}" + SDK_AS_ARCH = "${BUILD_AS_ARCH}" + +@@ -257,14 +258,14 @@ RPROVIDES = "" + MULTI_PROVIDER_WHITELIST = "virtual/libintl virtual/libintl-native virtual/nativesdk-libintl virtual/xserver virtual/update-alternatives-native virtual/update-alternatives" + + SOLIBS = ".so.*" +-SOLIBS_darwin = ".*.dylib" +-SOLIBS_darwin8 = ".*.dylib" +-SOLIBS_darwin9 = ".*.dylib" ++SOLIBS_darwin = ".dylib" ++SOLIBS_darwin8 = ".dylib" ++SOLIBS_darwin9 = ".dylib" + + SOLIBSDEV = ".so" +-SOLIBSDEV_darwin = ".dylib" +-SOLIBSDEV_darwin8 = ".dylib" +-SOLIBSDEV_darwin9 = ".dylib" ++SOLIBSDEV_darwin = ".dylibxx" ++SOLIBSDEV_darwin8 = ".dylibxx" ++SOLIBSDEV_darwin9 = ".dylibxx" + + PACKAGE_BEFORE_PN ?= "" + PACKAGES = "${PN}-dbg ${PN}-staticdev ${PN}-dev ${PN}-doc ${PN}-locale ${PACKAGE_BEFORE_PN} ${PN}" +diff --git a/meta/recipes-core/gettext/gettext_0.18.2.bb b/meta/recipes-core/gettext/gettext_0.18.2.bb +index 086f7fa..0cd0fe5 100644 +--- a/meta/recipes-core/gettext/gettext_0.18.2.bb ++++ b/meta/recipes-core/gettext/gettext_0.18.2.bb +@@ -6,7 +6,7 @@ LICENSE = "GPLv3+ & LGPL-2.1+" + LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" + + PR = "r0" +-DEPENDS = "gettext-native virtual/libiconv ncurses expat" ++DEPENDS = "gettext-native virtual/libiconv expat" + DEPENDS_class-native = "gettext-minimal-native" + PROVIDES = "virtual/libintl virtual/gettext" + PROVIDES_class-native = "virtual/gettext-native" +@@ -22,6 +22,8 @@ SRC_URI[sha256sum] = "516a6370b3b3f46e2fc5a5e222ff5ecd76f3089bc956a7587a6e4f89de + + inherit autotools + ++PACKAGECONFIG[msgcat-curses] = "--with-libncurses-prefix=${STAGING_LIBDIR}/..,--disable-curses,ncurses," ++ + EXTRA_OECONF += "--without-lispdir \ + --disable-csharp \ + --disable-libasprintf \ +@@ -30,7 +32,6 @@ EXTRA_OECONF += "--without-lispdir \ + --disable-openmp \ + --disable-acl \ + --with-included-glib \ +- --with-libncurses-prefix=${STAGING_LIBDIR}/.. \ + --without-emacs \ + --without-cvs \ + --without-git \ +diff --git a/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb b/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb +index 63fea28..b36b41a 100644 +--- a/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb ++++ b/meta/recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb +@@ -29,3 +29,11 @@ RDEPENDS_${PN}_darwin8 = "\ + nativesdk-opkg \ + nativesdk-libtool \ + " ++ ++RDEPENDS_${PN}_mingw32 = "\ ++ nativesdk-libtool \ ++ " ++ ++RDEPENDS_${PN}_darwin = "\ ++ nativesdk-libtool \ ++ " +diff --git a/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb b/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb +index a6c6c36..1f18944 100644 +--- a/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb ++++ b/meta/recipes-core/packagegroups/packagegroup-cross-canadian.bb +@@ -20,3 +20,9 @@ RDEPENDS_${PN} = "\ + meta-environment-${TRANSLATED_TARGET_ARCH} \ + " + ++RDEPENDS_${PN} = "\ ++ binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \ ++ gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \ ++ meta-environment-${TRANSLATED_TARGET_ARCH} \ ++ " ++ +diff --git a/meta/recipes-devtools/gcc/gcc-4.7.inc b/meta/recipes-devtools/gcc/gcc-4.7.inc +index 81c8f07..6f3c16a 100644 +--- a/meta/recipes-devtools/gcc/gcc-4.7.inc ++++ b/meta/recipes-devtools/gcc/gcc-4.7.inc +@@ -78,6 +78,8 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \ + file://wcast-qual-PR55383.patch \ + file://disable-texinfo-5.patch \ + file://avoid-oob-array-access.patch \ ++ file://cpp.patch \ ++ file://gengtype.patch \ + " + SRC_URI[md5sum] = "cc308a0891e778cfda7a151ab8a6e762" + SRC_URI[sha256sum] = "8a9283d7010fb9fe5ece3ca507e0af5c19412626384f8a5e9434251ae100b084" +diff --git a/meta/recipes-devtools/gcc/gcc-4.7/cpp.patch b/meta/recipes-devtools/gcc/gcc-4.7/cpp.patch +new file mode 100644 +index 0000000..feb4eab +--- /dev/null ++++ b/meta/recipes-devtools/gcc/gcc-4.7/cpp.patch +@@ -0,0 +1,12 @@ ++Index: gcc-4.8.1/Makefile.in ++=================================================================== ++--- gcc-4.8.1.orig/Makefile.in 2013-03-30 11:25:03.000000000 +0000 +++++ gcc-4.8.1/Makefile.in 2013-08-13 12:03:17.151988882 +0000 ++@@ -149,6 +149,7 @@ ++ AR="$(AR_FOR_BUILD)"; export AR; \ ++ AS="$(AS_FOR_BUILD)"; export AS; \ ++ CC="$(CC_FOR_BUILD)"; export CC; \ +++ CPP="$(CC_FOR_BUILD) -E"; export CPP; \ ++ CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ ++ CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ ++ CXX="$(CXX_FOR_BUILD)"; export CXX; \ +diff --git a/meta/recipes-devtools/gcc/gcc-4.7/gengtype.patch b/meta/recipes-devtools/gcc/gcc-4.7/gengtype.patch +new file mode 100644 +index 0000000..b6fc4ce +--- /dev/null ++++ b/meta/recipes-devtools/gcc/gcc-4.7/gengtype.patch +@@ -0,0 +1,2658 @@ ++Index: gcc-4.7.2/gcc/Makefile.in ++=================================================================== ++--- gcc-4.7.2.orig/gcc/Makefile.in 2013-08-19 15:16:46.415714038 +0000 +++++ gcc-4.7.2/gcc/Makefile.in 2013-08-19 15:41:49.655680143 +0000 ++@@ -3964,7 +3964,7 @@ ++ # any system header is included. ++ gengtype-lex.c : gengtype-lex.l ++ -$(FLEX) $(FLEXFLAGS) -o$@ $< && { \ ++- echo '#include "bconfig.h"' > $@.tmp; \ +++ echo '' > $@.tmp; \ ++ cat $@ >> $@.tmp; \ ++ mv $@.tmp $@; \ ++ } ++Index: gcc-4.7.2/gcc/gengtype-lex.c ++=================================================================== ++--- gcc-4.7.2.orig/gcc/gengtype-lex.c 2012-09-20 07:25:55.000000000 +0000 +++++ /dev/null 1970-01-01 00:00:00.000000000 +0000 ++@@ -1,2640 +0,0 @@ ++-#include "bconfig.h" ++-#line 2 "gengtype-lex.c" ++- ++-#line 4 "gengtype-lex.c" ++- ++-#define YY_INT_ALIGNED short int ++- ++-/* A lexical scanner generated by flex */ ++- ++-#define FLEX_SCANNER ++-#define YY_FLEX_MAJOR_VERSION 2 ++-#define YY_FLEX_MINOR_VERSION 5 ++-#define YY_FLEX_SUBMINOR_VERSION 35 ++-#if YY_FLEX_SUBMINOR_VERSION > 0 ++-#define FLEX_BETA ++-#endif ++- ++-/* First, we deal with platform-specific or compiler-specific issues. */ ++- ++-/* begin standard C headers. */ ++-#include <stdio.h> ++-#include <string.h> ++-#include <errno.h> ++-#include <stdlib.h> ++- ++-/* end standard C headers. */ ++- ++-/* flex integer type definitions */ ++- ++-#ifndef FLEXINT_H ++-#define FLEXINT_H ++- ++-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ ++- ++-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L ++- ++-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, ++- * if you want the limit (max/min) macros for int types. ++- */ ++-#ifndef __STDC_LIMIT_MACROS ++-#define __STDC_LIMIT_MACROS 1 ++-#endif ++- ++-#include <inttypes.h> ++-typedef int8_t flex_int8_t; ++-typedef uint8_t flex_uint8_t; ++-typedef int16_t flex_int16_t; ++-typedef uint16_t flex_uint16_t; ++-typedef int32_t flex_int32_t; ++-typedef uint32_t flex_uint32_t; ++-#else ++-typedef signed char flex_int8_t; ++-typedef short int flex_int16_t; ++-typedef int flex_int32_t; ++-typedef unsigned char flex_uint8_t; ++-typedef unsigned short int flex_uint16_t; ++-typedef unsigned int flex_uint32_t; ++-#endif /* ! C99 */ ++- ++-/* Limits of integral types. */ ++-#ifndef INT8_MIN ++-#define INT8_MIN (-128) ++-#endif ++-#ifndef INT16_MIN ++-#define INT16_MIN (-32767-1) ++-#endif ++-#ifndef INT32_MIN ++-#define INT32_MIN (-2147483647-1) ++-#endif ++-#ifndef INT8_MAX ++-#define INT8_MAX (127) ++-#endif ++-#ifndef INT16_MAX ++-#define INT16_MAX (32767) ++-#endif ++-#ifndef INT32_MAX ++-#define INT32_MAX (2147483647) ++-#endif ++-#ifndef UINT8_MAX ++-#define UINT8_MAX (255U) ++-#endif ++-#ifndef UINT16_MAX ++-#define UINT16_MAX (65535U) ++-#endif ++-#ifndef UINT32_MAX ++-#define UINT32_MAX (4294967295U) ++-#endif ++- ++-#endif /* ! FLEXINT_H */ ++- ++-#ifdef __cplusplus ++- ++-/* The "const" storage-class-modifier is valid. */ ++-#define YY_USE_CONST ++- ++-#else /* ! __cplusplus */ ++- ++-/* C99 requires __STDC__ to be defined as 1. */ ++-#if defined (__STDC__) ++- ++-#define YY_USE_CONST ++- ++-#endif /* defined (__STDC__) */ ++-#endif /* ! __cplusplus */ ++- ++-#ifdef YY_USE_CONST ++-#define yyconst const ++-#else ++-#define yyconst ++-#endif ++- ++-/* Returned upon end-of-file. */ ++-#define YY_NULL 0 ++- ++-/* Promotes a possibly negative, possibly signed char to an unsigned ++- * integer for use as an array index. If the signed char is negative, ++- * we want to instead treat it as an 8-bit unsigned char, hence the ++- * double cast. ++- */ ++-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) ++- ++-/* Enter a start condition. This macro really ought to take a parameter, ++- * but we do it the disgusting crufty way forced on us by the ()-less ++- * definition of BEGIN. ++- */ ++-#define BEGIN (yy_start) = 1 + 2 * ++- ++-/* Translate the current start state into a value that can be later handed ++- * to BEGIN to return to the state. The YYSTATE alias is for lex ++- * compatibility. ++- */ ++-#define YY_START (((yy_start) - 1) / 2) ++-#define YYSTATE YY_START ++- ++-/* Action number for EOF rule of a given start state. */ ++-#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) ++- ++-/* Special action meaning "start processing a new file". */ ++-#define YY_NEW_FILE yyrestart(yyin ) ++- ++-#define YY_END_OF_BUFFER_CHAR 0 ++- ++-/* Size of default input buffer. */ ++-#ifndef YY_BUF_SIZE ++-#define YY_BUF_SIZE 16384 ++-#endif ++- ++-/* The state buf must be large enough to hold one state per character in the main buffer. ++- */ ++-#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) ++- ++-#ifndef YY_TYPEDEF_YY_BUFFER_STATE ++-#define YY_TYPEDEF_YY_BUFFER_STATE ++-typedef struct yy_buffer_state *YY_BUFFER_STATE; ++-#endif ++- ++-extern int yyleng; ++- ++-extern FILE *yyin, *yyout; ++- ++-#define EOB_ACT_CONTINUE_SCAN 0 ++-#define EOB_ACT_END_OF_FILE 1 ++-#define EOB_ACT_LAST_MATCH 2 ++- ++- #define YY_LESS_LINENO(n) ++- ++-/* Return all but the first "n" matched characters back to the input stream. */ ++-#define yyless(n) \ ++- do \ ++- { \ ++- /* Undo effects of setting up yytext. */ \ ++- int yyless_macro_arg = (n); \ ++- YY_LESS_LINENO(yyless_macro_arg);\ ++- *yy_cp = (yy_hold_char); \ ++- YY_RESTORE_YY_MORE_OFFSET \ ++- (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ ++- YY_DO_BEFORE_ACTION; /* set up yytext again */ \ ++- } \ ++- while ( 0 ) ++- ++-#define unput(c) yyunput( c, (yytext_ptr) ) ++- ++-#ifndef YY_TYPEDEF_YY_SIZE_T ++-#define YY_TYPEDEF_YY_SIZE_T ++-typedef size_t yy_size_t; ++-#endif ++- ++-#ifndef YY_STRUCT_YY_BUFFER_STATE ++-#define YY_STRUCT_YY_BUFFER_STATE ++-struct yy_buffer_state ++- { ++- FILE *yy_input_file; ++- ++- char *yy_ch_buf; /* input buffer */ ++- char *yy_buf_pos; /* current position in input buffer */ ++- ++- /* Size of input buffer in bytes, not including room for EOB ++- * characters. ++- */ ++- yy_size_t yy_buf_size; ++- ++- /* Number of characters read into yy_ch_buf, not including EOB ++- * characters. ++- */ ++- int yy_n_chars; ++- ++- /* Whether we "own" the buffer - i.e., we know we created it, ++- * and can realloc() it to grow it, and should free() it to ++- * delete it. ++- */ ++- int yy_is_our_buffer; ++- ++- /* Whether this is an "interactive" input source; if so, and ++- * if we're using stdio for input, then we want to use getc() ++- * instead of fread(), to make sure we stop fetching input after ++- * each newline. ++- */ ++- int yy_is_interactive; ++- ++- /* Whether we're considered to be at the beginning of a line. ++- * If so, '^' rules will be active on the next match, otherwise ++- * not. ++- */ ++- int yy_at_bol; ++- ++- int yy_bs_lineno; /**< The line count. */ ++- int yy_bs_column; /**< The column count. */ ++- ++- /* Whether to try to fill the input buffer when we reach the ++- * end of it. ++- */ ++- int yy_fill_buffer; ++- ++- int yy_buffer_status; ++- ++-#define YY_BUFFER_NEW 0 ++-#define YY_BUFFER_NORMAL 1 ++- /* When an EOF's been seen but there's still some text to process ++- * then we mark the buffer as YY_EOF_PENDING, to indicate that we ++- * shouldn't try reading from the input source any more. We might ++- * still have a bunch of tokens to match, though, because of ++- * possible backing-up. ++- * ++- * When we actually see the EOF, we change the status to "new" ++- * (via yyrestart()), so that the user can continue scanning by ++- * just pointing yyin at a new input file. ++- */ ++-#define YY_BUFFER_EOF_PENDING 2 ++- ++- }; ++-#endif /* !YY_STRUCT_YY_BUFFER_STATE */ ++- ++-/* Stack of input buffers. */ ++-static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ ++-static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ ++-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ ++- ++-/* We provide macros for accessing buffer states in case in the ++- * future we want to put the buffer states in a more general ++- * "scanner state". ++- * ++- * Returns the top of the stack, or NULL. ++- */ ++-#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ++- ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ ++- : NULL) ++- ++-/* Same as previous macro, but useful when we know that the buffer stack is not ++- * NULL or when we need an lvalue. For internal use only. ++- */ ++-#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] ++- ++-/* yy_hold_char holds the character lost when yytext is formed. */ ++-static char yy_hold_char; ++-static int yy_n_chars; /* number of characters read into yy_ch_buf */ ++-int yyleng; ++- ++-/* Points to current character in buffer. */ ++-static char *yy_c_buf_p = (char *) 0; ++-static int yy_init = 0; /* whether we need to initialize */ ++-static int yy_start = 0; /* start state number */ ++- ++-/* Flag which is used to allow yywrap()'s to do buffer switches ++- * instead of setting up a fresh yyin. A bit of a hack ... ++- */ ++-static int yy_did_buffer_switch_on_eof; ++- ++-void yyrestart (FILE *input_file ); ++-void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); ++-YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); ++-void yy_delete_buffer (YY_BUFFER_STATE b ); ++-void yy_flush_buffer (YY_BUFFER_STATE b ); ++-void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); ++-void yypop_buffer_state (void ); ++- ++-static void yyensure_buffer_stack (void ); ++-static void yy_load_buffer_state (void ); ++-static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); ++- ++-#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) ++- ++-YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); ++-YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); ++-YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); ++- ++-void *yyalloc (yy_size_t ); ++-void *yyrealloc (void *,yy_size_t ); ++-void yyfree (void * ); ++- ++-#define yy_new_buffer yy_create_buffer ++- ++-#define yy_set_interactive(is_interactive) \ ++- { \ ++- if ( ! YY_CURRENT_BUFFER ){ \ ++- yyensure_buffer_stack (); \ ++- YY_CURRENT_BUFFER_LVALUE = \ ++- yy_create_buffer(yyin,YY_BUF_SIZE ); \ ++- } \ ++- YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ ++- } ++- ++-#define yy_set_bol(at_bol) \ ++- { \ ++- if ( ! YY_CURRENT_BUFFER ){\ ++- yyensure_buffer_stack (); \ ++- YY_CURRENT_BUFFER_LVALUE = \ ++- yy_create_buffer(yyin,YY_BUF_SIZE ); \ ++- } \ ++- YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ ++- } ++- ++-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) ++- ++-/* Begin user sect3 */ ++- ++-#define yywrap(n) 1 ++-#define YY_SKIP_YYWRAP ++- ++-typedef unsigned char YY_CHAR; ++- ++-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; ++- ++-typedef int yy_state_type; ++- ++-extern int yylineno; ++- ++-int yylineno = 1; ++- ++-extern char *yytext; ++-#define yytext_ptr yytext ++- ++-static yy_state_type yy_get_previous_state (void ); ++-static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); ++-static int yy_get_next_buffer (void ); ++-static void yy_fatal_error (yyconst char msg[] ); ++- ++-/* Done after the current pattern has been matched and before the ++- * corresponding action - sets up yytext. ++- */ ++-#define YY_DO_BEFORE_ACTION \ ++- (yytext_ptr) = yy_bp; \ ++- yyleng = (size_t) (yy_cp - yy_bp); \ ++- (yy_hold_char) = *yy_cp; \ ++- *yy_cp = '\0'; \ ++- (yy_c_buf_p) = yy_cp; ++- ++-#define YY_NUM_RULES 48 ++-#define YY_END_OF_BUFFER 49 ++-/* This struct is not used in this scanner, ++- but its presence is necessary. */ ++-struct yy_trans_info ++- { ++- flex_int32_t yy_verify; ++- flex_int32_t yy_nxt; ++- }; ++-static yyconst flex_int16_t yy_accept[458] = ++- { 0, ++- 0, 0, 0, 0, 0, 0, 0, 0, 49, 36, ++- 33, 45, 36, 45, 34, 36, 36, 34, 34, 34, ++- 34, 34, 31, 10, 10, 31, 29, 31, 31, 31, ++- 20, 31, 31, 31, 31, 31, 31, 31, 31, 31, ++- 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, ++- 10, 31, 41, 39, 46, 46, 0, 37, 0, 0, ++- 0, 38, 32, 34, 0, 0, 0, 0, 0, 0, ++- 0, 0, 0, 34, 34, 34, 34, 34, 10, 0, ++- 25, 0, 0, 0, 0, 9, 20, 24, 0, 0, ++- 0, 0, 0, 0, 0, 0, 0, 26, 11, 0, ++- ++- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++- 0, 0, 0, 10, 0, 0, 0, 0, 42, 44, ++- 43, 35, 0, 0, 0, 0, 0, 0, 34, 34, ++- 34, 34, 34, 34, 27, 28, 0, 0, 0, 0, ++- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++- 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, ++- 0, 34, 34, 34, 34, 34, 34, 0, 0, 0, ++- 13, 0, 0, 14, 0, 0, 0, 0, 22, 22, ++- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++- ++- 0, 0, 0, 0, 0, 0, 0, 34, 34, 34, ++- 34, 34, 34, 0, 0, 0, 0, 0, 0, 17, ++- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++- 0, 0, 0, 0, 0, 0, 34, 34, 34, 34, ++- 34, 3, 0, 0, 0, 0, 0, 12, 0, 0, ++- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++- 0, 0, 0, 0, 0, 15, 0, 0, 0, 0, ++- 0, 0, 0, 34, 4, 5, 2, 34, 0, 0, ++- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++- ++- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++- 16, 0, 0, 0, 0, 34, 1, 0, 0, 0, ++- 0, 0, 0, 0, 0, 0, 0, 0, 22, 22, ++- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++- 34, 34, 34, 0, 0, 0, 0, 0, 0, 0, ++- 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, ++- 0, 0, 34, 7, 6, 0, 0, 0, 0, 0, ++- 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, ++- 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++- 0, 19, 0, 0, 47, 34, 0, 0, 0, 0, ++- ++- 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, ++- 0, 0, 0, 0, 0, 0, 0, 34, 0, 24, ++- 24, 0, 0, 0, 0, 0, 0, 0, 0, 34, ++- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++- 0, 0, 8, 0, 23, 0, 0, 0, 0, 0, ++- 40, 0, 0, 0, 0, 0, 0 ++- } ; ++- ++-static yyconst flex_int32_t yy_ec[256] = ++- { 0, ++- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, ++- 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 2, 1, 4, 5, 1, 6, 1, 7, 8, ++- 9, 10, 1, 6, 6, 11, 12, 13, 13, 13, ++- 13, 13, 13, 13, 13, 13, 13, 6, 6, 6, ++- 6, 6, 1, 1, 14, 15, 16, 17, 18, 19, ++- 20, 21, 22, 23, 23, 24, 25, 26, 27, 28, ++- 23, 29, 30, 31, 32, 33, 34, 23, 35, 23, ++- 36, 37, 38, 1, 39, 1, 40, 41, 42, 43, ++- ++- 44, 45, 46, 47, 48, 49, 49, 50, 51, 52, ++- 53, 54, 49, 55, 56, 57, 58, 59, 49, 60, ++- 61, 62, 6, 6, 6, 1, 1, 1, 1, 1, ++- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++- ++- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 1, 1, 1 ++- } ; ++- ++-static yyconst flex_int32_t yy_meta[63] = ++- { 0, ++- 1, 2, 3, 1, 1, 1, 1, 1, 4, 5, ++- 1, 1, 6, 7, 7, 7, 7, 7, 7, 7, ++- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, ++- 7, 7, 7, 7, 7, 8, 1, 1, 9, 9, ++- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, ++- 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, ++- 9, 9 ++- } ; ++- ++-static yyconst flex_int16_t yy_base[496] = ++- { 0, ++- 0, 38, 96, 12, 12, 13, 15, 16, 1038, 1444, ++- 1444, 16, 1000, 1026, 0, 157, 19, 1017, 974, 976, ++- 971, 979, 1444, 25, 27, 20, 1444, 993, 1018, 1018, ++- 1014, 215, 253, 4, 7, 25, 40, 41, 988, 1022, ++- 8, 31, 33, 36, 37, 38, 39, 133, 134, 136, ++- 67, 1022, 0, 1444, 1011, 1010, 160, 1444, 0, 1014, ++- 1017, 1444, 1444, 0, 187, 163, 1001, 958, 960, 940, ++- 948, 164, 955, 979, 940, 31, 942, 947, 77, 163, ++- 1444, 991, 986, 989, 980, 1444, 977, 1444, 962, 961, ++- 65, 58, 46, 141, 142, 159, 949, 1444, 1444, 149, ++- ++- 144, 151, 150, 152, 181, 153, 156, 184, 213, 214, ++- 220, 215, 221, 191, 984, 983, 291, 0, 1444, 1444, ++- 1444, 1444, 965, 926, 195, 928, 933, 935, 940, 919, ++- 905, 903, 916, 906, 1444, 1444, 171, 256, 160, 353, ++- 219, 201, 391, 354, 350, 222, 246, 355, 247, 429, ++- 339, 172, 244, 248, 352, 356, 340, 351, 359, 394, ++- 429, 1444, 0, 0, 919, 913, 899, 897, 910, 900, ++- 904, 918, 895, 901, 906, 904, 894, 249, 347, 348, ++- 1444, 349, 383, 1444, 386, 387, 491, 388, 1444, 528, ++- 419, 396, 384, 391, 477, 422, 478, 398, 479, 0, ++- ++- 912, 889, 895, 900, 898, 873, 872, 905, 870, 879, ++- 863, 875, 586, 437, 495, 492, 252, 203, 624, 1444, ++- 0, 891, 889, 496, 863, 868, 870, 861, 859, 322, ++- 859, 481, 499, 484, 489, 399, 488, 662, 0, 892, ++- 857, 866, 850, 862, 0, 861, 888, 700, 738, 776, ++- 858, 1444, 431, 344, 432, 433, 435, 1444, 860, 858, ++- 856, 854, 830, 842, 822, 363, 828, 826, 471, 822, ++- 508, 523, 491, 510, 814, 1444, 0, 861, 0, 0, ++- 0, 831, 511, 836, 1444, 1444, 1444, 852, 515, 513, ++- 524, 521, 536, 850, 857, 855, 840, 820, 814, 829, ++- ++- 828, 554, 820, 810, 797, 804, 799, 527, 545, 533, ++- 1444, 0, 807, 0, 562, 552, 1444, 353, 572, 540, ++- 573, 550, 806, 823, 804, 803, 784, 783, 1444, 0, ++- 782, 794, 798, 790, 548, 890, 558, 0, 589, 804, ++- 810, 928, 966, 582, 586, 588, 591, 610, 818, 818, ++- 802, 796, 786, 771, 592, 1444, 1004, 0, 803, 0, ++- 0, 776, 786, 1444, 1444, 621, 618, 623, 624, 625, ++- 631, 787, 779, 789, 784, 1042, 1444, 0, 781, 796, ++- 776, 619, 580, 630, 628, 648, 650, 771, 762, 780, ++- 782, 1444, 0, 771, 1444, 781, 661, 662, 664, 657, ++- ++- 655, 777, 765, 755, 775, 0, 776, 752, 666, 724, ++- 668, 768, 767, 743, 683, 0, 733, 692, 658, 713, ++- 715, 665, 753, 750, 751, 736, 743, 0, 701, 1080, ++- 703, 750, 722, 752, 754, 740, 709, 702, 692, 664, ++- 0, 0, 1444, 757, 1444, 759, 627, 602, 561, 530, ++- 1444, 438, 393, 378, 202, 56, 1444, 1118, 1127, 1136, ++- 1145, 1154, 1158, 1167, 1176, 1185, 1194, 1202, 1211, 1220, ++- 1229, 1238, 1247, 1256, 1265, 1273, 1282, 1290, 1298, 1306, ++- 1314, 1323, 1331, 1340, 1349, 1357, 1365, 1374, 1383, 1392, ++- 1400, 1409, 1417, 1426, 1435 ++- ++- } ; ++- ++-static yyconst flex_int16_t yy_def[496] = ++- { 0, ++- 458, 458, 457, 3, 459, 459, 459, 459, 457, 457, ++- 457, 460, 461, 462, 463, 457, 457, 463, 463, 463, ++- 463, 463, 457, 457, 457, 464, 457, 465, 457, 457, ++- 457, 466, 466, 33, 33, 33, 33, 33, 467, 457, ++- 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, ++- 457, 468, 469, 457, 470, 470, 460, 457, 460, 457, ++- 461, 457, 457, 463, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 463, 463, 463, 463, 463, 457, 464, ++- 457, 464, 457, 465, 457, 457, 457, 457, 33, 33, ++- 33, 33, 33, 33, 33, 33, 467, 457, 457, 33, ++- ++- 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, ++- 33, 33, 33, 457, 468, 468, 457, 471, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 463, 463, ++- 463, 463, 463, 463, 457, 457, 33, 33, 33, 466, ++- 33, 33, 466, 33, 33, 33, 33, 33, 33, 466, ++- 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, ++- 117, 457, 117, 472, 457, 457, 457, 457, 457, 457, ++- 457, 463, 463, 463, 463, 463, 463, 33, 33, 33, ++- 457, 33, 33, 457, 33, 33, 466, 33, 457, 457, ++- 33, 33, 33, 33, 33, 33, 33, 33, 33, 473, ++- ++- 457, 457, 457, 457, 457, 457, 457, 463, 463, 463, ++- 463, 463, 463, 33, 33, 33, 33, 33, 466, 457, ++- 190, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- 457, 33, 33, 33, 33, 33, 33, 466, 474, 457, ++- 457, 457, 457, 457, 475, 457, 463, 463, 463, 463, ++- 463, 457, 33, 33, 33, 33, 33, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- 33, 33, 33, 33, 466, 457, 476, 457, 477, 478, ++- 479, 457, 457, 463, 457, 457, 457, 463, 33, 33, ++- 33, 33, 33, 457, 457, 457, 457, 457, 457, 457, ++- ++- 457, 480, 457, 457, 457, 457, 457, 33, 33, 33, ++- 457, 481, 457, 482, 457, 463, 457, 33, 33, 33, ++- 33, 33, 457, 457, 457, 457, 457, 457, 457, 190, ++- 457, 457, 457, 457, 33, 466, 33, 483, 457, 457, ++- 463, 463, 463, 33, 33, 33, 33, 33, 457, 457, ++- 457, 457, 457, 457, 33, 457, 466, 484, 457, 485, ++- 486, 457, 463, 457, 457, 33, 33, 33, 33, 33, ++- 33, 457, 457, 457, 457, 466, 457, 487, 457, 457, ++- 463, 33, 33, 33, 33, 33, 33, 457, 457, 457, ++- 457, 457, 488, 457, 457, 463, 33, 33, 33, 33, ++- ++- 33, 457, 457, 457, 457, 489, 457, 463, 33, 33, ++- 33, 457, 457, 457, 457, 490, 457, 463, 33, 457, ++- 491, 33, 457, 457, 457, 457, 457, 492, 457, 463, ++- 33, 457, 491, 491, 493, 457, 457, 457, 457, 457, ++- 494, 495, 457, 457, 457, 493, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 0, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457 ++- ++- } ; ++- ++-static yyconst flex_int16_t yy_nxt[1507] = ++- { 0, ++- 10, 10, 11, 12, 10, 10, 13, 10, 10, 10, ++- 10, 14, 10, 51, 54, 54, 52, 54, 54, 58, ++- 72, 55, 55, 81, 56, 56, 79, 79, 79, 79, ++- 89, 91, 92, 89, 89, 10, 10, 10, 10, 16, ++- 11, 12, 17, 10, 13, 10, 10, 10, 10, 14, ++- 10, 89, 59, 94, 18, 93, 82, 89, 96, 89, ++- 100, 73, 89, 89, 89, 89, 95, 89, 114, 79, ++- 131, 115, 89, 10, 10, 10, 103, 101, 79, 79, ++- 140, 19, 107, 102, 89, 132, 302, 104, 105, 139, ++- 106, 89, 138, 20, 21, 22, 23, 24, 25, 26, ++- ++- 23, 27, 28, 27, 27, 27, 29, 30, 31, 32, ++- 33, 34, 32, 35, 32, 36, 37, 32, 32, 32, ++- 32, 32, 32, 32, 32, 32, 32, 32, 38, 32, ++- 32, 39, 40, 23, 32, 32, 41, 42, 43, 44, ++- 32, 32, 32, 45, 32, 46, 32, 47, 32, 48, ++- 32, 49, 32, 50, 32, 32, 32, 32, 65, 89, ++- 89, 66, 89, 58, 72, 72, 81, 89, 89, 141, ++- 89, 142, 108, 67, 143, 89, 89, 89, 89, 89, ++- 110, 111, 89, 145, 180, 89, 89, 113, 65, 109, ++- 112, 66, 114, 79, 178, 115, 59, 89, 89, 82, ++- ++- 68, 144, 146, 67, 151, 73, 73, 89, 147, 148, ++- 89, 152, 69, 70, 71, 88, 88, 88, 88, 88, ++- 88, 88, 88, 88, 88, 88, 88, 89, 191, 89, ++- 68, 183, 302, 149, 167, 182, 257, 150, 153, 89, ++- 89, 89, 69, 70, 71, 89, 89, 89, 89, 168, ++- 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, ++- 88, 88, 88, 88, 88, 156, 155, 154, 159, 158, ++- 89, 179, 89, 89, 89, 89, 160, 185, 89, 90, ++- 256, 157, 89, 192, 186, 188, 193, 214, 88, 88, ++- 88, 161, 161, 162, 161, 161, 161, 161, 161, 161, ++- ++- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, ++- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, ++- 161, 161, 161, 161, 161, 161, 161, 161, 161, 163, ++- 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, ++- 163, 163, 163, 163, 163, 163, 163, 163, 163, 163, ++- 163, 163, 163, 181, 181, 181, 181, 181, 181, 181, ++- 181, 181, 181, 181, 181, 89, 89, 215, 268, 269, ++- 89, 344, 290, 89, 89, 89, 89, 89, 89, 89, ++- 89, 89, 89, 196, 150, 89, 216, 217, 181, 181, ++- 181, 184, 184, 184, 184, 184, 184, 184, 184, 184, ++- ++- 184, 184, 184, 150, 150, 187, 194, 195, 197, 89, ++- 89, 198, 89, 89, 89, 301, 456, 89, 455, 302, ++- 89, 218, 89, 234, 89, 89, 184, 184, 184, 189, ++- 190, 190, 189, 189, 189, 189, 189, 189, 189, 189, ++- 189, 199, 219, 150, 150, 89, 233, 150, 89, 238, ++- 292, 253, 289, 291, 454, 150, 293, 89, 89, 89, ++- 236, 89, 232, 89, 189, 189, 189, 161, 161, 161, ++- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, ++- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, ++- 161, 220, 220, 220, 220, 220, 220, 220, 220, 220, ++- ++- 220, 220, 220, 89, 89, 89, 255, 89, 254, 261, ++- 89, 272, 315, 315, 89, 89, 305, 89, 89, 237, ++- 235, 89, 262, 271, 156, 89, 220, 220, 220, 221, ++- 221, 150, 306, 274, 89, 272, 89, 273, 309, 89, ++- 321, 89, 222, 223, 275, 318, 308, 89, 224, 89, ++- 89, 319, 322, 89, 320, 330, 330, 310, 346, 89, ++- 302, 273, 89, 315, 315, 341, 89, 348, 225, 226, ++- 227, 89, 337, 342, 89, 228, 89, 229, 343, 343, ++- 335, 340, 453, 230, 89, 231, 252, 252, 252, 252, ++- 252, 252, 252, 252, 252, 252, 252, 252, 89, 89, ++- ++- 336, 345, 359, 366, 355, 398, 89, 367, 89, 368, ++- 360, 347, 89, 357, 89, 361, 361, 89, 89, 452, ++- 369, 252, 252, 252, 258, 258, 258, 258, 258, 258, ++- 258, 258, 258, 258, 258, 258, 89, 383, 382, 370, ++- 384, 385, 397, 302, 89, 89, 376, 89, 371, 89, ++- 89, 89, 387, 399, 89, 386, 89, 89, 150, 258, ++- 258, 258, 276, 276, 276, 276, 276, 276, 276, 276, ++- 276, 276, 276, 276, 89, 401, 89, 150, 411, 409, ++- 410, 89, 419, 89, 89, 150, 400, 89, 89, 450, ++- 89, 89, 89, 422, 89, 150, 431, 276, 276, 276, ++- ++- 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, ++- 285, 285, 426, 430, 432, 432, 434, 434, 430, 430, ++- 433, 427, 442, 434, 434, 420, 420, 442, 442, 89, ++- 449, 421, 302, 150, 448, 285, 285, 285, 286, 286, ++- 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, ++- 89, 432, 432, 434, 434, 444, 444, 433, 444, 444, ++- 444, 444, 445, 447, 440, 445, 439, 445, 438, 437, ++- 436, 429, 425, 286, 286, 286, 287, 287, 287, 287, ++- 287, 287, 287, 287, 287, 287, 287, 287, 424, 423, ++- 418, 417, 415, 414, 413, 412, 408, 407, 405, 404, ++- ++- 403, 402, 396, 395, 394, 391, 390, 389, 388, 381, ++- 380, 287, 287, 287, 311, 311, 311, 311, 311, 311, ++- 311, 311, 311, 311, 311, 311, 379, 302, 302, 375, ++- 374, 373, 372, 363, 362, 305, 354, 353, 302, 302, ++- 302, 352, 351, 350, 349, 339, 334, 333, 332, 311, ++- 311, 311, 317, 317, 317, 317, 317, 317, 317, 317, ++- 317, 317, 317, 317, 331, 302, 328, 327, 302, 302, ++- 326, 325, 324, 323, 316, 314, 313, 307, 304, 303, ++- 300, 299, 298, 297, 296, 295, 294, 317, 317, 317, ++- 356, 356, 356, 356, 356, 356, 356, 356, 356, 356, ++- ++- 356, 356, 288, 284, 283, 282, 281, 280, 279, 278, ++- 270, 267, 266, 265, 264, 263, 260, 259, 251, 250, ++- 249, 248, 247, 246, 245, 356, 356, 356, 364, 364, ++- 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, ++- 244, 243, 242, 241, 240, 213, 212, 211, 210, 209, ++- 208, 207, 206, 205, 204, 203, 202, 201, 177, 176, ++- 175, 174, 173, 364, 364, 364, 365, 365, 365, 365, ++- 365, 365, 365, 365, 365, 365, 365, 365, 172, 171, ++- 170, 169, 166, 165, 116, 116, 98, 137, 89, 87, ++- 136, 457, 135, 457, 134, 133, 130, 129, 128, 127, ++- ++- 126, 365, 365, 365, 377, 377, 377, 377, 377, 377, ++- 377, 377, 377, 377, 377, 377, 125, 124, 123, 457, ++- 122, 121, 120, 116, 99, 98, 87, 86, 85, 84, ++- 78, 77, 76, 75, 74, 63, 61, 457, 457, 377, ++- 377, 377, 392, 392, 392, 392, 392, 392, 392, 392, ++- 392, 392, 392, 392, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 392, 392, 392, ++- 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, ++- 443, 443, 457, 457, 457, 457, 457, 457, 457, 457, ++- ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 443, 443, 443, 15, 15, ++- 15, 15, 15, 15, 15, 15, 15, 53, 53, 53, ++- 53, 53, 53, 53, 53, 53, 57, 57, 57, 57, ++- 57, 57, 57, 57, 57, 60, 60, 60, 60, 60, ++- 60, 60, 60, 60, 62, 62, 62, 62, 62, 62, ++- 62, 62, 62, 64, 64, 457, 64, 80, 80, 80, ++- 80, 80, 80, 80, 80, 80, 83, 83, 83, 83, ++- 83, 83, 83, 83, 83, 89, 89, 89, 89, 89, ++- 89, 89, 89, 89, 97, 97, 97, 97, 97, 97, ++- ++- 97, 457, 97, 117, 457, 457, 457, 457, 457, 457, ++- 117, 118, 118, 457, 118, 457, 118, 118, 118, 118, ++- 119, 119, 119, 119, 119, 119, 119, 119, 119, 164, ++- 164, 457, 164, 457, 164, 164, 164, 164, 200, 200, ++- 457, 200, 457, 200, 200, 200, 200, 239, 239, 457, ++- 239, 457, 239, 239, 239, 239, 277, 277, 457, 277, ++- 457, 277, 277, 277, 277, 252, 252, 252, 252, 252, ++- 457, 457, 252, 312, 312, 457, 312, 457, 312, 312, ++- 312, 312, 285, 285, 285, 285, 285, 457, 457, 285, ++- 286, 286, 286, 286, 286, 457, 457, 286, 287, 287, ++- ++- 287, 287, 287, 457, 457, 287, 329, 329, 329, 329, ++- 329, 457, 457, 329, 338, 338, 457, 338, 457, 338, ++- 338, 338, 338, 317, 317, 317, 317, 317, 457, 457, ++- 317, 358, 358, 457, 358, 457, 358, 358, 358, 358, ++- 378, 378, 457, 378, 457, 378, 378, 378, 378, 364, ++- 364, 364, 364, 364, 457, 457, 364, 365, 365, 365, ++- 365, 365, 457, 457, 365, 393, 393, 457, 393, 457, ++- 393, 393, 393, 393, 406, 406, 457, 406, 457, 406, ++- 406, 406, 406, 416, 416, 457, 416, 457, 416, 416, ++- 416, 416, 428, 428, 457, 428, 457, 428, 428, 428, ++- ++- 428, 435, 435, 457, 457, 457, 435, 457, 435, 441, ++- 441, 457, 441, 457, 441, 441, 441, 441, 446, 446, ++- 446, 457, 446, 446, 457, 446, 451, 451, 457, 451, ++- 457, 451, 451, 451, 451, 443, 443, 443, 443, 443, ++- 457, 457, 443, 9, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- ++- 457, 457, 457, 457, 457, 457 ++- } ; ++- ++-static yyconst flex_int16_t yy_chk[1507] = ++- { 0, ++- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++- 1, 1, 1, 4, 5, 6, 4, 7, 8, 12, ++- 17, 5, 6, 26, 7, 8, 24, 24, 25, 25, ++- 34, 34, 35, 35, 41, 1, 1, 1, 2, 2, ++- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++- 2, 36, 12, 37, 2, 36, 26, 42, 38, 43, ++- 41, 17, 44, 45, 46, 47, 37, 38, 51, 51, ++- 76, 51, 93, 2, 2, 2, 43, 42, 79, 79, ++- 93, 2, 47, 42, 92, 76, 456, 44, 45, 92, ++- 46, 91, 91, 2, 2, 2, 3, 3, 3, 3, ++- ++- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ++- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ++- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ++- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ++- 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ++- 3, 3, 3, 3, 3, 3, 3, 3, 16, 48, ++- 49, 16, 50, 57, 66, 72, 80, 94, 95, 94, ++- 101, 95, 48, 16, 96, 100, 103, 102, 104, 106, ++- 49, 49, 107, 101, 139, 96, 139, 50, 65, 48, ++- 49, 65, 114, 114, 137, 114, 57, 137, 152, 80, ++- ++- 16, 100, 102, 65, 106, 66, 72, 105, 103, 104, ++- 108, 107, 16, 16, 16, 32, 32, 32, 32, 32, ++- 32, 32, 32, 32, 32, 32, 32, 142, 152, 218, ++- 65, 142, 455, 105, 125, 141, 218, 105, 108, 109, ++- 110, 112, 65, 65, 65, 141, 111, 113, 146, 125, ++- 32, 32, 32, 33, 33, 33, 33, 33, 33, 33, ++- 33, 33, 33, 33, 33, 111, 110, 109, 113, 112, ++- 153, 138, 147, 149, 154, 178, 113, 146, 217, 33, ++- 217, 111, 138, 153, 147, 149, 154, 178, 33, 33, ++- 33, 117, 117, 117, 117, 117, 117, 117, 117, 117, ++- ++- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, ++- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, ++- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, ++- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, ++- 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, ++- 117, 117, 117, 140, 140, 140, 140, 140, 140, 140, ++- 140, 140, 140, 140, 140, 151, 157, 179, 230, 230, ++- 254, 318, 254, 179, 180, 182, 145, 158, 155, 318, ++- 144, 148, 156, 157, 151, 159, 180, 182, 140, 140, ++- 140, 143, 143, 143, 143, 143, 143, 143, 143, 143, ++- ++- 143, 143, 143, 144, 145, 148, 155, 156, 158, 183, ++- 193, 159, 185, 186, 188, 266, 454, 194, 453, 266, ++- 160, 183, 192, 193, 198, 236, 143, 143, 143, 150, ++- 150, 150, 150, 150, 150, 150, 150, 150, 150, 150, ++- 150, 160, 185, 186, 188, 191, 192, 194, 196, 198, ++- 256, 214, 253, 255, 452, 236, 257, 253, 255, 256, ++- 196, 257, 191, 214, 150, 150, 150, 161, 161, 161, ++- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, ++- 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, ++- 161, 187, 187, 187, 187, 187, 187, 187, 187, 187, ++- ++- 187, 187, 187, 195, 197, 199, 216, 232, 215, 224, ++- 234, 233, 283, 283, 237, 235, 269, 273, 216, 197, ++- 195, 215, 224, 232, 199, 233, 187, 187, 187, 190, ++- 190, 235, 269, 234, 271, 272, 274, 233, 273, 290, ++- 292, 289, 190, 190, 237, 289, 271, 292, 190, 272, ++- 291, 290, 293, 308, 291, 302, 302, 274, 320, 310, ++- 450, 272, 293, 315, 315, 316, 320, 322, 190, 190, ++- 190, 309, 310, 316, 335, 190, 322, 190, 316, 316, ++- 308, 315, 449, 190, 337, 190, 213, 213, 213, 213, ++- 213, 213, 213, 213, 213, 213, 213, 213, 319, 321, ++- ++- 309, 319, 339, 344, 335, 383, 383, 345, 344, 346, ++- 339, 321, 345, 337, 346, 339, 339, 347, 355, 448, ++- 347, 213, 213, 213, 219, 219, 219, 219, 219, 219, ++- 219, 219, 219, 219, 219, 219, 348, 367, 366, 348, ++- 368, 369, 382, 447, 367, 382, 355, 366, 348, 368, ++- 369, 370, 371, 384, 385, 370, 384, 371, 385, 219, ++- 219, 219, 238, 238, 238, 238, 238, 238, 238, 238, ++- 238, 238, 238, 238, 386, 387, 387, 397, 400, 398, ++- 399, 401, 409, 400, 419, 401, 386, 397, 398, 440, ++- 399, 422, 409, 411, 411, 422, 419, 238, 238, 238, ++- ++- 248, 248, 248, 248, 248, 248, 248, 248, 248, 248, ++- 248, 248, 415, 418, 420, 420, 421, 421, 418, 418, ++- 420, 415, 429, 433, 433, 410, 410, 429, 429, 431, ++- 439, 410, 438, 431, 437, 248, 248, 248, 249, 249, ++- 249, 249, 249, 249, 249, 249, 249, 249, 249, 249, ++- 410, 432, 432, 434, 434, 435, 435, 432, 444, 444, ++- 446, 446, 435, 436, 427, 444, 426, 446, 425, 424, ++- 423, 417, 414, 249, 249, 249, 250, 250, 250, 250, ++- 250, 250, 250, 250, 250, 250, 250, 250, 413, 412, ++- 408, 407, 405, 404, 403, 402, 396, 394, 391, 390, ++- ++- 389, 388, 381, 380, 379, 375, 374, 373, 372, 363, ++- 362, 250, 250, 250, 275, 275, 275, 275, 275, 275, ++- 275, 275, 275, 275, 275, 275, 359, 354, 353, 352, ++- 351, 350, 349, 341, 340, 334, 333, 332, 331, 328, ++- 327, 326, 325, 324, 323, 313, 307, 306, 305, 275, ++- 275, 275, 288, 288, 288, 288, 288, 288, 288, 288, ++- 288, 288, 288, 288, 304, 303, 301, 300, 299, 298, ++- 297, 296, 295, 294, 284, 282, 278, 270, 268, 267, ++- 265, 264, 263, 262, 261, 260, 259, 288, 288, 288, ++- 336, 336, 336, 336, 336, 336, 336, 336, 336, 336, ++- ++- 336, 336, 251, 247, 246, 244, 243, 242, 241, 240, ++- 231, 229, 228, 227, 226, 225, 223, 222, 212, 211, ++- 210, 209, 208, 207, 206, 336, 336, 336, 342, 342, ++- 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, ++- 205, 204, 203, 202, 201, 177, 176, 175, 174, 173, ++- 172, 171, 170, 169, 168, 167, 166, 165, 134, 133, ++- 132, 131, 130, 342, 342, 342, 343, 343, 343, 343, ++- 343, 343, 343, 343, 343, 343, 343, 343, 129, 128, ++- 127, 126, 124, 123, 116, 115, 97, 90, 89, 87, ++- 85, 84, 83, 82, 78, 77, 75, 74, 73, 71, ++- ++- 70, 343, 343, 343, 357, 357, 357, 357, 357, 357, ++- 357, 357, 357, 357, 357, 357, 69, 68, 67, 61, ++- 60, 56, 55, 52, 40, 39, 31, 30, 29, 28, ++- 22, 21, 20, 19, 18, 14, 13, 9, 0, 357, ++- 357, 357, 376, 376, 376, 376, 376, 376, 376, 376, ++- 376, 376, 376, 376, 0, 0, 0, 0, 0, 0, ++- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++- 0, 0, 0, 0, 0, 0, 0, 376, 376, 376, ++- 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, ++- 430, 430, 0, 0, 0, 0, 0, 0, 0, 0, ++- ++- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++- 0, 0, 0, 0, 0, 430, 430, 430, 458, 458, ++- 458, 458, 458, 458, 458, 458, 458, 459, 459, 459, ++- 459, 459, 459, 459, 459, 459, 460, 460, 460, 460, ++- 460, 460, 460, 460, 460, 461, 461, 461, 461, 461, ++- 461, 461, 461, 461, 462, 462, 462, 462, 462, 462, ++- 462, 462, 462, 463, 463, 0, 463, 464, 464, 464, ++- 464, 464, 464, 464, 464, 464, 465, 465, 465, 465, ++- 465, 465, 465, 465, 465, 466, 466, 466, 466, 466, ++- 466, 466, 466, 466, 467, 467, 467, 467, 467, 467, ++- ++- 467, 0, 467, 468, 0, 0, 0, 0, 0, 0, ++- 468, 469, 469, 0, 469, 0, 469, 469, 469, 469, ++- 470, 470, 470, 470, 470, 470, 470, 470, 470, 471, ++- 471, 0, 471, 0, 471, 471, 471, 471, 472, 472, ++- 0, 472, 0, 472, 472, 472, 472, 473, 473, 0, ++- 473, 0, 473, 473, 473, 473, 474, 474, 0, 474, ++- 0, 474, 474, 474, 474, 475, 475, 475, 475, 475, ++- 0, 0, 475, 476, 476, 0, 476, 0, 476, 476, ++- 476, 476, 477, 477, 477, 477, 477, 0, 0, 477, ++- 478, 478, 478, 478, 478, 0, 0, 478, 479, 479, ++- ++- 479, 479, 479, 0, 0, 479, 480, 480, 480, 480, ++- 480, 0, 0, 480, 481, 481, 0, 481, 0, 481, ++- 481, 481, 481, 482, 482, 482, 482, 482, 0, 0, ++- 482, 483, 483, 0, 483, 0, 483, 483, 483, 483, ++- 484, 484, 0, 484, 0, 484, 484, 484, 484, 485, ++- 485, 485, 485, 485, 0, 0, 485, 486, 486, 486, ++- 486, 486, 0, 0, 486, 487, 487, 0, 487, 0, ++- 487, 487, 487, 487, 488, 488, 0, 488, 0, 488, ++- 488, 488, 488, 489, 489, 0, 489, 0, 489, 489, ++- 489, 489, 490, 490, 0, 490, 0, 490, 490, 490, ++- ++- 490, 491, 491, 0, 0, 0, 491, 0, 491, 492, ++- 492, 0, 492, 0, 492, 492, 492, 492, 493, 493, ++- 493, 0, 493, 493, 0, 493, 494, 494, 0, 494, ++- 0, 494, 494, 494, 494, 495, 495, 495, 495, 495, ++- 0, 0, 495, 457, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, ++- ++- 457, 457, 457, 457, 457, 457 ++- } ; ++- ++-static yy_state_type yy_last_accepting_state; ++-static char *yy_last_accepting_cpos; ++- ++-extern int yy_flex_debug; ++-int yy_flex_debug = 0; ++- ++-/* The intent behind this definition is that it'll catch ++- * any uses of REJECT which flex missed. ++- */ ++-#define REJECT reject_used_but_not_detected ++-#define yymore() yymore_used_but_not_detected ++-#define YY_MORE_ADJ 0 ++-#define YY_RESTORE_YY_MORE_OFFSET ++-char *yytext; ++-#line 1 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-/* -*- indented-text -*- */ ++-/* Process source files and output type information. ++- Copyright (C) 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010 ++- Free Software Foundation, Inc. ++- ++-This file is part of GCC. ++- ++-GCC is free software; you can redistribute it and/or modify it under ++-the terms of the GNU General Public License as published by the Free ++-Software Foundation; either version 3, or (at your option) any later ++-version. ++- ++-GCC is distributed in the hope that it will be useful, but WITHOUT ANY ++-WARRANTY; without even the implied warranty of MERCHANTABILITY or ++-FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++-for more details. ++- ++-You should have received a copy of the GNU General Public License ++-along with GCC; see the file COPYING3. If not see ++-<http://www.gnu.org/licenses/>. */ ++-#define YY_NO_INPUT 1 ++-#line 25 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-#ifdef GENERATOR_FILE ++-#include "bconfig.h" ++-#else ++-#include "config.h" ++-#endif ++-#include "system.h" ++- ++-#define malloc xmalloc ++-#define realloc xrealloc ++- ++-#include "gengtype.h" ++- ++-#define YY_DECL int yylex (const char **yylval) ++-#define yyterminate() return EOF_TOKEN ++- ++-struct fileloc lexer_line; ++-int lexer_toplevel_done; ++- ++-static void ++-update_lineno (const char *l, size_t len) ++-{ ++- while (len-- > 0) ++- if (*l++ == '\n') ++- lexer_line.line++; ++-} ++- ++- ++-#line 995 "gengtype-lex.c" ++- ++-#define INITIAL 0 ++-#define in_struct 1 ++-#define in_struct_comment 2 ++-#define in_comment 3 ++- ++-#ifndef YY_NO_UNISTD_H ++-/* Special case for "unistd.h", since it is non-ANSI. We include it way ++- * down here because we want the user's section 1 to have been scanned first. ++- * The user has a chance to override it with an option. ++- */ ++-#include <unistd.h> ++-#endif ++- ++-#ifndef YY_EXTRA_TYPE ++-#define YY_EXTRA_TYPE void * ++-#endif ++- ++-static int yy_init_globals (void ); ++- ++-/* Accessor methods to globals. ++- These are made visible to non-reentrant scanners for convenience. */ ++- ++-int yylex_destroy (void ); ++- ++-int yyget_debug (void ); ++- ++-void yyset_debug (int debug_flag ); ++- ++-YY_EXTRA_TYPE yyget_extra (void ); ++- ++-void yyset_extra (YY_EXTRA_TYPE user_defined ); ++- ++-FILE *yyget_in (void ); ++- ++-void yyset_in (FILE * in_str ); ++- ++-FILE *yyget_out (void ); ++- ++-void yyset_out (FILE * out_str ); ++- ++-int yyget_leng (void ); ++- ++-char *yyget_text (void ); ++- ++-int yyget_lineno (void ); ++- ++-void yyset_lineno (int line_number ); ++- ++-/* Macros after this point can all be overridden by user definitions in ++- * section 1. ++- */ ++- ++-#ifndef YY_SKIP_YYWRAP ++-#ifdef __cplusplus ++-extern "C" int yywrap (void ); ++-#else ++-extern int yywrap (void ); ++-#endif ++-#endif ++- ++-#ifndef yytext_ptr ++-static void yy_flex_strncpy (char *,yyconst char *,int ); ++-#endif ++- ++-#ifdef YY_NEED_STRLEN ++-static int yy_flex_strlen (yyconst char * ); ++-#endif ++- ++-#ifndef YY_NO_INPUT ++- ++-#ifdef __cplusplus ++-static int yyinput (void ); ++-#else ++-static int input (void ); ++-#endif ++- ++-#endif ++- ++-/* Amount of stuff to slurp up with each read. */ ++-#ifndef YY_READ_BUF_SIZE ++-#define YY_READ_BUF_SIZE 8192 ++-#endif ++- ++-/* Copy whatever the last rule matched to the standard output. */ ++-#ifndef ECHO ++-/* This used to be an fputs(), but since the string might contain NUL's, ++- * we now use fwrite(). ++- */ ++-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) ++-#endif ++- ++-/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, ++- * is returned in "result". ++- */ ++-#ifndef YY_INPUT ++-#define YY_INPUT(buf,result,max_size) \ ++- if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ ++- { \ ++- int c = '*'; \ ++- unsigned n; \ ++- for ( n = 0; n < max_size && \ ++- (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ ++- buf[n] = (char) c; \ ++- if ( c == '\n' ) \ ++- buf[n++] = (char) c; \ ++- if ( c == EOF && ferror( yyin ) ) \ ++- YY_FATAL_ERROR( "input in flex scanner failed" ); \ ++- result = n; \ ++- } \ ++- else \ ++- { \ ++- errno=0; \ ++- while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ ++- { \ ++- if( errno != EINTR) \ ++- { \ ++- YY_FATAL_ERROR( "input in flex scanner failed" ); \ ++- break; \ ++- } \ ++- errno=0; \ ++- clearerr(yyin); \ ++- } \ ++- }\ ++-\ ++- ++-#endif ++- ++-/* No semi-colon after return; correct usage is to write "yyterminate();" - ++- * we don't want an extra ';' after the "return" because that will cause ++- * some compilers to complain about unreachable statements. ++- */ ++-#ifndef yyterminate ++-#define yyterminate() return YY_NULL ++-#endif ++- ++-/* Number of entries by which start-condition stack grows. */ ++-#ifndef YY_START_STACK_INCR ++-#define YY_START_STACK_INCR 25 ++-#endif ++- ++-/* Report a fatal error. */ ++-#ifndef YY_FATAL_ERROR ++-#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) ++-#endif ++- ++-/* end tables serialization structures and prototypes */ ++- ++-/* Default declaration of generated scanner - a define so the user can ++- * easily add parameters. ++- */ ++-#ifndef YY_DECL ++-#define YY_DECL_IS_OURS 1 ++- ++-extern int yylex (void); ++- ++-#define YY_DECL int yylex (void) ++-#endif /* !YY_DECL */ ++- ++-/* Code executed at the beginning of each rule, after yytext and yyleng ++- * have been set up. ++- */ ++-#ifndef YY_USER_ACTION ++-#define YY_USER_ACTION ++-#endif ++- ++-/* Code executed at the end of each rule. */ ++-#ifndef YY_BREAK ++-#define YY_BREAK break; ++-#endif ++- ++-#define YY_RULE_SETUP \ ++- if ( yyleng > 0 ) \ ++- YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ ++- (yytext[yyleng - 1] == '\n'); \ ++- YY_USER_ACTION ++- ++-/** The main scanner function which does all the work. ++- */ ++-YY_DECL ++-{ ++- register yy_state_type yy_current_state; ++- register char *yy_cp, *yy_bp; ++- register int yy_act; ++- ++-#line 63 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++- ++- /* Do this on entry to yylex(): */ ++- *yylval = 0; ++- if (lexer_toplevel_done) ++- { ++- BEGIN(INITIAL); ++- lexer_toplevel_done = 0; ++- } ++- ++- /* Things we look for in skipping mode: */ ++-#line 1192 "gengtype-lex.c" ++- ++- if ( !(yy_init) ) ++- { ++- (yy_init) = 1; ++- ++-#ifdef YY_USER_INIT ++- YY_USER_INIT; ++-#endif ++- ++- if ( ! (yy_start) ) ++- (yy_start) = 1; /* first start state */ ++- ++- if ( ! yyin ) ++- yyin = stdin; ++- ++- if ( ! yyout ) ++- yyout = stdout; ++- ++- if ( ! YY_CURRENT_BUFFER ) { ++- yyensure_buffer_stack (); ++- YY_CURRENT_BUFFER_LVALUE = ++- yy_create_buffer(yyin,YY_BUF_SIZE ); ++- } ++- ++- yy_load_buffer_state( ); ++- } ++- ++- while ( 1 ) /* loops until end-of-file is reached */ ++- { ++- yy_cp = (yy_c_buf_p); ++- ++- /* Support of yytext. */ ++- *yy_cp = (yy_hold_char); ++- ++- /* yy_bp points to the position in yy_ch_buf of the start of ++- * the current run. ++- */ ++- yy_bp = yy_cp; ++- ++- yy_current_state = (yy_start); ++- yy_current_state += YY_AT_BOL(); ++-yy_match: ++- do ++- { ++- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; ++- if ( yy_accept[yy_current_state] ) ++- { ++- (yy_last_accepting_state) = yy_current_state; ++- (yy_last_accepting_cpos) = yy_cp; ++- } ++- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) ++- { ++- yy_current_state = (int) yy_def[yy_current_state]; ++- if ( yy_current_state >= 458 ) ++- yy_c = yy_meta[(unsigned int) yy_c]; ++- } ++- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++- ++yy_cp; ++- } ++- while ( yy_current_state != 457 ); ++- yy_cp = (yy_last_accepting_cpos); ++- yy_current_state = (yy_last_accepting_state); ++- ++-yy_find_action: ++- yy_act = yy_accept[yy_current_state]; ++- ++- YY_DO_BEFORE_ACTION; ++- ++-do_action: /* This label is used only to access EOF actions. */ ++- ++- switch ( yy_act ) ++- { /* beginning of action switch */ ++- case 0: /* must back up */ ++- /* undo the effects of YY_DO_BEFORE_ACTION */ ++- *yy_cp = (yy_hold_char); ++- yy_cp = (yy_last_accepting_cpos); ++- yy_current_state = (yy_last_accepting_state); ++- goto yy_find_action; ++- ++-case 1: ++-/* rule 1 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp -= 1; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 74 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- BEGIN(in_struct); ++- return TYPEDEF; ++-} ++- YY_BREAK ++-case 2: ++-/* rule 2 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp -= 1; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 78 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- BEGIN(in_struct); ++- return STRUCT; ++-} ++- YY_BREAK ++-case 3: ++-/* rule 3 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp -= 1; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 82 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- BEGIN(in_struct); ++- return UNION; ++-} ++- YY_BREAK ++-case 4: ++-/* rule 4 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp -= 1; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 86 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- BEGIN(in_struct); ++- return EXTERN; ++-} ++- YY_BREAK ++-case 5: ++-/* rule 5 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp -= 1; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 90 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- BEGIN(in_struct); ++- return STATIC; ++-} ++- YY_BREAK ++-case 6: ++-/* rule 6 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp -= 1; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 95 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- BEGIN(in_struct); ++- return DEFVEC_OP; ++-} ++- YY_BREAK ++-case 7: ++-/* rule 7 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp -= 1; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 99 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- BEGIN(in_struct); ++- return DEFVEC_I; ++-} ++- YY_BREAK ++-case 8: ++-/* rule 8 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp -= 1; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 103 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- BEGIN(in_struct); ++- return DEFVEC_ALLOC; ++-} ++- YY_BREAK ++- ++- ++-case 9: ++-YY_RULE_SETUP ++-#line 111 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ BEGIN(in_struct_comment); } ++- YY_BREAK ++-case 10: ++-/* rule 10 can match eol */ ++-YY_RULE_SETUP ++-#line 113 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ update_lineno (yytext, yyleng); } ++- YY_BREAK ++-case 11: ++-/* rule 11 can match eol */ ++-YY_RULE_SETUP ++-#line 114 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ lexer_line.line++; } ++- YY_BREAK ++-case 12: ++-/* rule 12 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp = yy_bp + 5; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 116 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-/* don't care */ ++- YY_BREAK ++-case 13: ++-/* rule 13 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp = yy_bp + 3; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 117 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ return GTY_TOKEN; } ++- YY_BREAK ++-case 14: ++-/* rule 14 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp = yy_bp + 3; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 118 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ return VEC_TOKEN; } ++- YY_BREAK ++-case 15: ++-/* rule 15 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp = yy_bp + 5; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 119 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ return UNION; } ++- YY_BREAK ++-case 16: ++-/* rule 16 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp = yy_bp + 6; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 120 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ return STRUCT; } ++- YY_BREAK ++-case 17: ++-/* rule 17 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp = yy_bp + 4; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 121 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ return ENUM; } ++- YY_BREAK ++-case 18: ++-/* rule 18 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp = yy_bp + 9; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 122 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ return PTR_ALIAS; } ++- YY_BREAK ++-case 19: ++-/* rule 19 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp = yy_bp + 10; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 123 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ return NESTED_PTR; } ++- YY_BREAK ++-case 20: ++-YY_RULE_SETUP ++-#line 124 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ return NUM; } ++- YY_BREAK ++-case 21: ++-/* rule 21 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp -= 1; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 125 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); ++- return PARAM_IS; ++-} ++- YY_BREAK ++-case 22: ++-/* rule 22 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp -= 1; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-#line 131 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-case 23: ++-/* rule 23 can match eol */ ++-YY_RULE_SETUP ++-#line 131 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- size_t len; ++- ++- for (len = yyleng; ISSPACE (yytext[len-1]); len--) ++- ; ++- ++- *yylval = XDUPVAR (const char, yytext, len, len+1); ++- update_lineno (yytext, yyleng); ++- return SCALAR; ++-} ++- YY_BREAK ++-case 24: ++-/* rule 24 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp -= 1; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 143 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); ++- return ID; ++-} ++- YY_BREAK ++-case 25: ++-/* rule 25 can match eol */ ++-YY_RULE_SETUP ++-#line 148 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); ++- return STRING; ++-} ++- YY_BREAK ++-/* This "terminal" avoids having to parse integer constant expressions. */ ++-case 26: ++-/* rule 26 can match eol */ ++-YY_RULE_SETUP ++-#line 153 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); ++- return ARRAY; ++-} ++- YY_BREAK ++-case 27: ++-/* rule 27 can match eol */ ++-YY_RULE_SETUP ++-#line 157 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng); ++- return CHAR; ++-} ++- YY_BREAK ++-case 28: ++-YY_RULE_SETUP ++-#line 162 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ return ELLIPSIS; } ++- YY_BREAK ++-case 29: ++-YY_RULE_SETUP ++-#line 163 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ return yytext[0]; } ++- YY_BREAK ++-/* ignore pp-directives */ ++-case 30: ++-/* rule 30 can match eol */ ++-YY_RULE_SETUP ++-#line 166 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{lexer_line.line++;} ++- YY_BREAK ++-case 31: ++-YY_RULE_SETUP ++-#line 168 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- error_at_line (&lexer_line, "unexpected character `%s'", yytext); ++-} ++- YY_BREAK ++- ++-case 32: ++-YY_RULE_SETUP ++-#line 173 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ BEGIN(in_comment); } ++- YY_BREAK ++-case 33: ++-/* rule 33 can match eol */ ++-YY_RULE_SETUP ++-#line 174 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ lexer_line.line++; } ++- YY_BREAK ++-case 34: ++-#line 176 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-case 35: ++-/* rule 35 can match eol */ ++-#line 177 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-case 36: ++-/* rule 36 can match eol */ ++-YY_RULE_SETUP ++-#line 177 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-/* do nothing */ ++- YY_BREAK ++-case 37: ++-/* rule 37 can match eol */ ++-YY_RULE_SETUP ++-#line 178 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ update_lineno (yytext, yyleng); } ++- YY_BREAK ++-case 38: ++-/* rule 38 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp = yy_bp + 1; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 179 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-/* do nothing */ ++- YY_BREAK ++- ++-case 39: ++-/* rule 39 can match eol */ ++-YY_RULE_SETUP ++-#line 182 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ lexer_line.line++; } ++- YY_BREAK ++-case 40: ++-#line 184 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-case 41: ++-YY_RULE_SETUP ++-#line 184 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-/* do nothing */ ++- YY_BREAK ++-case 42: ++-/* rule 42 can match eol */ ++-*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ ++-(yy_c_buf_p) = yy_cp = yy_bp + 1; ++-YY_DO_BEFORE_ACTION; /* set up yytext again */ ++-YY_RULE_SETUP ++-#line 185 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-/* do nothing */ ++- YY_BREAK ++- ++-case 43: ++-YY_RULE_SETUP ++-#line 187 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ BEGIN(INITIAL); } ++- YY_BREAK ++-case 44: ++-YY_RULE_SETUP ++-#line 188 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ BEGIN(in_struct); } ++- YY_BREAK ++-case 45: ++-#line 191 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-case 46: ++-YY_RULE_SETUP ++-#line 191 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-{ ++- error_at_line (&lexer_line, ++- "unterminated comment or string; unexpected EOF"); ++-} ++- YY_BREAK ++-case 47: ++-/* rule 47 can match eol */ ++-YY_RULE_SETUP ++-#line 196 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-/* do nothing */ ++- YY_BREAK ++-case 48: ++-YY_RULE_SETUP ++-#line 198 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++-YY_FATAL_ERROR( "flex scanner jammed" ); ++- YY_BREAK ++-#line 1654 "gengtype-lex.c" ++-case YY_STATE_EOF(INITIAL): ++-case YY_STATE_EOF(in_struct): ++-case YY_STATE_EOF(in_struct_comment): ++-case YY_STATE_EOF(in_comment): ++- yyterminate(); ++- ++- case YY_END_OF_BUFFER: ++- { ++- /* Amount of text matched not including the EOB char. */ ++- int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; ++- ++- /* Undo the effects of YY_DO_BEFORE_ACTION. */ ++- *yy_cp = (yy_hold_char); ++- YY_RESTORE_YY_MORE_OFFSET ++- ++- if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) ++- { ++- /* We're scanning a new file or input source. It's ++- * possible that this happened because the user ++- * just pointed yyin at a new source and called ++- * yylex(). If so, then we have to assure ++- * consistency between YY_CURRENT_BUFFER and our ++- * globals. Here is the right place to do so, because ++- * this is the first action (other than possibly a ++- * back-up) that will match for the new input source. ++- */ ++- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; ++- YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; ++- YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; ++- } ++- ++- /* Note that here we test for yy_c_buf_p "<=" to the position ++- * of the first EOB in the buffer, since yy_c_buf_p will ++- * already have been incremented past the NUL character ++- * (since all states make transitions on EOB to the ++- * end-of-buffer state). Contrast this with the test ++- * in input(). ++- */ ++- if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) ++- { /* This was really a NUL. */ ++- yy_state_type yy_next_state; ++- ++- (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; ++- ++- yy_current_state = yy_get_previous_state( ); ++- ++- /* Okay, we're now positioned to make the NUL ++- * transition. We couldn't have ++- * yy_get_previous_state() go ahead and do it ++- * for us because it doesn't know how to deal ++- * with the possibility of jamming (and we don't ++- * want to build jamming into it because then it ++- * will run more slowly). ++- */ ++- ++- yy_next_state = yy_try_NUL_trans( yy_current_state ); ++- ++- yy_bp = (yytext_ptr) + YY_MORE_ADJ; ++- ++- if ( yy_next_state ) ++- { ++- /* Consume the NUL. */ ++- yy_cp = ++(yy_c_buf_p); ++- yy_current_state = yy_next_state; ++- goto yy_match; ++- } ++- ++- else ++- { ++- yy_cp = (yy_last_accepting_cpos); ++- yy_current_state = (yy_last_accepting_state); ++- goto yy_find_action; ++- } ++- } ++- ++- else switch ( yy_get_next_buffer( ) ) ++- { ++- case EOB_ACT_END_OF_FILE: ++- { ++- (yy_did_buffer_switch_on_eof) = 0; ++- ++- if ( yywrap( ) ) ++- { ++- /* Note: because we've taken care in ++- * yy_get_next_buffer() to have set up ++- * yytext, we can now set up ++- * yy_c_buf_p so that if some total ++- * hoser (like flex itself) wants to ++- * call the scanner after we return the ++- * YY_NULL, it'll still work - another ++- * YY_NULL will get returned. ++- */ ++- (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; ++- ++- yy_act = YY_STATE_EOF(YY_START); ++- goto do_action; ++- } ++- ++- else ++- { ++- if ( ! (yy_did_buffer_switch_on_eof) ) ++- YY_NEW_FILE; ++- } ++- break; ++- } ++- ++- case EOB_ACT_CONTINUE_SCAN: ++- (yy_c_buf_p) = ++- (yytext_ptr) + yy_amount_of_matched_text; ++- ++- yy_current_state = yy_get_previous_state( ); ++- ++- yy_cp = (yy_c_buf_p); ++- yy_bp = (yytext_ptr) + YY_MORE_ADJ; ++- goto yy_match; ++- ++- case EOB_ACT_LAST_MATCH: ++- (yy_c_buf_p) = ++- &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; ++- ++- yy_current_state = yy_get_previous_state( ); ++- ++- yy_cp = (yy_c_buf_p); ++- yy_bp = (yytext_ptr) + YY_MORE_ADJ; ++- goto yy_find_action; ++- } ++- break; ++- } ++- ++- default: ++- YY_FATAL_ERROR( ++- "fatal flex scanner internal error--no action found" ); ++- } /* end of action switch */ ++- } /* end of scanning one token */ ++-} /* end of yylex */ ++- ++-/* yy_get_next_buffer - try to read in a new buffer ++- * ++- * Returns a code representing an action: ++- * EOB_ACT_LAST_MATCH - ++- * EOB_ACT_CONTINUE_SCAN - continue scanning from current position ++- * EOB_ACT_END_OF_FILE - end of file ++- */ ++-static int yy_get_next_buffer (void) ++-{ ++- register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; ++- register char *source = (yytext_ptr); ++- register int number_to_move, i; ++- int ret_val; ++- ++- if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) ++- YY_FATAL_ERROR( ++- "fatal flex scanner internal error--end of buffer missed" ); ++- ++- if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) ++- { /* Don't try to fill the buffer, so this is an EOF. */ ++- if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) ++- { ++- /* We matched a single character, the EOB, so ++- * treat this as a final EOF. ++- */ ++- return EOB_ACT_END_OF_FILE; ++- } ++- ++- else ++- { ++- /* We matched some text prior to the EOB, first ++- * process it. ++- */ ++- return EOB_ACT_LAST_MATCH; ++- } ++- } ++- ++- /* Try to read more data. */ ++- ++- /* First move last chars to start of buffer. */ ++- number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; ++- ++- for ( i = 0; i < number_to_move; ++i ) ++- *(dest++) = *(source++); ++- ++- if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) ++- /* don't do the read, it's not guaranteed to return an EOF, ++- * just force an EOF ++- */ ++- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; ++- ++- else ++- { ++- int num_to_read = ++- YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; ++- ++- while ( num_to_read <= 0 ) ++- { /* Not enough room in the buffer - grow it. */ ++- ++- /* just a shorter name for the current buffer */ ++- YY_BUFFER_STATE b = YY_CURRENT_BUFFER; ++- ++- int yy_c_buf_p_offset = ++- (int) ((yy_c_buf_p) - b->yy_ch_buf); ++- ++- if ( b->yy_is_our_buffer ) ++- { ++- int new_size = b->yy_buf_size * 2; ++- ++- if ( new_size <= 0 ) ++- b->yy_buf_size += b->yy_buf_size / 8; ++- else ++- b->yy_buf_size *= 2; ++- ++- b->yy_ch_buf = (char *) ++- /* Include room in for 2 EOB chars. */ ++- yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); ++- } ++- else ++- /* Can't grow it, we don't own it. */ ++- b->yy_ch_buf = 0; ++- ++- if ( ! b->yy_ch_buf ) ++- YY_FATAL_ERROR( ++- "fatal error - scanner input buffer overflow" ); ++- ++- (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; ++- ++- num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - ++- number_to_move - 1; ++- ++- } ++- ++- if ( num_to_read > YY_READ_BUF_SIZE ) ++- num_to_read = YY_READ_BUF_SIZE; ++- ++- /* Read in more data. */ ++- YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), ++- (yy_n_chars), (size_t) num_to_read ); ++- ++- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); ++- } ++- ++- if ( (yy_n_chars) == 0 ) ++- { ++- if ( number_to_move == YY_MORE_ADJ ) ++- { ++- ret_val = EOB_ACT_END_OF_FILE; ++- yyrestart(yyin ); ++- } ++- ++- else ++- { ++- ret_val = EOB_ACT_LAST_MATCH; ++- YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = ++- YY_BUFFER_EOF_PENDING; ++- } ++- } ++- ++- else ++- ret_val = EOB_ACT_CONTINUE_SCAN; ++- ++- if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { ++- /* Extend the array by 50%, plus the number we really need. */ ++- yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); ++- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); ++- if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) ++- YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); ++- } ++- ++- (yy_n_chars) += number_to_move; ++- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; ++- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; ++- ++- (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; ++- ++- return ret_val; ++-} ++- ++-/* yy_get_previous_state - get the state just before the EOB char was reached */ ++- ++- static yy_state_type yy_get_previous_state (void) ++-{ ++- register yy_state_type yy_current_state; ++- register char *yy_cp; ++- ++- yy_current_state = (yy_start); ++- yy_current_state += YY_AT_BOL(); ++- ++- for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) ++- { ++- register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); ++- if ( yy_accept[yy_current_state] ) ++- { ++- (yy_last_accepting_state) = yy_current_state; ++- (yy_last_accepting_cpos) = yy_cp; ++- } ++- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) ++- { ++- yy_current_state = (int) yy_def[yy_current_state]; ++- if ( yy_current_state >= 458 ) ++- yy_c = yy_meta[(unsigned int) yy_c]; ++- } ++- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++- } ++- ++- return yy_current_state; ++-} ++- ++-/* yy_try_NUL_trans - try to make a transition on the NUL character ++- * ++- * synopsis ++- * next_state = yy_try_NUL_trans( current_state ); ++- */ ++- static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) ++-{ ++- register int yy_is_jam; ++- register char *yy_cp = (yy_c_buf_p); ++- ++- register YY_CHAR yy_c = 1; ++- if ( yy_accept[yy_current_state] ) ++- { ++- (yy_last_accepting_state) = yy_current_state; ++- (yy_last_accepting_cpos) = yy_cp; ++- } ++- while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) ++- { ++- yy_current_state = (int) yy_def[yy_current_state]; ++- if ( yy_current_state >= 458 ) ++- yy_c = yy_meta[(unsigned int) yy_c]; ++- } ++- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++- yy_is_jam = (yy_current_state == 457); ++- ++- return yy_is_jam ? 0 : yy_current_state; ++-} ++- ++-#ifndef YY_NO_INPUT ++-#ifdef __cplusplus ++- static int yyinput (void) ++-#else ++- static int input (void) ++-#endif ++- ++-{ ++- int c; ++- ++- *(yy_c_buf_p) = (yy_hold_char); ++- ++- if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) ++- { ++- /* yy_c_buf_p now points to the character we want to return. ++- * If this occurs *before* the EOB characters, then it's a ++- * valid NUL; if not, then we've hit the end of the buffer. ++- */ ++- if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) ++- /* This was really a NUL. */ ++- *(yy_c_buf_p) = '\0'; ++- ++- else ++- { /* need more input */ ++- int offset = (yy_c_buf_p) - (yytext_ptr); ++- ++(yy_c_buf_p); ++- ++- switch ( yy_get_next_buffer( ) ) ++- { ++- case EOB_ACT_LAST_MATCH: ++- /* This happens because yy_g_n_b() ++- * sees that we've accumulated a ++- * token and flags that we need to ++- * try matching the token before ++- * proceeding. But for input(), ++- * there's no matching to consider. ++- * So convert the EOB_ACT_LAST_MATCH ++- * to EOB_ACT_END_OF_FILE. ++- */ ++- ++- /* Reset buffer status. */ ++- yyrestart(yyin ); ++- ++- /*FALLTHROUGH*/ ++- ++- case EOB_ACT_END_OF_FILE: ++- { ++- if ( yywrap( ) ) ++- return EOF; ++- ++- if ( ! (yy_did_buffer_switch_on_eof) ) ++- YY_NEW_FILE; ++-#ifdef __cplusplus ++- return yyinput(); ++-#else ++- return input(); ++-#endif ++- } ++- ++- case EOB_ACT_CONTINUE_SCAN: ++- (yy_c_buf_p) = (yytext_ptr) + offset; ++- break; ++- } ++- } ++- } ++- ++- c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ ++- *(yy_c_buf_p) = '\0'; /* preserve yytext */ ++- (yy_hold_char) = *++(yy_c_buf_p); ++- ++- YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); ++- ++- return c; ++-} ++-#endif /* ifndef YY_NO_INPUT */ ++- ++-/** Immediately switch to a different input stream. ++- * @param input_file A readable stream. ++- * ++- * @note This function does not reset the start condition to @c INITIAL . ++- */ ++- void yyrestart (FILE * input_file ) ++-{ ++- ++- if ( ! YY_CURRENT_BUFFER ){ ++- yyensure_buffer_stack (); ++- YY_CURRENT_BUFFER_LVALUE = ++- yy_create_buffer(yyin,YY_BUF_SIZE ); ++- } ++- ++- yy_init_buffer(YY_CURRENT_BUFFER,input_file ); ++- yy_load_buffer_state( ); ++-} ++- ++-/** Switch to a different input buffer. ++- * @param new_buffer The new input buffer. ++- * ++- */ ++- void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) ++-{ ++- ++- /* TODO. We should be able to replace this entire function body ++- * with ++- * yypop_buffer_state(); ++- * yypush_buffer_state(new_buffer); ++- */ ++- yyensure_buffer_stack (); ++- if ( YY_CURRENT_BUFFER == new_buffer ) ++- return; ++- ++- if ( YY_CURRENT_BUFFER ) ++- { ++- /* Flush out information for old buffer. */ ++- *(yy_c_buf_p) = (yy_hold_char); ++- YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); ++- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); ++- } ++- ++- YY_CURRENT_BUFFER_LVALUE = new_buffer; ++- yy_load_buffer_state( ); ++- ++- /* We don't actually know whether we did this switch during ++- * EOF (yywrap()) processing, but the only time this flag ++- * is looked at is after yywrap() is called, so it's safe ++- * to go ahead and always set it. ++- */ ++- (yy_did_buffer_switch_on_eof) = 1; ++-} ++- ++-static void yy_load_buffer_state (void) ++-{ ++- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; ++- (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; ++- yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; ++- (yy_hold_char) = *(yy_c_buf_p); ++-} ++- ++-/** Allocate and initialize an input buffer state. ++- * @param file A readable stream. ++- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. ++- * ++- * @return the allocated buffer state. ++- */ ++- YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) ++-{ ++- YY_BUFFER_STATE b; ++- ++- b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); ++- if ( ! b ) ++- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); ++- ++- b->yy_buf_size = size; ++- ++- /* yy_ch_buf has to be 2 characters longer than the size given because ++- * we need to put in 2 end-of-buffer characters. ++- */ ++- b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); ++- if ( ! b->yy_ch_buf ) ++- YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); ++- ++- b->yy_is_our_buffer = 1; ++- ++- yy_init_buffer(b,file ); ++- ++- return b; ++-} ++- ++-/** Destroy the buffer. ++- * @param b a buffer created with yy_create_buffer() ++- * ++- */ ++- void yy_delete_buffer (YY_BUFFER_STATE b ) ++-{ ++- ++- if ( ! b ) ++- return; ++- ++- if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ ++- YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; ++- ++- if ( b->yy_is_our_buffer ) ++- yyfree((void *) b->yy_ch_buf ); ++- ++- yyfree((void *) b ); ++-} ++- ++-/* Initializes or reinitializes a buffer. ++- * This function is sometimes called more than once on the same buffer, ++- * such as during a yyrestart() or at EOF. ++- */ ++- static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) ++- ++-{ ++- int oerrno = errno; ++- ++- yy_flush_buffer(b ); ++- ++- b->yy_input_file = file; ++- b->yy_fill_buffer = 1; ++- ++- /* If b is the current buffer, then yy_init_buffer was _probably_ ++- * called from yyrestart() or through yy_get_next_buffer. ++- * In that case, we don't want to reset the lineno or column. ++- */ ++- if (b != YY_CURRENT_BUFFER){ ++- b->yy_bs_lineno = 1; ++- b->yy_bs_column = 0; ++- } ++- ++- b->yy_is_interactive = 0; ++- ++- errno = oerrno; ++-} ++- ++-/** Discard all buffered characters. On the next scan, YY_INPUT will be called. ++- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. ++- * ++- */ ++- void yy_flush_buffer (YY_BUFFER_STATE b ) ++-{ ++- if ( ! b ) ++- return; ++- ++- b->yy_n_chars = 0; ++- ++- /* We always need two end-of-buffer characters. The first causes ++- * a transition to the end-of-buffer state. The second causes ++- * a jam in that state. ++- */ ++- b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; ++- b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; ++- ++- b->yy_buf_pos = &b->yy_ch_buf[0]; ++- ++- b->yy_at_bol = 1; ++- b->yy_buffer_status = YY_BUFFER_NEW; ++- ++- if ( b == YY_CURRENT_BUFFER ) ++- yy_load_buffer_state( ); ++-} ++- ++-/** Pushes the new state onto the stack. The new state becomes ++- * the current state. This function will allocate the stack ++- * if necessary. ++- * @param new_buffer The new state. ++- * ++- */ ++-void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) ++-{ ++- if (new_buffer == NULL) ++- return; ++- ++- yyensure_buffer_stack(); ++- ++- /* This block is copied from yy_switch_to_buffer. */ ++- if ( YY_CURRENT_BUFFER ) ++- { ++- /* Flush out information for old buffer. */ ++- *(yy_c_buf_p) = (yy_hold_char); ++- YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); ++- YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); ++- } ++- ++- /* Only push if top exists. Otherwise, replace top. */ ++- if (YY_CURRENT_BUFFER) ++- (yy_buffer_stack_top)++; ++- YY_CURRENT_BUFFER_LVALUE = new_buffer; ++- ++- /* copied from yy_switch_to_buffer. */ ++- yy_load_buffer_state( ); ++- (yy_did_buffer_switch_on_eof) = 1; ++-} ++- ++-/** Removes and deletes the top of the stack, if present. ++- * The next element becomes the new top. ++- * ++- */ ++-void yypop_buffer_state (void) ++-{ ++- if (!YY_CURRENT_BUFFER) ++- return; ++- ++- yy_delete_buffer(YY_CURRENT_BUFFER ); ++- YY_CURRENT_BUFFER_LVALUE = NULL; ++- if ((yy_buffer_stack_top) > 0) ++- --(yy_buffer_stack_top); ++- ++- if (YY_CURRENT_BUFFER) { ++- yy_load_buffer_state( ); ++- (yy_did_buffer_switch_on_eof) = 1; ++- } ++-} ++- ++-/* Allocates the stack if it does not exist. ++- * Guarantees space for at least one push. ++- */ ++-static void yyensure_buffer_stack (void) ++-{ ++- int num_to_alloc; ++- ++- if (!(yy_buffer_stack)) { ++- ++- /* First allocation is just for 2 elements, since we don't know if this ++- * scanner will even need a stack. We use 2 instead of 1 to avoid an ++- * immediate realloc on the next call. ++- */ ++- num_to_alloc = 1; ++- (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc ++- (num_to_alloc * sizeof(struct yy_buffer_state*) ++- ); ++- if ( ! (yy_buffer_stack) ) ++- YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); ++- ++- memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); ++- ++- (yy_buffer_stack_max) = num_to_alloc; ++- (yy_buffer_stack_top) = 0; ++- return; ++- } ++- ++- if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ ++- ++- /* Increase the buffer to prepare for a possible push. */ ++- int grow_size = 8 /* arbitrary grow size */; ++- ++- num_to_alloc = (yy_buffer_stack_max) + grow_size; ++- (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ++- ((yy_buffer_stack), ++- num_to_alloc * sizeof(struct yy_buffer_state*) ++- ); ++- if ( ! (yy_buffer_stack) ) ++- YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); ++- ++- /* zero only the new slots.*/ ++- memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); ++- (yy_buffer_stack_max) = num_to_alloc; ++- } ++-} ++- ++-/** Setup the input buffer state to scan directly from a user-specified character buffer. ++- * @param base the character buffer ++- * @param size the size in bytes of the character buffer ++- * ++- * @return the newly allocated buffer state object. ++- */ ++-YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) ++-{ ++- YY_BUFFER_STATE b; ++- ++- if ( size < 2 || ++- base[size-2] != YY_END_OF_BUFFER_CHAR || ++- base[size-1] != YY_END_OF_BUFFER_CHAR ) ++- /* They forgot to leave room for the EOB's. */ ++- return 0; ++- ++- b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); ++- if ( ! b ) ++- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); ++- ++- b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ ++- b->yy_buf_pos = b->yy_ch_buf = base; ++- b->yy_is_our_buffer = 0; ++- b->yy_input_file = 0; ++- b->yy_n_chars = b->yy_buf_size; ++- b->yy_is_interactive = 0; ++- b->yy_at_bol = 1; ++- b->yy_fill_buffer = 0; ++- b->yy_buffer_status = YY_BUFFER_NEW; ++- ++- yy_switch_to_buffer(b ); ++- ++- return b; ++-} ++- ++-/** Setup the input buffer state to scan a string. The next call to yylex() will ++- * scan from a @e copy of @a str. ++- * @param yystr a NUL-terminated string to scan ++- * ++- * @return the newly allocated buffer state object. ++- * @note If you want to scan bytes that may contain NUL values, then use ++- * yy_scan_bytes() instead. ++- */ ++-YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) ++-{ ++- ++- return yy_scan_bytes(yystr,strlen(yystr) ); ++-} ++- ++-/** Setup the input buffer state to scan the given bytes. The next call to yylex() will ++- * scan from a @e copy of @a bytes. ++- * @param bytes the byte buffer to scan ++- * @param len the number of bytes in the buffer pointed to by @a bytes. ++- * ++- * @return the newly allocated buffer state object. ++- */ ++-YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) ++-{ ++- YY_BUFFER_STATE b; ++- char *buf; ++- yy_size_t n; ++- int i; ++- ++- /* Get memory for full buffer, including space for trailing EOB's. */ ++- n = _yybytes_len + 2; ++- buf = (char *) yyalloc(n ); ++- if ( ! buf ) ++- YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); ++- ++- for ( i = 0; i < _yybytes_len; ++i ) ++- buf[i] = yybytes[i]; ++- ++- buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; ++- ++- b = yy_scan_buffer(buf,n ); ++- if ( ! b ) ++- YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); ++- ++- /* It's okay to grow etc. this buffer, and we should throw it ++- * away when we're done. ++- */ ++- b->yy_is_our_buffer = 1; ++- ++- return b; ++-} ++- ++-#ifndef YY_EXIT_FAILURE ++-#define YY_EXIT_FAILURE 2 ++-#endif ++- ++-static void yy_fatal_error (yyconst char* msg ) ++-{ ++- (void) fprintf( stderr, "%s\n", msg ); ++- exit( YY_EXIT_FAILURE ); ++-} ++- ++-/* Redefine yyless() so it works in section 3 code. */ ++- ++-#undef yyless ++-#define yyless(n) \ ++- do \ ++- { \ ++- /* Undo effects of setting up yytext. */ \ ++- int yyless_macro_arg = (n); \ ++- YY_LESS_LINENO(yyless_macro_arg);\ ++- yytext[yyleng] = (yy_hold_char); \ ++- (yy_c_buf_p) = yytext + yyless_macro_arg; \ ++- (yy_hold_char) = *(yy_c_buf_p); \ ++- *(yy_c_buf_p) = '\0'; \ ++- yyleng = yyless_macro_arg; \ ++- } \ ++- while ( 0 ) ++- ++-/* Accessor methods (get/set functions) to struct members. */ ++- ++-/** Get the current line number. ++- * ++- */ ++-int yyget_lineno (void) ++-{ ++- ++- return yylineno; ++-} ++- ++-/** Get the input stream. ++- * ++- */ ++-FILE *yyget_in (void) ++-{ ++- return yyin; ++-} ++- ++-/** Get the output stream. ++- * ++- */ ++-FILE *yyget_out (void) ++-{ ++- return yyout; ++-} ++- ++-/** Get the length of the current token. ++- * ++- */ ++-int yyget_leng (void) ++-{ ++- return yyleng; ++-} ++- ++-/** Get the current token. ++- * ++- */ ++- ++-char *yyget_text (void) ++-{ ++- return yytext; ++-} ++- ++-/** Set the current line number. ++- * @param line_number ++- * ++- */ ++-void yyset_lineno (int line_number ) ++-{ ++- ++- yylineno = line_number; ++-} ++- ++-/** Set the input stream. This does not discard the current ++- * input buffer. ++- * @param in_str A readable stream. ++- * ++- * @see yy_switch_to_buffer ++- */ ++-void yyset_in (FILE * in_str ) ++-{ ++- yyin = in_str ; ++-} ++- ++-void yyset_out (FILE * out_str ) ++-{ ++- yyout = out_str ; ++-} ++- ++-int yyget_debug (void) ++-{ ++- return yy_flex_debug; ++-} ++- ++-void yyset_debug (int bdebug ) ++-{ ++- yy_flex_debug = bdebug ; ++-} ++- ++-static int yy_init_globals (void) ++-{ ++- /* Initialization is the same as for the non-reentrant scanner. ++- * This function is called from yylex_destroy(), so don't allocate here. ++- */ ++- ++- (yy_buffer_stack) = 0; ++- (yy_buffer_stack_top) = 0; ++- (yy_buffer_stack_max) = 0; ++- (yy_c_buf_p) = (char *) 0; ++- (yy_init) = 0; ++- (yy_start) = 0; ++- ++-/* Defined in main.c */ ++-#ifdef YY_STDINIT ++- yyin = stdin; ++- yyout = stdout; ++-#else ++- yyin = (FILE *) 0; ++- yyout = (FILE *) 0; ++-#endif ++- ++- /* For future reference: Set errno on error, since we are called by ++- * yylex_init() ++- */ ++- return 0; ++-} ++- ++-/* yylex_destroy is for both reentrant and non-reentrant scanners. */ ++-int yylex_destroy (void) ++-{ ++- ++- /* Pop the buffer stack, destroying each element. */ ++- while(YY_CURRENT_BUFFER){ ++- yy_delete_buffer(YY_CURRENT_BUFFER ); ++- YY_CURRENT_BUFFER_LVALUE = NULL; ++- yypop_buffer_state(); ++- } ++- ++- /* Destroy the stack itself. */ ++- yyfree((yy_buffer_stack) ); ++- (yy_buffer_stack) = NULL; ++- ++- /* Reset the globals. This is important in a non-reentrant scanner so the next time ++- * yylex() is called, initialization will occur. */ ++- yy_init_globals( ); ++- ++- return 0; ++-} ++- ++-/* ++- * Internal utility routines. ++- */ ++- ++-#ifndef yytext_ptr ++-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) ++-{ ++- register int i; ++- for ( i = 0; i < n; ++i ) ++- s1[i] = s2[i]; ++-} ++-#endif ++- ++-#ifdef YY_NEED_STRLEN ++-static int yy_flex_strlen (yyconst char * s ) ++-{ ++- register int n; ++- for ( n = 0; s[n]; ++n ) ++- ; ++- ++- return n; ++-} ++-#endif ++- ++-void *yyalloc (yy_size_t size ) ++-{ ++- return (void *) malloc( size ); ++-} ++- ++-void *yyrealloc (void * ptr, yy_size_t size ) ++-{ ++- /* The cast to (char *) in the following accommodates both ++- * implementations that use char* generic pointers, and those ++- * that use void* generic pointers. It works with the latter ++- * because both ANSI C and C++ allow castless assignment from ++- * any pointer type to void*, and deal with argument conversions ++- * as though doing an assignment. ++- */ ++- return (void *) realloc( (char *) ptr, size ); ++-} ++- ++-void yyfree (void * ptr ) ++-{ ++- free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ ++-} ++- ++-#define YYTABLES_NAME "yytables" ++- ++-#line 198 "/d/gcc-4.7.2/gcc-4.7.2/gcc/gengtype-lex.l" ++- ++- ++- ++-void ++-yybegin (const char *fname) ++-{ ++- yyin = fopen (fname, "r"); ++- if (yyin == NULL) ++- { ++- perror (fname); ++- exit (1); ++- } ++- lexer_line.file = input_file_by_name (fname); ++- lexer_line.line = 1; ++-} ++- ++-void ++-yyend (void) ++-{ ++- fclose (yyin); ++-} ++- +diff --git a/meta/recipes-devtools/gcc/gcc-configure-runtime.inc b/meta/recipes-devtools/gcc/gcc-configure-runtime.inc +index 977a98a..f89ca6b 100644 +--- a/meta/recipes-devtools/gcc/gcc-configure-runtime.inc ++++ b/meta/recipes-devtools/gcc/gcc-configure-runtime.inc +@@ -15,8 +15,8 @@ RUNTIMETARGET = "libssp libstdc++-v3 libgomp" + + do_configure () { + export CXX="${CXX} -nostdinc++ -nostdlib++" +- mtarget=`echo ${MULTIMACH_TARGET_SYS} | sed -e s#-nativesdk##` +- target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` ++ mtarget=`echo ${MULTIMACH_TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##` ++ target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##` + cp -fpPR ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$mtarget/* ${B} + for d in libgcc ${RUNTIMETARGET}; do + echo "Configuring $d" +@@ -29,7 +29,7 @@ do_configure () { + } + + do_compile () { +- target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` ++ target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##` + for d in libgcc ${RUNTIMETARGET}; do + cd ${B}/$target/$d/ + oe_runmake MULTIBUILDTOP=${B}/$target/$d/ +@@ -37,7 +37,7 @@ do_compile () { + } + + do_install () { +- target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` ++ target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##` + for d in ${RUNTIMETARGET}; do + cd ${B}/$target/$d/ + oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/$target/$d/ install +diff --git a/meta/recipes-devtools/gcc/gcc-configure-sdk.inc b/meta/recipes-devtools/gcc/gcc-configure-sdk.inc +index 51c0217..6c55bc7 100644 +--- a/meta/recipes-devtools/gcc/gcc-configure-sdk.inc ++++ b/meta/recipes-devtools/gcc/gcc-configure-sdk.inc +@@ -43,5 +43,5 @@ do_configure () { + } + + do_compile () { +- oe_runmake all-host all-target-libgcc ++ oe_runmake all-host + } +diff --git a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.7.bb b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.7.bb +index 53c4632..f684216 100644 +--- a/meta/recipes-devtools/gcc/gcc-cross-canadian_4.7.bb ++++ b/meta/recipes-devtools/gcc/gcc-cross-canadian_4.7.bb +@@ -5,8 +5,10 @@ require gcc-cross-canadian.inc + require gcc-configure-sdk.inc + require gcc-package-sdk.inc + +-DEPENDS += "nativesdk-gmp nativesdk-mpfr nativesdk-libmpc nativesdk-elfutils" +-RDEPENDS_${PN} += "nativesdk-mpfr nativesdk-libmpc nativesdk-elfutils" ++DEPENDS += "nativesdk-gmp nativesdk-mpfr nativesdk-libmpc" ++# nativesdk-elfutils" ++RDEPENDS_${PN} += "nativesdk-mpfr nativesdk-libmpc" ++# nativesdk-elfutils" + + SYSTEMHEADERS = "/usr/include" + SYSTEMLIBS = "${target_base_libdir}/" +@@ -20,7 +22,5 @@ EXTRA_OECONF += "--disable-libunwind-exceptions --disable-libssp \ + # to find libmpfr + # export LD_LIBRARY_PATH = "{STAGING_DIR_HOST}${layout_exec_prefix}" + +-PARALLEL_MAKE = "" +- + # gcc 4.7 needs -isystem + export ARCH_FLAGS_FOR_TARGET = "--sysroot=${STAGING_DIR_TARGET} -isystem=${target_includedir}" +diff --git a/meta/recipes-devtools/gcc/gcc-package-sdk.inc b/meta/recipes-devtools/gcc/gcc-package-sdk.inc +index bb6dfde..2ebb8c4 100644 +--- a/meta/recipes-devtools/gcc/gcc-package-sdk.inc ++++ b/meta/recipes-devtools/gcc/gcc-package-sdk.inc +@@ -28,6 +28,11 @@ FILES_${PN}-doc = "\ + ${gcclibdir}/${TARGET_SYS}/${BINV}/include/README \ + " + ++EXEEXT = "" ++ ++# Compute how to get from libexecdir to bindir in python (easier than shell) ++BINRELPATH = "${@oe.path.relative(d.expand("${libexecdir}/gcc/${TARGET_SYS}/${BINV}"), d.expand("${bindir}"))}" ++ + do_install () { + oe_runmake 'DESTDIR=${D}' install-host + +@@ -59,12 +64,13 @@ do_install () { + # found. + dest=${D}${libexecdir}/gcc/${TARGET_SYS}/${BINV}/ + install -d $dest ++ suffix=${EXEEXT} + for t in ar as ld nm objcopy objdump ranlib strip g77 gcc cpp gfortran; do +- if [ "$t" = "g77" -o "$t" = "gfortran" ] && [ ! -e ${D}${bindir}/${TARGET_PREFIX}$t ]; then ++ if [ "$t" = "g77" -o "$t" = "gfortran" ] && [ ! -e ${D}${bindir}/${TARGET_PREFIX}$t$suffix ]; then + continue + fi + +- ln -sf ${bindir}/${TARGET_PREFIX}$t $dest$t ++ ln -sf ${BINRELPATH}/${TARGET_PREFIX}$t$suffix $dest$t$suffix + done + + chown -R root:root ${D} +diff --git a/meta/recipes-devtools/gcc/libgcc_4.7.bb b/meta/recipes-devtools/gcc/libgcc_4.7.bb +index 47669a2..3b5bb43 100644 +--- a/meta/recipes-devtools/gcc/libgcc_4.7.bb ++++ b/meta/recipes-devtools/gcc/libgcc_4.7.bb +@@ -26,7 +26,7 @@ FILES_libgcov-dev = " \ + FILES_${PN}-dbg += "${base_libdir}/.debug/" + + do_configure () { +- target=`echo ${MULTIMACH_TARGET_SYS} | sed -e s#-nativesdk##` ++ target=`echo ${MULTIMACH_TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##` + install -d ${D}${base_libdir} ${D}${libdir} + cp -fpPR ${STAGING_INCDIR_NATIVE}/gcc-build-internal-$target/* ${B} + mkdir -p ${B}/${BPN} +@@ -36,13 +36,13 @@ do_configure () { + } + + do_compile () { +- target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` ++ target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##` + cd ${B}/${BPN} + oe_runmake MULTIBUILDTOP=${B}/$target/${BPN}/ + } + + do_install () { +- target=`echo ${TARGET_SYS} | sed -e s#-nativesdk##` ++ target=`echo ${TARGET_SYS} | sed -e s#-${SDKPKGSUFFIX}##` + cd ${B}/${BPN} + oe_runmake 'DESTDIR=${D}' MULTIBUILDTOP=${B}/$target/${BPN}/ install + +diff --git a/meta/recipes-support/libiconv/libiconv_1.14.bb b/meta/recipes-support/libiconv/libiconv_1.14.bb +index b1d2612..1ba0d12 100644 +--- a/meta/recipes-support/libiconv/libiconv_1.14.bb ++++ b/meta/recipes-support/libiconv/libiconv_1.14.bb +@@ -22,6 +22,8 @@ S = "${WORKDIR}/libiconv-${PV}" + inherit autotools pkgconfig gettext + + python __anonymous() { ++ if d.getVar("TARGET_OS", True) != "linux": ++ return + if d.getVar("TCLIBC", True) == "eglibc": + raise bb.parse.SkipPackage("libiconv is provided for use with uClibc only - eglibc already provides iconv") + } +@@ -44,3 +46,5 @@ do_install_append () { + rm -rf ${D}${libdir}/preloadable_libiconv.so + rm -rf ${D}${libdir}/charset.alias + } ++ ++BBCLASSEXTEND = "nativesdk" +\ No newline at end of file |