Yocto 2.5

Move OpenBMC to Yocto 2.5(sumo)

Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Change-Id: I5c5ad6904a16e14c1c397f0baf10c9d465594a78
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch
index 85af81f..5c90397 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch
@@ -1,19 +1,50 @@
+From aa669312a380611d280d126cb509fa282080707e Mon Sep 17 00:00:00 2001
+From: Markus Mayer <mmayer@mmayer.net>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] android-tools: add recipe from AOSP tag android-5.1.1_r37
+
 Description: add -o argument to preserve ownership
-Author: Markus Mayer <mmayer@mmayer.net>
 
 See also https://android-review.googlesource.com/#/c/100312/
 
 Upstream-Status: Inappropriate
+
 ---
- system/extras/ext4_utils/make_ext4fs.c      |    6 ++++++
- system/extras/ext4_utils/make_ext4fs_main.c |   10 ++++++++--
+ ext4_utils/make_ext4fs.c      |  6 ++++++
+ ext4_utils/make_ext4fs_main.c | 10 ++++++++--
  2 files changed, 14 insertions(+), 2 deletions(-)
 
---- a/system/extras/ext4_utils/make_ext4fs_main.c
-+++ b/system/extras/ext4_utils/make_ext4fs_main.c
-@@ -49,13 +49,15 @@ extern struct fs_info info;
+diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c
+index 2f89ae8a..cc41d623 100644
+--- a/ext4_utils/make_ext4fs.c
++++ b/ext4_utils/make_ext4fs.c
+@@ -68,6 +68,8 @@
  
- extern struct selabel_handle* selinux_android_file_context_handle(void);
+ #endif
+ 
++int preserve_owner = 0;
++
+ /* TODO: Not implemented:
+    Allocating blocks in the same block group as the file inode
+    Hash or binary tree directories
+@@ -186,6 +188,10 @@ static u32 build_directory_structure(const char *full_path, const char *dir_path
+ 		} else {
+ 			dentries[i].mtime = fixed_time;
+ 		}
++		if (preserve_owner) {
++			dentries[i].uid = stat.st_uid;
++			dentries[i].gid = stat.st_gid;
++		}
+ 		uint64_t capabilities;
+ 		if (fs_config_func != NULL) {
+ #ifdef ANDROID
+diff --git a/ext4_utils/make_ext4fs_main.c b/ext4_utils/make_ext4fs_main.c
+index a6c5f616..7af0dddf 100644
+--- a/ext4_utils/make_ext4fs_main.c
++++ b/ext4_utils/make_ext4fs_main.c
+@@ -48,13 +48,15 @@ struct selabel_handle;
+ extern struct fs_info info;
+ 
  
 +extern int preserve_owner;
 +
@@ -28,7 +59,7 @@
  	fprintf(stderr, "    <filename> [<directory>]\n");
  }
  
-@@ -81,7 +83,7 @@ int main(int argc, char **argv)
+@@ -80,7 +82,7 @@ int main(int argc, char **argv)
  	struct selinux_opt seopts[] = { { SELABEL_OPT_PATH, "" } };
  #endif
  
@@ -37,7 +68,7 @@
  		switch (opt) {
  		case 'l':
  			info.len = parse_num(optarg);
-@@ -144,6 +146,10 @@ int main(int argc, char **argv)
+@@ -143,6 +145,10 @@ int main(int argc, char **argv)
  			}
  #endif
  			break;
@@ -48,25 +79,3 @@
  		case 'v':
  			verbose = 1;
  			break;
---- a/system/extras/ext4_utils/make_ext4fs.c
-+++ b/system/extras/ext4_utils/make_ext4fs.c
-@@ -67,6 +67,8 @@
- 
- #endif
- 
-+int preserve_owner = 0;
-+
- /* TODO: Not implemented:
-    Allocating blocks in the same block group as the file inode
-    Hash or binary tree directories
-@@ -185,6 +187,10 @@ static u32 build_directory_structure(con
- 		} else {
- 			dentries[i].mtime = fixed_time;
- 		}
-+		if (preserve_owner) {
-+			dentries[i].uid = stat.st_uid;
-+			dentries[i].gid = stat.st_gid;
-+		}
- 		uint64_t capabilities;
- 		if (fs_config_func != NULL) {
- #ifdef ANDROID
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
index d3ccd1d..780ecaa 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
@@ -9,7 +9,6 @@
 "
 DEPENDS = "libbsd libpcre openssl zlib libcap"
 
-ANDROID_TAG = "android-5.1.1_r37"
 ANDROID_MIRROR = "android.googlesource.com"
 CORE_REPO = "${ANDROID_MIRROR}/platform/system/core"
 EXTRAS_REPO = "${ANDROID_MIRROR}/platform/system/extras"
@@ -17,16 +16,23 @@
 LIBSELINUX_REPO = "${ANDROID_MIRROR}/platform/external/libselinux"
 BUILD_REPO = "${ANDROID_MIRROR}/platform/build"
 
+# matches with android-5.1.1_r37
+SRCREV_core = "2314b110bdebdbfd2d94c502282f9e57c849897e"
+SRCREV_extras = "3ecbe8d841df96127d7855661293e5ab6ba6c205"
+SRCREV_libhardware = "be55eb1f4d840c82ffaf7c47460df17ff5bc4d9b"
+SRCREV_libselinux = "07e9e1339ad1ba608acfba9dce2d0f474b252feb"
+SRCREV_build = "16e987def3d7d8f7d30805eb95cef69e52a87dbc"
+
 SRC_URI = " \
-    git://${CORE_REPO};name=core;protocol=https;nobranch=1;destsuffix=git/system/core;tag=${ANDROID_TAG} \
-    git://${EXTRAS_REPO};name=extras;protocol=https;nobranch=1;destsuffix=git/system/extras;tag=${ANDROID_TAG} \
-    git://${LIBHARDWARE_REPO};name=libhardware;protocol=https;nobranch=1;destsuffix=git/hardware/libhardware;tag=${ANDROID_TAG} \
-    git://${LIBSELINUX_REPO};name=libselinux;protocol=https;nobranch=1;destsuffix=git/external/libselinux;tag=${ANDROID_TAG} \
-    git://${BUILD_REPO};name=build;protocol=https;nobranch=1;destsuffix=git/build;tag=${ANDROID_TAG} \
+    git://${CORE_REPO};name=core;protocol=https;nobranch=1;destsuffix=git/system/core \
+    git://${EXTRAS_REPO};name=extras;protocol=https;nobranch=1;destsuffix=git/system/extras \
+    git://${LIBHARDWARE_REPO};name=libhardware;protocol=https;nobranch=1;destsuffix=git/hardware/libhardware \
+    git://${LIBSELINUX_REPO};name=libselinux;protocol=https;nobranch=1;destsuffix=git/external/libselinux \
+    git://${BUILD_REPO};name=build;protocol=https;nobranch=1;destsuffix=git/build \
     file://remove-selinux-android.patch \
     file://use-capability.patch \
     file://use-local-socket.patch \
-    file://preserve-ownership.patch \
+    file://preserve-ownership.patch;patchdir=system/extras \
     file://mkbootimg-Add-dt-parameter-to-specify-DT-image.patch \
     file://remove-bionic-android.patch \
     file://define-shell-command.patch \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-disable-calls-to-getcontext-with-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-disable-calls-to-getcontext-with-musl.patch
new file mode 100644
index 0000000..c762754
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-disable-calls-to-getcontext-with-musl.patch
@@ -0,0 +1,52 @@
+From 57ecf7205feedd23f901e1bb9d193787e559e433 Mon Sep 17 00:00:00 2001
+From: Andre McCurdy <armccurdy@gmail.com>
+Date: Tue, 23 Jan 2018 15:13:26 -0800
+Subject: [PATCH] disable calls to getcontext() with musl
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+---
+ src/client/linux/handler/exception_handler.cc | 17 +++++++++++++++++
+ 1 file changed, 17 insertions(+)
+
+diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc
+index cca023f..f3e460c 100644
+--- a/src/client/linux/handler/exception_handler.cc
++++ b/src/client/linux/handler/exception_handler.cc
+@@ -495,7 +495,19 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) {
+   siginfo.si_code = SI_USER;
+   siginfo.si_pid = getpid();
+   ucontext_t context;
++#if defined(__GLIBC__)
+   getcontext(&context);
++#else
++  // Extreme hack: Allow musl builds to compile - but don't expect them to work.
++  // Although musl provides a definition for getcontext() in ucontext.h (which
++  // enough to build libbreakpad_client) musl does not provide a corresponding
++  // getcontext() function, so builds will fail when attempting to link anything
++  // with libbreakpad_client. Disabling calls to getcontext() is a temporary
++  // hack. The real fix is probably to enable Breakpad's own implementation of
++  // getcontext() when building for musl (it's currently only enabled when
++  // building for Android).
++  memset (&context, 0, sizeof(context));
++#endif
+   return HandleSignal(sig, &siginfo, &context);
+ }
+ 
+@@ -680,9 +692,14 @@ bool ExceptionHandler::WriteMinidump() {
+   sys_prctl(PR_SET_DUMPABLE, 1, 0, 0, 0);
+ 
+   CrashContext context;
++#if defined(__GLIBC__)
+   int getcontext_result = getcontext(&context.context);
+   if (getcontext_result)
+     return false;
++#else
++  // Extreme hack - see comments above.
++  memset (&context.context, 0, sizeof(&context.context));
++#endif
+ 
+ #if defined(__i386__)
+   // In CPUFillFromUContext in minidumpwriter.cc the stack pointer is retrieved
+-- 
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-Import-necessary-definitions-from-stab.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-Import-necessary-definitions-from-stab.h.patch
deleted file mode 100644
index 80de8c6..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-Import-necessary-definitions-from-stab.h.patch
+++ /dev/null
@@ -1,199 +0,0 @@
-From fa7a3b7312307acad0045549d5f306e7fd117804 Mon Sep 17 00:00:00 2001
-From: Felix Janda <felix.janda@posteo.de>
-Date: Sun, 1 Feb 2015 14:34:44 +0100
-Subject: [PATCH 5/6] Import necessary definitions from stab.h
-
----
- configure.ac                        |   1 -
- src/common/android/include/stab.h   | 100 ------------------------------------
- src/common/common.gyp               |   1 -
- src/common/stabs_reader.cc          |   1 -
- src/common/stabs_reader.h           |  13 +++--
- src/common/stabs_reader_unittest.cc |   1 -
- 6 files changed, 10 insertions(+), 107 deletions(-)
- delete mode 100644 src/common/android/include/stab.h
-
-diff --git a/configure.ac b/configure.ac
-index 2223920..0e55cd9 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -73,7 +73,6 @@ AC_HEADER_STDC
- AC_SYS_LARGEFILE
- m4_include(m4/ax_pthread.m4)
- AX_PTHREAD
--AC_CHECK_HEADERS([a.out.h])
- 
- # Only build Linux client libs when compiling for Linux
- case $host in
-diff --git a/src/common/android/include/stab.h b/src/common/android/include/stab.h
-deleted file mode 100644
-index cd92902..0000000
---- a/src/common/android/include/stab.h
-+++ /dev/null
-@@ -1,100 +0,0 @@
--// Copyright (c) 2012, Google Inc.
--// All rights reserved.
--//
--// Redistribution and use in source and binary forms, with or without
--// modification, are permitted provided that the following conditions are
--// met:
--//
--//     * Redistributions of source code must retain the above copyright
--// notice, this list of conditions and the following disclaimer.
--//     * Redistributions in binary form must reproduce the above
--// copyright notice, this list of conditions and the following disclaimer
--// in the documentation and/or other materials provided with the
--// distribution.
--//     * Neither the name of Google Inc. nor the names of its
--// contributors may be used to endorse or promote products derived from
--// this software without specific prior written permission.
--//
--// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
--// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
--// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
--// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
--// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
--// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
--// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
--// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
--// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
--// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
--// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--
--#ifndef GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H
--#define GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H
--
--#include <sys/cdefs.h>
--
--#ifdef __BIONIC_HAVE_STAB_H
--#include <stab.h>
--#else
--
--#ifdef __cplusplus
--extern "C" {
--#endif  // __cplusplus
--
--#define _STAB_CODE_LIST       \
--  _STAB_CODE_DEF(UNDF,0x00)   \
--  _STAB_CODE_DEF(GSYM,0x20)   \
--  _STAB_CODE_DEF(FNAME,0x22)  \
--  _STAB_CODE_DEF(FUN,0x24)    \
--  _STAB_CODE_DEF(STSYM,0x26)  \
--  _STAB_CODE_DEF(LCSYM,0x28)  \
--  _STAB_CODE_DEF(MAIN,0x2a)   \
--  _STAB_CODE_DEF(PC,0x30)     \
--  _STAB_CODE_DEF(NSYMS,0x32)  \
--  _STAB_CODE_DEF(NOMAP,0x34)  \
--  _STAB_CODE_DEF(OBJ,0x38)    \
--  _STAB_CODE_DEF(OPT,0x3c)    \
--  _STAB_CODE_DEF(RSYM,0x40)   \
--  _STAB_CODE_DEF(M2C,0x42)    \
--  _STAB_CODE_DEF(SLINE,0x44)  \
--  _STAB_CODE_DEF(DSLINE,0x46) \
--  _STAB_CODE_DEF(BSLINE,0x48) \
--  _STAB_CODE_DEF(BROWS,0x48)  \
--  _STAB_CODE_DEF(DEFD,0x4a)   \
--  _STAB_CODE_DEF(EHDECL,0x50) \
--  _STAB_CODE_DEF(MOD2,0x50)   \
--  _STAB_CODE_DEF(CATCH,0x54)  \
--  _STAB_CODE_DEF(SSYM,0x60)   \
--  _STAB_CODE_DEF(SO,0x64)     \
--  _STAB_CODE_DEF(LSYM,0x80)   \
--  _STAB_CODE_DEF(BINCL,0x82)  \
--  _STAB_CODE_DEF(SOL,0x84)    \
--  _STAB_CODE_DEF(PSYM,0xa0)   \
--  _STAB_CODE_DEF(EINCL,0xa2)  \
--  _STAB_CODE_DEF(ENTRY,0xa4)  \
--  _STAB_CODE_DEF(LBRAC,0xc0)  \
--  _STAB_CODE_DEF(EXCL,0xc2)   \
--  _STAB_CODE_DEF(SCOPE,0xc4)  \
--  _STAB_CODE_DEF(RBRAC,0xe0)  \
--  _STAB_CODE_DEF(BCOMM,0xe2)  \
--  _STAB_CODE_DEF(ECOMM,0xe4)  \
--  _STAB_CODE_DEF(ECOML,0xe8)  \
--  _STAB_CODE_DEF(NBTEXT,0xf0) \
--  _STAB_CODE_DEF(NBDATA,0xf2) \
--  _STAB_CODE_DEF(NBBSS,0xf4)  \
--  _STAB_CODE_DEF(NBSTS,0xf6)  \
--  _STAB_CODE_DEF(NBLCS,0xf8)  \
--  _STAB_CODE_DEF(LENG,0xfe)
--
--enum __stab_debug_code {
--#define _STAB_CODE_DEF(x,y)  N_##x = y,
--_STAB_CODE_LIST
--#undef _STAB_CODE_DEF
--};
--
--#ifdef __cplusplus
--}  // extern "C"
--#endif  // __cplusplus
--
--#endif  // __BIONIC_HAVE_STAB_H
--
--#endif  // GOOGLE_BREAKPAD_COMMON_ANDROID_INCLUDE_STAB_H
-diff --git a/src/common/common.gyp b/src/common/common.gyp
-index f01ede5..c49ff85 100644
---- a/src/common/common.gyp
-+++ b/src/common/common.gyp
-@@ -46,7 +46,6 @@
-         'android/include/elf.h',
-         'android/include/link.h',
-         'android/include/sgidefs.h',
--        'android/include/stab.h',
-         'android/include/sys/procfs.h',
-         'android/include/sys/signal.h',
-         'android/include/sys/user.h',
-diff --git a/src/common/stabs_reader.cc b/src/common/stabs_reader.cc
-index 6019fc7..9562caa 100644
---- a/src/common/stabs_reader.cc
-+++ b/src/common/stabs_reader.cc
-@@ -34,7 +34,6 @@
- #include "common/stabs_reader.h"
- 
- #include <assert.h>
--#include <stab.h>
- #include <string.h>
- 
- #include <string>
-diff --git a/src/common/stabs_reader.h b/src/common/stabs_reader.h
-index d89afc0..591f007 100644
---- a/src/common/stabs_reader.h
-+++ b/src/common/stabs_reader.h
-@@ -53,12 +53,19 @@
- #include <config.h>
- #endif
- 
--#ifdef HAVE_A_OUT_H
--#include <a.out.h>
--#endif
- #ifdef HAVE_MACH_O_NLIST_H
- #include <mach-o/nlist.h>
- #endif
-+// Definitions from <stab.h> and <a.out.h> for systems which
-+// do not have them
-+#undef N_UNDF
-+#define N_UNDF 0x0
-+#define N_FUN 0x24
-+#define N_SLINE 0x44
-+#define N_SO 0x64
-+#define N_LSYM 0x80
-+#define N_BINCL 0x82
-+#define N_SOL 0x84
- 
- #include <string>
- #include <vector>
-diff --git a/src/common/stabs_reader_unittest.cc b/src/common/stabs_reader_unittest.cc
-index a84da1c..854ac42 100644
---- a/src/common/stabs_reader_unittest.cc
-+++ b/src/common/stabs_reader_unittest.cc
-@@ -33,7 +33,6 @@
- 
- #include <assert.h>
- #include <errno.h>
--#include <stab.h>
- #include <stdarg.h>
- #include <stdlib.h>
- #include <string.h>
--- 
-2.0.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
index 5f6d82c..d9773c9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
@@ -41,6 +41,7 @@
            file://0005-md2core-Replace-basename.patch \
            file://0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch \
            file://mcontext.patch \
+           file://0001-disable-calls-to-getcontext-with-musl.patch \
            file://0001-lss-Match-syscalls-to-match-musl.patch;patchdir=src/third_party/lss \
            file://mips_asm_sgidefs.patch;patchdir=src/third_party/lss \
 "
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch
index d3bfab7..9e5058f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/concurrencykit/concurrencykit/cross.patch
@@ -1,8 +1,16 @@
-Index: git/configure
-===================================================================
---- git.orig/configure	2012-11-19 21:07:51.917429465 -0800
-+++ git/configure	2012-11-19 21:13:19.337437278 -0800
-@@ -439,14 +442,18 @@
+From ab0eec78382bd00ce533aec2c84fd50c1733033d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 5 Jan 2013 19:42:51 -0800
+
+---
+ configure | 32 ++++++++++++++++++--------------
+ 1 file changed, 18 insertions(+), 14 deletions(-)
+
+diff --git a/configure b/configure
+index 76c2812..78ce2ff 100755
+--- a/configure
++++ b/configure
+@@ -535,14 +535,18 @@ else
  	GZIP_SUFFIX=".gz"
  fi
  
@@ -25,12 +33,16 @@
 +	cat << EOF > .1.c
  #include <stdio.h>
  int main(void) {
- #if defined(__GNUC__) && (__GNUC__ >= 4)
-@@ -569,16 +576,16 @@
+ #if defined(_WIN32)
+@@ -569,16 +573,16 @@ int main(void) {
  #endif
  }
  EOF
--
++	$CC -o .1 .1.c
++	COMPILER=`./.1`
++	r=$?
++	rm -f .1.c .1
+ 
 -$CC -o .1 .1.c
 -COMPILER=`./.1`
 -r=$?
@@ -40,11 +52,6 @@
 -	assert "" "update compiler"
 -else
 -	echo "success [$CC]"
-+	$CC -o .1 .1.c
-+	COMPILER=`./.1`
-+	r=$?
-+	rm -f .1.c .1
-+
 +	if test "$r" -ne 0; then
 +		assert "" "update compiler"
 +	else
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/cppunit_1.13.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/cppunit_1.13.2.bb
deleted file mode 100644
index 65b08b0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/cppunit_1.13.2.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "CppUnit is the C++ port of the famous JUnit framework for unit testing. Test output is in XML for automatic testing and GUI based for supervised tests. "
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/cppunit"
-LICENSE = "LGPL-2.1"
-SECTION = "libs"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
-SRC_URI = " \
-    http://dev-www.libreoffice.org/src/cppunit-${PV}.tar.gz \
-    file://0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch \
-"
-SRC_URI[md5sum] = "d1c6bdd5a76c66d2c38331e2d287bc01"
-SRC_URI[sha256sum] = "3f47d246e3346f2ba4d7c9e882db3ad9ebd3fcbd2e8b732f946e0e3eeb9f429f"
-
-inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch
deleted file mode 100644
index 6a20c12..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9d7ce869607d123cd9837890d71f940c5ced3393 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Mon, 29 Feb 2016 07:58:20 +0100
-Subject: [PATCH] doc/Makefile.am: do not preserve file flags when copying
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Inappropriate [cross specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- doc/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/doc/Makefile.am b/doc/Makefile.am
-index 8815476..3237499 100644
---- a/doc/Makefile.am
-+++ b/doc/Makefile.am
-@@ -22,7 +22,7 @@ htmldir += $(pkgdatadir)/html
- html_DATA += $(static_pages) html/index.html
- 
- install-data-hook:
--	cp -pR html/* $(DESTDIR)$(htmldir)
-+	cp -R html/* $(DESTDIR)$(htmldir)
- 
- # Automake's "distcheck" is sensitive to having files left over
- # after "make uninstall", so we have to clean up the install hook.
--- 
-2.5.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20170122.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20170122.bb
new file mode 100644
index 0000000..7a70f75
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cpuid/cpuid_20170122.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Linux tool to dump x86 CPUID information about the CPU(s)"
+DESCRIPTION = "cpuid dumps detailed information about the CPU(s) gathered \
+from the CPUID instruction, and also determines the exact model of CPU(s). \
+It supports Intel, AMD, and VIA CPUs, as well as older Transmeta, Cyrix, \
+UMC, NexGen, Rise, and SiS CPUs"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "http://www.etallen.com/${BPN}/${BP}.src.tar.gz"
+SRC_URI[md5sum] = "1c46a6662626c5a6eaca626f23a5a7d7"
+SRC_URI[sha256sum] = "667612aae6704341dd10844e97c84c5c5c8700817a5937a3c293b55013bc4865"
+
+COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
+
+# The install rule from the Makefile has hardcoded paths, so we duplicate
+# the actions to accommodate different paths.
+do_install () {
+    install -d -m755 ${D}/${bindir}
+    install -m755 ${B}/cpuid ${D}/${bindir}/cpuid
+    install -d -m755 ${D}/${mandir}
+    install -m444 ${B}/cpuid.man.gz ${D}/${mandir}
+}
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/cunit_2.1-3.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/cunit_2.1-3.bb
deleted file mode 100644
index c9d87e3..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/cunit_2.1-3.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "CUnit is a C framework for unit testing. Test output supports comandline and GUI results reporting"
-HOMEPAGE = "http://cunit.sourceforge.net"
-LICENSE = "LGPL-2.0"
-SECTION = "libs"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7734aa853b85d6f935466f081490ddbb"
-
-S = "${WORKDIR}/CUnit-${PV}"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/cunit/CUnit/${PV}/CUnit-${PV}.tar.bz2 \
-    file://fixup-install-docdir.patch"
-SRC_URI[md5sum] = "b5f1a9f6093869c070c6e4a9450cc10c"
-SRC_URI[sha256sum] = "f5b29137f845bb08b77ec60584fdb728b4e58f1023e6f249a464efa49a40f214"
-
-inherit autotools-brokensep remove-libtool
-
-EXTRA_OECONF = "--enable-memtrace --enable-automated --enable-basic --enable-console"
-
-FILES_${PN}-dev += "${datadir}/CUnit"
-FILES_${PN}-doc += "${docdir}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/files/fixup-install-docdir.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/files/fixup-install-docdir.patch
deleted file mode 100644
index c328227..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cunit/files/fixup-install-docdir.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From: "Mike Holmes" <mike.holmes@linaro.org>
-Date: Thu, 30 October 2014 16:21:03 -0500
-Subject: [PATCH] fixup-install-docdir
-
-The default configuration macros for CUnit install the documentation and
-header files in locations not consistent with the OE filesystem layout.
-So here we specify new locations which are consistent with OE filesystems.
-
-Upstream-Status: Inappropriate - configuration for OE build environment
-
-Signed-off-by: Mike Holmes <mike.holmes@linaro.org>
-Signed-off-by: Gary S. Robertson <gary.robertson@linaro.org>
----
-
-diff -uNr a/doc/headers/Makefile.am b/doc/headers/Makefile.am
---- a/doc/headers/Makefile.am	2014-10-30 22:06:29.704574162 +0100
-+++ b/doc/headers/Makefile.am	2014-10-30 22:07:43.578524791 +0100
-@@ -1,6 +1,6 @@
- ## Process this file with automake to produce Makefile.in
- 
--dochdrdir = $(prefix)/doc/@PACKAGE@/headers
-+dochdrdir = $(docdir)/headers
- 
- INCLUDE_FILES = \
- 	Automated.h \
-diff -uNr a/doc/Makefile.am b/doc/Makefile.am
---- a/doc/Makefile.am	2014-10-30 22:06:29.704574162 +0100
-+++ b/doc/Makefile.am	2014-10-30 22:07:01.461412166 +0100
-@@ -1,7 +1,5 @@
- ## Process this file with automake to produce Makefile.in
- 
--docdir = $(prefix)/doc/@PACKAGE@
--
- doc_DATA = \
- 	CUnit_doc.css \
- 	error_handling.html \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cxxtest/cxxtest_4.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cxxtest/cxxtest_4.3.bb
deleted file mode 100644
index 2915011..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cxxtest/cxxtest_4.3.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "CxxTest is a unit testing framework for C++ that is similar in spirit to JUnit, CppUnit, and xUnit."
-HOMEPAGE = "http://cxxtest.com/"
-LICENSE = "LGPL-2.0"
-SECTION = "devel"
-
-SRC_URI = "http://downloads.sourceforge.net/project/cxxtest/cxxtest/${PV}/cxxtest-${PV}.tar.gz"
-SRC_URI[md5sum] = "b3a24b3e1aad9acf6adac37f4c3f83ec"
-SRC_URI[sha256sum] = "356d0f4810e8eb5c344147a0cca50fc0d84122c286e7644b61cb365c2ee22083"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/cxxtest-${PV}/COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
-S = "${WORKDIR}/cxxtest-${PV}/python"
-
-inherit distutils
-
-do_install_append() {
-    install -d ${D}${includedir}
-    cp -a ../cxxtest ${D}${includedir}
-    sed '1c\
-#!/usr/bin/env python' -i ${D}${bindir}/cxxtestgen
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.7.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.9.0.bb
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.7.1.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.9.0.bb
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb
index 27fe860..d8f2f89 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb
@@ -11,6 +11,7 @@
 }
 
 DEPENDS = " \
+    fribidi \
     geany \
     libxml2 \
     libsoup-2.4 \
@@ -22,7 +23,9 @@
     libgit2 \
 "
 
-inherit autotools pkgconfig gtk-icon-cache
+inherit distro_features_check autotools pkgconfig gtk-icon-cache
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 SRC_URI = "http://plugins.geany.org/${PN}/${PN}-${PV}.tar.bz2"
 SRC_URI[md5sum] = "808f9048b77fd9704569ed2ba12a56e9"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb
index ce36e1e..bb9d8bc 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb
@@ -5,7 +5,9 @@
 
 DEPENDS = "gtk+ libxml-parser-perl-native python3-docutils-native intltool-native"
 
-inherit autotools pkgconfig perlnative pythonnative gettext
+inherit distro_features_check autotools pkgconfig perlnative pythonnative gettext
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 SRC_URI = "http://download.geany.org/${BP}.tar.bz2"
 SRC_URI[md5sum] = "386000be6b26972c6a699939c37cda34"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch
deleted file mode 100644
index 03cb762..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From fcf29abe59607b5791f9de18ddb86b9ae3c9b7cc Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 26 Aug 2017 23:50:05 -0700
-Subject: [PATCH] Add G_GNUC_PRINTF on functions with format strings
-
-This allows compilation with clang without errors, even when
--Wformat-nonliteral is active (as long as there are no real cases of
-non literal formatting).
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gladeui/glade-command.c | 4 ++--
- gladeui/glade-utils.c   | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/gladeui/glade-command.c b/gladeui/glade-command.c
-index 9819766..4ac40ee 100644
---- a/gladeui/glade-command.c
-+++ b/gladeui/glade-command.c
-@@ -266,7 +266,7 @@ glade_command_collapse (GladeCommand  *command,
-  *
-  * Marks the begining of a group.
-  */
--void
-+G_GNUC_PRINTF(1, 2) void
- glade_command_push_group (const gchar *fmt, ...)
- {
- 	va_list         args;
-@@ -655,7 +655,7 @@ glade_command_set_properties_list (GladeProject *project, GList *props)
- 
- 	multiple = g_list_length (me->sdata) > 1;
- 	if (multiple)
--		glade_command_push_group (cmd->description);
-+		glade_command_push_group ("%s", cmd->description);
- 
- 
- 	glade_command_check_group (GLADE_COMMAND (me));
-diff --git a/gladeui/glade-utils.c b/gladeui/glade-utils.c
-index ae52501..c51ae59 100644
---- a/gladeui/glade-utils.c
-+++ b/gladeui/glade-utils.c
-@@ -197,7 +197,7 @@ glade_utils_get_pspec_from_funcname (const gchar *funcname)
-  *          selected "OK", True if the @type was GLADE_UI_YES_OR_NO and
-  *          the user selected "YES"; False otherwise.
-  */
--gint
-+G_GNUC_PRINTF(4, 5) gint
- glade_util_ui_message (GtkWidget           *parent, 
- 		       GladeUIMessageType   type,
- 		       GtkWidget           *widget,
-@@ -320,7 +320,7 @@ remove_message_timeout (FlashInfo * fi)
-  *
-  * Flash a temporary message on the statusbar.
-  */
--void
-+G_GNUC_PRINTF(3, 4) void
- glade_util_flash_message (GtkWidget *statusbar, guint context_id, gchar *format, ...)
- {
- 	va_list args;
--- 
-2.14.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch
deleted file mode 100644
index 1b24c39..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From aed002cd9ff9e8f972120fbac33b4a65aba952e1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Tue, 25 Sep 2012 10:28:33 +0200
-Subject: [PATCH] gnome-doc-utils.make: sysrooted pkg-config
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-same approach as used used in gnome-disk-utility:
-
-In cross environment we have to prepend the sysroot to the path found by
-pkgconfig since the path returned from pkgconfig does not have sysroot prefixed
-it ends up using the files from host system. Now usually people have gnome installed
-so the build succeeds but if you dont have gnome installed on build host then
-it wont find the files on host system and packages using gnome-doc-utils wont
-compile.
-
-This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR
-will be empty
-
-Upstream-Status: pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- gnome-doc-utils.make |   10 +++++-----
- 1 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/gnome-doc-utils.make b/gnome-doc-utils.make
-index 42d9df3..f71bbfa 100644
---- a/gnome-doc-utils.make
-+++ b/gnome-doc-utils.make
-@@ -133,11 +133,11 @@ _DOC_ABS_SRCDIR = @abs_srcdir@
- _xml2po ?= `which xml2po`
- _xml2po_mode = $(if $(DOC_ID),mallard,docbook)
- 
--_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils`
--_db2omf  ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
--_chunks  ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
--_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
--_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl
-+_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils`
-+_db2omf  ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
-+_chunks  ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
-+_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
-+_ids ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl
- 
- if ENABLE_SK
- _ENABLE_SK = true
--- 
-1.7.6.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch
deleted file mode 100644
index f735ff8..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 5aa3d2abb905fa8594f6c6572a87809da54c9342 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Mon, 5 Sep 2016 11:25:27 +0200
-Subject: [PATCH] fix gcc-6 build
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- gladeui/glade-editor-property.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/gladeui/glade-editor-property.c b/gladeui/glade-editor-property.c
-index a0c1039..5e9ac38 100644
---- a/gladeui/glade-editor-property.c
-+++ b/gladeui/glade-editor-property.c
-@@ -2703,6 +2703,8 @@ glade_eprop_object_view (gboolean             radio)
- }
- 
- 
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
- static gchar *
- glade_eprop_object_dialog_title (GladeEditorProperty *eprop)
- {
-@@ -2731,6 +2733,7 @@ glade_eprop_object_dialog_title (GladeEditorProperty *eprop)
- 	return g_strdup_printf (format, g_type_name 
- 				(eprop->klass->pspec->value_type));
- }
-+#pragma GCC diagnostic pop
- 
- 
- gboolean
--- 
-2.5.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3_3.8.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3_3.8.5.bb
deleted file mode 100644
index c4f6000..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3_3.8.5.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Glade - A User Interface Designer"
-HOMEPAGE = "http://www.gnu.org/software/gnash"
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=aabe87591cb8ae0f3c68be6977bb5522 \
-                    file://COPYING.GPL;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
-                    file://COPYING.LGPL;md5=252890d9eee26aab7b432e8b8a616475"
-DEPENDS = "gtk+ gnome-doc-utils gnome-common libxml2 intltool-native"
-
-inherit autotools pkgconfig pythonnative gtk-icon-cache
-
-SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glade3/3.8/glade3-${PV}.tar.xz \
-           file://0001-gnome-doc-utils.make-sysrooted-pkg-config.patch \
-           file://0002-fix-gcc-6-build.patch \
-           file://0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch \
-           "
-SRC_URI[md5sum] = "4e4b4f5ee34a03e017e4cef97d796c1f"
-SRC_URI[sha256sum] = "58a5f6e4df4028230ddecc74c564808b7ec4471b1925058e29304f778b6b2735"
-
-EXTRA_OECONF += "--disable-scrollkeeper"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gnome] = "--enable-gnome,--disable-gnome,libbonoboui libgnomeui"
-
-FILES_${PN} += "${datadir}/icons"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.2.bb
similarity index 76%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.2.bb
index f33b6e3..95e1737 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.2.bb
@@ -9,13 +9,15 @@
 "
 
 
-inherit autotools pkgconfig gnomebase gobject-introspection
+inherit distro_features_check autotools pkgconfig gnomebase gobject-introspection
+
+REQUIRED_DISTRO_FEATURES = "x11"
 
 SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glade/3.20/glade-${PV}.tar.xz \
            file://remove-yelp-help-rules-var.patch \
           "
-SRC_URI[md5sum] = "9964a2da14c5f845eae363889586ca43"
-SRC_URI[sha256sum] = "82d96dca5dec40ee34e2f41d49c13b4ea50da8f32a3a49ca2da802ff14dc18fe"
+SRC_URI[md5sum] = "d3dd9ba33c7d7c854ab207e1ba844dda"
+SRC_URI[sha256sum] = "07d1545570951aeded20e9fdc6d3d8a56aeefe2538734568c5335be336c6abed"
 
 EXTRA_OECONF += "--disable-man-pages"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch
new file mode 100644
index 0000000..5774e62
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch
@@ -0,0 +1,68 @@
+From cc6dbabea0e452ebc93682df860a79ed9a45722e Mon Sep 17 00:00:00 2001
+From: Alexey Firago <alexey_firago@mentor.com>
+Date: Fri, 20 Oct 2017 00:04:19 +0300
+Subject: [PATCH] CMakeLists.txt: Fix grpc_cpp_plugin path during
+ cross-compilation
+
+Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
+---
+ CMakeLists.txt                    | 9 ++++++++-
+ templates/CMakeLists.txt.template | 9 ++++++++-
+ 2 files changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index f9cd630..9663934 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -328,6 +328,13 @@ function(protobuf_generate_grpc_cpp)
+     return()
+   endif()
+
++  #if cross-compiling, find host plugin
++  if(CMAKE_CROSSCOMPILING)
++      find_program(gRPC_CPP_PLUGIN grpc_cpp_plugin)
++  else()
++      set(gRPC_CPP_PLUGIN $<TARGET_FILE:grpc_cpp_plugin>)
++  endif()
++
+   set(_protobuf_include_path -I . -I ${PROTOBUF_WELLKNOWN_IMPORT_DIR})
+   foreach(FIL ${ARGN})
+     get_filename_component(ABS_FIL ${FIL} ABSOLUTE)
+@@ -345,7 +352,7 @@ function(protobuf_generate_grpc_cpp)
+       COMMAND ${_gRPC_PROTOBUF_PROTOC_EXECUTABLE}
+       ARGS --grpc_out=generate_mock_code=true:${_gRPC_PROTO_GENS_DIR}
+            --cpp_out=${_gRPC_PROTO_GENS_DIR}
+-           --plugin=protoc-gen-grpc=$<TARGET_FILE:grpc_cpp_plugin>
++           --plugin=protoc-gen-grpc=${gRPC_CPP_PLUGIN}
+            ${_protobuf_include_path}
+            ${REL_FIL}
+       DEPENDS ${ABS_FIL} ${_gRPC_PROTOBUF_PROTOC} grpc_cpp_plugin
+diff --git a/templates/CMakeLists.txt.template b/templates/CMakeLists.txt.template
+index 64daf04..a7e8629 100644
+--- a/templates/CMakeLists.txt.template
++++ b/templates/CMakeLists.txt.template
+@@ -373,6 +373,13 @@
+       return()
+     endif()
+
++    #if cross-compiling, find host plugin
++    if(CMAKE_CROSSCOMPILING)
++        find_program(gRPC_CPP_PLUGIN grpc_cpp_plugin)
++    else()
++        set(gRPC_CPP_PLUGIN $<TARGET_FILE:grpc_cpp_plugin>)
++    endif()
++
+     set(_protobuf_include_path -I . -I <%text>${PROTOBUF_WELLKNOWN_IMPORT_DIR}</%text>)
+     foreach(FIL <%text>${ARGN}</%text>)
+       get_filename_component(ABS_FIL <%text>${FIL}</%text> ABSOLUTE)
+@@ -390,7 +397,7 @@
+         COMMAND <%text>${_gRPC_PROTOBUF_PROTOC_EXECUTABLE}</%text>
+         ARGS --grpc_out=<%text>generate_mock_code=true:${_gRPC_PROTO_GENS_DIR}</%text>
+              --cpp_out=<%text>${_gRPC_PROTO_GENS_DIR}</%text>
+-             --plugin=protoc-gen-grpc=$<TARGET_FILE:grpc_cpp_plugin>
++             --plugin=protoc-gen-grpc=${gRPC_CPP_PLUGIN}
+              <%text>${_protobuf_include_path}</%text>
+              <%text>${REL_FIL}</%text>
+         DEPENDS <%text>${ABS_FIL}</%text> <%text>${_gRPC_PROTOBUF_PROTOC}</%text> grpc_cpp_plugin
+--
+2.7.4
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
new file mode 100644
index 0000000..f8d9652
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
@@ -0,0 +1,166 @@
+From 8e9bf962a45a82f1c2eb5858e29fa89a3a60b564 Mon Sep 17 00:00:00 2001
+From: Alexey Firago <alexey_firago@mentor.com>
+Date: Mon, 30 Oct 2017 23:24:49 +0300
+Subject: [PATCH 1/4] CMakeLists.txt: Fix libraries installation for Linux
+
+* Set libs versions as in Makefile
+
+Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
+
+%% original patch: 0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
+---
+ CMakeLists.txt                        | 55 +++++++++++++++++++++++++++++++++++
+ CMakeLists.txt => CMakeLists.txt.orig |  0
+ 2 files changed, 55 insertions(+)
+ copy CMakeLists.txt => CMakeLists.txt.orig (100%)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b1a49df..13e64ac 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -30,6 +30,15 @@ set(PACKAGE_TARNAME   "${PACKAGE_NAME}-${PACKAGE_VERSION}")
+ set(PACKAGE_BUGREPORT "https://github.com/grpc/grpc/issues/")
+ project(${PACKAGE_NAME} C CXX)
+ 
++set (CORE_VERSION_MAJOR "4")
++set (CORE_VERSION "4.0.0")
++
++set (CPP_VERSION_MAJOR "1")
++set (CPP_VERSION "${PACKAGE_VERSION}")
++
++set (CSHARP_VERSION_MAJOR "1")
++set (CSHARP_VERSION "${PACKAGE_VERSION}")
++
+ set(gRPC_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
+ set(gRPC_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
+ set(gRPC_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
+@@ -841,6 +850,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET gpr PROPERTY VERSION ${CORE_VERSION})
++  set_property(TARGET gpr PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(gpr
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -1221,6 +1234,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc PROPERTY VERSION ${CORE_VERSION})
++  set_property(TARGET grpc PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -1535,6 +1552,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc_cronet PROPERTY VERSION ${CORE_VERSION})
++  set_property(TARGET grpc_cronet PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc_cronet
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -2377,6 +2398,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc_unsecure PROPERTY VERSION ${CORE_VERSION})
++  set_property(TARGET grpc_unsecure PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc_unsecure
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -2592,6 +2617,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc++ PROPERTY VERSION ${CPP_VERSION})
++  set_property(TARGET grpc++ PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc++
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -3078,6 +3107,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc++_cronet PROPERTY VERSION ${CPP_VERSION})
++  set_property(TARGET grpc++_cronet PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc++_cronet
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -3282,6 +3315,11 @@ protobuf_generate_grpc_cpp(
+   src/proto/grpc/status/status.proto
+ )
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc++_error_details PROPERTY VERSION ${CPP_VERSION})
++  set_property(TARGET grpc++_error_details PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
++
+ target_include_directories(grpc++_error_details
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+   PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+@@ -3408,6 +3446,11 @@ protobuf_generate_grpc_cpp(
+   src/proto/grpc/reflection/v1alpha/reflection.proto
+ )
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc++_reflection PROPERTY VERSION ${CPP_VERSION})
++  set_property(TARGET grpc++_reflection PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
++
+ target_include_directories(grpc++_reflection
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+   PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+@@ -3827,6 +3870,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc++_unsecure PROPERTY VERSION ${CPP_VERSION})
++  set_property(TARGET grpc++_unsecure PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc++_unsecure
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -4140,6 +4187,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc_plugin_support PROPERTY VERSION ${CORE_VERSION})
++  set_property(TARGET grpc_plugin_support PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc_plugin_support
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+@@ -4649,6 +4700,10 @@ if(WIN32 AND MSVC)
+   endif()
+ endif()
+ 
++if(_gRPC_PLATFORM_LINUX)
++  set_property(TARGET grpc_csharp_ext PROPERTY VERSION ${CSHARP_VERSION})
++  set_property(TARGET grpc_csharp_ext PROPERTY SOVERSION ${CSHARP_VERSION_MAJOR})
++endif()
+ 
+ target_include_directories(grpc_csharp_ext
+   PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+diff --git a/CMakeLists.txt b/CMakeLists.txt.orig
+similarity index 100%
+copy from CMakeLists.txt
+copy to CMakeLists.txt.orig
+-- 
+2.16.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch
new file mode 100644
index 0000000..8985022
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch
@@ -0,0 +1,42 @@
+From a498b56ba96948015f0f2784b2ab8296946716ee Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 1 Feb 2018 23:28:17 -0800
+Subject: [PATCH 4/4] CMakeLists.txt: Find c-ares in target sysroot alone
+
+Current code lets it look into native sysroot as well
+which is then preferred during cross compile and it adds
+absolute path to libcares into linker flags
+on heterogenous architectures linker complains and build
+fails
+
+| /mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-gnueabi/grpc/1.8.5-r0/recipe-sysroot-native/usr/lib/lib
+cares.so.2.2.0: file not recognized: File format not recognized
+| collect2: error: ld returned 1 exit status
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1d7eef1..058423d 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -153,10 +153,8 @@ if("${gRPC_CARES_PROVIDER}" STREQUAL "module")
+     set(gRPC_INSTALL FALSE)
+   endif()
+ elseif("${gRPC_CARES_PROVIDER}" STREQUAL "package")
+-  find_package(c-ares REQUIRED CONFIG)
+-  if(TARGET c-ares::cares)
+-    set(_gRPC_CARES_LIBRARIES c-ares::cares)
+-  endif()
++  find_package(c-ares REQUIRED)
++  set(_gRPC_CARES_LIBRARIES cares)
+   set(_gRPC_FIND_CARES "if(NOT c-ares_FOUND)\n  find_package(c-ares CONFIG)\nendif()")
+ endif()
+ 
+-- 
+2.16.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.8.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.8.5.bb
new file mode 100644
index 0000000..0883ec1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/grpc/grpc_1.8.5.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "A high performance, open source, general-purpose RPC framework. \
+Provides gRPC libraries for multiple languages written on top of shared C core library \
+(C++, Node.js, Python, Ruby, Objective-C, PHP, C#)"
+HOMEPAGE = "https://github.com/grpc/grpc"
+SECTION = "libs"
+LICENSE = "Apache-2"
+
+DEPENDS = "gflags c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl"
+DEPENDS_append_class-target = " gtest grpc-native "
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI = "https://github.com/grpc/grpc/archive/v${PV}.tar.gz \
+           file://0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch \
+           file://0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch \
+           "
+SRC_URI[md5sum] = "b565fa6787e42f4969395870c2ad436e"
+SRC_URI[sha256sum] = "df9168da760fd2ee970c74c9d1b63377e0024be248deaa844e784d0df47599de"
+
+SRC_URI_append_class-target = " file://0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch"
+
+inherit cmake
+
+EXTRA_OECMAKE = " \
+    -DgRPC_CARES_PROVIDER=package \
+    -DgRPC_ZLIB_PROVIDER=package \
+    -DgRPC_SSL_PROVIDER=package \
+    -DgRPC_PROTOBUF_PROVIDER=package \
+    -DgRPC_GFLAGS_PROVIDER=package \
+    -DgRPC_INSTALL=1 \
+    -DBUILD_SHARED_LIBS=ON \
+    "
+
+FILES_${PN}-dev += "${libdir}/cmake"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.4.bb
similarity index 92%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.3.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.4.bb
index b7a02ef..88e3320 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.4.bb
@@ -11,7 +11,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=fa2a23dd1dc6c139f35105379d76df2b"
 
-SRCREV = "2de18021fcb11370e9b5a1fbe7dcfd673533a134"
+SRCREV = "ddabf50f72cf369bf652a95c4d9fe31a1865a781"
 SRC_URI = "git://github.com/open-source-parsers/jsoncpp"
 
 S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb
index 43eff72..267c0e7 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb
@@ -50,3 +50,5 @@
 FILES_${PN}-dev += "${datadir}/cmake/Modules/FindLibRcf.cmake"
 
 BBCLASSEXTEND = "nativesdk"
+
+PNBLACKLIST[librcf] = " error: invalid use of incomplete type 'RCF::AsioIoService {aka class boost::asio::io_service}; among others?" 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
index 73c3811..1d69b3c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
@@ -53,6 +53,7 @@
     \
     'PREFIX=${prefix}' \
     'MULTILIB=${baselib}' \
+    'LDCONFIG=:' \
 "
 
 do_compile () {
@@ -90,3 +91,5 @@
 "
 FILES_luajit-common = "${datadir}/${BPN}-${PV}"
 
+# Aarch64 is not supported in this release 
+COMPATIBLE_HOST = "^(?!aarch64).*"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/files/mercurial-CVE-2017-9462.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/files/mercurial-CVE-2017-9462.patch
deleted file mode 100644
index 3564661..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/files/mercurial-CVE-2017-9462.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-# HG changeset patch
-# User Augie Fackler <augie@google.com>
-# Date 1492021435 25200
-#      Wed Apr 12 11:23:55 2017 -0700
-# Branch stable
-# Node ID 77eaf9539499a1b8be259ffe7ada787d07857f80
-# Parent  68f263f52d2e3e2798b4f1e55cb665c6b043f93b
-dispatch: protect against malicious 'hg serve --stdio' invocations (sec)
-
-Some shared-ssh installations assume that 'hg serve --stdio' is a safe
-command to run for minimally trusted users. Unfortunately, the messy
-implementation of argument parsing here meant that trying to access a
-repo named '--debugger' would give the user a pdb prompt, thereby
-sidestepping any hoped-for sandboxing. Serving repositories over HTTP(S)
-is unaffected.
-
-We're not currently hardening any subcommands other than 'serve'. If
-your service exposes other commands to users with arbitrary repository
-names, it is imperative that you defend against repository names of
-'--debugger' and anything starting with '--config'.
-
-The read-only mode of hg-ssh stopped working because it provided its hook
-configuration to "hg serve --stdio" via --config parameter. This is banned for
-security reasons now. This patch switches it to directly call ui.setconfig().
-If your custom hosting infrastructure relies on passing --config to
-"hg serve --stdio", you'll need to find a different way to get that configuration
-into Mercurial, either by using ui.setconfig() as hg-ssh does in this patch,
-or by placing an hgrc file someplace where Mercurial will read it.
-
-mitrandir@fb.com provided some extra fixes for the dispatch code and
-for hg-ssh in places that I overlooked.
-
-CVE: CVE-2017-9462
-
-Upstream-Status: Backport
-
-diff --git a/contrib/hg-ssh b/contrib/hg-ssh
---- a/contrib/hg-ssh
-+++ b/contrib/hg-ssh
-@@ -32,7 +32,7 @@
- # enable importing on demand to reduce startup time
- from mercurial import demandimport; demandimport.enable()
- 
--from mercurial import dispatch
-+from mercurial import dispatch, ui as uimod
- 
- import sys, os, shlex
- 
-@@ -61,14 +61,15 @@
-         repo = os.path.normpath(os.path.join(cwd, os.path.expanduser(path)))
-         if repo in allowed_paths:
-             cmd = ['-R', repo, 'serve', '--stdio']
-+            req = dispatch.request(cmd)
-             if readonly:
--                cmd += [
--                    '--config',
--                    'hooks.pretxnopen.hg-ssh=python:__main__.rejectpush',
--                    '--config',
--                    'hooks.prepushkey.hg-ssh=python:__main__.rejectpush'
--                    ]
--            dispatch.dispatch(dispatch.request(cmd))
-+                if not req.ui:
-+                    req.ui = uimod.ui.load()
-+                req.ui.setconfig('hooks', 'pretxnopen.hg-ssh',
-+                                 'python:__main__.rejectpush', 'hg-ssh')
-+                req.ui.setconfig('hooks', 'prepushkey.hg-ssh',
-+                                 'python:__main__.rejectpush', 'hg-ssh')
-+            dispatch.dispatch(req)
-         else:
-             sys.stderr.write('Illegal repository "%s"\n' % repo)
-             sys.exit(255)
-diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
---- a/mercurial/dispatch.py
-+++ b/mercurial/dispatch.py
-@@ -155,6 +155,37 @@
-         pass # happens if called in a thread
- 
-     def _runcatchfunc():
-+        realcmd = None
-+        try:
-+            cmdargs = fancyopts.fancyopts(req.args[:], commands.globalopts, {})
-+            cmd = cmdargs[0]
-+            aliases, entry = cmdutil.findcmd(cmd, commands.table, False)
-+            realcmd = aliases[0]
-+        except (error.UnknownCommand, error.AmbiguousCommand,
-+                IndexError, getopt.GetoptError):
-+            # Don't handle this here. We know the command is
-+            # invalid, but all we're worried about for now is that
-+            # it's not a command that server operators expect to
-+            # be safe to offer to users in a sandbox.
-+            pass
-+        if realcmd == 'serve' and '--stdio' in cmdargs:
-+            # We want to constrain 'hg serve --stdio' instances pretty
-+            # closely, as many shared-ssh access tools want to grant
-+            # access to run *only* 'hg -R $repo serve --stdio'. We
-+            # restrict to exactly that set of arguments, and prohibit
-+            # any repo name that starts with '--' to prevent
-+            # shenanigans wherein a user does something like pass
-+            # --debugger or --config=ui.debugger=1 as a repo
-+            # name. This used to actually run the debugger.
-+            if (len(req.args) != 4 or
-+                req.args[0] != '-R' or
-+                req.args[1].startswith('--') or
-+                req.args[2] != 'serve' or
-+                req.args[3] != '--stdio'):
-+                raise error.Abort(
-+                    _('potentially unsafe serve --stdio invocation: %r') %
-+                    (req.args,))
-+
-         try:
-             debugger = 'pdb'
-             debugtrace = {
-diff --git a/tests/test-ssh.t b/tests/test-ssh.t
---- a/tests/test-ssh.t
-+++ b/tests/test-ssh.t
-@@ -357,6 +357,19 @@
-   abort: destination 'a repo' is not empty
-   [255]
- 
-+Make sure hg is really paranoid in serve --stdio mode. It used to be
-+possible to get a debugger REPL by specifying a repo named --debugger.
-+  $ hg -R --debugger serve --stdio
-+  abort: potentially unsafe serve --stdio invocation: ['-R', '--debugger', 'serve', '--stdio']
-+  [255]
-+  $ hg -R --config=ui.debugger=yes serve --stdio
-+  abort: potentially unsafe serve --stdio invocation: ['-R', '--config=ui.debugger=yes', 'serve', '--stdio']
-+  [255]
-+Abbreviations of 'serve' also don't work, to avoid shenanigans.
-+  $ hg -R narf serv --stdio
-+  abort: potentially unsafe serve --stdio invocation: ['-R', 'narf', 'serv', '--stdio']
-+  [255]
-+
- Test hg-ssh using a helper script that will restore PYTHONPATH (which might
- have been cleared by a hg.exe wrapper) and invoke hg-ssh with the right
- parameters:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial-native_4.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial-native_4.0.1.bb
deleted file mode 100644
index a08acd9..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial-native_4.0.1.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "The Mercurial distributed SCM"
-HOMEPAGE = "http://mercurial.selenic.com/"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "python-native"
-
-SRC_URI = "https://www.mercurial-scm.org/release/${BP}.tar.gz \
-           file://mercurial-CVE-2017-9462.patch \
-"
-SRC_URI[md5sum] = "22a9b1d7c0c06a53f0ae5b386d536d08"
-SRC_URI[sha256sum] = "6aa4ade93c1b5e11937820880a466ebf1c824086d443cd799fc46e2617250d40"
-
-S = "${WORKDIR}/mercurial-${PV}"
-
-inherit native
-
-EXTRA_OEMAKE = "STAGING_LIBDIR=${STAGING_LIBDIR} STAGING_INCDIR=${STAGING_INCDIR} \
-    PREFIX=${prefix}"
-
-do_configure_append () {
-    sed -i -e 's:PYTHON=python:PYTHON=${STAGING_BINDIR_NATIVE}/python-native/python:g' ${S}/Makefile
-}
-
-do_install () {
-    oe_runmake -e install-bin DESTDIR=${D} PREFIX=${prefix}
-}
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_4.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_4.4.bb
new file mode 100644
index 0000000..9052497
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mercurial/mercurial_4.4.bb
@@ -0,0 +1,31 @@
+SUMMARY = "The Mercurial distributed SCM"
+HOMEPAGE = "http://mercurial.selenic.com/"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "python python-native"
+DEPENDS_class-native = "python-native"
+RDEPENDS_${PN} = "python python-modules"
+
+inherit python-dir
+
+SRC_URI = "https://www.mercurial-scm.org/release/${BP}.tar.gz"
+SRC_URI[md5sum] = "c1d9fad1b7ed7077b0d4ae82e71154db"
+SRC_URI[sha256sum] = "234af4a67565c85923b0a1910c704ab44bcf12f69b85532687208776563d87de"
+
+S = "${WORKDIR}/mercurial-${PV}"
+
+BBCLASSEXTEND = "native"
+
+EXTRA_OEMAKE = "STAGING_LIBDIR=${STAGING_LIBDIR} STAGING_INCDIR=${STAGING_INCDIR} \
+    PREFIX=${prefix}"
+
+do_configure_append () {
+    sed -i -e 's:PYTHON=python:PYTHON=${STAGING_BINDIR_NATIVE}/python-native/python:g' ${S}/Makefile
+}
+
+do_install () {
+    oe_runmake -e install-bin DESTDIR=${D} PREFIX=${prefix}
+}
+
+FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson/native_bindir.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson/native_bindir.patch
deleted file mode 100644
index 993e975..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson/native_bindir.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-There are some discussions upstream to merge this patch, but I presonaly believe
-that is is OE only. https://github.com/mesonbuild/meson/issues/1849#issuecomment-303730323
-
-Upstream-Status: Inappropriate [OE specific]
-Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
-diff --git a/mesonbuild/dependencies.py b/mesonbuild/dependencies.py
-index 04a22f985941..3e33bc4a79e7 100644
---- a/mesonbuild/dependencies.py
-+++ b/mesonbuild/dependencies.py
-@@ -95,7 +95,7 @@ class Dependency:
-     def need_threads(self):
-         return False
- 
--    def get_pkgconfig_variable(self, variable_name):
-+    def get_pkgconfig_variable(self, variable_name, use_native=False):
-         raise MesonException('Tried to get a pkg-config variable from a non-pkgconfig dependency.')
- 
- class InternalDependency(Dependency):
-@@ -224,8 +224,12 @@ class PkgConfigDependency(Dependency):
-         return s.format(self.__class__.__name__, self.name, self.is_found,
-                         self.version_reqs)
- 
--    def _call_pkgbin(self, args):
--        p, out = Popen_safe([self.pkgbin] + args, env=os.environ)[0:2]
-+    def _call_pkgbin(self, args, use_native=False):
-+        if use_native:
-+            pkgbin = [self.pkgbin + "-native"]
-+        else:
-+            pkgbin = [self.pkgbin]
-+        p, out = Popen_safe(pkgbin + args, env=os.environ)[0:2]
-         return p.returncode, out.strip()
- 
-     def _set_cargs(self):
-@@ -259,8 +263,8 @@ class PkgConfigDependency(Dependency):
-                 self.is_libtool = True
-             self.libs.append(lib)
- 
--    def get_pkgconfig_variable(self, variable_name):
--        ret, out = self._call_pkgbin(['--variable=' + variable_name, self.name])
-+    def get_pkgconfig_variable(self, variable_name, use_native=False):
-+        ret, out = self._call_pkgbin(['--variable=' + variable_name, self.name], use_native=use_native)
-         variable = ''
-         if ret != 0:
-             if self.required:
-@@ -1091,7 +1095,7 @@ class QtBaseDependency(Dependency):
-         self.bindir = self.get_pkgconfig_host_bins(core)
-         if not self.bindir:
-             # If exec_prefix is not defined, the pkg-config file is broken
--            prefix = core.get_pkgconfig_variable('exec_prefix')
-+            prefix = core.get_pkgconfig_variable('exec_prefix', use_native=True)
-             if prefix:
-                 self.bindir = os.path.join(prefix, 'bin')
- 
-@@ -1202,7 +1206,7 @@ class Qt5Dependency(QtBaseDependency):
-         QtBaseDependency.__init__(self, 'qt5', env, kwargs)
- 
-     def get_pkgconfig_host_bins(self, core):
--        return core.get_pkgconfig_variable('host_bins')
-+        return core.get_pkgconfig_variable('host_bins', use_native=True)
- 
- class Qt4Dependency(QtBaseDependency):
-     def __init__(self, env, kwargs):
-@@ -1216,7 +1220,7 @@ class Qt4Dependency(QtBaseDependency):
-         applications = ['moc', 'uic', 'rcc', 'lupdate', 'lrelease']
-         for application in applications:
-             try:
--                return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application))
-+                return os.path.dirname(core.get_pkgconfig_variable('%s_location' % application, use_native=True))
-             except MesonException:
-                 pass
- 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.40.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.40.1.bb
deleted file mode 100644
index 14644ba..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.40.1.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-HOMEPAGE = "http://mesonbuild.com"
-SUMMARY = "A high performance build system"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI = " \
-    git://github.com/mesonbuild/meson.git \
-    file://native_bindir.patch \
-"
-
-SRCREV = "b25d3e4d3f2b4d37029a507cc089bdde643c6240"
-
-S = "${WORKDIR}/git"
-
-inherit setuptools3
-
-RDEPENDS_${PN} = "ninja python3-core python3-modules"
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.2.bb
index 4a2c377..51b313c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.2.bb
@@ -31,6 +31,11 @@
 inherit autotools-brokensep gettext
 
 do_configure_prepend() {
+    for d in confdb test/mpi/confdb src/openpa/confdb src/pm/hydra/confdb src/pm/hydra/tools/topo/hwloc/hwloc/config src/pm/hydra/mpl/confdb src/mpl/confdb src/mpi/romio/confdb;  do
+        install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/$d
+        install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/$d
+    done
+
     autoreconf --verbose --install --force -I . -I confdb/ -I maint/
     oe_runconf
     exit
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Fix-Werror-class-memaccess.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Fix-Werror-class-memaccess.patch
new file mode 100644
index 0000000..b0d772d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Fix-Werror-class-memaccess.patch
@@ -0,0 +1,35 @@
+From a05d92ae85024d0648f69f95307a1d3e8e51109c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 1 Apr 2018 19:55:38 -0700
+Subject: [PATCH] Fix -Werror=class-memaccess
+
+Casting to void* make gcc happy since its upset about
+object types and rightly so
+
+Fixes
+
+'void* memcpy(void*, const void*, size_t)' copying an object of non-trivial type 'struct msgpack::v2::object' from an array of 'const msgpack_object' {aka 'const struct msgpack_object'} [-Werror=class-memaccess]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted [https://github.com/msgpack/msgpack-c/pull/659]
+
+ include/msgpack/v1/object.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/msgpack/v1/object.hpp b/include/msgpack/v1/object.hpp
+index 64da8c53..9721f705 100644
+--- a/include/msgpack/v1/object.hpp
++++ b/include/msgpack/v1/object.hpp
+@@ -661,7 +661,7 @@ inline object::object(const msgpack_object& o)
+ inline void operator<< (msgpack::object& o, const msgpack_object& v)
+ {
+     // FIXME beter way?
+-    std::memcpy(&o, &v, sizeof(v));
++    std::memcpy(static_cast<void*>(&o), &v, sizeof(v));
+ }
+ 
+ inline object::operator msgpack_object() const
+-- 
+2.16.3
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
index d9f6956..02c0cd2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
@@ -9,9 +9,10 @@
 
 PV .= "+git${SRCPV}"
 
-SRCREV = "7a98138f27f27290e680bf8fbf1f8d1b089bf138"
+SRCREV = "208595b2620cf6260ce3d6d4cf8543f13b206449"
 
 SRC_URI = "git://github.com/msgpack/msgpack-c \
+           file://0001-Fix-Werror-class-memaccess.patch \
            "
 
 inherit cmake pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
deleted file mode 100644
index 324a468..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From c2aff16cc196a61f4ab1cdae4a91c7926123c239 Mon Sep 17 00:00:00 2001
-From: Zuzana Svetlikova <zsvetlik@redhat.com>
-Date: Thu, 27 Apr 2017 14:25:42 +0200
-Subject: [PATCH] Disable running gyp on shared deps
-
----
- Makefile | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 0a217bd893..e1229ad07f 100644
---- a/Makefile
-+++ b/Makefile
-@@ -79,10 +79,9 @@ $(NODE_G_EXE): config.gypi out/Makefile
- 	$(MAKE) -C out BUILDTYPE=Debug V=$(V)
- 	if [ ! -r $@ -o ! -L $@ ]; then ln -fs out/Debug/$(NODE_EXE) $@; fi
- 
--out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \
--              deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \
--              deps/v8/gypfiles/features.gypi deps/v8/src/v8.gyp node.gyp \
--              config.gypi
-+out/Makefile: common.gypi deps/http_parser/http_parser.gyp \
-+              deps/v8/gypfiles/toolchain.gypi deps/v8/gypfiles/features.gypi \
-+			  deps/v8/src/v8.gyp node.gyp config.gypi
- 	$(PYTHON) tools/gyp_node.py -f make
- 
- config.gypi: configure
--- 
-2.12.2
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/no-registry.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/no-registry.patch
deleted file mode 100644
index ed24738..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/no-registry.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-Bugfix for --no-registry in nodejs-v0.12.2
-
-diff -u -r node-v0.12.2_def/deps/npm/lib/cache/caching-client.js node-v0.12.2/deps/npm/lib/cache/caching-client.js
---- node-v0.12.2_def/deps/npm/lib/cache/caching-client.js	2015-04-01 01:13:01.000000000 +0300
-+++ node-v0.12.2/deps/npm/lib/cache/caching-client.js	2015-05-18 00:47:10.738599686 +0300
-@@ -67,6 +67,22 @@
-   var cacheBase = cacheFile(npm.config.get("cache"))(uri)
-   var cachePath = path.join(cacheBase, ".cache.json")
- 
-+  if (parsed.host === "noregistry") (function() {
-+    var stat = null
-+    var file = npm.config.get("cache") + parsed.pathname + "/.cache.json"
-+    try {
-+      stat = fs.statSync(cachePath)
-+    } catch (ex) {}
-+    if (!stat) try {
-+      stat = fs.statSync(file) 
-+      cachePath = file
-+    } catch (ex) {
-+      stat = "Registry not defined and registry files not found: \"" +
-+             cachePath + "\", \"" + file + "\"."
-+      throw new Error(stat)
-+    }
-+  })()
-+
-   // If the GET is part of a write operation (PUT or DELETE), then
-   // skip past the cache entirely, but still save the results.
-   if (uri.match(/\?write=true$/)) {
-@@ -83,12 +99,17 @@
-         }
-         catch (ex) {
-           data = null
-+          if (parsed.host === "noregistry")
-+            throw new Error("File \"" + cachePath+"\"" + " corrupted.")
-         }
- 
-         params.stat = stat
-         params.data = data
- 
--        get_.call(client, uri, cachePath, params, cb)
-+        if (parsed.host === "noregistry")
-+          cb(null, data, JSON.stringify(data), { statusCode : 304 })
-+        else
-+          get_.call(client, uri, cachePath, params, cb)
-       })
-     }
-     else {
-diff -u -r node-v0.12.2_def/deps/npm/lib/utils/map-to-registry.js node-v0.12.2/deps/npm/lib/utils/map-to-registry.js
---- node-v0.12.2_def/deps/npm/lib/utils/map-to-registry.js	2015-04-01 01:13:01.000000000 +0300
-+++ node-v0.12.2/deps/npm/lib/utils/map-to-registry.js	2015-05-18 01:15:10.030569613 +0300
-@@ -45,6 +45,8 @@
- 
-   log.silly("mapToRegistry", "registry", registry)
- 
-+  if (!registry) return cb(null, "http://noregistry/" + name, {})
-+
-   var auth = config.getCredentialsByURI(registry)
- 
-   // normalize registry URL so resolution doesn't drop a piece of registry URL
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.9.4.bb
similarity index 90%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.4.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.9.4.bb
index 5bcbc00..8930cd9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.4.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.9.4.bb
@@ -1,7 +1,7 @@
 DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
 HOMEPAGE = "http://nodejs.org"
 LICENSE = "MIT & BSD & Artistic-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e4d35c6120f175e1fbe5ff908b1cf2d6"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=270f7477a1705f7cd3e29d3d4512915d"
 
 DEPENDS = "openssl10 zlib"
 
@@ -12,8 +12,8 @@
 SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
            file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
 "
-SRC_URI[md5sum] = "e6c85c83001340b30671e9432e1bd337"
-SRC_URI[sha256sum] = "5d5aa2a101dcc617231a475812eb8ed87cac21491f1dcc7997b9dd463563f361"
+SRC_URI[md5sum] = "631ed102fe58c13cf63bc92a68cf4759"
+SRC_URI[sha256sum] = "6cdcde9c9c1ca9f450a0b24eafa229ca759e576daa0fae892ce74d541ecdc86f"
 
 S = "${WORKDIR}/node-v${PV}"
 
@@ -26,7 +26,7 @@
     if   re.match('i.86$', a): return 'ia32'
     elif re.match('x86_64$', a): return 'x64'
     elif re.match('aarch64$', a): return 'arm64'
-    elif re.match('powerpc64$', a): return 'ppc64'
+    elif re.match('(powerpc64|ppc64le)$', a): return 'ppc64'
     elif re.match('powerpc$', a): return 'ppc'
     return a
 
@@ -80,7 +80,8 @@
 
 PACKAGES =+ "${PN}-npm"
 FILES_${PN}-npm = "${exec_prefix}/lib/node_modules ${bindir}/npm ${bindir}/npx"
-RDEPENDS_${PN}-npm = "bash python-shell python-datetime python-subprocess python-textutils"
+RDEPENDS_${PN}-npm = "bash python-shell python-datetime python-subprocess python-textutils \
+    python-compiler python-misc python-multiprocessing"
 
 PACKAGES =+ "${PN}-systemtap"
 FILES_${PN}-systemtap = "${datadir}/systemtap"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb
index 1be7f6a..53fc159 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb
@@ -4,7 +4,7 @@
 
 PR = "r1"
 
-inherit packagegroup allarch
+inherit packagegroup
 
 RPROVIDES_${PN} += "packagegroup-native-sdk"
 RREPLACES_${PN} += "packagegroup-native-sdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.94.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.96.bb
similarity index 93%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.94.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.96.bb
index 3b58939..08c966d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.94.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.96.bb
@@ -10,7 +10,7 @@
 DEPENDS = "perl"
 
 SRC_URI = "git://github.com/toddr/IPC-Run.git"
-SRCREV = "6bdf41e276e06d23e140783b13a6eaef4745c216"
+SRCREV = "96066366ac8c401dff9c979d04f25dc8219ffcc1"
 
 S = "${WORKDIR}/git"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.036.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb
similarity index 85%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.036.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb
index f5dbef2..bd8ba78 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.036.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb
@@ -17,8 +17,8 @@
 SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MI/MICHIELB/DBD-mysql-${PV}.tar.gz \
 "
 
-SRC_URI[md5sum] = "fdee1d8dc4ae54bc6cb7cd5a3f3d3342"
-SRC_URI[sha256sum] = "5c48a823f86b8110ccb6504c6176ca248b52f56829dd4548bc39c3509f4154cf"
+SRC_URI[md5sum] = "4a00dd7f1c057931147c65dfc4901c36"
+SRC_URI[sha256sum] = "629f865e8317f52602b2f2efd2b688002903d2e4bbcba5427cb6188b043d6f99"
 
 S = "${WORKDIR}/DBD-mysql-${PV}"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.636.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.636.bb
deleted file mode 100644
index 085b904..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.636.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "The Perl Database Interface"
-DESCRIPTION = "DBI is a database access Application Programming Interface \
-(API) for the Perl Language. The DBI API Specification defines a set \
-of functions, variables and conventions that provide a consistent \
-database interface independent of the actual database being used. \
-"
-HOMEPAGE = "http://search.cpan.org/dist/DBI/"
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-RDEPENDS_${PN} = " perl-module-carp \
-                   perl-module-exporter \
-                   perl-module-exporter-heavy \
-                   perl-module-dynaloader \
-"
-
-LIC_FILES_CHKSUM = "file://DBI.pm;beginline=8147;endline=8151;md5=2e5f6cf47e5ad7b77dcb6172edc29292"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-${PV}.tar.gz"
-SRC_URI[md5sum] = "60f291e5f015550dde71d1858dfe93ba"
-SRC_URI[sha256sum] = "8f7ddce97c04b4b7a000e65e5d05f679c964d62c8b02c94c1a7d815bb2dd676c"
-
-S = "${WORKDIR}/DBI-${PV}"
-
-inherit cpan
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.641.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.641.bb
new file mode 100644
index 0000000..24a1245
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/libdbi-perl_1.641.bb
@@ -0,0 +1,36 @@
+SUMMARY = "The Perl Database Interface"
+DESCRIPTION = "DBI is a database access Application Programming Interface \
+(API) for the Perl Language. The DBI API Specification defines a set \
+of functions, variables and conventions that provide a consistent \
+database interface independent of the actual database being used. \
+"
+HOMEPAGE = "http://search.cpan.org/dist/DBI/"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0+"
+RDEPENDS_${PN} = " perl-module-carp \
+                   perl-module-exporter \
+                   perl-module-exporter-heavy \
+                   perl-module-dynaloader \
+"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=10982c7148e0a012c0fd80534522f5c5"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-${PV}.tar.gz"
+SRC_URI[md5sum] = "e77fd37fcf77fc88fde029c1b75ded54"
+SRC_URI[sha256sum] = "5509e532cdd0e3d91eda550578deaac29e2f008a12b64576e8c261bb92e8c2c1"
+
+S = "${WORKDIR}/DBI-${PV}"
+
+inherit cpan ptest-perl
+
+do_install_prepend() {
+	# test requires "-T" (taint) command line option
+	rm -rf ${B}/t/pod-coverage.t
+	rm -rf ${B}/t/13taint.t
+	# source of test failure not obvious
+	rm -rf ${B}/t/85gofer.t
+	# unclear why there are several duplicates of tests in tarball
+	rm -rf ${B}/t/z*.t
+}
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/0001-Specify-tag-with-libtool.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/0001-Specify-tag-with-libtool.patch
deleted file mode 100644
index 18b4937..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/0001-Specify-tag-with-libtool.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 5c84b039e97abd88f6a18da0e6d27383c00fea92 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 26 Jul 2017 23:06:56 -0700
-Subject: [PATCH] Specify --tag with libtool
-
-This helps in compiling with external toolchains
-with -fPIE appended to CC e.g. via hardening flags
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- acinclude.m4 | 8 ++++----
- configure.in | 4 ++--
- 2 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index a114a98..1cc7a26 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -806,10 +806,10 @@ dnl
- dnl PHP_BUILD_PROGRAM
- dnl
- AC_DEFUN([PHP_BUILD_PROGRAM],[
--  php_c_pre='$(LIBTOOL) --mode=compile $(CC)'
-+  php_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)'
-   php_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS)'
-   php_c_post=
--  php_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)'
-+  php_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)'
-   php_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS)'
-   php_cxx_post=
-   php_lo=lo
-@@ -819,10 +819,10 @@ AC_DEFUN([PHP_BUILD_PROGRAM],[
-     no)  pic_setting='-prefer-non-pic';;
-   esac
- 
--  shared_c_pre='$(LIBTOOL) --mode=compile $(CC)'
-+  shared_c_pre='$(LIBTOOL) --tag=CC --mode=compile $(CC)'
-   shared_c_meta='$(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) '$pic_setting
-   shared_c_post=
--  shared_cxx_pre='$(LIBTOOL) --mode=compile $(CXX)'
-+  shared_cxx_pre='$(LIBTOOL) --tag=CXX --mode=compile $(CXX)'
-   shared_cxx_meta='$(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) '$pic_setting
-   shared_cxx_post=
-   shared_lo=lo
-diff --git a/configure.in b/configure.in
-index 7d65b63..7221af9 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1431,8 +1431,8 @@ PHP_SET_LIBTOOL_VARIABLE([--silent])
- dnl libtool 1.4.3 needs this.
- PHP_SET_LIBTOOL_VARIABLE([--preserve-dup-deps])
- 
--test -z "$PHP_COMPILE" && PHP_COMPILE='$(LIBTOOL) --mode=compile $(COMPILE) -c $<'
--test -z "$CXX_PHP_COMPILE" && CXX_PHP_COMPILE='$(LIBTOOL) --mode=compile $(CXX_COMPILE) -c $<'
-+test -z "$PHP_COMPILE" && PHP_COMPILE='$(LIBTOOL) --tag=CC --mode=compile $(COMPILE) -c $<'
-+test -z "$CXX_PHP_COMPILE" && CXX_PHP_COMPILE='$(LIBTOOL) --tag=CXX --mode=compile $(CXX_COMPILE) -c $<'
- SHARED_LIBTOOL='$(LIBTOOL)'
- 
- CC=$old_CC
--- 
-2.13.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch
deleted file mode 100644
index 41d2a0f..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch
+++ /dev/null
@@ -1,5241 +0,0 @@
-From f2f90767311355cafabff604a7a857ca60ee3f01 Mon Sep 17 00:00:00 2001
-From: Li Zhou <li.zhou@windriver.com>
-Date: Wed, 22 Nov 2017 21:14:59 -0800
-Subject: [PATCH] Fixed bug #75055 Out-Of-Bounds Read in timelib_meridian()
-
-Upstream-Status: Backport
-CVE: CVE-2017-16642
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- ext/date/lib/parse_date.c         | 1544 +++++++++++++++++++++----------------
- ext/date/lib/parse_date.re        |    4 +-
- ext/date/tests/bug53437_var3.phpt |    2 +-
- ext/wddx/tests/bug75055.phpt      |   20 +
- ext/wddx/tests/bug75055.wddx      |   13 +
- 5 files changed, 911 insertions(+), 672 deletions(-)
- create mode 100644 ext/wddx/tests/bug75055.phpt
- create mode 100644 ext/wddx/tests/bug75055.wddx
-
-diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c
-index f929619..6b11418 100644
---- a/ext/date/lib/parse_date.c
-+++ b/ext/date/lib/parse_date.c
-@@ -1,4 +1,5 @@
--/* Generated by re2c 0.15.3 on Tue Jul  4 21:15:17 2017 */
-+/* Generated by re2c 0.15.3 on Wed Nov 22 21:14:47 2017 */
-+#line 1 "ext/date/lib/parse_date.re"
- /*
-  * The MIT License (MIT)
-  *
-@@ -837,9 +838,11 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper)
- std:
- 	s->tok = cursor;
- 	s->len = 0;
-+#line 965 "ext/date/lib/parse_date.re"
- 
- 
- 
-+#line 846 "ext/date/lib/parse_date.c"
- {
- 	YYCTYPE yych;
- 	unsigned int yyaccept = 0;
-@@ -962,18 +965,19 @@ yy2:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'D') goto yy165;
--			goto yy1521;
-+			goto yy1523;
- 		}
- 	} else {
- 		if (yych <= 'd') {
- 			if (yych <= 'Z') goto yy165;
- 			if (yych >= 'a') goto yy170;
- 		} else {
--			if (yych <= 'e') goto yy1530;
-+			if (yych <= 'e') goto yy1532;
- 			if (yych <= 'z') goto yy170;
- 		}
- 	}
- yy3:
-+#line 1673 "ext/date/lib/parse_date.re"
- 	{
- 		int tz_not_found;
- 		DEBUG_OUTPUT("tzcorrection | tz");
-@@ -986,6 +990,7 @@ yy3:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_TIMEZONE;
- 	}
-+#line 994 "ext/date/lib/parse_date.c"
- yy4:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'E') {
-@@ -995,7 +1000,7 @@ yy4:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'D') goto yy165;
--			goto yy1521;
-+			goto yy1523;
- 		}
- 	} else {
- 		if (yych <= 'd') {
-@@ -1003,7 +1008,7 @@ yy4:
- 			if (yych <= '`') goto yy3;
- 			goto yy165;
- 		} else {
--			if (yych <= 'e') goto yy1521;
-+			if (yych <= 'e') goto yy1523;
- 			if (yych <= 'z') goto yy165;
- 			goto yy3;
- 		}
-@@ -1017,12 +1022,12 @@ yy5:
- 			goto yy165;
- 		} else {
- 			if (yych <= 'H') {
--				if (yych <= 'E') goto yy1492;
-+				if (yych <= 'E') goto yy1494;
- 				goto yy165;
- 			} else {
--				if (yych <= 'I') goto yy1493;
-+				if (yych <= 'I') goto yy1495;
- 				if (yych <= 'N') goto yy165;
--				goto yy1491;
-+				goto yy1493;
- 			}
- 		}
- 	} else {
-@@ -1031,15 +1036,15 @@ yy5:
- 				if (yych <= 'Z') goto yy165;
- 				goto yy3;
- 			} else {
--				if (yych == 'e') goto yy1508;
-+				if (yych == 'e') goto yy1510;
- 				goto yy170;
- 			}
- 		} else {
- 			if (yych <= 'n') {
--				if (yych <= 'i') goto yy1509;
-+				if (yych <= 'i') goto yy1511;
- 				goto yy170;
- 			} else {
--				if (yych <= 'o') goto yy1507;
-+				if (yych <= 'o') goto yy1509;
- 				if (yych <= 'z') goto yy170;
- 				goto yy3;
- 			}
-@@ -1054,12 +1059,12 @@ yy6:
- 			goto yy165;
- 		} else {
- 			if (yych <= 'H') {
--				if (yych <= 'E') goto yy1492;
-+				if (yych <= 'E') goto yy1494;
- 				goto yy165;
- 			} else {
--				if (yych <= 'I') goto yy1493;
-+				if (yych <= 'I') goto yy1495;
- 				if (yych <= 'N') goto yy165;
--				goto yy1491;
-+				goto yy1493;
- 			}
- 		}
- 	} else {
-@@ -1068,15 +1073,15 @@ yy6:
- 				if (yych <= 'Z') goto yy165;
- 				goto yy3;
- 			} else {
--				if (yych == 'e') goto yy1492;
-+				if (yych == 'e') goto yy1494;
- 				goto yy165;
- 			}
- 		} else {
- 			if (yych <= 'n') {
--				if (yych <= 'i') goto yy1493;
-+				if (yych <= 'i') goto yy1495;
- 				goto yy165;
- 			} else {
--				if (yych <= 'o') goto yy1491;
-+				if (yych <= 'o') goto yy1493;
- 				if (yych <= 'z') goto yy165;
- 				goto yy3;
- 			}
-@@ -1088,24 +1093,24 @@ yy7:
- 		if (yych <= 'A') {
- 			if (yych == ')') goto yy164;
- 			if (yych <= '@') goto yy3;
--			goto yy1461;
-+			goto yy1463;
- 		} else {
--			if (yych == 'I') goto yy1462;
-+			if (yych == 'I') goto yy1464;
- 			if (yych <= 'N') goto yy165;
--			goto yy1463;
-+			goto yy1465;
- 		}
- 	} else {
- 		if (yych <= 'h') {
- 			if (yych <= 'Z') goto yy165;
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1476;
-+			if (yych <= 'a') goto yy1478;
- 			goto yy170;
- 		} else {
- 			if (yych <= 'n') {
--				if (yych <= 'i') goto yy1477;
-+				if (yych <= 'i') goto yy1479;
- 				goto yy170;
- 			} else {
--				if (yych <= 'o') goto yy1478;
-+				if (yych <= 'o') goto yy1480;
- 				if (yych <= 'z') goto yy170;
- 				goto yy3;
- 			}
-@@ -1117,24 +1122,24 @@ yy8:
- 		if (yych <= 'A') {
- 			if (yych == ')') goto yy164;
- 			if (yych <= '@') goto yy3;
--			goto yy1461;
-+			goto yy1463;
- 		} else {
--			if (yych == 'I') goto yy1462;
-+			if (yych == 'I') goto yy1464;
- 			if (yych <= 'N') goto yy165;
--			goto yy1463;
-+			goto yy1465;
- 		}
- 	} else {
- 		if (yych <= 'h') {
- 			if (yych <= 'Z') goto yy165;
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1461;
-+			if (yych <= 'a') goto yy1463;
- 			goto yy165;
- 		} else {
- 			if (yych <= 'n') {
--				if (yych <= 'i') goto yy1462;
-+				if (yych <= 'i') goto yy1464;
- 				goto yy165;
- 			} else {
--				if (yych <= 'o') goto yy1463;
-+				if (yych <= 'o') goto yy1465;
- 				if (yych <= 'z') goto yy165;
- 				goto yy3;
- 			}
-@@ -1146,15 +1151,15 @@ yy9:
- 	switch (yych) {
- 	case ')':	goto yy164;
- 	case '0':
--	case '1':	goto yy1391;
--	case '2':	goto yy1392;
-+	case '1':	goto yy1393;
-+	case '2':	goto yy1394;
- 	case '3':
- 	case '4':
- 	case '5':
- 	case '6':
- 	case '7':
- 	case '8':
--	case '9':	goto yy1393;
-+	case '9':	goto yy1395;
- 	case 'A':
- 	case 'B':
- 	case 'C':
-@@ -1176,11 +1181,11 @@ yy9:
- 	case 'X':
- 	case 'Y':
- 	case 'Z':	goto yy165;
--	case 'E':	goto yy1386;
--	case 'H':	goto yy1387;
--	case 'O':	goto yy1388;
--	case 'U':	goto yy1389;
--	case 'W':	goto yy1390;
-+	case 'E':	goto yy1388;
-+	case 'H':	goto yy1389;
-+	case 'O':	goto yy1390;
-+	case 'U':	goto yy1391;
-+	case 'W':	goto yy1392;
- 	case 'a':
- 	case 'b':
- 	case 'c':
-@@ -1202,11 +1207,11 @@ yy9:
- 	case 'x':
- 	case 'y':
- 	case 'z':	goto yy170;
--	case 'e':	goto yy1429;
--	case 'h':	goto yy1430;
--	case 'o':	goto yy1431;
--	case 'u':	goto yy1432;
--	case 'w':	goto yy1433;
-+	case 'e':	goto yy1431;
-+	case 'h':	goto yy1432;
-+	case 'o':	goto yy1433;
-+	case 'u':	goto yy1434;
-+	case 'w':	goto yy1435;
- 	default:	goto yy3;
- 	}
- yy10:
-@@ -1215,15 +1220,15 @@ yy10:
- 	switch (yych) {
- 	case ')':	goto yy164;
- 	case '0':
--	case '1':	goto yy1391;
--	case '2':	goto yy1392;
-+	case '1':	goto yy1393;
-+	case '2':	goto yy1394;
- 	case '3':
- 	case '4':
- 	case '5':
- 	case '6':
- 	case '7':
- 	case '8':
--	case '9':	goto yy1393;
-+	case '9':	goto yy1395;
- 	case 'A':
- 	case 'B':
- 	case 'C':
-@@ -1267,28 +1272,30 @@ yy10:
- 	case 'y':
- 	case 'z':	goto yy165;
- 	case 'E':
--	case 'e':	goto yy1386;
-+	case 'e':	goto yy1388;
- 	case 'H':
--	case 'h':	goto yy1387;
-+	case 'h':	goto yy1389;
- 	case 'O':
--	case 'o':	goto yy1388;
-+	case 'o':	goto yy1390;
- 	case 'U':
--	case 'u':	goto yy1389;
-+	case 'u':	goto yy1391;
- 	case 'W':
--	case 'w':	goto yy1390;
-+	case 'w':	goto yy1392;
- 	default:	goto yy3;
- 	}
- yy11:
- 	yyaccept = 1;
- 	yych = *(YYMARKER = ++YYCURSOR);
--	if (yych == '-') goto yy1374;
-+	if (yych == '-') goto yy1376;
- 	if (yych <= '/') goto yy12;
--	if (yych <= '9') goto yy1375;
-+	if (yych <= '9') goto yy1377;
- yy12:
-+#line 1768 "ext/date/lib/parse_date.re"
- 	{
- 		add_error(s, "Unexpected character");
- 		goto std;
- 	}
-+#line 1299 "ext/date/lib/parse_date.c"
- yy13:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'R') {
-@@ -1299,16 +1306,16 @@ yy13:
- 			} else {
- 				if (yych <= '@') goto yy3;
- 				if (yych <= 'D') goto yy165;
--				goto yy1310;
-+				goto yy1311;
- 			}
- 		} else {
- 			if (yych <= 'N') {
--				if (yych == 'I') goto yy1311;
-+				if (yych == 'I') goto yy1312;
- 				goto yy165;
- 			} else {
--				if (yych <= 'O') goto yy1312;
-+				if (yych <= 'O') goto yy1313;
- 				if (yych <= 'Q') goto yy165;
--				goto yy1313;
-+				goto yy1314;
- 			}
- 		}
- 	} else {
-@@ -1318,16 +1325,16 @@ yy13:
- 				if (yych <= '`') goto yy3;
- 				goto yy170;
- 			} else {
--				if (yych <= 'e') goto yy1351;
-+				if (yych <= 'e') goto yy1353;
- 				if (yych <= 'h') goto yy170;
--				goto yy1352;
-+				goto yy1354;
- 			}
- 		} else {
- 			if (yych <= 'q') {
--				if (yych == 'o') goto yy1353;
-+				if (yych == 'o') goto yy1355;
- 				goto yy170;
- 			} else {
--				if (yych <= 'r') goto yy1354;
-+				if (yych <= 'r') goto yy1356;
- 				if (yych <= 'z') goto yy170;
- 				goto yy3;
- 			}
-@@ -1343,16 +1350,16 @@ yy14:
- 			} else {
- 				if (yych <= '@') goto yy3;
- 				if (yych <= 'D') goto yy165;
--				goto yy1310;
-+				goto yy1311;
- 			}
- 		} else {
- 			if (yych <= 'N') {
--				if (yych == 'I') goto yy1311;
-+				if (yych == 'I') goto yy1312;
- 				goto yy165;
- 			} else {
--				if (yych <= 'O') goto yy1312;
-+				if (yych <= 'O') goto yy1313;
- 				if (yych <= 'Q') goto yy165;
--				goto yy1313;
-+				goto yy1314;
- 			}
- 		}
- 	} else {
-@@ -1362,16 +1369,16 @@ yy14:
- 				if (yych <= '`') goto yy3;
- 				goto yy165;
- 			} else {
--				if (yych <= 'e') goto yy1310;
-+				if (yych <= 'e') goto yy1311;
- 				if (yych <= 'h') goto yy165;
--				goto yy1311;
-+				goto yy1312;
- 			}
- 		} else {
- 			if (yych <= 'q') {
--				if (yych == 'o') goto yy1312;
-+				if (yych == 'o') goto yy1313;
- 				goto yy165;
- 			} else {
--				if (yych <= 'r') goto yy1313;
-+				if (yych <= 'r') goto yy1314;
- 				if (yych <= 'z') goto yy165;
- 				goto yy3;
- 			}
-@@ -1382,13 +1389,13 @@ yy15:
- 	if (yych <= 'A') {
- 		if (yych == ')') goto yy164;
- 		if (yych <= '@') goto yy3;
--		goto yy1296;
-+		goto yy1297;
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') goto yy165;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1307;
-+			if (yych <= 'a') goto yy1308;
- 			if (yych <= 'z') goto yy170;
- 			goto yy3;
- 		}
-@@ -1398,13 +1405,13 @@ yy16:
- 	if (yych <= 'A') {
- 		if (yych == ')') goto yy164;
- 		if (yych <= '@') goto yy3;
--		goto yy1296;
-+		goto yy1297;
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') goto yy165;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1296;
-+			if (yych <= 'a') goto yy1297;
- 			if (yych <= 'z') goto yy165;
- 			goto yy3;
- 		}
-@@ -1420,7 +1427,7 @@ yy17:
- 			if (yych <= 'Z') goto yy165;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1293;
-+			if (yych <= 'a') goto yy1294;
- 			if (yych <= 'z') goto yy170;
- 			goto yy3;
- 		}
-@@ -2495,18 +2502,22 @@ yy48:
- 	if (yych <= '/') goto yy49;
- 	if (yych <= '9') goto yy54;
- yy49:
-+#line 1757 "ext/date/lib/parse_date.re"
- 	{
- 		goto std;
- 	}
-+#line 2510 "ext/date/lib/parse_date.c"
- yy50:
- 	yych = *++YYCURSOR;
- 	goto yy49;
- yy51:
- 	++YYCURSOR;
-+#line 1762 "ext/date/lib/parse_date.re"
- 	{
- 		s->pos = cursor; s->line++;
- 		goto std;
- 	}
-+#line 2521 "ext/date/lib/parse_date.c"
- yy53:
- 	yych = *++YYCURSOR;
- 	goto yy12;
-@@ -2693,23 +2704,23 @@ yy56:
- 					}
- 				} else {
- 					if (yyaccept == 28) {
--						goto yy1377;
-+						goto yy1379;
- 					} else {
--						goto yy1415;
-+						goto yy1417;
- 					}
- 				}
- 			} else {
- 				if (yyaccept <= 31) {
- 					if (yyaccept == 30) {
--						goto yy1418;
-+						goto yy1420;
- 					} else {
--						goto yy1498;
-+						goto yy1500;
- 					}
- 				} else {
- 					if (yyaccept == 32) {
--						goto yy1506;
-+						goto yy1508;
- 					} else {
--						goto yy1529;
-+						goto yy1531;
- 					}
- 				}
- 			}
-@@ -2920,6 +2931,7 @@ yy73:
- 	if (yych == 'S') goto yy75;
- 	if (yych == 's') goto yy75;
- yy74:
-+#line 1741 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_ull i;
- 		DEBUG_OUTPUT("relative");
-@@ -2934,6 +2946,7 @@ yy74:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
-+#line 2950 "ext/date/lib/parse_date.c"
- yy75:
- 	yych = *++YYCURSOR;
- 	if (yych == 'D') goto yy76;
-@@ -3719,6 +3732,7 @@ yy190:
- 		}
- 	}
- yy191:
-+#line 1604 "ext/date/lib/parse_date.re"
- 	{
- 		const timelib_relunit* relunit;
- 		DEBUG_OUTPUT("daytext");
-@@ -3735,6 +3749,7 @@ yy191:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_WEEKDAY;
- 	}
-+#line 3753 "ext/date/lib/parse_date.c"
- yy192:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'K') {
-@@ -4227,6 +4242,7 @@ yy217:
- 		}
- 	}
- yy218:
-+#line 1663 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("monthtext");
- 		TIMELIB_INIT;
-@@ -4235,6 +4251,7 @@ yy218:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_TEXT;
- 	}
-+#line 4255 "ext/date/lib/parse_date.c"
- yy219:
- 	++YYCURSOR;
- 	if ((YYLIMIT - YYCURSOR) < 23) YYFILL(23);
-@@ -4469,6 +4486,7 @@ yy231:
- 	if (yych == 't') goto yy319;
- 	goto yy237;
- yy232:
-+#line 1409 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("datetextual | datenoyear");
-@@ -4481,6 +4499,7 @@ yy232:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_TEXT;
- 	}
-+#line 4503 "ext/date/lib/parse_date.c"
- yy233:
- 	yyaccept = 6;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -4593,6 +4612,7 @@ yy245:
- 		if (yych <= ':') goto yy248;
- 	}
- yy246:
-+#line 1711 "ext/date/lib/parse_date.re"
- 	{
- 		int tz_not_found;
- 		DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz");
-@@ -4621,6 +4641,7 @@ yy246:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_SHORTDATE_WITH_TIME;
- 	}
-+#line 4645 "ext/date/lib/parse_date.c"
- yy247:
- 	yyaccept = 7;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -4893,6 +4914,7 @@ yy269:
- 	}
- yy270:
- 	++YYCURSOR;
-+#line 1687 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12");
- 		TIMELIB_INIT;
-@@ -4915,6 +4937,7 @@ yy270:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_SHORTDATE_WITH_TIME;
- 	}
-+#line 4941 "ext/date/lib/parse_date.c"
- yy272:
- 	yych = *++YYCURSOR;
- 	if (yych <= 0x1F) {
-@@ -5470,6 +5493,7 @@ yy320:
- 	if (yych <= '/') goto yy56;
- 	if (yych >= ':') goto yy56;
- 	++YYCURSOR;
-+#line 1381 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("datenoday");
-@@ -5482,6 +5506,7 @@ yy320:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_NO_DAY;
- 	}
-+#line 5510 "ext/date/lib/parse_date.c"
- yy323:
- 	yych = *++YYCURSOR;
- 	if (yych <= '9') {
-@@ -5704,6 +5729,7 @@ yy327:
- 	if ((yych = *YYCURSOR) <= '/') goto yy330;
- 	if (yych <= '9') goto yy331;
- yy330:
-+#line 1525 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("pgtextshort");
-@@ -5716,6 +5742,7 @@ yy330:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_PG_TEXT;
- 	}
-+#line 5746 "ext/date/lib/parse_date.c"
- yy331:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy330;
-@@ -6270,6 +6297,7 @@ yy356:
- 		if (yych <= 'z') goto yy167;
- 	}
- yy357:
-+#line 1583 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("ago");
- 		TIMELIB_INIT;
-@@ -6289,6 +6317,7 @@ yy357:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_AGO;
- 	}
-+#line 6321 "ext/date/lib/parse_date.c"
- yy358:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -8009,6 +8038,7 @@ yy417:
- yy418:
- 	++YYCURSOR;
- yy419:
-+#line 1286 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash");
- 		TIMELIB_INIT;
-@@ -8019,6 +8049,7 @@ yy419:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_ISO_DATE;
- 	}
-+#line 8053 "ext/date/lib/parse_date.c"
- yy420:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -8641,6 +8672,7 @@ yy439:
- 		}
- 	}
- yy440:
-+#line 1423 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("datenoyearrev");
- 		TIMELIB_INIT;
-@@ -8651,6 +8683,7 @@ yy440:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_TEXT;
- 	}
-+#line 8687 "ext/date/lib/parse_date.c"
- yy441:
- 	yyaccept = 9;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -8778,6 +8811,7 @@ yy450:
- 	}
- yy452:
- 	++YYCURSOR;
-+#line 1141 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12");
- 		TIMELIB_INIT;
-@@ -8793,6 +8827,7 @@ yy452:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_TIME12;
- 	}
-+#line 8831 "ext/date/lib/parse_date.c"
- yy454:
- 	yyaccept = 10;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -8803,6 +8838,7 @@ yy454:
- 		if (yych <= ':') goto yy457;
- 	}
- yy455:
-+#line 1178 "ext/date/lib/parse_date.re"
- 	{
- 		int tz_not_found;
- 		DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long");
-@@ -8827,6 +8863,7 @@ yy455:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_TIME24_WITH_ZONE;
- 	}
-+#line 8867 "ext/date/lib/parse_date.c"
- yy456:
- 	yyaccept = 10;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -9103,6 +9140,7 @@ yy485:
- 	}
- yy487:
- 	++YYCURSOR;
-+#line 1158 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("mssqltime");
- 		TIMELIB_INIT;
-@@ -9121,6 +9159,7 @@ yy487:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_TIME24_WITH_ZONE;
- 	}
-+#line 9163 "ext/date/lib/parse_date.c"
- yy489:
- 	yyaccept = 10;
- 	YYMARKER = ++YYCURSOR;
-@@ -9215,6 +9254,7 @@ yy498:
- 	if ((yych = *YYCURSOR) <= '/') goto yy499;
- 	if (yych <= '9') goto yy505;
- yy499:
-+#line 1340 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("datefull");
-@@ -9228,6 +9268,7 @@ yy499:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_FULL;
- 	}
-+#line 9272 "ext/date/lib/parse_date.c"
- yy500:
- 	yych = *++YYCURSOR;
- 	if (yych == 'M') goto yy501;
-@@ -9891,6 +9932,7 @@ yy569:
- 	if (yych <= '/') goto yy56;
- 	if (yych >= ':') goto yy56;
- 	++YYCURSOR;
-+#line 1355 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("pointed date YYYY");
- 		TIMELIB_INIT;
-@@ -9901,6 +9943,7 @@ yy569:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_FULL_POINTED;
- 	}
-+#line 9947 "ext/date/lib/parse_date.c"
- yy572:
- 	yyaccept = 10;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -9931,6 +9974,7 @@ yy575:
- 	if (yych <= '/') goto yy576;
- 	if (yych <= '9') goto yy569;
- yy576:
-+#line 1367 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("pointed date YY");
-@@ -9943,6 +9987,7 @@ yy576:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_FULL_POINTED;
- 	}
-+#line 9991 "ext/date/lib/parse_date.c"
- yy577:
- 	yyaccept = 10;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -10538,6 +10583,7 @@ yy620:
- 		}
- 	}
- yy621:
-+#line 1326 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("gnudateshort");
-@@ -10550,6 +10596,7 @@ yy621:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_ISO_DATE;
- 	}
-+#line 10600 "ext/date/lib/parse_date.c"
- yy622:
- 	yyaccept = 12;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -10645,6 +10692,7 @@ yy630:
- 		}
- 	}
- yy631:
-+#line 1270 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("americanshort | american");
-@@ -10659,6 +10707,7 @@ yy631:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_AMERICAN;
- 	}
-+#line 10711 "ext/date/lib/parse_date.c"
- yy632:
- 	yyaccept = 13;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -10857,6 +10906,7 @@ yy664:
- 	if (yych <= '9') goto yy667;
- 	if (yych <= ':') goto yy668;
- yy665:
-+#line 1553 "ext/date/lib/parse_date.re"
- 	{
- 		int tz_not_found;
- 		DEBUG_OUTPUT("clf");
-@@ -10876,6 +10926,7 @@ yy665:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_CLF;
- 	}
-+#line 10930 "ext/date/lib/parse_date.c"
- yy666:
- 	yych = *++YYCURSOR;
- 	if (yych <= '5') {
-@@ -11362,6 +11413,7 @@ yy727:
- 		if (yych <= 't') goto yy627;
- 	}
- yy728:
-+#line 1298 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("iso8601date2");
-@@ -11374,6 +11426,7 @@ yy728:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_ISO_DATE;
- 	}
-+#line 11430 "ext/date/lib/parse_date.c"
- yy729:
- 	yych = *++YYCURSOR;
- 	if (yych == 'C') goto yy730;
-@@ -11404,6 +11457,7 @@ yy734:
- 	if (yych >= '2') goto yy56;
- yy735:
- 	++YYCURSOR;
-+#line 1539 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("pgtextreverse");
-@@ -11416,6 +11470,7 @@ yy735:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_PG_TEXT;
- 	}
-+#line 11474 "ext/date/lib/parse_date.c"
- yy737:
- 	yych = *++YYCURSOR;
- 	if (yych == 'V') goto yy730;
-@@ -11568,6 +11623,7 @@ yy747:
- 		}
- 	}
- yy748:
-+#line 1574 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("year4");
- 		TIMELIB_INIT;
-@@ -11575,6 +11631,7 @@ yy748:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_CLF;
- 	}
-+#line 11635 "ext/date/lib/parse_date.c"
- yy749:
- 	yych = *++YYCURSOR;
- 	switch (yych) {
-@@ -11769,6 +11826,7 @@ yy757:
- 		if (yych <= 'X') goto yy848;
- 	}
- yy758:
-+#line 1395 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("datenodayrev");
-@@ -11781,6 +11839,7 @@ yy758:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_NO_DAY;
- 	}
-+#line 11843 "ext/date/lib/parse_date.c"
- yy759:
- 	yych = *++YYCURSOR;
- 	if (yych == 'I') goto yy892;
-@@ -11980,6 +12039,7 @@ yy778:
- 	if (yych <= '/') goto yy779;
- 	if (yych <= '7') goto yy781;
- yy779:
-+#line 1506 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_sll w, d;
- 		DEBUG_OUTPUT("isoweek");
-@@ -11997,12 +12057,14 @@ yy779:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_ISO_WEEK;
- 	}
-+#line 12061 "ext/date/lib/parse_date.c"
- yy780:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy56;
- 	if (yych >= '8') goto yy56;
- yy781:
- 	++YYCURSOR;
-+#line 1487 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_sll w, d;
- 		DEBUG_OUTPUT("isoweekday");
-@@ -12020,6 +12082,7 @@ yy781:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_ISO_WEEK;
- 	}
-+#line 12086 "ext/date/lib/parse_date.c"
- yy783:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy60;
-@@ -12085,6 +12148,7 @@ yy785:
- 		}
- 	}
- yy786:
-+#line 1473 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("pgydotd");
-@@ -12097,6 +12161,7 @@ yy786:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_PG_YEARDAY;
- 	}
-+#line 12165 "ext/date/lib/parse_date.c"
- yy787:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy60;
-@@ -12178,6 +12243,7 @@ yy805:
- yy806:
- 	++YYCURSOR;
- yy807:
-+#line 1447 "ext/date/lib/parse_date.re"
- 	{
- 		int tz_not_found;
- 		DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif");
-@@ -12202,6 +12268,7 @@ yy807:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_XMLRPC_SOAP;
- 	}
-+#line 12272 "ext/date/lib/parse_date.c"
- yy808:
- 	yych = *++YYCURSOR;
- 	if (yych <= '2') {
-@@ -12490,6 +12557,7 @@ yy812:
- 		}
- 	}
- yy813:
-+#line 1435 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("datenocolon");
- 		TIMELIB_INIT;
-@@ -12500,6 +12568,7 @@ yy813:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_DATE_NOCOLON;
- 	}
-+#line 12572 "ext/date/lib/parse_date.c"
- yy814:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'H') {
-@@ -13293,6 +13362,7 @@ yy937:
- 	if (yych <= '/') goto yy938;
- 	if (yych <= '9') goto yy960;
- yy938:
-+#line 1312 "ext/date/lib/parse_date.re"
- 	{
- 		int length = 0;
- 		DEBUG_OUTPUT("gnudateshorter");
-@@ -13305,6 +13375,7 @@ yy938:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_ISO_DATE;
- 	}
-+#line 13379 "ext/date/lib/parse_date.c"
- yy939:
- 	yyaccept = 21;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -14303,6 +14374,7 @@ yy1030:
- 		}
- 	}
- yy1032:
-+#line 1204 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("gnunocolon");
- 		TIMELIB_INIT;
-@@ -14324,6 +14396,7 @@ yy1032:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_GNU_NOCOLON;
- 	}
-+#line 14400 "ext/date/lib/parse_date.c"
- yy1033:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy60;
-@@ -14413,6 +14486,7 @@ yy1039:
- 		}
- 	}
- yy1040:
-+#line 1250 "ext/date/lib/parse_date.re"
- 	{
- 		int tz_not_found;
- 		DEBUG_OUTPUT("iso8601nocolon");
-@@ -14431,6 +14505,7 @@ yy1040:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_ISO_NOCOLON;
- 	}
-+#line 14509 "ext/date/lib/parse_date.c"
- yy1041:
- 	yyaccept = 24;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -15362,6 +15437,7 @@ yy1083:
- 		}
- 	}
- yy1084:
-+#line 1646 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_sll i;
- 		int         behavior = 0;
-@@ -15377,6 +15453,7 @@ yy1084:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
-+#line 15457 "ext/date/lib/parse_date.c"
- yy1085:
- 	++YYCURSOR;
- 	if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-@@ -15418,6 +15495,7 @@ yy1091:
- 	if (yych != 'f') goto yy56;
- yy1092:
- 	++YYCURSOR;
-+#line 1119 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_sll i;
- 		int         behavior = 0;
-@@ -15438,6 +15516,7 @@ yy1092:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_WEEK_DAY_OF_MONTH;
- 	}
-+#line 15520 "ext/date/lib/parse_date.c"
- yy1094:
- 	yyaccept = 25;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -15530,6 +15609,7 @@ yy1107:
- 		}
- 	}
- yy1108:
-+#line 1622 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_sll i;
- 		int         behavior = 0;
-@@ -15552,6 +15632,7 @@ yy1108:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
-+#line 15636 "ext/date/lib/parse_date.c"
- yy1109:
- 	yych = *++YYCURSOR;
- 	goto yy1084;
-@@ -18206,10 +18287,25 @@ yy1281:
- yy1283:
- 	yyaccept = 27;
- 	yych = *(YYMARKER = ++YYCURSOR);
--	if (yych <= '/') goto yy1287;
--	if (yych <= '9') goto yy1286;
--	goto yy1287;
-+	if (yych <= '@') {
-+		if (yych <= 0x1F) {
-+			if (yych == '\t') goto yy1287;
-+		} else {
-+			if (yych <= ' ') goto yy1287;
-+			if (yych <= '/') goto yy1284;
-+			if (yych <= '9') goto yy1286;
-+		}
-+	} else {
-+		if (yych <= '`') {
-+			if (yych <= 'A') goto yy1289;
-+			if (yych == 'P') goto yy1289;
-+		} else {
-+			if (yych <= 'a') goto yy1289;
-+			if (yych == 'p') goto yy1289;
-+		}
-+	}
- yy1284:
-+#line 1096 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("backof | frontof");
- 		TIMELIB_INIT;
-@@ -18231,66 +18327,104 @@ yy1284:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_LF_DAY_OF_MONTH;
- 	}
-+#line 18331 "ext/date/lib/parse_date.c"
- yy1285:
- 	yyaccept = 27;
- 	yych = *(YYMARKER = ++YYCURSOR);
--	if (yych <= '/') goto yy1287;
--	if (yych >= '5') goto yy1287;
-+	if (yych <= '@') {
-+		if (yych <= 0x1F) {
-+			if (yych == '\t') goto yy1287;
-+			goto yy1284;
-+		} else {
-+			if (yych <= ' ') goto yy1287;
-+			if (yych <= '/') goto yy1284;
-+			if (yych >= '5') goto yy1284;
-+		}
-+	} else {
-+		if (yych <= '`') {
-+			if (yych <= 'A') goto yy1289;
-+			if (yych == 'P') goto yy1289;
-+			goto yy1284;
-+		} else {
-+			if (yych <= 'a') goto yy1289;
-+			if (yych == 'p') goto yy1289;
-+			goto yy1284;
-+		}
-+	}
- yy1286:
- 	yyaccept = 27;
--	YYMARKER = ++YYCURSOR;
-+	yych = *(YYMARKER = ++YYCURSOR);
-+	if (yych <= 'A') {
-+		if (yych <= 0x1F) {
-+			if (yych != '\t') goto yy1284;
-+		} else {
-+			if (yych <= ' ') goto yy1287;
-+			if (yych <= '@') goto yy1284;
-+			goto yy1289;
-+		}
-+	} else {
-+		if (yych <= '`') {
-+			if (yych == 'P') goto yy1289;
-+			goto yy1284;
-+		} else {
-+			if (yych <= 'a') goto yy1289;
-+			if (yych == 'p') goto yy1289;
-+			goto yy1284;
-+		}
-+	}
-+yy1287:
-+	++YYCURSOR;
- 	if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
- 	yych = *YYCURSOR;
--yy1287:
- 	if (yych <= 'A') {
- 		if (yych <= 0x1F) {
--			if (yych == '\t') goto yy1286;
--			goto yy1284;
-+			if (yych == '\t') goto yy1287;
-+			goto yy56;
- 		} else {
--			if (yych <= ' ') goto yy1286;
--			if (yych <= '@') goto yy1284;
-+			if (yych <= ' ') goto yy1287;
-+			if (yych <= '@') goto yy56;
- 		}
- 	} else {
- 		if (yych <= '`') {
--			if (yych != 'P') goto yy1284;
-+			if (yych != 'P') goto yy56;
- 		} else {
--			if (yych <= 'a') goto yy1288;
--			if (yych != 'p') goto yy1284;
-+			if (yych <= 'a') goto yy1289;
-+			if (yych != 'p') goto yy56;
- 		}
- 	}
--yy1288:
-+yy1289:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'L') {
- 		if (yych != '.') goto yy56;
- 	} else {
--		if (yych <= 'M') goto yy1290;
--		if (yych == 'm') goto yy1290;
-+		if (yych <= 'M') goto yy1291;
-+		if (yych == 'm') goto yy1291;
- 		goto yy56;
- 	}
- 	yych = *++YYCURSOR;
--	if (yych == 'M') goto yy1290;
-+	if (yych == 'M') goto yy1291;
- 	if (yych != 'm') goto yy56;
--yy1290:
-+yy1291:
- 	yych = *++YYCURSOR;
- 	if (yych <= 0x1F) {
--		if (yych <= 0x00) goto yy1292;
--		if (yych == '\t') goto yy1292;
-+		if (yych <= 0x00) goto yy1293;
-+		if (yych == '\t') goto yy1293;
- 		goto yy56;
- 	} else {
--		if (yych <= ' ') goto yy1292;
-+		if (yych <= ' ') goto yy1293;
- 		if (yych != '.') goto yy56;
- 	}
- 	yych = *++YYCURSOR;
- 	if (yych <= '\t') {
--		if (yych <= 0x00) goto yy1292;
-+		if (yych <= 0x00) goto yy1293;
- 		if (yych <= 0x08) goto yy56;
- 	} else {
- 		if (yych != ' ') goto yy56;
- 	}
--yy1292:
-+yy1293:
- 	yych = *++YYCURSOR;
- 	goto yy1284;
--yy1293:
-+yy1294:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'B') {
-@@ -18314,13 +18448,13 @@ yy1293:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'c') goto yy1294;
-+				if (yych <= 'c') goto yy1295;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1294:
-+yy1295:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'J') {
-@@ -18344,13 +18478,13 @@ yy1294:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 'k') goto yy1295;
-+				if (yych <= 'k') goto yy1296;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1295:
-+yy1296:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '.') {
-@@ -18375,7 +18509,7 @@ yy1295:
- 			goto yy3;
- 		}
- 	}
--yy1296:
-+yy1297:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'S') {
- 		if (yych <= ')') {
-@@ -18391,12 +18525,12 @@ yy1296:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 's') goto yy1297;
-+			if (yych <= 's') goto yy1298;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1297:
-+yy1298:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -18412,12 +18546,12 @@ yy1297:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 't') goto yy1298;
-+			if (yych <= 't') goto yy1299;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1298:
-+yy1299:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '(') {
-@@ -18438,19 +18572,19 @@ yy1298:
- 			goto yy3;
- 		}
- 	}
--yy1299:
-+yy1300:
- 	yych = *++YYCURSOR;
--	if (yych == 'D') goto yy1300;
-+	if (yych == 'D') goto yy1301;
- 	if (yych != 'd') goto yy1070;
--yy1300:
-+yy1301:
- 	yych = *++YYCURSOR;
--	if (yych == 'A') goto yy1301;
-+	if (yych == 'A') goto yy1302;
- 	if (yych != 'a') goto yy56;
--yy1301:
-+yy1302:
- 	yych = *++YYCURSOR;
--	if (yych == 'Y') goto yy1302;
-+	if (yych == 'Y') goto yy1303;
- 	if (yych != 'y') goto yy56;
--yy1302:
-+yy1303:
- 	yyaccept = 25;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -18461,14 +18595,15 @@ yy1302:
- 		goto yy1084;
- 	}
- 	yych = *++YYCURSOR;
--	if (yych == 'O') goto yy1304;
-+	if (yych == 'O') goto yy1305;
- 	if (yych != 'o') goto yy56;
--yy1304:
-+yy1305:
- 	yych = *++YYCURSOR;
--	if (yych == 'F') goto yy1305;
-+	if (yych == 'F') goto yy1306;
- 	if (yych != 'f') goto yy56;
--yy1305:
-+yy1306:
- 	++YYCURSOR;
-+#line 1079 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("firstdayof | lastdayof");
- 		TIMELIB_INIT;
-@@ -18484,7 +18619,8 @@ yy1305:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_LF_DAY_OF_MONTH;
- 	}
--yy1307:
-+#line 18623 "ext/date/lib/parse_date.c"
-+yy1308:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -18499,7 +18635,7 @@ yy1307:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'S') goto yy1297;
-+			if (yych <= 'S') goto yy1298;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -18508,13 +18644,13 @@ yy1307:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 's') goto yy1308;
-+				if (yych <= 's') goto yy1309;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1308:
-+yy1309:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -18529,7 +18665,7 @@ yy1308:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1298;
-+			if (yych <= 'T') goto yy1299;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -18538,20 +18674,20 @@ yy1308:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 't') goto yy1309;
-+				if (yych <= 't') goto yy1310;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1309:
-+yy1310:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '-') {
- 		if (yych <= ' ') {
- 			if (yych == '\t') goto yy1069;
- 			if (yych <= 0x1F) goto yy3;
--			goto yy1299;
-+			goto yy1300;
- 		} else {
- 			if (yych == ')') goto yy164;
- 			if (yych <= ',') goto yy3;
-@@ -18573,7 +18709,7 @@ yy1309:
- 			}
- 		}
- 	}
--yy1310:
-+yy1311:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'B') {
- 		if (yych <= ')') {
-@@ -18582,7 +18718,7 @@ yy1310:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'A') goto yy166;
--			goto yy1346;
-+			goto yy1348;
- 		}
- 	} else {
- 		if (yych <= 'a') {
-@@ -18590,35 +18726,35 @@ yy1310:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'b') goto yy1346;
-+			if (yych <= 'b') goto yy1348;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1311:
-+yy1312:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'R') {
- 		if (yych <= '@') {
- 			if (yych == ')') goto yy164;
- 			goto yy3;
- 		} else {
--			if (yych == 'F') goto yy1336;
-+			if (yych == 'F') goto yy1338;
- 			if (yych <= 'Q') goto yy166;
--			goto yy1335;
-+			goto yy1337;
- 		}
- 	} else {
- 		if (yych <= 'f') {
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '`') goto yy3;
- 			if (yych <= 'e') goto yy166;
--			goto yy1336;
-+			goto yy1338;
- 		} else {
--			if (yych == 'r') goto yy1335;
-+			if (yych == 'r') goto yy1337;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1312:
-+yy1313:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'U') {
- 		if (yych <= ')') {
-@@ -18627,7 +18763,7 @@ yy1312:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'T') goto yy166;
--			goto yy1332;
-+			goto yy1334;
- 		}
- 	} else {
- 		if (yych <= 't') {
-@@ -18635,19 +18771,19 @@ yy1312:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'u') goto yy1332;
-+			if (yych <= 'u') goto yy1334;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1313:
-+yy1314:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'O') {
- 		if (yych <= '@') {
- 			if (yych == ')') goto yy164;
- 			goto yy3;
- 		} else {
--			if (yych == 'I') goto yy1315;
-+			if (yych == 'I') goto yy1316;
- 			if (yych <= 'N') goto yy166;
- 		}
- 	} else {
-@@ -18655,14 +18791,14 @@ yy1313:
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '`') goto yy3;
- 			if (yych <= 'h') goto yy166;
--			goto yy1315;
-+			goto yy1316;
- 		} else {
--			if (yych == 'o') goto yy1314;
-+			if (yych == 'o') goto yy1315;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1314:
-+yy1315:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'N') {
- 		if (yych <= ')') {
-@@ -18671,7 +18807,7 @@ yy1314:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'M') goto yy167;
--			goto yy1318;
-+			goto yy1319;
- 		}
- 	} else {
- 		if (yych <= 'm') {
-@@ -18679,12 +18815,12 @@ yy1314:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 'n') goto yy1318;
-+			if (yych <= 'n') goto yy1319;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1315:
-+yy1316:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'D') {
- 		if (yych <= ')') {
-@@ -18700,12 +18836,12 @@ yy1315:
- 			if (yych <= '`') goto yy191;
- 			goto yy167;
- 		} else {
--			if (yych <= 'd') goto yy1316;
-+			if (yych <= 'd') goto yy1317;
- 			if (yych <= 'z') goto yy167;
- 			goto yy191;
- 		}
- 	}
--yy1316:
-+yy1317:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'A') {
- 		if (yych == ')') goto yy164;
-@@ -18715,12 +18851,12 @@ yy1316:
- 			if (yych <= 'Z') goto yy168;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1317;
-+			if (yych <= 'a') goto yy1318;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1317:
-+yy1318:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'Y') {
- 		if (yych <= ')') {
-@@ -18742,7 +18878,7 @@ yy1317:
- 			goto yy3;
- 		}
- 	}
--yy1318:
-+yy1319:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -18758,16 +18894,16 @@ yy1318:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 't') goto yy1319;
-+			if (yych <= 't') goto yy1320;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1319:
-+yy1320:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= ')') {
--		if (yych == ' ') goto yy1320;
-+		if (yych == ' ') goto yy1321;
- 		if (yych <= '(') goto yy3;
- 		goto yy164;
- 	} else {
-@@ -18780,88 +18916,143 @@ yy1319:
- 			goto yy3;
- 		}
- 	}
--yy1320:
-+yy1321:
- 	yych = *++YYCURSOR;
--	if (yych == 'O') goto yy1321;
-+	if (yych == 'O') goto yy1322;
- 	if (yych != 'o') goto yy56;
--yy1321:
-+yy1322:
- 	yych = *++YYCURSOR;
--	if (yych == 'F') goto yy1322;
-+	if (yych == 'F') goto yy1323;
- 	if (yych != 'f') goto yy56;
--yy1322:
-+yy1323:
- 	yych = *++YYCURSOR;
- 	if (yych != ' ') goto yy56;
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy56;
--	if (yych <= '1') goto yy1324;
--	if (yych <= '2') goto yy1325;
--	if (yych <= '9') goto yy1326;
-+	if (yych <= '1') goto yy1325;
-+	if (yych <= '2') goto yy1326;
-+	if (yych <= '9') goto yy1327;
- 	goto yy56;
--yy1324:
--	yyaccept = 27;
--	yych = *(YYMARKER = ++YYCURSOR);
--	if (yych <= '/') goto yy1327;
--	if (yych <= '9') goto yy1326;
--	goto yy1327;
- yy1325:
- 	yyaccept = 27;
- 	yych = *(YYMARKER = ++YYCURSOR);
--	if (yych <= '/') goto yy1327;
--	if (yych >= '5') goto yy1327;
-+	if (yych <= '@') {
-+		if (yych <= 0x1F) {
-+			if (yych == '\t') goto yy1328;
-+			goto yy1284;
-+		} else {
-+			if (yych <= ' ') goto yy1328;
-+			if (yych <= '/') goto yy1284;
-+			if (yych <= '9') goto yy1327;
-+			goto yy1284;
-+		}
-+	} else {
-+		if (yych <= '`') {
-+			if (yych <= 'A') goto yy1330;
-+			if (yych == 'P') goto yy1330;
-+			goto yy1284;
-+		} else {
-+			if (yych <= 'a') goto yy1330;
-+			if (yych == 'p') goto yy1330;
-+			goto yy1284;
-+		}
-+	}
- yy1326:
- 	yyaccept = 27;
--	YYMARKER = ++YYCURSOR;
--	if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
--	yych = *YYCURSOR;
-+	yych = *(YYMARKER = ++YYCURSOR);
-+	if (yych <= '@') {
-+		if (yych <= 0x1F) {
-+			if (yych == '\t') goto yy1328;
-+			goto yy1284;
-+		} else {
-+			if (yych <= ' ') goto yy1328;
-+			if (yych <= '/') goto yy1284;
-+			if (yych >= '5') goto yy1284;
-+		}
-+	} else {
-+		if (yych <= '`') {
-+			if (yych <= 'A') goto yy1330;
-+			if (yych == 'P') goto yy1330;
-+			goto yy1284;
-+		} else {
-+			if (yych <= 'a') goto yy1330;
-+			if (yych == 'p') goto yy1330;
-+			goto yy1284;
-+		}
-+	}
- yy1327:
-+	yyaccept = 27;
-+	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'A') {
- 		if (yych <= 0x1F) {
--			if (yych == '\t') goto yy1326;
--			goto yy1284;
-+			if (yych != '\t') goto yy1284;
- 		} else {
--			if (yych <= ' ') goto yy1326;
-+			if (yych <= ' ') goto yy1328;
- 			if (yych <= '@') goto yy1284;
-+			goto yy1330;
- 		}
- 	} else {
- 		if (yych <= '`') {
--			if (yych != 'P') goto yy1284;
-+			if (yych == 'P') goto yy1330;
-+			goto yy1284;
- 		} else {
--			if (yych <= 'a') goto yy1328;
--			if (yych != 'p') goto yy1284;
-+			if (yych <= 'a') goto yy1330;
-+			if (yych == 'p') goto yy1330;
-+			goto yy1284;
- 		}
- 	}
- yy1328:
-+	++YYCURSOR;
-+	if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
-+	yych = *YYCURSOR;
-+	if (yych <= 'A') {
-+		if (yych <= 0x1F) {
-+			if (yych == '\t') goto yy1328;
-+			goto yy56;
-+		} else {
-+			if (yych <= ' ') goto yy1328;
-+			if (yych <= '@') goto yy56;
-+		}
-+	} else {
-+		if (yych <= '`') {
-+			if (yych != 'P') goto yy56;
-+		} else {
-+			if (yych <= 'a') goto yy1330;
-+			if (yych != 'p') goto yy56;
-+		}
-+	}
-+yy1330:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'L') {
- 		if (yych != '.') goto yy56;
- 	} else {
--		if (yych <= 'M') goto yy1330;
--		if (yych == 'm') goto yy1330;
-+		if (yych <= 'M') goto yy1332;
-+		if (yych == 'm') goto yy1332;
- 		goto yy56;
- 	}
- 	yych = *++YYCURSOR;
--	if (yych == 'M') goto yy1330;
-+	if (yych == 'M') goto yy1332;
- 	if (yych != 'm') goto yy56;
--yy1330:
-+yy1332:
- 	yych = *++YYCURSOR;
- 	if (yych <= 0x1F) {
--		if (yych <= 0x00) goto yy1292;
--		if (yych == '\t') goto yy1292;
-+		if (yych <= 0x00) goto yy1293;
-+		if (yych == '\t') goto yy1293;
- 		goto yy56;
- 	} else {
--		if (yych <= ' ') goto yy1292;
-+		if (yych <= ' ') goto yy1293;
- 		if (yych != '.') goto yy56;
- 	}
- 	yych = *++YYCURSOR;
- 	if (yych <= '\t') {
--		if (yych <= 0x00) goto yy1292;
-+		if (yych <= 0x00) goto yy1293;
- 		if (yych <= 0x08) goto yy56;
--		goto yy1292;
-+		goto yy1293;
- 	} else {
--		if (yych == ' ') goto yy1292;
-+		if (yych == ' ') goto yy1293;
- 		goto yy56;
- 	}
--yy1332:
-+yy1334:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'R') {
- 		if (yych <= ')') {
-@@ -18877,12 +19068,12 @@ yy1332:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 'r') goto yy1333;
-+			if (yych <= 'r') goto yy1335;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1333:
-+yy1335:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -18898,12 +19089,12 @@ yy1333:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 't') goto yy1334;
-+			if (yych <= 't') goto yy1336;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1334:
-+yy1336:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'H') {
- 		if (yych <= ')') {
-@@ -18925,7 +19116,7 @@ yy1334:
- 			goto yy3;
- 		}
- 	}
--yy1335:
-+yy1337:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'S') {
- 		if (yych <= ')') {
-@@ -18934,7 +19125,7 @@ yy1335:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'R') goto yy167;
--			goto yy1338;
-+			goto yy1340;
- 		}
- 	} else {
- 		if (yych <= 'r') {
-@@ -18942,12 +19133,12 @@ yy1335:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 's') goto yy1338;
-+			if (yych <= 's') goto yy1340;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1336:
-+yy1338:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -18963,12 +19154,12 @@ yy1336:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 't') goto yy1337;
-+			if (yych <= 't') goto yy1339;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1337:
-+yy1339:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'H') {
- 		if (yych <= ')') {
-@@ -18990,7 +19181,7 @@ yy1337:
- 			goto yy3;
- 		}
- 	}
--yy1338:
-+yy1340:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -19006,12 +19197,12 @@ yy1338:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 't') goto yy1339;
-+			if (yych <= 't') goto yy1341;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1339:
-+yy1341:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '(') {
-@@ -19032,19 +19223,19 @@ yy1339:
- 			goto yy3;
- 		}
- 	}
--yy1340:
-+yy1342:
- 	yych = *++YYCURSOR;
--	if (yych == 'D') goto yy1341;
-+	if (yych == 'D') goto yy1343;
- 	if (yych != 'd') goto yy1197;
--yy1341:
-+yy1343:
- 	yych = *++YYCURSOR;
--	if (yych == 'A') goto yy1342;
-+	if (yych == 'A') goto yy1344;
- 	if (yych != 'a') goto yy56;
--yy1342:
-+yy1344:
- 	yych = *++YYCURSOR;
--	if (yych == 'Y') goto yy1343;
-+	if (yych == 'Y') goto yy1345;
- 	if (yych != 'y') goto yy56;
--yy1343:
-+yy1345:
- 	yyaccept = 25;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -19055,14 +19246,14 @@ yy1343:
- 		goto yy1084;
- 	}
- 	yych = *++YYCURSOR;
--	if (yych == 'O') goto yy1345;
-+	if (yych == 'O') goto yy1347;
- 	if (yych != 'o') goto yy56;
--yy1345:
-+yy1347:
- 	yych = *++YYCURSOR;
--	if (yych == 'F') goto yy1305;
--	if (yych == 'f') goto yy1305;
-+	if (yych == 'F') goto yy1306;
-+	if (yych == 'f') goto yy1306;
- 	goto yy56;
--yy1346:
-+yy1348:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '/') {
-@@ -19097,13 +19288,13 @@ yy1346:
- 				if (yych <= '`') goto yy218;
- 				goto yy167;
- 			} else {
--				if (yych <= 'r') goto yy1347;
-+				if (yych <= 'r') goto yy1349;
- 				if (yych <= 'z') goto yy167;
- 				goto yy218;
- 			}
- 		}
- 	}
--yy1347:
-+yy1349:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'U') {
- 		if (yych <= ')') {
-@@ -19119,12 +19310,12 @@ yy1347:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'u') goto yy1348;
-+			if (yych <= 'u') goto yy1350;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1348:
-+yy1350:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'A') {
- 		if (yych == ')') goto yy164;
-@@ -19134,27 +19325,27 @@ yy1348:
- 			if (yych <= 'Z') goto yy169;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1349;
-+			if (yych <= 'a') goto yy1351;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1349:
-+yy1351:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
- 		if (yych == ')') goto yy164;
- 		goto yy3;
- 	} else {
--		if (yych <= 'R') goto yy1350;
-+		if (yych <= 'R') goto yy1352;
- 		if (yych != 'r') goto yy3;
- 	}
--yy1350:
-+yy1352:
- 	yych = *++YYCURSOR;
- 	if (yych == 'Y') goto yy229;
- 	if (yych == 'y') goto yy229;
- 	goto yy56;
--yy1351:
-+yy1353:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'A') {
-@@ -19169,7 +19360,7 @@ yy1351:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'B') goto yy1346;
-+			if (yych <= 'B') goto yy1348;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19178,13 +19369,13 @@ yy1351:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'b') goto yy1369;
-+				if (yych <= 'b') goto yy1371;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1352:
-+yy1354:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
-@@ -19201,14 +19392,14 @@ yy1352:
- 				if (yych <= '/') goto yy172;
- 				goto yy3;
- 			} else {
--				if (yych == 'F') goto yy1336;
-+				if (yych == 'F') goto yy1338;
- 				goto yy166;
- 			}
- 		}
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') {
--				if (yych <= 'R') goto yy1335;
-+				if (yych <= 'R') goto yy1337;
- 				goto yy166;
- 			} else {
- 				if (yych == '_') goto yy172;
-@@ -19216,16 +19407,16 @@ yy1352:
- 			}
- 		} else {
- 			if (yych <= 'q') {
--				if (yych == 'f') goto yy1365;
-+				if (yych == 'f') goto yy1367;
- 				goto yy171;
- 			} else {
--				if (yych <= 'r') goto yy1364;
-+				if (yych <= 'r') goto yy1366;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1353:
-+yy1355:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'T') {
-@@ -19240,7 +19431,7 @@ yy1353:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'U') goto yy1332;
-+			if (yych <= 'U') goto yy1334;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19249,13 +19440,13 @@ yy1353:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'u') goto yy1361;
-+				if (yych <= 'u') goto yy1363;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1354:
-+yy1356:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'N') {
-@@ -19272,14 +19463,14 @@ yy1354:
- 				if (yych <= '/') goto yy172;
- 				goto yy3;
- 			} else {
--				if (yych == 'I') goto yy1315;
-+				if (yych == 'I') goto yy1316;
- 				goto yy166;
- 			}
- 		}
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') {
--				if (yych <= 'O') goto yy1314;
-+				if (yych <= 'O') goto yy1315;
- 				goto yy166;
- 			} else {
- 				if (yych == '_') goto yy172;
-@@ -19287,16 +19478,16 @@ yy1354:
- 			}
- 		} else {
- 			if (yych <= 'n') {
--				if (yych == 'i') goto yy1356;
-+				if (yych == 'i') goto yy1358;
- 				goto yy171;
- 			} else {
--				if (yych <= 'o') goto yy1355;
-+				if (yych <= 'o') goto yy1357;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1355:
-+yy1357:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'M') {
-@@ -19311,7 +19502,7 @@ yy1355:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'N') goto yy1318;
-+			if (yych <= 'N') goto yy1319;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19320,13 +19511,13 @@ yy1355:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 'n') goto yy1359;
-+				if (yych <= 'n') goto yy1361;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1356:
-+yy1358:
- 	yyaccept = 4;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
-@@ -19341,7 +19532,7 @@ yy1356:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'D') goto yy1316;
-+			if (yych <= 'D') goto yy1317;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy191;
- 			goto yy172;
-@@ -19350,13 +19541,13 @@ yy1356:
- 				if (yych <= '`') goto yy191;
- 				goto yy175;
- 			} else {
--				if (yych <= 'd') goto yy1357;
-+				if (yych <= 'd') goto yy1359;
- 				if (yych <= 'z') goto yy175;
- 				goto yy191;
- 			}
- 		}
- 	}
--yy1357:
-+yy1359:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '@') {
-@@ -19370,18 +19561,18 @@ yy1357:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'A') goto yy1317;
-+			if (yych <= 'A') goto yy1318;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
- 		} else {
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1358;
-+			if (yych <= 'a') goto yy1360;
- 			if (yych <= 'z') goto yy176;
- 			goto yy3;
- 		}
- 	}
--yy1358:
-+yy1360:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'X') {
-@@ -19411,7 +19602,7 @@ yy1358:
- 			}
- 		}
- 	}
--yy1359:
-+yy1361:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -19426,7 +19617,7 @@ yy1359:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1319;
-+			if (yych <= 'T') goto yy1320;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19435,18 +19626,18 @@ yy1359:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 't') goto yy1360;
-+				if (yych <= 't') goto yy1362;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1360:
-+yy1362:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '.') {
- 		if (yych <= '(') {
--			if (yych == ' ') goto yy1320;
-+			if (yych == ' ') goto yy1321;
- 			goto yy3;
- 		} else {
- 			if (yych <= ')') goto yy164;
-@@ -19466,7 +19657,7 @@ yy1360:
- 			goto yy3;
- 		}
- 	}
--yy1361:
-+yy1363:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
-@@ -19481,7 +19672,7 @@ yy1361:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'R') goto yy1333;
-+			if (yych <= 'R') goto yy1335;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19490,13 +19681,13 @@ yy1361:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 'r') goto yy1362;
-+				if (yych <= 'r') goto yy1364;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1362:
-+yy1364:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -19511,7 +19702,7 @@ yy1362:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1334;
-+			if (yych <= 'T') goto yy1336;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19520,13 +19711,13 @@ yy1362:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 't') goto yy1363;
-+				if (yych <= 't') goto yy1365;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1363:
-+yy1365:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -19556,7 +19747,7 @@ yy1363:
- 			}
- 		}
- 	}
--yy1364:
-+yy1366:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -19571,7 +19762,7 @@ yy1364:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'S') goto yy1338;
-+			if (yych <= 'S') goto yy1340;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19580,13 +19771,13 @@ yy1364:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 's') goto yy1367;
-+				if (yych <= 's') goto yy1369;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1365:
-+yy1367:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -19601,7 +19792,7 @@ yy1365:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1337;
-+			if (yych <= 'T') goto yy1339;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19610,13 +19801,13 @@ yy1365:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 't') goto yy1366;
-+				if (yych <= 't') goto yy1368;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1366:
-+yy1368:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -19646,7 +19837,7 @@ yy1366:
- 			}
- 		}
- 	}
--yy1367:
-+yy1369:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -19661,7 +19852,7 @@ yy1367:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1339;
-+			if (yych <= 'T') goto yy1341;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19670,20 +19861,20 @@ yy1367:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 't') goto yy1368;
-+				if (yych <= 't') goto yy1370;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1368:
-+yy1370:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '-') {
- 		if (yych <= ' ') {
- 			if (yych == '\t') goto yy1196;
- 			if (yych <= 0x1F) goto yy3;
--			goto yy1340;
-+			goto yy1342;
- 		} else {
- 			if (yych == ')') goto yy164;
- 			if (yych <= ',') goto yy3;
-@@ -19705,7 +19896,7 @@ yy1368:
- 			}
- 		}
- 	}
--yy1369:
-+yy1371:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '9') {
-@@ -19733,7 +19924,7 @@ yy1369:
- 				if (yych <= '@') goto yy218;
- 				goto yy167;
- 			} else {
--				if (yych <= 'R') goto yy1347;
-+				if (yych <= 'R') goto yy1349;
- 				if (yych <= 'Z') goto yy167;
- 				goto yy218;
- 			}
-@@ -19743,13 +19934,13 @@ yy1369:
- 				if (yych <= '`') goto yy218;
- 				goto yy175;
- 			} else {
--				if (yych <= 'r') goto yy1370;
-+				if (yych <= 'r') goto yy1372;
- 				if (yych <= 'z') goto yy175;
- 				goto yy218;
- 			}
- 		}
- 	}
--yy1370:
-+yy1372:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'T') {
-@@ -19764,7 +19955,7 @@ yy1370:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'U') goto yy1348;
-+			if (yych <= 'U') goto yy1350;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -19773,13 +19964,13 @@ yy1370:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'u') goto yy1371;
-+				if (yych <= 'u') goto yy1373;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1371:
-+yy1373:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '@') {
-@@ -19793,18 +19984,18 @@ yy1371:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'A') goto yy1349;
-+			if (yych <= 'A') goto yy1351;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
- 		} else {
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1372;
-+			if (yych <= 'a') goto yy1374;
- 			if (yych <= 'z') goto yy177;
- 			goto yy3;
- 		}
- 	}
--yy1372:
-+yy1374:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
-@@ -19818,33 +20009,34 @@ yy1372:
- 		}
- 	} else {
- 		if (yych <= '`') {
--			if (yych <= 'R') goto yy1350;
-+			if (yych <= 'R') goto yy1352;
- 			if (yych == '_') goto yy172;
- 			goto yy3;
- 		} else {
--			if (yych == 'r') goto yy1373;
-+			if (yych == 'r') goto yy1375;
- 			if (yych <= 'z') goto yy178;
- 			goto yy3;
- 		}
- 	}
--yy1373:
-+yy1375:
- 	yych = *++YYCURSOR;
- 	if (yych == 'Y') goto yy229;
- 	if (yych == 'y') goto yy341;
- 	goto yy179;
--yy1374:
-+yy1376:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy56;
- 	if (yych >= ':') goto yy56;
--yy1375:
-+yy1377:
- 	yyaccept = 28;
- 	YYMARKER = ++YYCURSOR;
- 	if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
- 	yych = *YYCURSOR;
--	if (yych == '.') goto yy1378;
--	if (yych <= '/') goto yy1377;
--	if (yych <= '9') goto yy1375;
--yy1377:
-+	if (yych == '.') goto yy1380;
-+	if (yych <= '/') goto yy1379;
-+	if (yych <= '9') goto yy1377;
-+yy1379:
-+#line 1025 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_ull i;
- 
-@@ -19869,7 +20061,8 @@ yy1377:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
--yy1378:
-+#line 20065 "ext/date/lib/parse_date.c"
-+yy1380:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy56;
- 	if (yych >= ':') goto yy56;
-@@ -19889,6 +20082,7 @@ yy1378:
- 	if (yych <= '/') goto yy56;
- 	if (yych >= ':') goto yy56;
- 	++YYCURSOR;
-+#line 1051 "ext/date/lib/parse_date.re"
- 	{
- 		timelib_ull i, ms;
- 
-@@ -19915,7 +20109,8 @@ yy1378:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
--yy1386:
-+#line 20113 "ext/date/lib/parse_date.c"
-+yy1388:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'N') {
- 		if (yych <= ')') {
-@@ -19924,7 +20119,7 @@ yy1386:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'M') goto yy166;
--			goto yy1427;
-+			goto yy1429;
- 		}
- 	} else {
- 		if (yych <= 'm') {
-@@ -19932,58 +20127,58 @@ yy1386:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'n') goto yy1427;
-+			if (yych <= 'n') goto yy1429;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1387:
-+yy1389:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'U') {
- 		if (yych <= '@') {
- 			if (yych == ')') goto yy164;
- 			goto yy3;
- 		} else {
--			if (yych == 'I') goto yy1419;
-+			if (yych == 'I') goto yy1421;
- 			if (yych <= 'T') goto yy166;
--			goto yy1420;
-+			goto yy1422;
- 		}
- 	} else {
- 		if (yych <= 'i') {
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '`') goto yy3;
- 			if (yych <= 'h') goto yy166;
--			goto yy1419;
-+			goto yy1421;
- 		} else {
--			if (yych == 'u') goto yy1420;
-+			if (yych == 'u') goto yy1422;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1388:
-+yy1390:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'M') {
- 		if (yych <= '@') {
- 			if (yych == ')') goto yy164;
- 			goto yy3;
- 		} else {
--			if (yych == 'D') goto yy1408;
-+			if (yych == 'D') goto yy1410;
- 			if (yych <= 'L') goto yy166;
--			goto yy1409;
-+			goto yy1411;
- 		}
- 	} else {
- 		if (yych <= 'd') {
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '`') goto yy3;
- 			if (yych <= 'c') goto yy166;
--			goto yy1408;
-+			goto yy1410;
- 		} else {
--			if (yych == 'm') goto yy1409;
-+			if (yych == 'm') goto yy1411;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1389:
-+yy1391:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'E') {
- 		if (yych <= ')') {
-@@ -19992,7 +20187,7 @@ yy1389:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'D') goto yy166;
--			goto yy1404;
-+			goto yy1406;
- 		}
- 	} else {
- 		if (yych <= 'd') {
-@@ -20000,12 +20195,12 @@ yy1389:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'e') goto yy1404;
-+			if (yych <= 'e') goto yy1406;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1390:
-+yy1392:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'E') {
- 		if (yych <= ')') {
-@@ -20014,7 +20209,7 @@ yy1390:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'D') goto yy166;
--			goto yy1400;
-+			goto yy1402;
- 		}
- 	} else {
- 		if (yych <= 'd') {
-@@ -20022,68 +20217,68 @@ yy1390:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'e') goto yy1400;
-+			if (yych <= 'e') goto yy1402;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1391:
-+yy1393:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') {
- 		if (yych == '.') goto yy1029;
- 		goto yy56;
- 	} else {
--		if (yych <= '9') goto yy1394;
-+		if (yych <= '9') goto yy1396;
- 		if (yych <= ':') goto yy1029;
- 		goto yy56;
- 	}
--yy1392:
-+yy1394:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') {
- 		if (yych == '.') goto yy1029;
- 		goto yy56;
- 	} else {
--		if (yych <= '4') goto yy1394;
-+		if (yych <= '4') goto yy1396;
- 		if (yych == ':') goto yy1029;
- 		goto yy56;
- 	}
--yy1393:
-+yy1395:
- 	yych = *++YYCURSOR;
- 	if (yych == '.') goto yy1029;
- 	if (yych == ':') goto yy1029;
- 	goto yy56;
--yy1394:
-+yy1396:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') {
- 		if (yych == '.') goto yy1029;
- 		goto yy56;
- 	} else {
--		if (yych <= '5') goto yy1395;
-+		if (yych <= '5') goto yy1397;
- 		if (yych == ':') goto yy1029;
- 		goto yy56;
- 	}
--yy1395:
-+yy1397:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy56;
- 	if (yych >= ':') goto yy56;
- 	yyaccept = 23;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '/') goto yy1032;
--	if (yych <= '5') goto yy1397;
--	if (yych <= '6') goto yy1398;
-+	if (yych <= '5') goto yy1399;
-+	if (yych <= '6') goto yy1400;
- 	goto yy1032;
--yy1397:
-+yy1399:
- 	yych = *++YYCURSOR;
- 	if (yych <= '/') goto yy56;
--	if (yych <= '9') goto yy1399;
-+	if (yych <= '9') goto yy1401;
- 	goto yy56;
--yy1398:
-+yy1400:
- 	yych = *++YYCURSOR;
- 	if (yych != '0') goto yy56;
--yy1399:
-+yy1401:
- 	yych = *++YYCURSOR;
- 	goto yy1040;
--yy1400:
-+yy1402:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'L') {
- 		if (yych <= ')') {
-@@ -20099,12 +20294,12 @@ yy1400:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 'l') goto yy1401;
-+			if (yych <= 'l') goto yy1403;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1401:
-+yy1403:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'F') {
- 		if (yych <= ')') {
-@@ -20120,12 +20315,12 @@ yy1401:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'f') goto yy1402;
-+			if (yych <= 'f') goto yy1404;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1402:
-+yy1404:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -20141,12 +20336,12 @@ yy1402:
- 			if (yych <= '`') goto yy3;
- 			goto yy169;
- 		} else {
--			if (yych <= 't') goto yy1403;
-+			if (yych <= 't') goto yy1405;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1403:
-+yy1405:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -20157,7 +20352,7 @@ yy1403:
- 		if (yych == 'h') goto yy1195;
- 		goto yy3;
- 	}
--yy1404:
-+yy1406:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'S') {
- 		if (yych <= ')') {
-@@ -20173,12 +20368,12 @@ yy1404:
- 			if (yych <= '`') goto yy191;
- 			goto yy167;
- 		} else {
--			if (yych <= 's') goto yy1405;
-+			if (yych <= 's') goto yy1407;
- 			if (yych <= 'z') goto yy167;
- 			goto yy191;
- 		}
- 	}
--yy1405:
-+yy1407:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'D') {
- 		if (yych <= ')') {
-@@ -20194,12 +20389,12 @@ yy1405:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'd') goto yy1406;
-+			if (yych <= 'd') goto yy1408;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1406:
-+yy1408:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'A') {
- 		if (yych == ')') goto yy164;
-@@ -20209,12 +20404,12 @@ yy1406:
- 			if (yych <= 'Z') goto yy169;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1407;
-+			if (yych <= 'a') goto yy1409;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1407:
-+yy1409:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'X') {
- 		if (yych == ')') goto yy164;
-@@ -20224,23 +20419,23 @@ yy1407:
- 		if (yych == 'y') goto yy197;
- 		goto yy3;
- 	}
--yy1408:
-+yy1410:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'A') {
- 		if (yych == ')') goto yy164;
- 		if (yych <= '@') goto yy3;
--		goto yy1416;
-+		goto yy1418;
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') goto yy167;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1416;
-+			if (yych <= 'a') goto yy1418;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1409:
-+yy1411:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'O') {
- 		if (yych <= ')') {
-@@ -20256,12 +20451,12 @@ yy1409:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 'o') goto yy1410;
-+			if (yych <= 'o') goto yy1412;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1410:
-+yy1412:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'R') {
- 		if (yych <= ')') {
-@@ -20277,12 +20472,12 @@ yy1410:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'r') goto yy1411;
-+			if (yych <= 'r') goto yy1413;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1411:
-+yy1413:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'R') {
- 		if (yych <= ')') {
-@@ -20298,28 +20493,29 @@ yy1411:
- 			if (yych <= '`') goto yy3;
- 			goto yy169;
- 		} else {
--			if (yych <= 'r') goto yy1412;
-+			if (yych <= 'r') goto yy1414;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1412:
-+yy1414:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'N') {
- 		if (yych == ')') goto yy164;
- 		goto yy3;
- 	} else {
--		if (yych <= 'O') goto yy1413;
-+		if (yych <= 'O') goto yy1415;
- 		if (yych != 'o') goto yy3;
- 	}
--yy1413:
-+yy1415:
- 	yych = *++YYCURSOR;
--	if (yych == 'W') goto yy1414;
-+	if (yych == 'W') goto yy1416;
- 	if (yych != 'w') goto yy56;
--yy1414:
-+yy1416:
- 	++YYCURSOR;
--yy1415:
-+yy1417:
-+#line 1013 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("tomorrow");
- 		TIMELIB_INIT;
-@@ -20330,7 +20526,8 @@ yy1415:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
--yy1416:
-+#line 20530 "ext/date/lib/parse_date.c"
-+yy1418:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'Y') {
- 		if (yych <= ')') {
-@@ -20346,21 +20543,22 @@ yy1416:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'y') goto yy1417;
-+			if (yych <= 'y') goto yy1419;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1417:
-+yy1419:
- 	++YYCURSOR;
- 	if ((yych = *YYCURSOR) <= '@') {
- 		if (yych == ')') goto yy164;
- 	} else {
- 		if (yych <= 'Z') goto yy169;
--		if (yych <= '`') goto yy1418;
-+		if (yych <= '`') goto yy1420;
- 		if (yych <= 'z') goto yy169;
- 	}
--yy1418:
-+yy1420:
-+#line 1003 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("midnight | today");
- 		TIMELIB_INIT;
-@@ -20369,7 +20567,8 @@ yy1418:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
--yy1419:
-+#line 20571 "ext/date/lib/parse_date.c"
-+yy1421:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'S') {
- 		if (yych <= '@') {
-@@ -20377,8 +20576,8 @@ yy1419:
- 			goto yy3;
- 		} else {
- 			if (yych <= 'Q') goto yy167;
--			if (yych <= 'R') goto yy1425;
--			goto yy1426;
-+			if (yych <= 'R') goto yy1427;
-+			goto yy1428;
- 		}
- 	} else {
- 		if (yych <= 'q') {
-@@ -20386,13 +20585,13 @@ yy1419:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 'r') goto yy1425;
--			if (yych <= 's') goto yy1426;
-+			if (yych <= 'r') goto yy1427;
-+			if (yych <= 's') goto yy1428;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1420:
-+yy1422:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'R') {
- 		if (yych <= ')') {
-@@ -20408,12 +20607,12 @@ yy1420:
- 			if (yych <= '`') goto yy191;
- 			goto yy167;
- 		} else {
--			if (yych <= 'r') goto yy1421;
-+			if (yych <= 'r') goto yy1423;
- 			if (yych <= 'z') goto yy167;
- 			goto yy191;
- 		}
- 	}
--yy1421:
-+yy1423:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'S') {
- 		if (yych <= ')') {
-@@ -20429,12 +20628,12 @@ yy1421:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 's') goto yy1422;
-+			if (yych <= 's') goto yy1424;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1422:
-+yy1424:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'D') {
- 		if (yych <= ')') {
-@@ -20450,27 +20649,27 @@ yy1422:
- 			if (yych <= '`') goto yy3;
- 			goto yy169;
- 		} else {
--			if (yych <= 'd') goto yy1423;
-+			if (yych <= 'd') goto yy1425;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1423:
-+yy1425:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '@') {
- 		if (yych == ')') goto yy164;
- 		goto yy3;
- 	} else {
--		if (yych <= 'A') goto yy1424;
-+		if (yych <= 'A') goto yy1426;
- 		if (yych != 'a') goto yy3;
- 	}
--yy1424:
-+yy1426:
- 	yych = *++YYCURSOR;
- 	if (yych == 'Y') goto yy197;
- 	if (yych == 'y') goto yy197;
- 	goto yy56;
--yy1425:
-+yy1427:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'D') {
- 		if (yych <= ')') {
-@@ -20492,7 +20691,7 @@ yy1425:
- 			goto yy3;
- 		}
- 	}
--yy1426:
-+yy1428:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '(') {
-@@ -20514,7 +20713,7 @@ yy1426:
- 			goto yy3;
- 		}
- 	}
--yy1427:
-+yy1429:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -20530,12 +20729,12 @@ yy1427:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 't') goto yy1428;
-+			if (yych <= 't') goto yy1430;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1428:
-+yy1430:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'H') {
- 		if (yych <= ')') {
-@@ -20557,7 +20756,7 @@ yy1428:
- 			goto yy3;
- 		}
- 	}
--yy1429:
-+yy1431:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'M') {
-@@ -20572,7 +20771,7 @@ yy1429:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'N') goto yy1427;
-+			if (yych <= 'N') goto yy1429;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20581,13 +20780,13 @@ yy1429:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'n') goto yy1459;
-+				if (yych <= 'n') goto yy1461;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1430:
-+yy1432:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'T') {
-@@ -20604,14 +20803,14 @@ yy1430:
- 				if (yych <= '/') goto yy172;
- 				goto yy3;
- 			} else {
--				if (yych == 'I') goto yy1419;
-+				if (yych == 'I') goto yy1421;
- 				goto yy166;
- 			}
- 		}
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') {
--				if (yych <= 'U') goto yy1420;
-+				if (yych <= 'U') goto yy1422;
- 				goto yy166;
- 			} else {
- 				if (yych == '_') goto yy172;
-@@ -20619,16 +20818,16 @@ yy1430:
- 			}
- 		} else {
- 			if (yych <= 't') {
--				if (yych == 'i') goto yy1451;
-+				if (yych == 'i') goto yy1453;
- 				goto yy171;
- 			} else {
--				if (yych <= 'u') goto yy1452;
-+				if (yych <= 'u') goto yy1454;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1431:
-+yy1433:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'L') {
-@@ -20645,14 +20844,14 @@ yy1431:
- 				if (yych <= '/') goto yy172;
- 				goto yy3;
- 			} else {
--				if (yych == 'D') goto yy1408;
-+				if (yych == 'D') goto yy1410;
- 				goto yy166;
- 			}
- 		}
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') {
--				if (yych <= 'M') goto yy1409;
-+				if (yych <= 'M') goto yy1411;
- 				goto yy166;
- 			} else {
- 				if (yych == '_') goto yy172;
-@@ -20660,16 +20859,16 @@ yy1431:
- 			}
- 		} else {
- 			if (yych <= 'l') {
--				if (yych == 'd') goto yy1442;
-+				if (yych == 'd') goto yy1444;
- 				goto yy171;
- 			} else {
--				if (yych <= 'm') goto yy1443;
-+				if (yych <= 'm') goto yy1445;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1432:
-+yy1434:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'D') {
-@@ -20684,7 +20883,7 @@ yy1432:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'E') goto yy1404;
-+			if (yych <= 'E') goto yy1406;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20693,13 +20892,13 @@ yy1432:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'e') goto yy1438;
-+				if (yych <= 'e') goto yy1440;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1433:
-+yy1435:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'D') {
-@@ -20714,7 +20913,7 @@ yy1433:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'E') goto yy1400;
-+			if (yych <= 'E') goto yy1402;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20723,13 +20922,13 @@ yy1433:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'e') goto yy1434;
-+				if (yych <= 'e') goto yy1436;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1434:
-+yy1436:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'K') {
-@@ -20744,7 +20943,7 @@ yy1434:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'L') goto yy1401;
-+			if (yych <= 'L') goto yy1403;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20753,13 +20952,13 @@ yy1434:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 'l') goto yy1435;
-+				if (yych <= 'l') goto yy1437;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1435:
-+yy1437:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'E') {
-@@ -20774,7 +20973,7 @@ yy1435:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'F') goto yy1402;
-+			if (yych <= 'F') goto yy1404;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20783,13 +20982,13 @@ yy1435:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'f') goto yy1436;
-+				if (yych <= 'f') goto yy1438;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1436:
-+yy1438:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -20804,7 +21003,7 @@ yy1436:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1403;
-+			if (yych <= 'T') goto yy1405;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20813,13 +21012,13 @@ yy1436:
- 				if (yych <= '`') goto yy3;
- 				goto yy177;
- 			} else {
--				if (yych <= 't') goto yy1437;
-+				if (yych <= 't') goto yy1439;
- 				if (yych <= 'z') goto yy177;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1437:
-+yy1439:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -20842,7 +21041,7 @@ yy1437:
- 			goto yy3;
- 		}
- 	}
--yy1438:
-+yy1440:
- 	yyaccept = 4;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -20857,7 +21056,7 @@ yy1438:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'S') goto yy1405;
-+			if (yych <= 'S') goto yy1407;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy191;
- 			goto yy172;
-@@ -20866,13 +21065,13 @@ yy1438:
- 				if (yych <= '`') goto yy191;
- 				goto yy175;
- 			} else {
--				if (yych <= 's') goto yy1439;
-+				if (yych <= 's') goto yy1441;
- 				if (yych <= 'z') goto yy175;
- 				goto yy191;
- 			}
- 		}
- 	}
--yy1439:
-+yy1441:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
-@@ -20887,7 +21086,7 @@ yy1439:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'D') goto yy1406;
-+			if (yych <= 'D') goto yy1408;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20896,13 +21095,13 @@ yy1439:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'd') goto yy1440;
-+				if (yych <= 'd') goto yy1442;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1440:
-+yy1442:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '@') {
-@@ -20916,18 +21115,18 @@ yy1440:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'A') goto yy1407;
-+			if (yych <= 'A') goto yy1409;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
- 		} else {
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1441;
-+			if (yych <= 'a') goto yy1443;
- 			if (yych <= 'z') goto yy177;
- 			goto yy3;
- 		}
- 	}
--yy1441:
-+yy1443:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'X') {
-@@ -20950,7 +21149,7 @@ yy1441:
- 			goto yy3;
- 		}
- 	}
--yy1442:
-+yy1444:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '@') {
-@@ -20964,18 +21163,18 @@ yy1442:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'A') goto yy1416;
-+			if (yych <= 'A') goto yy1418;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
- 		} else {
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1449;
-+			if (yych <= 'a') goto yy1451;
- 			if (yych <= 'z') goto yy175;
- 			goto yy3;
- 		}
- 	}
--yy1443:
-+yy1445:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'N') {
-@@ -20990,7 +21189,7 @@ yy1443:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'O') goto yy1410;
-+			if (yych <= 'O') goto yy1412;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -20999,13 +21198,13 @@ yy1443:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 'o') goto yy1444;
-+				if (yych <= 'o') goto yy1446;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1444:
-+yy1446:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
-@@ -21020,7 +21219,7 @@ yy1444:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'R') goto yy1411;
-+			if (yych <= 'R') goto yy1413;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21029,13 +21228,13 @@ yy1444:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'r') goto yy1445;
-+				if (yych <= 'r') goto yy1447;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1445:
-+yy1447:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
-@@ -21050,7 +21249,7 @@ yy1445:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'R') goto yy1412;
-+			if (yych <= 'R') goto yy1414;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21059,13 +21258,13 @@ yy1445:
- 				if (yych <= '`') goto yy3;
- 				goto yy177;
- 			} else {
--				if (yych <= 'r') goto yy1446;
-+				if (yych <= 'r') goto yy1448;
- 				if (yych <= 'z') goto yy177;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1446:
-+yy1448:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'N') {
-@@ -21079,18 +21278,18 @@ yy1446:
- 		}
- 	} else {
- 		if (yych <= '`') {
--			if (yych <= 'O') goto yy1413;
-+			if (yych <= 'O') goto yy1415;
- 			if (yych == '_') goto yy172;
- 			goto yy3;
- 		} else {
--			if (yych == 'o') goto yy1447;
-+			if (yych == 'o') goto yy1449;
- 			if (yych <= 'z') goto yy178;
- 			goto yy3;
- 		}
- 	}
--yy1447:
-+yy1449:
- 	yych = *++YYCURSOR;
--	if (yych == 'W') goto yy1414;
-+	if (yych == 'W') goto yy1416;
- 	if (yych != 'w') goto yy179;
- 	yyaccept = 29;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -21099,13 +21298,13 @@ yy1447:
- 	}
- 	if (yych <= '.') {
- 		if (yych == '-') goto yy172;
--		goto yy1415;
-+		goto yy1417;
- 	} else {
- 		if (yych <= '/') goto yy172;
- 		if (yych == '_') goto yy172;
--		goto yy1415;
-+		goto yy1417;
- 	}
--yy1449:
-+yy1451:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'X') {
-@@ -21120,7 +21319,7 @@ yy1449:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'Y') goto yy1417;
-+			if (yych <= 'Y') goto yy1419;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21129,36 +21328,36 @@ yy1449:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'y') goto yy1450;
-+				if (yych <= 'y') goto yy1452;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1450:
-+yy1452:
- 	yyaccept = 30;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '/') {
- 		if (yych <= ',') {
- 			if (yych == ')') goto yy164;
--			goto yy1418;
-+			goto yy1420;
- 		} else {
--			if (yych == '.') goto yy1418;
-+			if (yych == '.') goto yy1420;
- 			goto yy172;
- 		}
- 	} else {
- 		if (yych <= '^') {
--			if (yych <= '@') goto yy1418;
-+			if (yych <= '@') goto yy1420;
- 			if (yych <= 'Z') goto yy169;
--			goto yy1418;
-+			goto yy1420;
- 		} else {
- 			if (yych <= '_') goto yy172;
--			if (yych <= '`') goto yy1418;
-+			if (yych <= '`') goto yy1420;
- 			if (yych <= 'z') goto yy177;
--			goto yy1418;
-+			goto yy1420;
- 		}
- 	}
--yy1451:
-+yy1453:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -21173,13 +21372,13 @@ yy1451:
- 			} else {
- 				if (yych <= '@') goto yy3;
- 				if (yych <= 'Q') goto yy167;
--				goto yy1425;
-+				goto yy1427;
- 			}
- 		}
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') {
--				if (yych <= 'S') goto yy1426;
-+				if (yych <= 'S') goto yy1428;
- 				goto yy167;
- 			} else {
- 				if (yych == '_') goto yy172;
-@@ -21188,15 +21387,15 @@ yy1451:
- 		} else {
- 			if (yych <= 'r') {
- 				if (yych <= 'q') goto yy175;
--				goto yy1457;
-+				goto yy1459;
- 			} else {
--				if (yych <= 's') goto yy1458;
-+				if (yych <= 's') goto yy1460;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1452:
-+yy1454:
- 	yyaccept = 4;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
-@@ -21211,7 +21410,7 @@ yy1452:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'R') goto yy1421;
-+			if (yych <= 'R') goto yy1423;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy191;
- 			goto yy172;
-@@ -21220,13 +21419,13 @@ yy1452:
- 				if (yych <= '`') goto yy191;
- 				goto yy175;
- 			} else {
--				if (yych <= 'r') goto yy1453;
-+				if (yych <= 'r') goto yy1455;
- 				if (yych <= 'z') goto yy175;
- 				goto yy191;
- 			}
- 		}
- 	}
--yy1453:
-+yy1455:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -21241,7 +21440,7 @@ yy1453:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'S') goto yy1422;
-+			if (yych <= 'S') goto yy1424;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21250,13 +21449,13 @@ yy1453:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 's') goto yy1454;
-+				if (yych <= 's') goto yy1456;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1454:
-+yy1456:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
-@@ -21271,7 +21470,7 @@ yy1454:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'D') goto yy1423;
-+			if (yych <= 'D') goto yy1425;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21280,13 +21479,13 @@ yy1454:
- 				if (yych <= '`') goto yy3;
- 				goto yy177;
- 			} else {
--				if (yych <= 'd') goto yy1455;
-+				if (yych <= 'd') goto yy1457;
- 				if (yych <= 'z') goto yy177;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1455:
-+yy1457:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '@') {
-@@ -21300,22 +21499,22 @@ yy1455:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'A') goto yy1424;
-+			if (yych <= 'A') goto yy1426;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
- 		} else {
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1456;
-+			if (yych <= 'a') goto yy1458;
- 			if (yych <= 'z') goto yy178;
- 			goto yy3;
- 		}
- 	}
--yy1456:
-+yy1458:
- 	yych = *++YYCURSOR;
- 	if (yych == 'Y') goto yy197;
- 	if (yych == 'y') goto yy210;
- 	goto yy179;
--yy1457:
-+yy1459:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
-@@ -21345,7 +21544,7 @@ yy1457:
- 			}
- 		}
- 	}
--yy1458:
-+yy1460:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '-') {
-@@ -21374,7 +21573,7 @@ yy1458:
- 			}
- 		}
- 	}
--yy1459:
-+yy1461:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -21389,7 +21588,7 @@ yy1459:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1428;
-+			if (yych <= 'T') goto yy1430;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21398,13 +21597,13 @@ yy1459:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 't') goto yy1460;
-+				if (yych <= 't') goto yy1462;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1460:
-+yy1462:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -21434,30 +21633,30 @@ yy1460:
- 			}
- 		}
- 	}
--yy1461:
-+yy1463:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'Y') {
- 		if (yych <= '@') {
- 			if (yych == ')') goto yy164;
- 			goto yy3;
- 		} else {
--			if (yych == 'R') goto yy1473;
-+			if (yych == 'R') goto yy1475;
- 			if (yych <= 'X') goto yy166;
--			goto yy1474;
-+			goto yy1476;
- 		}
- 	} else {
- 		if (yych <= 'r') {
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '`') goto yy3;
- 			if (yych <= 'q') goto yy166;
--			goto yy1473;
-+			goto yy1475;
- 		} else {
--			if (yych == 'y') goto yy1474;
-+			if (yych == 'y') goto yy1476;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1462:
-+yy1464:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'D') {
- 		if (yych <= ')') {
-@@ -21466,7 +21665,7 @@ yy1462:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'C') goto yy166;
--			goto yy1467;
-+			goto yy1469;
- 		}
- 	} else {
- 		if (yych <= 'c') {
-@@ -21474,12 +21673,12 @@ yy1462:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'd') goto yy1467;
-+			if (yych <= 'd') goto yy1469;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1463:
-+yy1465:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'N') {
- 		if (yych <= ')') {
-@@ -21495,12 +21694,12 @@ yy1463:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'n') goto yy1464;
-+			if (yych <= 'n') goto yy1466;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1464:
-+yy1466:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'D') {
- 		if (yych <= ')') {
-@@ -21516,12 +21715,12 @@ yy1464:
- 			if (yych <= '`') goto yy191;
- 			goto yy167;
- 		} else {
--			if (yych <= 'd') goto yy1465;
-+			if (yych <= 'd') goto yy1467;
- 			if (yych <= 'z') goto yy167;
- 			goto yy191;
- 		}
- 	}
--yy1465:
-+yy1467:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'A') {
- 		if (yych == ')') goto yy164;
-@@ -21531,12 +21730,12 @@ yy1465:
- 			if (yych <= 'Z') goto yy168;
- 			goto yy3;
- 		} else {
--			if (yych <= 'a') goto yy1466;
-+			if (yych <= 'a') goto yy1468;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1466:
-+yy1468:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'Y') {
- 		if (yych <= ')') {
-@@ -21558,7 +21757,7 @@ yy1466:
- 			goto yy3;
- 		}
- 	}
--yy1467:
-+yy1469:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'N') {
- 		if (yych <= ')') {
-@@ -21574,12 +21773,12 @@ yy1467:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 'n') goto yy1468;
-+			if (yych <= 'n') goto yy1470;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1468:
-+yy1470:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'I') {
- 		if (yych <= ')') {
-@@ -21595,12 +21794,12 @@ yy1468:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'i') goto yy1469;
-+			if (yych <= 'i') goto yy1471;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1469:
-+yy1471:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'G') {
- 		if (yych <= ')') {
-@@ -21616,29 +21815,29 @@ yy1469:
- 			if (yych <= '`') goto yy3;
- 			goto yy169;
- 		} else {
--			if (yych <= 'g') goto yy1470;
-+			if (yych <= 'g') goto yy1472;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1470:
-+yy1472:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
- 		if (yych == ')') goto yy164;
- 		goto yy3;
- 	} else {
--		if (yych <= 'H') goto yy1471;
-+		if (yych <= 'H') goto yy1473;
- 		if (yych != 'h') goto yy3;
- 	}
--yy1471:
-+yy1473:
- 	yych = *++YYCURSOR;
--	if (yych == 'T') goto yy1472;
-+	if (yych == 'T') goto yy1474;
- 	if (yych != 't') goto yy56;
--yy1472:
-+yy1474:
- 	yych = *++YYCURSOR;
--	goto yy1418;
--yy1473:
-+	goto yy1420;
-+yy1475:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '/') {
-@@ -21666,7 +21865,7 @@ yy1473:
- 				if (yych <= '9') goto yy220;
- 				goto yy218;
- 			} else {
--				if (yych == 'C') goto yy1475;
-+				if (yych == 'C') goto yy1477;
- 				goto yy167;
- 			}
- 		} else {
-@@ -21674,13 +21873,13 @@ yy1473:
- 				if (yych <= '`') goto yy218;
- 				goto yy167;
- 			} else {
--				if (yych <= 'c') goto yy1475;
-+				if (yych <= 'c') goto yy1477;
- 				if (yych <= 'z') goto yy167;
- 				goto yy218;
- 			}
- 		}
- 	}
--yy1474:
-+yy1476:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '-') {
-@@ -21705,7 +21904,7 @@ yy1474:
- 			goto yy218;
- 		}
- 	}
--yy1475:
-+yy1477:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'H') {
- 		if (yych <= ')') {
-@@ -21727,7 +21926,7 @@ yy1475:
- 			goto yy3;
- 		}
- 	}
--yy1476:
-+yy1478:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'X') {
-@@ -21744,14 +21943,14 @@ yy1476:
- 				if (yych <= '/') goto yy172;
- 				goto yy3;
- 			} else {
--				if (yych == 'R') goto yy1473;
-+				if (yych == 'R') goto yy1475;
- 				goto yy166;
- 			}
- 		}
- 	} else {
- 		if (yych <= '`') {
- 			if (yych <= 'Z') {
--				if (yych <= 'Y') goto yy1474;
-+				if (yych <= 'Y') goto yy1476;
- 				goto yy166;
- 			} else {
- 				if (yych == '_') goto yy172;
-@@ -21759,16 +21958,16 @@ yy1476:
- 			}
- 		} else {
- 			if (yych <= 'x') {
--				if (yych == 'r') goto yy1488;
-+				if (yych == 'r') goto yy1490;
- 				goto yy171;
- 			} else {
--				if (yych <= 'y') goto yy1489;
-+				if (yych <= 'y') goto yy1491;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1477:
-+yy1479:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
-@@ -21783,7 +21982,7 @@ yy1477:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'D') goto yy1467;
-+			if (yych <= 'D') goto yy1469;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21792,13 +21991,13 @@ yy1477:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'd') goto yy1482;
-+				if (yych <= 'd') goto yy1484;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1478:
-+yy1480:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'M') {
-@@ -21813,7 +22012,7 @@ yy1478:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'N') goto yy1464;
-+			if (yych <= 'N') goto yy1466;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21822,13 +22021,13 @@ yy1478:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'n') goto yy1479;
-+				if (yych <= 'n') goto yy1481;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1479:
-+yy1481:
- 	yyaccept = 4;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
-@@ -21843,7 +22042,7 @@ yy1479:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'D') goto yy1465;
-+			if (yych <= 'D') goto yy1467;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy191;
- 			goto yy172;
-@@ -21852,13 +22051,13 @@ yy1479:
- 				if (yych <= '`') goto yy191;
- 				goto yy175;
- 			} else {
--				if (yych <= 'd') goto yy1480;
-+				if (yych <= 'd') goto yy1482;
- 				if (yych <= 'z') goto yy175;
- 				goto yy191;
- 			}
- 		}
- 	}
--yy1480:
-+yy1482:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '@') {
-@@ -21872,18 +22071,18 @@ yy1480:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'A') goto yy1466;
-+			if (yych <= 'A') goto yy1468;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
- 		} else {
- 			if (yych <= '`') goto yy3;
--			if (yych <= 'a') goto yy1481;
-+			if (yych <= 'a') goto yy1483;
- 			if (yych <= 'z') goto yy176;
- 			goto yy3;
- 		}
- 	}
--yy1481:
-+yy1483:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'X') {
-@@ -21913,7 +22112,7 @@ yy1481:
- 			}
- 		}
- 	}
--yy1482:
-+yy1484:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'M') {
-@@ -21928,7 +22127,7 @@ yy1482:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'N') goto yy1468;
-+			if (yych <= 'N') goto yy1470;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21937,13 +22136,13 @@ yy1482:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 'n') goto yy1483;
-+				if (yych <= 'n') goto yy1485;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1483:
-+yy1485:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'H') {
-@@ -21958,7 +22157,7 @@ yy1483:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'I') goto yy1469;
-+			if (yych <= 'I') goto yy1471;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21967,13 +22166,13 @@ yy1483:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'i') goto yy1484;
-+				if (yych <= 'i') goto yy1486;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1484:
-+yy1486:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'F') {
-@@ -21988,7 +22187,7 @@ yy1484:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'G') goto yy1470;
-+			if (yych <= 'G') goto yy1472;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -21997,13 +22196,13 @@ yy1484:
- 				if (yych <= '`') goto yy3;
- 				goto yy177;
- 			} else {
--				if (yych <= 'g') goto yy1485;
-+				if (yych <= 'g') goto yy1487;
- 				if (yych <= 'z') goto yy177;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1485:
-+yy1487:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -22017,18 +22216,18 @@ yy1485:
- 		}
- 	} else {
- 		if (yych <= '`') {
--			if (yych <= 'H') goto yy1471;
-+			if (yych <= 'H') goto yy1473;
- 			if (yych == '_') goto yy172;
- 			goto yy3;
- 		} else {
--			if (yych == 'h') goto yy1486;
-+			if (yych == 'h') goto yy1488;
- 			if (yych <= 'z') goto yy178;
- 			goto yy3;
- 		}
- 	}
--yy1486:
-+yy1488:
- 	yych = *++YYCURSOR;
--	if (yych == 'T') goto yy1472;
-+	if (yych == 'T') goto yy1474;
- 	if (yych != 't') goto yy179;
- 	yyaccept = 30;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -22037,13 +22236,13 @@ yy1486:
- 	}
- 	if (yych <= '.') {
- 		if (yych == '-') goto yy172;
--		goto yy1418;
-+		goto yy1420;
- 	} else {
- 		if (yych <= '/') goto yy172;
- 		if (yych == '_') goto yy172;
--		goto yy1418;
-+		goto yy1420;
- 	}
--yy1488:
-+yy1490:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '9') {
-@@ -22071,7 +22270,7 @@ yy1488:
- 				if (yych <= '@') goto yy218;
- 				goto yy167;
- 			} else {
--				if (yych <= 'C') goto yy1475;
-+				if (yych <= 'C') goto yy1477;
- 				if (yych <= 'Z') goto yy167;
- 				goto yy218;
- 			}
-@@ -22081,13 +22280,13 @@ yy1488:
- 				if (yych <= '`') goto yy218;
- 				goto yy175;
- 			} else {
--				if (yych <= 'c') goto yy1490;
-+				if (yych <= 'c') goto yy1492;
- 				if (yych <= 'z') goto yy175;
- 				goto yy218;
- 			}
- 		}
- 	}
--yy1489:
-+yy1491:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '.') {
-@@ -22122,7 +22321,7 @@ yy1489:
- 			}
- 		}
- 	}
--yy1490:
-+yy1492:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -22152,7 +22351,7 @@ yy1490:
- 			}
- 		}
- 	}
--yy1491:
-+yy1493:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'W') {
- 		if (yych <= 'N') {
-@@ -22160,29 +22359,29 @@ yy1491:
- 			if (yych <= '@') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'O') goto yy1499;
-+			if (yych <= 'O') goto yy1501;
- 			if (yych <= 'U') goto yy166;
--			if (yych <= 'V') goto yy1500;
--			goto yy1497;
-+			if (yych <= 'V') goto yy1502;
-+			goto yy1499;
- 		}
- 	} else {
- 		if (yych <= 'o') {
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '`') goto yy3;
- 			if (yych <= 'n') goto yy166;
--			goto yy1499;
-+			goto yy1501;
- 		} else {
- 			if (yych <= 'v') {
- 				if (yych <= 'u') goto yy166;
--				goto yy1500;
-+				goto yy1502;
- 			} else {
--				if (yych <= 'w') goto yy1497;
-+				if (yych <= 'w') goto yy1499;
- 				if (yych <= 'z') goto yy166;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1492:
-+yy1494:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'X') {
- 		if (yych <= ')') {
-@@ -22191,7 +22390,7 @@ yy1492:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'W') goto yy166;
--			goto yy1496;
-+			goto yy1498;
- 		}
- 	} else {
- 		if (yych <= 'w') {
-@@ -22199,12 +22398,12 @@ yy1492:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'x') goto yy1496;
-+			if (yych <= 'x') goto yy1498;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1493:
-+yy1495:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'N') {
- 		if (yych <= ')') {
-@@ -22220,12 +22419,12 @@ yy1493:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 'n') goto yy1494;
-+			if (yych <= 'n') goto yy1496;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1494:
-+yy1496:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -22241,12 +22440,12 @@ yy1494:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 't') goto yy1495;
-+			if (yych <= 't') goto yy1497;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1495:
-+yy1497:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'H') {
- 		if (yych <= ')') {
-@@ -22268,7 +22467,7 @@ yy1495:
- 			goto yy3;
- 		}
- 	}
--yy1496:
-+yy1498:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -22277,7 +22476,7 @@ yy1496:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'S') goto yy167;
--			goto yy1426;
-+			goto yy1428;
- 		}
- 	} else {
- 		if (yych <= 's') {
-@@ -22285,21 +22484,22 @@ yy1496:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 't') goto yy1426;
-+			if (yych <= 't') goto yy1428;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1497:
-+yy1499:
- 	++YYCURSOR;
- 	if ((yych = *YYCURSOR) <= '@') {
- 		if (yych == ')') goto yy164;
- 	} else {
- 		if (yych <= 'Z') goto yy167;
--		if (yych <= '`') goto yy1498;
-+		if (yych <= '`') goto yy1500;
- 		if (yych <= 'z') goto yy167;
- 	}
--yy1498:
-+yy1500:
-+#line 982 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("now");
- 		TIMELIB_INIT;
-@@ -22307,7 +22507,8 @@ yy1498:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
--yy1499:
-+#line 22511 "ext/date/lib/parse_date.c"
-+yy1501:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'N') {
- 		if (yych <= ')') {
-@@ -22316,7 +22517,7 @@ yy1499:
- 		} else {
- 			if (yych <= '@') goto yy3;
- 			if (yych <= 'M') goto yy167;
--			goto yy1505;
-+			goto yy1507;
- 		}
- 	} else {
- 		if (yych <= 'm') {
-@@ -22324,12 +22525,12 @@ yy1499:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 'n') goto yy1505;
-+			if (yych <= 'n') goto yy1507;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1500:
-+yy1502:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '/') {
-@@ -22364,13 +22565,13 @@ yy1500:
- 				if (yych <= '`') goto yy218;
- 				goto yy167;
- 			} else {
--				if (yych <= 'e') goto yy1501;
-+				if (yych <= 'e') goto yy1503;
- 				if (yych <= 'z') goto yy167;
- 				goto yy218;
- 			}
- 		}
- 	}
--yy1501:
-+yy1503:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'M') {
- 		if (yych <= ')') {
-@@ -22386,12 +22587,12 @@ yy1501:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'm') goto yy1502;
-+			if (yych <= 'm') goto yy1504;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1502:
-+yy1504:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'B') {
- 		if (yych <= ')') {
-@@ -22407,36 +22608,37 @@ yy1502:
- 			if (yych <= '`') goto yy3;
- 			goto yy169;
- 		} else {
--			if (yych <= 'b') goto yy1503;
-+			if (yych <= 'b') goto yy1505;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1503:
-+yy1505:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'D') {
- 		if (yych == ')') goto yy164;
- 		goto yy3;
- 	} else {
--		if (yych <= 'E') goto yy1504;
-+		if (yych <= 'E') goto yy1506;
- 		if (yych != 'e') goto yy3;
- 	}
--yy1504:
-+yy1506:
- 	yych = *++YYCURSOR;
- 	if (yych == 'R') goto yy229;
- 	if (yych == 'r') goto yy229;
- 	goto yy56;
--yy1505:
-+yy1507:
- 	++YYCURSOR;
- 	if ((yych = *YYCURSOR) <= '@') {
- 		if (yych == ')') goto yy164;
- 	} else {
- 		if (yych <= 'Z') goto yy168;
--		if (yych <= '`') goto yy1506;
-+		if (yych <= '`') goto yy1508;
- 		if (yych <= 'z') goto yy168;
- 	}
--yy1506:
-+yy1508:
-+#line 991 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("noon");
- 		TIMELIB_INIT;
-@@ -22447,7 +22649,8 @@ yy1506:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
--yy1507:
-+#line 22653 "ext/date/lib/parse_date.c"
-+yy1509:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'V') {
-@@ -22465,15 +22668,15 @@ yy1507:
- 				if (yych <= '@') goto yy3;
- 				goto yy166;
- 			} else {
--				if (yych <= 'O') goto yy1499;
-+				if (yych <= 'O') goto yy1501;
- 				if (yych <= 'U') goto yy166;
--				goto yy1500;
-+				goto yy1502;
- 			}
- 		}
- 	} else {
- 		if (yych <= 'n') {
- 			if (yych <= '^') {
--				if (yych <= 'W') goto yy1497;
-+				if (yych <= 'W') goto yy1499;
- 				if (yych <= 'Z') goto yy166;
- 				goto yy3;
- 			} else {
-@@ -22483,17 +22686,17 @@ yy1507:
- 			}
- 		} else {
- 			if (yych <= 'v') {
--				if (yych <= 'o') goto yy1514;
-+				if (yych <= 'o') goto yy1516;
- 				if (yych <= 'u') goto yy171;
--				goto yy1515;
-+				goto yy1517;
- 			} else {
--				if (yych <= 'w') goto yy1513;
-+				if (yych <= 'w') goto yy1515;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1508:
-+yy1510:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'W') {
-@@ -22508,7 +22711,7 @@ yy1508:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'X') goto yy1496;
-+			if (yych <= 'X') goto yy1498;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22517,13 +22720,13 @@ yy1508:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'x') goto yy1512;
-+				if (yych <= 'x') goto yy1514;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1509:
-+yy1511:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'M') {
-@@ -22538,7 +22741,7 @@ yy1509:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'N') goto yy1494;
-+			if (yych <= 'N') goto yy1496;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22547,13 +22750,13 @@ yy1509:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 'n') goto yy1510;
-+				if (yych <= 'n') goto yy1512;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1510:
-+yy1512:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -22568,7 +22771,7 @@ yy1510:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1495;
-+			if (yych <= 'T') goto yy1497;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22577,13 +22780,13 @@ yy1510:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 't') goto yy1511;
-+				if (yych <= 't') goto yy1513;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1511:
-+yy1513:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'G') {
-@@ -22613,7 +22816,7 @@ yy1511:
- 			}
- 		}
- 	}
--yy1512:
-+yy1514:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -22628,7 +22831,7 @@ yy1512:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1426;
-+			if (yych <= 'T') goto yy1428;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22637,36 +22840,36 @@ yy1512:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 't') goto yy1458;
-+				if (yych <= 't') goto yy1460;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1513:
-+yy1515:
- 	yyaccept = 31;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '/') {
- 		if (yych <= ',') {
- 			if (yych == ')') goto yy164;
--			goto yy1498;
-+			goto yy1500;
- 		} else {
--			if (yych == '.') goto yy1498;
-+			if (yych == '.') goto yy1500;
- 			goto yy172;
- 		}
- 	} else {
- 		if (yych <= '^') {
--			if (yych <= '@') goto yy1498;
-+			if (yych <= '@') goto yy1500;
- 			if (yych <= 'Z') goto yy167;
--			goto yy1498;
-+			goto yy1500;
- 		} else {
- 			if (yych <= '_') goto yy172;
--			if (yych <= '`') goto yy1498;
-+			if (yych <= '`') goto yy1500;
- 			if (yych <= 'z') goto yy175;
--			goto yy1498;
-+			goto yy1500;
- 		}
- 	}
--yy1514:
-+yy1516:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'M') {
-@@ -22681,7 +22884,7 @@ yy1514:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'N') goto yy1505;
-+			if (yych <= 'N') goto yy1507;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22690,13 +22893,13 @@ yy1514:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 'n') goto yy1520;
-+				if (yych <= 'n') goto yy1522;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1515:
-+yy1517:
- 	yyaccept = 5;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '9') {
-@@ -22724,7 +22927,7 @@ yy1515:
- 				if (yych <= '@') goto yy218;
- 				goto yy167;
- 			} else {
--				if (yych <= 'E') goto yy1501;
-+				if (yych <= 'E') goto yy1503;
- 				if (yych <= 'Z') goto yy167;
- 				goto yy218;
- 			}
-@@ -22734,13 +22937,13 @@ yy1515:
- 				if (yych <= '`') goto yy218;
- 				goto yy175;
- 			} else {
--				if (yych <= 'e') goto yy1516;
-+				if (yych <= 'e') goto yy1518;
- 				if (yych <= 'z') goto yy175;
- 				goto yy218;
- 			}
- 		}
- 	}
--yy1516:
-+yy1518:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'L') {
-@@ -22755,7 +22958,7 @@ yy1516:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'M') goto yy1502;
-+			if (yych <= 'M') goto yy1504;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22764,13 +22967,13 @@ yy1516:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'm') goto yy1517;
-+				if (yych <= 'm') goto yy1519;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1517:
-+yy1519:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'A') {
-@@ -22785,7 +22988,7 @@ yy1517:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'B') goto yy1503;
-+			if (yych <= 'B') goto yy1505;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22794,13 +22997,13 @@ yy1517:
- 				if (yych <= '`') goto yy3;
- 				goto yy177;
- 			} else {
--				if (yych <= 'b') goto yy1518;
-+				if (yych <= 'b') goto yy1520;
- 				if (yych <= 'z') goto yy177;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1518:
-+yy1520:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'D') {
-@@ -22814,44 +23017,44 @@ yy1518:
- 		}
- 	} else {
- 		if (yych <= '`') {
--			if (yych <= 'E') goto yy1504;
-+			if (yych <= 'E') goto yy1506;
- 			if (yych == '_') goto yy172;
- 			goto yy3;
- 		} else {
--			if (yych == 'e') goto yy1519;
-+			if (yych == 'e') goto yy1521;
- 			if (yych <= 'z') goto yy178;
- 			goto yy3;
- 		}
- 	}
--yy1519:
-+yy1521:
- 	yych = *++YYCURSOR;
- 	if (yych == 'R') goto yy229;
- 	if (yych == 'r') goto yy341;
- 	goto yy179;
--yy1520:
-+yy1522:
- 	yyaccept = 32;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= '/') {
- 		if (yych <= ',') {
- 			if (yych == ')') goto yy164;
--			goto yy1506;
-+			goto yy1508;
- 		} else {
--			if (yych == '.') goto yy1506;
-+			if (yych == '.') goto yy1508;
- 			goto yy172;
- 		}
- 	} else {
- 		if (yych <= '^') {
--			if (yych <= '@') goto yy1506;
-+			if (yych <= '@') goto yy1508;
- 			if (yych <= 'Z') goto yy168;
--			goto yy1506;
-+			goto yy1508;
- 		} else {
- 			if (yych <= '_') goto yy172;
--			if (yych <= '`') goto yy1506;
-+			if (yych <= '`') goto yy1508;
- 			if (yych <= 'z') goto yy176;
--			goto yy1506;
-+			goto yy1508;
- 		}
- 	}
--yy1521:
-+yy1523:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'S') {
- 		if (yych <= ')') {
-@@ -22867,12 +23070,12 @@ yy1521:
- 			if (yych <= '`') goto yy3;
- 			goto yy166;
- 		} else {
--			if (yych <= 's') goto yy1522;
-+			if (yych <= 's') goto yy1524;
- 			if (yych <= 'z') goto yy166;
- 			goto yy3;
- 		}
- 	}
--yy1522:
-+yy1524:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'T') {
- 		if (yych <= ')') {
-@@ -22888,12 +23091,12 @@ yy1522:
- 			if (yych <= '`') goto yy3;
- 			goto yy167;
- 		} else {
--			if (yych <= 't') goto yy1523;
-+			if (yych <= 't') goto yy1525;
- 			if (yych <= 'z') goto yy167;
- 			goto yy3;
- 		}
- 	}
--yy1523:
-+yy1525:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'E') {
- 		if (yych <= ')') {
-@@ -22909,12 +23112,12 @@ yy1523:
- 			if (yych <= '`') goto yy3;
- 			goto yy168;
- 		} else {
--			if (yych <= 'e') goto yy1524;
-+			if (yych <= 'e') goto yy1526;
- 			if (yych <= 'z') goto yy168;
- 			goto yy3;
- 		}
- 	}
--yy1524:
-+yy1526:
- 	yych = *++YYCURSOR;
- 	if (yych <= 'R') {
- 		if (yych <= ')') {
-@@ -22930,32 +23133,33 @@ yy1524:
- 			if (yych <= '`') goto yy3;
- 			goto yy169;
- 		} else {
--			if (yych <= 'r') goto yy1525;
-+			if (yych <= 'r') goto yy1527;
- 			if (yych <= 'z') goto yy169;
- 			goto yy3;
- 		}
- 	}
--yy1525:
-+yy1527:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
- 		if (yych == ')') goto yy164;
- 		goto yy3;
- 	} else {
--		if (yych <= 'D') goto yy1526;
-+		if (yych <= 'D') goto yy1528;
- 		if (yych != 'd') goto yy3;
- 	}
--yy1526:
-+yy1528:
- 	yych = *++YYCURSOR;
--	if (yych == 'A') goto yy1527;
-+	if (yych == 'A') goto yy1529;
- 	if (yych != 'a') goto yy56;
--yy1527:
-+yy1529:
- 	yych = *++YYCURSOR;
--	if (yych == 'Y') goto yy1528;
-+	if (yych == 'Y') goto yy1530;
- 	if (yych != 'y') goto yy56;
--yy1528:
-+yy1530:
- 	++YYCURSOR;
--yy1529:
-+yy1531:
-+#line 970 "ext/date/lib/parse_date.re"
- 	{
- 		DEBUG_OUTPUT("yesterday");
- 		TIMELIB_INIT;
-@@ -22966,7 +23170,8 @@ yy1529:
- 		TIMELIB_DEINIT;
- 		return TIMELIB_RELATIVE;
- 	}
--yy1530:
-+#line 23174 "ext/date/lib/parse_date.c"
-+yy1532:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'R') {
-@@ -22981,7 +23186,7 @@ yy1530:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'S') goto yy1522;
-+			if (yych <= 'S') goto yy1524;
- 			if (yych <= 'Z') goto yy166;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -22990,13 +23195,13 @@ yy1530:
- 				if (yych <= '`') goto yy3;
- 				goto yy171;
- 			} else {
--				if (yych <= 's') goto yy1531;
-+				if (yych <= 's') goto yy1533;
- 				if (yych <= 'z') goto yy171;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1531:
-+yy1533:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'S') {
-@@ -23011,7 +23216,7 @@ yy1531:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'T') goto yy1523;
-+			if (yych <= 'T') goto yy1525;
- 			if (yych <= 'Z') goto yy167;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -23020,13 +23225,13 @@ yy1531:
- 				if (yych <= '`') goto yy3;
- 				goto yy175;
- 			} else {
--				if (yych <= 't') goto yy1532;
-+				if (yych <= 't') goto yy1534;
- 				if (yych <= 'z') goto yy175;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1532:
-+yy1534:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'D') {
-@@ -23041,7 +23246,7 @@ yy1532:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'E') goto yy1524;
-+			if (yych <= 'E') goto yy1526;
- 			if (yych <= 'Z') goto yy168;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -23050,13 +23255,13 @@ yy1532:
- 				if (yych <= '`') goto yy3;
- 				goto yy176;
- 			} else {
--				if (yych <= 'e') goto yy1533;
-+				if (yych <= 'e') goto yy1535;
- 				if (yych <= 'z') goto yy176;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1533:
-+yy1535:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'Q') {
-@@ -23071,7 +23276,7 @@ yy1533:
- 		}
- 	} else {
- 		if (yych <= '_') {
--			if (yych <= 'R') goto yy1525;
-+			if (yych <= 'R') goto yy1527;
- 			if (yych <= 'Z') goto yy169;
- 			if (yych <= '^') goto yy3;
- 			goto yy172;
-@@ -23080,13 +23285,13 @@ yy1533:
- 				if (yych <= '`') goto yy3;
- 				goto yy177;
- 			} else {
--				if (yych <= 'r') goto yy1534;
-+				if (yych <= 'r') goto yy1536;
- 				if (yych <= 'z') goto yy177;
- 				goto yy3;
- 			}
- 		}
- 	}
--yy1534:
-+yy1536:
- 	yyaccept = 0;
- 	yych = *(YYMARKER = ++YYCURSOR);
- 	if (yych <= 'C') {
-@@ -23100,21 +23305,21 @@ yy1534:
- 		}
- 	} else {
- 		if (yych <= '`') {
--			if (yych <= 'D') goto yy1526;
-+			if (yych <= 'D') goto yy1528;
- 			if (yych == '_') goto yy172;
- 			goto yy3;
- 		} else {
--			if (yych == 'd') goto yy1535;
-+			if (yych == 'd') goto yy1537;
- 			if (yych <= 'z') goto yy178;
- 			goto yy3;
- 		}
- 	}
--yy1535:
-+yy1537:
- 	yych = *++YYCURSOR;
--	if (yych == 'A') goto yy1527;
-+	if (yych == 'A') goto yy1529;
- 	if (yych != 'a') goto yy179;
- 	yych = *++YYCURSOR;
--	if (yych == 'Y') goto yy1528;
-+	if (yych == 'Y') goto yy1530;
- 	if (yych != 'y') goto yy179;
- 	yyaccept = 33;
- 	yych = *(YYMARKER = ++YYCURSOR);
-@@ -23123,13 +23328,14 @@ yy1535:
- 	}
- 	if (yych <= '.') {
- 		if (yych == '-') goto yy172;
--		goto yy1529;
-+		goto yy1531;
- 	} else {
- 		if (yych <= '/') goto yy172;
- 		if (yych == '_') goto yy172;
--		goto yy1529;
-+		goto yy1531;
- 	}
- }
-+#line 1772 "ext/date/lib/parse_date.re"
- 
- }
- 
-diff --git a/ext/date/lib/parse_date.re b/ext/date/lib/parse_date.re
-index 74d9ea3..f26e276 100644
---- a/ext/date/lib/parse_date.re
-+++ b/ext/date/lib/parse_date.re
-@@ -931,8 +931,8 @@ isoweek          = year4 "-"? "W" weekofyear;
- exif             = year4 ":" monthlz ":" daylz " " hour24lz ":" minutelz ":" secondlz;
- firstdayof       = 'first day of';
- lastdayof        = 'last day of';
--backof           = 'back of ' hour24 space? meridian?;
--frontof          = 'front of ' hour24 space? meridian?;
-+backof           = 'back of ' hour24 (space? meridian)?;
-+frontof          = 'front of ' hour24 (space? meridian)?;
- 
- /* Common Log Format: 10/Oct/2000:13:55:36 -0700 */
- clf              = day "/" monthabbr "/" year4 ":" hour24lz ":" minutelz ":" secondlz space tzcorrection;
-diff --git a/ext/date/tests/bug53437_var3.phpt b/ext/date/tests/bug53437_var3.phpt
-index 8f48b1b..8dcd4c8 100644
---- a/ext/date/tests/bug53437_var3.phpt
-+++ b/ext/date/tests/bug53437_var3.phpt
-@@ -40,7 +40,7 @@ object(DateInterval)#%d (16) {
-   ["special_amount"]=>
-   int(-1)
-   ["have_weekday_relative"]=>
--  int(9)
-+  int(0)
-   ["have_special_relative"]=>
-   int(0)
-   ["f"]=>
-diff --git a/ext/wddx/tests/bug75055.phpt b/ext/wddx/tests/bug75055.phpt
-new file mode 100644
-index 0000000..2956284
---- /dev/null
-+++ b/ext/wddx/tests/bug75055.phpt
-@@ -0,0 +1,20 @@
-+--TEST--
-+Bug #75055 Out-Of-Bounds Read in timelib_meridian()
-+--SKIPIF--
-+<?php if (!extension_loaded("wddx")) print "skip"; ?>
-+--FILE--
-+<?php
-+
-+$file_str = dirname(__FILE__) . "/bug75055.wddx";
-+
-+$wddx_str = file_get_contents($file_str);
-+print strlen($wddx_str) . " bytes read.\n";
-+
-+var_dump(wddx_deserialize($wddx_str));
-+?>
-+--EXPECT--
-+323 bytes read.
-+array(1) {
-+  ["aDateTime"]=>
-+  string(12) "frONt of 0 0"
-+}
-diff --git a/ext/wddx/tests/bug75055.wddx b/ext/wddx/tests/bug75055.wddx
-new file mode 100644
-index 0000000..6493352
---- /dev/null
-+++ b/ext/wddx/tests/bug75055.wddx
-@@ -0,0 +1,13 @@
-+<?xml version='1.0'?>
-+<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
-+<wddxPacket version='1.0'>
-+<header/>
-+	<data>
-+        	<struct>
-+                    <var name='aDateTime'>
-+                         <dateTime>frONt of 0 0</dateTime>
-+                     </var>
-+                </struct>
-+	</data>
-+</wddxPacket>
-+
--- 
-2.11.0
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/change-AC_TRY_RUN-to-AC_TRY_LINK.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
deleted file mode 100644
index 39c334f..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-[PATCH] config.m4: change AC_TRY_RUN to AC_TRY_LINK
-
-Upstream-Status: Pending
-
-AC_TRY_RUN is not suitable for cross-compile
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- ext/fileinfo/config.m4 | 31 ++++++-------------------------
- 1 file changed, 6 insertions(+), 25 deletions(-)
-
-diff --git a/ext/fileinfo/config.m4 b/ext/fileinfo/config.m4
-index 7e98d62..8a8ea0e 100644
---- a/ext/fileinfo/config.m4
-+++ b/ext/fileinfo/config.m4
-@@ -14,31 +14,12 @@ if test "$PHP_FILEINFO" != "no"; then
-     libmagic/readcdf.c libmagic/softmagic.c"
- 
-   AC_MSG_CHECKING([for strcasestr])
--  AC_TRY_RUN([
--#include <string.h>
--#include <strings.h>
--#include <stdlib.h>
--
--int main(void)
--{
--        char *s0, *s1, *ret;
--
--        s0 = (char *) malloc(42);
--        s1 = (char *) malloc(8);
--
--        memset(s0, 'X', 42);
--        s0[24] = 'Y';
--        s0[26] = 'Z';
--        s0[41] = '\0';
--        memset(s1, 'x', 8);
--        s1[0] = 'y';
--        s1[2] = 'Z';
--        s1[7] = '\0';
--
--        ret = strcasestr(s0, s1);
--
--        return !(NULL != ret);
--}
-+  AC_TRY_COMPILE([
-+     #include <string.h>
-+     #include <strings.h>
-+     #include <stdlib.h>
-+  ],[
-+     strcasestr(NULL, NULL);
-   ],[
-     dnl using the platform implementation
-     AC_MSG_RESULT(yes)
--- 
-1.9.1
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php.inc b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php.inc
index 283d630..066b97c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php.inc
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php.inc
@@ -6,26 +6,22 @@
 
 BBCLASSEXTEND = "native"
 DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native \
-           openssl libmcrypt"
+           openssl"
 DEPENDS_class-native = "zlib-native libxml2-native"
 
 PHP_MAJOR_VERSION = "${@d.getVar('PV', True).split('.')[0]}"
 
 SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \
-           file://acinclude-xml2-config.patch \
            file://0001-php-don-t-use-broken-wrapper-for-mkdir.patch \
-           file://0001-acinclude-use-pkgconfig-for-libxml2-config.patch \
           "
 
 SRC_URI_append_class-target = " \
             file://iconv.patch \
             file://imap-fix-autofoo.patch \
-            file://pear-makefile.patch \
-            file://phar-makefile.patch \
             file://php_exec_native.patch \
             file://php-fpm.conf \
             file://php-fpm-apache.conf \
-            file://configure.patch \
+            file://0001-acinclude.m4-don-t-unset-cache-variables.patch \
             file://70_mod_php${PHP_MAJOR_VERSION}.conf \
             file://php-fpm.service \
           "
@@ -44,7 +40,6 @@
 COMMON_EXTRA_OECONF = "--enable-sockets \
                        --enable-pcntl \
                        --enable-shared \
-                       --disable-opcache \
                        --disable-rpath \
                        --with-pic \
                        --libdir=${PHP_LIBDIR} \
@@ -57,20 +52,22 @@
                 --with-gettext=${STAGING_LIBDIR}/.. \
                 --with-zlib=${STAGING_LIBDIR}/.. \
                 --with-iconv=${STAGING_LIBDIR}/.. \
-                --with-mcrypt=${STAGING_DIR_TARGET}${exec_prefix} \
                 --with-bz2=${STAGING_DIR_TARGET}${exec_prefix} \
                 --with-config-file-path=${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION} \
-                ${@base_conditional('SITEINFO_ENDIANNESS', 'le', 'ac_cv_c_bigendian_php=no', 'ac_cv_c_bigendian_php=yes', d)} \
+                ${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'ac_cv_c_bigendian_php=no', 'ac_cv_c_bigendian_php=yes', d)} \
                 ${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'ac_cv_lib_pam_pam_start=no', d)} \
                 ${COMMON_EXTRA_OECONF} \
 "
+
+CACHED_CONFIGUREVARS += "ac_cv_func_dlopen=yes ac_cv_lib_dl_dlopen=yes"
+
 EXTRA_OECONF_class-native = " \
                 --with-zlib=${STAGING_LIBDIR_NATIVE}/.. \
                 --without-iconv \
                 ${COMMON_EXTRA_OECONF} \
 "
 
-PACKAGECONFIG ??= "mysql sqlite3 imap \
+PACKAGECONFIG ??= "mysql sqlite3 imap opcache \
                    ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 pam', d)} \
 "
 PACKAGECONFIG_class-native = ""
@@ -94,7 +91,7 @@
                        ,--without-imap --without-imap-ssl \
                        ,uw-imap"
 PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-
+PACKAGECONFIG[opcache] = ",--disable-opcache"
 
 export PHP_NATIVE_DIR = "${STAGING_BINDIR_NATIVE}"
 export PHP_PEAR_PHP_BIN = "${STAGING_BINDIR_NATIVE}/php"
@@ -201,14 +198,14 @@
 
 MODPHP_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', '${PN}-modphp', '', d)}"
 
-PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 ${PN}-pear ${PN}-phar ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}"
+PACKAGES = "${PN}-dbg ${PN}-cli ${PN}-cgi ${PN}-fpm ${PN}-fpm-apache2 ${PN}-pear ${PN}-phar ${MODPHP_PACKAGE} ${PN}-dev ${PN}-staticdev ${PN}-doc ${PN}-opcache ${PN}"
 
 RDEPENDS_${PN} += "libgcc"
 RDEPENDS_${PN}-pear = "${PN}"
 RDEPENDS_${PN}-phar = "${PN}-cli"
 RDEPENDS_${PN}-cli = "${PN}"
 RDEPENDS_${PN}-modphp = "${PN} apache2"
-RDEPENDS_${PN}-dev = "${PN}"
+RDEPENDS_${PN}-opcache = "${PN}"
 
 INITSCRIPT_PACKAGES = "${PN}-fpm"
 inherit update-rc.d
@@ -237,6 +234,8 @@
                 ${bindir}/php-config ${PHP_LIBDIR}/php/.depdb \
                 ${PHP_LIBDIR}/php/.depdblock ${PHP_LIBDIR}/php/.filemap \
                 ${PHP_LIBDIR}/php/.lock ${PHP_LIBDIR}/php/test"
+FILES_${PN}-staticdev += "${PHP_LIBDIR}/extensions/*/*.a"
+FILES_${PN}-opcache = "${PHP_LIBDIR}/extensions/*/opcache${SOLIBSDEV}"
 FILES_${PN} = "${PHP_LIBDIR}/php"
 FILES_${PN} += "${bindir}"
 
@@ -253,18 +252,6 @@
         PHP_PEAR_SYSCONF_DIR=${sysconfdir}/
 }
 
-SSTATEPOSTINSTFUNCS_append_class-native = " php_sstate_postinst "
-
-php_sstate_postinst() {
-    if [ "${BB_CURRENTTASK}" = "populate_sysroot_setscene" ]
-    then
-        head -n1 ${sysconfdir}/pear.conf > ${sysconfdir}/pear.tmp.conf
-        for p in `tail -n1  ${sysconfdir}/pear.conf | sed -s 's/;/ /g'`; do
-            echo $p | awk -F: 'BEGIN {OFS = ":"; ORS = ";"}{if(NF==3){print $1, length($3)-2*match($3, /^"/), $3} else {print $0}}';
-        done >> ${sysconfdir}/pear.tmp.conf
-        mv -f ${sysconfdir}/pear.tmp.conf ${sysconfdir}/pear.conf
-    fi
-}
 
 # Fails to build with thumb-1 (qemuarm)
 # | {standard input}: Assembler messages:
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/0001-Add-lpthread-to-link.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Add-lpthread-to-link.patch
similarity index 100%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/0001-Add-lpthread-to-link.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-Add-lpthread-to-link.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch
new file mode 100644
index 0000000..a250cac
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch
@@ -0,0 +1,39 @@
+From dfebe81f946a83fe2499fc84d4f3dbdc5612276c Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anuj.mittal@intel.com>
+Date: Tue, 3 Apr 2018 11:35:03 +0800
+Subject: [PATCH] acinclude.m4: don't unset cache variables
+
+Unsetting prevents cache variable from being passed to configure.
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ acinclude.m4 | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index f6a55ec..d3346df 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -1890,8 +1890,6 @@ define([phpshift],[ifelse(index([$@],[,]),-1,,[substr([$@],incr(index([$@],[,]))
+ dnl
+ AC_DEFUN([PHP_CHECK_FUNC_LIB],[
+   ifelse($2,,:,[
+-  unset ac_cv_lib_$2[]_$1
+-  unset ac_cv_lib_$2[]___$1
+   unset found
+   AC_CHECK_LIB($2, $1, [found=yes], [
+     AC_CHECK_LIB($2, __$1, [found=yes], [found=no])
+@@ -1923,8 +1921,6 @@ dnl in the default libraries and as a fall back in the specified library.
+ dnl Defines HAVE_func and HAVE_library if found and adds the library to LIBS.
+ dnl
+ AC_DEFUN([PHP_CHECK_FUNC],[
+-  unset ac_cv_func_$1
+-  unset ac_cv_func___$1
+   unset found
+   
+   AC_CHECK_FUNC($1, [found=yes],[ AC_CHECK_FUNC(__$1,[found=yes],[found=no]) ])
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-skip-binconfig-check-for-libxml.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-skip-binconfig-check-for-libxml.patch
new file mode 100644
index 0000000..1532926
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-skip-binconfig-check-for-libxml.patch
@@ -0,0 +1,56 @@
+From a2d146b8dd9d02f523d1e205d79792626a71dec3 Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anuj.mittal@intel.com>
+Date: Mon, 2 Apr 2018 15:27:09 +0800
+Subject: [PATCH] acinclude.m4: skip binconfig check for libxml
+
+We want libxml flags to be picked up using pkg-config instead of the
+xml2-config file.
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+---
+ acinclude.m4 | 29 -----------------------------
+ 1 file changed, 29 deletions(-)
+
+diff --git a/acinclude.m4 b/acinclude.m4
+index d42d708..d32766a 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -2525,35 +2525,6 @@ dnl
+ AC_DEFUN([PHP_SETUP_LIBXML], [
+   found_libxml=no
+ 
+-  dnl First try to find xml2-config
+-  AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path,
+-  [
+-    for i in $PHP_LIBXML_DIR /usr/local /usr; do
+-      if test -x "$i/bin/xml2-config"; then
+-        ac_cv_php_xml2_config_path="$i/bin/xml2-config"
+-        break
+-      fi
+-    done
+-  ])
+-
+-  if test -x "$ac_cv_php_xml2_config_path"; then
+-    XML2_CONFIG="$ac_cv_php_xml2_config_path"
+-    libxml_full_version=`$XML2_CONFIG --version`
+-    ac_IFS=$IFS
+-    IFS="."
+-    set $libxml_full_version
+-    IFS=$ac_IFS
+-    LIBXML_VERSION=`expr [$]1 \* 1000000 + [$]2 \* 1000 + [$]3`
+-    if test "$LIBXML_VERSION" -ge "2006011"; then
+-      found_libxml=yes
+-      LIBXML_LIBS=`$XML2_CONFIG --libs`
+-      LIBXML_INCS=`$XML2_CONFIG --cflags`
+-    else
+-      AC_MSG_ERROR([libxml2 version 2.6.11 or greater required.])
+-    fi
+-  fi
+-
+-  dnl If xml2-config fails, try pkg-config
+   if test "$found_libxml" = "no"; then
+     if test -z "$PKG_CONFIG"; then
+       AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-fix-error-caused-by-a-new-variable-is-declared-after.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-fix-error-caused-by-a-new-variable-is-declared-after.patch
new file mode 100644
index 0000000..6ab101b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-fix-error-caused-by-a-new-variable-is-declared-after.patch
@@ -0,0 +1,45 @@
+From 0d88d735887c6f2fa00a743c27124c7a52006a41 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Sun, 15 Apr 2018 19:17:27 -0700
+Subject: [PATCH] fix error caused by a new variable is declared after the
+ label
+
+There is a build failure on mips:
+...
+|sljitNativeMIPS_common.c: In function 'sljit_has_cpu_feature':
+|sljitNativeMIPS_common.c:506:3: error: a label can only be part
+of a statement and a declaration is not a statement
+|   sljit_sw fir;
+|   ^~~~~~~~
+...
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c b/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c
+index ee207fe..adfd342 100644
+--- a/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c
++++ b/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c
+@@ -498,12 +498,14 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
+ 
+ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type)
+ {
++#if defined(__GNUC__)
++	sljit_sw fir;
++#endif
+ 	switch (feature_type) {
+ 	case SLJIT_HAS_FPU:
+ #ifdef SLJIT_IS_FPU_AVAILABLE
+ 		return SLJIT_IS_FPU_AVAILABLE;
+ #elif defined(__GNUC__)
+-		sljit_sw fir;
+ 		asm ("cfc1 %0, $0" : "=r"(fir));
+ 		return (fir >> 22) & 0x1;
+ #else
+-- 
+2.10.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch
new file mode 100644
index 0000000..fce9738
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch
@@ -0,0 +1,63 @@
+From 2842aa2a078eb1cad55540b61e7edf111395150d Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+Date: Mon, 26 Feb 2018 19:30:55 +0100
+Subject: [PATCH] main/php_ini.c: build empty php_load_zend_extension_cb() when
+ !HAVE_LIBDL
+
+Commit 0782a7fc6314c8bd3cbfd57f12d0479bf9cc8dc7 ("Fixed bug #74866
+extension_dir = "./ext" now use current directory for base") modified
+the php_load_zend_extension_cb() function to use php_load_shlib(), and
+pass a handle to the newly introduced zend_load_extension_handle()
+function instead of passing the extension path to
+zend_load_extension().
+
+While doing so, it introduced a call to php_load_shlib() from code
+that is built even when HAVE_LIBDL is not defined. However,
+php_load_shlib() is not implemented when HAVE_LIBDL is not defined,
+for obvious reasons.
+
+It turns out that zend_load_extension_handle() anyway doesn't do
+anything when ZEND_EXTENSIONS_SUPPORT is defined to 0, and
+ZEND_EXTENSIONS_SUPPORT is not defined when HAVE_LIBDL is not defined
+(Zend/zend_portability.h).
+
+Fixes the following build failure when building on a system that
+doesn't have libdl:
+
+main/php_ini.o: In function `php_load_zend_extension_cb':
+php_ini.c:(.text+0x478): undefined reference to `php_load_shlib'
+php_ini.c:(.text+0x4b0): undefined reference to `php_load_shlib'
+collect2: error: ld returned 1 exit status
+
+Upstream-Status: Backport [http://git.php.net/?p=php-src.git;a=commit;h=2842aa2a078eb1cad55540b61e7edf111395150d]
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ main/php_ini.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/main/php_ini.c b/main/php_ini.c
+index ba58eb1..fca263e 100644
+--- a/main/php_ini.c
++++ b/main/php_ini.c
+@@ -350,6 +350,7 @@ static void php_load_php_extension_cb(void *arg)
+ 
+ /* {{{ php_load_zend_extension_cb
+  */
++#ifdef HAVE_LIBDL
+ static void php_load_zend_extension_cb(void *arg)
+ {
+ 	char *filename = *((char **) arg);
+@@ -409,6 +410,9 @@ static void php_load_zend_extension_cb(void *arg)
+ 		efree(libpath);
+ 	}
+ }
++#else
++static void php_load_zend_extension_cb(void *arg) { }
++#endif
+ /* }}} */
+ 
+ /* {{{ php_init_config
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch
new file mode 100644
index 0000000..0d24d34
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch
@@ -0,0 +1,385 @@
+From b2fb725dc404d471371731b663234e87cb0fca84 Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anuj.mittal@intel.com>
+Date: Mon, 2 Apr 2018 17:54:52 +0800
+Subject: [PATCH] opcache/config.m4: enable opcache
+
+We can't use AC_TRY_RUN to run programs in a cross compile environment. Set
+the variables directly instead since we know that we'd be running on latest
+enough linux kernel.
+
+Upstream-Status: Inappropriate [Configuration]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+---
+ ext/opcache/config.m4 | 349 ++------------------------------------------------
+ 1 file changed, 8 insertions(+), 341 deletions(-)
+
+diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4
+index 7b500f0..10bb99a 100644
+--- a/ext/opcache/config.m4
++++ b/ext/opcache/config.m4
+@@ -28,353 +28,20 @@ if test "$PHP_OPCACHE" != "no"; then
+ 
+   AC_CHECK_HEADERS([unistd.h sys/uio.h])
+ 
+-  AC_MSG_CHECKING(for sysvipc shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/ipc.h>
+-#include <sys/shm.h>
+-#include <unistd.h>
+-#include <string.h>
++  AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
+ 
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int ipc_id;
+-  char *shm;
+-  struct shmid_ds shmbuf;
++  AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
+ 
+-  ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W));
+-  if (ipc_id == -1) {
+-    return 1;
+-  }
++  AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
+ 
+-  shm = shmat(ipc_id, NULL, 0);
+-  if (shm == (void *)-1) {
+-    shmctl(ipc_id, IPC_RMID, NULL);
+-    return 2;
+-  }
+-
+-  if (shmctl(ipc_id, IPC_STAT, &shmbuf) != 0) {
+-    shmdt(shm);
+-    shmctl(ipc_id, IPC_RMID, NULL);
+-    return 3;
+-  }
+-
+-  shmbuf.shm_perm.uid = getuid();
+-  shmbuf.shm_perm.gid = getgid();
+-  shmbuf.shm_perm.mode = 0600;
+-
+-  if (shmctl(ipc_id, IPC_SET, &shmbuf) != 0) {
+-    shmdt(shm);
+-    shmctl(ipc_id, IPC_RMID, NULL);
+-    return 4;
+-  }
+-
+-  shmctl(ipc_id, IPC_RMID, NULL);
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-  AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <unistd.h>
+-#include <string.h>
+-
+-#ifndef MAP_ANON
+-# ifdef MAP_ANONYMOUS
+-#  define MAP_ANON MAP_ANONYMOUS
+-# endif
+-#endif
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  char *shm;
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
+-  if (shm == MAP_FAILED) {
+-    return 1;
+-  }
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-  AC_MSG_CHECKING(for mmap() using /dev/zero shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-#include <string.h>
+-
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int fd;
+-  char *shm;
+-
+-  fd = open("/dev/zero", O_RDWR, S_IRUSR | S_IWUSR);
+-  if (fd == -1) {
+-    return 1;
+-  }
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+-  if (shm == MAP_FAILED) {
+-    return 2;
+-  }
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-  AC_MSG_CHECKING(for mmap() using shm_open() shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-#include <string.h>
+-#include <stdlib.h>
+-#include <stdio.h>
+-
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int fd;
+-  char *shm;
+-  char tmpname[4096];
+-
+-  sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
+-  if (mktemp(tmpname) == NULL) {
+-    return 1;
+-  }
+-  fd = shm_open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
+-  if (fd == -1) {
+-    return 2;
+-  }
+-  if (ftruncate(fd, 4096) < 0) {
+-    close(fd);
+-    shm_unlink(tmpname);
+-    return 3;
+-  }
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+-  if (shm == MAP_FAILED) {
+-    return 4;
+-  }
+-  shm_unlink(tmpname);
+-  close(fd);
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
++  AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
+ 
+   AC_MSG_CHECKING(for mmap() using regular file shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-#include <string.h>
+-#include <stdlib.h>
+-#include <stdio.h>
+-
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int fd;
+-  char *shm;
+-  char tmpname[4096];
+-
+-  sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
+-  if (mktemp(tmpname) == NULL) {
+-    return 1;
+-  }
+-  fd = open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
+-  if (fd == -1) {
+-    return 2;
+-  }
+-  if (ftruncate(fd, 4096) < 0) {
+-    close(fd);
+-    unlink(tmpname);
+-    return 3;
+-  }
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+-  if (shm == MAP_FAILED) {
+-    return 4;
+-  }
+-  unlink(tmpname);
+-  close(fd);
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-flock_type=unknown
+-AC_MSG_CHECKING("whether flock struct is linux ordered")
+-AC_TRY_RUN([
+-  #include <fcntl.h>
+-  struct flock lock = { 1, 2, 3, 4, 5 };
+-  int main() { 
+-    if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 3 && lock.l_len == 4) {
+-		return 0;
+-    }
+-    return 1;
+-  } 
+-], [
+-	flock_type=linux
+-    AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
+-    AC_MSG_RESULT("yes")
+-], AC_MSG_RESULT("no") )
++  
++  AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
+ 
+-AC_MSG_CHECKING("whether flock struct is BSD ordered")
+-AC_TRY_RUN([
+-  #include <fcntl.h>
+-  struct flock lock = { 1, 2, 3, 4, 5 };
+-  int main() { 
+-    if(lock.l_start == 1 && lock.l_len == 2 && lock.l_type == 4 && lock.l_whence == 5) {
+-		return 0;
+-    }
+-    return 1;
+-  } 
+-], [
+-	flock_type=bsd
+-    AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type]) 
+-    AC_MSG_RESULT("yes")
+-], AC_MSG_RESULT("no") )
++  flock_type=linux
++  AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
+ 
+ if test "$flock_type" = "unknown"; then
+ 	AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no])
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
similarity index 75%
copy from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
copy to import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
index 39c334f..3e90184 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
@@ -1,20 +1,25 @@
-[PATCH] config.m4: change AC_TRY_RUN to AC_TRY_LINK
+From 3bfcc7fdd22261eaed10949714de0a90d31e10ab Mon Sep 17 00:00:00 2001
+From: Roy Li <rongqing.li@windriver.com>
+Date: Thu, 20 Aug 2015 16:29:35 +0800
+Subject: [PATCH] [PATCH] config.m4: change AC_TRY_RUN to AC_TRY_LINK
 
 Upstream-Status: Pending
 
 AC_TRY_RUN is not suitable for cross-compile
 
 Signed-off-by: Roy Li <rongqing.li@windriver.com>
+
+%% original patch: change-AC_TRY_RUN-to-AC_TRY_LINK.patch
 ---
  ext/fileinfo/config.m4 | 31 ++++++-------------------------
  1 file changed, 6 insertions(+), 25 deletions(-)
 
 diff --git a/ext/fileinfo/config.m4 b/ext/fileinfo/config.m4
-index 7e98d62..8a8ea0e 100644
+index 523b4fd..0aaa4c8 100644
 --- a/ext/fileinfo/config.m4
 +++ b/ext/fileinfo/config.m4
 @@ -14,31 +14,12 @@ if test "$PHP_FILEINFO" != "no"; then
-     libmagic/readcdf.c libmagic/softmagic.c"
+     libmagic/readcdf.c libmagic/softmagic.c libmagic/der.c"
  
    AC_MSG_CHECKING([for strcasestr])
 -  AC_TRY_RUN([
@@ -52,5 +57,5 @@
      dnl using the platform implementation
      AC_MSG_RESULT(yes)
 -- 
-1.9.1
+2.7.4
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/configure.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/configure.patch
deleted file mode 100644
index c5334c7..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/configure.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- php-5.1.6/configure.old	2006-09-12 07:54:14.000000000 -0700
-+++ php-5.1.6/configure	2006-09-12 07:54:37.000000000 -0700
-@@ -14715,8 +14715,6 @@
- 
- 
- 
--  unset ac_cv_func_dlopen
--  unset ac_cv_func___dlopen
-   unset found
-   
-   echo $ac_n "checking for dlopen""... $ac_c" 1>&6
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch
index 255fbb0..b6e3ceb 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/iconv.patch
@@ -1,10 +1,18 @@
-Upstream-status: Unknown
+From 17cc5645f3acf943a5a06465d09d0ebcfea987bd Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 2 Nov 2011 16:54:57 +0100
+Subject: [PATCH] Upstream-status: Unknown
+
+---
+ acinclude.m4        | 3 ++-
+ ext/iconv/config.m4 | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/acinclude.m4 b/acinclude.m4
-index a6c0d84..df11abd 100644
+index d32766a..ad5166e 100644
 --- a/acinclude.m4
 +++ b/acinclude.m4
-@@ -2452,7 +2452,8 @@ AC_DEFUN([PHP_SETUP_ICONV], [
+@@ -2445,7 +2445,8 @@ AC_DEFUN([PHP_SETUP_ICONV], [
    dnl Check libc first if no path is provided in --with-iconv
    dnl
  
@@ -15,7 +23,7 @@
      dnl -liconv in.
      LIBS_save="$LIBS"
 diff --git a/ext/iconv/config.m4 b/ext/iconv/config.m4
-index d673b0a..1fbef13 100644
+index 6a05697..973e750 100644
 --- a/ext/iconv/config.m4
 +++ b/ext/iconv/config.m4
 @@ -15,7 +15,7 @@ if test "$PHP_ICONV" != "no"; then
@@ -27,6 +35,3 @@
          if test -f "$i/include/iconv.h" || test -f "$i/include/giconv.h"; then
            PHP_ICONV_PREFIX="$i"
            break
--- 
-1.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch
index da04c2d..b5fb7d4 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch
@@ -1,10 +1,18 @@
-Upstream-status: Unknown
+From c084c8349d1780980e232cb28b60a109e3d89438 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 2 Nov 2011 16:54:57 +0100
+Subject: [PATCH] Upstream-status: Unknown
+
+---
+ acinclude.m4       |  2 +-
+ ext/imap/config.m4 | 10 ++--------
+ 2 files changed, 3 insertions(+), 9 deletions(-)
 
 diff --git a/acinclude.m4 b/acinclude.m4
-index df11abd..06e7236 100644
+index ad5166e..f6a55ec 100644
 --- a/acinclude.m4
 +++ b/acinclude.m4
-@@ -2357,7 +2357,7 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[
+@@ -2350,7 +2350,7 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[
        PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl"
      fi
  
@@ -14,7 +22,7 @@
          OPENSSL_INCDIR=$i/include
        fi
 diff --git a/ext/imap/config.m4 b/ext/imap/config.m4
-index 3fcf674..f08caf7 100644
+index badb6e2..8ff803c 100644
 --- a/ext/imap/config.m4
 +++ b/ext/imap/config.m4
 @@ -109,7 +109,7 @@ if test "$PHP_IMAP" != "no"; then
@@ -41,6 +49,3 @@
        IMAP_LIB=$lib
        IMAP_LIB_CHK($PHP_LIBDIR)
        IMAP_LIB_CHK(c-client)
--- 
-1.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pear-makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pear-makefile.patch
index 9927d2d..4bc1025 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pear-makefile.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/pear-makefile.patch
@@ -1,11 +1,18 @@
-Upstream-status: Unknown
+From edd575a546d56bb5683aff19782b16963d61fd0b Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 2 Nov 2011 16:54:57 +0100
+Subject: [PATCH] Upstream-status: Unknown
+
+---
+ pear/Makefile.frag | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/pear/Makefile.frag b/pear/Makefile.frag
-index 00bacae..739eeca 100644
+index bbe8ec3..16f43e2 100644
 --- a/pear/Makefile.frag
 +++ b/pear/Makefile.frag
-@@ -11,7 +11,7 @@ PEAR_PREFIX = -dp a${program_prefix}
- PEAR_SUFFIX = -ds a$(program_suffix)
+@@ -12,7 +12,7 @@ PEAR_SUFFIX = -ds a$(program_suffix)
+ PEAR_INSTALLER_URL = https://pear.php.net/install-pear-nozlib.phar
  
  install-pear-installer: $(SAPI_CLI_PATH)
 -	@$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
@@ -13,6 +20,3 @@
  
  install-pear:
  	@echo "Installing PEAR environment:      $(INSTALL_ROOT)$(peardir)/"
--- 
-1.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch
index 2f7fe34..336cf0d 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/phar-makefile.patch
@@ -1,17 +1,24 @@
-Fix phar packaging
+From 08962a56f69963e01892d98ca5b75de8354bd3f5 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 2 Nov 2011 16:54:57 +0100
+Subject: [PATCH] Fix phar packaging
 
 Inherited from OE-Classic, with some additions to fix host paths leaking
 into the target package.
 
 Upstream-Status: Inappropriate [config]
 
+---
+ ext/phar/Makefile.frag | 17 +++--------------
+ 1 file changed, 3 insertions(+), 14 deletions(-)
+
 diff --git a/ext/phar/Makefile.frag b/ext/phar/Makefile.frag
-index 6516ddf..36e6cf4 100644
+index 0e3713f..22f7898 100644
 --- a/ext/phar/Makefile.frag
 +++ b/ext/phar/Makefile.frag
-@@ -5,20 +5,9 @@ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
+@@ -10,20 +10,9 @@ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
  
- PHP_PHARCMD_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 -d 'safe_mode=0'
+ PHP_PHARCMD_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 -d 'safe_mode=0'
  PHP_PHARCMD_EXECUTABLE = ` \
 -	if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
 -		$(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch
new file mode 100644
index 0000000..7be67ea
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch
@@ -0,0 +1,387 @@
+From fafcfac0933c17e1bf551600080eb0541186caf5 Mon Sep 17 00:00:00 2001
+From: Anuj Mittal <anuj.mittal@intel.com>
+Date: Mon, 2 Apr 2018 17:54:52 +0800
+Subject: [PATCH] opcache/config.m4: enable opcache
+
+We can't use AC_TRY_RUN to run programs in a cross compile environment. Set
+the variables directly instead since we know that we'd be running on latest
+enough linux kernel.
+
+Upstream-Status: Inappropriate [Configuration]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+%% original patch: php5-0001-opcache-config.m4-enable-opcache.patch
+---
+ ext/opcache/config.m4 | 349 ++------------------------------------------------
+ 1 file changed, 8 insertions(+), 341 deletions(-)
+
+diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4
+index 5a8b86c..6e87fa5 100644
+--- a/ext/opcache/config.m4
++++ b/ext/opcache/config.m4
+@@ -11,353 +11,20 @@ if test "$PHP_OPCACHE" != "no"; then
+     AC_DEFINE(HAVE_MPROTECT, 1, [Define if you have mprotect() function])
+   ])
+ 
+-  AC_MSG_CHECKING(for sysvipc shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/ipc.h>
+-#include <sys/shm.h>
+-#include <unistd.h>
+-#include <string.h>
++  AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
+ 
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int ipc_id;
+-  char *shm;
+-  struct shmid_ds shmbuf;
++  AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
+ 
+-  ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W));
+-  if (ipc_id == -1) {
+-    return 1;
+-  }
++  AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
+ 
+-  shm = shmat(ipc_id, NULL, 0);
+-  if (shm == (void *)-1) {
+-    shmctl(ipc_id, IPC_RMID, NULL);
+-    return 2;
+-  }
+-
+-  if (shmctl(ipc_id, IPC_STAT, &shmbuf) != 0) {
+-    shmdt(shm);
+-    shmctl(ipc_id, IPC_RMID, NULL);
+-    return 3;
+-  }
+-
+-  shmbuf.shm_perm.uid = getuid();
+-  shmbuf.shm_perm.gid = getgid();
+-  shmbuf.shm_perm.mode = 0600;
+-
+-  if (shmctl(ipc_id, IPC_SET, &shmbuf) != 0) {
+-    shmdt(shm);
+-    shmctl(ipc_id, IPC_RMID, NULL);
+-    return 4;
+-  }
+-
+-  shmctl(ipc_id, IPC_RMID, NULL);
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-  AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <unistd.h>
+-#include <string.h>
+-
+-#ifndef MAP_ANON
+-# ifdef MAP_ANONYMOUS
+-#  define MAP_ANON MAP_ANONYMOUS
+-# endif
+-#endif
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  char *shm;
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
+-  if (shm == MAP_FAILED) {
+-    return 1;
+-  }
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-  AC_MSG_CHECKING(for mmap() using /dev/zero shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-#include <string.h>
+-
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int fd;
+-  char *shm;
+-
+-  fd = open("/dev/zero", O_RDWR, S_IRUSR | S_IWUSR);
+-  if (fd == -1) {
+-    return 1;
+-  }
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+-  if (shm == MAP_FAILED) {
+-    return 2;
+-  }
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-  AC_MSG_CHECKING(for mmap() using shm_open() shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-#include <string.h>
+-#include <stdlib.h>
+-#include <stdio.h>
+-
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int fd;
+-  char *shm;
+-  char tmpname[4096];
+-
+-  sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
+-  if (mktemp(tmpname) == NULL) {
+-    return 1;
+-  }
+-  fd = shm_open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
+-  if (fd == -1) {
+-    return 2;
+-  }
+-  if (ftruncate(fd, 4096) < 0) {
+-    close(fd);
+-    shm_unlink(tmpname);
+-    return 3;
+-  }
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+-  if (shm == MAP_FAILED) {
+-    return 4;
+-  }
+-  shm_unlink(tmpname);
+-  close(fd);
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
++  AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
+ 
+   AC_MSG_CHECKING(for mmap() using regular file shared memory support)
+-  AC_TRY_RUN([
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-#include <string.h>
+-#include <stdlib.h>
+-#include <stdio.h>
+-
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+-  pid_t pid;
+-  int status;
+-  int fd;
+-  char *shm;
+-  char tmpname[4096];
+-
+-  sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
+-  if (mktemp(tmpname) == NULL) {
+-    return 1;
+-  }
+-  fd = open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
+-  if (fd == -1) {
+-    return 2;
+-  }
+-  if (ftruncate(fd, 4096) < 0) {
+-    close(fd);
+-    unlink(tmpname);
+-    return 3;
+-  }
+-
+-  shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+-  if (shm == MAP_FAILED) {
+-    return 4;
+-  }
+-  unlink(tmpname);
+-  close(fd);
+-
+-  strcpy(shm, "hello");
+-
+-  pid = fork();
+-  if (pid < 0) {
+-    return 5;
+-  } else if (pid == 0) {
+-    strcpy(shm, "bye");
+-    return 6;
+-  }
+-  if (wait(&status) != pid) {
+-    return 7;
+-  }
+-  if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+-    return 8;
+-  }
+-  if (strcmp(shm, "bye") != 0) {
+-    return 9;
+-  }
+-  return 0;
+-}
+-],dnl
+-    AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
+-    msg=yes,msg=no,msg=no)
+-  AC_MSG_RESULT([$msg])
+-
+-flock_type=unknown
+-AC_MSG_CHECKING("whether flock struct is linux ordered")
+-AC_TRY_RUN([
+-  #include <fcntl.h>
+-  struct flock lock = { 1, 2, 3, 4, 5 };
+-  int main() { 
+-    if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 3 && lock.l_len == 4) {
+-		return 0;
+-    }
+-    return 1;
+-  } 
+-], [
+-	flock_type=linux
+-    AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
+-    AC_MSG_RESULT("yes")
+-], AC_MSG_RESULT("no") )
++  
++  AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
+ 
+-AC_MSG_CHECKING("whether flock struct is BSD ordered")
+-AC_TRY_RUN([
+-  #include <fcntl.h>
+-  struct flock lock = { 1, 2, 3, 4, 5 };
+-  int main() { 
+-    if(lock.l_start == 1 && lock.l_len == 2 && lock.l_type == 4 && lock.l_whence == 5) {
+-		return 0;
+-    }
+-    return 1;
+-  } 
+-], [
+-	flock_type=bsd
+-    AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type]) 
+-    AC_MSG_RESULT("yes")
+-], AC_MSG_RESULT("no") )
++  flock_type=linux
++  AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
+ 
+ if test "$flock_type" = "unknown"; then
+ 	AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no])
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch
similarity index 78%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch
index 39c334f..1d21f8c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch
@@ -1,10 +1,17 @@
-[PATCH] config.m4: change AC_TRY_RUN to AC_TRY_LINK
+From 5f49987e88dfcbdb84be6e0c9025432fbd998709 Mon Sep 17 00:00:00 2001
+From: Roy Li <rongqing.li@windriver.com>
+Date: Thu, 20 Aug 2015 16:29:35 +0800
+Subject: [PATCH] config.m4: change AC_TRY_RUN to AC_TRY_LINK
 
 Upstream-Status: Pending
 
 AC_TRY_RUN is not suitable for cross-compile
 
 Signed-off-by: Roy Li <rongqing.li@windriver.com>
+
+%% original patch: change-AC_TRY_RUN-to-AC_TRY_LINK.patch
+
+%% original patch: php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch
 ---
  ext/fileinfo/config.m4 | 31 ++++++-------------------------
  1 file changed, 6 insertions(+), 25 deletions(-)
@@ -52,5 +59,5 @@
      dnl using the platform implementation
      AC_MSG_RESULT(yes)
 -- 
-1.9.1
+2.7.4
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-pear-makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-pear-makefile.patch
new file mode 100644
index 0000000..cff6426
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-pear-makefile.patch
@@ -0,0 +1,26 @@
+From 79725e82d5981fc94eb657f0f46a499dbfc1cc40 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 2 Nov 2011 16:54:57 +0100
+Subject: [PATCH] Upstream-status: Unknown
+
+%% original patch: php5-pear-makefile.patch
+---
+ pear/Makefile.frag | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pear/Makefile.frag b/pear/Makefile.frag
+index 00bacae..739eeca 100644
+--- a/pear/Makefile.frag
++++ b/pear/Makefile.frag
+@@ -11,7 +11,7 @@ PEAR_PREFIX = -dp a${program_prefix}
+ PEAR_SUFFIX = -ds a$(program_suffix)
+ 
+ install-pear-installer: $(SAPI_CLI_PATH)
+-	@$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
++	@$(PHP_NATIVE_DIR)/php $(PEAR_INSTALL_FLAGS) $(builddir)/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
+ 
+ install-pear:
+ 	@echo "Installing PEAR environment:      $(INSTALL_ROOT)$(peardir)/"
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-phar-makefile.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-phar-makefile.patch
new file mode 100644
index 0000000..4e1efd4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php5-phar-makefile.patch
@@ -0,0 +1,46 @@
+From 3ea626a8d081f56b01004b7992534d4e6b81a9cc Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 2 Nov 2011 16:54:57 +0100
+Subject: [PATCH] Fix phar packaging
+
+Inherited from OE-Classic, with some additions to fix host paths leaking
+into the target package.
+
+Upstream-Status: Inappropriate [config]
+
+%% original patch: php5-phar-makefile.patch
+---
+ ext/phar/Makefile.frag | 17 +++--------------
+ 1 file changed, 3 insertions(+), 14 deletions(-)
+
+diff --git a/ext/phar/Makefile.frag b/ext/phar/Makefile.frag
+index b8b1b42..1005b2d 100644
+--- a/ext/phar/Makefile.frag
++++ b/ext/phar/Makefile.frag
+@@ -5,20 +5,9 @@ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
+ 
+ PHP_PHARCMD_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 -d 'safe_mode=0'
+ PHP_PHARCMD_EXECUTABLE = ` \
+-	if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
+-		$(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
+-		if test "x$(PHP_MODULES)" != "x"; then \
+-		$(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \
+-		for i in bz2 zlib phar; do \
+-			if test -f "$(top_builddir)/modules/$$i.la"; then \
+-				. $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
+-			fi; \
+-		done; \
+-		fi; \
+-	else \
+-		$(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
+-	fi;`
+-PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
++		$(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; `
++
++PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
+ 
+ $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc
+ 	-@test -d $(builddir)/phar || mkdir $(builddir)/phar
+-- 
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch
index 0506bdd..6af0dc8 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php/php_exec_native.patch
@@ -1,10 +1,17 @@
-Upstream-status: Inappriate
+From d251b5aa3d23803d016ca16818e2e1d2f2b70a02 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 2 Nov 2011 16:54:57 +0100
+Subject: [PATCH] Upstream-status: Inappriate
+
+---
+ sapi/cli/config.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/sapi/cli/config.m4 b/sapi/cli/config.m4
-index cdfa1f7..0fe11e3 100644
+index 2168151..20a81db 100644
 --- a/sapi/cli/config.m4
 +++ b/sapi/cli/config.m4
-@@ -36,7 +36,7 @@ if test "$PHP_CLI" != "no"; then
+@@ -50,7 +50,7 @@ if test "$PHP_CLI" != "no"; then
    esac
  
    dnl Set executable for tests
@@ -13,6 +20,3 @@
    PHP_SUBST(PHP_EXECUTABLE)
  
    dnl Expose to Makefile
--- 
-1.9.3
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.31.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.31.bb
deleted file mode 100644
index dd8047b..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.31.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require php.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b602636d46a61c0ac0432bbf5c078fe4"
-
-SRC_URI += "file://change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
-            file://pthread-check-threads-m4.patch \
-            file://0001-Add-lpthread-to-link.patch \
-           "
-SRC_URI[md5sum] = "620abe25e0d6cd5f041a360a30ce5783"
-SRC_URI[sha256sum] = "8f397169cb65f0539f3bcb04060f97770d73e19074a37bd2c58b98ebf6ecb10f"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.35.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.35.bb
new file mode 100644
index 0000000..c17c0d6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.35.bb
@@ -0,0 +1,23 @@
+require php.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b602636d46a61c0ac0432bbf5c078fe4"
+
+SRC_URI += "file://php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
+            file://pthread-check-threads-m4.patch \
+            file://0001-Add-lpthread-to-link.patch \
+            file://acinclude-xml2-config.patch \
+            file://0001-acinclude-use-pkgconfig-for-libxml2-config.patch \
+            "
+
+SRC_URI_append_class-target = " \
+                                file://php5-pear-makefile.patch \
+                                file://php5-phar-makefile.patch \
+                                file://php5-0001-opcache-config.m4-enable-opcache.patch \
+                                "
+
+SRC_URI[md5sum] = "905ae5f586351f3ca29d044c9484d475"
+SRC_URI[sha256sum] = "ee78a7e9ca21d8ea394d037c55effff477a49dbae31c7753c547036f5bd73b92"
+
+DEPENDS += "libmcrypt"
+EXTRA_OECONF += "--with-mcrypt=${STAGING_DIR_TARGET}${exec_prefix} \
+                 " 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.9.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.9.bb
deleted file mode 100644
index acf68a0..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.9.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-require php.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c0af599f66d0461c5837c695fcbc5c1e"
-
-SRC_URI += "file://change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
-            file://0001-Specify-tag-with-libtool.patch \
-            file://CVE-2017-16642.patch \
-           "
-SRC_URI[md5sum] = "2397be54f3281cdf30c7ef076b28f7d0"
-SRC_URI[sha256sum] = "314dcc10dfdd7c4443edb4fe1e133a44f2b2a8351be8c9eb6ab9222d45fd9bae"
-
-PACKAGECONFIG[mysql] = "--with-mysqli=${STAGING_BINDIR_CROSS}/mysql_config \
-                        --with-pdo-mysql=${STAGING_BINDIR_CROSS}/mysql_config \
-                        ,--without-mysqli --without-pdo-mysql \
-                        ,mysql5"
-
-FILES_${PN}-fpm += "${sysconfdir}/php-fpm.d/www.conf.default"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.2.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.2.4.bb
new file mode 100644
index 0000000..2fd1e66
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.2.4.bb
@@ -0,0 +1,24 @@
+require php.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=67e369bc8d1f2e641236b8002039a6a2"
+
+SRC_URI += "file://change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
+            file://0001-acinclude.m4-skip-binconfig-check-for-libxml.patch \
+            file://0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch \
+            file://0001-fix-error-caused-by-a-new-variable-is-declared-after.patch \
+           "
+SRC_URI_append_class-target = " \
+                                file://pear-makefile.patch \
+                                file://phar-makefile.patch \
+                                file://0001-opcache-config.m4-enable-opcache.patch \
+                                "
+
+SRC_URI[md5sum] = "864c64ffd2f1686b035ef8ce6a6d8478"
+SRC_URI[sha256sum] = "11658a0d764dc94023b9fb60d4b5eb75d438ad17981efe70abb0d0d09a447ef3"
+
+PACKAGECONFIG[mysql] = "--with-mysqli=${STAGING_BINDIR_CROSS}/mysql_config \
+                        --with-pdo-mysql=${STAGING_BINDIR_CROSS}/mysql_config \
+                        ,--without-mysqli --without-pdo-mysql \
+                        ,mysql5"
+
+FILES_${PN}-fpm += "${sysconfdir}/php-fpm.d/www.conf.default"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/pm-qa/pm-qa_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/pm-qa/pm-qa_git.bb
deleted file mode 100644
index 1ee6573..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/pm-qa/pm-qa_git.bb
+++ /dev/null
@@ -1,65 +0,0 @@
-DESCRIPTION = "Utilities for testing Power Management"
-HOMEPAGE = "https://wiki.linaro.org/WorkingGroups/PowerManagement/Resources/TestSuite/PmQa"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-PV = "0.5.2"
-
-BRANCH ?= "master"
-
-SRCREV = "05710ec5032be4c8edafb4109d4d908d31243906"
-
-SRC_URI = "git://git.linaro.org/power/pm-qa.git;protocol=git;branch=${BRANCH}"
-
-S = "${WORKDIR}/git"
-
-CFLAGS += "-pthread"
-
-do_compile () {
-    # Find all the .c files in this project and build them.
-    for x in `find . -name "*.c"`
-    do
-        util=`echo ${x} | sed s/.c$//`
-        oe_runmake ${util}
-    done
-}
-
-do_install () {
-    install -d ${D}${bindir}
-    install -d ${D}${libdir}/${BPN}
-
-    # Install the compiled binaries that were built in the previous step
-    for x in `find . -name "*.c"`
-    do
-        util=`echo ${x} | sed s/.c$//`
-        util_basename=`basename ${util}`
-        install -m 0755 ${util} ${D}${bindir}/${util_basename}
-    done
-
-    # Install the helper scripts in a subdirectory of $libdir
-    for script in `find . -name "*.sh" | grep include`
-    do
-        # Remove hardcoded relative paths
-        sed -i -e 's#..\/utils\/##' ${script}
-
-        script_basename=`basename ${script}`
-        install -m 0755 $script ${D}${libdir}/${BPN}/${script_basename}
-    done
-
-    # Install the shell scripts NOT in the $libdir directory since those
-    # will be installed elsewhere
-    for script in `find . -name "*.sh" | grep -v include`
-    do
-        # if the script includes any helper scripts from the $libdir
-        # directory then change the source path to the absolute path
-        # to reflect the install location of the helper scripts.
-        sed -i -e "s#source ../include#source ${libdir}/${BPN}#g" ${script}
-        # Remove hardcoded relative paths
-        sed -i -e 's#..\/utils\/##' ${script}
-
-        script_basename=`basename ${script}`
-        install -m 0755 $script ${D}${bindir}/${script_basename}
-    done
-}
-RDEPENDS_${PN} +="bash"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest
new file mode 100644
index 0000000..7c3a8d1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest
@@ -0,0 +1,38 @@
+#!/bin/bash
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+TEST_FILE="/tmp/test.data"
+
+RETVAL=0
+# Test every writing test application
+for write_exe_full_path in ${DIR}/add_person_*; do
+	if [ -x "${write_exe_full_path}" ]; then
+		write_exe=`basename ${write_exe_full_path}`
+		echo "Generating new test file using ${write_exe}..."
+		${write_exe_full_path} "${TEST_FILE}"
+		RETVAL=$?
+		[ $RETVAL -eq 0 ] || exit $RETVAL
+
+		# Test every reading test application
+		for read_exe_full_path in ${DIR}/list_people_*; do
+			read_exe=`basename ${read_exe_full_path}`
+			echo "Test: Write with ${write_exe}; Read with ${read_exe}..."
+			if [ -x "${read_exe_full_path}" ]; then
+				${read_exe_full_path} "${TEST_FILE}"
+				RETVAL=$?
+				[ $RETVAL -eq 0 ] || exit $RETVAL
+			fi
+		done
+
+		# Cleanup...
+		if [ -e "${TEST_FILE}" ]; then
+			rm "${TEST_FILE}"
+		fi
+	fi
+done
+
+if [ $RETVAL -eq 0 ] ; then
+    echo "PASS: protobuf"
+else
+    echo "FAIL: protobuf"
+fi
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb
deleted file mode 100644
index fae7c18..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Protocol Buffers - structured data serialisation mechanism"
-DESCRIPTION = "Protocol Buffers are a way of encoding structured data in an \
-efficient yet extensible format. Google uses Protocol Buffers for almost \
-all of its internal RPC protocols and file formats."
-HOMEPAGE = "https://github.com/google/protobuf"
-SECTION = "console/tools"
-LICENSE = "BSD-3-Clause"
-
-PACKAGE_BEFORE_PN = "${PN}-compiler ${PN}-lite"
-
-DEPENDS = "zlib"
-RDEPENDS_${PN}-compiler = "${PN}"
-RDEPENDS_${PN}-dev += "${PN}-compiler"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=35953c752efc9299b184f91bef540095"
-
-SRCREV = "b04e5cba356212e4e8c66c61bbe0c3a20537c5b9"
-
-PV = "3.4.1+git${SRCPV}"
-
-SRC_URI = "git://github.com/google/protobuf.git;branch=3.4.x"
-
-EXTRA_OECONF += " --with-protoc=echo"
-
-inherit autotools-brokensep
-
-S = "${WORKDIR}/git"
-
-FILES_${PN}-compiler = "${bindir} ${libdir}/libprotoc${SOLIBS}"
-FILES_${PN}-lite = "${bindir} ${libdir}/libprotobuf-lite${SOLIBS}"
-
-MIPS_INSTRUCTION_SET = "mips"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.5.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.5.1.bb
new file mode 100644
index 0000000..1ffb79d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.5.1.bb
@@ -0,0 +1,84 @@
+SUMMARY = "Protocol Buffers - structured data serialisation mechanism"
+DESCRIPTION = "Protocol Buffers are a way of encoding structured data in an \
+efficient yet extensible format. Google uses Protocol Buffers for almost \
+all of its internal RPC protocols and file formats."
+HOMEPAGE = "https://github.com/google/protobuf"
+SECTION = "console/tools"
+LICENSE = "BSD-3-Clause"
+
+PACKAGE_BEFORE_PN = "${PN}-compiler ${PN}-lite"
+
+DEPENDS = "zlib"
+DEPENDS_append_class-target  = " protobuf-native"
+RDEPENDS_${PN}-compiler = "${PN}"
+RDEPENDS_${PN}-dev += "${PN}-compiler"
+RDEPENDS_${PN}-ptest = "bash python-protobuf"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=35953c752efc9299b184f91bef540095"
+
+SRCREV = "106ffc04be1abf3ff3399f54ccf149815b287dd9"
+
+PV = "3.5.1+git${SRCPV}"
+
+SRC_URI = "git://github.com/google/protobuf.git;branch=3.5.x \
+	   file://run-ptest \
+          "
+
+EXTRA_OECONF += " --with-protoc=echo"
+
+inherit autotools-brokensep pkgconfig ptest
+
+S = "${WORKDIR}/git"
+TEST_SRC_DIR="examples"
+LANG_SUPPORT="cpp python"
+
+do_compile_ptest() {
+	# Modify makefile to use the cross-compiler
+	sed -e "s|c++|${CXX} \$(LDFLAGS)|g" -i "${S}/${TEST_SRC_DIR}/Makefile"
+
+	mkdir -p "${B}/${TEST_SRC_DIR}"
+
+	# Add the location of the cross-compiled header and library files
+	# which haven't been installed yet.
+	cp "${B}/protobuf.pc" "${B}/${TEST_SRC_DIR}/protobuf.pc"
+	sed -e 's|libdir=|libdir=${PKG_CONFIG_SYSROOT_DIR}|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+	sed -e 's|Cflags:|Cflags: -I${S}/src|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+	sed -e 's|Libs:|Libs: -L${B}/src/.libs|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
+	export PKG_CONFIG_PATH="${B}/${TEST_SRC_DIR}"
+
+	# Save the pkgcfg sysroot variable, and update it to nothing so
+	# that it doesn't append the sysroot to the beginning of paths.
+	# The header and library files aren't installed to the target
+	# system yet.  So the absolute paths were specified above.
+	save_pkg_config_sysroot_dir=$PKG_CONFIG_SYSROOT_DIR
+	export PKG_CONFIG_SYSROOT_DIR=
+
+	# Compile the tests
+	for lang in ${LANG_SUPPORT}; do
+		oe_runmake -C "${S}/${TEST_SRC_DIR}" ${lang}
+	done
+
+	# Restore the pkgconfig sysroot variable
+	export PKG_CONFIG_SYSROOT_DIR=$save_pkg_config_sysroot_dir
+}
+
+do_install_ptest() {
+	local olddir=`pwd`
+
+	cd "${S}/${TEST_SRC_DIR}"
+	install -d "${D}/${PTEST_PATH}"
+	for i in add_person* list_people*; do
+		if [ -x "$i" ]; then
+			install "$i" "${D}/${PTEST_PATH}"
+		fi
+	done
+	cp "${S}/${TEST_SRC_DIR}/addressbook_pb2.py" "${D}/${PTEST_PATH}"
+	cd "$olddir"
+}
+
+FILES_${PN}-compiler = "${bindir} ${libdir}/libprotoc${SOLIBS}"
+FILES_${PN}-lite = "${bindir} ${libdir}/libprotobuf-lite${SOLIBS}"
+
+MIPS_INSTRUCTION_SET = "mips"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.5.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.5.7.bb
index 8f6532c..156e52a 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.5.7.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-cpuset_1.5.7.bb
@@ -3,14 +3,9 @@
 LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 
-SRCNAME = "cpuset"
-
-SRC_URI = "https://github.com/lpechacek/${SRCNAME}/archive/v${PV}.tar.gz"
-
-SRC_URI[md5sum] = "6ad79b26ba03f559604d74513cc34392"
-SRC_URI[sha256sum] = "32334e164415ed5aec83c5ffc3dc01c418406eb02d96d881fdfd495587ff0c01"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
+S = "${WORKDIR}/git"
+SRCREV = "ae629aa1dc959342745ad97406adddf63bb6dbdd"
+SRC_URI = "git://github.com/lpechacek/cpuset.git;protocol=https;"
 
 inherit distutils
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.0.5.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.0.5.bb
deleted file mode 100644
index c85fc56..0000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.0.5.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "The concurrent.futures module provides a high-level interface for asynchronously executing callables."
-SECTION = "devel/python"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=3d78c5bb15ac641d34f2ddc3bd7f51fa"
-HOMEPAGE = "http://code.google.com/p/pythonfutures"
-DEPENDS = "python"
-
-SRC_URI = "https://pypi.python.org/packages/source/f/futures/futures-${PV}.tar.gz"
-SRC_URI[md5sum] = "ced2c365e518242512d7a398b515ff95"
-SRC_URI[sha256sum] = "0542525145d5afc984c88f914a0c85c77527f65946617edb5274f72406f981df"
-
-S = "${WORKDIR}/futures-${PV}"
-
-inherit setuptools
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.2.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.2.0.bb
new file mode 100644
index 0000000..3ee945f
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.2.0.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "The concurrent.futures module provides a high-level interface for asynchronously executing callables."
+SECTION = "devel/python"
+LICENSE = "PSF"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=834d982f973c48b6d662b5944c5ab567"
+HOMEPAGE = "https://github.com/agronholm/pythonfutures"
+DEPENDS = "python"
+
+SRC_URI[md5sum] = "d1b299a06b96ccb59f70324716dc0016"
+SRC_URI[sha256sum] = "9ec02aa7d674acb8618afb127e27fde7fc68994c0437ad759fa094a574adb265"
+
+inherit pypi setuptools
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
index a391f7e..9a11442 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
@@ -14,28 +14,15 @@
 index 2c0cfbd..cfcb3bf 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -194,7 +194,7 @@ PKG_CHECK_MODULES(GI,
-     gobject-introspection-1.0 >= introspection_required_version
- )
+@@ -155,7 +155,7 @@ PKG_CHECK_MODULES(GI,
+ 
+ GOBJECT_INTROSPECTION_CHECK(introspection_required_version)
  
 -GI_DATADIR=$($PKG_CONFIG --variable=gidatadir gobject-introspection-1.0)
 +GI_DATADIR=$PKG_CONFIG_SYSROOT_DIR$($PKG_CONFIG --variable=gidatadir gobject-introspection-1.0)
  AC_SUBST(GI_DATADIR)
  
  if test "$enable_cairo" != no; then
-@@ -219,12 +219,6 @@ AC_ARG_WITH(common,
-     with_common=yes)
- AM_CONDITIONAL(WITH_COMMON, test "$with_common" = "yes")
- 
--INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
--INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
--
--AC_SUBST(INTROSPECTION_SCANNER)
--AC_SUBST(INTROSPECTION_COMPILER)
--
- # compiler warnings, errors, required cflags, and code coverage support
- GNOME_COMPILE_WARNINGS([maximum])
- AC_MSG_CHECKING(for Gnome code coverage support)
 -- 
 2.1.4
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.22.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.28.0.bb
similarity index 82%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.22.0.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.28.0.bb
index 9d2e165..ab65ba1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.22.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.28.0.bb
@@ -17,8 +17,8 @@
     file://0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch \
 "
 
-SRC_URI[md5sum] = "ed4117ed5d554d25fd7718807fbf819f"
-SRC_URI[sha256sum] = "08b29cfb08efc80f7a8630a2734dec65a99c1b59f1e5771c671d2e4ed8a5cbe7"
+SRC_URI[md5sum] = "b29d69edb63ae1f555afeb19f90b9996"
+SRC_URI[sha256sum] = "42b47b261b45aedfc77e02e3c90a01cd74d6f86c3273c1860a054d531d606e5a"
 
 S = "${WORKDIR}/${SRCNAME}-${PV}"
 
@@ -26,7 +26,7 @@
 
 EXTRA_OECONF = "--disable-cairo --with-python=${PYTHON}"
 
-RDEPENDS_${PN} += "python-setuptools python-importlib"
+RDEPENDS_${PN} += "python-setuptools"
 RDEPENDS_${PN}_class-native = ""
 
 do_install_append() {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.8.bb
similarity index 92%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.2.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.8.bb
index 1d837c5..ea944b3 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/sip/sip_4.19.8.bb
@@ -9,8 +9,8 @@
 DEPENDS = "python"
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/pyqt/sip/sip-${PV}/sip-${PV}.tar.gz"
-SRC_URI[md5sum] = "4f48e212890ebe584e8d804cfbcfc61e"
-SRC_URI[sha256sum] = "432b4aad25254e6997913e33b1ca3cf5fd21d5729a50a3ce2edccbea82c80533"
+SRC_URI[md5sum] = "0625fb20347d4ff1b5da551539be0727"
+SRC_URI[sha256sum] = "7eaf7a2ea7d4d38a56dd6d2506574464bddf7cf284c960801679942377c297bc"
 
 BBCLASSEXTEND = "native"
 
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff
index c51e475..4dbd9a4 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff
@@ -4,29 +4,32 @@
 
 --- tk8.5-8.5.8.orig/unix/configure
 +++ tk8.5-8.5.8/unix/configure
-@@ -1431,6 +1431,7 @@
- 			`ls -d ${prefix}/lib 2>/dev/null` \
- 			`ls -d /usr/local/lib 2>/dev/null` \
+@@ -1431,7 +1431,8 @@
  			`ls -d /usr/contrib/lib 2>/dev/null` \
+ 			`ls -d /usr/local/lib 2>/dev/null` \
+ 			`ls -d /usr/pkg/lib 2>/dev/null` \
 +			`ls -d /usr/share/tcltk/tcl8.5 2>/dev/null` \
  			`ls -d /usr/lib 2>/dev/null` \
+ 			`ls -d /usr/lib64 2>/dev/null` \
  			; do
  		    if test -f "$i/tclConfig.sh" ; then
 --- tk8.5-8.5.8.orig/unix/tcl.m4
 +++ tk8.5-8.5.8/unix/tcl.m4
-@@ -93,6 +93,7 @@
- 			`ls -d ${prefix}/lib 2>/dev/null` \
- 			`ls -d /usr/local/lib 2>/dev/null` \
+@@ -93,7 +93,8 @@
  			`ls -d /usr/contrib/lib 2>/dev/null` \
+ 			`ls -d /usr/local/lib 2>/dev/null` \
+ 			`ls -d /usr/pkg/lib 2>/dev/null` \
 +			`ls -d /usr/share/tcltk/tcl8.5 2>/dev/null` \
  			`ls -d /usr/lib 2>/dev/null` \
+ 			`ls -d /usr/lib64 2>/dev/null` \
  			; do
  		    if test -f "$i/tclConfig.sh" ; then
-@@ -223,6 +224,7 @@
+@@ -223,7 +224,8 @@
  			`ls -d ${prefix}/lib 2>/dev/null` \
  			`ls -d /usr/local/lib 2>/dev/null` \
  			`ls -d /usr/contrib/lib 2>/dev/null` \
 +			`ls -d /usr/share/tcltk/tk8.5 2>/dev/null` \
  			`ls -d /usr/lib 2>/dev/null` \
+ 			`ls -d /usr/lib64 2>/dev/null` \
  			; do
  		    if test -f "$i/tkConfig.sh" ; then
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb
similarity index 94%
rename from import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.6.bb
rename to import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb
index d3bf397..13dc4d7 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.6.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb
@@ -26,8 +26,8 @@
     file://fix-xft.diff \
     file://configure.use.fontconfig.with.xft.patch \
 "
-SRC_URI[md5sum] = "dd7dbb3a6523c42d05f6ab6e86096e99"
-SRC_URI[sha256sum] = "d62c371a71b4744ed830e3c21d27968c31dba74dd2c45f36b9b071e6d88eb19d"
+SRC_URI[md5sum] = "5e0faecba458ee1386078fb228d008ba"
+SRC_URI[sha256sum] = "49e7bca08dde95195a27f594f7c850b088be357a7c7096e44e1158c7a5fd7b33"
 
 S = "${WORKDIR}/${BPN}${PV}/unix"