summaryrefslogtreecommitdiffstats
path: root/import-layers/meta-openembedded/meta-oe/recipes-devtools
diff options
context:
space:
mode:
authorBrad Bishop <bradleyb@fuzziesquirrel.com>2018-02-25 22:55:05 -0500
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2018-03-15 14:22:49 +0000
commitd7bf8c17eca8f8c89898a7794462c773c449e983 (patch)
treed18618fca85ca5f0c077032cc7b009344b60f663 /import-layers/meta-openembedded/meta-oe/recipes-devtools
parente2b5abdc9f28cdf8578e5b9be803c8e697443c20 (diff)
downloadblackbird-openbmc-d7bf8c17eca8f8c89898a7794462c773c449e983.tar.gz
blackbird-openbmc-d7bf8c17eca8f8c89898a7794462c773c449e983.zip
Yocto 2.4
Move OpenBMC to Yocto 2.4(rocko) Tested: Built and verified Witherspoon and Palmetto images Change-Id: I12057b18610d6fb0e6903c60213690301e9b0c67 Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'import-layers/meta-openembedded/meta-oe/recipes-devtools')
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore2
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch351
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch134
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb20
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive.inc15
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive/delete-some-m4-files.patch23
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive_2016.09.16.bb17
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch242
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Turn-off-sign-compare-for-musl-libc.patch41
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch28
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch45
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Avoid-using-basename.patch29
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch60
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-sys-signal.h-is-a-nonportable-alias-for-signal.h.patch26
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch88
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch35
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch43
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-Import-necessary-definitions-from-stab.h.patch199
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-md2core-Replace-basename.patch38
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch77
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mips_asm_sgidefs.patch27
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb29
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb26
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch29
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb118
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb2
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Stop-using-relative-path-for-scsilib.c-link.patch29
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Use-tcsh-shell.patch92
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-default-source-define.patch18
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-wformat-security.patch48
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt_18.32.bb49
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch26
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch113
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch30
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.7.1.bb37
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.30.bb)9
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.30.1.bb)4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade/remove-yelp-help-rules-var.patch39
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/files/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch)0
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/files/0002-fix-gcc-6-build.patch)0
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.0.bb25
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-Fix-printd-formatting-strings.patch54
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch81
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.1.4.bb42
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/0001-src-Fix-error-in-cross-compile.patch138
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/format_string.patch31
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/ldopts.patch35
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf_3.0.0.bb42
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit/0001-Link-to-libatomic.patch64
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb3
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.3.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.0.bb)4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Makefile-ensure-frontends-exits-before-writing-into-.patch32
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Switch-utils-kconfig-diff-to-use-Python-3.patch26
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb41
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch2
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Check-for-__powerpc__-define.patch28
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch35
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch16
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/mips-support.patch19
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb13
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3/0001-configure.ac-fix-cross-compiling-issue.patch31
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb25
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt/ltp-Do-not-link-against-libfl.patch31
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb97
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-plt.c-Delete-include-error.h.patch27
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.4.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.3.bb)12
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/clang.patch19
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb)7
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson/native_bindir.patch41
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.40.1.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.37.1.bb)4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/mpich/mpich_3.2.bb4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Comment-intentional-fallthrough-in-case-statements.patch39
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.1.bb)3
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/ninja/ninja_1.7.2.bb30
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch29
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch29
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.4.0.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_4.8.2.bb)15
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Add-fallthrough-comments.patch155
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0002-Workaround-new-warnings-generated-by-GCC-7.patch53
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0003-armv7a-Add-missing-break-to-fix-fallthrough-warning.patch27
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0004-Fix-overflow-warning.patch30
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0005-command-Move-the-fall-through-comment-to-right-scope.patch27
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb49
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb2
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch166
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch13
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch422
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb65
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/perl/ipc-run_0.94.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/0001-Add-lpthread-to-link.patch (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.26/0001-Add-lpthread-to-link.patch)0
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.26/change-AC_TRY_RUN-to-AC_TRY_LINK.patch)0
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/0001-Specify-tag-with-libtool.patch (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.7/0001-Specify-tag-with-libtool.patch)0
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch5241
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/change-AC_TRY_RUN-to-AC_TRY_LINK.patch (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.7/change-AC_TRY_RUN-to-AC_TRY_LINK.patch)0
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php.inc1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.31.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.26.bb)4
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.9.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.7.bb)5
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/pm-qa/pm-qa_git.bb5
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb5
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.0.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.2.1.bb)11
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb (renamed from import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.1.0.bb)11
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-futures_3.0.5.bb2
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/python/python-pygobject_3.22.0.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb1
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.8.bb31
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb2
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool.inc16
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool/0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch34
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_0.4.0.bb6
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_git.bb20
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-fix-compile-failure-against-musl-C-library.patch52
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0002-fix-formatting-issues.patch34
-rw-r--r--import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.31.0.bb24
115 files changed, 8207 insertions, 1723 deletions
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore
index b8a08f824..b034c10a1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore
@@ -3,6 +3,8 @@
!*.indirectionsymlink
!*.[ch]
!*.mk
+!*.patch
+!*.service
!NOTICE
!MODULE_LICENSE_*
!/system/
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch
new file mode 100644
index 000000000..680d21f3a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch
@@ -0,0 +1,351 @@
+From bbeb72f11c64f190b23abbed5f44311bd021bdc9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 Sep 2017 15:46:38 -0700
+Subject: [PATCH 1/2] add base64 implementation
+
+musl needs it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ system/core/adb/adb_auth_client.c | 2 +-
+ system/core/adb/base64.c | 315 ++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 316 insertions(+), 1 deletion(-)
+ create mode 100644 system/core/adb/base64.c
+
+diff --git a/system/core/adb/adb_auth_client.c b/system/core/adb/adb_auth_client.c
+index 55e9dca..104b413 100644
+--- a/system/core/adb/adb_auth_client.c
++++ b/system/core/adb/adb_auth_client.c
+@@ -75,7 +75,7 @@ static void read_keys(const char *file, struct listnode *list)
+ if (sep)
+ *sep = '\0';
+
+- ret = __b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4);
++ ret = b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4);
+ if (ret != sizeof(key->key)) {
+ D("%s: Invalid base64 data ret=%d\n", file, ret);
+ free(key);
+diff --git a/system/core/adb/base64.c b/system/core/adb/base64.c
+new file mode 100644
+index 0000000..95da284
+--- /dev/null
++++ b/system/core/adb/base64.c
+@@ -0,0 +1,315 @@
++/*
++ * Copyright (c) 1996-1999 by Internet Software Consortium.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
++ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
++ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
++ * SOFTWARE.
++ */
++
++/*
++ * Portions Copyright (c) 1995 by International Business Machines, Inc.
++ *
++ * International Business Machines, Inc. (hereinafter called IBM) grants
++ * permission under its copyrights to use, copy, modify, and distribute this
++ * Software with or without fee, provided that the above copyright notice and
++ * all paragraphs of this notice appear in all copies, and that the name of IBM
++ * not be used in connection with the marketing of any product incorporating
++ * the Software or modifications thereof, without specific, written prior
++ * permission.
++ *
++ * To the extent it has a right to do so, IBM grants an immunity from suit
++ * under its patents, if any, for the use, sale or manufacture of products to
++ * the extent that such products are used for performing Domain Name System
++ * dynamic updates in TCP/IP networks by means of the Software. No immunity is
++ * granted for any product per se or for any other function of any product.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++ * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
++ * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
++ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
++ */
++
++#if !defined(LINT) && !defined(CODECENTER)
++static const char rcsid[] = "$BINDId: base64.c,v 8.7 1999/10/13 16:39:33 vixie Exp $";
++#endif /* not lint */
++
++#include <sys/types.h>
++#include <sys/param.h>
++#include <sys/socket.h>
++
++#include <netinet/in.h>
++#include <arpa/inet.h>
++#include <arpa/nameser.h>
++
++#include <ctype.h>
++#include <resolv.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <stdint.h>
++#include <string.h>
++
++#define Assert(Cond) if (!(Cond)) abort()
++
++static const char Base64[] =
++ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
++static const char Pad64 = '=';
++
++/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
++ The following encoding technique is taken from RFC 1521 by Borenstein
++ and Freed. It is reproduced here in a slightly edited form for
++ convenience.
++
++ A 65-character subset of US-ASCII is used, enabling 6 bits to be
++ represented per printable character. (The extra 65th character, "=",
++ is used to signify a special processing function.)
++
++ The encoding process represents 24-bit groups of input bits as output
++ strings of 4 encoded characters. Proceeding from left to right, a
++ 24-bit input group is formed by concatenating 3 8-bit input groups.
++ These 24 bits are then treated as 4 concatenated 6-bit groups, each
++ of which is translated into a single digit in the base64 alphabet.
++
++ Each 6-bit group is used as an index into an array of 64 printable
++ characters. The character referenced by the index is placed in the
++ output string.
++
++ Table 1: The Base64 Alphabet
++
++ Value Encoding Value Encoding Value Encoding Value Encoding
++ 0 A 17 R 34 i 51 z
++ 1 B 18 S 35 j 52 0
++ 2 C 19 T 36 k 53 1
++ 3 D 20 U 37 l 54 2
++ 4 E 21 V 38 m 55 3
++ 5 F 22 W 39 n 56 4
++ 6 G 23 X 40 o 57 5
++ 7 H 24 Y 41 p 58 6
++ 8 I 25 Z 42 q 59 7
++ 9 J 26 a 43 r 60 8
++ 10 K 27 b 44 s 61 9
++ 11 L 28 c 45 t 62 +
++ 12 M 29 d 46 u 63 /
++ 13 N 30 e 47 v
++ 14 O 31 f 48 w (pad) =
++ 15 P 32 g 49 x
++ 16 Q 33 h 50 y
++
++ Special processing is performed if fewer than 24 bits are available
++ at the end of the data being encoded. A full encoding quantum is
++ always completed at the end of a quantity. When fewer than 24 input
++ bits are available in an input group, zero bits are added (on the
++ right) to form an integral number of 6-bit groups. Padding at the
++ end of the data is performed using the '=' character.
++
++ Since all base64 input is an integral number of octets, only the
++ -------------------------------------------------
++ following cases can arise:
++
++ (1) the final quantum of encoding input is an integral
++ multiple of 24 bits; here, the final unit of encoded
++ output will be an integral multiple of 4 characters
++ with no "=" padding,
++ (2) the final quantum of encoding input is exactly 8 bits;
++ here, the final unit of encoded output will be two
++ characters followed by two "=" padding characters, or
++ (3) the final quantum of encoding input is exactly 16 bits;
++ here, the final unit of encoded output will be three
++ characters followed by one "=" padding character.
++ */
++
++int
++b64_ntop(const uint8_t* src, size_t srclength, char* target, size_t targsize)
++{
++ size_t datalength = 0;
++ uint8_t input[3];
++ uint8_t output[4];
++ size_t i;
++
++ while (2 < srclength) {
++ input[0] = *src++;
++ input[1] = *src++;
++ input[2] = *src++;
++ srclength -= 3;
++
++ output[0] = input[0] >> 2;
++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++ output[3] = input[2] & 0x3f;
++ Assert(output[0] < 64);
++ Assert(output[1] < 64);
++ Assert(output[2] < 64);
++ Assert(output[3] < 64);
++
++ if (datalength + 4 > targsize)
++ return (-1);
++ target[datalength++] = Base64[output[0]];
++ target[datalength++] = Base64[output[1]];
++ target[datalength++] = Base64[output[2]];
++ target[datalength++] = Base64[output[3]];
++ }
++
++ /* Now we worry about padding. */
++ if (0 != srclength) {
++ /* Get what's left. */
++ input[0] = input[1] = input[2] = '\0';
++ for (i = 0; i < srclength; i++)
++ input[i] = *src++;
++
++ output[0] = input[0] >> 2;
++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++ Assert(output[0] < 64);
++ Assert(output[1] < 64);
++ Assert(output[2] < 64);
++
++ if (datalength + 4 > targsize)
++ return (-1);
++ target[datalength++] = Base64[output[0]];
++ target[datalength++] = Base64[output[1]];
++ if (srclength == 1)
++ target[datalength++] = Pad64;
++ else
++ target[datalength++] = Base64[output[2]];
++ target[datalength++] = Pad64;
++ }
++ if (datalength >= targsize)
++ return (-1);
++ target[datalength] = '\0'; /* Returned value doesn't count \0. */
++ return (datalength);
++}
++
++/* skips all whitespace anywhere.
++ converts characters, four at a time, starting at (or after)
++ src from base - 64 numbers into three 8 bit bytes in the target area.
++ it returns the number of data bytes stored at the target, or -1 on error.
++ */
++
++int b64_pton(const char* src, uint8_t* target, size_t targsize)
++{
++ int tarindex, state, ch;
++ char *pos;
++
++ state = 0;
++ tarindex = 0;
++
++ while ((ch = *src++) != '\0') {
++ if (isspace(ch)) /* Skip whitespace anywhere. */
++ continue;
++
++ if (ch == Pad64)
++ break;
++
++ pos = strchr(Base64, ch);
++ if (pos == 0) /* A non-base64 character. */
++ return (-1);
++
++ switch (state) {
++ case 0:
++ if (target) {
++ if ((size_t)tarindex >= targsize)
++ return (-1);
++ target[tarindex] = (pos - Base64) << 2;
++ }
++ state = 1;
++ break;
++ case 1:
++ if (target) {
++ if ((size_t)tarindex + 1 >= targsize)
++ return (-1);
++ target[tarindex] |= (pos - Base64) >> 4;
++ target[tarindex+1] = ((pos - Base64) & 0x0f)
++ << 4 ;
++ }
++ tarindex++;
++ state = 2;
++ break;
++ case 2:
++ if (target) {
++ if ((size_t)tarindex + 1 >= targsize)
++ return (-1);
++ target[tarindex] |= (pos - Base64) >> 2;
++ target[tarindex+1] = ((pos - Base64) & 0x03)
++ << 6;
++ }
++ tarindex++;
++ state = 3;
++ break;
++ case 3:
++ if (target) {
++ if ((size_t)tarindex >= targsize)
++ return (-1);
++ target[tarindex] |= (pos - Base64);
++ }
++ tarindex++;
++ state = 0;
++ break;
++ default:
++ abort();
++ }
++ }
++
++ /*
++ * We are done decoding Base-64 chars. Let's see if we ended
++ * on a byte boundary, and/or with erroneous trailing characters.
++ */
++
++ if (ch == Pad64) { /* We got a pad char. */
++ ch = *src++; /* Skip it, get next. */
++ switch (state) {
++ case 0: /* Invalid = in first position */
++ case 1: /* Invalid = in second position */
++ return (-1);
++
++ case 2: /* Valid, means one byte of info */
++ /* Skip any number of spaces. */
++ for ((void)NULL; ch != '\0'; ch = *src++)
++ if (!isspace(ch))
++ break;
++ /* Make sure there is another trailing = sign. */
++ if (ch != Pad64)
++ return (-1);
++ ch = *src++; /* Skip the = */
++ /* Fall through to "single trailing =" case. */
++ /* FALLTHROUGH */
++
++ case 3: /* Valid, means two bytes of info */
++ /*
++ * We know this char is an =. Is there anything but
++ * whitespace after it?
++ */
++ for ((void)NULL; ch != '\0'; ch = *src++)
++ if (!isspace(ch))
++ return (-1);
++
++ /*
++ * Now make sure for cases 2 and 3 that the "extra"
++ * bits that slopped past the last full byte were
++ * zeros. If we don't check them, they become a
++ * subliminal channel.
++ */
++ if (target && target[tarindex] != 0)
++ return (-1);
++ }
++ } else {
++ /*
++ * We ended by seeing the end of the string. Make sure we
++ * have no partial bytes lying around.
++ */
++ if (state != 0)
++ return (-1);
++ }
++
++ return (tarindex);
++}
++
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch
new file mode 100644
index 000000000..c7aebb641
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch
@@ -0,0 +1,134 @@
+From f8653ed0ede4aa781ab758fcd44fdc05ffbe0b0a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 Sep 2017 15:50:57 -0700
+Subject: [PATCH 2/2] adb: Musl fixes
+
+__nonnull is gcc specific
+include sys/types.h for size_t
+Do not redefine close() and lseek()
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ system/core/adb/adb.h | 2 ++
+ system/core/adb/disable_verity_service.c | 13 ++++++++-----
+ system/core/adb/framebuffer_service.c | 7 ++++---
+ system/core/adb/sysdeps.h | 12 ++++++------
+ 4 files changed, 20 insertions(+), 14 deletions(-)
+
+diff --git a/system/core/adb/adb.h b/system/core/adb/adb.h
+index 44e5981..bcdc49f 100644
+--- a/system/core/adb/adb.h
++++ b/system/core/adb/adb.h
+@@ -18,7 +18,9 @@
+ #define __ADB_H
+
+ #include <limits.h>
++#include <sys/types.h>
+
++#include "fdevent.h"
+ #include "adb_trace.h"
+ #include "transport.h" /* readx(), writex() */
+
+diff --git a/system/core/adb/disable_verity_service.c b/system/core/adb/disable_verity_service.c
+index ed3da52..29fa3d6 100644
+--- a/system/core/adb/disable_verity_service.c
++++ b/system/core/adb/disable_verity_service.c
+@@ -14,25 +14,28 @@
+ * limitations under the License.
+ */
+
+-#include "sysdeps.h"
+
+ #define TRACE_TAG TRACE_ADB
+ #include "adb.h"
++#include "sysdeps.h"
++#include "cutils/properties.h"
++#include "ext4_sb.h"
++#include <fs_mgr.h>
+
+ #include <stdio.h>
+ #include <stdarg.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <inttypes.h>
++#include <unistd.h>
++#include <errno.h>
++#include <stdbool.h>
+
+-#include "cutils/properties.h"
+-#include "ext4_sb.h"
+-#include <fs_mgr.h>
+
+ #define FSTAB_PREFIX "/fstab."
+ struct fstab *fstab;
+
+-__attribute__((__format__(printf, 2, 3))) __nonnull((2))
++__attribute__((__format__(printf, 2, 3))) __attribute__((nonnull((2))))
+ static void write_console(int fd, const char* format, ...)
+ {
+ char buffer[256];
+diff --git a/system/core/adb/framebuffer_service.c b/system/core/adb/framebuffer_service.c
+index 8cbe840..8f0ccfb 100644
+--- a/system/core/adb/framebuffer_service.c
++++ b/system/core/adb/framebuffer_service.c
+@@ -14,6 +14,10 @@
+ * limitations under the License.
+ */
+
++#include "fdevent.h"
++#include "adb.h"
++#include "sysdeps.h"
++
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <unistd.h>
+@@ -23,9 +27,6 @@
+ #include <sys/types.h>
+ #include <sys/wait.h>
+
+-#include "fdevent.h"
+-#include "adb.h"
+-
+ #include <linux/fb.h>
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+diff --git a/system/core/adb/sysdeps.h b/system/core/adb/sysdeps.h
+index cc1f839..ea39ac3 100644
+--- a/system/core/adb/sysdeps.h
++++ b/system/core/adb/sysdeps.h
+@@ -123,8 +123,8 @@ static __inline__ int unix_close(int fd)
+ {
+ return close(fd);
+ }
+-#undef close
+-#define close ____xxx_close
++//#undef close
++//#define close ____xxx_close
+
+ static __inline__ int unix_read(int fd, void* buf, size_t len)
+ {
+@@ -369,8 +369,8 @@ static __inline__ int adb_close(int fd)
+ {
+ return close(fd);
+ }
+-#undef close
+-#define close ____xxx_close
++//#undef close
++//#define close ____xxx_close
+
+
+ static __inline__ int adb_read(int fd, void* buf, size_t len)
+@@ -392,8 +392,8 @@ static __inline__ int adb_lseek(int fd, int pos, int where)
+ {
+ return lseek(fd, pos, where);
+ }
+-#undef lseek
+-#define lseek ___xxx_lseek
++//#undef lseek
++//#define lseek ___xxx_lseek
+
+ static __inline__ int adb_unlink(const char* path)
+ {
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk
index 84cd06b10..31452ae10 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk
@@ -16,6 +16,7 @@ adbd_SRC_FILES += jdwp_service.c
adbd_SRC_FILES += framebuffer_service.c
adbd_SRC_FILES += remount_service.c
adbd_SRC_FILES += disable_verity_service.c
+adbd_SRC_FILES += base64.c
adbd_SRC_FILES += usb_linux_client.c
adbd_OBJS := $(adbd_SRC_FILES:.c=.o)
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 34fddcbda..d3ccd1d06 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
@@ -32,6 +32,8 @@ SRC_URI = " \
file://define-shell-command.patch \
file://implicit-declaration-function-strlcat-strlcopy.patch \
file://fix-big-endian-build.patch \
+ file://0001-add-base64-implementation.patch \
+ file://0002-adb-Musl-fixes.patch \
file://android-tools-adbd.service \
file://.gitignore;subdir=git \
file://adb.mk;subdir=${BPN} \
@@ -52,24 +54,6 @@ inherit systemd
SYSTEMD_SERVICE_${PN} = "android-tools-adbd.service"
-# Get rid of files uneeded to build Android tools
-do_unpack_extra() {
- cd ${S}
- rm -rf \
- system/core/.git \
- system/extras/.git \
- hardware/libhardware/.git \
- external/libselinux/.git \
- build/.git
- git init
- git add .
- git commit -m \
- "Initial import - committed ${ANDROID_TAG}"
- git clean -fdx
-}
-
-addtask unpack_extra after do_unpack before do_patch
-
# Find libbsd headers during native builds
CC_append_class-native = " -I${STAGING_INCDIR}"
CC_append_class-nativesdk = " -I${STAGING_INCDIR}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive.inc b/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive.inc
deleted file mode 100644
index 9684d1f99..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-LICENSE = "GPLv3"
-HOMEPAGE = "http://www.gnu.org/software/autoconf-archive/"
-SECTION = "devel"
-
-DEPENDS += "m4-native"
-DEPENDS_class-native = "m4-native gnu-config-native"
-DEPENDS_class-nativesdk = "m4-nativesdk gnu-config-nativesdk"
-
-RDEPENDS_${PN} = "m4 gnu-config gnome-common"
-RDEPENDS_${PN}_class-native = "m4-native gnu-config-native"
-RDEPENDS_${PN}_class-nativesdk = "m4-nativesdk gnu-config-nativesdk"
-
-SRC_URI = "${GNU_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
-
-inherit autotools
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive/delete-some-m4-files.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive/delete-some-m4-files.patch
deleted file mode 100644
index 2aa788bf9..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive/delete-some-m4-files.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Delete two m4files ax_code_coverage.m4 and ax_check_enable_debug.m4
-to avoid installing conflicts. These two files can be installed by
-gnome-common from oe-core, even if the files in gnmoe-common is
-copied from autoconf-archive(the reason is that the old version
-autoconf-archive don't provide the two files).
-After upgrading to the new version, we need to drop them in meta-oe
-and then set rdepends to gnome-common(oe-core)
-
-Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
-
-Index: a/configure.ac
-===================================================================
---- a/configure.ac 2016-09-16 06:00:00.000000000 +0800
-+++ b/configure.ac 2017-04-18 17:43:05.946290554 +0800
-@@ -19,7 +19,7 @@
-
- AC_PROG_SED
-
--M4FILES="m4_esyscmd([echo -n m4/*.m4])"
-+M4FILES="m4_esyscmd([echo -n m4/*.m4 | sed -e 's:m4/ax_code_coverage.m4 ::g'|sed -e 's:m4/ax_check_enable_debug.m4 ::g'])"
- AC_SUBST([M4FILES])
-
- TEXIFILES="m4_esyscmd([cd m4 && echo -n *.m4 | sed -e 's/\.m4/.texi/g'])"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive_2016.09.16.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive_2016.09.16.bb
deleted file mode 100644
index 561b57b4f..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/autoconf-archive/autoconf-archive_2016.09.16.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-require autoconf-archive.inc
-
-
-PARALLEL_MAKE = ""
-
-LICENSE = "GPLv2 & GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI[md5sum] = "bf19d4cddce260b3c3e1d51d42509071"
-SRC_URI[sha256sum] = "e8f2efd235f842bad2f6938bf4a72240a5e5fcd248e8444335e63beb60fabd82"
-
-SRC_URI += "\
- file://delete-some-m4-files.patch \
-"
-
-EXTRA_OECONF += "ac_cv_path_M4=m4"
-BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch
new file mode 100644
index 000000000..07cb8a366
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch
@@ -0,0 +1,242 @@
+From b90c8f3b60bfe5dbed2823620242e9d30b9eb28f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 28 Jun 2017 19:01:18 -0700
+Subject: [PATCH] Replace use of struct ucontext with ucontext_t
+
+glibc 2.26 would not expose struct ucontext anymore
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ .../linux/dump_writer_common/ucontext_reader.cc | 32 +++++++++++-----------
+ .../linux/dump_writer_common/ucontext_reader.h | 14 +++++-----
+ src/client/linux/handler/exception_handler.cc | 10 +++----
+ src/client/linux/handler/exception_handler.h | 4 +--
+ .../linux/microdump_writer/microdump_writer.cc | 2 +-
+ .../linux/minidump_writer/minidump_writer.cc | 2 +-
+ 6 files changed, 32 insertions(+), 32 deletions(-)
+
+diff --git a/src/client/linux/dump_writer_common/ucontext_reader.cc b/src/client/linux/dump_writer_common/ucontext_reader.cc
+index c80724dd..052ce37c 100644
+--- a/src/client/linux/dump_writer_common/ucontext_reader.cc
++++ b/src/client/linux/dump_writer_common/ucontext_reader.cc
+@@ -36,19 +36,19 @@ namespace google_breakpad {
+
+ // Minidump defines register structures which are different from the raw
+ // structures which we get from the kernel. These are platform specific
+-// functions to juggle the ucontext and user structures into minidump format.
++// functions to juggle the ucontext_t and user structures into minidump format.
+
+ #if defined(__i386__)
+
+-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+ return uc->uc_mcontext.gregs[REG_ESP];
+ }
+
+-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+ return uc->uc_mcontext.gregs[REG_EIP];
+ }
+
+-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+ const struct _libc_fpstate* fp) {
+ const greg_t* regs = uc->uc_mcontext.gregs;
+
+@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
+
+ #elif defined(__x86_64)
+
+-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+ return uc->uc_mcontext.gregs[REG_RSP];
+ }
+
+-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+ return uc->uc_mcontext.gregs[REG_RIP];
+ }
+
+-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+ const struct _libc_fpstate* fpregs) {
+ const greg_t* regs = uc->uc_mcontext.gregs;
+
+@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
+
+ #elif defined(__ARM_EABI__)
+
+-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+ return uc->uc_mcontext.arm_sp;
+ }
+
+-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+ return uc->uc_mcontext.arm_pc;
+ }
+
+-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
+ out->context_flags = MD_CONTEXT_ARM_FULL;
+
+ out->iregs[0] = uc->uc_mcontext.arm_r0;
+@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
+
+ #elif defined(__aarch64__)
+
+-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+ return uc->uc_mcontext.sp;
+ }
+
+-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+ return uc->uc_mcontext.pc;
+ }
+
+-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+ const struct fpsimd_context* fpregs) {
+ out->context_flags = MD_CONTEXT_ARM64_FULL;
+
+@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
+
+ #elif defined(__mips__)
+
+-uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+ return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP];
+ }
+
+-uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
+ return uc->uc_mcontext.pc;
+ }
+
+-void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
++void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
+ #if _MIPS_SIM == _ABI64
+ out->context_flags = MD_CONTEXT_MIPS64_FULL;
+ #elif _MIPS_SIM == _ABIO32
+diff --git a/src/client/linux/dump_writer_common/ucontext_reader.h b/src/client/linux/dump_writer_common/ucontext_reader.h
+index b6e77b4b..2de80b70 100644
+--- a/src/client/linux/dump_writer_common/ucontext_reader.h
++++ b/src/client/linux/dump_writer_common/ucontext_reader.h
+@@ -39,23 +39,23 @@
+
+ namespace google_breakpad {
+
+-// Wraps platform-dependent implementations of accessors to ucontext structs.
++// Wraps platform-dependent implementations of accessors to ucontext_t structs.
+ struct UContextReader {
+- static uintptr_t GetStackPointer(const struct ucontext* uc);
++ static uintptr_t GetStackPointer(const ucontext_t* uc);
+
+- static uintptr_t GetInstructionPointer(const struct ucontext* uc);
++ static uintptr_t GetInstructionPointer(const ucontext_t* uc);
+
+- // Juggle a arch-specific ucontext into a minidump format
++ // Juggle a arch-specific ucontext_t into a minidump format
+ // out: the minidump structure
+ // info: the collection of register structures.
+ #if defined(__i386__) || defined(__x86_64)
+- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
++ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+ const struct _libc_fpstate* fp);
+ #elif defined(__aarch64__)
+- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
++ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+ const struct fpsimd_context* fpregs);
+ #else
+- static void FillCPUContext(RawContextCPU *out, const ucontext *uc);
++ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc);
+ #endif
+ };
+
+diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc
+index 586d84e9..05936d28 100644
+--- a/src/client/linux/handler/exception_handler.cc
++++ b/src/client/linux/handler/exception_handler.cc
+@@ -457,9 +457,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) {
+ // Fill in all the holes in the struct to make Valgrind happy.
+ memset(&g_crash_context_, 0, sizeof(g_crash_context_));
+ memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t));
+- memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext));
++ memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t));
+ #if defined(__aarch64__)
+- struct ucontext* uc_ptr = (struct ucontext*)uc;
++ ucontext_t* uc_ptr = (ucontext_t*)uc;
+ struct fpsimd_context* fp_ptr =
+ (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
+ if (fp_ptr->head.magic == FPSIMD_MAGIC) {
+@@ -468,9 +468,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) {
+ }
+ #elif !defined(__ARM_EABI__) && !defined(__mips__)
+ // FP state is not part of user ABI on ARM Linux.
+- // In case of MIPS Linux FP state is already part of struct ucontext
++ // In case of MIPS Linux FP state is already part of ucontext_t
+ // and 'float_state' is not a member of CrashContext.
+- struct ucontext* uc_ptr = (struct ucontext*)uc;
++ ucontext_t* uc_ptr = (ucontext_t*)uc;
+ if (uc_ptr->uc_mcontext.fpregs) {
+ memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs,
+ sizeof(g_crash_context_.float_state));
+@@ -494,7 +494,7 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) {
+ // ExceptionHandler::HandleSignal().
+ siginfo.si_code = SI_USER;
+ siginfo.si_pid = getpid();
+- struct ucontext context;
++ ucontext_t context;
+ getcontext(&context);
+ return HandleSignal(sig, &siginfo, &context);
+ }
+diff --git a/src/client/linux/handler/exception_handler.h b/src/client/linux/handler/exception_handler.h
+index daba57e0..25598a29 100644
+--- a/src/client/linux/handler/exception_handler.h
++++ b/src/client/linux/handler/exception_handler.h
+@@ -191,11 +191,11 @@ class ExceptionHandler {
+ struct CrashContext {
+ siginfo_t siginfo;
+ pid_t tid; // the crashing thread.
+- struct ucontext context;
++ ucontext_t context;
+ #if !defined(__ARM_EABI__) && !defined(__mips__)
+ // #ifdef this out because FP state is not part of user ABI for Linux ARM.
+ // In case of MIPS Linux FP state is already part of struct
+- // ucontext so 'float_state' is not required.
++ // ucontext_t so 'float_state' is not required.
+ fpstate_t float_state;
+ #endif
+ };
+diff --git a/src/client/linux/microdump_writer/microdump_writer.cc b/src/client/linux/microdump_writer/microdump_writer.cc
+index 3764eec2..80ad5c46 100644
+--- a/src/client/linux/microdump_writer/microdump_writer.cc
++++ b/src/client/linux/microdump_writer/microdump_writer.cc
+@@ -593,7 +593,7 @@ class MicrodumpWriter {
+
+ void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
+
+- const struct ucontext* const ucontext_;
++ const ucontext_t* const ucontext_;
+ #if !defined(__ARM_EABI__) && !defined(__mips__)
+ const google_breakpad::fpstate_t* const float_state_;
+ #endif
+diff --git a/src/client/linux/minidump_writer/minidump_writer.cc b/src/client/linux/minidump_writer/minidump_writer.cc
+index d11ba6e5..c7161434 100644
+--- a/src/client/linux/minidump_writer/minidump_writer.cc
++++ b/src/client/linux/minidump_writer/minidump_writer.cc
+@@ -1323,7 +1323,7 @@ class MinidumpWriter {
+ const int fd_; // File descriptor where the minidum should be written.
+ const char* path_; // Path to the file where the minidum should be written.
+
+- const struct ucontext* const ucontext_; // also from the signal handler
++ const ucontext_t* const ucontext_; // also from the signal handler
+ #if !defined(__ARM_EABI__) && !defined(__mips__)
+ const google_breakpad::fpstate_t* const float_state_; // ditto
+ #endif
+--
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Turn-off-sign-compare-for-musl-libc.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Turn-off-sign-compare-for-musl-libc.patch
new file mode 100644
index 000000000..33bae1a37
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-Turn-off-sign-compare-for-musl-libc.patch
@@ -0,0 +1,41 @@
+From ab8dcad25d0ac1f3a88814e78794e5d450de15ac Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Sep 2017 23:12:51 -0700
+Subject: [PATCH 1/5] Turn off sign-compare for musl-libc
+
+Fix
+
+../../../../../../../workspace/sources/breakpad/src/client/linux/crash_generation/crash_generation_server.cc:234:14: error: comparison of integers of different signs: 'unsigned long' and 'int' [-Werror,-Wsign-compare] hdr = CMSG_NXTHDR(&msg, hdr)) { ^~~~~~~~~~~~~~~~~~~~~~
+/mnt/a/oe/build/tmp/work/cortexa7hf-neon-vfpv4-bec-linux-musleabi/breakpad/1_1.0+git999-r0/recipe-sysroot/usr/include/sys/socket.h:288:44: note: expanded from macro 'CMSG_NXTHDR' __CMSG_LEN(cmsg) + sizeof(struct cmsghdr) >= __MHDR_END(mhdr) - (unsigned char *)(cmsg) \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 error generated.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/client/linux/crash_generation/crash_generation_server.cc | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/src/client/linux/crash_generation/crash_generation_server.cc b/src/client/linux/crash_generation/crash_generation_server.cc
+index 2596afde..2faeb9e5 100644
+--- a/src/client/linux/crash_generation/crash_generation_server.cc
++++ b/src/client/linux/crash_generation/crash_generation_server.cc
+@@ -230,8 +230,18 @@ CrashGenerationServer::ClientEvent(short revents)
+ // Walk the control payload and extract the file descriptor and validated pid.
+ pid_t crashing_pid = -1;
+ int signal_fd = -1;
++#ifndef __GLIBC__
++ // In musl-libc, CMSG_NXTHDR typecasts char* to cmsghdr* which causes
++ // clang to throw sign-compare warning. This is to suppress the warning
++ // inline.
++ #pragma clang diagnostic push
++ #pragma clang diagnostic ignored "-Wsign-compare"
++#endif
+ for (struct cmsghdr *hdr = CMSG_FIRSTHDR(&msg); hdr;
+ hdr = CMSG_NXTHDR(&msg, hdr)) {
++#ifndef __GLIBC__
++ #pragma clang diagnostic pop
++#endif
+ if (hdr->cmsg_level != SOL_SOCKET)
+ continue;
+ if (hdr->cmsg_type == SCM_RIGHTS) {
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch
new file mode 100644
index 000000000..4583d601a
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch
@@ -0,0 +1,28 @@
+From 68580cb62f77117be3164c52abae68f75e8e59a1 Mon Sep 17 00:00:00 2001
+From: Felix Janda <felix.janda@posteo.de>
+Date: Sun, 1 Feb 2015 14:26:52 +0100
+Subject: [PATCH 1/3] include <sys/reg.h> to get __WORDSIZE on musl libc
+
+---
+ src/common/linux/elf_core_dump.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: git/src/common/linux/elf_core_dump.h
+===================================================================
+--- git.orig/src/common/linux/elf_core_dump.h
++++ git/src/common/linux/elf_core_dump.h
+@@ -33,10 +33,13 @@
+ #ifndef COMMON_LINUX_ELF_CORE_DUMP_H_
+ #define COMMON_LINUX_ELF_CORE_DUMP_H_
+
++#include <config.h>
+ #include <elf.h>
+ #include <link.h>
+ #include <stddef.h>
+-
++#ifdef HAVE_SYS_REG_H
++#include <sys/reg.h>
++#endif
+ #include "common/memory_range.h"
+
+ namespace google_breakpad {
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch
new file mode 100644
index 000000000..2b892ad64
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch
@@ -0,0 +1,45 @@
+From 5f7333e4f7b7485598bd71aa80967e1a16a7f901 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Sep 2017 22:57:52 -0700
+Subject: [PATCH] lss: Match syscalls to match musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ linux_syscall_support.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+Index: lss/linux_syscall_support.h
+===================================================================
+--- lss.orig/linux_syscall_support.h
++++ lss/linux_syscall_support.h
+@@ -793,6 +793,9 @@ struct kernel_statfs {
+ #define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
+ #endif
+
++#ifndef __NR_fstatat
++#define __NR_fstatat __NR_fstatat64
++#endif
+
+ #if defined(__x86_64__)
+ #ifndef ARCH_SET_GS
+@@ -924,6 +927,7 @@ struct kernel_statfs {
+ #ifndef __NR_fallocate
+ #define __NR_fallocate 324
+ #endif
++
+ /* End of i386 definitions */
+ #elif defined(__ARM_ARCH_3__) || defined(__ARM_EABI__)
+ #ifndef __NR_setresuid
+@@ -1211,6 +1215,12 @@ struct kernel_statfs {
+ #ifndef __NR_fallocate
+ #define __NR_fallocate 285
+ #endif
++#ifndef __NR_pread
++#define __NR_pread __NR_pread64
++#endif
++#ifndef __NR_pwrite
++#define __NR_pwrite __NR_pwrite64
++#endif
+ /* End of x86-64 definitions */
+ #elif defined(__mips__)
+ #if _MIPS_SIM == _MIPS_SIM_ABI32
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Avoid-using-basename.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Avoid-using-basename.patch
new file mode 100644
index 000000000..bc6282981
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Avoid-using-basename.patch
@@ -0,0 +1,29 @@
+From 806964f852773e427fea82a7716d44ce3be4498c Mon Sep 17 00:00:00 2001
+From: Felix Janda <felix.janda@posteo.de>
+Date: Sun, 1 Feb 2015 14:27:32 +0100
+Subject: [PATCH 2/3] Avoid using basename
+
+---
+ src/common/linux/dump_symbols.cc | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/common/linux/dump_symbols.cc b/src/common/linux/dump_symbols.cc
+index d029ca14..6ac4a17b 100644
+--- a/src/common/linux/dump_symbols.cc
++++ b/src/common/linux/dump_symbols.cc
+@@ -881,9 +881,9 @@ const char* ElfArchitecture(const typename ElfClass::Ehdr* elf_header) {
+ // last slash, or the whole filename if there are no slashes.
+ string BaseFileName(const string &filename) {
+ // Lots of copies! basename's behavior is less than ideal.
+- char* c_filename = strdup(filename.c_str());
+- string base = basename(c_filename);
+- free(c_filename);
++ const char *c_filename = filename.c_str();
++ const char *p = strrchr(c_filename, '/');
++ string base = p ? p+1 : c_filename;
+ return base;
+ }
+
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch
new file mode 100644
index 000000000..6c097cd22
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch
@@ -0,0 +1,60 @@
+From 0ba1b3e35e7c743b670bedc3e90001dfb868df10 Mon Sep 17 00:00:00 2001
+From: Felix Janda <felix.janda@posteo.de>
+Date: Sun, 1 Feb 2015 13:45:51 +0100
+Subject: [PATCH 2/6] Use _fpstate instead of _libc_fpstate on linux
+
+glibc defines both. musl libc only the former.
+---
+ src/client/linux/dump_writer_common/ucontext_reader.cc | 4 ++--
+ src/client/linux/dump_writer_common/ucontext_reader.h | 2 +-
+ src/client/linux/minidump_writer/minidump_writer.h | 2 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+Index: git/src/client/linux/dump_writer_common/ucontext_reader.cc
+===================================================================
+--- git.orig/src/client/linux/dump_writer_common/ucontext_reader.cc
++++ git/src/client/linux/dump_writer_common/ucontext_reader.cc
+@@ -49,7 +49,7 @@ uintptr_t UContextReader::GetInstruction
+ }
+
+ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+- const struct _libc_fpstate* fp) {
++ const struct _fpstate* fp) {
+ const greg_t* regs = uc->uc_mcontext.gregs;
+
+ out->context_flags = MD_CONTEXT_X86_FULL |
+@@ -97,7 +97,7 @@ uintptr_t UContextReader::GetInstruction
+ }
+
+ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+- const struct _libc_fpstate* fpregs) {
++ const struct _fpstate* fpregs) {
+ const greg_t* regs = uc->uc_mcontext.gregs;
+
+ out->context_flags = MD_CONTEXT_AMD64_FULL;
+Index: git/src/client/linux/dump_writer_common/ucontext_reader.h
+===================================================================
+--- git.orig/src/client/linux/dump_writer_common/ucontext_reader.h
++++ git/src/client/linux/dump_writer_common/ucontext_reader.h
+@@ -50,7 +50,7 @@ struct UContextReader {
+ // info: the collection of register structures.
+ #if defined(__i386__) || defined(__x86_64)
+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+- const struct _libc_fpstate* fp);
++ const struct _fpstate* fp);
+ #elif defined(__aarch64__)
+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
+ const struct fpsimd_context* fpregs);
+Index: git/src/client/linux/minidump_writer/minidump_writer.h
+===================================================================
+--- git.orig/src/client/linux/minidump_writer/minidump_writer.h
++++ git/src/client/linux/minidump_writer/minidump_writer.h
+@@ -48,7 +48,7 @@ class ExceptionHandler;
+ #if defined(__aarch64__)
+ typedef struct fpsimd_context fpstate_t;
+ #elif !defined(__ARM_EABI__) && !defined(__mips__)
+-typedef struct _libc_fpstate fpstate_t;
++typedef struct _fpstate fpstate_t;
+ #endif
+
+ // These entries store a list of memory regions that the client wants included
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-sys-signal.h-is-a-nonportable-alias-for-signal.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-sys-signal.h-is-a-nonportable-alias-for-signal.h.patch
new file mode 100644
index 000000000..cfd9a9b34
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0002-sys-signal.h-is-a-nonportable-alias-for-signal.h.patch
@@ -0,0 +1,26 @@
+From 15582e19c2545d5ffe8ff07f957d0ed602aeca74 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Sep 2017 23:15:09 -0700
+Subject: [PATCH 2/5] <sys/signal.h> is a nonportable alias for <signal.h>
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/client/linux/handler/exception_handler.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc
+index 05936d28..cca023fd 100644
+--- a/src/client/linux/handler/exception_handler.cc
++++ b/src/client/linux/handler/exception_handler.cc
+@@ -78,7 +78,7 @@
+ #include <sys/wait.h>
+ #include <unistd.h>
+
+-#include <sys/signal.h>
++#include <signal.h>
+ #include <sys/ucontext.h>
+ #include <sys/user.h>
+ #include <ucontext.h>
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch
new file mode 100644
index 000000000..2593ea93e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch
@@ -0,0 +1,88 @@
+From 569af712da94637091080943f6a0d69ccb35864e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Sep 2017 23:24:08 -0700
+Subject: [PATCH 3/5] Dont include stab.h
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/common/stabs_reader.cc | 1 -
+ src/common/stabs_reader.h | 12 +++++++++++-
+ src/common/stabs_reader_unittest.cc | 1 -
+ 3 files changed, 11 insertions(+), 3 deletions(-)
+
+Index: git/src/common/stabs_reader.cc
+===================================================================
+--- git.orig/src/common/stabs_reader.cc
++++ git/src/common/stabs_reader.cc
+@@ -34,7 +34,9 @@
+ #include "common/stabs_reader.h"
+
+ #include <assert.h>
++#ifdef HAVE_STAB_H
+ #include <stab.h>
++#endif
+ #include <string.h>
+
+ #include <string>
+Index: git/src/common/stabs_reader.h
+===================================================================
+--- git.orig/src/common/stabs_reader.h
++++ git/src/common/stabs_reader.h
+@@ -58,6 +58,30 @@
+ #elif defined(HAVE_A_OUT_H)
+ #include <a.out.h>
+ #endif
++// Definitions from <stab.h> and <a.out.h> for systems which
++// do not have them
++#ifndef HAVE_A_OUT_H
++#undef N_UNDF
++#define N_UNDF 0x0
++#ifndef N_FUN
++#define N_FUN 0x24
++#endif
++#ifndef N_SLINE
++#define N_SLINE 0x44
++#endif
++#ifndef N_SO
++#define N_SO 0x64
++#endif
++#ifndef N_LSYM
++#define N_LSYM 0x80
++#endif
++#ifndef N_BINCL
++#define N_BINCL 0x82
++#endif
++#ifndef N_SOL
++#define N_SOL 0x84
++#endif
++#endif
+
+ #include <string>
+ #include <vector>
+Index: git/src/common/stabs_reader_unittest.cc
+===================================================================
+--- git.orig/src/common/stabs_reader_unittest.cc
++++ git/src/common/stabs_reader_unittest.cc
+@@ -33,7 +33,9 @@
+
+ #include <assert.h>
+ #include <errno.h>
++#ifdef HAVE_STAB_H
+ #include <stab.h>
++#endif
+ #include <stdarg.h>
+ #include <stdlib.h>
+ #include <string.h>
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac
++++ git/configure.ac
+@@ -72,7 +72,7 @@ AC_ARG_ENABLE(m32,
+ AC_HEADER_STDC
+ AC_SYS_LARGEFILE
+ AX_PTHREAD
+-AC_CHECK_HEADERS([a.out.h sys/random.h])
++AC_CHECK_HEADERS([a.out.h stab.h sys/random.h])
+ AC_CHECK_FUNCS([arc4random getrandom])
+
+ AX_CXX_COMPILE_STDCXX(11, noext, mandatory)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch
new file mode 100644
index 000000000..851004704
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch
@@ -0,0 +1,35 @@
+From 7aa266545dabf9934ccd44d4fc836040497159be Mon Sep 17 00:00:00 2001
+From: Felix Janda <felix.janda@posteo.de>
+Date: Sun, 1 Feb 2015 13:41:08 +0100
+Subject: [PATCH 3/3] Fix conflict between musl libc <dirent.h> and lss
+
+Include <dirent.h> late to avoid the macro getdents64 in musl
+libc's <dirent.h> to conflict with linux_sycall_support.h.
+---
+ src/client/linux/crash_generation/crash_generation_server.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/client/linux/crash_generation/crash_generation_server.cc b/src/client/linux/crash_generation/crash_generation_server.cc
+index 26c50a5c..2596afde 100644
+--- a/src/client/linux/crash_generation/crash_generation_server.cc
++++ b/src/client/linux/crash_generation/crash_generation_server.cc
+@@ -28,7 +28,6 @@
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ #include <assert.h>
+-#include <dirent.h>
+ #include <fcntl.h>
+ #include <limits.h>
+ #include <poll.h>
+@@ -49,6 +48,8 @@
+ #include "common/linux/guid_creator.h"
+ #include "common/linux/safe_readlink.h"
+
++#include <dirent.h>
++
+ static const char kCommandQuit = 'x';
+
+ namespace google_breakpad {
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch
new file mode 100644
index 000000000..525a1555b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch
@@ -0,0 +1,43 @@
+From 680f9590d19a6e35c7c5587e3f4d8194aab0fcd2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Sep 2017 23:28:36 -0700
+Subject: [PATCH 4/5] elf_reader.cc: include <sys/reg.h> to get __WORDSIZE on
+ musl libc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/common/dwarf/elf_reader.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+Index: git/src/common/dwarf/elf_reader.cc
+===================================================================
+--- git.orig/src/common/dwarf/elf_reader.cc
++++ git/src/common/dwarf/elf_reader.cc
+@@ -29,10 +29,13 @@
+ #ifndef _GNU_SOURCE
+ #define _GNU_SOURCE // needed for pread()
+ #endif
+-
++#include <config.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <sys/mman.h>
++#ifdef HAVE_SYS_REG_H
++#include <sys/reg.h>
++#endif
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <string.h>
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac
++++ git/configure.ac
+@@ -72,7 +72,7 @@ AC_ARG_ENABLE(m32,
+ AC_HEADER_STDC
+ AC_SYS_LARGEFILE
+ AX_PTHREAD
+-AC_CHECK_HEADERS([a.out.h stab.h sys/random.h])
++AC_CHECK_HEADERS([a.out.h stab.h sys/random.h sys/reg.h])
+ AC_CHECK_FUNCS([arc4random getrandom])
+
+ AX_CXX_COMPILE_STDCXX(11, noext, mandatory)
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
new file mode 100644
index 000000000..80de8c684
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-Import-necessary-definitions-from-stab.h.patch
@@ -0,0 +1,199 @@
+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/0005-md2core-Replace-basename.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-md2core-Replace-basename.patch
new file mode 100644
index 000000000..852c1ed2c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/0005-md2core-Replace-basename.patch
@@ -0,0 +1,38 @@
+From bbf2b5ed5d93b227df8aea5726727b48e29f6790 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Sep 2017 23:35:40 -0700
+Subject: [PATCH 5/5] md2core: Replace basename()
+
+musl does not provide it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/tools/linux/md2core/minidump-2-core.cc | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/tools/linux/md2core/minidump-2-core.cc b/src/tools/linux/md2core/minidump-2-core.cc
+index 6a9e28eb..52b81c22 100644
+--- a/src/tools/linux/md2core/minidump-2-core.cc
++++ b/src/tools/linux/md2core/minidump-2-core.cc
+@@ -107,6 +107,9 @@ struct Options {
+
+ static void
+ Usage(int argc, const char* argv[]) {
++ const char *c_filename = argv[0];;
++ const char *p = strrchr(c_filename, '/');
++ const char *base = p ? p+1 : c_filename;
+ fprintf(stderr,
+ "Usage: %s [options] <minidump file>\n"
+ "\n"
+@@ -133,7 +136,7 @@ Usage(int argc, const char* argv[]) {
+ " lookups to be done in this directory rather than the filesystem\n"
+ " layout as it exists in the crashing image. This path should end\n"
+ " with a slash if it's a directory. e.g. /var/lib/breakpad/\n"
+- "", basename(argv[0]));
++ "", base);
+ }
+
+ static void
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch
new file mode 100644
index 000000000..42e073b94
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch
@@ -0,0 +1,77 @@
+map the mcontext_t structure for musl
+
+Upstream-Status: Inappropriate[need to consider Android]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Index: git/src/client/linux/dump_writer_common/thread_info.cc
+===================================================================
+--- git.orig/src/client/linux/dump_writer_common/thread_info.cc
++++ git/src/client/linux/dump_writer_common/thread_info.cc
+@@ -229,7 +229,6 @@ void ThreadInfo::FillCPUContext(RawConte
+ }
+
+ #elif defined(__mips__)
+-
+ uintptr_t ThreadInfo::GetInstructionPointer() const {
+ return mcontext.pc;
+ }
+@@ -263,8 +262,11 @@ void ThreadInfo::FillCPUContext(RawConte
+ out->cause = 0; // Not stored in mcontext
+
+ for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i)
++#ifdef __GLIBC__
+ out->float_save.regs[i] = mcontext.fpregs.fp_r.fp_fregs[i]._fp_fregs;
+-
++#else
++ out->float_save.regs[i] = mcontext.fpregs[i];
++#endif
+ out->float_save.fpcsr = mcontext.fpc_csr;
+ #if _MIPS_SIM == _ABIO32
+ out->float_save.fir = mcontext.fpc_eir;
+Index: git/src/client/linux/dump_writer_common/ucontext_reader.cc
+===================================================================
+--- git.orig/src/client/linux/dump_writer_common/ucontext_reader.cc
++++ git/src/client/linux/dump_writer_common/ucontext_reader.cc
+@@ -247,8 +247,11 @@ void UContextReader::FillCPUContext(RawC
+ out->cause = 0; // Not reported in signal context.
+
+ for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i)
++#ifdef __GLIBC__
+ out->float_save.regs[i] = uc->uc_mcontext.fpregs.fp_r.fp_dregs[i];
+-
++#else
++ out->float_save.regs[i] = uc->uc_mcontext.fpregs[i];
++#endif
+ out->float_save.fpcsr = uc->uc_mcontext.fpc_csr;
+ #if _MIPS_SIM == _ABIO32
+ out->float_save.fir = uc->uc_mcontext.fpc_eir; // Unused.
+Index: git/src/client/linux/minidump_writer/linux_core_dumper.cc
+===================================================================
+--- git.orig/src/client/linux/minidump_writer/linux_core_dumper.cc
++++ git/src/client/linux/minidump_writer/linux_core_dumper.cc
+@@ -196,7 +196,7 @@ bool LinuxCoreDumper::EnumerateThreads()
+ info.tgid = status->pr_pgrp;
+ info.ppid = status->pr_ppid;
+ #if defined(__mips__)
+-#if defined(__ANDROID__)
++#if defined(__ANDROID__) || !defined(__GLIBC__)
+ for (int i = EF_R0; i <= EF_R31; i++)
+ info.mcontext.gregs[i - EF_R0] = status->pr_reg[i];
+ #else // __ANDROID__
+Index: git/src/tools/linux/md2core/minidump-2-core.cc
+===================================================================
+--- git.orig/src/tools/linux/md2core/minidump-2-core.cc
++++ git/src/tools/linux/md2core/minidump-2-core.cc
+@@ -516,8 +516,12 @@ ParseThreadRegisters(CrashedProcess::Thr
+ thread->mcontext.lo3 = rawregs->lo[2];
+
+ for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i) {
++#ifdef __GLIBC__
+ thread->mcontext.fpregs.fp_r.fp_fregs[i]._fp_fregs =
+ rawregs->float_save.regs[i];
++#else
++ thread->mcontext.fpregs[i] = rawregs->float_save.regs[i];
++#endif
+ }
+
+ thread->mcontext.fpc_csr = rawregs->float_save.fpcsr;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mips_asm_sgidefs.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mips_asm_sgidefs.patch
new file mode 100644
index 000000000..19bb56044
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad/mips_asm_sgidefs.patch
@@ -0,0 +1,27 @@
+Index: lss/linux_syscall_support.h
+===================================================================
+--- lss.orig/linux_syscall_support.h
++++ lss/linux_syscall_support.h
+@@ -118,21 +118,13 @@ extern "C" {
+ #include <endian.h>
+
+ #ifdef __mips__
+-/* Include definitions of the ABI currently in use. */
+-#ifdef __ANDROID__
+-/* Android doesn't have sgidefs.h, but does have asm/sgidefs.h,
+- * which has the definitions we need.
+- */
+ #include <asm/sgidefs.h>
+-#else
+-#include <sgidefs.h>
+-#endif
+ #endif
+ #endif
+
+ /* The Android NDK's <sys/stat.h> #defines these macros as aliases
+ * to their non-64 counterparts. To avoid naming conflict, remove them. */
+-#ifdef __ANDROID__
++#if defined(__ANDROID__) || (defined(__linux__) && !defined(__glibc__))
+ /* These are restored by the corresponding #pragma pop_macro near
+ * the end of this file. */
+ # pragma push_macro("stat64")
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 36c2b6349..5f6d82c94 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
@@ -17,24 +17,37 @@ PE = "1"
PV = "1.0+git${SRCPV}"
-SRCREV_FORMAT = "breakpad_glog_gmock_gtest_protobuf_lss"
+SRCREV_FORMAT = "breakpad_gtest_protobuf_lss_gyp"
-SRCREV_breakpad = "2f6cb866d615d6240a18c7535c994c6bb93b1ba5"
-SRCREV_glog = "d8cb47f77d1c31779f3ff890e1a5748483778d6a"
-SRCREV_gmock = "f7d03d2734759ee12b57d2dbcb695607d89e8e05"
+SRCREV_breakpad = "dea867e76f24e4a68395684b9d1cf24bcef82f20"
SRCREV_gtest = "ec44c6c1675c25b9827aacd08c02433cccde7780"
SRCREV_protobuf = "cb6dd4ef5f82e41e06179dcd57d3b1d9246ad6ac"
-SRCREV_lss = "1549d20f6d3e7d66bb4e687c0ab9da42c2bff2ac"
+SRCREV_lss = "a91633d172407f6c83dd69af11510b37afebb7f9"
+SRCREV_gyp = "324dd166b7c0b39d513026fa52d6280ac6d56770"
SRC_URI = "git://github.com/google/breakpad;name=breakpad \
- git://github.com/google/glog.git;destsuffix=git/src/third_party/glog;name=glog \
- git://github.com/google/googlemock.git;destsuffix=git/src/testing;name=gmock \
git://github.com/google/googletest.git;destsuffix=git/src/testing/gtest;name=gtest \
git://github.com/google/protobuf.git;destsuffix=git/src/third_party/protobuf/protobuf;name=protobuf \
git://chromium.googlesource.com/linux-syscall-support;protocol=https;destsuffix=git/src/third_party/lss;name=lss \
+ git://chromium.googlesource.com/external/gyp;protocol=https;destsuffix=git/src/tools/gyp;name=gyp \
+ file://0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch \
+ file://0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch \
+ file://0002-Avoid-using-basename.patch \
+ file://0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch \
+ file://0001-Turn-off-sign-compare-for-musl-libc.patch \
+ file://0002-sys-signal.h-is-a-nonportable-alias-for-signal.h.patch \
+ file://0003-Dont-include-stab.h.patch \
+ file://0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch \
+ file://0005-md2core-Replace-basename.patch \
+ file://0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch \
+ file://mcontext.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 \
"
S = "${WORKDIR}/git"
+CXXFLAGS += "-D_GNU_SOURCE"
+
COMPATIBLE_MACHINE_powerpc = "(!.*ppc).*"
do_install_append() {
@@ -67,7 +80,7 @@ do_install_append() {
install -m 0644 ${S}/src/google_breakpad/common/minidump_format.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_format.h
install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_amd64.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_amd64.h
install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_arm.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_arm.h
- install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_arm.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_arm64.h
+ install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_arm64.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_arm64.h
install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_mips.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_mips.h
install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_ppc64.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_ppc64.h
install -m 0644 ${S}/src/google_breakpad/common/minidump_cpu_ppc.h ${D}${includedir}/breakpad/google_breakpad/common/minidump_cpu_ppc.h
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb
new file mode 100644
index 000000000..ffbe73fee
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Cap'n Proto serialization/RPC system"
+DESCRIPTION = "Cap’n Proto is an insanely fast data interchange format and capability-based RPC system. "
+HOMEPAGE = "https://github.com/sandstorm-io/capnproto"
+SECTION = "console/tools"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=0a5b5b742baf10cc1c158579eba7fb1d"
+
+SRCREV = "c949a18da5f041a36cc218c5c4b79c7705999b4f"
+SRC_URI = "git://github.com/sandstorm-io/capnproto.git;branch=release-${PV}"
+
+EXTRA_OECMAKE += "\
+ -DBUILD_TESTING=OFF \
+"
+
+inherit cmake
+
+S = "${WORKDIR}/git/c++"
+
+PACKAGE_BEFORE_PN = "${PN}-compiler"
+RDEPENDS_${PN}-dev += "${PN}-compiler"
+
+FILES_${PN}-dev += "${libdir}/cmake"
+FILES_${PN}-compiler = "${bindir}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch
deleted file mode 100644
index b32311a82..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9/0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From ac1953d04f3f26d6aa5d8f53a9397d3ba0e96fa3 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@circuitco.com>
-Date: Fri, 11 May 2012 15:23:02 +0000
-Subject: [PATCH] ide: use 'node' as interpreter for sketches instead of
- argv[0]
-
-This enables running scripts with node 0.6.x instead of 0.4.x
-
-Signed-off-by: root <root@beaglebone.(none)>
----
- server/cloud9/ide.js | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/server/cloud9/ide.js b/server/cloud9/ide.js
-index ce782f5..6c4e0f7 100644
---- a/server/cloud9/ide.js
-+++ b/server/cloud9/ide.js
-@@ -53,7 +53,7 @@ var Ide = module.exports = function(options, httpServer, exts, socket) {
- };
-
- this.$users = {};
-- this.nodeCmd = process.argv[0];
-+ this.nodeCmd = "node";
-
- var davOptions = {
- node: this.options.mountDir,
---
-1.7.7
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb
deleted file mode 100644
index c6d78905d..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/cloud9/cloud9_0.6.bb
+++ /dev/null
@@ -1,118 +0,0 @@
-SUMMARY = "Meet Cloud9, development-as-a-service for Javascripters and other developers"
-HOMEPAGE = "http://c9.io"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4784c3bcff601fd8f9515f52a11e7018"
-
-PR = "r5"
-
-# Nodejs-native for node-waf, nodejs4-native for the headers
-DEPENDS = "libxml2 nodejs-native nodejs4-native"
-
-PNBLACKLIST[cloud9] ?= "Not comatible with current nodejs 0.12, but upstream is working on it for v3 - the recipe will be removed on 2017-09-01 unless the issue is fixed"
-inherit systemd
-
-SRC_URI = "git://github.com/ajaxorg/cloud9.git;name=cloud9ide \
- git://github.com/ajaxorg/o3;destsuffix=o3;name=o3 \
- git://github.com/ajaxorg/ace.git;destsuffix=git/support/ace;name=ace \
- git://github.com/ajaxorg/ace.wiki.git;destsuffix=git/support/ace/doc/wiki;name=acewiki \
- git://github.com/ajaxorg/apf.git;destsuffix=git/support/apf;name=apf \
- git://github.com/ajaxorg/async.js.git;destsuffix=git/support/asyncjs;name=asyncjs \
- git://github.com/ajaxorg/connect.git;destsuffix=git/support/connect;name=connect;branch=ajaxorg \
- git://github.com/jashkenas/coffee-script.git;destsuffix=git/support/connect/support/coffee-script;name=coffee-script \
- git://github.com/visionmedia/expresso.git;destsuffix=git/support/connect/support/expresso;name=expresso \
- git://github.com/visionmedia/node-jscoverage.git;destsuffix=git/support/connect/support/expresso/deps/jscoverage;name=jscoverage \
- git://github.com/cloudhead/less.js.git;destsuffix=git/support/connect/support/less;name=less \
- git://github.com/matehat/sass.js.git;destsuffix=git/support/connect/support/sass;name=sass \
- git://github.com/ajaxorg/jsDAV.git;destsuffix=git/support/jsdav;name=jsdav \
- git://github.com/fjakobs/async.js.git;destsuffix=git/support/jsdav/support/async.js;name=async-js \
- git://github.com/felixge/node-formidable.git;destsuffix=git/support/jsdav/support/formidable;name=formidable \
- git://github.com/ajaxorg/jsftp.git;destsuffix=git/support/jsdav/support/jsftp;name=jsftp \
- git://github.com/Gozala/streamer.git;destsuffix=git/support/jsdav/support/jsftp/support/streamer;name=streamer \
- git://github.com/ajaxorg/node-sftp.git;destsuffix=git/support/jsdav/support/node-sftp;name=sftp \
- git://github.com/ajaxorg/lib-v8debug.git;destsuffix=git/support/lib-v8debug;name=lib-v8debug \
- git://github.com/ajaxorg/socket.io.git;destsuffix=git/support/socket.io;name=socketio;branch=cadorn-upstream \
- git://github.com/LearnBoost/socket.io-client.git;destsuffix=git/support/socket.io-client;name=socketio-client \
- git://github.com/ajaxorg/treehugger.git;destsuffix=git/support/treehugger;name=treehugger \
- git://github.com/ajaxorg/UglifyJS.git;destsuffix=git/support/uglify-js;name=uglify-js \
- file://index.js \
- file://cloud9-avahi.service \
- file://cloud9.service \
- file://0001-ide-use-node-as-interpreter-for-sketches-instead-of-.patch \
-"
-
-SRCREV_cloud9ide = "c4e2574896a22bb749f0500b25f41c888d346bed"
-SRCREV_o3 = "d66d4e3252e505f44ada6804c8cab39915ce8afd"
-SRCREV_ace = "0fc5392cbe46fb134052c3065a238ad8e3b31cfd"
-SRCREV_acewiki = "d2a65d0addc2e5ab922bbff9cb6022a4652b4f13"
-SRCREV_apf = "2560b762b2b0e5a8b46f8a4062f927a9a9d239f4"
-SRCREV_asyncjs = "d36ead408e2959b1e99572114ef3a1b6a48c1072"
-SRCREV_connect = "6bec95b51f2286b942bc7f340d62d816bcdc13d4"
-SRCREV_coffee-script = "a53c104db16d3ac9d13cf9f16834edec250b9749"
-SRCREV_expresso = "7f10ab7fa655299b4e2f519065b0495e6ac34ef2"
-SRCREV_jscoverage = "0d4608a6b4275b020ba665389aa75897d5d4a584"
-SRCREV_less = "a2807288008587b95c6c2f8ba5cac16f1bcab98f"
-SRCREV_sass = "4dfd4c699e7a8baf226215ab044854c4507f4420"
-SRCREV_jsdav = "f04ebf3d012cc8aeabfcfb2b8fab8966d52929e9"
-SRCREV_async-js = "92fb710a70efd3cdc2376ebfba71a7fb3a4f1651"
-SRCREV_formidable = "a37292d4b7d6d76a38909ed670334c9068d40871"
-SRCREV_jsftp = "e3f10c8927347c170cdd0150ef38e18272acf942"
-SRCREV_streamer = "1a7f75d4065819171ac91a09974199b932dbe17d"
-SRCREV_sftp = "a0539345134970d7535a19cb2608e3d1bc119d71"
-SRCREV_lib-v8debug = "7c11897f4bc77c7275c2b6dff5becc72ac018662"
-SRCREV_socketio = "735d5239b325df2ba67d2b9bb4ec32442283bc06"
-SRCREV_socketio-client = "4375ef1344ecb8ad75a3848a00af6b391822f86b"
-SRCREV_treehugger = "436d0d6dd0ce43782e6be08ad12c356730626996"
-SRCREV_uglify-js = "941c845c4a01e4e47a158458fe846eb36d0828ad"
-
-SRCREV_FORMAT = "cloud9ide"
-
-S = "${WORKDIR}/git"
-
-do_configure () {
- cd ${WORKDIR}/o3
- node-waf -vv configure
-}
-
-EXTRA_CXXFLAGS = "-Idefault/include -I../include -Idefault/hosts -I../hosts -Idefault/modules -I../modules -Idefault/deps -I../deps -I${STAGING_DIR_NATIVE}/usr/include/node4 -fPIC -DPIC"
-
-do_compile () {
- cd ${WORKDIR}/o3
- node4 tools/gluegen.js
- cd hosts
- ${CXX} ${TARGET_CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o sh_node.o node-o3/sh_node.cc
- ${CXX} ${TARGET_CXXFLAGS} ${EXTRA_CXXFLAGS} -c -o sh_node_libs.o node-o3/sh_node_libs.cc
- cd ..
- ${CXX} ${TARGET_LDFLAGS} hosts/sh_node.o hosts/sh_node_libs.o -o o3.node -shared -Wl,-Bdynamic -lxml2
-}
-
-do_install () {
- install -m 0755 -d ${D}${datadir}/cloud9 ${D}${bindir} ${D}/var/lib/cloud9
- rsync -r --exclude=".*" ${S}/* ${D}${datadir}/cloud9
-
- touch ${D}${bindir}/cloud9
- echo "#!/bin/sh" > ${D}${bindir}/cloud9
- echo "node4 ${datadir}/cloud9/bin/cloud9.js -l 0.0.0.0 -w /var/lib/cloud9 -p 3000" >> ${D}${bindir}/cloud9
- chmod 0755 ${D}${bindir}/cloud9
-
- install -m 0755 -d ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml
- install -m 0644 ${WORKDIR}/index.js ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/index.js
- install -m 0644 ${WORKDIR}/o3/modules/o3.js ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/o3.js
- install -m 0755 ${WORKDIR}/o3/o3.node ${D}${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/o3.node
-
- install -m 0755 -d ${D}${sysconfdir}/avahi/services/
- install -m 0644 ${WORKDIR}/cloud9-avahi.service ${D}${sysconfdir}/avahi/services/
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/cloud9.service ${D}${systemd_unitdir}/system
-}
-
-FILES_${PN}-dbg += "${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/o3-xml/.debug \
- ${datadir}/cloud9/support/jsdav/support/node-o3-xml-v4/lib/.debug \
-"
-
-RDEPENDS_${PN} = "nodejs4 nodejs gzip"
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "cloud9.service"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb
index 62b279618..8472aca6c 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb
@@ -1,7 +1,7 @@
SUMMARY = "Install a Debian system into a subdirectory"
HOMEPAGE = "https://wiki.debian.org/Debootstrap"
SECTION = "devel"
-LICENSE = "debootstrap-custom-license"
+LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://debian/copyright;md5=1e68ced6e1689d4cd9dac75ff5225608"
inherit pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Stop-using-relative-path-for-scsilib.c-link.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Stop-using-relative-path-for-scsilib.c-link.patch
deleted file mode 100644
index ccb9a02da..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Stop-using-relative-path-for-scsilib.c-link.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 4cf7e16fe9b773e2e7763d4b773854eefe2aa9ab Mon Sep 17 00:00:00 2001
-From: Otavio Salvador <otavio@ossystems.com.br>
-Date: Tue, 12 Jan 2016 09:59:55 -0200
-Subject: [PATCH] Stop using relative path for scsilib.c link
-Organization: O.S. Systems Software LTDA.
-
-Upstream-Status: Pending
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- Makefile.linux | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.linux b/Makefile.linux
-index 78333ff..e210564 100644
---- a/Makefile.linux
-+++ b/Makefile.linux
-@@ -129,7 +129,7 @@ scsilib.c:
- echo "Please specify OS={aix,linux,hpux,solaris,windows}"; \
- exit 1; \
- fi; \
-- ln -sf ../scsilib-$(OS).c scsilib.c
-+ ln -sf scsilib-$(OS).c scsilib.c
-
- print:;
- @$(PRINTER) $(PRINTFLAGS) $(ALL_CFILES)
---
-2.1.4
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Use-tcsh-shell.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Use-tcsh-shell.patch
deleted file mode 100644
index 0c00fdf41..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/Use-tcsh-shell.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From e3c6eb8776f659eb9e6eeccf90d785eff18ecf74 Mon Sep 17 00:00:00 2001
-From: Otavio Salvador <otavio@ossystems.com.br>
-Date: Mon, 15 Feb 2016 18:00:05 -0200
-Subject: [PATCH] Use 'tcsh' shell
-Organization: O.S. Systems Software LTDA.
-
-Upstream-Status: Pending
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- Scripts/dta | 2 +-
- Scripts/dtc | 2 +-
- Scripts/dtf | 2 +-
- Scripts/dtr | 2 +-
- Scripts/dts | 2 +-
- Scripts/dtt | 2 +-
- Scripts/dtw | 2 +-
- 7 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/Scripts/dta b/Scripts/dta
-index ebc7072..4f90247 100755
---- a/Scripts/dta
-+++ b/Scripts/dta
-@@ -1,4 +1,4 @@
--#!/bin/csh
-+#!/bin/tcsh
- #
- # Script file to test asynchronous communication lines.
- #
-diff --git a/Scripts/dtc b/Scripts/dtc
-index da69c2e..89d48c2 100755
---- a/Scripts/dtc
-+++ b/Scripts/dtc
-@@ -1,4 +1,4 @@
--#!/bin/csh
-+#!/bin/tcsh
- # %Z%%M% %I% %E%
- #
- # Date: August 7, 1990
-diff --git a/Scripts/dtf b/Scripts/dtf
-index 9f8cd87..321d261 100755
---- a/Scripts/dtf
-+++ b/Scripts/dtf
-@@ -1,4 +1,4 @@
--#! /bin/csh
-+#! /bin/tcsh
- #
- # Script file to gather floppy disk performance data.
- #
-diff --git a/Scripts/dtr b/Scripts/dtr
-index ddb7947..1ff5a0b 100755
---- a/Scripts/dtr
-+++ b/Scripts/dtr
-@@ -1,4 +1,4 @@
--#!/bin/csh
-+#!/bin/tcsh
- # %Z%%M% %I% %E%
- #
- # Date: August 21, 1990
-diff --git a/Scripts/dts b/Scripts/dts
-index 6b8a167..42d2312 100755
---- a/Scripts/dts
-+++ b/Scripts/dts
-@@ -1,4 +1,4 @@
--#!/bin/csh
-+#!/bin/tcsh
- # %Z%%M% %I% %E%
- #
- # Date: August 7, 1990
-diff --git a/Scripts/dtt b/Scripts/dtt
-index 36cc6bd..df19d2f 100755
---- a/Scripts/dtt
-+++ b/Scripts/dtt
-@@ -1,4 +1,4 @@
--#! /bin/csh
-+#! /bin/tcsh
- # %Z%%M% %I% %E%
- #
- # Date: August 7, 1990
-diff --git a/Scripts/dtw b/Scripts/dtw
-index 8a4ac39..c58e304 100755
---- a/Scripts/dtw
-+++ b/Scripts/dtw
-@@ -1,4 +1,4 @@
--#!/bin/csh
-+#!/bin/tcsh
- # %Z%%M% %I% %E%
- #
- # Date: August 21, 1990
---
-2.1.4
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-default-source-define.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-default-source-define.patch
deleted file mode 100644
index 87016edf0..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-default-source-define.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Patch from http://pkgs.fedoraproject.org/git/rpms/dt.git
-
-Upstream-Status: Pending
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
-
-diff -rupN dt.v18.32.old/common.h dt.v18.32/common.h
---- dt.v18.32.old/common.h 2013-03-01 23:52:30.000000000 +0100
-+++ dt.v18.32/common.h 2014-09-24 17:41:40.777604710 +0200
-@@ -127,7 +127,7 @@ typedef volatile slarge_t v_slarge;
-
- #endif /* defined(_WIN64) */
-
--#elif defined(__GNUC__) && defined(_BSD_SOURCE) || defined(SCO) || defined(__QNXNTO__) || defined(SOLARIS) || defined(HP_UX) || defined(AIX) || defined(_NT_SOURCE)
-+#elif defined(__GNUC__) && defined(_BSD_SOURCE) || defined (_DEFAULT_SOURCE) || defined(SCO) || defined(__QNXNTO__) || defined(SOLARIS) || defined(HP_UX) || defined(AIX) || defined(_NT_SOURCE)
-
- #define QuadIsLongLong
- typedef unsigned long long int large_t;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-wformat-security.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-wformat-security.patch
deleted file mode 100644
index b6780c196..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt/dt-wformat-security.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-Patch from http://pkgs.fedoraproject.org/git/rpms/dt.git
-
-Upstream-Status: Pending
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
-
-diff -rupN dt.v18.32.old/dt.c dt.v18.32/dt.c
---- dt.v18.32.old/dt.c 2014-08-18 14:45:53.242351115 +0200
-+++ dt.v18.32/dt.c 2014-08-18 15:11:36.367719880 +0200
-@@ -4378,7 +4378,7 @@ report_error(
- (void)sprintf(dip->di_msg_buffer, "(%d): '%s', errno = %d - %s\n",
- dip->di_process_id, error_info, errno, emsg);
- }
-- syslog(LOG_ERR, dip->di_msg_buffer);
-+ syslog(LOG_ERR, "%s", dip->di_msg_buffer);
- }
- #endif /* defined(SYSLOG) */
-
-diff -rupN dt.v18.32.old/dtutil.c dt.v18.32/dtutil.c
---- dt.v18.32.old/dtutil.c 2014-08-18 14:45:53.354350779 +0200
-+++ dt.v18.32/dtutil.c 2014-08-18 15:13:53.835307311 +0200
-@@ -5180,7 +5180,7 @@ ReportDeviceInfo (
- bp += Sprintf(bp,
- "(%d) Device name: %s\n",
- dip->di_process_id, dip->di_dname);
-- syslog(LOG_ERR, dip->di_msg_buffer);
-+ syslog(LOG_ERR, "%s", dip->di_msg_buffer);
- bp = dip->di_msg_buffer;
- # if defined(SCSI)
- if (dip->di_serial_number) {
-@@ -5193,7 +5193,7 @@ ReportDeviceInfo (
- dip->di_process_id, dip->di_device_id);
- }
- # endif /* defined(SCSI) */
-- syslog(LOG_ERR, dip->di_msg_buffer);
-+ syslog(LOG_ERR, "%s", dip->di_msg_buffer);
- bp = dip->di_msg_buffer;
- bp += Sprintf(bp,
- "(%d) Relative block number where the error occurred is " LUF ","
-@@ -5203,7 +5203,7 @@ ReportDeviceInfo (
- } else {
- bp += Sprintf(bp, "\n");
- }
-- syslog(LOG_ERR, dip->di_msg_buffer);
-+ syslog(LOG_ERR, "%s", dip->di_msg_buffer);
- }
- #endif /* defined(SYSLOG) */
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt_18.32.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt_18.32.bb
deleted file mode 100644
index 0234f765a..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/dt/dt_18.32.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "Generic data test program"
-DESCRIPTION = "The Data Test Program (dt) is a generic data test program used to verify proper \
-operation of peripherals, file systems, device drivers, or any data stream supported by the \
-operating system."
-HOMEPAGE = "http://www.scsifaq.org/RMiller_Tools/dt.html"
-
-SECTION = "console/tests"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=be8bb25bbcfaa0725710d188e5152668"
-
-# Source URI taken from Fedora RPM spec file at:
-# http://pkgs.fedoraproject.org/git/rpms/dt.git
-SRC_URI = "http://dl.dropboxusercontent.com/u/32363629/Datatest/dt-source-v${PV}.tar.gz \
- file://dt-default-source-define.patch \
- file://dt-wformat-security.patch \
- file://Stop-using-relative-path-for-scsilib.c-link.patch \
- file://Use-tcsh-shell.patch \
-"
-
-SRC_URI[md5sum] = "3054aeaaba047a1dbe90c2132a382ee2"
-SRC_URI[sha256sum] = "10d164676e918a4d07f233bcd11e4cb6bfd1052c996182cd1827ccd0c063fcc6"
-
-S = "${WORKDIR}/dt.v${PV}"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-EXTRA_OEMAKE += "-f Makefile.linux \
- OS=linux \
- CFLAGS="-I.. -DAIO -DFIFO -DMMAP -D__linux__ -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DTHREADS -DSCSI""
-
-do_compile() {
- oe_runmake
-}
-
-do_install() {
- install -Dm755 dt ${D}${sbindir}/dt
- install -Dm644 Documentation/dt.man ${D}${mandir}/man8/dt.8
-
- install -d ${D}${datadir}/dt/
- install -d ${D}${docdir}/dt/html/
- install -m755 Scripts/dt? ${D}${datadir}/dt/
- install -m644 data/pattern_* ${D}${datadir}/dt/
- install -m644 html/* ${D}${docdir}/dt/html/
-}
-
-RDEPENDS_${PN} += "tcsh"
-
-PNBLACKLIST[dt] ?= "Rdepends on blacklisted tcsh - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch
new file mode 100644
index 000000000..a7a42f981
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch
@@ -0,0 +1,26 @@
+From 8b44dc65d98d50b462843ac9dab6fe3fc25abe36 Mon Sep 17 00:00:00 2001
+From: Pascal Bach <pascal.bach@siemens.com>
+Date: Fri, 12 May 2017 13:54:49 +0200
+Subject: [PATCH] correct version for so lib
+
+Upstream-Status: Pending
+
+---
+ CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3670afe..f4fcd2c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -172,6 +172,7 @@ endif()
+ if(FLATBUFFERS_BUILD_SHAREDLIB)
+ add_library(flatbuffers_shared SHARED ${FlatBuffers_Library_SRCS})
+ set_target_properties(flatbuffers_shared PROPERTIES OUTPUT_NAME flatbuffers)
++ set_target_properties(flatbuffers_shared PROPERTIES VERSION "${PV}")
+ endif()
+
+ function(compile_flatbuffers_schema_to_cpp SRC_FBS)
+--
+2.1.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch
new file mode 100644
index 000000000..d736f012b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch
@@ -0,0 +1,113 @@
+From a614d8e20fa9e4fd16b699d581ddac2956c120f5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 Sep 2017 10:04:02 -0700
+Subject: [PATCH 1/2] flatbuffers: Move EndianSwap template to
+ flatbuffers/base.h
+
+Clang complains
+call to function 'EndianSwap' that is neither visible in the template definition nor found by argument-dependent lookup
+ return EndianSwap(t);
+
+This seems to be due to limitation of two-phase lookup of dependent names in template definitions
+
+Its not being found using associated namespaces therefore
+it has to be made visible at the template definition site as well
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ include/flatbuffers/base.h | 33 +++++++++++++++++++++++++++++++++
+ include/flatbuffers/flatbuffers.h | 32 --------------------------------
+ 2 files changed, 33 insertions(+), 32 deletions(-)
+
+diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h
+index f051755..c73fb2d 100644
+--- a/include/flatbuffers/base.h
++++ b/include/flatbuffers/base.h
+@@ -150,6 +150,39 @@ typedef uintmax_t largest_scalar_t;
+ // We support aligning the contents of buffers up to this size.
+ #define FLATBUFFERS_MAX_ALIGNMENT 16
+
++template<typename T> T EndianSwap(T t) {
++ #if defined(_MSC_VER)
++ #define FLATBUFFERS_BYTESWAP16 _byteswap_ushort
++ #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong
++ #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64
++ #else
++ #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408
++ // __builtin_bswap16 was missing prior to GCC 4.8.
++ #define FLATBUFFERS_BYTESWAP16(x) \
++ static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16))
++ #else
++ #define FLATBUFFERS_BYTESWAP16 __builtin_bswap16
++ #endif
++ #define FLATBUFFERS_BYTESWAP32 __builtin_bswap32
++ #define FLATBUFFERS_BYTESWAP64 __builtin_bswap64
++ #endif
++ if (sizeof(T) == 1) { // Compile-time if-then's.
++ return t;
++ } else if (sizeof(T) == 2) {
++ auto r = FLATBUFFERS_BYTESWAP16(*reinterpret_cast<uint16_t *>(&t));
++ return *reinterpret_cast<T *>(&r);
++ } else if (sizeof(T) == 4) {
++ auto r = FLATBUFFERS_BYTESWAP32(*reinterpret_cast<uint32_t *>(&t));
++ return *reinterpret_cast<T *>(&r);
++ } else if (sizeof(T) == 8) {
++ auto r = FLATBUFFERS_BYTESWAP64(*reinterpret_cast<uint64_t *>(&t));
++ return *reinterpret_cast<T *>(&r);
++ } else {
++ assert(0);
++ }
++}
++
++
+ template<typename T> T EndianScalar(T t) {
+ #if FLATBUFFERS_LITTLEENDIAN
+ return t;
+diff --git a/include/flatbuffers/flatbuffers.h b/include/flatbuffers/flatbuffers.h
+index 9216cf4..f749dcb 100644
+--- a/include/flatbuffers/flatbuffers.h
++++ b/include/flatbuffers/flatbuffers.h
+@@ -37,38 +37,6 @@ inline void EndianCheck() {
+ (void)endiantest;
+ }
+
+-template<typename T> T EndianSwap(T t) {
+- #if defined(_MSC_VER)
+- #define FLATBUFFERS_BYTESWAP16 _byteswap_ushort
+- #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong
+- #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64
+- #else
+- #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408
+- // __builtin_bswap16 was missing prior to GCC 4.8.
+- #define FLATBUFFERS_BYTESWAP16(x) \
+- static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16))
+- #else
+- #define FLATBUFFERS_BYTESWAP16 __builtin_bswap16
+- #endif
+- #define FLATBUFFERS_BYTESWAP32 __builtin_bswap32
+- #define FLATBUFFERS_BYTESWAP64 __builtin_bswap64
+- #endif
+- if (sizeof(T) == 1) { // Compile-time if-then's.
+- return t;
+- } else if (sizeof(T) == 2) {
+- auto r = FLATBUFFERS_BYTESWAP16(*reinterpret_cast<uint16_t *>(&t));
+- return *reinterpret_cast<T *>(&r);
+- } else if (sizeof(T) == 4) {
+- auto r = FLATBUFFERS_BYTESWAP32(*reinterpret_cast<uint32_t *>(&t));
+- return *reinterpret_cast<T *>(&r);
+- } else if (sizeof(T) == 8) {
+- auto r = FLATBUFFERS_BYTESWAP64(*reinterpret_cast<uint64_t *>(&t));
+- return *reinterpret_cast<T *>(&r);
+- } else {
+- assert(0);
+- }
+-}
+-
+ template<typename T> FLATBUFFERS_CONSTEXPR size_t AlignOf() {
+ #ifdef _MSC_VER
+ return __alignof(T);
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch
new file mode 100644
index 000000000..460159f27
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch
@@ -0,0 +1,30 @@
+From 626fe5e043de25e970ebdf061b88c646fa689113 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 Sep 2017 10:09:31 -0700
+Subject: [PATCH 2/2] use __builtin_bswap16 when building with clang
+
+clang pretends to be gcc 4.2.0 and therefore the code does
+not use __builtin_bswap16 but tries to synthesize it
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+ include/flatbuffers/base.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h
+index c73fb2d..13e8fac 100644
+--- a/include/flatbuffers/base.h
++++ b/include/flatbuffers/base.h
+@@ -156,7 +156,7 @@ template<typename T> T EndianSwap(T t) {
+ #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong
+ #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64
+ #else
+- #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408
++ #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408 && !defined(__clang__)
+ // __builtin_bswap16 was missing prior to GCC 4.8.
+ #define FLATBUFFERS_BYTESWAP16(x) \
+ static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16))
+--
+2.14.1
+
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.7.1.bb
new file mode 100644
index 000000000..a8df44485
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.7.1.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Memory Efficient Serialization Library"
+HOMEPAGE = "https://github.com/google/flatbuffers"
+SECTION = "console/tools"
+LICENSE = "Apache-2.0"
+
+PACKAGE_BEFORE_PN = "${PN}-compiler"
+
+RDEPENDS_${PN}-compiler = "${PN}"
+RDEPENDS_${PN}-dev += "${PN}-compiler"
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a873c5645c184d51e0f9b34e1d7cf559"
+
+SRCREV = "25a15950f5a24d7217689739ed8f6dac64912d62"
+
+SRC_URI = "git://github.com/google/flatbuffers.git \
+ file://0001-correct-version-for-so-lib.patch \
+ file://0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch \
+ file://0002-use-__builtin_bswap16-when-building-with-clang.patch \
+ "
+
+# Make sure C++11 is used, required for example for GCC 4.9
+CXXFLAGS += "-std=c++11"
+BUILD_CXXFLAGS += "-std=c++11"
+
+EXTRA_OECMAKE += "\
+ -DFLATBUFFERS_BUILD_TESTS=OFF \
+ -DFLATBUFFERS_BUILD_SHAREDLIB=ON \
+ -DPV=${PV} \
+"
+
+inherit cmake
+
+S = "${WORKDIR}/git"
+
+FILES_${PN}-compiler = "${bindir}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.30.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb
index f01dda8cd..27fe86026 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.30.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb
@@ -25,8 +25,8 @@ DEPENDS = " \
inherit autotools pkgconfig gtk-icon-cache
SRC_URI = "http://plugins.geany.org/${PN}/${PN}-${PV}.tar.bz2"
-SRC_URI[md5sum] = "13f8e5d900b4911059385649b8dde887"
-SRC_URI[sha256sum] = "8adb90645d273d9549e1fa99b69ea87dc1fd612f7467eb18eee11a6b30c9ba5b"
+SRC_URI[md5sum] = "808f9048b77fd9704569ed2ba12a56e9"
+SRC_URI[sha256sum] = "76bd9e803db5a626b86669f08330cf95b8cc35057a1cdf65759bc00aef120e25"
do_configure_prepend() {
rm -f ${S}/build/cache/glib-gettext.m4
@@ -166,6 +166,11 @@ LICENSE_${PN}-git-changebar = "GPLv3"
FILES_${PN}-git-changebar = "${libdir}/geany/git-changebar.so"
RDEPENDS_${PN}-git-changebar = "${PN}"
+PLUGINS += "${PN}-keyrecord"
+LIC_FILES_CHKSUM += "file://keyrecord/COPYING;md5=751419260aa954499f7abaabaa882bbe"
+FILES_${PN}-keyrecord = "${libdir}/geany/keyrecord.so"
+RDEPENDS_${PN}-keyrecord = "${PN}"
+
PLUGINS += "${PN}-lineoperations"
LIC_FILES_CHKSUM += "file://lineoperations/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
FILES_${PN}-lineoperations = "${libdir}/geany/lineoperations.so"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.30.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb
index e316ea7ab..ce36e1eb9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.30.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/geany/geany_1.31.bb
@@ -8,8 +8,8 @@ DEPENDS = "gtk+ libxml-parser-perl-native python3-docutils-native intltool-nativ
inherit autotools pkgconfig perlnative pythonnative gettext
SRC_URI = "http://download.geany.org/${BP}.tar.bz2"
-SRC_URI[md5sum] = "75081b600560c5c8366eda0e1b8cc531"
-SRC_URI[sha256sum] = "0ac360f1f3d6c28790a81d570252a7d40421f6e1d8e5a8d653756bd041d88491"
+SRC_URI[md5sum] = "386000be6b26972c6a699939c37cda34"
+SRC_URI[sha256sum] = "30fdb906bb76c4251a8bcf83ee267db28c26ef6ab867668a782cec1164a3aba5"
FILES_${PN} += "${datadir}/icons"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade/remove-yelp-help-rules-var.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade/remove-yelp-help-rules-var.patch
new file mode 100644
index 000000000..78a8719f2
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade/remove-yelp-help-rules-var.patch
@@ -0,0 +1,39 @@
+From 42efc94c11d510b41d8cf3407e1c3900eb52b600 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 4 Jun 2015 16:28:02 +0800
+Subject: [PATCH] Remove unused variable (YELP_HELP_RULES)
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ help/Makefile.am | 2 --
+ help/Makefile.in | 2 --
+ 2 files changed, 4 deletions(-)
+
+diff --git a/help/Makefile.am b/help/Makefile.am
+index 50c0e84..5c5d2e9 100644
+--- a/help/Makefile.am
++++ b/help/Makefile.am
+@@ -1,5 +1,3 @@
+-@YELP_HELP_RULES@
+-
+ HELP_ID = glade
+
+ HELP_FILES = \
+diff --git a/help/Makefile.in b/help/Makefile.in
+index 6978ea5..e1c7d3b 100644
+--- a/help/Makefile.in
++++ b/help/Makefile.in
+@@ -521,8 +521,6 @@ uninstall-am:
+
+ .PRECIOUS: Makefile
+
+-@YELP_HELP_RULES@
+-
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
+ .NOEXPORT:
+--
+1.9.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/files/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
index 1b24c39ce..1b24c39ce 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/files/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
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/files/0002-fix-gcc-6-build.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch
index f735ff819..f735ff819 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/files/0002-fix-gcc-6-build.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch
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.0.bb
new file mode 100644
index 000000000..f33b6e31b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/glade/glade_3.20.0.bb
@@ -0,0 +1,25 @@
+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+ gtk+3 glib-2.0 libxml2 intltool-native \
+ gnome-common-native \
+"
+
+
+inherit autotools pkgconfig gnomebase gobject-introspection
+
+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"
+
+EXTRA_OECONF += "--disable-man-pages"
+
+FILES_${PN} += "${datadir}/* ${libdir}/glade/modules/libgladegtk.so"
+FILES_${PN}-dev += "${libdir}/glade/modules/libgladegtk.la"
+FILES_${PN}-dbg += "${libdir}/glade/modules/.debug/libgladegtk.so"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-Fix-printd-formatting-strings.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-Fix-printd-formatting-strings.patch
new file mode 100644
index 000000000..5b9afd961
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-Fix-printd-formatting-strings.patch
@@ -0,0 +1,54 @@
+From 86b4d398dbb95e2437b70eba3b30e995ec9be505 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 31 Aug 2017 20:47:50 -0700
+Subject: [PATCH] Fix printd formatting strings
+
+Fixes
+error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security]
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/ipfilter.c | 2 +-
+ src/othptab.c | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/ipfilter.c b/src/ipfilter.c
+index eb17ec7..8c76e4c 100644
+--- a/src/ipfilter.c
++++ b/src/ipfilter.c
+@@ -146,7 +146,7 @@ void gethostparams(struct hostparams *data, char *init_saddr, char *init_smask,
+ snprintf(msgstr, 60,
+ "Invalid protocol input at or near token \"%s\"",
+ bptr);
+- tui_error(ANYKEY_MSG, msgstr);
++ tui_error(ANYKEY_MSG, "%s", msgstr);
+ doagain = 1;
+ } else
+ doagain = 0;
+diff --git a/src/othptab.c b/src/othptab.c
+index 142c9c2..fe395c2 100644
+--- a/src/othptab.c
++++ b/src/othptab.c
+@@ -410,7 +410,7 @@ void printothpentry(struct othptable *table, struct othptabent *entry,
+ break;
+ }
+
+- sprintf(scratchpad, rarp_mac_addr);
++ sprintf(scratchpad, "%s", rarp_mac_addr);
+ strcat(msgstring, scratchpad);
+ wattrset(table->othpwin, ARPATTR);
+ break;
+@@ -485,7 +485,7 @@ void printothpentry(struct othptable *table, struct othptabent *entry,
+ wattrset(table->othpwin, UNKNIPATTR);
+ protptr = getprotobynumber(entry->protocol);
+ if (protptr != NULL) {
+- sprintf(protname, protptr->p_aliases[0]);
++ sprintf(protname, "%s", protptr->p_aliases[0]);
+ } else {
+ sprintf(protname, "IP protocol");
+ unknown = 1;
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch
new file mode 100644
index 000000000..65b92dade
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch
@@ -0,0 +1,81 @@
+Use pkg-config to search for ncurses libraries
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+Index: iptraf-ng-1.1.4/Makefile
+===================================================================
+--- iptraf-ng-1.1.4.orig/Makefile
++++ iptraf-ng-1.1.4/Makefile
+@@ -205,8 +205,8 @@ endif
+
+ ifndef NCURSES_LDFLAGS
+ ifdef NEEDS_NCURSES5
+- NCURSES_CFLAGS := $(shell ncurses5-config --cflags 2>/dev/null)
+- NCURSES_LDFLAGS := $(shell ncurses5-config --libs 2>/dev/null)
++ NCURSES_CFLAGS := $(shell pkg-config ncurses --cflags 2>/dev/null)
++ NCURSES_LDFLAGS := $(shell pkg-config ncurses --libs 2>/dev/null)
+ ifndef NO_PANEL
+ NCURSES_LDFLAGS += -lpanel
+ endif
+@@ -215,8 +215,8 @@ endif
+
+ ifndef NCURSES_LDFLAGS
+ ifdef NEEDS_NCURSESW5
+- NCURSES_CFLAGS := $(shell ncursesw5-config --cflags 2>/dev/null)
+- NCURSES_LDFLAGS := $(shell ncursesw5-config --libs 2>/dev/null)
++ NCURSES_CFLAGS := $(shell p[k-config ncursesw --cflags 2>/dev/null)
++ NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
+ ifndef NO_PANEL
+ NCURSES_LDFLAGS += -lpanel
+ endif
+@@ -225,8 +225,8 @@ endif
+
+ ifndef NCURSES_LDFLAGS
+ ifdef NEEDS_NCURSES6
+- NCURSES_CFLAGS := $(shell ncurses6-config --cflags 2>/dev/null)
+- NCURSES_LDFLAGS := $(shell ncurses6-config --libs 2>/dev/null)
++ NCURSES_CFLAGS := $(shell pkg-config ncurses6 --cflags 2>/dev/null)
++ NCURSES_LDFLAGS := $(shell pkg-config ncurses6 --libs 2>/dev/null)
+ ifndef NO_PANEL
+ NCURSES_LDFLAGS += -lpanel
+ endif
+@@ -235,8 +235,8 @@ endif
+
+ ifndef NCURSES_LDFLAGS
+ ifdef NEEDS_NCURSESW6
+- NCURSES_CFLAGS := $(shell ncursesw6-config --cflags 2>/dev/null)
+- NCURSES_LDFLAGS := $(shell ncursesw6-config --libs 2>/dev/null)
++ NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
++ NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
+ ifndef NO_PANEL
+ NCURSES_LDFLAGS += -lpanel
+ endif
+@@ -246,17 +246,17 @@ endif
+ # try find ncuses by autodetect
+ ifndef NCURSES_LDFLAGS
+ ifneq ($(shell ncursesw6-config --libs 2>/dev/null),)
+- NCURSES_CFLAGS := $(shell ncursesw6-config --cflags 2>/dev/null)
+- NCURSES_LDFLAGS := $(shell ncursesw6-config --libs 2>/dev/null)
+- else ifneq ($(shell ncurses6-config --libs 2>/dev/null),)
+- NCURSES_CFLAGS := $(shell ncurses6-config --cflags 2>/dev/null)
+- NCURSES_LDFLAGS := $(shell ncurses6-config --libs 2>/dev/null)
+- else ifneq ($(shell ncursesw5-config --libs 2>/dev/null),)
+- NCURSES_CFLAGS := $(shell ncursesw5-config --cflags 2>/dev/null)
+- NCURSES_LDFLAGS := $(shell ncursesw5-config --libs 2>/dev/null)
+- else ifneq ($(shell ncurses5-config --libs 2>/dev/null),)
+- NCURSES_CFLAGS := $(shell ncurses5-config --cflags 2>/dev/null)
+- NCURSES_LDFLAGS := $(shell ncurses5-config --libs 2>/dev/null)
++ NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
++ NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
++ else ifneq ($(shell pkg-config ncurses --libs 2>/dev/null),)
++ NCURSES_CFLAGS := $(shell pkg-config ncurses --cflags 2>/dev/null)
++ NCURSES_LDFLAGS := $(shell pkg-config ncurses --libs 2>/dev/null)
++ else ifneq ($(shell pkg-config ncursesw --libs 2>/dev/null),)
++ NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
++ NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
++ else ifneq ($(shell pkg-config ncurses --libs 2>/dev/null),)
++ NCURSES_CFLAGS := $(shell pkg-config ncurses --cflags 2>/dev/null)
++ NCURSES_LDFLAGS := $(shell pkg-config ncurses --libs 2>/dev/null)
+ endif
+
+ ifneq ($(NCURSES_LDFLAGS),)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.1.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.1.4.bb
new file mode 100644
index 000000000..c53e66300
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.1.4.bb
@@ -0,0 +1,42 @@
+# Copyright (C) 2017 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "A console-based network monitoring utility"
+DESCRIPTION = "IPTraf-ng is a console-based network monitoring utility. IPTraf gathers \
+data like TCP connection packet and byte counts, interface statistics \
+and activity indicators, TCP/UDP traffic breakdowns, and LAN station \
+packet and byte counts. IPTraf-ng features include an IP traffic monitor \
+which shows TCP flag information, packet and byte counts, ICMP \
+details, OSPF packet types, and oversized IP packet warnings; \
+interface statistics showing IP, TCP, UDP, ICMP, non-IP and other IP \
+packet counts, IP checksum errors, interface activity and packet size \
+counts; a TCP and UDP service monitor showing counts of incoming and \
+outgoing packets for common TCP and UDP application ports, a LAN \
+statistics module that discovers active hosts and displays statistics \
+about their activity; TCP, UDP and other protocol display filters so \
+you can view just the traffic you want; logging; support for Ethernet, \
+FDDI, ISDN, SLIP, PPP, and loopback interfaces; and utilization of the \
+built-in raw socket interface of the Linux kernel, so it can be used \
+on a wide variety of supported network cards."
+
+HOMEPAGE = "https://fedorahosted.org/iptraf-ng/"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e2b3850593b899b1a17594ed4cc4c731"
+DEPENDS = "ncurses"
+
+SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/iptraf-ng/iptraf-ng-1.1.4.tar.gz/e0f8df3b7baf2b5106709abc4f8c029a/${BP}.tar.gz \
+ file://ncurses-config.patch \
+ file://0001-Fix-printd-formatting-strings.patch \
+ "
+SRC_URI[md5sum] = "e0f8df3b7baf2b5106709abc4f8c029a"
+SRC_URI[sha256sum] = "16b9b05bf5d3725d86409b901696639ad46944d02de6def87b1ceae5310dd35c"
+
+inherit autotools-brokensep pkgconfig
+
+CFLAGS += "-D_GNU_SOURCE"
+
+PROVIDES = "iptraf"
+RPROVIDES_${PN} += "iptraf"
+RREPLACES_${PN} += "iptraf"
+RCONFLICTS_${PN} += "iptraf"
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/0001-src-Fix-error-in-cross-compile.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/0001-src-Fix-error-in-cross-compile.patch
deleted file mode 100644
index 291ed3196..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/0001-src-Fix-error-in-cross-compile.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From 27910ea19260b7f7a3f9c0465addd1dea80cf3bd Mon Sep 17 00:00:00 2001
-From: Li Xin <lixin.fnst@cn.fujitsu.com>
-Date: Thu, 8 Oct 2015 15:11:17 +0900
-Subject: [PATCH] src: Fix error in cross-compile
-
-The errors are like this:
-tcptable.h:26:25: fatal error: linux/if_tr.h: No such file or directory
-ld: cannot find -ltextbox
-
-Upstream-Status: pending
-
-Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
----
- src/Makefile | 2 +-
- src/hostmon.c | 2 +-
- src/install.sh | 4 ++--
- src/othptab.c | 2 +-
- src/packet.c | 2 +-
- src/tcptable.h | 2 +-
- src/tr.c | 2 +-
- support/Makefile | 3 +--
- 8 files changed, 9 insertions(+), 10 deletions(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index 2043c2d..0f77bea 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -39,7 +39,7 @@ LDOPTS = #-static
- # you may want to change this to point to your ncurses include directory
- # if the ncurses include files are not in the default location.
-
--INCLUDEDIR = -I/usr/include/ncurses -I../support
-+INCLUDEDIR = -I../support
-
- # You can uncomment this one to disable the backspace key in input fields.
- # This means you must use the Del key or Ctrl+H combination to erase the
-diff --git a/src/hostmon.c b/src/hostmon.c
-index 14df2c8..6571562 100644
---- a/src/hostmon.c
-+++ b/src/hostmon.c
-@@ -31,7 +31,7 @@ details.
- #include <linux/if_packet.h>
- #include <linux/if_ether.h>
- #include <linux/if_fddi.h>
--#include <linux/if_tr.h>
-+#include <netinet/if_tr.h>
- #include <net/if_arp.h>
- #include <stdlib.h>
- #include <time.h>
-diff --git a/src/install.sh b/src/install.sh
-index d2fd360..36d3516 100755
---- a/src/install.sh
-+++ b/src/install.sh
-@@ -23,9 +23,9 @@ echo
- echo "*** Installing executable programs and preparing work directories"
- echo
- echo ">>> Installing iptraf in $TARGET"
--$INSTALL -m 0700 -o root -g root -s iptraf $TARGET
-+$INSTALL -m 0700 -o root -g root iptraf $TARGET
- echo ">>> Installing rvnamed in $TARGET"
--$INSTALL -m 0700 -o root -g root -s rvnamed $TARGET
-+$INSTALL -m 0700 -o root -g root rvnamed $TARGET
-
- if [ ! -d $WORKDIR ]; then
- echo ">>> Creating IPTraf work directory $WORKDIR"
-diff --git a/src/othptab.c b/src/othptab.c
-index 97771d1..a8bb536 100644
---- a/src/othptab.c
-+++ b/src/othptab.c
-@@ -18,7 +18,7 @@ details.
-
- #include <asm/types.h>
- #include <linux/if_ether.h>
--#include <linux/if_tr.h>
-+#include <netinet/if_tr.h>
- #include <linux/if_fddi.h>
- #include <winops.h>
- #include "arphdr.h"
-diff --git a/src/packet.c b/src/packet.c
-index 33fdf2a..1e2b81b 100644
---- a/src/packet.c
-+++ b/src/packet.c
-@@ -36,7 +36,7 @@ details.
- #include <linux/if_packet.h>
- #include <linux/if_ether.h>
- #include <linux/if_fddi.h>
--#include <linux/if_tr.h>
-+#include <netinet/if_tr.h>
- #include <linux/isdn.h>
- #include <linux/sockios.h>
- #include <msgboxes.h>
-diff --git a/src/tcptable.h b/src/tcptable.h
-index 3e17793..d1380b5 100644
---- a/src/tcptable.h
-+++ b/src/tcptable.h
-@@ -23,7 +23,7 @@
- #include <linux/if_packet.h>
- #include <linux/if_ether.h>
- #include <linux/if_fddi.h>
--#include <linux/if_tr.h>
-+#include <netinet/if_tr.h>
- #include <net/if.h>
- #include <netinet/ip.h>
- #include <netinet/udp.h>
-diff --git a/src/tr.c b/src/tr.c
-index 40c9e63..11f8045 100644
---- a/src/tr.c
-+++ b/src/tr.c
-@@ -7,7 +7,7 @@
- */
-
- #include <asm/types.h>
--#include <linux/if_tr.h>
-+#include <netinet/if_tr.h>
- #include <netinet/in.h>
-
- unsigned int get_tr_ip_offset(unsigned char *pkt)
-diff --git a/support/Makefile b/support/Makefile
-index 114bfc3..c962c09 100644
---- a/support/Makefile
-+++ b/support/Makefile
-@@ -1,4 +1,3 @@
--INCLUDEDIR = -I/usr/include/ncurses
-
- OBJS = input.o menurt.o listbox.o winops.o labels.o \
- msgboxes.o txbox.o
-@@ -12,7 +11,7 @@ libtextbox.a: $(OBJS)
- # gcc -shared -o libtextbox.so $(OBJS)
-
- %.o: %.c *.h
-- gcc -O2 -g -Wall -fPIC $(INCLUDEDIR) -c -o $*.o $<
-+ ${CC} -O2 -g -Wall -fPIC -c -o $*.o $<
-
- clean:
- rm -rf *.o *~ libtextbox.a libtextbox.so
---
-1.8.4.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/format_string.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/format_string.patch
deleted file mode 100644
index 5f96f0f4c..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/format_string.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Index: iptraf-3.0.0/src/othptab.c
-===================================================================
---- iptraf-3.0.0.orig/src/othptab.c
-+++ iptraf-3.0.0/src/othptab.c
-@@ -335,7 +335,7 @@ void printothpentry(struct othptable *ta
- break;
- }
-
-- sprintf(scratchpad, inet_ntoa(saddr));
-+ sprintf(scratchpad, "%s", inet_ntoa(saddr));
- strcat(msgstring, scratchpad);
- wattrset(table->othpwin, ARPATTR);
- break;
-@@ -354,7 +354,7 @@ void printothpentry(struct othptable *ta
- break;
- }
-
-- sprintf(scratchpad, rarp_mac_addr);
-+ sprintf(scratchpad, "%s", rarp_mac_addr);
- strcat(msgstring, scratchpad);
- wattrset(table->othpwin, ARPATTR);
- break;
-@@ -421,7 +421,7 @@ void printothpentry(struct othptable *ta
- wattrset(table->othpwin, UNKNIPATTR);
- protptr = getprotobynumber(entry->protocol);
- if (protptr != NULL) {
-- sprintf(protname, protptr->p_aliases[0]);
-+ sprintf(protname, "%s", protptr->p_aliases[0]);
- } else {
- sprintf(protname, "IP protocol");
- unknown = 1;
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/ldopts.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/ldopts.patch
deleted file mode 100644
index c84a0a0ad..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf/ldopts.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Index: iptraf-3.0.0/src/Makefile
-===================================================================
---- iptraf-3.0.0.orig/src/Makefile
-+++ iptraf-3.0.0/src/Makefile
-@@ -5,7 +5,7 @@
- #
- # Architecture determination string borrowed from the kernel makefile.
- #
--ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
-+ARCH ?= $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
- -e s/arm.*/arm/ -e s/sa110/arm/)
- PLATFORM = -DPLATFORM=\"$(shell uname -s)/$(ARCH)\"
- VERNUMBER := $(shell cat version)
-@@ -17,7 +17,7 @@ VERSION = -DVERSION=\"$(VERNUMBER)\"
- #
- BINDIR = ../../iptraf-$(VERNUMBER).bin.$(ARCH)
-
--CC = gcc
-+CC = $(CC)
- LIBS = -L../support -ltextbox -lpanel -lncurses # in this order!
-
- # comment this one out to omit debug code when done.
-@@ -31,10 +31,10 @@ PROF = #-pg
- # options to be passed to the compiler. I don't believe they need to be
- # modified (except for -m486 on non-Intel x86 platforms).
-
--CFLAGS = -Wall #-O2 #-m486
-+CFLAGS ?= -Wall #-O2 #-m486
- DIRS = -DWORKDIR=\"$(WORKDIR)\" \
- -DLOGDIR=\"$(LOGDIR)\" -DEXECDIR=\"$(TARGET)\"
--LDOPTS = #-static
-+LDOPTS ?= #-static
-
- # you may want to change this to point to your ncurses include directory
- # if the ncurses include files are not in the default location.
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf_3.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf_3.0.0.bb
deleted file mode 100644
index abfab02e0..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/iptraf/iptraf_3.0.0.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-DESCRIPTION = "IPTraf is a console-based network statistics utility for Linux. \
-It gathers a variety of figures such as TCP connection packet and byte counts, \
-interface statistics and activity indicators, TCP/UDP traffic breakdowns, \
-and LAN station packet and byte counts."
-
-HOMEPAGE = "http://iptraf.seul.org"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dc0bdc29df738baf327368b1bbb15a45"
-
-DEPENDS = "ncurses"
-
-SRC_URI = " \
- ftp://iptraf.seul.org/pub/iptraf/iptraf-3.0.0.tar.gz \
- file://0001-src-Fix-error-in-cross-compile.patch \
- file://format_string.patch \
- file://ldopts.patch \
-"
-SRC_URI[md5sum] = "377371c28ee3c21a76f7024920649ea8"
-SRC_URI[sha256sum] = "9ee433d95573d612539da4b452e6cdcbca6ab6674a88bfbf6eaf12d4902b5163"
-RDEPENDS_${PN} = "ncurses"
-
-EXTRA_OEMAKE = "-e MAKEFLAGS= LDOPTS='${LDFLAGS}' ARCH='${TARGET_ARCH}'"
-
-do_compile() {
- oe_runmake -C src all
-}
-
-do_install_append() {
- rm -r ${D}/${localstatedir}/run
-}
-
-do_install() {
- install -d ${D}${bindir}
- oe_runmake -C src install \
- TARGET=${D}${bindir} \
- WORKDIR=${D}${localstatedir}/local/iptraf \
- LOGDIR=${D}${localstatedir}/log/iptraf \
- LOCKDIR=${D}${localstatedir}/run/iptraf
-}
-
-FILES_${PN} += "${bindir} ${localstatedir} /run"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit/0001-Link-to-libatomic.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit/0001-Link-to-libatomic.patch
new file mode 100644
index 000000000..4c8c7b98d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit/0001-Link-to-libatomic.patch
@@ -0,0 +1,64 @@
+From bbac9ac3e391253bc1f90cf0f70a2ce1aac9511f Mon Sep 17 00:00:00 2001
+From: Ming Liu <liu.ming50@gmail.com>
+Date: Wed, 30 Aug 2017 16:50:56 +0200
+Subject: [PATCH] Link to libatomic
+
+This is needed for clang compiler.
+
+Upstream-Status: Pending
+
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+---
+ json_demo/CMakeLists.txt | 2 +-
+ json_headers_only_demo/CMakeLists.txt | 2 +-
+ json_map_demo/CMakeLists.txt | 2 +-
+ json_test/CMakeLists.txt | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/json_demo/CMakeLists.txt b/json_demo/CMakeLists.txt
+index b1d3c6a..0dfd308 100644
+--- a/json_demo/CMakeLists.txt
++++ b/json_demo/CMakeLists.txt
+@@ -5,5 +5,5 @@ FIND_PACKAGE(Boost 1.34 REQUIRED)
+ INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
+
+ ADD_EXECUTABLE(json_demo ${JSON_DEMO_SRCS})
+-TARGET_LINK_LIBRARIES(json_demo json_spirit)
++TARGET_LINK_LIBRARIES(json_demo json_spirit -latomic)
+
+diff --git a/json_headers_only_demo/CMakeLists.txt b/json_headers_only_demo/CMakeLists.txt
+index a3c787a..6eae11e 100644
+--- a/json_headers_only_demo/CMakeLists.txt
++++ b/json_headers_only_demo/CMakeLists.txt
+@@ -5,5 +5,5 @@ FIND_PACKAGE(Boost 1.34 REQUIRED)
+ INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
+
+ ADD_EXECUTABLE(json_headers_only_demo ${JSON_HEADERS_ONLY_DEMO_SRCS})
+-TARGET_LINK_LIBRARIES(json_headers_only_demo json_spirit)
++TARGET_LINK_LIBRARIES(json_headers_only_demo json_spirit -latomic)
+
+diff --git a/json_map_demo/CMakeLists.txt b/json_map_demo/CMakeLists.txt
+index 599006a..e3e45e8 100644
+--- a/json_map_demo/CMakeLists.txt
++++ b/json_map_demo/CMakeLists.txt
+@@ -5,5 +5,5 @@ FIND_PACKAGE(Boost 1.34 REQUIRED)
+ INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
+
+ ADD_EXECUTABLE(json_map_demo ${JSON_MAP_DEMO_SRCS})
+-TARGET_LINK_LIBRARIES(json_map_demo json_spirit)
++TARGET_LINK_LIBRARIES(json_map_demo json_spirit -latomic)
+
+diff --git a/json_test/CMakeLists.txt b/json_test/CMakeLists.txt
+index 38ffa7f..1ec1365 100644
+--- a/json_test/CMakeLists.txt
++++ b/json_test/CMakeLists.txt
+@@ -11,5 +11,5 @@ FIND_PACKAGE(Boost 1.34 REQUIRED)
+ INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
+
+ ADD_EXECUTABLE(json_test ${JSON_TEST_SRCS})
+-TARGET_LINK_LIBRARIES(json_test json_spirit)
++TARGET_LINK_LIBRARIES(json_test json_spirit -latomic)
+
+--
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb
index 2f456bf64..c7c1ad1ec 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/json-spirit/json-spirit_4.08.bb
@@ -11,14 +11,13 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=278ef6183dec4aae1524fccc4b0113c9"
SRC_URI = "file://json_spirit_v${PV}.zip \
file://0001-Adjust-the-cmake-files.patch \
+ file://0001-Link-to-libatomic.patch \
"
S = "${WORKDIR}/json_spirit_v${PV}"
DEPENDS = "boost"
-LDFLAGS += "-Wl,--as-needed -latomic -Wl,--no-as-needed"
-
inherit cmake
FILES_${PN}-dev += "${datadir}/cmake/Modules/FindLibJsonSpirit.cmake"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.3.bb
index fe6ae240a..b7a02ef15 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.3.bb
@@ -9,9 +9,9 @@ HOMEPAGE = "https://github.com/open-source-parsers/jsoncpp"
SECTION = "libs"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c56ee55c03a55f8105b969d8270632ce"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fa2a23dd1dc6c139f35105379d76df2b"
-SRCREV = "f700fe455940d4d325c088b9174a173e130e0fa8"
+SRCREV = "2de18021fcb11370e9b5a1fbe7dcfd673533a134"
SRC_URI = "git://github.com/open-source-parsers/jsoncpp"
S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Makefile-ensure-frontends-exits-before-writing-into-.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Makefile-ensure-frontends-exits-before-writing-into-.patch
new file mode 100644
index 000000000..a5263c6f8
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Makefile-ensure-frontends-exits-before-writing-into-.patch
@@ -0,0 +1,32 @@
+From 780b0b8e48551ba49b011caeeb09101a09c14a61 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Fri, 26 May 2017 17:11:32 +0100
+Subject: [PATCH] Makefile: ensure frontends/ exits before writing into it
+
+As previously, if GCC dependencies are not being written and the build is out of
+tree then frontends/ won't exist so we need to create it.
+
+Upstream-Status: Backport
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
+(cherry picked from commit f7986375129d1ada7dc6abeeec5b9d00ef6f7149)
+Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
+---
+ Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index 1baa110..434db5d 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -171,6 +171,7 @@ if COND_kconfig
+ bin_SCRIPTS += frontends/kconfig
+
+ frontends/kconfig: frontends/kconfig.in
++ $(MKDIR_P) $(@D)
+ $(AM_V_GEN)$(SED) -e 's/@KCFG_LIST@/$(kcfg_list)/g' \
+ $< >$@
+ @chmod +x $@
+--
+2.12.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Switch-utils-kconfig-diff-to-use-Python-3.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Switch-utils-kconfig-diff-to-use-Python-3.patch
new file mode 100644
index 000000000..b8f890481
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/files/0001-Switch-utils-kconfig-diff-to-use-Python-3.patch
@@ -0,0 +1,26 @@
+From 3b9b0f82c33f793a14d44bf06b6c8136bc3fc4bf Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 27 Apr 2017 16:48:42 +0300
+Subject: [PATCH] Switch utils/kconfig-diff to use Python 3
+
+The script supports it, but continues to refer to 2.x in shebang.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ utils/kconfig-diff | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/utils/kconfig-diff b/utils/kconfig-diff
+index 0db267d..19189f3 100755
+--- a/utils/kconfig-diff
++++ b/utils/kconfig-diff
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/env python3
+ #
+ # diffconfig - a tool to compare .config files.
+ #
+--
+2.11.0
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb
new file mode 100644
index 000000000..df08b8b11
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb
@@ -0,0 +1,41 @@
+# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Linux kernel style configuration framework for other projects"
+DESCRIPTION = "The kconfig-frontends project aims at centralising \
+the effort of keeping an up-to-date, out-of-tree, packaging of the \
+kconfig infrastructure, ready for use by third-party projects. \
+The kconfig-frontends package provides the kconfig parser, as well as all \
+the frontends"
+HOMEPAGE = "http://ymorin.is-a-geek.org/projects/kconfig-frontends"
+LICENSE = "GPL-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9b8cf60ff39767ff04b671fca8302408"
+SECTION = "devel"
+DEPENDS += "ncurses flex bison gperf-native"
+RDEPENDS_${PN} += "python3 bash"
+SRC_URI = "git://ymorin.is-a-geek.org/kconfig-frontends;branch=4.11.x \
+ file://0001-Makefile-ensure-frontends-exits-before-writing-into-.patch \
+ file://0001-Switch-utils-kconfig-diff-to-use-Python-3.patch"
+
+SRCREV = "f22fce3a308be1c7790ebefc6bbedb33c5f7c86a"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+do_configure_prepend () {
+ mkdir -p ${S}/scripts/.autostuff/m4
+}
+
+do_install_append() {
+ ln -s kconfig-conf ${D}${bindir}/conf
+ ln -s kconfig-mconf ${D}${bindir}/mconf
+}
+
+EXTRA_OECONF += "--disable-gconf --disable-qconf"
+
+# Some packages have the version preceeding the .so instead properly
+# versioned .so.<version>, so we need to reorder and repackage.
+SOLIBS = "-${@d.getVar('PV')[:-2]}.so"
+FILES_SOLIBSDEV = "${libdir}/libkconfig-parser.so"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch
index cd0d1433f..560c3a6d7 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch
@@ -53,7 +53,7 @@ index 0000000..f6e24be
+####################################################################
+INCLUDE (${CMAKE_SOURCE_DIR}/VERSION.cmake)
+
-+SET (LIBRCF_LIBRARIES "-lpthread -ldl")
++SET (LIBRCF_LIBRARIES "-lpthread -ldl -latomic")
+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/include)
+
+IF (LIBRCF_USE_OPENSSL)
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Check-for-__powerpc__-define.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Check-for-__powerpc__-define.patch
new file mode 100644
index 000000000..d91accf1d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-Check-for-__powerpc__-define.patch
@@ -0,0 +1,28 @@
+From ac7316679e30f7013604b19aa0949a0744e91d2f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 1 Jul 2017 13:06:30 -0700
+Subject: [PATCH] Check for __powerpc__ define
+
+Also check for gcc's internal define for ppc platform
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/RCF/ByteOrdering.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/RCF/ByteOrdering.cpp b/src/RCF/ByteOrdering.cpp
+index 278ca80..9f9c446 100755
+--- a/src/RCF/ByteOrdering.cpp
++++ b/src/RCF/ByteOrdering.cpp
+@@ -36,7 +36,7 @@ namespace RCF {
+
+ const ByteOrder MachineByteOrder = BigEndian;
+
+-#elif defined( __ppc__ )
++#elif defined( __ppc__ ) || defined( __powerpc__ )
+
+ const ByteOrder MachineByteOrder = BigEndian;
+
+--
+2.13.2
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch
new file mode 100644
index 000000000..e949dee40
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch
@@ -0,0 +1,35 @@
+From d78851b6f87f2472f041102d7b3726ffc009bfad Mon Sep 17 00:00:00 2001
+From: Ming Liu <peter.x.liu@external.atlascopco.com>
+Date: Tue, 6 Jun 2017 05:54:20 +0200
+Subject: [PATCH] ClientStub.hpp: fix a clang compiling issue
+
+A error was observed with clang compiler, as follows:
+| src/RCF/RCF.cpp:49:
+| src/RCF/ClientStub.cpp:28:
+| include/RCF/Future.hpp:49:26: error: 'enrol' is a private member of 'RCF::ClientStub'
+
+it can be fixed by declaring Future as a friend class of ClientStub.
+
+Upstream-Status: Pending
+
+Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
+---
+ include/RCF/ClientStub.hpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/include/RCF/ClientStub.hpp b/include/RCF/ClientStub.hpp
+index 9882cf4..8465625 100755
+--- a/include/RCF/ClientStub.hpp
++++ b/include/RCF/ClientStub.hpp
+@@ -372,6 +372,8 @@ namespace RCF {
+
+ private:
+
++ template<typename U>
++ friend class Future;
+ friend class FutureImplBase;
+
+ template<
+--
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch
index 28cd0fe60..e08efb92f 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch
@@ -3,11 +3,11 @@ Index: RCF-2.2.0.0/src/RCF/ByteOrdering.cpp
--- RCF-2.2.0.0.orig/src/RCF/ByteOrdering.cpp
+++ RCF-2.2.0.0/src/RCF/ByteOrdering.cpp
@@ -60,7 +60,7 @@ namespace RCF {
-
- const ByteOrder MachineByteOrder = LittleEndian;
-
--#elif defined(__arm__)
-+#elif defined(__arm__) || defined(__aarch64__)
-
- const ByteOrder MachineByteOrder = LittleEndian;
-
+
+ const ByteOrder MachineByteOrder = LittleEndian;
+
+-#elif defined(__arm__)
++#elif defined(__arm__) || defined(__aarch64__)
+
+ const ByteOrder MachineByteOrder = LittleEndian;
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/mips-support.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/mips-support.patch
new file mode 100644
index 000000000..4a327f78e
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/librcf/librcf/mips-support.patch
@@ -0,0 +1,19 @@
+Index: RCF-2.2.0.0/src/RCF/ByteOrdering.cpp
+===================================================================
+--- RCF-2.2.0.0.orig/src/RCF/ByteOrdering.cpp
++++ RCF-2.2.0.0/src/RCF/ByteOrdering.cpp
+@@ -64,6 +64,14 @@ namespace RCF {
+
+ const ByteOrder MachineByteOrder = LittleEndian;
+
++#elif defined(__mipsel__) || defined(__mips64el__)
++
++ const ByteOrder MachineByteOrder = LittleEndian;
++
++#elif defined( __mips__ ) || defined(__mips64__)
++
++ const ByteOrder MachineByteOrder = BigEndian;
++
+ #elif defined(__bfin__)
+
+ const ByteOrder MachineByteOrder = LittleEndian;
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 51ad7ec9c..43eff72a3 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
@@ -8,19 +8,22 @@ HOMEPAGE = "http://www.deltavsoft.com/"
SECTION = "libs"
PRIORITY = "optional"
LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://license.txt;md5=137c2935b51c95068a8b1bbd434ffe2d"
+LIC_FILES_CHKSUM = "file://license.txt;md5=7586a312b9e978f9d6fac9a5780d1f84"
SRC_URI = "http://www.deltavsoft.com/downloads/RCF-${PV}.tar.gz \
file://0001-Add-CMake-build-files.patch \
file://aarch64-support.patch \
- "
+ file://0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch \
+ file://mips-support.patch \
+ file://0001-Check-for-__powerpc__-define.patch \
+ "
SRC_URI[md5sum] = "7ecb3c73f7eb66dba8790b659374f690"
SRC_URI[sha256sum] = "bbfcc88de502c39604878c395f516b03fff4eac63eb4f7f44c07d433839712dd"
S = "${WORKDIR}/RCF-${PV}"
-inherit cmake
+inherit cmake dos2unix
PACKAGECONFIG ?= "zlib openssl sf-serialization boost-filesystem boost-asio protobuf json dll static shared demos"
PACKAGECONFIG[zlib] = "-DLIBRCF_USE_ZLIB=ON,-DLIBRCF_USE_ZLIB=OFF,zlib,zlib"
@@ -31,8 +34,8 @@ PACKAGECONFIG[sf-serialization] = "-DLIBRCF_USE_SF_SERIALIZATION=ON,-DLIBRCF_USE
PACKAGECONFIG[boost-serialization] = "-DLIBRCF_USE_BOOST_SERIALIZATION=ON,-DLIBRCF_USE_BOOST_SERIALIZATION=OFF,boost,"
PACKAGECONFIG[boost-filesystem] = "-DLIBRCF_USE_BOOST_FILESYSTEM=ON,-DLIBRCF_USE_BOOST_FILESYSTEM=OFF,boost,"
PACKAGECONFIG[boost-asio] = "-DLIBRCF_USE_BOOST_ASIO=ON,-DLIBRCF_USE_BOOST_ASIO=OFF,boost,"
-PACKAGECONFIG[protobuf] = "-DLIBRCF_USE_PROTOBUF=ON,-DLIBRCF_USE_PROTOBUF=OFF,protobuf,"
-PACKAGECONFIG[json] = "-DLIBRCF_USE_JSON=ON,-DLIBRCF_USE_JSON=OFF,json-spirit,"
+PACKAGECONFIG[protobuf] = "-DLIBRCF_USE_PROTOBUF=ON,-DLIBRCF_USE_PROTOBUF=OFF,protobuf,protobuf"
+PACKAGECONFIG[json] = "-DLIBRCF_USE_JSON=ON,-DLIBRCF_USE_JSON=OFF,json-spirit,json-spirit"
PACKAGECONFIG[ipv6] = "-DLIBRCF_USE_IPV6=ON,-DLIBRCF_USE_IPV6=OFF,"
PACKAGECONFIG[custom-allocator] = "-DLIBRCF_USE_CUSTOM_ALLOCATOR=ON,-DLIBRCF_USE_CUSTOM_ALLOCATOR=OFF,"
PACKAGECONFIG[dll] = "-DLIBRCF_BUILD_DLL=ON,-DLIBRCF_BUILD_DLL=OFF,"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3/0001-configure.ac-fix-cross-compiling-issue.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3/0001-configure.ac-fix-cross-compiling-issue.patch
new file mode 100644
index 000000000..1a6928707
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3/0001-configure.ac-fix-cross-compiling-issue.patch
@@ -0,0 +1,31 @@
+From 9c2ffe825e28d63e2a771135f297e8ffac0dbe81 Mon Sep 17 00:00:00 2001
+From: Ming Liu <liu.ming50@gmail.com>
+Date: Tue, 11 Jul 2017 14:35:30 +0200
+Subject: [PATCH] configure.ac: fix cross-compiling issue
+
+Avoid checking for file existence when cross compiling.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+---
+ configure.ac | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9978852..06b16e3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -120,9 +120,6 @@ AC_ARG_WITH(unicode-version,
+ AC_HELP_STRING(--with-unicode-version=VERSION,
+ [version of Unicode Standard @<:@default=current version@:>@]),
+ UNICODE_VERSION=$withval,UNICODE_VERSION=$DEFAULT_UNICODE_VERSION)
+-AC_CHECK_FILE([lib/$UNICODE_VERSION.c],
+- AC_MSG_RESULT($UNICODE_VERSION),
+- AC_MSG_ERROR(Unknown Unicode version $UNICODE_VERSION.))
+ AC_SUBST(UNICODE_VERSION)
+
+ # check if code to debug memory allocation is enabled.
+--
+2.7.4
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb
new file mode 100644
index 000000000..b83e86a48
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Sombok - Unicode Text Segmentation Package."
+DESCRIPTION = "Sombok library package performs Line Breaking Algorithm described in \
+Unicode Standard Annex #14 (UAX #14). East_Asian_Width informative \
+properties defined by Annex #11 (UAX #11) may be concerned to determin \
+breaking positions. This package also implements "default" Grapheme \
+Cluster segmentation described in Annex #29 (UAX #29)."
+LICENSE = "Artistic-1.0 | GPLv1+"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5b122a36d0f6dc55279a0ebc69f3c60b"
+
+SRC_URI = "git://github.com/hatukanezumi/sombok.git;protocol=https \
+ file://0001-configure.ac-fix-cross-compiling-issue.patch \
+ "
+
+inherit autotools pkgconfig
+
+# sombok-2.4.0
+SRCREV = "0098d85a037ef5c99a648a3669a077781a45e8cc"
+
+S = "${WORKDIR}/git"
+B = "${S}"
+
+# Disable libthai support
+EXTRA_OECONF = "--disable-libthai"
+
+BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt/ltp-Do-not-link-against-libfl.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt/ltp-Do-not-link-against-libfl.patch
deleted file mode 100644
index 3e4aa7308..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt/ltp-Do-not-link-against-libfl.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 5bda9c0af56869c6ff2c25d38ea087179c946bc6 Mon Sep 17 00:00:00 2001
-From: Chong Lu <Chong.Lu@windriver.com>
-Date: Tue, 11 Mar 2014 14:47:22 +0800
-Subject: [PATCH] ltp: Don't link against libfl
-
-We have already defined yywrap function in scan.l file. After this, we no longer need to
-link against libfl and so no longer get errors about undefined references to yylex.
-
-Upstream-status: Pending
-
-Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
----
- pan/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pan/Makefile b/pan/Makefile
-index 4cc6466..a4b575b 100644
---- a/pan/Makefile
-+++ b/pan/Makefile
-@@ -31,7 +31,7 @@ CPPFLAGS += -Wno-error
-
- CPPFLAGS += -I$(abs_srcdir)
-
--LDLIBS += -lm $(LEXLIB)
-+LDLIBS += -lm
-
- LFLAGS += -l
-
---
-1.7.9.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb
deleted file mode 100644
index b13bd7bcc..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltp-ddt/ltp-ddt_1.0.0.bb
+++ /dev/null
@@ -1,97 +0,0 @@
-SUMMARY = "Embedded Linux Device Driver Tests based on Linux Test Project"
-HOMEPAGE = "http://arago-project.org/git/projects/test-automation/ltp-ddt.git"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-PROVIDES += "ltp"
-DEPENDS += "zip-native virtual/kernel alsa-lib"
-
-RDEPENDS_${PN} += "pm-qa serialcheck"
-
-inherit autotools module-base kernel-module-split
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-SRCREV = "f086bed6cc88bf102eaad0e96cb7ebe79944a8ad"
-BRANCH ?= "master"
-
-SRC_URI = "git://arago-project.org/git/projects/test-automation/ltp-ddt.git;branch=${BRANCH} \
- file://ltp-Do-not-link-against-libfl.patch \
-"
-
-S = "${WORKDIR}/git"
-
-LTPROOT = "/opt/ltp"
-
-EXTRA_OEMAKE_append = " \
- prefix=${LTPROOT} \
- CROSS_COMPILE=${HOST_PREFIX} \
- SKIP_IDCHECK=1 \
- KERNEL_PATH=${STAGING_KERNEL_DIR} \
- KERNEL_INC=${STAGING_KERNEL_DIR} \
- KERNEL_USR_INC=${STAGING_INCDIR} \
- ALSA_INCPATH=${STAGING_INCDIR} \
- ALSA_LIBPATH=${STAGING_LIBDIR} \
- PLATFORM=${MACHINE} \
- RANLIB=${RANLIB} \
- DESTDIR=${D} \
- CC='${CC}' \
- KERNEL_CC='${KERNEL_CC}' \
-"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-FILES_${PN}-dbg += " \
- ${LTPROOT}/.debug \
- ${LTPROOT}/bin/.debug \
- ${LTPROOT}/runtest/.debug \
- ${LTPROOT}/testcases/bin/.debug \
- ${LTPROOT}/testcases/bin/*/bin/.debug \
- ${LTPROOT}/testcases/bin/*/test/.debug \
- ${LTPROOT}/testcases/bin/ddt/.debug \
- ${LTPROOT}/testcases/bin/ddt/*/bin/.debug \
- ${LTPROOT}/testcases/bin/ddt/*/test/.debug \
- ${LTPROOT}/testcases/realtime/*/*/.debug \
-"
-
-FILES_${PN}-staticdev += "${LTPROOT}/lib"
-FILES_${PN} += "${LTPROOT}/*"
-
-KERNEL_MODULES_META_PACKAGE = "${PN}"
-
-kmoddir = "/lib/modules/${KERNEL_VERSION}/kernel/drivers/ddt"
-
-# ltp doesn't regenerate ffsb-6.0-rc2 configure and hardcode configure call.
-# we explicitly force regeneration of that directory and pass configure options.
-do_configure_append() {
- (cd utils/ffsb-6.0-rc2; autoreconf -fvi; ./configure ${CONFIGUREOPTS})
-}
-
-# The makefiles make excessive use of make -C and several include testcases.mk
-# which triggers a build of the syscall header. To reproduce, build ltp,
-# then delete the header, then "make -j XX" and watch regen.sh run multiple
-# times. Its easier to generate this once here instead.
-do_compile_prepend () {
- ( make -C ${B}/testcases/kernel include/linux_syscall_numbers.h )
-}
-
-do_compile_append () {
- unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS
- oe_runmake modules
-}
-
-do_install() {
- oe_runmake install
- install -d ${D}${datadir}
- install -d ${D}${kmoddir}
- mv ${D}${LTPROOT}/testcases/bin/ddt/*.ko ${D}${kmoddir}
-}
-
-# do_make_scripts should be a separate task for the lock to work
-addtask make_scripts before do_compile
-do_make_scripts[lockfiles] = "${TMPDIR}/kernel-scripts.lock"
-do_make_scripts[deptask] = "do_populate_sysroot"
-
-# http://errors.yoctoproject.org/Errors/Details/56327/
-PNBLACKLIST[ltp-ddt] ?= "BROKEN: fails since last autotools.bbclass changes - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-plt.c-Delete-include-error.h.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-plt.c-Delete-include-error.h.patch
new file mode 100644
index 000000000..76ba7de78
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-plt.c-Delete-include-error.h.patch
@@ -0,0 +1,27 @@
+From 19a3e590c97420bd3952301bf376067c75d0ee32 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 18 Sep 2017 23:45:54 -0700
+Subject: [PATCH] mips/plt.c: Delete include error.h
+
+Its not needed
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sysdeps/linux-gnu/mips/plt.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/sysdeps/linux-gnu/mips/plt.c b/sysdeps/linux-gnu/mips/plt.c
+index 2d85ad9..9c3ae2f 100644
+--- a/sysdeps/linux-gnu/mips/plt.c
++++ b/sysdeps/linux-gnu/mips/plt.c
+@@ -24,7 +24,6 @@
+
+ #include <sys/ptrace.h>
+ #include <errno.h>
+-#include <error.h>
+ #include <gelf.h>
+ #include <inttypes.h>
+ #include <string.h>
+--
+2.14.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
index 01b3bbe1b..abe015de2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
@@ -24,6 +24,7 @@ SRC_URI = "git://anonscm.debian.org/collab-maint/ltrace.git;branch=master \
file://0001-Fix-tautological-compare-warning.patch \
file://0001-Add-support-for-mips64-n32-n64.patch \
file://0001-configure-Recognise-linux-musl-as-a-host-OS.patch \
+ file://0001-mips-plt.c-Delete-include-error.h.patch \
"
S = "${WORKDIR}/git"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.3.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.4.bb
index b7995c298..8f4e8fe68 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.3.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/lua/lua_5.3.4.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Lua is a powerful light-weight programming language designed \
for extending applications."
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://doc/readme.html;beginline=318;endline=352;md5=10ffd57d574c60d5b4d6189544e205a9"
+LIC_FILES_CHKSUM = "file://doc/readme.html;beginline=318;endline=352;md5=60aa5cfdbd40086501778d9b6ebf29ee"
HOMEPAGE = "http://www.lua.org/"
DEPENDS = "readline"
@@ -13,10 +13,10 @@ SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', \
file://run-ptest \
', '', d)}"
-SRC_URI[tarballsrc.md5sum] = "703f75caa4fdf4a911c1a72e67a27498"
-SRC_URI[tarballsrc.sha256sum] = "5113c06884f7de453ce57702abaac1d618307f33f6789fa870e87a59d772aca2"
-SRC_URI[tarballtest.md5sum] = "76f4fb07f2a4970d554645ac26df86df"
-SRC_URI[tarballtest.sha256sum] = "13154abc20976196119db531b4169ce1ce511755879d40b4192e4173291287e5"
+SRC_URI[tarballsrc.md5sum] = "53a9c68bcc0eda58bdc2095ad5cdfc63"
+SRC_URI[tarballsrc.sha256sum] = "f681aa518233bc407e23acf0f5887c884f17436f000d453b2491a9f11a52400c"
+SRC_URI[tarballtest.md5sum] = "b14fe3748c1cb2d74e3acd1943629ba3"
+SRC_URI[tarballtest.sha256sum] = "b80771238271c72565e5a1183292ef31bd7166414cd0d43a8eb79845fa7f599f"
inherit pkgconfig binconfig ptest
@@ -56,4 +56,4 @@ do_install_ptest () {
cp -R --no-dereference --preserve=mode,links -v ${WORKDIR}/lua-${PV}-tests ${D}${PTEST_PATH}/test
}
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/clang.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/clang.patch
new file mode 100644
index 000000000..c39ef6fd4
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit/clang.patch
@@ -0,0 +1,19 @@
+clang pretends to be gcc 4.2.0 which is a big lie when it comes
+to features, its same as latest gcc
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: LuaJIT-2.0.5/src/lj_arch.h
+===================================================================
+--- LuaJIT-2.0.5.orig/src/lj_arch.h
++++ LuaJIT-2.0.5/src/lj_arch.h
+@@ -313,7 +313,7 @@
+ #error "Need at least GCC 4.2 or newer"
+ #endif
+ #elif !LJ_TARGET_PS3
+-#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3)
++#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3) && !defined(__clang__)
+ #error "Need at least GCC 4.3 or newer"
+ #endif
+ #endif
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
index cee9cc428..73c38111e 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.4.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
@@ -1,13 +1,14 @@
SUMMARY = "Just-In-Time Compiler for Lua"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3992f1fbae3b8b061f9056b7fcda8cc6"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=10a96c93403affcc34765f4c2612bc22"
HOMEPAGE = "http://luajit.org"
SRC_URI = "http://luajit.org/download/LuaJIT-${PV}.tar.gz \
file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \
+ file://clang.patch \
"
-SRC_URI[md5sum] = "dd9c38307f2223a504cbfb96e477eca0"
-SRC_URI[sha256sum] = "620fa4eb12375021bef6e4f237cbd2dd5d49e56beb414bee052c746beef1807d"
+SRC_URI[md5sum] = "48353202cbcacab84ee41a5a70ea0a2c"
+SRC_URI[sha256sum] = "874b1f8297c697821f561f9b73b57ffd419ed8f4278c82e05b48806d30c1e979"
S = "${WORKDIR}/LuaJIT-${PV}"
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
index 53eeff7b6..993e9750e 100644
--- 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
@@ -1,8 +1,13 @@
+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 da73a57b7ecd..22100f69c580 100644
+index 04a22f985941..3e33bc4a79e7 100644
--- a/mesonbuild/dependencies.py
+++ b/mesonbuild/dependencies.py
-@@ -65,7 +65,7 @@ class Dependency():
+@@ -95,7 +95,7 @@ class Dependency:
def need_threads(self):
return False
@@ -11,7 +16,7 @@ index da73a57b7ecd..22100f69c580 100644
raise MesonException('Tried to get a pkg-config variable from a non-pkgconfig dependency.')
class InternalDependency(Dependency):
-@@ -177,8 +177,12 @@ class PkgConfigDependency(Dependency):
+@@ -224,8 +224,12 @@ class PkgConfigDependency(Dependency):
return s.format(self.__class__.__name__, self.name, self.is_found,
self.version_reqs)
@@ -23,10 +28,10 @@ index da73a57b7ecd..22100f69c580 100644
+ else:
+ pkgbin = [self.pkgbin]
+ p, out = Popen_safe(pkgbin + args, env=os.environ)[0:2]
- return (p.returncode, out.strip())
+ return p.returncode, out.strip()
def _set_cargs(self):
-@@ -212,8 +216,8 @@ class PkgConfigDependency(Dependency):
+@@ -259,8 +263,8 @@ class PkgConfigDependency(Dependency):
self.is_libtool = True
self.libs.append(lib)
@@ -37,12 +42,8 @@ index da73a57b7ecd..22100f69c580 100644
variable = ''
if ret != 0:
if self.required:
-@@ -933,10 +937,10 @@ class QtBaseDependency(Dependency):
- corekwargs = {'required': 'false', 'silent': 'true'}
- core = PkgConfigDependency(self.qtpkgname + 'Core', env, corekwargs)
- # Used by self.compilers_detect()
-- self.bindir = core.get_pkgconfig_variable('host_bins')
-+ self.bindir = core.get_pkgconfig_variable('host_bins', use_native=True)
+@@ -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')
@@ -50,3 +51,21 @@ index da73a57b7ecd..22100f69c580 100644
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.37.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.40.1.bb
index dbbea6447..14644ba9b 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.37.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/meson/meson_0.40.1.bb
@@ -9,12 +9,12 @@ SRC_URI = " \
file://native_bindir.patch \
"
-SRCREV = "3d4bfdcb22314ea7db45a5b075f8b2a9c1498aab"
+SRCREV = "b25d3e4d3f2b4d37029a507cc089bdde643c6240"
S = "${WORKDIR}/git"
inherit setuptools3
-RDEPENDS_${PN}_class-target = "ninja python3-core python3-modules"
+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 4537a66e0..4a2c37723 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
@@ -12,8 +12,6 @@ SRC_URI = " \
SRC_URI[md5sum] = "f414cfa77099cd1fa1a5ae4e22db508a"
SRC_URI[sha256sum] = "0778679a6b693d7b7caff37ff9d2856dc2bfc51318bf8373859bfa74253da3dc"
-CACHED_CONFIGUREVARS += "BASH_SHELL=${base_bindir}/bash"
-
RDEPENDS_${PN} += "bash perl libxml2"
S = "${WORKDIR}/${BP}"
@@ -26,6 +24,8 @@ EXTRA_OECONF = "--enable-debuginfo \
--disable-fc \
--disable-fortran \
--disable-cxx \
+ BASH_SHELL='${USRBINPATH}/env bash' \
+ PERL='${USRBINPATH}/env perl' \
"
inherit autotools-brokensep gettext
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Comment-intentional-fallthrough-in-case-statements.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Comment-intentional-fallthrough-in-case-statements.patch
deleted file mode 100644
index a388297a8..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Comment-intentional-fallthrough-in-case-statements.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 15d8bb6792c9639d85a9ffe2ac81431f1b986c21 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 22 Apr 2017 08:53:50 -0700
-Subject: [PATCH] Comment intentional fallthrough in case statements
-
-Fixes build with gcc7
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp b/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp
-index b35c21a7..4c463a90 100644
---- a/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp
-+++ b/include/msgpack/v1/adaptor/detail/cpp03_define_array.hpp
-@@ -105,6 +105,7 @@ struct define_array<A0, A1> {
- switch(size) {
- default:
- case 2: ptr[1].convert(a1);
-+ //fallthrough
- case 1: ptr[0].convert(a0);
- }
- }
-@@ -193,8 +194,11 @@ struct define_array<A0, A1, A2, A3> {
- switch(size) {
- default:
- case 4: ptr[3].convert(a3);
-+ //fallthrough
- case 3: ptr[2].convert(a2);
-+ //fallthrough
- case 2: ptr[1].convert(a1);
-+ //fallthrough
- case 1: ptr[0].convert(a0);
- }
- }
---
-2.12.2
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
index 7655d9469..d9f695669 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
@@ -9,10 +9,9 @@ LIC_FILES_CHKSUM = "file://NOTICE;md5=7a858c074723608e08614061dc044352 \
PV .= "+git${SRCPV}"
-SRCREV = "20ef1f925b007f170ab1c257e4aa61fdd0927773"
+SRCREV = "7a98138f27f27290e680bf8fbf1f8d1b089bf138"
SRC_URI = "git://github.com/msgpack/msgpack-c \
- file://0001-Comment-intentional-fallthrough-in-case-statements.patch \
"
inherit cmake pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ninja/ninja_1.7.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/ninja/ninja_1.7.2.bb
deleted file mode 100644
index 932e3a6ed..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/ninja/ninja_1.7.2.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Ninja is a small build system with a focus on speed."
-HOMEPAGE = "http://martine.github.com/ninja/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a81586a64ad4e476c791cda7e2f2c52e"
-
-DEPENDS = "re2c-native ninja-native"
-
-SRCREV = "717b7b4a31db6027207588c0fb89c3ead384747b"
-
-SRC_URI = "git://github.com/martine/ninja.git;branch=release"
-
-S = "${WORKDIR}/git"
-
-do_configure[noexec] = "1"
-
-do_compile_class-native() {
- ./configure.py --bootstrap
-}
-
-do_compile() {
- ./configure.py
- ninja
-}
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 ${S}/ninja ${D}${bindir}/
-}
-
-BBCLASSEXTEND = "native nativesdk"
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
new file mode 100644
index 000000000..324a4683d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
@@ -0,0 +1,29 @@
+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/0001-Disable-running-gyp-files-for-bundled-deps.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
new file mode 100644
index 000000000..324a4683d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch
@@ -0,0 +1,29 @@
+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_4.8.2.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.4.0.bb
index ae84ad308..5bcbc0007 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_4.8.2.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_8.4.0.bb
@@ -1,19 +1,19 @@
DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
HOMEPAGE = "http://nodejs.org"
LICENSE = "MIT & BSD & Artistic-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f45e9ffb97e64da46d14f462d34a039f"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e4d35c6120f175e1fbe5ff908b1cf2d6"
-DEPENDS = "openssl zlib"
+DEPENDS = "openssl10 zlib"
COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*"
COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*"
COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*"
SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
- file://no-registry.patch \
+ file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
"
-SRC_URI[md5sum] = "aea6139f952bb7e1d66f76afedee813c"
-SRC_URI[sha256sum] = "b961350b8490c791bdd3663925662ba0fbe01e004b43f1c2779baffcc816b930"
+SRC_URI[md5sum] = "e6c85c83001340b30671e9432e1bd337"
+SRC_URI[sha256sum] = "5d5aa2a101dcc617231a475812eb8ed87cac21491f1dcc7997b9dd463563f361"
S = "${WORKDIR}/node-v${PV}"
@@ -40,10 +40,11 @@ ARCHFLAGS ?= ""
# Node is way too cool to use proper autotools, so we install two wrappers to forcefully inject proper arch cflags to workaround gypi
do_configure () {
+ rm -rf ${S}/deps/openssl
export LD="${CXX}"
GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES
# $TARGET_ARCH settings don't match --dest-cpu settings
- ./configure --prefix=${prefix} --without-snapshot --shared-openssl --shared-zlib \
+ ./configure --prefix=${prefix} --without-intl --without-snapshot --shared-openssl --shared-zlib \
--dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH'), d)}" \
--dest-os=linux \
${ARCHFLAGS}
@@ -78,7 +79,7 @@ do_install_append_class-target() {
}
PACKAGES =+ "${PN}-npm"
-FILES_${PN}-npm = "${exec_prefix}/lib/node_modules ${bindir}/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"
PACKAGES =+ "${PN}-systemtap"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Add-fallthrough-comments.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Add-fallthrough-comments.patch
new file mode 100644
index 000000000..644146c4d
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0001-Add-fallthrough-comments.patch
@@ -0,0 +1,155 @@
+From 8f85163b030e7b957648f90cd8fa599fb04d5d65 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 23:32:49 -0700
+Subject: [PATCH 1/5] Add fallthrough comments
+
+Fixes
+
+src/svf/svf.c:663:7: error: this statement may fall through [-Werror=implicit-fallthrough=]
+ i = -1;
+ ~~^~~~
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/flash/mflash.c | 3 ++-
+ src/flash/nand/mx3.c | 1 +
+ src/jtag/drivers/ftdi.c | 1 +
+ src/svf/svf.c | 2 ++
+ src/target/arm_adi_v5.c | 9 +++++++++
+ src/target/arm_disassembler.c | 1 +
+ src/target/target.c | 1 +
+ 7 files changed, 17 insertions(+), 1 deletion(-)
+
+diff --git a/src/flash/mflash.c b/src/flash/mflash.c
+index b69995542..3254a3d56 100644
+--- a/src/flash/mflash.c
++++ b/src/flash/mflash.c
+@@ -259,10 +259,11 @@ static int mg_dsk_wait(mg_io_type_wait wait_local, uint32_t time_var)
+ case mg_io_wait_rdy:
+ if (status & mg_io_rbit_status_ready)
+ return ERROR_OK;
+-
++ /* fallthru */
+ case mg_io_wait_drq:
+ if (status & mg_io_rbit_status_data_req)
+ return ERROR_OK;
++ /* fallthru */
+
+ default:
+ break;
+diff --git a/src/flash/nand/mx3.c b/src/flash/nand/mx3.c
+index b61e47535..0a55929ed 100644
+--- a/src/flash/nand/mx3.c
++++ b/src/flash/nand/mx3.c
+@@ -281,6 +281,7 @@ static int imx31_command(struct nand_device *nand, uint8_t command)
+ * offset == one half of page size
+ */
+ in_sram_address = MX3_NF_MAIN_BUFFER0 + (nand->page_size >> 1);
++ /* fallthru */
+ default:
+ in_sram_address = MX3_NF_MAIN_BUFFER0;
+ }
+diff --git a/src/jtag/drivers/ftdi.c b/src/jtag/drivers/ftdi.c
+index 00fe37faf..20f17d810 100644
+--- a/src/jtag/drivers/ftdi.c
++++ b/src/jtag/drivers/ftdi.c
+@@ -855,6 +855,7 @@ COMMAND_HANDLER(ftdi_handle_set_signal_command)
+ ftdi_set_signal(sig, *CMD_ARGV[1]);
+ break;
+ }
++ /* fallthru */
+ default:
+ LOG_ERROR("unknown signal level '%s', use 0, 1 or z", CMD_ARGV[1]);
+ return ERROR_COMMAND_SYNTAX_ERROR;
+diff --git a/src/svf/svf.c b/src/svf/svf.c
+index e7e815c10..7b261cc72 100644
+--- a/src/svf/svf.c
++++ b/src/svf/svf.c
+@@ -661,11 +661,13 @@ static int svf_read_command_from_file(FILE *fd)
+ if (svf_getline(&svf_read_line, &svf_read_line_size, svf_fd) <= 0)
+ return ERROR_FAIL;
+ i = -1;
++ /* fallthru */
+ case '\r':
+ slash = 0;
+ /* Don't save '\r' and '\n' if no data is parsed */
+ if (!cmd_pos)
+ break;
++ /* fallthru */
+ default:
+ /* The parsing code currently expects a space
+ * before parentheses -- "TDI (123)". Also a
+diff --git a/src/target/arm_adi_v5.c b/src/target/arm_adi_v5.c
+index eafc2ddc0..d444db2b1 100644
+--- a/src/target/arm_adi_v5.c
++++ b/src/target/arm_adi_v5.c
+@@ -346,10 +346,13 @@ static int mem_ap_write(struct adiv5_ap *ap, const uint8_t *buffer, uint32_t siz
+ case 4:
+ outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
+ outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
++ /* fallthru */
+ case 2:
+ outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
++ /* fallthru */
+ case 1:
+ outvalue |= (uint32_t)*buffer++ << 8 * (address++ & 3);
++ /* fallthru */
+ }
+ }
+
+@@ -509,20 +512,26 @@ static int mem_ap_read(struct adiv5_ap *ap, uint8_t *buffer, uint32_t size, uint
+ case 4:
+ *buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
+ *buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
++ /* fallthru */
+ case 2:
+ *buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
++ /* fallthru */
+ case 1:
+ *buffer++ = *read_ptr >> 8 * (3 - (address++ & 3));
++ /* fallthru */
+ }
+ } else {
+ switch (this_size) {
+ case 4:
+ *buffer++ = *read_ptr >> 8 * (address++ & 3);
+ *buffer++ = *read_ptr >> 8 * (address++ & 3);
++ /* fallthru */
+ case 2:
+ *buffer++ = *read_ptr >> 8 * (address++ & 3);
++ /* fallthru */
+ case 1:
+ *buffer++ = *read_ptr >> 8 * (address++ & 3);
++ /* fallthru */
+ }
+ }
+
+diff --git a/src/target/arm_disassembler.c b/src/target/arm_disassembler.c
+index 5277b94d8..2eb21ea33 100644
+--- a/src/target/arm_disassembler.c
++++ b/src/target/arm_disassembler.c
+@@ -3299,6 +3299,7 @@ static int t2ev_data_immed(uint32_t opcode, uint32_t address,
+ case 0x10:
+ case 0x12:
+ is_signed = true;
++ /* fallthru */
+ case 0x18:
+ case 0x1a:
+ /* signed/unsigned saturated add */
+diff --git a/src/target/target.c b/src/target/target.c
+index e04ecc470..597b4b13d 100644
+--- a/src/target/target.c
++++ b/src/target/target.c
+@@ -3684,6 +3684,7 @@ COMMAND_HANDLER(handle_bp_command)
+ addr = 0;
+ return handle_bp_command_set(CMD_CTX, addr, asid, length, hw);
+ }
++ /* fallthru */
+
+ case 4:
+ hw = BKPT_HARD;
+--
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0002-Workaround-new-warnings-generated-by-GCC-7.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0002-Workaround-new-warnings-generated-by-GCC-7.patch
new file mode 100644
index 000000000..aa99735f6
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0002-Workaround-new-warnings-generated-by-GCC-7.patch
@@ -0,0 +1,53 @@
+From 8daaa8c27794653d02854c5982669a7638473224 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Jun 2017 23:52:46 -0700
+Subject: [PATCH 2/5] Workaround new warnings generated by GCC 7
+
+src/flash/nor/xmc4xxx.c: In function 'xmc4xxx_get_info_command':
+src/flash/nor/xmc4xxx.c:939:43: error: '%d' directive output may be truncated writing between 1 and 10 bytes into a region of size 6 [-Werror=format-truncation=]
+ snprintf(otp_str, sizeof(otp_str), "- %d\n", i);
+ ^~
+src/flash/nor/xmc4xxx.c:939:40: note: directive argument in the range [0, 2147483647]
+ snprintf(otp_str, sizeof(otp_str), "- %d\n", i);
+ ^~~~~~~~
+src/flash/nor/xmc4xxx.c:939:5: note: 'snprintf' output between 5 and 14 bytes into a destination of size 8
+ snprintf(otp_str, sizeof(otp_str), "- %d\n", i);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/flash/nor/xmc4xxx.c | 2 +-
+ src/target/arm_adi_v5.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/flash/nor/xmc4xxx.c b/src/flash/nor/xmc4xxx.c
+index 02df46a3f..e6c398ff9 100644
+--- a/src/flash/nor/xmc4xxx.c
++++ b/src/flash/nor/xmc4xxx.c
+@@ -931,7 +931,7 @@ static int xmc4xxx_get_info_command(struct flash_bank *bank, char *buf, int buf_
+
+ /* If OTP Write protection is enabled (User 2), list each
+ * sector that has it enabled */
+- char otp_str[8];
++ char otp_str[14];
+ if (otp_enabled) {
+ strcat(prot_str, "\nOTP Protection is enabled for sectors:\n");
+ for (int i = 0; i < bank->num_sectors; i++) {
+diff --git a/src/target/arm_adi_v5.c b/src/target/arm_adi_v5.c
+index d444db2b1..d0d95121f 100644
+--- a/src/target/arm_adi_v5.c
++++ b/src/target/arm_adi_v5.c
+@@ -1062,7 +1062,7 @@ static int dap_rom_display(struct command_context *cmd_ctx,
+ int retval;
+ uint64_t pid;
+ uint32_t cid;
+- char tabs[7] = "";
++ char tabs[16] = "";
+
+ if (depth > 16) {
+ command_print(cmd_ctx, "\tTables too deep");
+--
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0003-armv7a-Add-missing-break-to-fix-fallthrough-warning.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0003-armv7a-Add-missing-break-to-fix-fallthrough-warning.patch
new file mode 100644
index 000000000..bcfbfc92b
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0003-armv7a-Add-missing-break-to-fix-fallthrough-warning.patch
@@ -0,0 +1,27 @@
+From 8e5051e83fedb078170565a24d1f5de6c2ce4428 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 17 Jun 2017 00:01:51 -0700
+Subject: [PATCH 3/5] armv7a: Add missing break to fix fallthrough warning
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/target/armv7a.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/target/armv7a.c b/src/target/armv7a.c
+index 6021def4e..bad806b3d 100644
+--- a/src/target/armv7a.c
++++ b/src/target/armv7a.c
+@@ -355,6 +355,7 @@ int armv7a_mmu_translate_va_pa(struct target *target, uint32_t va,
+ break;
+ case 7:
+ LOG_INFO("inner: Write-Back, no Write-Allocate");
++ break;
+
+ default:
+ LOG_INFO("inner: %" PRIx32 " ???", INNER);
+--
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0004-Fix-overflow-warning.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0004-Fix-overflow-warning.patch
new file mode 100644
index 000000000..bfc5627c1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0004-Fix-overflow-warning.patch
@@ -0,0 +1,30 @@
+From d3ca56370a2be7e737d48bd14d474d790a0ab8ac Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 17 Jun 2017 00:04:00 -0700
+Subject: [PATCH 4/5] Fix overflow warning
+
+Remove an empty space which makes it fit into 11 byte string
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/target/nds32_cmd.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/target/nds32_cmd.c b/src/target/nds32_cmd.c
+index edb4872e4..73355073c 100644
+--- a/src/target/nds32_cmd.c
++++ b/src/target/nds32_cmd.c
+@@ -821,7 +821,7 @@ static int jim_nds32_bulk_read(Jim_Interp *interp, int argc, Jim_Obj * const *ar
+ jim_wide i;
+ Jim_SetResult(interp, Jim_NewEmptyStringObj(interp));
+ for (i = 0; i < count; i++) {
+- sprintf(data_str, "0x%08" PRIx32 " ", data[i]);
++ sprintf(data_str, "0x%08" PRIx32 "", data[i]);
+ Jim_AppendStrings(interp, Jim_GetResult(interp), data_str, NULL);
+ }
+
+--
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0005-command-Move-the-fall-through-comment-to-right-scope.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0005-command-Move-the-fall-through-comment-to-right-scope.patch
new file mode 100644
index 000000000..60f75da2c
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd/0005-command-Move-the-fall-through-comment-to-right-scope.patch
@@ -0,0 +1,27 @@
+From 29dbf92ffdbdda29662b4190a2f8eb09caad8b51 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 17 Jun 2017 00:06:32 -0700
+Subject: [PATCH 5/5] command: Move the fall through comment to right scope
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/helper/command.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/helper/command.c b/src/helper/command.c
+index 5deaee859..287c14857 100644
+--- a/src/helper/command.c
++++ b/src/helper/command.c
+@@ -1456,8 +1456,8 @@ COMMAND_HELPER(handle_command_parse_bool, bool *out, const char *label)
+ LOG_ERROR("%s: argument '%s' is not valid", CMD_NAME, in);
+ return ERROR_COMMAND_SYNTAX_ERROR;
+ }
+- /* fall through */
+ }
++ /* fall through */
+ case 0:
+ LOG_INFO("%s is %s", label, *out ? "enabled" : "disabled");
+ break;
+--
+2.13.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
new file mode 100644
index 000000000..20bc663f9
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/openocd/openocd_git.bb
@@ -0,0 +1,49 @@
+SUMMARY = "Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS = "libusb-compat libftdi"
+RDEPENDS_${PN} = "libusb1"
+
+SRC_URI = "git://repo.or.cz/openocd.git \
+ file://0001-Add-fallthrough-comments.patch \
+ file://0002-Workaround-new-warnings-generated-by-GCC-7.patch \
+ file://0003-armv7a-Add-missing-break-to-fix-fallthrough-warning.patch \
+ file://0004-Fix-overflow-warning.patch \
+ file://0005-command-Move-the-fall-through-comment-to-right-scope.patch \
+"
+SRCREV = "1025be363e2bf42f1613083223a2322cc3a9bd4c"
+
+PV = "0.10+gitr${SRCPV}"
+S = "${WORKDIR}/git"
+
+inherit pkgconfig autotools-brokensep gettext
+
+BBCLASSEXTEND += "nativesdk"
+
+EXTRA_OECONF = "--enable-ftdi --disable-doxygen-html "
+
+do_configure() {
+ ./bootstrap
+ oe_runconf ${EXTRA_OECONF}
+}
+
+do_install() {
+ oe_runmake DESTDIR=${D} install
+ if [ -e "${D}${infodir}" ]; then
+ rm -Rf ${D}${infodir}
+ fi
+ if [ -e "${D}${mandir}" ]; then
+ rm -Rf ${D}${mandir}
+ fi
+ if [ -e "${D}${bindir}/.debug" ]; then
+ rm -Rf ${D}${bindir}/.debug
+ fi
+}
+
+FILES_${PN} = " \
+ ${datadir}/openocd/* \
+ ${bindir}/openocd \
+ "
+
+PACKAGECONFIG[sysfsgpio] = "--enable-sysfsgpio,--disable-sysfsgpio"
+PACKAGECONFIG ??= "sysfsgpio"
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 14e75dc7a..1be7f6aff 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
@@ -1,6 +1,6 @@
SUMMARY = "Packages required for a target (on-device) SDK"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r1"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch
deleted file mode 100644
index ecf8e7493..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From 869e52a9055c72970fed036a1510f676e6ce0824 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jun 2013 01:24:19 -0700
-Subject: [PATCH] Don't call deprecated glib functions and use the new gthread
- API.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Inappropriate[version Unmaintained Upstream]
----
- client/pk-console.c | 3 ++-
- client/pk-generate-pack.c | 3 ++-
- client/pk-monitor.c | 3 ++-
- contrib/command-not-found/PackageKit.sh | 2 +-
- contrib/command-not-found/pk-command-not-found.c | 4 ++--
- contrib/debuginfo-install/pk-debuginfo-install.c | 4 ++--
- src/pk-backend.c | 7 +++++++
- src/pk-main.c | 4 ++--
- 10 files changed, 20 insertions(+), 10 deletions(-)
-
-diff --git a/client/pk-console.c b/client/pk-console.c
-index de927e1..2435f27 100644
---- a/client/pk-console.c
-+++ b/client/pk-console.c
-@@ -1264,11 +1264,12 @@ main (int argc, char *argv[])
- bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- textdomain (GETTEXT_PACKAGE);
--
-+#if !GLIB_CHECK_VERSION(2,32,0)
- if (! g_thread_supported ())
- g_thread_init (NULL);
- g_type_init ();
- dbus_g_thread_init ();
-+#endif
-
- /* do stuff on ctrl-c */
- signal (SIGINT, pk_console_sigint_cb);
-diff --git a/client/pk-generate-pack.c b/client/pk-generate-pack.c
-index 0b2b40f..20d7e8d 100644
---- a/client/pk-generate-pack.c
-+++ b/client/pk-generate-pack.c
-@@ -251,12 +251,13 @@ main (int argc, char *argv[])
- bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- textdomain (GETTEXT_PACKAGE);
--
-+#if !GLIB_CHECK_VERSION(2,32,0)
- if (! g_thread_supported ())
- g_thread_init (NULL);
-
- g_type_init ();
- dbus_g_thread_init ();
-+#endif
-
- /* do stuff on ctrl-c */
- signal (SIGINT, pk_generate_pack_sigint_cb);
-diff --git a/client/pk-monitor.c b/client/pk-monitor.c
-index f230f7a..d43007f 100644
---- a/client/pk-monitor.c
-+++ b/client/pk-monitor.c
-@@ -285,11 +285,12 @@ main (int argc, char *argv[])
- bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- textdomain (GETTEXT_PACKAGE);
--
-+#if !GLIB_CHECK_VERSION(2,32,0)
- if (! g_thread_supported ())
- g_thread_init (NULL);
- g_type_init ();
- dbus_g_thread_init ();
-+#endif
-
- context = g_option_context_new (NULL);
- /* TRANSLATORS: this is a program that monitors PackageKit */
-diff --git a/contrib/command-not-found/PackageKit.sh b/contrib/command-not-found/PackageKit.sh
-index d08989c..d708fff 100644
---- a/contrib/command-not-found/PackageKit.sh
-+++ b/contrib/command-not-found/PackageKit.sh
-@@ -18,7 +18,7 @@ command_not_found_handle () {
-
- # run the command, or just print a warning
- if [ $runcnf -eq 1 ]; then
-- /home/hughsie/.root/libexec/pk-command-not-found $1
-+ /usr/lib/packagekit/pk-command-not-found $1
- retval=$?
- else
- echo "bash: $1: command not found"
-diff --git a/contrib/command-not-found/pk-command-not-found.c b/contrib/command-not-found/pk-command-not-found.c
-index 70679c0..9f81ce4 100644
---- a/contrib/command-not-found/pk-command-not-found.c
-+++ b/contrib/command-not-found/pk-command-not-found.c
-@@ -659,12 +659,12 @@ main (int argc, char *argv[])
- bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- textdomain (GETTEXT_PACKAGE);
--
-+#if !GLIB_CHECK_VERSION(2,32,0)
- if (! g_thread_supported ())
- g_thread_init (NULL);
- dbus_g_thread_init ();
- g_type_init ();
--
-+#endif
- context = g_option_context_new (NULL);
- /* TRANSLATORS: tool that gets called when the command is not found */
- g_option_context_set_summary (context, _("PackageKit Command Not Found"));
-diff --git a/contrib/debuginfo-install/pk-debuginfo-install.c b/contrib/debuginfo-install/pk-debuginfo-install.c
-index c12aca5..b0e1e7c 100644
---- a/contrib/debuginfo-install/pk-debuginfo-install.c
-+++ b/contrib/debuginfo-install/pk-debuginfo-install.c
-@@ -532,11 +532,11 @@ main (int argc, char *argv[])
- bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- textdomain (GETTEXT_PACKAGE);
--
-+#if !GLIB_CHECK_VERSION(2,32,0)
- if (! g_thread_supported ())
- g_thread_init (NULL);
- g_type_init ();
--
-+#endif
- context = g_option_context_new (NULL);
- /* TRANSLATORS: tool that gets called when the command is not found */
- g_option_context_set_summary (context, _("PackageKit Debuginfo Installer"));
-diff --git a/src/pk-backend.c b/src/pk-backend.c
-index 5216b63..5b83ae4 100644
---- a/src/pk-backend.c
-+++ b/src/pk-backend.c
-@@ -2103,7 +2103,14 @@ pk_backend_thread_create (PkBackend *backend, PkBackendThreadFunc func)
- egg_warning ("already has thread");
- return FALSE;
- }
-+#if !GLIB_CHECK_VERSION(2,32,0)
- backend->priv->thread = g_thread_create ((GThreadFunc) func, backend, FALSE, NULL);
-+#else
-+ backend->priv->thread = g_thread_try_new ("daemon thread", (GThreadFunc) func, backend, NULL);
-+ if (backend->priv->thread != NULL) {
-+ g_thread_unref(backend->priv->thread);
-+ }
-+#endif
- if (backend->priv->thread == NULL) {
- egg_warning ("failed to create thread");
- return FALSE;
-diff --git a/src/pk-main.c b/src/pk-main.c
-index 4c758cd..8fa2482 100644
---- a/src/pk-main.c
-+++ b/src/pk-main.c
-@@ -219,12 +219,12 @@ main (int argc, char *argv[])
- bindtextdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
- textdomain (GETTEXT_PACKAGE);
--
-+#if !GLIB_CHECK_VERSION(2,32,0)
- if (! g_thread_supported ())
- g_thread_init (NULL);
- dbus_g_thread_init ();
- g_type_init ();
--
-+#endif
- /* TRANSLATORS: describing the service that is running */
- context = g_option_context_new (_("PackageKit service"));
- g_option_context_add_main_entries (context, options, NULL);
---
-1.7.9.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch
deleted file mode 100644
index 48f959186..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/configurefix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: PackageKit-0.6.0/configure.ac
-===================================================================
---- PackageKit-0.6.0.orig/configure.ac 2010-01-04 16:32:18.000000000 +0000
-+++ PackageKit-0.6.0/configure.ac 2010-01-29 11:33:48.000000000 +0000
-@@ -90,7 +90,7 @@
- enable_strict=$default_strict)
- if test x$enable_strict != xno; then
- if test "$GCC" = "yes"; then
-- WARNINGFLAGS_CPP="$WARNINGFLAGS_CPP -Werror"
-+ :
- fi
- fi
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch
deleted file mode 100644
index 5a73a19d5..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit-0.5.6/opkgfixes.patch
+++ /dev/null
@@ -1,422 +0,0 @@
-Index: PackageKit-0.6.0/backends/opkg/pk-backend-opkg.c
-===================================================================
---- PackageKit-0.6.0.orig/backends/opkg/pk-backend-opkg.c 2010-01-29 09:39:33.000000000 +0000
-+++ PackageKit-0.6.0/backends/opkg/pk-backend-opkg.c 2010-01-29 11:30:51.000000000 +0000
-@@ -29,8 +29,7 @@
-
-+#include <stdio.h>
- #include <libopkg/opkg.h>
-
--static opkg_t *opkg;
--
- enum {
- SEARCH_NAME,
- SEARCH_DESCRIPTION,
-@@ -62,7 +60,7 @@
- * check an opkg package for known GUI dependancies
- */
- static gboolean
--opkg_is_gui_pkg (opkg_package_t *pkg)
-+opkg_is_gui_pkg (pkg_t *pkg)
- {
-
- /* TODO: check appropriate tag */
-@@ -84,7 +82,7 @@
- * check an opkg package to determine if it is a development package
- */
- static gboolean
--opkg_is_devel_pkg (opkg_package_t *pkg)
-+opkg_is_devel_pkg (pkg_t *pkg)
- {
- if (g_strrstr (pkg->name, "-dev"))
- return TRUE;
-@@ -105,7 +103,7 @@
- * returns true if the tag is present
- */
- static gboolean
--opkg_check_tag (opkg_package_t *pkg, const gchar *tag)
-+opkg_check_tag (pkg_t *pkg, const gchar *tag)
- {
- if (pkg->tags && tag)
- return (g_strrstr (pkg->tags, tag) != NULL);
-@@ -118,7 +116,7 @@
- {
- switch (err)
- {
-- case OPKG_NO_ERROR:
-+/* case OPKG_NO_ERROR:
- break;
- case OPKG_PACKAGE_NOT_INSTALLED:
- pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL);
-@@ -140,7 +138,7 @@
- break;
- case OPKG_PACKAGE_NOT_AVAILABLE:
- pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND, NULL);
-- break;
-+ break;*/
- default:
- opkg_unknown_error (backend, err, "Update package");
- }
-@@ -152,7 +150,7 @@
- static void
- backend_initialize (PkBackend *backend)
- {
-- opkg = opkg_new ();
-+ int opkg = opkg_new ();
-
- if (!opkg) {
- pk_backend_error_code (backend,
-@@ -162,8 +160,8 @@
- }
-
- #ifdef OPKG_OFFLINE_ROOT
-- opkg_set_option (opkg, (char *) "offline_root", OPKG_OFFLINE_ROOT);
-- opkg_re_read_config_files (opkg);
-+ opkg_set_option ((char *) "offline_root", OPKG_OFFLINE_ROOT);
-+ opkg_re_read_config_files ();
- #endif
-
- }
-@@ -174,22 +172,22 @@
- static void
- backend_destroy (PkBackend *backend)
- {
-- opkg_free (opkg);
-+ opkg_free ();
- }
-
-
- static void
--pk_opkg_progress_cb (opkg_t *_opkg, const opkg_progress_data_t *pdata, void *data)
-+pk_opkg_progress_cb (const opkg_progress_data_t *pdata, void *data)
- {
-- PkBackend *backend = PK_BACKEND (data);
-+ PkBackend *backend = (PkBackend*) data;
- if (!backend)
- return;
-
- pk_backend_set_percentage (backend, pdata->percentage);
-- if (pdata->package)
-+ if (pdata->pkg)
- {
- gchar *uid;
-- opkg_package_t *pkg = pdata->package;
-+ pkg_t *pkg = pdata->pkg;
- gint status = PK_INFO_ENUM_UNKNOWN;
-
- uid = g_strdup_printf ("%s;%s;%s;",
-@@ -225,12 +223,12 @@
- {
- int ret;
-
-- ret = opkg_update_package_lists (opkg, pk_opkg_progress_cb, backend);
-+ ret = opkg_update_package_lists (pk_opkg_progress_cb, backend);
-
- if (ret) {
-- if (ret == OPKG_DOWNLOAD_FAILED)
-- pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_AVAILABLE, NULL);
-- else
-+// if (ret == OPKG_DOWNLOAD_FAILED)
-+// pk_backend_error_code (backend, PK_ERROR_ENUM_REPO_NOT_AVAILABLE, NULL);
-+// else
- opkg_unknown_error (backend, ret, "Refreshing cache");
- }
- pk_backend_finished (backend);
-@@ -256,7 +254,7 @@
- */
-
- static void
--pk_opkg_package_list_cb (opkg_t *_opkg, opkg_package_t *pkg, void *data)
-+pk_opkg_package_list_cb (pkg_t *pkg, void *data)
- {
- SearchParams *params = (SearchParams*) data;
- gchar *uid;
-@@ -298,7 +296,7 @@
- uid = g_strdup_printf ("%s;%s;%s;",
- pkg->name, pkg->version, pkg->architecture);
-
-- if (pkg->installed)
-+ if (pkg->state_status == SS_INSTALLED)
- status = PK_INFO_ENUM_INSTALLED;
- else
- status = PK_INFO_ENUM_AVAILABLE;
-@@ -318,10 +316,10 @@
- opkg_is_gui_pkg (pkg))
- goto end_handle;
- if (pk_bitfield_contain(filters, PK_FILTER_ENUM_INSTALLED) &&
-- (!pkg->installed))
-+ (pkg->state_status != SS_INSTALLED))
- goto end_handle;
- if (pk_bitfield_contain(filters, PK_FILTER_ENUM_NOT_INSTALLED) &&
-- (pkg->installed))
-+ (pkg->state_status == SS_INSTALLED))
- goto end_handle;
-
- pk_backend_package (params->backend, status, uid, pkg->description);
-@@ -338,7 +336,7 @@
-
- params = pk_backend_get_pointer (backend, "search-params");
-
-- opkg_list_packages (opkg, pk_opkg_package_list_cb, params);
-+ opkg_list_packages (pk_opkg_package_list_cb, params);
-
- pk_backend_finished (params->backend);
-
-@@ -349,7 +347,7 @@
- }
-
- static void
--backend_search_name (PkBackend *backend, PkBitfield filters, const gchar *search)
-+backend_search_name (PkBackend *backend, PkBitfield filters, gchar **search)
- {
- SearchParams *params;
-
-@@ -360,7 +358,7 @@
- params = g_new0 (SearchParams, 1);
- params->filters = filters;
- params->search_type = SEARCH_NAME;
-- params->needle = g_utf8_strdown (search, -1);
-+ params->needle = g_utf8_strdown (search[0], -1);
- params->backend = backend;
-
- pk_backend_set_pointer (backend, "search-params", params);
-@@ -371,7 +369,7 @@
- * backend_search_description:
- */
- static void
--backend_search_description (PkBackend *backend, PkBitfield filters, const gchar *search)
-+backend_search_description (PkBackend *backend, PkBitfield filters, gchar **search)
- {
- SearchParams *params;
-
-@@ -382,7 +380,7 @@
- params = g_new0 (SearchParams, 1);
- params->filters = filters;
- params->search_type = SEARCH_DESCRIPTION;
-- params->needle = g_utf8_strdown (search, -1);
-+ params->needle = g_utf8_strdown (search[0], -1);
- params->backend = backend;
-
- pk_backend_set_pointer (backend, "search-params", params);
-@@ -390,7 +388,7 @@
- }
-
- static void
--backend_search_group (PkBackend *backend, PkBitfield filters, const gchar *search)
-+backend_search_group (PkBackend *backend, PkBitfield filters, gchar **search)
- {
- SearchParams *params;
-
-@@ -401,7 +399,7 @@
- params = g_new0 (SearchParams, 1);
- params->filters = filters;
- params->search_type = SEARCH_TAG;
-- params->needle = g_strdup_printf ("group::%s", search);
-+ params->needle = g_strdup_printf ("group::%s", search[0]);
- params->backend = backend;
-
- pk_backend_set_pointer (backend, "search-params", params);
-@@ -412,9 +410,9 @@
- static gboolean
- backend_install_packages_thread (PkBackend *backend)
- {
-- PkPackageId *pi;
- gint err, i;
- gchar **package_ids;
-+ gchar **parts;
-
- package_ids = pk_backend_get_strv (backend, "pkids");
-
-@@ -424,13 +422,13 @@
- {
- pk_backend_package (backend, PK_INFO_ENUM_INSTALLING, package_ids[i], NULL);
-
-- pi = pk_package_id_new_from_string (package_ids[i]);
-+ parts = pk_package_id_split (package_ids[i]);
-
-- err = opkg_install_package (opkg, pi->name, pk_opkg_progress_cb, backend);
-+ err = opkg_install_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend);
- if (err)
- handle_install_error (backend, err);
-
-- pk_package_id_free (pi);
-+ g_strfreev (parts);
- if (err != 0)
- break;
- }
-@@ -453,9 +451,9 @@
- static gboolean
- backend_remove_packages_thread (PkBackend *backend)
- {
-- PkPackageId *pi;
- gint err, i;
- gchar **package_ids;
-+ gchar **parts;
- gboolean allow_deps;
- gboolean autoremove;
- gpointer *data;
-@@ -467,29 +465,30 @@
- autoremove = GPOINTER_TO_INT (data[2]);
- g_free (data);
-
-- opkg_set_option (opkg, (char *)"autoremove", &autoremove);
-- opkg_set_option (opkg, (char *)"force_removal_of_dependent_packages", &allow_deps);
-+ opkg_set_option ((char *)"autoremove", &autoremove);
-+ opkg_set_option ((char *)"force_removal_of_dependent_packages", &allow_deps);
-
- err = 0;
-
- for (i = 0; package_ids[i]; i++)
- {
-- pi = pk_package_id_new_from_string (package_ids[i]);
- pk_backend_package (backend, PK_INFO_ENUM_REMOVING, package_ids[i], NULL);
-
-- err = opkg_remove_package (opkg, pi->name, pk_opkg_progress_cb, backend);
-+ parts = pk_package_id_split (package_ids[i]);
-+
-+ err = opkg_remove_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend);
-
- switch (err)
- {
-- case OPKG_NO_ERROR:
-- break;
-- case OPKG_PACKAGE_NOT_INSTALLED:
-- pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL);
-- break;
-+ //case OPKG_NO_ERROR:
-+ // break;
-+ //case OPKG_PACKAGE_NOT_INSTALLED:
-+ // pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_INSTALLED, NULL);
-+ // break;
- default:
- opkg_unknown_error (backend, err, "Remove");
- }
-- pk_package_id_free (pi);
-+ g_strfreev (parts);
-
- if (err != 0)
- break;
-@@ -540,7 +539,7 @@
- gint err;
-
- /* FIXME: support only_trusted */
-- err = opkg_upgrade_all (opkg, pk_opkg_progress_cb, backend);
-+ err = opkg_upgrade_all (pk_opkg_progress_cb, backend);
-
- if (err)
- opkg_unknown_error (backend, err, "Upgrading system");
-@@ -564,29 +563,28 @@
- static gboolean
- backend_update_package_thread (PkBackend *backend)
- {
-- PkPackageId *pi;
-+ gchar **parts;
- gint err = 0;
- const gchar *package_id;
-
- /* FIXME: support only_trusted */
- package_id = pk_backend_get_string (backend, "pkgid");
-- pi = pk_package_id_new_from_string (package_id);
-+ parts = pk_package_id_split (package_id);
-
-- if (!pi->name || !pi->version)
-+ if (!parts)
- {
- pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_NOT_FOUND,
- "Package not found");
-- pk_package_id_free (pi);
- pk_backend_finished (backend);
- return FALSE;
- }
-
-- err = opkg_upgrade_package (opkg, pi->name, pk_opkg_progress_cb, backend);
-+ err = opkg_upgrade_package (parts[PK_PACKAGE_ID_NAME], pk_opkg_progress_cb, backend);
- if (err)
- handle_install_error (backend, err);
-
-
-- pk_package_id_free (pi);
-+ g_strfreev (parts);
- pk_backend_finished (backend);
- return (err != 0);
- }
-@@ -610,13 +608,13 @@
- */
-
- static void
--pk_opkg_list_upgradable_cb (opkg_t *_opkg, opkg_package_t *pkg, void *data)
-+pk_opkg_list_upgradable_cb (pkg_t *pkg, void *data)
- {
-- PkBackend *backend = PK_BACKEND (data);
-+ PkBackend *backend = (PkBackend*) data;
- gchar *uid;
- gint status;
-
-- if (pkg->installed)
-+ if (pkg->state_status == SS_INSTALLED)
- status = PK_INFO_ENUM_INSTALLED;
- else
- status = PK_INFO_ENUM_AVAILABLE;
-@@ -631,7 +629,7 @@
- static gboolean
- backend_get_updates_thread (PkBackend *backend)
- {
-- opkg_list_upgradable_packages (opkg, pk_opkg_list_upgradable_cb, backend);
-+ opkg_list_upgradable_packages (pk_opkg_list_upgradable_cb, backend);
- pk_backend_finished (backend);
- return TRUE;
- }
-@@ -668,16 +666,18 @@
- static gboolean
- backend_get_details_thread (PkBackend *backend)
- {
-- PkPackageId *pi;
- gchar **package_ids;
-+ gchar **parts;
- int group_index;
- PkGroupEnum group = 0;
-- opkg_package_t *pkg;
-+ pkg_t *pkg;
- gchar *newid;
-
- package_ids = pk_backend_get_strv(backend, "package_ids");
-- pi = pk_package_id_new_from_string (package_ids[0]);
-- if (pi == NULL)
-+ parts = pk_package_id_split (package_ids[0]);
-+
-+
-+ if (!parts)
- {
- pk_backend_error_code (backend, PK_ERROR_ENUM_PACKAGE_ID_INVALID, "invalid package id");
- pk_backend_finished (backend);
-@@ -685,8 +685,8 @@
- }
-
-
-- pkg = opkg_find_package (opkg, pi->name, pi->version, pi->arch, pi->data);
-- pk_package_id_free (pi);
-+ pkg = opkg_find_package (parts[PK_PACKAGE_ID_NAME], parts[PK_PACKAGE_ID_VERSION], parts[PK_PACKAGE_ID_ARCH], parts[PK_PACKAGE_ID_DATA]);
-+ g_strfreev (parts);
-
- if (!pkg)
- {
-@@ -695,7 +695,7 @@
- return FALSE;
- }
-
-- newid = g_strdup_printf ("%s;%s;%s;%s", pkg->name, pkg->version, pkg->architecture, pkg->repository);
-+ newid = g_strdup_printf ("%s;%s;%s;%s", pkg->name, pkg->version, pkg->architecture, pkg->src->name);
-
- if (pkg->tags) {
- for (group_index = 0; group < PK_GROUP_ENUM_LAST; group_index++) {
-@@ -706,9 +706,8 @@
- }
- }
-
-- pk_backend_details (backend, newid, NULL, group, pkg->description, pkg->url, pkg->size);
-+ pk_backend_details (backend, newid, NULL, group, pkg->description, NULL, pkg->size);
- g_free (newid);
-- opkg_package_free(pkg);
- pk_backend_finished (backend);
- return TRUE;
- }
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb
deleted file mode 100644
index 1b60c470d..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/packagekit/packagekit_0.5.6.bb
+++ /dev/null
@@ -1,65 +0,0 @@
-SUMMARY = "PackageKit package management abstraction"
-SECTION = "libs"
-LICENSE = "GPL-2.0+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "gtk+ python polkit dbus dbus-glib glib-2.0 sqlite3 opkg intltool intltool-native"
-RDEPENDS_${PN} = "opkg bash"
-
-inherit gnome pythonnative
-
-SRC_URI = "http://www.freedesktop.org/software/PackageKit/releases/PackageKit-${PV}.tar.bz2;name=archive \
- file://configurefix.patch \
- file://opkgfixes.patch \
- file://0001-Don-t-call-deprecated-glib-functions-and-use-the-new.patch \
- "
-
-SRC_URI[archive.md5sum] = "33a3127e9ed41e26671786aee9fe56ff"
-SRC_URI[archive.sha256sum] = "8dae41493dfb011442746d252b3435bf3204e17bf7c47e396f90fbd215260e14"
-
-S = "${WORKDIR}/PackageKit-${PV}"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[service-packs] = "--enable-service-packs,--disable-service-packs,libarchive"
-
-EXTRA_OECONF = "--with-security-framework=dummy \
- --with-default-backend=opkg \
- --enable-opkg \
- --disable-tests \
- --disable-ruck \
- --disable-qt \
- --disable-gstreamer-plugin \
- --disable-local \
- --disable-networkmanager \
- --disable-device-rebind \
- ac_cv_path_XMLTO=no \
-"
-
-#do_configure_prepend() {
-# mkdir -p m4
-# echo "EXTRA_DIST=" > gtk-doc.make
-#}
-
-do_configure_append() {
- for i in $(find . -name Makefile) ; do
- sed -i -e s:${STAGING_DIR_NATIVE}::g \
- -e s:/usr/bin/intltool-merge:${STAGING_BINDIR_NATIVE}/intltool-merge:g \
- $i
- done
-}
-
-PACKAGES =+ "${PN}-website"
-FILES_${PN}-website = "${datadir}/PackageKit/website"
-
-PACKAGES =+ "${PN}-python"
-FILES_${PN}-python = "${libdir}/python*"
-
-PACKAGES =+ "${PN}-gtkmodule"
-FILES_${PN}-gtkmodule = "${libdir}/gtk-2.0/*/*.so"
-
-FILES_${PN} += "${libdir}/packagekit-backend/*.so ${libdir}/pm-utils ${datadir}/dbus-1/system-services/ ${datadir}/PolicyKit ${datadir}/PackageKit"
-FILES_${PN}-dbg += "${libdir}/packagekit-backend/.debug/*.so ${libdir}/gtk-2.0/*/.debug"
-FILES_${PN}-dev += "${libdir}/packagekit-backend/*.la ${libdir}/gtk-2.0/*/*.la"
-FILES_${PN}-staticdev += "${libdir}/packagekit-backend/*.a ${libdir}/gtk-2.0/*/*.a"
-
-# PackageKit-0.5.6/backends/opkg/pk-backend-opkg.c:31:26: fatal error: libopkg/opkg.h: No such file or directory
-PNBLACKLIST[packagekit] ?= "BROKEN: depends on old deprecated libopkg which is currently disabled and will be removed soon - the recipe will be removed on 2017-09-01 unless the issue is fixed"
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.94.bb
index 66054a257..3b58939b1 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.94.bb
@@ -3,6 +3,7 @@ IPC::Run allows you run and interact with child processes \
using files, pipes, and pseudo-ttys. Both system()-style and scripted \
usages are supported and may be mixed. Likewise, functional and OO API \
styles are both supported and may be mixed."
+HOMEPAGE = "https://metacpan.org/release/IPC-Run"
SECTION = "libs"
LICENSE = "Artistic-1.0 | GPL-1.0+"
LIC_FILES_CHKSUM = "file://LICENSE;md5=0ebd37caf53781e8b7223e6b99b63f4e"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.26/0001-Add-lpthread-to-link.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/0001-Add-lpthread-to-link.patch
index f70e550ff..f70e550ff 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.26/0001-Add-lpthread-to-link.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/0001-Add-lpthread-to-link.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.26/change-AC_TRY_RUN-to-AC_TRY_LINK.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
index 39c334f39..39c334f39 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.26/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-5.6.31/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.7/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
index 18b4937db..18b4937db 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.7/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
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
new file mode 100644
index 000000000..41d2a0f61
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch
@@ -0,0 +1,5241 @@
+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.7/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
index 39c334f39..39c334f39 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php-7.1.7/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
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 0e5502088..283d630f6 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
@@ -203,6 +203,7 @@ MODPHP_PACKAGE = "${@bb.utils.contains('PACKAGECONFIG', 'apache2', '${PN}-modphp
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}"
+RDEPENDS_${PN} += "libgcc"
RDEPENDS_${PN}-pear = "${PN}"
RDEPENDS_${PN}-phar = "${PN}-cli"
RDEPENDS_${PN}-cli = "${PN}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.26.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.31.bb
index dfce949f9..dd8047be2 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.26.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_5.6.31.bb
@@ -6,5 +6,5 @@ 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] = "cb424b705cfb715fc04f499f8a8cf52e"
-SRC_URI[sha256sum] = "d47aab8083a4284b905777e1b45dd7735adc53be827b29f896684750ac8b6236"
+SRC_URI[md5sum] = "620abe25e0d6cd5f041a360a30ce5783"
+SRC_URI[sha256sum] = "8f397169cb65f0539f3bcb04060f97770d73e19074a37bd2c58b98ebf6ecb10f"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.7.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.9.bb
index ebf923781..acf68a059 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.7.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/php/php_7.1.9.bb
@@ -4,9 +4,10 @@ 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] = "22e11a372f99afbbbf3f46a31e8a82ca"
-SRC_URI[sha256sum] = "079b6792987f38dc485f92258c04f9e02dedd593f9d260ebe725343f812d1ff8"
+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 \
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
index 7322df8e7..1ee6573bd 100644
--- 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
@@ -4,12 +4,11 @@ HOMEPAGE = "https://wiki.linaro.org/WorkingGroups/PowerManagement/Resources/Test
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-PV = "0.4.14"
+PV = "0.5.2"
BRANCH ?= "master"
-# Corresponds to tag pm-qa-v0.4.14
-SRCREV = "9111d1930f02337394cf16e84ad2a27f33607cbb"
+SRCREV = "05710ec5032be4c8edafb4109d4d908d31243906"
SRC_URI = "git://git.linaro.org/power/pm-qa.git;protocol=git;branch=${BRANCH}"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
index 94fc736b5..8491fc904 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
@@ -15,6 +15,11 @@ COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
S = "${WORKDIR}/git"
+inherit update-alternatives
+
+ALTERNATIVE_PRIORITY = "90"
+ALTERNATIVE_${PN} = "acpixtract"
+
do_configure[noexec] = "1"
do_compile() {
oe_runmake
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.2.1.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.0.bb
index 40fb96cf4..fe1e6e5fa 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.2.1.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.0.bb
@@ -15,11 +15,14 @@ PACKAGE_BEFORE_PN = "${PN}-compiler"
RDEPENDS_${PN}-compiler = "protobuf-compiler"
RDEPENDS_${PN}-dev += "${PN}-compiler"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=235c3195a3968524dc1524b4ebea0c0e"
-SRC_URI = "https://github.com/protobuf-c/protobuf-c/archive/v${PV}.tar.gz"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cb901168715f4782a2b06c3ddaefa558"
-SRC_URI[md5sum] = "b884aeba4283309445a8e3b6e7322dd6"
-SRC_URI[sha256sum] = "2d708fb3c024b9e6e86df141faff802194f5db90a4b79e6d4aa6bd61dd983dd6"
+PV .= "+git${SRCPV}"
+SRCREV = "dac1a65feac4ad72f612aab99f487056fbcf5c1a"
+
+SRC_URI = "git://github.com/protobuf-c/protobuf-c.git"
+
+S = "${WORKDIR}/git"
inherit autotools pkgconfig
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.1.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb
index 18210b1e5..fae7c18a1 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.1.0.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/protobuf/protobuf_3.4.1.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "https://github.com/google/protobuf"
SECTION = "console/tools"
LICENSE = "BSD-3-Clause"
-PACKAGE_BEFORE_PN = "${PN}-compiler"
+PACKAGE_BEFORE_PN = "${PN}-compiler ${PN}-lite"
DEPENDS = "zlib"
RDEPENDS_${PN}-compiler = "${PN}"
@@ -14,19 +14,20 @@ RDEPENDS_${PN}-dev += "${PN}-compiler"
LIC_FILES_CHKSUM = "file://LICENSE;md5=35953c752efc9299b184f91bef540095"
-SRCREV = "a428e42072765993ff674fda72863c9f1aa2d268"
+SRCREV = "b04e5cba356212e4e8c66c61bbe0c3a20537c5b9"
-PV = "3.1.0+git${SRCPV}"
+PV = "3.4.1+git${SRCPV}"
-SRC_URI = "git://github.com/google/protobuf.git"
+SRC_URI = "git://github.com/google/protobuf.git;branch=3.4.x"
EXTRA_OECONF += " --with-protoc=echo"
-inherit autotools
+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"
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
index 3eb18829f..c85fc56b8 100644
--- 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
@@ -12,3 +12,5 @@ SRC_URI[sha256sum] = "0542525145d5afc984c88f914a0c85c77527f65946617edb5274f72406
S = "${WORKDIR}/futures-${PV}"
inherit setuptools
+
+BBCLASSEXTEND = "native"
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.22.0.bb
index acc2f5b7a..9d2e16554 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.22.0.bb
@@ -1,4 +1,5 @@
SUMMARY = "Python GObject bindings"
+HOMEPAGE = "http://www.pygtk.org/"
SECTION = "devel/python"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
index 4cded0720..8ab35d224 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
@@ -21,5 +21,6 @@ EXTRA_OECMAKE += "-DRAPIDJSON_BUILD_DOC=OFF -DRAPIDJSON_BUILD_TESTS=OFF -DRAPIDJ
# RapidJSON is a header-only C++ library, so the main package will be empty.
FILES_${PN}-dev += "${libdir}/cmake"
+RDEPENDS_${PN}-dev = ""
BBCLASSEXTEND = "native nativesdk"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.8.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.8.bb
new file mode 100644
index 000000000..82b179521
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uftrace/uftrace_0.8.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Trace and analyze execution of a program written in C/C++"
+HOMEPAGE = "https://github.com/namhyung/uftrace"
+BUGTRACKER = "https://github.com/namhyung/uftrace/issues"
+SECTION = "devel"
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "elfutils"
+DEPENDS_append_libc-musl = " argp-standalone"
+
+inherit autotools
+
+SRCREV = "5af9ff9fa89c340617e52c8ed05798b352a7145c"
+SRC_URI = "git://github.com/namhyung/${BPN}"
+S = "${WORKDIR}/git"
+
+LDFLAGS_append_libc-musl = " -largp"
+EXTRA_OECONF = "ARCH=${TARGET_ARCH}"
+
+do_configure() {
+ ${S}/configure ${EXTRA_OECONF}
+}
+
+FILES_SOLIBSDEV = ""
+FILES_${PN} += "${libdir}/*.so"
+
+COMPATIBLE_HOST = "(x86_64|aarch64|arm)"
+
+# uftrace supports armv6 and above
+COMPATIBLE_HOST_armv4 = 'null'
+COMPATIBLE_HOST_armv5 = 'null'
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
index 0849e8856..91003f6e9 100644
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
@@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a6a4ddbb7cd2999f6827ee143f6fcd97"
DEPENDS = "openssl"
-SRC_URI = "ftp://ftp.cac.washington.edu/imap/imap-${PV}.tar.gz \
+SRC_URI = "https://fossies.org/linux/misc/old/imap-${PV}.tar.gz \
file://quote_cctype.patch \
file://imap-2007e-shared.patch \
file://imap-2007f-format-security.patch \
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool.inc b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool.inc
deleted file mode 100644
index f7d480f17..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "Vala DBus Binding Tool"
-SECTION = "devel"
-DEPENDS = "vala libgee libxml2"
-HOMEPAGE = "http://wiki.freesmartphone.org/index.php/Implementations/vala-dbus-binding-tool"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-PE = "1"
-INC_PR = "r3"
-
-export XDG_DATA_DIRS = "${STAGING_DATADIR}"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/freesmartphone/sources/${BP}.tar.bz2"
-
-inherit autotools perlnative pkgconfig
-
-BBCLASSEXTEND = "native"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool/0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool/0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch
deleted file mode 100644
index 14d84ae8a..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool/0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 8abed2e5bf8e7815b11df6d22042d5f0ac8efcb0 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Tue, 5 May 2015 13:43:35 +0200
-Subject: [PATCH] configure.ac: don't use dash in m4 macro names
-
-* otherwise it doesn't get expanded and vala-dbus-binding-tool ends with version 'vala-dbus-binding-tool_version'
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- configure.ac | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 48f007c..18d0bde 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1,9 +1,9 @@
--m4_define([vala-dbus-binding-tool_released], [0])
--m4_define([vala-dbus-binding-tool_base_version], [1.0])
--m4_define([vala-dbus-binding-tool_maybe_gitrev], m4_if(vala-dbus-binding-tool_released, [1], [], [m4_esyscmd([git show-ref --hash=5 HEAD | tr -d '\n\r'])]))
--m4_define([vala-dbus-binding-tool_version], m4_if(vala-dbus-binding-tool_released, [1], [vala-dbus-binding-tool_base_version], [vala-dbus-binding-tool_base_version-vala-dbus-binding-tool_maybe_gitrev]))
-+m4_define([vala_dbus_binding_tool_released], [0])
-+m4_define([vala_dbus_binding_tool_base_version], [1.0])
-+m4_define([vala_dbus_binding_tool_maybe_gitrev], m4_if(vala_dbus_binding_tool_released, [1], [], [m4_esyscmd([git show-ref --hash=5 HEAD | tr -d '\n\r'])]))
-+m4_define([vala_dbus_binding_tool_version], m4_if(vala_dbus_binding_tool_released, [1], [vala_dbus_binding_tool_base_version], [vala_dbus_binding_tool_base_version-vala_dbus_binding_tool_maybe_gitrev]))
-
--AC_INIT([vala-dbus-binding-tool], [vala-dbus-binding-tool_version], [fso@openphoenux.org], [vala-dbus-binding-tool])
-+AC_INIT([vala-dbus-binding-tool], [vala_dbus_binding_tool_version], [fso@openphoenux.org], [vala-dbus-binding-tool])
- AC_CONFIG_SRCDIR([src/Makefile.am])
- AC_CONFIG_HEADERS(config.h)
- AM_INIT_AUTOMAKE([dist-bzip2])
---
-2.3.5
-
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_0.4.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_0.4.0.bb
deleted file mode 100644
index 19e3dceca..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_0.4.0.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require vala-dbus-binding-tool.inc
-
-SRC_URI[md5sum] = "59eab7abf38f35355d3786803bd2441f"
-SRC_URI[sha256sum] = "1e37ab2e6238eaef9f573560ea7379e6955570f7c9503083e50c4c185c1956df"
-
-PNBLACKLIST[vala-dbus-binding-tool] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/131628/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_git.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_git.bb
deleted file mode 100644
index 32f34550d..000000000
--- a/import-layers/meta-openembedded/meta-oe/recipes-devtools/vala-dbus-binding-tool/vala-dbus-binding-tool_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require vala-dbus-binding-tool.inc
-
-# Temporary remove negative preference, because there are 2 versions of 0.4.0 archives:
-# the original one depending on libgee1.0 from
-# http://downloads.freesmartphone.org/sources/${BPN}/${BP}.tar.bz2
-# and new one depending on libgee0.8 from
-# http://sourceforge.net/projects/freesmartphone/files/sources/
-# The original one can be already deployed on various premirrors,
-# so prefer the git recipe which doesn't suffer from this issue
-# DEFAULT_PREFERENCE = "-1"
-
-SRCREV = "742c04c2bb0743891904522ce47e50f9e5c99b12"
-PV = "0.4.0+gitr${SRCPV}"
-
-SRC_URI = "git://github.com/freesmartphone/vala-dbus-binding-tool.git;protocol=https \
- file://0001-configure.ac-don-t-use-dash-in-m4-macro-names.patch \
-"
-S = "${WORKDIR}/git"
-
-PNBLACKLIST[vala-dbus-binding-tool] ?= "Fails to build with RSS http://errors.yoctoproject.org/Errors/Details/130581/ - the recipe will be removed on 2017-09-01 unless the issue is fixed"
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-fix-compile-failure-against-musl-C-library.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-fix-compile-failure-against-musl-C-library.patch
new file mode 100644
index 000000000..234d696f1
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-fix-compile-failure-against-musl-C-library.patch
@@ -0,0 +1,52 @@
+From 950b27f8320b841490cafcb3e6e3b818c7174c0d Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 20 Jul 2017 22:32:50 -0400
+Subject: [PATCH] fix compile failure against musl C library
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ test/cpp/server_abyss.cpp | 2 +-
+ tools/xmlrpc_pstream/xmlrpc_pstream.cpp | 10 +++++++---
+ 2 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/test/cpp/server_abyss.cpp b/test/cpp/server_abyss.cpp
+index 2458a8f..82f91da 100644
+--- a/test/cpp/server_abyss.cpp
++++ b/test/cpp/server_abyss.cpp
+@@ -18,7 +18,7 @@
+ #ifdef WIN32
+ #include <winsock2.h>
+ #else
+- #include <sys/unistd.h>
++ #include <unistd.h>
+ #include <sys/socket.h>
+ #include <arpa/inet.h>
+ #include <netinet/in.h>
+diff --git a/tools/xmlrpc_pstream/xmlrpc_pstream.cpp b/tools/xmlrpc_pstream/xmlrpc_pstream.cpp
+index d39e105..1fd8900 100644
+--- a/tools/xmlrpc_pstream/xmlrpc_pstream.cpp
++++ b/tools/xmlrpc_pstream/xmlrpc_pstream.cpp
+@@ -15,11 +15,15 @@
+ #include "xmlrpc-c/girerr.hpp"
+ using girerr::throwf;
+
+-#include <features.h> // for __BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+-__BEGIN_DECLS
+ #include "dumpvalue.h" /* An internal Xmlrpc-c header file ! */
+-__END_DECLS
++
++#ifdef __cplusplus
++}
++#endif
+
+
+ #include <xmlrpc-c/base.hpp>
+--
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0002-fix-formatting-issues.patch b/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0002-fix-formatting-issues.patch
new file mode 100644
index 000000000..9d92e4712
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0002-fix-formatting-issues.patch
@@ -0,0 +1,34 @@
+From 14f15cb0f03defa8efb4c8e2fece58e50655be6b Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Sun, 23 Jul 2017 22:20:29 -0400
+Subject: [PATCH] src/xmlrpc_server_abyss.c: fix formatting issues
+
+Fixed when compile with "-Wformat -Wformat-security -Werror=format-security":
+|src/xmlrpc_server_abyss.c:771:13: error: format not a string literal
+and no format arguments [-Werror=format-security]
+| xmlrpc_faultf(envP, error);
+| ^~~~~~~~~~~~~
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ src/xmlrpc_server_abyss.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/xmlrpc_server_abyss.c b/src/xmlrpc_server_abyss.c
+index 2388652..3843f10 100644
+--- a/src/xmlrpc_server_abyss.c
++++ b/src/xmlrpc_server_abyss.c
+@@ -768,7 +768,7 @@ createServer(xmlrpc_env * const envP,
+ ServerInit2(abyssServerP, &error);
+
+ if (error) {
+- xmlrpc_faultf(envP, error);
++ xmlrpc_faultf(envP, "%s", error);
+ xmlrpc_strfree(error);
+ }
+ }
+--
+2.8.1
+
diff --git a/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.31.0.bb b/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.31.0.bb
new file mode 100644
index 000000000..efa58f198
--- /dev/null
+++ b/import-layers/meta-openembedded/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.31.0.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "XML-RPC for C/C++ is programming libraries and related tools to help you \
+write an XML-RPC server or client in C or C++."
+
+HOMEPAGE = "http://xmlrpc-c.sourceforge.net/"
+LICENSE = "BSD & MIT"
+LIC_FILES_CHKSUM = "file://doc/COPYING;md5=aefbf81ba0750f02176b6f86752ea951"
+
+SRC_URI = "git://github.com/ensc/xmlrpc-c.git;branch=master \
+ file://0001-fix-compile-failure-against-musl-C-library.patch \
+ file://0002-fix-formatting-issues.patch \
+"
+SRCREV = "81443a9dc234cc275449dbc17867ad77ae189124"
+S = "${WORKDIR}/git"
+
+DEPENDS = "curl libxml2"
+RDEPENDS_${PN} = "curl perl"
+
+inherit cmake
+
+EXTRA_OECMAKE = "-D_lib:STRING=${baselib}"
+
+BBCLASSEXTEND = "native"
+
+TARGET_CFLAGS += "-Wno-narrowing"
OpenPOWER on IntegriCloud