aboutsummaryrefslogtreecommitdiffstats
path: root/oecore.patch
diff options
context:
space:
mode:
Diffstat (limited to 'oecore.patch')
-rw-r--r--oecore.patch3244
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