aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jansa <Martin.Jansa@gmail.com>2018-10-02 13:10:17 +0000
committerMartin Jansa <Martin.Jansa@gmail.com>2018-10-09 16:41:43 +0000
commitfcdcf11a44a4917577650e9d8a19a95b3186fc6c (patch)
treed39bfaa81c9f308cbd61207cc868ddf36eec16f0
parent463fd3dff33457ba8fc519a2716f3270e054d533 (diff)
downloadmeta-openembedded-contrib-jansa/android.tar.gz
meta-openembedded-contrib-jansa/android.tar.bz2
meta-openembedded-contrib-jansa/android.zip
android-tools: upgrade to 9.0.0-r10jansa/android
* build it with ninja like Arch does in: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/android-tools&id=21f3ef02af9b2252129bee4d11b7740ce4b1d88f and import the patches from Arch * import few more patches from debian, Nonnull.patch, stdatomic.patch from https://salsa.debian.org/android-tools-team/android-platform-system-core/tree/e80c68d02a2fde9f351ac26e9feb984da1e8841a/debian/patches * and switch to boringssl, because with openssl10 it cannot be really used by anything, because openssl.cnf from openssl10-native will conflict with openssl.cnf installed to RSS by openssl-native, e.g.: DEBUG: Executing python function sstate_task_prefunc DEBUG: Python function sstate_task_prefunc finished DEBUG: Executing python function extend_recipe_sysroot NOTE: Direct dependencies are ['virtual:native:/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-devtools/e2fsprogs/e2fsprogs_1.44.3.bb:do_populate_sysroot', '/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-devtools/quilt/quilt-native_0.65.bb:do_populate_sysroot', '/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-devtools/gcc/gcc-cross_8.2.bb:do_populate_sysroot', '/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-devtools/gcc/gcc-runtime_8.2.bb:do_populate_sysroot', '/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-core/glibc/glibc_2.28.bb:do_populate_sysroot', 'virtual:native:/OE/build/owpb/webos-ports/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb:do_populate_sysroot', 'virtual:native:/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-devtools/rpm/rpm_4.14.2.bb:do_populate_sysroot', 'virtual:native:/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb:do_populate_sysroot', 'virtual:native:/OE/build/owpb/webos-ports/openembedded-core/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot'] ERROR: Error executing a python function in exec_python_func() autogenerated: The stack trace of python calls that resulted in this exception/failure was: File: 'exec_python_func() autogenerated', lineno: 2, function: <module> 0001: *** 0002:extend_recipe_sysroot(d) 0003: File: '/OE/build/owpb/webos-ports/openembedded-core/meta/classes/staging.bbclass', lineno: 553, function: extend_recipe_sysroot 0549: dest = newmanifest[l] 0550: if l.endswith("/"): 0551: staging_copydir(l, targetdir, dest, seendirs) 0552: continue *** 0553: staging_copyfile(l, targetdir, dest, postinsts, seendirs) 0554: 0555: bb.note("Installed into sysroot: %s" % str(msg_adding)) 0556: bb.note("Skipping as already exists in sysroot: %s" % str(msg_exists)) 0557: File: '/OE/build/owpb/webos-ports/openembedded-core/meta/classes/staging.bbclass', lineno: 151, function: staging_copyfile 0147: os.symlink(linkto, dest) 0148: #bb.warn(c) 0149: else: 0150: try: *** 0151: os.link(c, dest) 0152: except OSError as err: 0153: if err.errno == errno.EXDEV: 0154: bb.utils.copyfile(c, dest) 0155: else: Exception: FileExistsError: [Errno 17] File exists: '/OE/build/owpb/webos-ports/tmp-glibc/sysroots-components/x86_64/openssl-native/etc/ssl/openssl.cnf' -> '/OE/build/owpb/webos-ports/tmp-glibc/work/tissot-webos-linux/android-system-image-tissot/20180914-22-r0/recipe-sysroot-native/etc/ssl/openssl.cnf' DEBUG: Python function extend_recipe_sysroot finished ERROR: Function failed: extend_recipe_sysroot Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/Nonnull.patch19
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/adb.mk72
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk164
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0001-adb-remove-selinux-extensions.patch44
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0002-adb-Use-local-sockets-where-appropriate.patch70
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0003-adb-define-shell-command.patch29
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0004-adb-Fix-build-on-big-endian-systems.patch45
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch348
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0006-adb-Musl-fixes.patch131
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch24
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0008-adb-Allow-adbd-to-be-ran-as-root.patch21
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0009-mkbootimg-Add-dt-parameter-to-specify-DT-image.patch110
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0010-Use-linux-capability.h-on-linux-systems-too.patch23
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0011-Remove-bionic-specific-calls.patch64
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch50
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/ext4_utils.mk103
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/extras/0001-ext4_utils-remove-selinux-extensions.patch39
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch78
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/fastboot.mk89
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/fix_build_core.patch118
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/fix_build_e2fsprogs.patch83
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/fix_build_selinux.patch26
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/generate_build.rb398
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/gitignore59
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/log.do_compile.12223641
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg.mk29
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/stdatomic.patch54
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb161
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools_9.0.0.r10.bb117
29 files changed, 1456 insertions, 1753 deletions
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/Nonnull.patch b/meta-oe/recipes-devtools/android-tools/android-tools/Nonnull.patch
new file mode 100644
index 0000000000..28747feb30
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/Nonnull.patch
@@ -0,0 +1,19 @@
+Description: Bring Clang's _Nonnull keyword to GCC
+Author: Kai-Chung Yan
+--- a/adb/sysdeps.h
++++ b/adb/sysdeps.h
+@@ -66,11 +66,12 @@
+ #endif
+ #endif
+
++#define _Nonnull
++#define _Nullable
++
+ #ifdef _WIN32
+
+ // Clang-only nullability specifiers
+-#define _Nonnull
+-#define _Nullable
+
+ #include <ctype.h>
+ #include <direct.h>
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/adb.mk b/meta-oe/recipes-devtools/android-tools/android-tools/adb.mk
deleted file mode 100644
index 0687c22c17..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/adb.mk
+++ /dev/null
@@ -1,72 +0,0 @@
-# Makefile for adb
-
-SRCDIR ?= $(S)
-
-VPATH += $(SRCDIR)/system/core/adb
-adb_SRC_FILES += adb.c
-adb_SRC_FILES += console.c
-adb_SRC_FILES += transport.c
-adb_SRC_FILES += transport_local.c
-adb_SRC_FILES += transport_usb.c
-adb_SRC_FILES += commandline.c
-adb_SRC_FILES += adb_client.c
-adb_SRC_FILES += adb_auth_host.c
-adb_SRC_FILES += sockets.c
-adb_SRC_FILES += services.c
-adb_SRC_FILES += file_sync_client.c
-adb_SRC_FILES += get_my_path_linux.c
-adb_SRC_FILES += usb_linux.c
-adb_SRC_FILES += usb_vendors.c
-adb_SRC_FILES += fdevent.c
-adb_OBJS := $(adb_SRC_FILES:.c=.o)
-
-VPATH += $(SRCDIR)/system/core/libcutils
-libcutils_SRC_FILES += atomic.c
-libcutils_SRC_FILES += hashmap.c
-libcutils_SRC_FILES += native_handle.c
-libcutils_SRC_FILES += config_utils.c
-libcutils_SRC_FILES += cpu_info.c
-libcutils_SRC_FILES += load_file.c
-# libcutils_SRC_FILES += open_memstream.c
-# libcutils_SRC_FILES += strdup16to8.c
-# libcutils_SRC_FILES += strdup8to16.c
-# libcutils_SRC_FILES += record_stream.c
-# libcutils_SRC_FILES += process_name.c
-# libcutils_SRC_FILES += threads.c
-# libcutils_SRC_FILES += sched_policy.c
-# libcutils_SRC_FILES += iosched_policy.c
-libcutils_SRC_FILES += str_parms.c
-libcutils_SRC_FILES += fs.c
-libcutils_SRC_FILES += multiuser.c
-libcutils_SRC_FILES += socket_inaddr_any_server.c
-libcutils_SRC_FILES += socket_local_client.c
-libcutils_SRC_FILES += socket_local_server.c
-libcutils_SRC_FILES += socket_loopback_client.c
-libcutils_SRC_FILES += socket_loopback_server.c
-libcutils_SRC_FILES += socket_network_client.c
-libcutils_SRC_FILES += sockets.c
-libcutils_SRC_FILES += ashmem-host.c
-libcutils_SRC_FILES += dlmalloc_stubs.c
-libcutils_OBJS := $(libcutils_SRC_FILES:.c=.o)
-
-CFLAGS += -DANDROID
-CFLAGS += -DWORKAROUND_BUG6558362
-CFLAGS += -DADB_HOST=1
-CFLAGS += -D_XOPEN_SOURCE -D_GNU_SOURCE
-CFLAGS += -DANDROID_SMP=0
-CFLAGS += -I$(SRCDIR)/system/core/adb
-CFLAGS += -I$(SRCDIR)/system/core/include
-CFLAGS += -include $(SRCDIR)/build/core/combo/include/arch/$(android_arch)/AndroidConfig.h
-
-LIBS += libcutils.a -lpthread -lcrypto
-
-all: adb
-
-adb: libcutils.a $(adb_OBJS)
- $(CC) -o $@ $(LDFLAGS) $(adb_OBJS) $(LIBS)
-
-libcutils.a: $(libcutils_OBJS)
- $(AR) rcs $@ $(libcutils_OBJS)
-
-clean:
- $(RM) $(adb_OBJS) $(libcutils_OBJS) adb *.a
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk b/meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk
deleted file mode 100644
index 31452ae104..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/adbd.mk
+++ /dev/null
@@ -1,164 +0,0 @@
-# Makefile for adbd
-
-SRCDIR ?= $(S)
-
-VPATH += $(SRCDIR)/system/core/adb
-adbd_SRC_FILES += adb.c
-adbd_SRC_FILES += fdevent.c
-adbd_SRC_FILES += transport.c
-adbd_SRC_FILES += transport_local.c
-adbd_SRC_FILES += transport_usb.c
-adbd_SRC_FILES += adb_auth_client.c
-adbd_SRC_FILES += sockets.c
-adbd_SRC_FILES += services.c
-adbd_SRC_FILES += file_sync_service.c
-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)
-
-VPATH += $(SRCDIR)/system/core/liblog
-liblog_SRC_FILES += logd_write.c
-liblog_SRC_FILES += log_event_write.c
-liblog_SRC_FILES += logprint.c
-liblog_SRC_FILES += event_tag_map.c
-liblog_SRC_FILES += fake_log_device.c
-liblog_OBJS := $(liblog_SRC_FILES:.c=.o)
-
-VPATH += $(SRCDIR)/system/core/fs_mgr
-fs_mgr_SRC_FILES += fs_mgr_fstab.c
-fs_mgr_OBJS := $(fs_mgr_SRC_FILES:.c=.o)
-
-VPATH += $(SRCDIR)/system/core/libcutils
-libcutils_SRC_FILES += atomic.c
-libcutils_SRC_FILES += hashmap.c
-libcutils_SRC_FILES += native_handle.c
-libcutils_SRC_FILES += config_utils.c
-libcutils_SRC_FILES += cpu_info.c
-libcutils_SRC_FILES += load_file.c
-# libcutils_SRC_FILES += open_memstream.c
-# libcutils_SRC_FILES += strdup16to8.c
-# libcutils_SRC_FILES += strdup8to16.c
-# libcutils_SRC_FILES += record_stream.c
-# libcutils_SRC_FILES += process_name.c
-# libcutils_SRC_FILES += threads.c
-# libcutils_SRC_FILES += sched_policy.c
-# libcutils_SRC_FILES += iosched_policy.c
-libcutils_SRC_FILES += str_parms.c
-libcutils_SRC_FILES += fs.c
-libcutils_SRC_FILES += multiuser.c
-libcutils_SRC_FILES += socket_inaddr_any_server.c
-libcutils_SRC_FILES += socket_local_client.c
-libcutils_SRC_FILES += socket_local_server.c
-libcutils_SRC_FILES += socket_loopback_client.c
-libcutils_SRC_FILES += socket_loopback_server.c
-libcutils_SRC_FILES += socket_network_client.c
-libcutils_SRC_FILES += sockets.c
-libcutils_SRC_FILES += ashmem-host.c
-libcutils_SRC_FILES += dlmalloc_stubs.c
-libcutils_SRC_FILES += klog.c
-libcutils_SRC_FILES += properties.c
-libcutils_OBJS := $(libcutils_SRC_FILES:.c=.o)
-
-VPATH += $(SRCDIR)/external/libselinux/src
-libselinux_SRC_FILES += booleans.c
-libselinux_SRC_FILES += canonicalize_context.c
-libselinux_SRC_FILES += disable.c
-libselinux_SRC_FILES += enabled.c
-libselinux_SRC_FILES += fgetfilecon.c
-libselinux_SRC_FILES += fsetfilecon.c
-libselinux_SRC_FILES += getenforce.c
-libselinux_SRC_FILES += getfilecon.c
-libselinux_SRC_FILES += getpeercon.c
-libselinux_SRC_FILES += lgetfilecon.c
-libselinux_SRC_FILES += load_policy.c
-libselinux_SRC_FILES += lsetfilecon.c
-libselinux_SRC_FILES += policyvers.c
-libselinux_SRC_FILES += procattr.c
-libselinux_SRC_FILES += setenforce.c
-libselinux_SRC_FILES += setfilecon.c
-libselinux_SRC_FILES += context.c
-libselinux_SRC_FILES += mapping.c
-libselinux_SRC_FILES += stringrep.c
-libselinux_SRC_FILES += compute_create.c
-libselinux_SRC_FILES += compute_av.c
-libselinux_SRC_FILES += avc.c
-libselinux_SRC_FILES += avc_internal.c
-libselinux_SRC_FILES += avc_sidtab.c
-libselinux_SRC_FILES += get_initial_context.c
-libselinux_SRC_FILES += checkAccess.c
-libselinux_SRC_FILES += sestatus.c
-libselinux_SRC_FILES += deny_unknown.c
-
-libselinux_SRC_FILES += callbacks.c
-libselinux_SRC_FILES += check_context.c
-libselinux_SRC_FILES += freecon.c
-libselinux_SRC_FILES += init.c
-libselinux_SRC_FILES += label.c
-libselinux_SRC_FILES += label_file.c
-libselinux_SRC_FILES += label_android_property.c
-libselinux_OBJS := $(libselinux_SRC_FILES:.c=.o)
-
-VPATH += $(SRCDIR)/system/extras/ext4_utils
-libext4_utils_SRC_FILES += make_ext4fs.c
-libext4_utils_SRC_FILES += ext4fixup.c
-libext4_utils_SRC_FILES += ext4_utils.c
-libext4_utils_SRC_FILES += allocate.c
-libext4_utils_SRC_FILES += contents.c
-libext4_utils_SRC_FILES += extent.c
-libext4_utils_SRC_FILES += indirect.c
-libext4_utils_SRC_FILES += uuid.c
-libext4_utils_SRC_FILES += sha1.c
-libext4_utils_SRC_FILES += wipe.c
-libext4_utils_SRC_FILES += crc16.c
-libext4_utils_SRC_FILES += ext4_sb.c
-libext4_utils_OBJS := $(libext4_utils_SRC_FILES:.c=.o)
-
-CFLAGS += -std=gnu11
-CFLAGS += -DANDROID
-CFLAGS += -DADB_HOST=0
-CFLAGS += -D_XOPEN_SOURCE -D_GNU_SOURCE
-CFLAGS += -DALLOW_ADBD_ROOT=1
-CFLAGS += -DALLOW_ADBD_DISABLE_VERITY=1
-CFLAGS += -DPROP_NAME_MAX=32
-CFLAGS += -DPROP_VALUE_MAX=92
-CFLAGS += -DAUDITD_LOG_TAG=1003
-# CFLAGS += -DHOST
-CFLAGS += -DANDROID_SMP=0
-CFLAGS += -I$(SRCDIR)/system/core/adb
-CFLAGS += -I$(SRCDIR)/system/core/include
-CFLAGS += -I$(SRCDIR)/system/core/libsparse/include
-CFLAGS += -I$(SRCDIR)/system/extras/ext4_utils
-CFLAGS += -I$(SRCDIR)/system/core/fs_mgr/include
-CFLAGS += -I$(SRCDIR)/hardware/libhardware/include
-CFLAGS += -I$(SRCDIR)/external/libselinux/include
-CFLAGS += -include $(SRCDIR)/build/core/combo/include/arch/$(android_arch)/AndroidConfig.h
-
-LIBS += liblog.a libfs_mgr.a libcutils.a libselinux.a libext4_utils.a -lpthread -lbsd -lpcre -lresolv -lcrypto
-
-all: adbd
-
-adbd: liblog.a libfs_mgr.a libcutils.a libselinux.a libext4_utils.a $(adbd_OBJS)
- $(CC) -o $@ $(LDFLAGS) $(adbd_OBJS) $(LIBS)
-
-liblog.a: $(liblog_OBJS)
- $(AR) rcs $@ $(liblog_OBJS)
-
-libfs_mgr.a: $(fs_mgr_OBJS)
- $(AR) rcs $@ $(fs_mgr_OBJS)
-
-libcutils.a: $(libcutils_OBJS)
- $(AR) rcs $@ $(libcutils_OBJS)
-
-libselinux.a: $(libselinux_OBJS)
- export CFLAGS="-DANDROID -DHOST"
- $(AR) rcs $@ $(libselinux_OBJS)
-
-libext4_utils.a: $(libext4_utils_OBJS)
- $(AR) rcs $@ $(libext4_utils_OBJS)
-
-clean:
- $(RM) *.o *.a adbd
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0001-adb-remove-selinux-extensions.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0001-adb-remove-selinux-extensions.patch
deleted file mode 100644
index 7d20c50680..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0001-adb-remove-selinux-extensions.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 7b7200727413ca4a9bb132221c543ec033dffafa Mon Sep 17 00:00:00 2001
-From: Sergio Schvezov <sergio.schvezov@canonical.com>
-Date: Wed, 7 Sep 2016 12:58:47 +0300
-Subject: [PATCH] adb: remove selinux extensions
-
-* drop useless includes of Android SELINUX extensions
-* avoids having to clone another module
-* this should be sent upstream
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- adb/file_sync_service.c | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/adb/file_sync_service.c b/adb/file_sync_service.c
-index 7933858516..3cbd0cd863 100644
---- a/adb/file_sync_service.c
-+++ b/adb/file_sync_service.c
-@@ -26,7 +26,6 @@
-
- #include <errno.h>
- #include <private/android_filesystem_config.h>
--#include <selinux/android.h>
- #include "sysdeps.h"
-
- #define TRACE_TAG TRACE_SYNC
-@@ -73,7 +72,6 @@ static int mkdirs(char *name)
- *x = '/';
- return ret;
- }
-- selinux_android_restorecon(name, 0);
- }
- *x++ = '/';
- }
-@@ -251,7 +249,6 @@ static int handle_send_file(int s, char *path, uid_t uid,
- if(fd >= 0) {
- struct utimbuf u;
- adb_close(fd);
-- selinux_android_restorecon(path, 0);
- u.actime = timestamp;
- u.modtime = timestamp;
- utime(path, &u);
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0002-adb-Use-local-sockets-where-appropriate.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0002-adb-Use-local-sockets-where-appropriate.patch
deleted file mode 100644
index 3627110ad8..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0002-adb-Use-local-sockets-where-appropriate.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From d855f042ca09a358cebe2d3c1d29d512afd7ebb8 Mon Sep 17 00:00:00 2001
-From: Hilko Bengen <bengen@debian.org>
-Date: Wed, 7 Sep 2016 12:58:47 +0300
-Subject: [PATCH] adb: Use local sockets where appropriate
-
-Upstream-Status: Inappropriate
----
- adb/adb.c | 6 +++++-
- adb/adb_client.c | 5 +++--
- adb/transport_local.c | 3 ++-
- 3 files changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/adb/adb.c b/adb/adb.c
-index 10a1e0da26..027edd9359 100644
---- a/adb/adb.c
-+++ b/adb/adb.c
-@@ -1230,7 +1230,11 @@ int launch_server(int server_port)
- */
- void build_local_name(char* target_str, size_t target_size, int server_port)
- {
-- snprintf(target_str, target_size, "tcp:%d", server_port);
-+ if (gListenAll > 0) {
-+ snprintf(target_str, target_size, "tcp:%d", server_port);
-+ } else {
-+ snprintf(target_str, target_size, "local:%d", server_port);
-+ }
- }
-
- #if !ADB_HOST
-diff --git a/adb/adb_client.c b/adb/adb_client.c
-index eb1720d22c..a383faefe3 100644
---- a/adb/adb_client.c
-+++ b/adb/adb_client.c
-@@ -185,12 +185,12 @@ int _adb_connect(const char *service)
- strcpy(__adb_error, "service name too long");
- return -1;
- }
-- snprintf(tmp, sizeof tmp, "%04x", len);
-+ snprintf(tmp, sizeof tmp, "%d", __adb_server_port);
-
- if (__adb_server_name)
- fd = socket_network_client(__adb_server_name, __adb_server_port, SOCK_STREAM);
- else
-- fd = socket_loopback_client(__adb_server_port, SOCK_STREAM);
-+ fd = socket_local_client(tmp, ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM);
-
- if(fd < 0) {
- strcpy(__adb_error, "cannot connect to daemon");
-@@ -201,6 +201,7 @@ int _adb_connect(const char *service)
- return -1;
- }
-
-+ snprintf(tmp, sizeof tmp, "%04x", len);
- if(writex(fd, tmp, 4) || writex(fd, service, len)) {
- strcpy(__adb_error, "write failure during connection");
- adb_close(fd);
-diff --git a/adb/transport_local.c b/adb/transport_local.c
-index 948cc15812..71582a8c88 100644
---- a/adb/transport_local.c
-+++ b/adb/transport_local.c
-@@ -121,7 +121,8 @@ int local_connect_arbitrary_ports(int console_port, int adb_port)
- }
- #endif
- if (fd < 0) {
-- fd = socket_loopback_client(adb_port, SOCK_STREAM);
-+ snprintf(buf, sizeof buf, "%d", adb_port);
-+ fd = socket_local_client(buf, ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM);
- }
-
- if (fd >= 0) {
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0003-adb-define-shell-command.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0003-adb-define-shell-command.patch
deleted file mode 100644
index cf1d9cbc3d..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0003-adb-define-shell-command.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 4421c2e19946dcd651fd8ac022b96627fc526149 Mon Sep 17 00:00:00 2001
-From: Fathi Boudra <fabo@debian.org>
-Date: Wed, 7 Sep 2016 12:58:47 +0300
-Subject: [PATCH] adb: define shell command
-
-we intend to run on Linux system so the shell is always /bin/sh,
-for the host or the target.
-
-Upstream-Status: Inappropriate
----
- adb/services.c | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/adb/services.c b/adb/services.c
-index 21b08dc201..d44b0c5068 100644
---- a/adb/services.c
-+++ b/adb/services.c
-@@ -299,11 +299,7 @@ static int create_subproc_raw(const char *cmd, const char *arg0, const char *arg
- }
- #endif /* !ABD_HOST */
-
--#if ADB_HOST
- #define SHELL_COMMAND "/bin/sh"
--#else
--#define SHELL_COMMAND "/system/bin/sh"
--#endif
-
- #if !ADB_HOST
- static void subproc_waiter_service(int fd, void *cookie)
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0004-adb-Fix-build-on-big-endian-systems.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0004-adb-Fix-build-on-big-endian-systems.patch
deleted file mode 100644
index 79e9d4d3b2..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0004-adb-Fix-build-on-big-endian-systems.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 548b8ca62c64a16305929e2eaf3d546d48de9c25 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Tue, 21 Feb 2017 19:46:24 +0100
-Subject: [PATCH] adb: Fix build on big endian systems
-
-The usb_linux_client.c file defines cpu_to_le16/32 by using the C
-library htole16/32 function calls. However, cpu_to_le16/32 are used
-when initializing structures, i.e in a context where a function call
-is not allowed.
-
-It works fine on little endian systems because htole16/32 are defined
-by the C library as no-ops. But on big-endian systems, they are
-actually doing something, which might involve calling a function,
-causing build failures.
-
-To solve this, we simply open-code cpu_to_le16/32 in a way that allows
-them to be used when initializing structures.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- adb/usb_linux_client.c | 11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/adb/usb_linux_client.c b/adb/usb_linux_client.c
-index 8426e0ea14..6e8b5bbbd2 100644
---- a/adb/usb_linux_client.c
-+++ b/adb/usb_linux_client.c
-@@ -34,8 +34,15 @@
- #define MAX_PACKET_SIZE_FS 64
- #define MAX_PACKET_SIZE_HS 512
-
--#define cpu_to_le16(x) htole16(x)
--#define cpu_to_le32(x) htole32(x)
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+# define cpu_to_le16(x) (x)
-+# define cpu_to_le32(x) (x)
-+#else
-+# define cpu_to_le16(x) ((((x) >> 8) & 0xffu) | (((x) & 0xffu) << 8))
-+# define cpu_to_le32(x) \
-+ ((((x) & 0xff000000u) >> 24) | (((x) & 0x00ff0000u) >> 8) | \
-+ (((x) & 0x0000ff00u) << 8) | (((x) & 0x000000ffu) << 24))
-+#endif
-
- struct usb_handle
- {
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch
deleted file mode 100644
index fcd4ae2388..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch
+++ /dev/null
@@ -1,348 +0,0 @@
-From 753bcb5971401b82fb2e6197d31c9e386f6d0392 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] adb: add base64 implementation
-
-musl needs it
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- adb/adb_auth_client.c | 2 +-
- adb/base64.c | 315 ++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 316 insertions(+), 1 deletion(-)
- create mode 100644 adb/base64.c
-
-diff --git a/adb/adb_auth_client.c b/adb/adb_auth_client.c
-index 55e9dcad19..104b413b8b 100644
---- a/adb/adb_auth_client.c
-+++ b/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/adb/base64.c b/adb/base64.c
-new file mode 100644
-index 0000000000..95da284d0d
---- /dev/null
-+++ b/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);
-+}
-+
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0006-adb-Musl-fixes.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0006-adb-Musl-fixes.patch
deleted file mode 100644
index b5d383f383..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0006-adb-Musl-fixes.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From 62d957a1271c88ec08d67984fbe31601f0bd41a9 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] 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>
----
- adb/adb.h | 2 ++
- adb/disable_verity_service.c | 13 ++++++++-----
- adb/framebuffer_service.c | 7 ++++---
- adb/sysdeps.h | 12 ++++++------
- 4 files changed, 20 insertions(+), 14 deletions(-)
-
-diff --git a/adb/adb.h b/adb/adb.h
-index 44e5981bdc..bcdc49f63c 100644
---- a/adb/adb.h
-+++ b/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/adb/disable_verity_service.c b/adb/disable_verity_service.c
-index ed3da52108..29fa3d65a9 100644
---- a/adb/disable_verity_service.c
-+++ b/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/adb/framebuffer_service.c b/adb/framebuffer_service.c
-index 8cbe8403cc..8f0ccfb7aa 100644
---- a/adb/framebuffer_service.c
-+++ b/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/adb/sysdeps.h b/adb/sysdeps.h
-index cc1f839e9f..ea39ac39cc 100644
---- a/adb/sysdeps.h
-+++ b/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)
- {
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch
deleted file mode 100644
index e02a95687f..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From de393bba41c8feff932c77d6c30233945f380d42 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Sat, 11 Aug 2018 13:23:37 +0000
-Subject: [PATCH] adb: usb_linux.c: fix build with glibc-2.28
-
-* include sysmacros for major, minor
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
----
- adb/usb_linux.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/adb/usb_linux.c b/adb/usb_linux.c
-index f16bdd0361..c8a7732441 100644
---- a/adb/usb_linux.c
-+++ b/adb/usb_linux.c
-@@ -22,6 +22,7 @@
- #include <sys/ioctl.h>
- #include <sys/types.h>
- #include <sys/time.h>
-+#include <sys/sysmacros.h>
- #include <dirent.h>
- #include <fcntl.h>
- #include <errno.h>
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0008-adb-Allow-adbd-to-be-ran-as-root.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0008-adb-Allow-adbd-to-be-ran-as-root.patch
deleted file mode 100644
index 7d223e05f1..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0008-adb-Allow-adbd-to-be-ran-as-root.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 3a788e9168c9b9eac66c4fa479413f4a95c61be4 Mon Sep 17 00:00:00 2001
-From: Florent Revest <revestflo@gmail.com>
-Date: Mon, 30 Oct 2017 21:05:46 +0100
-Subject: [PATCH] adb: Allow adbd to be ran as root
-
----
- adb/adb.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/adb/adb.c b/adb/adb.c
-index 027edd9359..e0f7ecde45 100644
---- a/adb/adb.c
-+++ b/adb/adb.c
-@@ -1271,6 +1271,7 @@ static int should_drop_privileges() {
- int secure = 0;
- char value[PROPERTY_VALUE_MAX];
-
-+ return 0;
- /* run adbd in secure mode if ro.secure is set and
- ** we are not in the emulator
- */
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0009-mkbootimg-Add-dt-parameter-to-specify-DT-image.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0009-mkbootimg-Add-dt-parameter-to-specify-DT-image.patch
deleted file mode 100644
index a4dc6e1e35..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0009-mkbootimg-Add-dt-parameter-to-specify-DT-image.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From dd195778a9930b7967b21a3b8eb390b70253dbad Mon Sep 17 00:00:00 2001
-From: David Ng <dave@codeaurora.org>
-Date: Fri, 27 Jul 2012 17:15:03 -0700
-Subject: [PATCH] mkbootimg: Add --dt parameter to specify DT image
-
-New optional --dt parameter to specify a kernel device
-tree image.
-
-Upstream-Status: Inappropriate
----
- mkbootimg/bootimg.h | 7 +++++--
- mkbootimg/mkbootimg.c | 21 +++++++++++++++++++++
- 2 files changed, 26 insertions(+), 2 deletions(-)
-
-diff --git a/mkbootimg/bootimg.h b/mkbootimg/bootimg.h
-index 9171d85a7b..308c537d6b 100644
---- a/mkbootimg/bootimg.h
-+++ b/mkbootimg/bootimg.h
-@@ -41,8 +41,8 @@ struct boot_img_hdr
-
- unsigned tags_addr; /* physical addr for kernel tags */
- unsigned page_size; /* flash page size we assume */
-- unsigned unused[2]; /* future expansion: should be 0 */
--
-+ unsigned dt_size; /* device tree in bytes */
-+ unsigned unused; /* future expansion: should be 0 */
- unsigned char name[BOOT_NAME_SIZE]; /* asciiz product name */
-
- unsigned char cmdline[BOOT_ARGS_SIZE];
-@@ -64,10 +64,13 @@ struct boot_img_hdr
- ** +-----------------+
- ** | second stage | o pages
- ** +-----------------+
-+** | device tree | p pages
-+** +-----------------+
- **
- ** n = (kernel_size + page_size - 1) / page_size
- ** m = (ramdisk_size + page_size - 1) / page_size
- ** o = (second_size + page_size - 1) / page_size
-+** p = (dt_size + page_size - 1) / page_size
- **
- ** 0. all entities are page_size aligned in flash
- ** 1. kernel and ramdisk are required (size != 0)
-diff --git a/mkbootimg/mkbootimg.c b/mkbootimg/mkbootimg.c
-index fc92b4dc30..658052cdf2 100644
---- a/mkbootimg/mkbootimg.c
-+++ b/mkbootimg/mkbootimg.c
-@@ -65,6 +65,7 @@ int usage(void)
- " [ --board <boardname> ]\n"
- " [ --base <address> ]\n"
- " [ --pagesize <pagesize> ]\n"
-+ " [ --dt <filename> ]\n"
- " -o|--output <filename>\n"
- );
- return 1;
-@@ -105,6 +106,8 @@ int main(int argc, char **argv)
- char *cmdline = "";
- char *bootimg = 0;
- char *board = "";
-+ char *dt_fn = 0;
-+ void *dt_data = 0;
- unsigned pagesize = 2048;
- int fd;
- SHA_CTX ctx;
-@@ -158,6 +161,8 @@ int main(int argc, char **argv)
- fprintf(stderr,"error: unsupported page size %d\n", pagesize);
- return -1;
- }
-+ } else if(!strcmp(arg, "--dt")) {
-+ dt_fn = val;
- } else {
- return usage();
- }
-@@ -232,6 +237,14 @@ int main(int argc, char **argv)
- }
- }
-
-+ if(dt_fn) {
-+ dt_data = load_file(dt_fn, &hdr.dt_size);
-+ if (dt_data == 0) {
-+ fprintf(stderr,"error: could not load device tree image '%s'\n", dt_fn);
-+ return 1;
-+ }
-+ }
-+
- /* put a hash of the contents in the header so boot images can be
- * differentiated based on their first 2k.
- */
-@@ -242,6 +255,10 @@ int main(int argc, char **argv)
- SHA_update(&ctx, &hdr.ramdisk_size, sizeof(hdr.ramdisk_size));
- SHA_update(&ctx, second_data, hdr.second_size);
- SHA_update(&ctx, &hdr.second_size, sizeof(hdr.second_size));
-+ if(dt_data) {
-+ SHA_update(&ctx, dt_data, hdr.dt_size);
-+ SHA_update(&ctx, &hdr.dt_size, sizeof(hdr.dt_size));
-+ }
- sha = SHA_final(&ctx);
- memcpy(hdr.id, sha,
- SHA_DIGEST_SIZE > sizeof(hdr.id) ? sizeof(hdr.id) : SHA_DIGEST_SIZE);
-@@ -266,6 +283,10 @@ int main(int argc, char **argv)
- if(write_padding(fd, pagesize, hdr.second_size)) goto fail;
- }
-
-+ if(dt_data) {
-+ if(write(fd, dt_data, hdr.dt_size) != (ssize_t) hdr.dt_size) goto fail;
-+ if(write_padding(fd, pagesize, hdr.dt_size)) goto fail;
-+ }
- return 0;
-
- fail:
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0010-Use-linux-capability.h-on-linux-systems-too.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0010-Use-linux-capability.h-on-linux-systems-too.patch
deleted file mode 100644
index 2c607ff67c..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0010-Use-linux-capability.h-on-linux-systems-too.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From ef743c9c3c7452ae904a5c343ee2b759ab3a87cb Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Lo=C3=AFc=20Minier?= <loic.minier@ubuntu.com>
-Date: Wed, 7 Sep 2016 12:58:47 +0300
-Subject: [PATCH] Use linux/capability.h on linux systems too
-
-Upstream-Status: Inappropriate
----
- include/private/android_filesystem_config.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/private/android_filesystem_config.h b/include/private/android_filesystem_config.h
-index 2f528b95c8..3e0b00928e 100644
---- a/include/private/android_filesystem_config.h
-+++ b/include/private/android_filesystem_config.h
-@@ -27,7 +27,7 @@
- #include <sys/types.h>
- #include <stdint.h>
-
--#ifdef HAVE_ANDROID_OS
-+#if defined(HAVE_ANDROID_OS) || defined(__linux__)
- #include <linux/capability.h>
- #else
- #include "android_filesystem_capability.h"
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0011-Remove-bionic-specific-calls.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0011-Remove-bionic-specific-calls.patch
deleted file mode 100644
index 5b18f461a3..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0011-Remove-bionic-specific-calls.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 9eff8799831961c0edf6e37e5d4cbf43baa7c748 Mon Sep 17 00:00:00 2001
-From: Fathi Boudra <fabo@debian.org>
-Date: Wed, 7 Sep 2016 12:58:47 +0300
-Subject: [PATCH] Remove bionic specific calls
-
-Upstream-Status: Inappropriate
----
- include/cutils/properties.h | 1 -
- libcutils/properties.c | 2 +-
- liblog/logd_write.c | 5 +++++
- 3 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/include/cutils/properties.h b/include/cutils/properties.h
-index 798db8b36f..7d01f28d6e 100644
---- a/include/cutils/properties.h
-+++ b/include/cutils/properties.h
-@@ -19,7 +19,6 @@
-
- #include <sys/cdefs.h>
- #include <stddef.h>
--#include <sys/system_properties.h>
- #include <stdint.h>
-
- #ifdef __cplusplus
-diff --git a/libcutils/properties.c b/libcutils/properties.c
-index b283658aa4..4151e7882c 100644
---- a/libcutils/properties.c
-+++ b/libcutils/properties.c
-@@ -104,10 +104,10 @@ int32_t property_get_int32(const char *key, int32_t default_value) {
- return (int32_t)property_get_imax(key, INT32_MIN, INT32_MAX, default_value);
- }
-
-+#undef HAVE_LIBC_SYSTEM_PROPERTIES
- #ifdef HAVE_LIBC_SYSTEM_PROPERTIES
-
- #define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
--#include <sys/_system_properties.h>
-
- int property_set(const char *key, const char *value)
- {
-diff --git a/liblog/logd_write.c b/liblog/logd_write.c
-index b2668cedb7..f5a44fe901 100644
---- a/liblog/logd_write.c
-+++ b/liblog/logd_write.c
-@@ -23,6 +23,7 @@
- #include <stdlib.h>
- #include <string.h>
- #include <sys/stat.h>
-+#include <sys/syscall.h>
- #include <sys/types.h>
- #if (FAKE_LOG_DEVICE == 0)
- #include <sys/socket.h>
-@@ -205,7 +206,11 @@ static int __write_to_log_kernel(log_id_t log_id, struct iovec *vec, size_t nr)
- realtime_ts.tv_nsec = ts.tv_nsec;
-
- log_id_buf = log_id;
-+#ifdef __BIONIC__
- tid = gettid();
-+#else
-+ tid = (pid_t) syscall(__NR_gettid);
-+#endif
-
- newVec[0].iov_base = (unsigned char *) &log_id_buf;
- newVec[0].iov_len = sizeof_log_id_t;
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch
deleted file mode 100644
index b0feb65921..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From cd4525d760c6f88c9bf85f7bf488da79cd0d3264 Mon Sep 17 00:00:00 2001
-From: Fathi Boudra <fabo@debian.org>
-Date: Wed, 7 Sep 2016 12:58:47 +0300
-Subject: [PATCH] Fix implicit declaration of stlcat/strlcopy functions
-
-Upstream-Status: Inappropriate
----
- adb/adb.c | 1 +
- fs_mgr/fs_mgr_fstab.c | 2 +-
- include/cutils/sockets.h | 2 +-
- 3 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/adb/adb.c b/adb/adb.c
-index e0f7ecde45..aaefd9b401 100644
---- a/adb/adb.c
-+++ b/adb/adb.c
-@@ -41,6 +41,7 @@
- #include <sys/prctl.h>
- #include <getopt.h>
- #include <selinux/selinux.h>
-+#include <grp.h>
- #else
- #include "usb_vendors.h"
- #endif
-diff --git a/fs_mgr/fs_mgr_fstab.c b/fs_mgr/fs_mgr_fstab.c
-index edd9591164..9ddb4643b5 100644
---- a/fs_mgr/fs_mgr_fstab.c
-+++ b/fs_mgr/fs_mgr_fstab.c
-@@ -17,7 +17,7 @@
- #include <ctype.h>
- #include <stdio.h>
- #include <stdlib.h>
--#include <string.h>
-+#include <bsd/string.h>
- #include <sys/mount.h>
-
- #include "fs_mgr_priv.h"
-diff --git a/include/cutils/sockets.h b/include/cutils/sockets.h
-index daf43ec944..d3270c69e7 100644
---- a/include/cutils/sockets.h
-+++ b/include/cutils/sockets.h
-@@ -19,7 +19,7 @@
-
- #include <errno.h>
- #include <stdlib.h>
--#include <string.h>
-+#include <bsd/string.h>
- #include <stdbool.h>
-
- #ifdef HAVE_WINSOCK
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/ext4_utils.mk b/meta-oe/recipes-devtools/android-tools/android-tools/ext4_utils.mk
deleted file mode 100644
index c18aa9c4d2..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/ext4_utils.mk
+++ /dev/null
@@ -1,103 +0,0 @@
-# Makefile for ext4_utils
-
-SRCDIR ?= $(S)
-
-VPATH += $(SRCDIR)/system/extras/ext4_utils
-make_ext4fs_SRC_FILES += make_ext4fs_main.c
-make_ext4fs_SRC_FILES += canned_fs_config.c
-make_ext4fs_OBJS := $(make_ext4fs_SRC_FILES:.c=.o)
-
-ext2simg_SRC_FILES += ext2simg.c
-ext2simg_OBJS := $(ext2simg_SRC_FILES:.c=.o)
-
-ext4fixup_SRC_FILES += ext4fixup_main.c
-ext4fixup_OBJS := $(ext4fixup_SRC_FILES:.c=.o)
-
-libext4_utils_SRC_FILES += make_ext4fs.c
-libext4_utils_SRC_FILES += ext4fixup.c
-libext4_utils_SRC_FILES += ext4_utils.c
-libext4_utils_SRC_FILES += allocate.c
-libext4_utils_SRC_FILES += contents.c
-libext4_utils_SRC_FILES += extent.c
-libext4_utils_SRC_FILES += indirect.c
-libext4_utils_SRC_FILES += uuid.c
-libext4_utils_SRC_FILES += sha1.c
-libext4_utils_SRC_FILES += wipe.c
-libext4_utils_SRC_FILES += crc16.c
-libext4_utils_SRC_FILES += ext4_sb.c
-libext4_utils_OBJS := $(libext4_utils_SRC_FILES:.c=.o)
-
-VPATH += $(SRCDIR)/system/core/libsparse
-simg2img_SRC_FILES += simg2img.c
-simg2img_SRC_FILES += sparse_crc32.c
-simg2img_OBJS := $(simg2img_SRC_FILES:.c=.o)
-
-img2simg_SRC_FILES += img2simg.c
-img2simg_OBJS := $(img2simg_SRC_FILES:.c=.o)
-
-simg2simg_SRC_FILES += simg2simg.c
-simg2simg_SRC_FILES += sparse_crc32.c
-simg2simg_OBJS := $(simg2simg_SRC_FILES:.c=.o)
-
-libsparse_SRC_FILES += backed_block.c
-libsparse_SRC_FILES += output_file.c
-libsparse_SRC_FILES += sparse.c
-libsparse_SRC_FILES += sparse_crc32.c
-libsparse_SRC_FILES += sparse_err.c
-libsparse_SRC_FILES += sparse_read.c
-libsparse_OBJS := $(libsparse_SRC_FILES:.c=.o)
-
-VPATH += $(SRCDIR)/external/libselinux/src
-libselinux_SRC_FILES += callbacks.c
-libselinux_SRC_FILES += check_context.c
-libselinux_SRC_FILES += freecon.c
-libselinux_SRC_FILES += init.c
-libselinux_SRC_FILES += label.c
-libselinux_SRC_FILES += label_file.c
-libselinux_SRC_FILES += label_android_property.c
-libselinux_OBJS := $(libselinux_SRC_FILES:.c=.o)
-
-CFLAGS += -DANDROID
-CFLAGS += -DHOST
-CFLAGS += -I$(SRCDIR)/system/extras/ext4_utils
-CFLAGS += -I$(SRCDIR)/system/core/include
-CFLAGS += -I$(SRCDIR)/system/core/libsparse/include
-CFLAGS += -I$(SRCDIR)/external/libselinux/include
-CFLAGS += -include $(SRCDIR)/build/core/combo/include/arch/$(android_arch)/AndroidConfig.h
-
-all: make_ext4fs ext2simg ext4fixup simg2img img2simg simg2simg
-
-make_ext4fs: libext4_utils.a libsparse.a libselinux.a $(make_ext4fs_OBJS)
- $(CC) -o $@ $(LDFLAGS) $(make_ext4fs_OBJS) \
- libext4_utils.a libsparse.a libselinux.a -lz -lpcre
-
-ext2simg: libext4_utils.a libselinux.a libsparse.a $(ext2simg_OBJS)
- $(CC) -o $@ $(LDFLAGS) $(ext2simg_OBJS) \
- libext4_utils.a libselinux.a libsparse.a -lz -lpcre
-
-ext4fixup: libext4_utils.a libsparse.a $(ext4fixup_OBJS)
- $(CC) -o $@ $(LDFLAGS) $(ext4fixup_OBJS) libext4_utils.a libsparse.a -lz
-
-simg2img: libsparse.a $(simg2img_OBJS)
- $(CC) -o $@ $(LDFLAGS) $(simg2img_OBJS) libsparse.a -lz
-
-img2simg: libsparse.a $(img2simg_OBJS)
- $(CC) -o $@ $(LDFLAGS) $(img2simg_OBJS) libsparse.a -lz
-
-simg2simg: libsparse.a $(simg2simg_OBJS)
- $(CC) -o $@ $(LDFLAGS) $(simg2simg_OBJS) libsparse.a -lz
-
-libext4_utils.a: $(libext4_utils_OBJS)
- $(AR) rcs $@ $(libext4_utils_OBJS)
-
-libsparse.a: $(libsparse_OBJS)
- $(AR) rcs $@ $(libsparse_OBJS)
-
-libselinux.a: $(libselinux_OBJS)
- $(AR) rcs $@ $(libselinux_OBJS)
-
-clean:
- $(RM) $(make_ext4fs_OBJS) $(ext2simg_OBJS) $(ext4fixup_OBJS) \
- $(simg2img_OBJS) $(img2simg_OBJS) $(simg2simg_OBJS) \
- $(libext4_utils_OBJS) $(libsparse_OBJS) $(libselinux_OBJS) \
- make_ext4fs ext2simg ext4fixup simg2img img2simg simg2simg *.a
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/extras/0001-ext4_utils-remove-selinux-extensions.patch b/meta-oe/recipes-devtools/android-tools/android-tools/extras/0001-ext4_utils-remove-selinux-extensions.patch
deleted file mode 100644
index 4a19a5d65a..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/extras/0001-ext4_utils-remove-selinux-extensions.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 354604da9d152f1931e91991d3f34197fc8fc759 Mon Sep 17 00:00:00 2001
-From: Sergio Schvezov <sergio.schvezov@canonical.com>
-Date: Tue, 2 Oct 2018 16:36:54 +0000
-Subject: [PATCH] ext4_utils: remove selinux extensions
-
-* drop useless includes of Android SELINUX extensions
-* avoids having to clone another module
-* this should be sent upstream
-
-Upstream-Status: Inappropriate
----
- ext4_utils/make_ext4fs.c | 1 -
- ext4_utils/make_ext4fs_main.c | 1 -
- 2 files changed, 2 deletions(-)
-
-diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c
-index 2f89ae8a0..732afbed7 100644
---- a/ext4_utils/make_ext4fs.c
-+++ b/ext4_utils/make_ext4fs.c
-@@ -62,7 +62,6 @@
-
- #include <selinux/selinux.h>
- #include <selinux/label.h>
--#include <selinux/android.h>
-
- #define O_BINARY 0
-
-diff --git a/ext4_utils/make_ext4fs_main.c b/ext4_utils/make_ext4fs_main.c
-index a6c5f6160..f8e7b9da9 100644
---- a/ext4_utils/make_ext4fs_main.c
-+++ b/ext4_utils/make_ext4fs_main.c
-@@ -32,7 +32,6 @@
- #ifndef USE_MINGW
- #include <selinux/selinux.h>
- #include <selinux/label.h>
--#include <selinux/android.h>
- #else
- struct selabel_handle;
- #endif
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch b/meta-oe/recipes-devtools/android-tools/android-tools/extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch
deleted file mode 100644
index 3b50ffbf36..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From b9254539811ce912bfd16dd1d185eba7a10cceff Mon Sep 17 00:00:00 2001
-From: Markus Mayer <mmayer@mmayer.net>
-Date: Wed, 7 Sep 2016 12:58:47 +0300
-Subject: [PATCH] ext4_utils: add -o argument to preserve ownership
-
-See also https://android-review.googlesource.com/#/c/100312/
-
-Upstream-Status: Inappropriate
----
- ext4_utils/make_ext4fs.c | 6 ++++++
- ext4_utils/make_ext4fs_main.c | 10 ++++++++--
- 2 files changed, 14 insertions(+), 2 deletions(-)
-
-diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c
-index 732afbed7..2cbf04399 100644
---- a/ext4_utils/make_ext4fs.c
-+++ b/ext4_utils/make_ext4fs.c
-@@ -67,6 +67,8 @@
-
- #endif
-
-+int preserve_owner = 0;
-+
- /* TODO: Not implemented:
- Allocating blocks in the same block group as the file inode
- Hash or binary tree directories
-@@ -185,6 +187,10 @@ static u32 build_directory_structure(const char *full_path, const char *dir_path
- } else {
- dentries[i].mtime = fixed_time;
- }
-+ if (preserve_owner) {
-+ dentries[i].uid = stat.st_uid;
-+ dentries[i].gid = stat.st_gid;
-+ }
- uint64_t capabilities;
- if (fs_config_func != NULL) {
- #ifdef ANDROID
-diff --git a/ext4_utils/make_ext4fs_main.c b/ext4_utils/make_ext4fs_main.c
-index f8e7b9da9..e82d43277 100644
---- a/ext4_utils/make_ext4fs_main.c
-+++ b/ext4_utils/make_ext4fs_main.c
-@@ -47,13 +47,15 @@ struct selabel_handle;
- extern struct fs_info info;
-
-
-+extern int preserve_owner;
-+
- static void usage(char *path)
- {
- fprintf(stderr, "%s [ -l <len> ] [ -j <journal size> ] [ -b <block_size> ]\n", basename(path));
- fprintf(stderr, " [ -g <blocks per group> ] [ -i <inodes> ] [ -I <inode size> ]\n");
- fprintf(stderr, " [ -L <label> ] [ -f ] [ -a <android mountpoint> ]\n");
- fprintf(stderr, " [ -S file_contexts ] [ -C fs_config ] [ -T timestamp ]\n");
-- fprintf(stderr, " [ -z | -s ] [ -w ] [ -c ] [ -J ] [ -v ] [ -B <block_list_file> ]\n");
-+ fprintf(stderr, " [ -z | -s ] [ -w ] [ -c ] [ -J ] [ -o ] [ -v ] [ -B <block_list_file> ]\n");
- fprintf(stderr, " <filename> [<directory>]\n");
- }
-
-@@ -79,7 +81,7 @@ int main(int argc, char **argv)
- struct selinux_opt seopts[] = { { SELABEL_OPT_PATH, "" } };
- #endif
-
-- while ((opt = getopt(argc, argv, "l:j:b:g:i:I:L:a:S:T:C:B:fwzJsctv")) != -1) {
-+ while ((opt = getopt(argc, argv, "l:j:b:g:i:I:L:a:S:T:C:B:fwzJsctov")) != -1) {
- switch (opt) {
- case 'l':
- info.len = parse_num(optarg);
-@@ -142,6 +144,10 @@ int main(int argc, char **argv)
- }
- #endif
- break;
-+ case 'o':
-+ preserve_owner = 1;
-+ printf("Warning: Enabling 'preserve ownership', this is an unofficial feature!\n");
-+ break;
- case 'v':
- verbose = 1;
- break;
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/fastboot.mk b/meta-oe/recipes-devtools/android-tools/android-tools/fastboot.mk
deleted file mode 100644
index b9ba95f38a..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/fastboot.mk
+++ /dev/null
@@ -1,89 +0,0 @@
-# Makefile for fastboot
-
-SRCDIR ?= $(S)
-
-VPATH += $(SRCDIR)/system/core/fastboot
-fastboot_SRC_FILES += protocol.c
-fastboot_SRC_FILES += engine.c
-fastboot_SRC_FILES += bootimg.c
-fastboot_SRC_FILES += fastboot.c
-fastboot_SRC_FILES += util.c
-fastboot_SRC_FILES += fs.c
-fastboot_SRC_FILES += usb_linux.c
-fastboot_SRC_FILES += util_linux.c
-fastboot_OBJS := $(fastboot_SRC_FILES:.c=.o)
-
-VPATH += $(SRCDIR)/system/core/libzipfile
-libzipfile_SRC_FILES += centraldir.c
-libzipfile_SRC_FILES += zipfile.c
-libzipfile_OBJS := $(libzipfile_SRC_FILES:.c=.o)
-
-VPATH += $(SRCDIR)/system/extras/ext4_utils
-libext4_utils_SRC_FILES += make_ext4fs.c
-libext4_utils_SRC_FILES += ext4fixup.c
-libext4_utils_SRC_FILES += ext4_utils.c
-libext4_utils_SRC_FILES += allocate.c
-libext4_utils_SRC_FILES += contents.c
-libext4_utils_SRC_FILES += extent.c
-libext4_utils_SRC_FILES += indirect.c
-libext4_utils_SRC_FILES += uuid.c
-libext4_utils_SRC_FILES += sha1.c
-libext4_utils_SRC_FILES += wipe.c
-libext4_utils_SRC_FILES += crc16.c
-libext4_utils_SRC_FILES += ext4_sb.c
-libext4_utils_OBJS := $(libext4_utils_SRC_FILES:.c=.o)
-
-VPATH += $(SRCDIR)/system/core/libsparse
-libsparse_SRC_FILES += backed_block.c
-libsparse_SRC_FILES += output_file.c
-libsparse_SRC_FILES += sparse.c
-libsparse_SRC_FILES += sparse_crc32.c
-libsparse_SRC_FILES += sparse_err.c
-libsparse_SRC_FILES += sparse_read.c
-libsparse_OBJS := $(libsparse_SRC_FILES:.c=.o)
-
-VPATH += $(SRCDIR)/external/libselinux/src
-libselinux_SRC_FILES += callbacks.c
-libselinux_SRC_FILES += check_context.c
-libselinux_SRC_FILES += freecon.c
-libselinux_SRC_FILES += init.c
-libselinux_SRC_FILES += label.c
-libselinux_SRC_FILES += label_file.c
-libselinux_SRC_FILES += label_android_property.c
-libselinux_OBJS := $(libselinux_SRC_FILES:.c=.o)
-
-CFLAGS += -std=gnu11
-CFLAGS += -DANDROID
-# CFLAGS += -DUSE_F2FS
-CFLAGS += -DHOST
-CFLAGS += -I$(SRCDIR)/system/core/fastboot
-CFLAGS += -I$(SRCDIR)/system/core/include
-CFLAGS += -I$(SRCDIR)/system/core/mkbootimg
-CFLAGS += -I$(SRCDIR)/system/extras/ext4_utils
-CFLAGS += -I$(SRCDIR)/system/extras/f2fs_utils
-CFLAGS += -I$(SRCDIR)/system/core/libsparse/include
-CFLAGS += -I$(SRCDIR)/external/libselinux/include
-CFLAGS += -include $(SRCDIR)/build/core/combo/include/arch/$(android_arch)/AndroidConfig.h
-
-LIBS += libzipfile.a libext4_utils.a libsparse.a libselinux.a -lz -lpcre
-
-all: fastboot
-
-fastboot: libzipfile.a libext4_utils.a libsparse.a libselinux.a $(fastboot_OBJS)
- $(CC) -o $@ $(LDFLAGS) $(fastboot_OBJS) $(LIBS)
-
-libzipfile.a: $(libzipfile_OBJS)
- $(AR) rcs $@ $(libzipfile_OBJS)
-
-libext4_utils.a: $(libext4_utils_OBJS)
- $(AR) rcs $@ $(libext4_utils_OBJS)
-
-libsparse.a: $(libsparse_OBJS)
- $(AR) rcs $@ $(libsparse_OBJS)
-
-libselinux.a: $(libselinux_OBJS)
- $(AR) rcs $@ $(libselinux_OBJS)
-
-clean:
- $(RM) $(fastboot_OBJS) $(libzipfile_OBJS) $(libext4_utils_OBJS) \
- $(libsparse_OBJS) $(libselinux_OBJS) fastboot *.a
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/fix_build_core.patch b/meta-oe/recipes-devtools/android-tools/android-tools/fix_build_core.patch
new file mode 100644
index 0000000000..7b163633de
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/fix_build_core.patch
@@ -0,0 +1,118 @@
+diff --git a/adb/client/usb_libusb.cpp b/adb/client/usb_libusb.cpp
+index 46c3f58ec5..a0c36f0151 100644
+--- a/adb/client/usb_libusb.cpp
++++ b/adb/client/usb_libusb.cpp
+@@ -22,6 +22,7 @@
+ #include <stdlib.h>
+
+ #include <atomic>
++#include <condition_variable>
+ #include <chrono>
+ #include <condition_variable>
+ #include <memory>
+@@ -30,7 +31,7 @@
+ #include <thread>
+ #include <unordered_map>
+
+-#include <libusb/libusb.h>
++#include <libusb-1.0/libusb.h>
+
+ #include <android-base/file.h>
+ #include <android-base/logging.h>
+diff --git a/adb/client/usb_linux.cpp b/adb/client/usb_linux.cpp
+index 1f376a4c93..f1d6779159 100644
+--- a/adb/client/usb_linux.cpp
++++ b/adb/client/usb_linux.cpp
+@@ -29,6 +29,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <sys/ioctl.h>
++#include <sys/sysmacros.h>
+ #include <sys/time.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+diff --git a/adb/sysdeps/posix/network.cpp b/adb/sysdeps/posix/network.cpp
+index ecd1fd24ec..86166c0e2c 100644
+--- a/adb/sysdeps/posix/network.cpp
++++ b/adb/sysdeps/posix/network.cpp
+@@ -21,6 +21,7 @@
+ #include <sys/socket.h>
+
+ #include <string>
++#include <string.h>
+
+ #include "adb_unique_fd.h"
+
+diff --git a/base/errors_unix.cpp b/base/errors_unix.cpp
+index 296995efe2..48269b6750 100644
+--- a/base/errors_unix.cpp
++++ b/base/errors_unix.cpp
+@@ -17,6 +17,7 @@
+ #include "android-base/errors.h"
+
+ #include <errno.h>
++#include <string.h>
+
+ namespace android {
+ namespace base {
+diff --git a/base/file.cpp b/base/file.cpp
+index 2f697a1cc1..81aef5758c 100644
+--- a/base/file.cpp
++++ b/base/file.cpp
+@@ -22,6 +22,7 @@
+ #include <sys/stat.h>
+ #include <sys/types.h>
+ #include <unistd.h>
++#include <string.h>
+
+ #include <memory>
+ #include <mutex>
+diff --git a/base/logging.cpp b/base/logging.cpp
+index a31feefab2..d746cc4d78 100644
+--- a/base/logging.cpp
++++ b/base/logging.cpp
+@@ -23,6 +23,7 @@
+ #include <fcntl.h>
+ #include <libgen.h>
+ #include <time.h>
++#include <string.h>
+
+ // For getprogname(3) or program_invocation_short_name.
+ #if defined(__ANDROID__) || defined(__APPLE__)
+diff --git a/fastboot/fs.cpp b/fastboot/fs.cpp
+index c30ca1e4b3..fdc042ff36 100644
+--- a/fastboot/fs.cpp
++++ b/fastboot/fs.cpp
+@@ -117,7 +117,7 @@ static int generate_ext4_image(const char* fileName, long long partSize,
+ static constexpr int block_size = 4096;
+ const std::string exec_dir = android::base::GetExecutableDirectory();
+
+- const std::string mke2fs_path = exec_dir + "/mke2fs";
++ const std::string mke2fs_path = exec_dir + "/mke2fs.android";
+ std::vector<const char*> mke2fs_args = {mke2fs_path.c_str(), "-t", "ext4", "-b"};
+
+ std::string block_size_str = std::to_string(block_size);
+diff --git a/libsparse/sparse_read.cpp b/libsparse/sparse_read.cpp
+index 4379635270..ccb565bb63 100644
+--- a/libsparse/sparse_read.cpp
++++ b/libsparse/sparse_read.cpp
+@@ -26,6 +26,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <string>
++#include <string.h>
+ #include <unistd.h>
+
+ #include <sparse/sparse.h>
+diff --git a/libziparchive/zip_archive.cc b/libziparchive/zip_archive.cc
+index 5e5e7afd18..ebbc819a7a 100644
+--- a/libziparchive/zip_archive.cc
++++ b/libziparchive/zip_archive.cc
+@@ -29,6 +29,7 @@
+ #include <string.h>
+ #include <time.h>
+ #include <unistd.h>
++#include <string_view>
+
+ #include <memory>
+ #include <vector>
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/fix_build_e2fsprogs.patch b/meta-oe/recipes-devtools/android-tools/android-tools/fix_build_e2fsprogs.patch
new file mode 100644
index 0000000000..b9fdb5eafe
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/fix_build_e2fsprogs.patch
@@ -0,0 +1,83 @@
+diff --git a/contrib/android/perms.c b/contrib/android/perms.c
+index d83ad35a..dca5b620 100644
+--- a/contrib/android/perms.c
++++ b/contrib/android/perms.c
+@@ -5,6 +5,7 @@
+ #include "support/nls-enable.h"
+ #include <time.h>
+ #include <sys/stat.h>
++#include "private/android_filesystem_capability.h"
+
+ #ifndef XATTR_SELINUX_SUFFIX
+ # define XATTR_SELINUX_SUFFIX "selinux"
+diff --git a/lib/ext2fs/bitops.h b/lib/ext2fs/bitops.h
+index 505b3c9c..7be5105f 100644
+--- a/lib/ext2fs/bitops.h
++++ b/lib/ext2fs/bitops.h
+@@ -233,11 +233,11 @@ extern errcode_t ext2fs_find_first_set_generic_bmap(ext2fs_generic_bitmap bitmap
+ #if (__STDC_VERSION__ >= 199901L)
+ #define _INLINE_ extern inline
+ #else
+-#define _INLINE_ inline
++#define _INLINE_ static inline
+ #endif
+ #else /* !INCLUDE_INLINE FUNCS */
+ #if (__STDC_VERSION__ >= 199901L)
+-#define _INLINE_ inline
++#define _INLINE_ static inline
+ #else /* not C99 */
+ #ifdef __GNUC__
+ #define _INLINE_ extern __inline__
+diff --git a/lib/ext2fs/ext2fs.h b/lib/ext2fs/ext2fs.h
+index 470e7d7a..95a41e0d 100644
+--- a/lib/ext2fs/ext2fs.h
++++ b/lib/ext2fs/ext2fs.h
+@@ -1743,7 +1743,7 @@ extern const struct ext2_inode *ext2fs_const_inode(const struct ext2_inode_large
+ #define _INLINE_ extern
+ #else
+ #if (__STDC_VERSION__ >= 199901L)
+-#define _INLINE_ inline
++#define _INLINE_ static inline
+ #else
+ #ifdef __GNUC__
+ #define _INLINE_ extern __inline__
+diff --git a/misc/create_inode.c b/misc/create_inode.c
+index 1373b46b..e6f34bd9 100644
+--- a/misc/create_inode.c
++++ b/misc/create_inode.c
+@@ -403,7 +403,7 @@ static ssize_t my_pread(int fd, void *buf, size_t count, off_t offset)
+ }
+ #endif /* !defined HAVE_PREAD64 && !defined HAVE_PREAD */
+
+-static errcode_t copy_file_range(ext2_filsys fs, int fd, ext2_file_t e2_file,
++static errcode_t e2_copy_file_range(ext2_filsys fs, int fd, ext2_file_t e2_file,
+ off_t start, off_t end, char *buf,
+ char *zerobuf)
+ {
+@@ -477,7 +477,7 @@ static errcode_t try_lseek_copy(ext2_filsys fs, int fd, struct stat *statbuf,
+
+ data_blk = data & ~(fs->blocksize - 1);
+ hole_blk = (hole + (fs->blocksize - 1)) & ~(fs->blocksize - 1);
+- err = copy_file_range(fs, fd, e2_file, data_blk, hole_blk, buf,
++ err = e2_copy_file_range(fs, fd, e2_file, data_blk, hole_blk, buf,
+ zerobuf);
+ if (err)
+ return err;
+@@ -527,7 +527,7 @@ static errcode_t try_fiemap_copy(ext2_filsys fs, int fd, ext2_file_t e2_file,
+ }
+ for (i = 0, ext = ext_buf; i < fiemap_buf->fm_mapped_extents;
+ i++, ext++) {
+- err = copy_file_range(fs, fd, e2_file, ext->fe_logical,
++ err = e2_copy_file_range(fs, fd, e2_file, ext->fe_logical,
+ ext->fe_logical + ext->fe_length,
+ buf, zerobuf);
+ if (err)
+@@ -580,7 +580,7 @@ static errcode_t copy_file(ext2_filsys fs, int fd, struct stat *statbuf,
+ goto out;
+ #endif
+
+- err = copy_file_range(fs, fd, e2_file, 0, statbuf->st_size, buf,
++ err = e2_copy_file_range(fs, fd, e2_file, 0, statbuf->st_size, buf,
+ zerobuf);
+ out:
+ ext2fs_free_mem(&zerobuf);
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/fix_build_selinux.patch b/meta-oe/recipes-devtools/android-tools/android-tools/fix_build_selinux.patch
new file mode 100644
index 0000000000..429f87ce57
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/fix_build_selinux.patch
@@ -0,0 +1,26 @@
+diff --git a/libsepol/src/private.h b/libsepol/src/private.h
+index b884c23b..447fa64b 100644
+--- a/libsepol/src/private.h
++++ b/libsepol/src/private.h
+@@ -14,7 +14,7 @@
+ #endif
+
+ #include <errno.h>
+-#include <dso.h>
++#include "dso.h"
+
+ #ifdef __APPLE__
+ #define __BYTE_ORDER BYTE_ORDER
+diff --git a/libsepol/src/util.c b/libsepol/src/util.c
+index b00251c6..68e7c6a0 100644
+--- a/libsepol/src/util.c
++++ b/libsepol/src/util.c
+@@ -27,7 +27,7 @@
+ #include <sepol/policydb/flask_types.h>
+ #include <sepol/policydb/policydb.h>
+ #include <sepol/policydb/util.h>
+-#include <dso.h>
++#include "dso.h"
+
+ struct val_to_name {
+ unsigned int val;
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/generate_build.rb b/meta-oe/recipes-devtools/android-tools/android-tools/generate_build.rb
new file mode 100644
index 0000000000..91f42fec0b
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/generate_build.rb
@@ -0,0 +1,398 @@
+#!/usr/bin/ruby
+
+# Android build system is complicated and does not allow to build
+# separate parts easily.
+# This script tries to mimic Android build rules.
+
+def expand(dir, files)
+ files.map { |f| File.join(dir, f) }
+end
+
+# Compiles sources to *.o files.
+# Returns array of output *.o filenames
+def compile(sources, cflags)
+ outputs = []
+ for s in sources
+ ext = File.extname(s)
+
+ case ext
+ when ".c"
+ cc = "cc"
+ lang_flags = "-std=gnu11 $CFLAGS $CPPFLAGS"
+ when ".cpp", ".cc"
+ cc = "cxx"
+ lang_flags = "-std=gnu++17 $CXXFLAGS $CPPFLAGS"
+ else
+ raise "Unknown extension #{ext}"
+ end
+
+ output = s + ".o"
+ outputs << output
+ puts "build #{output}: #{cc} #{s}\n cflags = #{lang_flags} #{cflags}"
+ end
+
+ return outputs
+end
+
+# dir - directory where ninja file is located
+# lib - static library path relative to dir
+def subninja(dir, lib)
+ puts "subninja #{dir}build.ninja"
+ return lib.each { |l| dir + l }
+end
+
+# Links object files
+def link(output, objects, ldflags)
+ puts "build #{output}: link #{objects.join(" ")}\n ldflags = #{ldflags} $LDFLAGS"
+end
+
+puts "# This set of commands generated by generate_build.rb script\n\n"
+puts "CC = #{ENV["CC"] || "clang"}"
+puts "CXX = #{ENV["CXX"] || "clang++"}\n\n"
+puts "CFLAGS = #{ENV["CFLAGS"]}"
+puts "CXXFLAGS = #{ENV["CXXFLAGS"]}"
+puts "LDFLAGS = #{ENV["LDFLAGS"]}"
+puts "PKGVER = #{ENV["PKGVER"]}\n\n"
+
+puts "" "
+rule cc
+ command = $CC $cflags -c $in -o $out
+
+rule cxx
+ command = $CXX $cflags -c $in -o $out
+
+rule link
+ command = $CXX $ldflags $LDFLAGS $in -o $out
+
+
+" ""
+
+adbdfiles = %w(
+ adb.cpp
+ adb_io.cpp
+ adb_listeners.cpp
+ adb_trace.cpp
+ adb_utils.cpp
+ bugreport.cpp
+ line_printer.cpp
+ sockets.cpp
+ transport.cpp
+ transport_local.cpp
+ transport_usb.cpp
+ transport_mdns_unsupported.cpp
+ fdevent.cpp
+ adb_auth_host.cpp
+ shell_service_protocol.cpp
+)
+libadbd = compile(expand("core/adb", adbdfiles), '-DADB_VERSION="\"$PKGVER\"" -DADB_HOST=1 -Icore/include -Icore/base/include -Icore/adb -Icore/libcrypto_utils/include -Iboringssl/include')
+
+adbfiles = %w(
+ console.cpp
+ socket_spec.cpp
+ commandline.cpp
+ adb_client.cpp
+ services.cpp
+ file_sync_client.cpp
+ sysdeps_unix.cpp
+ sysdeps/errno.cpp
+ client/main.cpp
+ client/usb_dispatch.cpp
+ client/usb_linux.cpp
+ client/usb_libusb.cpp
+ sysdeps/posix/network.cpp
+)
+libadb = compile(expand("core/adb", adbfiles), "-D_GNU_SOURCE -DADB_HOST=1 -Icore/include -Icore/base/include -Icore/adb")
+
+basefiles = %w(
+ file.cpp
+ logging.cpp
+ parsenetaddress.cpp
+ stringprintf.cpp
+ strings.cpp
+ errors_unix.cpp
+ test_utils.cpp
+)
+libbase = compile(expand("core/base", basefiles), "-DADB_HOST=1 -Icore/base/include -Icore/include")
+
+logfiles = %w(
+ log_event_write.c
+ fake_log_device.c
+ log_event_list.c
+ logger_write.c
+ config_write.c
+ config_read.c
+ logger_lock.c
+ local_logger.c
+ fake_writer.c
+ logger_name.c
+ stderr_write.c
+ logprint.c
+)
+liblog = compile(expand("core/liblog", logfiles), "-DLIBLOG_LOG_TAG=1006 -D_XOPEN_SOURCE=700 -DFAKE_LOG_DEVICE=1 -Icore/log/include -Icore/include")
+
+cutilsfiles = %w(
+ load_file.cpp
+ socket_local_client_unix.cpp
+ socket_network_client_unix.cpp
+ socket_local_server_unix.cpp
+ sockets_unix.cpp
+ socket_inaddr_any_server_unix.cpp
+ sockets.cpp
+ android_get_control_file.cpp
+ threads.cpp
+ fs_config.cpp
+ canned_fs_config.cpp
+)
+libcutils = compile(expand("core/libcutils", cutilsfiles), "-D_GNU_SOURCE -Icore/libcutils/include -Icore/include")
+
+diagnoseusbfiles = %w(
+ diagnose_usb.cpp
+)
+libdiagnoseusb = compile(expand("core/adb", diagnoseusbfiles), "-Icore/include -Icore/base/include")
+
+libcryptofiles = %w(
+ android_pubkey.c
+)
+libcrypto = compile(expand("core/libcrypto_utils", libcryptofiles), "-Icore/libcrypto_utils/include -Iboringssl/include")
+
+# TODO: make subninja working
+#boringssl = subninja('boringssl/build/', ['crypto/libcrypto.a'])
+boringssl = ["boringssl/build/crypto/libcrypto.a"]
+
+link("adb", libbase + liblog + libcutils + libadbd + libadb + libdiagnoseusb + libcrypto + boringssl, "-lpthread -lusb-1.0")
+
+fastbootfiles = %w(
+ protocol.cpp
+ engine.cpp
+ bootimg_utils.cpp
+ fastboot.cpp
+ util.cpp
+ fs.cpp
+ usb_linux.cpp
+ socket.cpp
+ tcp.cpp
+ udp.cpp
+)
+libfastboot = compile(expand("core/fastboot", fastbootfiles), '-DFASTBOOT_VERSION="\"$PKGVER\"" -D_GNU_SOURCE -D_XOPEN_SOURCE=700 -DUSE_F2FS -Icore/base/include -Icore/include -Icore/adb -Icore/libsparse/include -Icore/mkbootimg -Iextras/ext4_utils/include -Iextras/f2fs_utils -Icore/libziparchive/include -Icore/mkbootimg/include/bootimg')
+
+sparsefiles = %w(
+ backed_block.c
+ output_file.c
+ sparse.c
+ sparse_crc32.c
+ sparse_err.c
+ sparse_read.cpp
+)
+libsparse = compile(expand("core/libsparse", sparsefiles), "-Icore/libsparse/include -Icore/base/include")
+
+f2fsfiles = %w(
+)
+f2fs = compile(expand("extras/f2fs_utils", f2fsfiles), "-DHAVE_LINUX_TYPES_H -If2fs-tools/include -Icore/liblog/include")
+
+zipfiles = %w(
+ zip_archive.cc
+)
+libzip = compile(expand("core/libziparchive", zipfiles), "-Icore/base/include -Icore/include -Icore/libziparchive/include")
+
+utilfiles = %w(
+ FileMap.cpp
+)
+libutil = compile(expand("core/libutils", utilfiles), "-Icore/include")
+
+ext4files = %w(
+ ext4_utils.c
+ wipe.c
+ ext4_sb.c
+)
+libext4 = compile(expand("extras/ext4_utils", ext4files), "-D_GNU_SOURCE -Icore/libsparse/include -Icore/include -Iselinux/libselinux/include -Iextras/ext4_utils/include")
+
+selinuxfiles = %w(
+ callbacks.c
+ check_context.c
+ freecon.c
+ init.c
+ label.c
+ label_file.c
+ label_support.c
+ setrans_client.c
+ regex.c
+ matchpathcon.c
+ selinux_config.c
+ label_backends_android.c
+ canonicalize_context.c
+ lsetfilecon.c
+ policyvers.c
+ lgetfilecon.c
+ load_policy.c
+ seusers.c
+ sha1.c
+ booleans.c
+ disable.c
+ enabled.c
+ getenforce.c
+ setenforce.c
+)
+libselinux = compile(expand("selinux/libselinux/src", selinuxfiles), "-DAUDITD_LOG_TAG=1003 -D_GNU_SOURCE -DHOST -DUSE_PCRE2 -DNO_PERSISTENTLY_STORED_PATTERNS -DDISABLE_SETRANS -DDISABLE_BOOL -DNO_MEDIA_BACKEND -DNO_X_BACKEND -DNO_DB_BACKEND -DPCRE2_CODE_UNIT_WIDTH=8 -Iselinux/libselinux/include -Iselinux/libsepol/include")
+
+libsepolfiles = %w(
+ policydb_public.c
+ genbools.c
+ debug.c
+ policydb.c
+ conditional.c
+ services.c
+ ebitmap.c
+ util.c
+ assertion.c
+ avtab.c
+ hashtab.c
+ sidtab.c
+ context.c
+ genusers.c
+ context_record.c
+ mls.c
+ avrule_block.c
+ symtab.c
+ policydb_convert.c
+ write.c
+ constraint.c
+ expand.c
+ hierarchy.c
+)
+libsepol = compile(expand("selinux/libsepol/src", libsepolfiles), "-Iselinux/libsepol/include")
+
+link("fastboot", libsparse + libzip + libcutils + liblog + libutil + libbase + libext4 + f2fs + libselinux + libsepol + libfastboot + libdiagnoseusb, "-lz -lpcre2-8 -lpthread -ldl")
+
+# mke2fs.android - a ustom version of mke2fs that supports --android_sparse (FS#56955)
+libext2fsfiles = %w(
+ lib/blkid/cache.c
+ lib/blkid/dev.c
+ lib/blkid/devname.c
+ lib/blkid/devno.c
+ lib/blkid/getsize.c
+ lib/blkid/llseek.c
+ lib/blkid/probe.c
+ lib/blkid/read.c
+ lib/blkid/resolve.c
+ lib/blkid/save.c
+ lib/blkid/tag.c
+ lib/e2p/feature.c
+ lib/e2p/hashstr.c
+ lib/e2p/mntopts.c
+ lib/e2p/ostype.c
+ lib/e2p/parse_num.c
+ lib/e2p/uuid.c
+ lib/et/com_err.c
+ lib/et/error_message.c
+ lib/et/et_name.c
+ lib/ext2fs/alloc.c
+ lib/ext2fs/alloc_sb.c
+ lib/ext2fs/alloc_stats.c
+ lib/ext2fs/alloc_tables.c
+ lib/ext2fs/atexit.c
+ lib/ext2fs/badblocks.c
+ lib/ext2fs/bb_inode.c
+ lib/ext2fs/bitmaps.c
+ lib/ext2fs/bitops.c
+ lib/ext2fs/blkmap64_ba.c
+ lib/ext2fs/blkmap64_rb.c
+ lib/ext2fs/blknum.c
+ lib/ext2fs/block.c
+ lib/ext2fs/bmap.c
+ lib/ext2fs/closefs.c
+ lib/ext2fs/crc16.c
+ lib/ext2fs/crc32c.c
+ lib/ext2fs/csum.c
+ lib/ext2fs/dirblock.c
+ lib/ext2fs/dir_iterate.c
+ lib/ext2fs/expanddir.c
+ lib/ext2fs/ext2_err.c
+ lib/ext2fs/ext_attr.c
+ lib/ext2fs/extent.c
+ lib/ext2fs/fallocate.c
+ lib/ext2fs/fileio.c
+ lib/ext2fs/freefs.c
+ lib/ext2fs/gen_bitmap64.c
+ lib/ext2fs/gen_bitmap.c
+ lib/ext2fs/get_num_dirs.c
+ lib/ext2fs/getsectsize.c
+ lib/ext2fs/getsize.c
+ lib/ext2fs/hashmap.c
+ lib/ext2fs/i_block.c
+ lib/ext2fs/ind_block.c
+ lib/ext2fs/initialize.c
+ lib/ext2fs/inline.c
+ lib/ext2fs/inline_data.c
+ lib/ext2fs/inode.c
+ lib/ext2fs/io_manager.c
+ lib/ext2fs/ismounted.c
+ lib/ext2fs/link.c
+ lib/ext2fs/llseek.c
+ lib/ext2fs/lookup.c
+ lib/ext2fs/mkdir.c
+ lib/ext2fs/mkjournal.c
+ lib/ext2fs/mmp.c
+ lib/ext2fs/namei.c
+ lib/ext2fs/newdir.c
+ lib/ext2fs/openfs.c
+ lib/ext2fs/progress.c
+ lib/ext2fs/punch.c
+ lib/ext2fs/rbtree.c
+ lib/ext2fs/read_bb.c
+ lib/ext2fs/read_bb_file.c
+ lib/ext2fs/res_gdt.c
+ lib/ext2fs/rw_bitmaps.c
+ lib/ext2fs/sha512.c
+ lib/ext2fs/sparse_io.c
+ lib/ext2fs/symlink.c
+ lib/ext2fs/undo_io.c
+ lib/ext2fs/unix_io.c
+ lib/ext2fs/valid_blk.c
+ lib/support/dict.c
+ lib/support/mkquota.c
+ lib/support/parse_qtype.c
+ lib/support/plausible.c
+ lib/support/prof_err.c
+ lib/support/profile.c
+ lib/support/quotaio.c
+ lib/support/quotaio_tree.c
+ lib/support/quotaio_v2.c
+ lib/uuid/gen_uuid.c
+ lib/uuid/isnull.c
+ lib/uuid/pack.c
+ lib/uuid/parse.c
+ lib/uuid/unpack.c
+ lib/uuid/unparse.c
+ misc/create_inode.c
+)
+libext2fs = compile(expand("e2fsprogs", libext2fsfiles), "-Ie2fsprogs/lib -Ie2fsprogs/lib/ext2fs -Icore/libsparse/include")
+
+mke2fsfiles = %w(
+ misc/default_profile.c
+ misc/mke2fs.c
+ misc/mk_hugefiles.c
+ misc/util.c
+)
+mke2fs = compile(expand("e2fsprogs", mke2fsfiles), "-Ie2fsprogs/lib")
+
+link("mke2fs.android", mke2fs + libext2fs + libsparse + libbase + libzip + liblog + libutil, "-lpthread -lz")
+
+e2fsdroidfiles = %w(
+ contrib/android/e2fsdroid.c
+ contrib/android/basefs_allocator.c
+ contrib/android/block_range.c
+ contrib/android/base_fs.c
+ contrib/android/fsmap.c
+ contrib/android/block_list.c
+ contrib/android/perms.c
+)
+e2fsdroid = compile(expand("e2fsprogs", e2fsdroidfiles), "-Ie2fsprogs/lib -Ie2fsprogs/lib/ext2fs -Iselinux/libselinux/include -Icore/libcutils/include -Ie2fsprogs/misc")
+
+link("e2fsdroid", e2fsdroid + libext2fs + libsparse + libbase + libzip + liblog + libutil + libselinux + libsepol + libcutils, "-lz -lpthread -lpcre2-8")
+
+ext2simgfiles = %w(
+ contrib/android/ext2simg.c
+)
+ext2simg = compile(expand("e2fsprogs", ext2simgfiles), "-Ie2fsprogs/lib -Icore/libsparse/include")
+
+link("ext2simg", ext2simg + libext2fs + libsparse + libbase + libzip + liblog + libutil, "-lz -lpthread")
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/gitignore b/meta-oe/recipes-devtools/android-tools/android-tools/gitignore
deleted file mode 100644
index b034c10a1e..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/gitignore
+++ /dev/null
@@ -1,59 +0,0 @@
-*
-!.gitignore
-!*.indirectionsymlink
-!*.[ch]
-!*.mk
-!*.patch
-!*.service
-!NOTICE
-!MODULE_LICENSE_*
-!/system/
-!/system/core/
-!/system/core/adb/
-!/system/core/fastboot/
-!/system/core/fs_mgr/
-!/system/core/fs_mgr/include/
-!/system/core/include/
-!/system/core/include/android/
-!/system/core/include/cutils/
-!/system/core/include/log/
-!/system/core/include/mincrypt/
-!/system/core/include/private/
-!/system/core/include/utils/
-!/system/core/include/zipfile/
-!/system/core/liblog/
-!/system/core/liblog/tests/
-!/system/core/libcutils/
-!/system/core/libmincrypt/
-!/system/core/libzipfile/
-!/system/core/libsparse/
-!/system/core/libsparse/include/
-!/system/core/libsparse/include/sparse/
-!/system/core/libsparse/simg_dump.py
-!/system/core/mkbootimg/
-!/system/extras/
-!/system/extras/ext4_utils/
-!/system/extras/ext4_utils/mkuserimg.sh
-!/system/extras/ext4_utils/test_ext4fixup
-!/system/extras/f2fs_utils/
-!/hardware/
-!/hardware/libhardware/
-!/hardware/libhardware/include/
-!/hardware/libhardware/include/hardware/
-!/external/
-!/external/libselinux/
-!/external/libselinux/include/
-!/external/libselinux/include/selinux/
-!/external/libselinux/src/
-!/external/f2fs-tools/
-!/external/f2fs-tools/include/
-!/external/f2fs-tools/lib/
-!/external/f2fs-tools/mkfs/
-!/build/
-!/build/core/
-!/build/core/version_defaults.mk
-!/build/core/combo/
-!/build/core/combo/include/
-!/build/core/combo/include/arch/
-!/build/core/combo/include/arch/linux-*/
-!/build/core/combo/include/arch/linux-*/AndroidConfig.h
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/log.do_compile.12223 b/meta-oe/recipes-devtools/android-tools/android-tools/log.do_compile.12223
new file mode 100644
index 0000000000..8cf4783365
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/log.do_compile.12223
@@ -0,0 +1,641 @@
+DEBUG: Executing shell function do_compile
+-- The C compiler identification is GNU 7.3.0
+-- Check for working C compiler: /OE/build/owpb/webos-ports/tmp-glibc/hosttools/gcc
+-- Check for working C compiler: /OE/build/owpb/webos-ports/tmp-glibc/hosttools/gcc -- works
+-- Detecting C compiler ABI info
+-- Detecting C compiler ABI info - done
+-- Detecting C compile features
+-- Detecting C compile features - done
+-- The CXX compiler identification is GNU 7.3.0
+-- Check for working CXX compiler: /OE/build/owpb/webos-ports/tmp-glibc/hosttools/g++
+-- Check for working CXX compiler: /OE/build/owpb/webos-ports/tmp-glibc/hosttools/g++ -- works
+-- Detecting CXX compiler ABI info
+-- Detecting CXX compiler ABI info - done
+-- Detecting CXX compile features
+-- Detecting CXX compile features - done
+-- Found Perl: /OE/build/owpb/webos-ports/tmp-glibc/hosttools/perl (found version "5.26.1")
+-- The ASM compiler identification is GNU
+-- Found assembler: /OE/build/owpb/webos-ports/tmp-glibc/hosttools/gcc
+-- Configuring done
+-- Generating done
+-- Build files have been written to: /OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build
+[1/395] Building C object crypto/CMakeFiles/crypto_base.dir/cpu-arm.c.o
+[2/395] Building C object crypto/CMakeFiles/crypto_base.dir/cpu-arm-linux.c.o
+[3/395] Building C object crypto/CMakeFiles/crypto_base.dir/cpu-ppc64le.c.o
+[4/395] Building C object crypto/CMakeFiles/crypto_base.dir/cpu-aarch64-linux.c.o
+[5/395] Building C object crypto/CMakeFiles/crypto_base.dir/crypto.c.o
+[6/395] Building C object crypto/CMakeFiles/crypto_base.dir/refcount_c11.c.o
+[7/395] Building C object crypto/CMakeFiles/crypto_base.dir/cpu-intel.c.o
+[8/395] Building C object crypto/CMakeFiles/crypto_base.dir/refcount_lock.c.o
+[9/395] Building C object crypto/CMakeFiles/crypto_base.dir/mem.c.o
+[10/395] Building C object crypto/CMakeFiles/crypto_base.dir/thread.c.o
+[11/395] Building C object crypto/CMakeFiles/crypto_base.dir/ex_data.c.o
+[12/395] Building C object crypto/CMakeFiles/crypto_base.dir/thread_none.c.o
+[13/395] Building C object crypto/CMakeFiles/crypto_base.dir/thread_win.c.o
+[14/395] Building C object crypto/CMakeFiles/crypto_base.dir/thread_pthread.c.o
+[15/395] Building C object crypto/rc4/CMakeFiles/rc4.dir/rc4.c.o
+[16/395] Building C object crypto/pool/CMakeFiles/pool.dir/pool.c.o
+[17/395] Building C object crypto/lhash/CMakeFiles/lhash.dir/lhash.c.o
+[18/395] Building C object crypto/bytestring/CMakeFiles/bytestring.dir/asn1_compat.c.o
+[19/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_strnid.c.o
+[20/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_time.c.o
+[21/395] Building C object crypto/stack/CMakeFiles/stack.dir/stack.c.o
+[22/395] Building C object crypto/buf/CMakeFiles/buf.dir/buf.c.o
+[23/395] Building C object crypto/poly1305/CMakeFiles/poly1305.dir/poly1305.c.o
+[24/395] Building C object crypto/bytestring/CMakeFiles/bytestring.dir/ber.c.o
+[25/395] Building C object crypto/base64/CMakeFiles/base64.dir/base64.c.o
+[26/395] Building C object crypto/poly1305/CMakeFiles/poly1305.dir/poly1305_arm.c.o
+[27/395] Generating chacha-x86_64.S
+[28/395] Building C object crypto/digest_extra/CMakeFiles/digest_extra.dir/digest_extra.c.o
+[29/395] Building C object crypto/bytestring/CMakeFiles/bytestring.dir/cbs.c.o
+[30/395] Building C object crypto/bytestring/CMakeFiles/bytestring.dir/cbb.c.o
+[31/395] Building C object crypto/chacha/CMakeFiles/chacha.dir/chacha.c.o
+[32/395] Building ASM object crypto/chacha/CMakeFiles/chacha.dir/chacha-x86_64.S.o
+[33/395] Building C object crypto/curve25519/CMakeFiles/curve25519.dir/spake25519.c.o
+[34/395] Building C object crypto/rand_extra/CMakeFiles/rand_extra.dir/deterministic.c.o
+[35/395] Building C object crypto/conf/CMakeFiles/conf.dir/conf.c.o
+[36/395] Building C object crypto/rand_extra/CMakeFiles/rand_extra.dir/fuchsia.c.o
+[37/395] Building C object crypto/rand_extra/CMakeFiles/rand_extra.dir/forkunsafe.c.o
+[38/395] Building C object crypto/rand_extra/CMakeFiles/rand_extra.dir/windows.c.o
+[39/395] Building C object crypto/rand_extra/CMakeFiles/rand_extra.dir/rand_extra.c.o
+[40/395] Generating err_data.c
+[41/395] Building C object crypto/poly1305/CMakeFiles/poly1305.dir/poly1305_vec.c.o
+[42/395] Building C object crypto/bio/CMakeFiles/bio.dir/bio_mem.c.o
+[43/395] Building C object crypto/err/CMakeFiles/err.dir/err_data.c.o
+[44/395] Building C object crypto/bio/CMakeFiles/bio.dir/fd.c.o
+[45/395] Generating crypto_test_data.cc
+[46/395] Generating aes128gcmsiv-x86_64.S
+[47/395] Building C object crypto/bio/CMakeFiles/bio.dir/connect.c.o
+[48/395] Building C object crypto/bio/CMakeFiles/bio.dir/printf.c.o
+[49/395] Building C object crypto/bio/CMakeFiles/bio.dir/bio.c.o
+[50/395] Building C object crypto/bn_extra/CMakeFiles/bn_extra.dir/bn_asn1.c.o
+[51/395] Building C object crypto/bio/CMakeFiles/bio.dir/hexdump.c.o
+[52/395] Building C object crypto/err/CMakeFiles/err.dir/err.c.o
+[53/395] Building C object crypto/bio/CMakeFiles/bio.dir/pair.c.o
+[54/395] Building C object crypto/bio/CMakeFiles/bio.dir/socket_helper.c.o
+[55/395] Building C object crypto/bio/CMakeFiles/bio.dir/file.c.o
+[56/395] Building C object crypto/bio/CMakeFiles/bio.dir/socket.c.o
+[57/395] Building C object crypto/obj/CMakeFiles/obj.dir/obj_xref.c.o
+[58/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_bool.c.o
+[59/395] Building C object crypto/bn_extra/CMakeFiles/bn_extra.dir/convert.c.o
+[60/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_dup.c.o
+[61/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_enum.c.o
+[62/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_bitstr.c.o
+[63/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_d2i_fp.c.o
+[64/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_i2d_fp.c.o
+[65/395] Building C object crypto/obj/CMakeFiles/obj.dir/obj.c.o
+[66/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_print.c.o
+[67/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_mbstr.c.o
+[68/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_octet.c.o
+[69/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_gentm.c.o
+[70/395] Generating chacha20_poly1305_x86_64.S
+[71/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_type.c.o
+[72/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_object.c.o
+[73/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_int.c.o
+[74/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_utctm.c.o
+[75/395] Building C object crypto/cipher_extra/CMakeFiles/cipher_extra.dir/cipher_extra.c.o
+[76/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/asn1_par.c.o
+[77/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/a_utf8.c.o
+[78/395] Building C object crypto/cipher_extra/CMakeFiles/cipher_extra.dir/e_rc4.c.o
+[79/395] Building C object crypto/cipher_extra/CMakeFiles/cipher_extra.dir/e_null.c.o
+[80/395] Building C object crypto/cipher_extra/CMakeFiles/cipher_extra.dir/derive_key.c.o
+[81/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/asn1_lib.c.o
+[82/395] Building C object crypto/cipher_extra/CMakeFiles/cipher_extra.dir/e_aesctrhmac.c.o
+[83/395] Building C object crypto/cipher_extra/CMakeFiles/cipher_extra.dir/e_rc2.c.o
+[84/395] Building ASM object crypto/cipher_extra/CMakeFiles/cipher_extra.dir/aes128gcmsiv-x86_64.S.o
+[85/395] Building C object crypto/cipher_extra/CMakeFiles/cipher_extra.dir/e_chacha20poly1305.c.o
+[86/395] Building ASM object crypto/cipher_extra/CMakeFiles/cipher_extra.dir/chacha20_poly1305_x86_64.S.o
+[87/395] Building C object crypto/cipher_extra/CMakeFiles/cipher_extra.dir/e_aesgcmsiv.c.o
+[88/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/f_string.c.o
+[89/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/f_int.c.o
+[90/395] Building C object crypto/cipher_extra/CMakeFiles/cipher_extra.dir/e_ssl3.c.o
+[91/395] Building C object crypto/cipher_extra/CMakeFiles/cipher_extra.dir/tls_cbc.c.o
+[92/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/f_enum.c.o
+[93/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/asn_pack.c.o
+[94/395] Building C object crypto/cipher_extra/CMakeFiles/cipher_extra.dir/e_tls.c.o
+[95/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/time_support.c.o
+[96/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/tasn_new.c.o
+[97/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/tasn_fre.c.o
+[98/395] Building C object crypto/engine/CMakeFiles/engine.dir/engine.c.o
+[99/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/tasn_utl.c.o
+[100/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/tasn_enc.c.o
+[101/395] Building C object crypto/dh/CMakeFiles/dh.dir/check.c.o
+[102/395] Building C object crypto/dh/CMakeFiles/dh.dir/params.c.o
+[103/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/tasn_typ.c.o
+[104/395] Building C object crypto/asn1/CMakeFiles/asn1.dir/tasn_dec.c.o
+[105/395] Building C object crypto/dh/CMakeFiles/dh.dir/dh.c.o
+[106/395] Building C object crypto/dh/CMakeFiles/dh.dir/dh_asn1.c.o
+[107/395] Building C object crypto/ecdh/CMakeFiles/ecdh.dir/ecdh.c.o
+[108/395] Building CXX object CMakeFiles/crypto_test_data.dir/crypto_test_data.cc.o
+[109/395] Building C object crypto/dsa/CMakeFiles/dsa.dir/dsa_asn1.c.o
+[110/395] Building C object crypto/rsa_extra/CMakeFiles/rsa_extra.dir/rsa_asn1.c.o
+[111/395] Building C object crypto/evp/CMakeFiles/evp.dir/digestsign.c.o
+[112/395] Building C object crypto/ecdsa_extra/CMakeFiles/ecdsa_extra.dir/ecdsa_asn1.c.o
+[113/395] Building C object crypto/evp/CMakeFiles/evp.dir/evp.c.o
+[114/395] Building C object crypto/ec_extra/CMakeFiles/ec_extra.dir/ec_asn1.c.o
+[115/395] Building C object crypto/cmac/CMakeFiles/cmac.dir/cmac.c.o
+[116/395] Building C object crypto/dsa/CMakeFiles/dsa.dir/dsa.c.o
+[117/395] Building C object crypto/evp/CMakeFiles/evp.dir/p_dsa_asn1.c.o
+[118/395] Building C object crypto/evp/CMakeFiles/evp.dir/evp_asn1.c.o
+[119/395] Building C object crypto/evp/CMakeFiles/evp.dir/p_ec_asn1.c.o
+[120/395] Building C object crypto/evp/CMakeFiles/evp.dir/p_rsa_asn1.c.o
+[121/395] Building C object crypto/evp/CMakeFiles/evp.dir/evp_ctx.c.o
+[122/395] Building C object crypto/evp/CMakeFiles/evp.dir/p_ed25519.c.o
+[123/395] Building C object crypto/evp/CMakeFiles/evp.dir/pbkdf.c.o
+[124/395] Building C object crypto/evp/CMakeFiles/evp.dir/p_ed25519_asn1.c.o
+[125/395] Building C object crypto/evp/CMakeFiles/evp.dir/p_ec.c.o
+[126/395] Building C object crypto/evp/CMakeFiles/evp.dir/sign.c.o
+[127/395] Building C object crypto/hkdf/CMakeFiles/hkdf.dir/hkdf.c.o
+[128/395] Building C object crypto/evp/CMakeFiles/evp.dir/p_rsa.c.o
+[129/395] Building C object crypto/evp/CMakeFiles/evp.dir/print.c.o
+[130/395] Building C object crypto/evp/CMakeFiles/evp.dir/scrypt.c.o
+[131/395] Building C object crypto/pem/CMakeFiles/pem.dir/pem_info.c.o
+[132/395] Building C object crypto/pem/CMakeFiles/pem.dir/pem_oth.c.o
+[133/395] Building C object crypto/pem/CMakeFiles/pem.dir/pem_pkey.c.o
+[134/395] Building C object crypto/x509/CMakeFiles/x509.dir/a_digest.c.o
+[135/395] Building C object crypto/pem/CMakeFiles/pem.dir/pem_all.c.o
+[136/395] Building C object crypto/x509/CMakeFiles/x509.dir/a_sign.c.o
+[137/395] Building C object crypto/pem/CMakeFiles/pem.dir/pem_xaux.c.o
+[138/395] Building C object crypto/pem/CMakeFiles/pem.dir/pem_pk8.c.o
+[139/395] Building C object crypto/pem/CMakeFiles/pem.dir/pem_x509.c.o
+[140/395] Building C object crypto/x509/CMakeFiles/x509.dir/a_verify.c.o
+[141/395] Building C object crypto/x509/CMakeFiles/x509.dir/i2d_pr.c.o
+[142/395] Building C object crypto/x509/CMakeFiles/x509.dir/algorithm.c.o
+[143/395] Building C object crypto/x509/CMakeFiles/x509.dir/by_file.c.o
+[144/395] Building C object crypto/pem/CMakeFiles/pem.dir/pem_lib.c.o
+[145/395] Building C object crypto/x509/CMakeFiles/x509.dir/t_crl.c.o
+[146/395] Building C object crypto/x509/CMakeFiles/x509.dir/rsa_pss.c.o
+[147/395] Building C object crypto/x509/CMakeFiles/x509.dir/by_dir.c.o
+[148/395] Building C object crypto/x509/CMakeFiles/x509.dir/t_req.c.o
+[149/395] Building C object crypto/x509/CMakeFiles/x509.dir/a_strex.c.o
+[150/395] Building C object crypto/x509/CMakeFiles/x509.dir/t_x509a.c.o
+[151/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509.c.o
+[152/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509_d2.c.o
+[153/395] Building C object crypto/x509/CMakeFiles/x509.dir/t_x509.c.o
+[154/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509_def.c.o
+[155/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509_att.c.o
+[156/395] Building C object crypto/x509/CMakeFiles/x509.dir/asn1_gen.c.o
+[157/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509_r2x.c.o
+[158/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509_ext.c.o
+[159/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509_cmp.c.o
+[160/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509_obj.c.o
+[161/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509_set.c.o
+[162/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509_txt.c.o
+[163/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509_req.c.o
+[164/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509_trs.c.o
+[165/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509cset.c.o
+[166/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509_lu.c.o
+[167/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509_v3.c.o
+[168/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509rset.c.o
+[169/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509_vpm.c.o
+[170/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509spki.c.o
+[171/395] Building C object crypto/x509/CMakeFiles/x509.dir/x_algor.c.o
+[172/395] Building C object crypto/x509/CMakeFiles/x509.dir/x_attrib.c.o
+[173/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509name.c.o
+[174/395] Building C object crypto/x509/CMakeFiles/x509.dir/x_exten.c.o
+[175/395] Building C object crypto/x509/CMakeFiles/x509.dir/x_info.c.o
+[176/395] Building C object crypto/x509/CMakeFiles/x509.dir/x_pkey.c.o
+[177/395] Building C object crypto/x509/CMakeFiles/x509.dir/x_all.c.o
+[178/395] Building C object crypto/x509/CMakeFiles/x509.dir/x_spki.c.o
+[179/395] Building C object crypto/x509/CMakeFiles/x509.dir/x_sig.c.o
+[180/395] Building C object crypto/x509/CMakeFiles/x509.dir/x_req.c.o
+[181/395] Building C object crypto/x509/CMakeFiles/x509.dir/x_name.c.o
+[182/395] Building C object crypto/x509/CMakeFiles/x509.dir/x_crl.c.o
+[183/395] Building C object crypto/x509/CMakeFiles/x509.dir/x_val.c.o
+[184/395] Building C object crypto/x509/CMakeFiles/x509.dir/x_pubkey.c.o
+[185/395] Building C object crypto/x509/CMakeFiles/x509.dir/x_x509a.c.o
+[186/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/pcy_lib.c.o
+[187/395] Building C object crypto/x509/CMakeFiles/x509.dir/x_x509.c.o
+[188/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/pcy_map.c.o
+[189/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/pcy_cache.c.o
+[190/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/pcy_data.c.o
+[191/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_akeya.c.o
+[192/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_akey.c.o
+[193/395] Building C object crypto/x509/CMakeFiles/x509.dir/x509_vfy.c.o
+[194/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/pcy_node.c.o
+[195/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_bcons.c.o
+[196/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_bitst.c.o
+[197/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_enum.c.o
+[198/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/pcy_tree.c.o
+[199/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_extku.c.o
+[200/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_genn.c.o
+[201/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_conf.c.o
+[202/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_int.c.o
+[203/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_alt.c.o
+[204/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_crld.c.o
+[205/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_ia5.c.o
+[206/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_cpols.c.o
+[207/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_info.c.o
+[208/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_lib.c.o
+[209/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_pcia.c.o
+[210/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_ncons.c.o
+[211/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_pci.c.o
+[212/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_pku.c.o
+[213/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_pcons.c.o
+[214/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_pmaps.c.o
+[215/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_prn.c.o
+[216/395] Building C object crypto/pkcs7/CMakeFiles/pkcs7.dir/pkcs7.c.o
+[217/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_skey.c.o
+[218/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_sxnet.c.o
+[219/395] Building C object crypto/pkcs7/CMakeFiles/pkcs7.dir/pkcs7_x509.c.o
+[220/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_purp.c.o
+[221/395] Building C object crypto/pkcs8/CMakeFiles/pkcs8_lib.dir/p5_pbev2.c.o
+[222/395] Building C object crypto/pkcs8/CMakeFiles/pkcs8_lib.dir/pkcs8.c.o
+[223/395] Generating aesni-gcm-x86_64.S
+[224/395] Building C object crypto/pkcs8/CMakeFiles/pkcs8_lib.dir/pkcs8_x509.c.o
+[225/395] Building CXX object crypto/test/CMakeFiles/test_support.dir/malloc.cc.o
+[226/395] Building C object crypto/x509v3/CMakeFiles/x509v3.dir/v3_utl.c.o
+[227/395] Generating aes-x86_64.S
+[228/395] Generating md5-x86_64.S
+[229/395] Generating rdrand-x86_64.S
+[230/395] Generating bsaes-x86_64.S
+[231/395] Generating ghash-x86_64.S
+[232/395] Building CXX object crypto/test/CMakeFiles/test_support.dir/test_util.cc.o
+[233/395] Generating aesni-x86_64.S
+[234/395] Generating vpaes-x86_64.S
+[235/395] Generating p256-x86_64-asm.S
+[236/395] Generating rsaz-avx2.S
+[237/395] Generating x86_64-mont.S
+[238/395] Generating x86_64-mont5.S
+[239/395] Generating sha512-x86_64.S
+[240/395] Generating sha256-x86_64.S
+[241/395] Building C object decrepit/bio/CMakeFiles/bio_decrepit.dir/base64_bio.c.o
+[242/395] Building C object decrepit/cast/CMakeFiles/cast.dir/cast_tables.c.o
+[243/395] Building C object decrepit/cfb/CMakeFiles/cfb.dir/cfb.c.o
+[244/395] Building C object decrepit/blowfish/CMakeFiles/blowfish.dir/blowfish.c.o
+[245/395] Generating sha1-x86_64.S
+[246/395] Building C object decrepit/des/CMakeFiles/des_decrepit.dir/cfb64ede.c.o
+[247/395] Building C object decrepit/dh/CMakeFiles/dh_decrepit.dir/dh_decrepit.c.o
+[248/395] Building CXX object crypto/test/CMakeFiles/boringssl_gtest_main.dir/gtest_main.cc.o
+[249/395] Building C object decrepit/evp/CMakeFiles/evp_decrepit.dir/dss1.c.o
+[250/395] Building C object decrepit/dsa/CMakeFiles/dsa_decrepit.dir/dsa_decrepit.c.o
+[251/395] Building C object decrepit/cast/CMakeFiles/cast.dir/cast.c.o
+[252/395] Building CXX object crypto/test/CMakeFiles/test_support.dir/file_test.cc.o
+[253/395] Building C object third_party/fiat/CMakeFiles/fiat.dir/curve25519.c.o
+[254/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/chacha/chacha_test.cc.o
+[255/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/asn1/asn1_test.cc.o
+[256/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/buf/buf_test.cc.o
+[257/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/cmac/cmac_test.cc.o
+[258/395] Building CXX object CMakeFiles/boringssl_gtest.dir/third_party/googletest/src/gtest-all.cc.o
+[259/395] Linking CXX static library libboringssl_gtest.a
+[260/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/cipher_extra/cipher_test.cc.o
+[261/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/base64/base64_test.cc.o
+[262/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/curve25519/spake25519_test.cc.o
+[263/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/compiler_test.cc.o
+[264/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/constant_time_test.cc.o
+[265/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/curve25519/ed25519_test.cc.o
+[266/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/curve25519/x25519_test.cc.o
+[267/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/dh/dh_test.cc.o
+[268/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/ecdh/ecdh_test.cc.o
+[269/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/dsa/dsa_test.cc.o
+[270/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/cipher_extra/aead_test.cc.o
+[271/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/bio/bio_test.cc.o
+[272/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/bytestring/bytestring_test.cc.o
+[273/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/digest_extra/digest_test.cc.o
+[274/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/evp/evp_test.cc.o
+[275/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/err/err_test.cc.o
+[276/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/evp/pbkdf_test.cc.o
+[277/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/fipsmodule/aes/aes_test.cc.o
+[278/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/evp/evp_extra_test.cc.o
+[279/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/evp/scrypt_test.cc.o
+[280/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/hkdf/hkdf_test.cc.o
+[281/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/fipsmodule/modes/gcm_test.cc.o
+[282/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/fipsmodule/rand/ctrdrbg_test.cc.o
+[283/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/fipsmodule/ec/p256-x86_64_test.cc.o
+[284/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/obj/obj_test.cc.o
+[285/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/fipsmodule/ecdsa/ecdsa_test.cc.o
+[286/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/lhash/lhash_test.cc.o
+[287/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/hmac_extra/hmac_test.cc.o
+[288/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/fipsmodule/ec/ec_test.cc.o
+[289/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/poly1305/poly1305_test.cc.o
+[290/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/pool/pool_test.cc.o
+[291/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/refcount_test.cc.o
+[292/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/pkcs8/pkcs8_test.cc.o
+[293/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/pkcs7/pkcs7_test.cc.o
+[294/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/pkcs8/pkcs12_test.cc.o
+[295/395] Building C object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/is_fips.c.o
+[296/395] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-gcm-x86_64.S.o
+[297/395] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aesni-x86_64.S.o
+[298/395] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/aes-x86_64.S.o
+[299/395] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bsaes-x86_64.S.o
+[300/395] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/ghash-x86_64.S.o
+[301/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/self_test.cc.o
+[302/395] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/md5-x86_64.S.o
+[303/395] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/p256-x86_64-asm.S.o
+[304/395] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/rdrand-x86_64.S.o
+[305/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/test/file_test_gtest.cc.o
+[306/395] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/rsaz-avx2.S.o
+[307/395] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha256-x86_64.S.o
+[308/395] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha1-x86_64.S.o
+[309/395] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/vpaes-x86_64.S.o
+[310/395] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/sha512-x86_64.S.o
+[311/395] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/x86_64-mont5.S.o
+[312/395] Building ASM object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/x86_64-mont.S.o
+[313/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/thread_test.cc.o
+[314/395] Building CXX object ssl/CMakeFiles/ssl.dir/bio_ssl.cc.o
+[315/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/x509v3/tab_test.cc.o
+[316/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/x509v3/v3name_test.cc.o
+[317/395] Building CXX object ssl/CMakeFiles/ssl.dir/d1_both.cc.o
+[318/395] Building CXX object ssl/CMakeFiles/ssl.dir/custom_extensions.cc.o
+[319/395] Building CXX object ssl/CMakeFiles/ssl.dir/d1_pkt.cc.o
+[320/395] Building CXX object ssl/CMakeFiles/ssl.dir/d1_srtp.cc.o
+[321/395] Building CXX object ssl/CMakeFiles/ssl.dir/dtls_method.cc.o
+[322/395] Building CXX object ssl/CMakeFiles/ssl.dir/handoff.cc.o
+[323/395] Building CXX object ssl/CMakeFiles/ssl.dir/d1_lib.cc.o
+[324/395] Building CXX object ssl/CMakeFiles/ssl.dir/dtls_record.cc.o
+[325/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/rsa_extra/rsa_test.cc.o
+[326/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/fipsmodule/bn/bn_test.cc.o
+[327/395] Building CXX object ssl/CMakeFiles/ssl.dir/s3_both.cc.o
+[328/395] Building CXX object ssl/CMakeFiles/ssl.dir/s3_pkt.cc.o
+[329/395] Building CXX object ssl/CMakeFiles/ssl.dir/handshake_client.cc.o
+[330/395] Building CXX object ssl/CMakeFiles/ssl.dir/s3_lib.cc.o
+[331/395] Building CXX object ssl/CMakeFiles/ssl.dir/handshake.cc.o
+[332/395] Building CXX object ssl/CMakeFiles/ssl.dir/ssl_aead_ctx.cc.o
+[333/395] Building CXX object crypto/CMakeFiles/crypto_test.dir/x509/x509_test.cc.o
+[334/395] Building CXX object ssl/CMakeFiles/ssl.dir/handshake_server.cc.o
+[335/395] Building CXX object ssl/CMakeFiles/ssl.dir/ssl_file.cc.o
+[336/395] Building CXX object ssl/CMakeFiles/ssl.dir/ssl_asn1.cc.o
+[337/395] Building CXX object ssl/CMakeFiles/ssl.dir/ssl_buffer.cc.o
+[338/395] Building CXX object ssl/CMakeFiles/ssl.dir/ssl_key_share.cc.o
+[339/395] Building CXX object ssl/CMakeFiles/ssl.dir/ssl_cert.cc.o
+[340/395] Building CXX object ssl/CMakeFiles/ssl.dir/ssl_cipher.cc.o
+[341/395] Building CXX object ssl/CMakeFiles/ssl.dir/ssl_stat.cc.o
+[342/395] Building CXX object ssl/CMakeFiles/ssl.dir/ssl_privkey.cc.o
+[343/395] Building CXX object ssl/CMakeFiles/ssl.dir/ssl_session.cc.o
+[344/395] Building CXX object ssl/CMakeFiles/ssl.dir/ssl_versions.cc.o
+[345/395] Building CXX object ssl/CMakeFiles/ssl.dir/ssl_lib.cc.o
+[346/395] Building CXX object ssl/CMakeFiles/ssl.dir/tls_method.cc.o
+[347/395] Building CXX object ssl/CMakeFiles/ssl.dir/ssl_transcript.cc.o
+[348/395] Building CXX object ssl/CMakeFiles/ssl.dir/t1_enc.cc.o
+[349/395] Building CXX object ssl/CMakeFiles/ssl.dir/tls_record.cc.o
+[350/395] Building CXX object ssl/CMakeFiles/ssl.dir/ssl_x509.cc.o
+[351/395] Building CXX object ssl/CMakeFiles/ssl.dir/tls13_enc.cc.o
+[352/395] Building CXX object ssl/CMakeFiles/ssl.dir/tls13_client.cc.o
+[353/395] Building CXX object ssl/test/CMakeFiles/bssl_shim.dir/async_bio.cc.o
+[354/395] Building CXX object ssl/CMakeFiles/ssl.dir/tls13_both.cc.o
+[355/395] Building CXX object ssl/CMakeFiles/ssl.dir/tls13_server.cc.o
+[356/395] Building CXX object ssl/test/CMakeFiles/bssl_shim.dir/test_config.cc.o
+[357/395] Building CXX object ssl/test/CMakeFiles/bssl_shim.dir/packeted_bio.cc.o
+[358/395] Building CXX object tool/CMakeFiles/bssl.dir/const.cc.o
+[359/395] Building CXX object ssl/CMakeFiles/ssl.dir/t1_lib.cc.o
+[360/395] Building CXX object tool/CMakeFiles/bssl.dir/ciphers.cc.o
+[361/395] Building CXX object tool/CMakeFiles/bssl.dir/args.cc.o
+[362/395] Building CXX object tool/CMakeFiles/bssl.dir/file.cc.o
+[363/395] Building CXX object tool/CMakeFiles/bssl.dir/digest.cc.o
+[364/395] Building CXX object ssl/CMakeFiles/ssl_test.dir/span_test.cc.o
+[365/395] Building CXX object tool/CMakeFiles/bssl.dir/generate_ed25519.cc.o
+[366/395] Building CXX object tool/CMakeFiles/bssl.dir/genrsa.cc.o
+[367/395] Building CXX object tool/CMakeFiles/bssl.dir/rand.cc.o
+[368/395] Building CXX object tool/CMakeFiles/bssl.dir/client.cc.o
+[369/395] Building CXX object tool/CMakeFiles/bssl.dir/pkcs12.cc.o
+[370/395] Building CXX object tool/CMakeFiles/bssl.dir/sign.cc.o
+[371/395] Building C object decrepit/evp/CMakeFiles/evp_decrepit.dir/evp_do_all.c.o
+[372/395] Building CXX object tool/CMakeFiles/bssl.dir/tool.cc.o
+[373/395] Building C object decrepit/rc4/CMakeFiles/rc4_decrepit.dir/rc4_decrepit.c.o
+[374/395] Building C object decrepit/obj/CMakeFiles/obj_decrepit.dir/obj_decrepit.c.o
+[375/395] Building C object decrepit/rsa/CMakeFiles/rsa_decrepit.dir/rsa_decrepit.c.o
+[376/395] Building C object crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o
+[377/395] Building C object decrepit/ssl/CMakeFiles/ssl_decrepit.dir/ssl_decrepit.c.o
+[378/395] Linking C static library crypto/libcrypto.a
+[379/395] Building CXX object ssl/test/CMakeFiles/bssl_shim.dir/bssl_shim.cc.o
+[380/395] Building C object decrepit/x509/CMakeFiles/x509_decrepit.dir/x509_decrepit.c.o
+[381/395] Linking CXX static library ssl/libssl.a
+[382/395] Building C object decrepit/ripemd/CMakeFiles/ripemd_decrepit.dir/ripemd.c.o
+[383/395] Building CXX object tool/CMakeFiles/bssl.dir/transport_common.cc.o
+[384/395] Building C object decrepit/xts/CMakeFiles/xts.dir/xts.c.o
+[385/395] Linking CXX static library decrepit/libdecrepit.a
+[386/395] Building CXX object tool/CMakeFiles/bssl.dir/server.cc.o
+[387/395] Building CXX object decrepit/CMakeFiles/decrepit_test.dir/ripemd/ripemd_test.cc.o
+[388/395] Building CXX object tool/CMakeFiles/bssl.dir/speed.cc.o
+[389/395] Linking CXX executable ssl/test/bssl_shim
+[390/395] Building CXX object decrepit/CMakeFiles/decrepit_test.dir/cfb/cfb_test.cc.o
+[391/395] Linking CXX executable tool/bssl
+[392/395] Linking CXX executable decrepit/decrepit_test
+[393/395] Linking CXX executable crypto/crypto_test
+[394/395] Building CXX object ssl/CMakeFiles/ssl_test.dir/ssl_test.cc.o
+[395/395] Linking CXX executable ssl/ssl_test
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git
+[1/177] gcc -I/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -std=gnu11 -isystem/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -O2 -pipe -Icore/libsparse/include -Icore/base/include -c core/libsparse/sparse_crc32.c -o core/libsparse/sparse_crc32.c.o
+[2/177] gcc -I/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -std=gnu11 -isystem/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -O2 -pipe -Icore/libsparse/include -Icore/base/include -c core/libsparse/sparse_err.c -o core/libsparse/sparse_err.c.o
+[3/177] gcc -I/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -std=gnu11 -isystem/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -O2 -pipe -Icore/libsparse/include -Icore/base/include -c core/libsparse/sparse.c -o core/libsparse/sparse.c.o
+[4/177] gcc -I/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -std=gnu11 -isystem/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -O2 -pipe -Icore/libsparse/include -Icore/base/include -c core/libsparse/backed_block.c -o core/libsparse/backed_block.c.o
+[5/177] g++ -lpthread -lusb-1.0 -L/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/lib -L/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/lib -Wl,-rpath-link,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/lib -Wl,-rpath,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/lib -Wl,-rpath,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/lib -Wl,-O1 -L/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/lib -L/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/lib -Wl,-rpath-link,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/lib -Wl,-rpath,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/lib -Wl,-rpath,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/lib -Wl,-O1 core/base/file.cpp.o core/base/logging.cpp.o core/base/parsenetaddress.cpp.o core/base/stringprintf.cpp.o core/base/strings.cpp.o core/base/errors_unix.cpp.o core/base/test_utils.cpp.o core/liblog/log_event_write.c.o core/liblog/fake_log_device.c.o core/liblog/log_event_list.c.o core/liblog/logger_write.c.o core/liblog/config_write.c.o core/liblog/config_read.c.o core/liblog/logger_lock.c.o core/liblog/local_logger.c.o core/liblog/fake_writer.c.o core/liblog/logger_name.c.o core/liblog/stderr_write.c.o core/liblog/logprint.c.o core/libcutils/load_file.cpp.o core/libcutils/socket_local_client_unix.cpp.o core/libcutils/socket_network_client_unix.cpp.o core/libcutils/socket_local_server_unix.cpp.o core/libcutils/sockets_unix.cpp.o core/libcutils/socket_inaddr_any_server_unix.cpp.o core/libcutils/sockets.cpp.o core/libcutils/android_get_control_file.cpp.o core/libcutils/threads.cpp.o core/libcutils/fs_config.cpp.o core/libcutils/canned_fs_config.cpp.o core/adb/adb.cpp.o core/adb/adb_io.cpp.o core/adb/adb_listeners.cpp.o core/adb/adb_trace.cpp.o core/adb/adb_utils.cpp.o core/adb/bugreport.cpp.o core/adb/line_printer.cpp.o core/adb/sockets.cpp.o core/adb/transport.cpp.o core/adb/transport_local.cpp.o core/adb/transport_usb.cpp.o core/adb/transport_mdns_unsupported.cpp.o core/adb/fdevent.cpp.o core/adb/adb_auth_host.cpp.o core/adb/shell_service_protocol.cpp.o core/adb/console.cpp.o core/adb/socket_spec.cpp.o core/adb/commandline.cpp.o core/adb/adb_client.cpp.o core/adb/services.cpp.o core/adb/file_sync_client.cpp.o core/adb/sysdeps_unix.cpp.o core/adb/sysdeps/errno.cpp.o core/adb/client/main.cpp.o core/adb/client/usb_dispatch.cpp.o core/adb/client/usb_linux.cpp.o core/adb/client/usb_libusb.cpp.o core/adb/sysdeps/posix/network.cpp.o core/adb/diagnose_usb.cpp.o core/libcrypto_utils/android_pubkey.c.o boringssl/build/crypto/libcrypto.a -o adb
+FAILED: adb
+g++ -lpthread -lusb-1.0 -L/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/lib -L/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/lib -Wl,-rpath-link,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/lib -Wl,-rpath,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/lib -Wl,-rpath,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/lib -Wl,-O1 -L/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/lib -L/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/lib -Wl,-rpath-link,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/lib -Wl,-rpath,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/lib -Wl,-rpath,/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/lib -Wl,-O1 core/base/file.cpp.o core/base/logging.cpp.o core/base/parsenetaddress.cpp.o core/base/stringprintf.cpp.o core/base/strings.cpp.o core/base/errors_unix.cpp.o core/base/test_utils.cpp.o core/liblog/log_event_write.c.o core/liblog/fake_log_device.c.o core/liblog/log_event_list.c.o core/liblog/logger_write.c.o core/liblog/config_write.c.o core/liblog/config_read.c.o core/liblog/logger_lock.c.o core/liblog/local_logger.c.o core/liblog/fake_writer.c.o core/liblog/logger_name.c.o core/liblog/stderr_write.c.o core/liblog/logprint.c.o core/libcutils/load_file.cpp.o core/libcutils/socket_local_client_unix.cpp.o core/libcutils/socket_network_client_unix.cpp.o core/libcutils/socket_local_server_unix.cpp.o core/libcutils/sockets_unix.cpp.o core/libcutils/socket_inaddr_any_server_unix.cpp.o core/libcutils/sockets.cpp.o core/libcutils/android_get_control_file.cpp.o core/libcutils/threads.cpp.o core/libcutils/fs_config.cpp.o core/libcutils/canned_fs_config.cpp.o core/adb/adb.cpp.o core/adb/adb_io.cpp.o core/adb/adb_listeners.cpp.o core/adb/adb_trace.cpp.o core/adb/adb_utils.cpp.o core/adb/bugreport.cpp.o core/adb/line_printer.cpp.o core/adb/sockets.cpp.o core/adb/transport.cpp.o core/adb/transport_local.cpp.o core/adb/transport_usb.cpp.o core/adb/transport_mdns_unsupported.cpp.o core/adb/fdevent.cpp.o core/adb/adb_auth_host.cpp.o core/adb/shell_service_protocol.cpp.o core/adb/console.cpp.o core/adb/socket_spec.cpp.o core/adb/commandline.cpp.o core/adb/adb_client.cpp.o core/adb/services.cpp.o core/adb/file_sync_client.cpp.o core/adb/sysdeps_unix.cpp.o core/adb/sysdeps/errno.cpp.o core/adb/client/main.cpp.o core/adb/client/usb_dispatch.cpp.o core/adb/client/usb_linux.cpp.o core/adb/client/usb_libusb.cpp.o core/adb/sysdeps/posix/network.cpp.o core/adb/diagnose_usb.cpp.o core/libcrypto_utils/android_pubkey.c.o boringssl/build/crypto/libcrypto.a -o adb
+core/adb/commandline.cpp.o: In function `stdin_read_thread_loop(void*)':
+commandline.cpp:(.text+0x49d): undefined reference to `pthread_sigmask'
+commandline.cpp:(.text+0x4cb): undefined reference to `pthread_sigmask'
+core/adb/commandline.cpp.o: In function `adb_shell(int, char const**)':
+commandline.cpp:(.text+0x267c): undefined reference to `pthread_sigmask'
+commandline.cpp:(.text+0x26a3): undefined reference to `pthread_create'
+core/adb/client/usb_libusb.cpp.o: In function `libusb::get_device_address(libusb_device*)':
+usb_libusb.cpp:(.text+0x22): undefined reference to `libusb_get_device_address'
+usb_libusb.cpp:(.text+0x2c): undefined reference to `libusb_get_bus_number'
+core/adb/client/usb_libusb.cpp.o: In function `adb_thread_setname(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
+usb_libusb.cpp:(.text+0x149): undefined reference to `pthread_setname_np'
+core/adb/client/usb_libusb.cpp.o: In function `std::call_once<libusb::hotplug_callback(libusb_context*, libusb_device*, libusb_hotplug_event, void*)::{lambda()#1}>(std::once_flag&, libusb::hotplug_callback(libusb_context*, libusb_device*, libusb_hotplug_event, void*)::{lambda()#1}&&)::{lambda()#2}::_FUN()':
+usb_libusb.cpp:(.text+0x1bf): undefined reference to `pthread_create'
+core/adb/client/usb_libusb.cpp.o: In function `std::thread::_State_impl<std::thread::_Invoker<std::tuple<libusb::usb_init()::{lambda()#7}> > >::_M_run()':
+usb_libusb.cpp:(.text+0x3d3): undefined reference to `libusb_handle_events'
+core/adb/client/usb_libusb.cpp.o: In function `libusb::usb_init()':
+usb_libusb.cpp:(.text+0x411): undefined reference to `libusb_init'
+usb_libusb.cpp:(.text+0x487): undefined reference to `libusb_error_name'
+usb_libusb.cpp:(.text+0x4e8): undefined reference to `libusb_hotplug_register_callback'
+usb_libusb.cpp:(.text+0x526): undefined reference to `pthread_create'
+core/adb/client/usb_libusb.cpp.o: In function `libusb::perform_usb_transfer(libusb::usb_handle*, transfer_info*, std::unique_lock<std::mutex>) [clone .isra.25]':
+usb_libusb.cpp:(.text+0x859): undefined reference to `libusb_submit_transfer'
+usb_libusb.cpp:(.text+0x90e): undefined reference to `libusb_error_name'
+core/adb/client/usb_libusb.cpp.o: In function `libusb::transfer_callback(libusb_transfer*)':
+usb_libusb.cpp:(.text+0x1006): undefined reference to `libusb_submit_transfer'
+usb_libusb.cpp:(.text+0x107d): undefined reference to `libusb_error_name'
+usb_libusb.cpp:(.text+0x11fe): undefined reference to `libusb_error_name'
+usb_libusb.cpp:(.text+0x1261): undefined reference to `libusb_submit_transfer'
+usb_libusb.cpp:(.text+0x1317): undefined reference to `libusb_error_name'
+core/adb/client/usb_libusb.cpp.o: In function `libusb::usb_kick(libusb::usb_handle*)':
+usb_libusb.cpp:(.text+0x20b8): undefined reference to `libusb_cancel_transfer'
+usb_libusb.cpp:(.text+0x20c4): undefined reference to `libusb_cancel_transfer'
+usb_libusb.cpp:(.text+0x20d3): undefined reference to `libusb_release_interface'
+usb_libusb.cpp:(.text+0x20db): undefined reference to `libusb_close'
+core/adb/client/usb_libusb.cpp.o: In function `libusb::hotplug_callback(libusb_context*, libusb_device*, libusb_hotplug_event, void*)':
+usb_libusb.cpp:(.text+0x2188): undefined reference to `pthread_once'
+core/adb/client/usb_libusb.cpp.o: In function `libusb::hotplug_thread()':
+usb_libusb.cpp:(.text+0x2574): undefined reference to `pthread_create'
+usb_libusb.cpp:(.text+0x26ed): undefined reference to `libusb_free_transfer'
+usb_libusb.cpp:(.text+0x2705): undefined reference to `libusb_free_transfer'
+usb_libusb.cpp:(.text+0x2793): undefined reference to `libusb_cancel_transfer'
+usb_libusb.cpp:(.text+0x279f): undefined reference to `libusb_cancel_transfer'
+usb_libusb.cpp:(.text+0x27b3): undefined reference to `libusb_release_interface'
+usb_libusb.cpp:(.text+0x27bf): undefined reference to `libusb_close'
+core/adb/client/usb_libusb.cpp.o: In function `libusb::process_device(libusb_device*)':
+usb_libusb.cpp:(.text+0x2b69): undefined reference to `libusb_get_device_descriptor'
+usb_libusb.cpp:(.text+0x2c07): undefined reference to `libusb_get_active_config_descriptor'
+usb_libusb.cpp:(.text+0x2e23): undefined reference to `libusb_free_config_descriptor'
+usb_libusb.cpp:(.text+0x31ea): undefined reference to `libusb_error_name'
+usb_libusb.cpp:(.text+0x34f0): undefined reference to `libusb_error_name'
+usb_libusb.cpp:(.text+0x3557): undefined reference to `libusb_open'
+usb_libusb.cpp:(.text+0x35b2): undefined reference to `libusb_get_string_descriptor_ascii'
+usb_libusb.cpp:(.text+0x35e5): undefined reference to `libusb_claim_interface'
+usb_libusb.cpp:(.text+0x36a9): undefined reference to `libusb_error_name'
+usb_libusb.cpp:(.text+0x36d9): undefined reference to `libusb_close'
+usb_libusb.cpp:(.text+0x3796): undefined reference to `libusb_error_name'
+usb_libusb.cpp:(.text+0x37e4): undefined reference to `libusb_get_port_numbers'
+usb_libusb.cpp:(.text+0x3800): undefined reference to `libusb_get_bus_number'
+usb_libusb.cpp:(.text+0x3a79): undefined reference to `libusb_alloc_transfer'
+usb_libusb.cpp:(.text+0x3ae4): undefined reference to `libusb_alloc_transfer'
+usb_libusb.cpp:(.text+0x3c19): undefined reference to `libusb_free_transfer'
+usb_libusb.cpp:(.text+0x3c31): undefined reference to `libusb_free_transfer'
+usb_libusb.cpp:(.text+0x3d45): undefined reference to `libusb_free_config_descriptor'
+usb_libusb.cpp:(.text+0x4165): undefined reference to `libusb_error_name'
+usb_libusb.cpp:(.text+0x418c): undefined reference to `libusb_set_interface_alt_setting'
+usb_libusb.cpp:(.text+0x41ad): undefined reference to `libusb_clear_halt'
+usb_libusb.cpp:(.text+0x41c7): undefined reference to `libusb_clear_halt'
+usb_libusb.cpp:(.text+0x42f9): undefined reference to `libusb_error_name'
+usb_libusb.cpp:(.text+0x4328): undefined reference to `libusb_release_interface'
+usb_libusb.cpp:(.text+0x438b): undefined reference to `libusb_cancel_transfer'
+usb_libusb.cpp:(.text+0x4397): undefined reference to `libusb_cancel_transfer'
+usb_libusb.cpp:(.text+0x43a6): undefined reference to `libusb_release_interface'
+usb_libusb.cpp:(.text+0x43ae): undefined reference to `libusb_close'
+usb_libusb.cpp:(.text+0x44cd): undefined reference to `libusb_error_name'
+usb_libusb.cpp:(.text+0x459e): undefined reference to `libusb_close'
+usb_libusb.cpp:(.text+0x45a6): undefined reference to `libusb_free_config_descriptor'
+usb_libusb.cpp:(.text+0x4693): undefined reference to `libusb_free_transfer'
+core/adb/client/usb_libusb.cpp.o: In function `std::thread::_State_impl<std::thread::_Invoker<std::tuple<libusb::device_connected(libusb_device*)::{lambda()#1}> > >::_M_run()':
+usb_libusb.cpp:(.text+0x49ff): undefined reference to `libusb_get_port_numbers'
+usb_libusb.cpp:(.text+0x4a1a): undefined reference to `libusb_get_bus_number'
+core/adb/client/usb_libusb.cpp.o: In function `libusb::usb_cleanup()':
+usb_libusb.cpp:(.text+0x6f9): undefined reference to `libusb_hotplug_deregister_callback'
+core/adb/client/usb_libusb.cpp.o: In function `std::default_delete<libusb::usb_handle>::operator()(libusb::usb_handle*) const [clone .isra.51] [clone .part.52]':
+usb_libusb.cpp:(.text.unlikely+0x7f): undefined reference to `libusb_cancel_transfer'
+usb_libusb.cpp:(.text.unlikely+0x8b): undefined reference to `libusb_cancel_transfer'
+usb_libusb.cpp:(.text.unlikely+0x9a): undefined reference to `libusb_release_interface'
+usb_libusb.cpp:(.text.unlikely+0xa2): undefined reference to `libusb_close'
+usb_libusb.cpp:(.text.unlikely+0xc8): undefined reference to `libusb_free_transfer'
+usb_libusb.cpp:(.text.unlikely+0xe0): undefined reference to `libusb_free_transfer'
+core/adb/client/usb_libusb.cpp.o: In function `std::_Hashtable<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<libusb::usb_handle, std::default_delete<libusb::usb_handle> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<libusb::usb_handle, std::default_delete<libusb::usb_handle> > > >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_erase(unsigned long, std::__detail::_Hash_node_base*, std::__detail::_Hash_node<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<libusb::usb_handle, std::default_delete<libusb::usb_handle> > >, true>*)':
+usb_libusb.cpp:(.text._ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10unique_ptrIN6libusb10usb_handleESt14default_deleteISA_EEESaISE_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSG_18_Mod_range_hashingENSG_20_Default_ranged_hashENSG_20_Prime_rehash_policyENSG_17_Hashtable_traitsILb1ELb0ELb1EEEE8_M_eraseEmPNSG_15_Hash_node_baseEPNSG_10_Hash_nodeISE_Lb1EEE[_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10unique_ptrIN6libusb10usb_handleESt14default_deleteISA_EEESaISE_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSG_18_Mod_range_hashingENSG_20_Default_ranged_hashENSG_20_Prime_rehash_policyENSG_17_Hashtable_traitsILb1ELb0ELb1EEEE8_M_eraseEmPNSG_15_Hash_node_baseEPNSG_10_Hash_nodeISE_Lb1EEE]+0xb5): undefined reference to `libusb_free_transfer'
+usb_libusb.cpp:(.text._ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10unique_ptrIN6libusb10usb_handleESt14default_deleteISA_EEESaISE_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSG_18_Mod_range_hashingENSG_20_Default_ranged_hashENSG_20_Prime_rehash_policyENSG_17_Hashtable_traitsILb1ELb0ELb1EEEE8_M_eraseEmPNSG_15_Hash_node_baseEPNSG_10_Hash_nodeISE_Lb1EEE[_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10unique_ptrIN6libusb10usb_handleESt14default_deleteISA_EEESaISE_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSG_18_Mod_range_hashingENSG_20_Default_ranged_hashENSG_20_Prime_rehash_policyENSG_17_Hashtable_traitsILb1ELb0ELb1EEEE8_M_eraseEmPNSG_15_Hash_node_baseEPNSG_10_Hash_nodeISE_Lb1EEE]+0xcd): undefined reference to `libusb_free_transfer'
+usb_libusb.cpp:(.text._ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10unique_ptrIN6libusb10usb_handleESt14default_deleteISA_EEESaISE_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSG_18_Mod_range_hashingENSG_20_Default_ranged_hashENSG_20_Prime_rehash_policyENSG_17_Hashtable_traitsILb1ELb0ELb1EEEE8_M_eraseEmPNSG_15_Hash_node_baseEPNSG_10_Hash_nodeISE_Lb1EEE[_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10unique_ptrIN6libusb10usb_handleESt14default_deleteISA_EEESaISE_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSG_18_Mod_range_hashingENSG_20_Default_ranged_hashENSG_20_Prime_rehash_policyENSG_17_Hashtable_traitsILb1ELb0ELb1EEEE8_M_eraseEmPNSG_15_Hash_node_baseEPNSG_10_Hash_nodeISE_Lb1EEE]+0x1d4): undefined reference to `libusb_cancel_transfer'
+usb_libusb.cpp:(.text._ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10unique_ptrIN6libusb10usb_handleESt14default_deleteISA_EEESaISE_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSG_18_Mod_range_hashingENSG_20_Default_ranged_hashENSG_20_Prime_rehash_policyENSG_17_Hashtable_traitsILb1ELb0ELb1EEEE8_M_eraseEmPNSG_15_Hash_node_baseEPNSG_10_Hash_nodeISE_Lb1EEE[_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10unique_ptrIN6libusb10usb_handleESt14default_deleteISA_EEESaISE_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSG_18_Mod_range_hashingENSG_20_Default_ranged_hashENSG_20_Prime_rehash_policyENSG_17_Hashtable_traitsILb1ELb0ELb1EEEE8_M_eraseEmPNSG_15_Hash_node_baseEPNSG_10_Hash_nodeISE_Lb1EEE]+0x1e0): undefined reference to `libusb_cancel_transfer'
+usb_libusb.cpp:(.text._ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10unique_ptrIN6libusb10usb_handleESt14default_deleteISA_EEESaISE_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSG_18_Mod_range_hashingENSG_20_Default_ranged_hashENSG_20_Prime_rehash_policyENSG_17_Hashtable_traitsILb1ELb0ELb1EEEE8_M_eraseEmPNSG_15_Hash_node_baseEPNSG_10_Hash_nodeISE_Lb1EEE[_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10unique_ptrIN6libusb10usb_handleESt14default_deleteISA_EEESaISE_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSG_18_Mod_range_hashingENSG_20_Default_ranged_hashENSG_20_Prime_rehash_policyENSG_17_Hashtable_traitsILb1ELb0ELb1EEEE8_M_eraseEmPNSG_15_Hash_node_baseEPNSG_10_Hash_nodeISE_Lb1EEE]+0x1ef): undefined reference to `libusb_release_interface'
+usb_libusb.cpp:(.text._ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10unique_ptrIN6libusb10usb_handleESt14default_deleteISA_EEESaISE_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSG_18_Mod_range_hashingENSG_20_Default_ranged_hashENSG_20_Prime_rehash_policyENSG_17_Hashtable_traitsILb1ELb0ELb1EEEE8_M_eraseEmPNSG_15_Hash_node_baseEPNSG_10_Hash_nodeISE_Lb1EEE[_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10unique_ptrIN6libusb10usb_handleESt14default_deleteISA_EEESaISE_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSG_18_Mod_range_hashingENSG_20_Default_ranged_hashENSG_20_Prime_rehash_policyENSG_17_Hashtable_traitsILb1ELb0ELb1EEEE8_M_eraseEmPNSG_15_Hash_node_baseEPNSG_10_Hash_nodeISE_Lb1EEE]+0x1f7): undefined reference to `libusb_close'
+core/adb/client/usb_libusb.cpp.o: In function `std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::unique_ptr<libusb::usb_handle, std::default_delete<libusb::usb_handle> > >::~pair()':
+usb_libusb.cpp:(.text._ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10unique_ptrIN6libusb10usb_handleESt14default_deleteIS9_EEED2Ev[_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10unique_ptrIN6libusb10usb_handleESt14default_deleteIS9_EEED5Ev]+0x74): undefined reference to `libusb_free_transfer'
+usb_libusb.cpp:(.text._ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10unique_ptrIN6libusb10usb_handleESt14default_deleteIS9_EEED2Ev[_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10unique_ptrIN6libusb10usb_handleESt14default_deleteIS9_EEED5Ev]+0x8c): undefined reference to `libusb_free_transfer'
+usb_libusb.cpp:(.text._ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10unique_ptrIN6libusb10usb_handleESt14default_deleteIS9_EEED2Ev[_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10unique_ptrIN6libusb10usb_handleESt14default_deleteIS9_EEED5Ev]+0x144): undefined reference to `libusb_cancel_transfer'
+usb_libusb.cpp:(.text._ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10unique_ptrIN6libusb10usb_handleESt14default_deleteIS9_EEED2Ev[_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10unique_ptrIN6libusb10usb_handleESt14default_deleteIS9_EEED5Ev]+0x150): undefined reference to `libusb_cancel_transfer'
+usb_libusb.cpp:(.text._ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10unique_ptrIN6libusb10usb_handleESt14default_deleteIS9_EEED2Ev[_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10unique_ptrIN6libusb10usb_handleESt14default_deleteIS9_EEED5Ev]+0x15f): undefined reference to `libusb_release_interface'
+usb_libusb.cpp:(.text._ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10unique_ptrIN6libusb10usb_handleESt14default_deleteIS9_EEED2Ev[_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10unique_ptrIN6libusb10usb_handleESt14default_deleteIS9_EEED5Ev]+0x167): undefined reference to `libusb_close'
+core/adb/transport.cpp.o: In function `read_transport_thread(void*)':
+transport.cpp:(.text+0x4ca2): undefined reference to `pthread_setname_np'
+core/adb/transport.cpp.o: In function `write_transport_thread(void*)':
+transport.cpp:(.text+0x5ad2): undefined reference to `pthread_setname_np'
+core/adb/transport.cpp.o: In function `transport_registration_func(int, unsigned int, void*)':
+transport.cpp:(.text+0x7b35): undefined reference to `pthread_create'
+transport.cpp:(.text+0x7ba7): undefined reference to `pthread_create'
+core/adb/transport_local.cpp.o: In function `local_init(int)':
+transport_local.cpp:(.text+0x14d): undefined reference to `pthread_create'
+core/adb/transport_local.cpp.o: In function `client_socket_thread(int)':
+transport_local.cpp:(.text+0x1374): undefined reference to `pthread_setname_np'
+core/adb/client/main.cpp.o: In function `adb_server_main(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int)':
+main.cpp:(.text+0x683): undefined reference to `pthread_create'
+core/adb/client/usb_linux.cpp.o: In function `native::usb_kick(native::usb_handle*)':
+usb_linux.cpp:(.text+0x2b6): undefined reference to `pthread_kill'
+core/adb/client/usb_linux.cpp.o: In function `native::usb_init()':
+usb_linux.cpp:(.text+0x681): undefined reference to `pthread_create'
+core/adb/client/usb_linux.cpp.o: In function `native::device_poll_thread()':
+usb_linux.cpp:(.text+0x3537): undefined reference to `pthread_setname_np'
+core/liblog/logger_lock.c.o: In function `__android_log_trylock':
+logger_lock.c:(.text+0x18): undefined reference to `pthread_mutex_trylock'
+core/liblog/local_logger.c.o: In function `writeToLocalGetReadbleSize':
+local_logger.c:(.text+0x2d): undefined reference to `pthread_rwlock_rdlock'
+local_logger.c:(.text+0x52): undefined reference to `pthread_rwlock_unlock'
+core/liblog/local_logger.c.o: In function `writeToLocalGetSize':
+local_logger.c:(.text+0x81): undefined reference to `pthread_rwlock_rdlock'
+local_logger.c:(.text+0x99): undefined reference to `pthread_rwlock_unlock'
+core/liblog/local_logger.c.o: In function `writeToLocalSetSize':
+local_logger.c:(.text+0xdc): undefined reference to `pthread_rwlock_wrlock'
+local_logger.c:(.text+0xf4): undefined reference to `pthread_rwlock_unlock'
+core/liblog/local_logger.c.o: In function `writeToLocalClose':
+local_logger.c:(.text+0x12c): undefined reference to `pthread_rwlock_wrlock'
+core/liblog/local_logger.c.o: In function `writeToLocalClear':
+local_logger.c:(.text+0x17c): undefined reference to `pthread_rwlock_wrlock'
+local_logger.c:(.text+0x1c1): undefined reference to `pthread_rwlock_rdlock'
+local_logger.c:(.text+0x1c9): undefined reference to `pthread_rwlock_unlock'
+local_logger.c:(.text+0x200): undefined reference to `pthread_rwlock_unlock'
+core/liblog/local_logger.c.o: In function `writeToLocalPoll':
+local_logger.c:(.text+0x2a3): undefined reference to `pthread_rwlock_rdlock'
+local_logger.c:(.text+0x305): undefined reference to `pthread_rwlock_unlock'
+core/liblog/local_logger.c.o: In function `writeToLocalRead':
+local_logger.c:(.text+0x34d): undefined reference to `pthread_rwlock_rdlock'
+local_logger.c:(.text+0x3a4): undefined reference to `pthread_rwlock_unlock'
+local_logger.c:(.text+0x420): undefined reference to `pthread_rwlock_unlock'
+core/liblog/local_logger.c.o: In function `LogBufferClear.constprop.5':
+local_logger.c:(.text+0x4c9): undefined reference to `pthread_rwlock_wrlock'
+core/liblog/local_logger.c.o: In function `writeToLocalInit':
+local_logger.c:(.text+0x5c8): undefined reference to `pthread_rwlock_wrlock'
+local_logger.c:(.text+0x662): undefined reference to `pthread_rwlock_unlock'
+local_logger.c:(.text+0x67e): undefined reference to `pthread_rwlock_wrlock'
+local_logger.c:(.text+0x6a1): undefined reference to `pthread_rwlock_unlock'
+core/liblog/local_logger.c.o: In function `writeToLocalWrite':
+local_logger.c:(.text+0x7c7): undefined reference to `pthread_rwlock_wrlock'
+local_logger.c:(.text+0x87d): undefined reference to `pthread_rwlock_rdlock'
+local_logger.c:(.text+0x889): undefined reference to `pthread_rwlock_unlock'
+local_logger.c:(.text+0x8c2): undefined reference to `pthread_rwlock_unlock'
+core/liblog/local_logger.c.o: In function `writeToLocalReset':
+local_logger.c:(.text+0x98c): undefined reference to `pthread_rwlock_wrlock'
+local_logger.c:(.text+0x9af): undefined reference to `pthread_rwlock_unlock'
+core/liblog/local_logger.c.o: In function `writeToLocalClose':
+local_logger.c:(.text+0x144): undefined reference to `pthread_rwlock_unlock'
+core/liblog/local_logger.c.o: In function `LogBufferClear.constprop.5':
+local_logger.c:(.text+0x548): undefined reference to `pthread_rwlock_unlock'
+core/libcutils/threads.cpp.o: In function `thread_store_set':
+threads.cpp:(.text+0x61): undefined reference to `pthread_key_create'
+core/libcutils/threads.cpp.o: In function `thread_store_get':
+threads.cpp:(.text+0x2b): undefined reference to `pthread_getspecific'
+core/libcutils/threads.cpp.o: In function `thread_store_set':
+threads.cpp:(.text+0x83): undefined reference to `pthread_setspecific'
+core/adb/services.cpp.o: In function `create_service_thread(char const*, void (*)(int, void*), void*)':
+services.cpp:(.text+0xd5): undefined reference to `pthread_create'
+core/adb/services.cpp.o: In function `service_bootstrap_func(void*)':
+services.cpp:(.text+0x3de): undefined reference to `pthread_setname_np'
+boringssl/build/crypto/libcrypto.a(thread_pthread.c.o): In function `thread_local_init':
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build/../crypto/thread_pthread.c:126: undefined reference to `pthread_key_create'
+boringssl/build/crypto/libcrypto.a(thread_pthread.c.o): In function `CRYPTO_MUTEX_init':
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build/../crypto/thread_pthread.c:31: undefined reference to `pthread_rwlock_init'
+boringssl/build/crypto/libcrypto.a(thread_pthread.c.o): In function `CRYPTO_MUTEX_lock_read':
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build/../crypto/thread_pthread.c:37: undefined reference to `pthread_rwlock_rdlock'
+boringssl/build/crypto/libcrypto.a(thread_pthread.c.o): In function `CRYPTO_MUTEX_lock_write':
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build/../crypto/thread_pthread.c:43: undefined reference to `pthread_rwlock_wrlock'
+boringssl/build/crypto/libcrypto.a(thread_pthread.c.o): In function `CRYPTO_MUTEX_unlock_read':
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build/../crypto/thread_pthread.c:49: undefined reference to `pthread_rwlock_unlock'
+boringssl/build/crypto/libcrypto.a(thread_pthread.c.o): In function `CRYPTO_STATIC_MUTEX_lock_read':
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build/../crypto/thread_pthread.c:65: undefined reference to `pthread_rwlock_rdlock'
+boringssl/build/crypto/libcrypto.a(thread_pthread.c.o): In function `CRYPTO_STATIC_MUTEX_lock_write':
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build/../crypto/thread_pthread.c:71: undefined reference to `pthread_rwlock_wrlock'
+boringssl/build/crypto/libcrypto.a(thread_pthread.c.o): In function `CRYPTO_STATIC_MUTEX_unlock_read':
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build/../crypto/thread_pthread.c:77: undefined reference to `pthread_rwlock_unlock'
+boringssl/build/crypto/libcrypto.a(thread_pthread.c.o): In function `CRYPTO_once':
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build/../crypto/thread_pthread.c:89: undefined reference to `pthread_once'
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build/../crypto/thread_pthread.c:89: undefined reference to `pthread_once'
+boringssl/build/crypto/libcrypto.a(thread_pthread.c.o): In function `CRYPTO_get_thread_local':
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build/../crypto/thread_pthread.c:135: undefined reference to `pthread_getspecific'
+boringssl/build/crypto/libcrypto.a(thread_pthread.c.o): In function `CRYPTO_once':
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build/../crypto/thread_pthread.c:89: undefined reference to `pthread_once'
+boringssl/build/crypto/libcrypto.a(thread_pthread.c.o): In function `CRYPTO_set_thread_local':
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build/../crypto/thread_pthread.c:150: undefined reference to `pthread_getspecific'
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build/../crypto/thread_pthread.c:158: undefined reference to `pthread_setspecific'
+boringssl/build/crypto/libcrypto.a(thread_pthread.c.o): In function `CRYPTO_MUTEX_cleanup':
+/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/git/boringssl/build/../crypto/thread_pthread.c:61: undefined reference to `pthread_rwlock_destroy'
+collect2: error: ld returned 1 exit status
+[6/177] g++ -std=gnu++17 -isystem/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -O2 -pipe -Icore/include -c core/libutils/FileMap.cpp -o core/libutils/FileMap.cpp.o
+[7/177] gcc -I/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -std=gnu11 -isystem/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -O2 -pipe -Icore/libsparse/include -Icore/base/include -c core/libsparse/output_file.c -o core/libsparse/output_file.c.o
+[8/177] gcc -I/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -std=gnu11 -isystem/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -O2 -pipe -D_GNU_SOURCE -Icore/libsparse/include -Icore/include -Iselinux/libselinux/include -Iextras/ext4_utils/include -c extras/ext4_utils/ext4_utils.c -o extras/ext4_utils/ext4_utils.c.o
+[9/177] g++ -std=gnu++17 -isystem/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -O2 -pipe -Icore/libsparse/include -Icore/base/include -c core/libsparse/sparse_read.cpp -o core/libsparse/sparse_read.cpp.o
+[10/177] g++ -std=gnu++17 -isystem/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -O2 -pipe -DFASTBOOT_VERSION="\"9.0.0.r10\"" -D_GNU_SOURCE -D_XOPEN_SOURCE=700 -DUSE_F2FS -Icore/base/include -Icore/include -Icore/adb -Icore/libsparse/include -Icore/mkbootimg -Iextras/ext4_utils/include -Iextras/f2fs_utils -Icore/libziparchive/include -Icore/mkbootimg/include/bootimg -c core/fastboot/socket.cpp -o core/fastboot/socket.cpp.o
+[11/177] g++ -std=gnu++17 -isystem/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -O2 -pipe -DFASTBOOT_VERSION="\"9.0.0.r10\"" -D_GNU_SOURCE -D_XOPEN_SOURCE=700 -DUSE_F2FS -Icore/base/include -Icore/include -Icore/adb -Icore/libsparse/include -Icore/mkbootimg -Iextras/ext4_utils/include -Iextras/f2fs_utils -Icore/libziparchive/include -Icore/mkbootimg/include/bootimg -c core/fastboot/tcp.cpp -o core/fastboot/tcp.cpp.o
+[12/177] g++ -std=gnu++17 -isystem/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -O2 -pipe -DFASTBOOT_VERSION="\"9.0.0.r10\"" -D_GNU_SOURCE -D_XOPEN_SOURCE=700 -DUSE_F2FS -Icore/base/include -Icore/include -Icore/adb -Icore/libsparse/include -Icore/mkbootimg -Iextras/ext4_utils/include -Iextras/f2fs_utils -Icore/libziparchive/include -Icore/mkbootimg/include/bootimg -c core/fastboot/udp.cpp -o core/fastboot/udp.cpp.o
+[13/177] g++ -std=gnu++17 -isystem/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -O2 -pipe -Icore/base/include -Icore/include -Icore/libziparchive/include -c core/libziparchive/zip_archive.cc -o core/libziparchive/zip_archive.cc.o
+[14/177] g++ -std=gnu++17 -isystem/OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/recipe-sysroot-native/usr/include -O2 -pipe -DFASTBOOT_VERSION="\"9.0.0.r10\"" -D_GNU_SOURCE -D_XOPEN_SOURCE=700 -DUSE_F2FS -Icore/base/include -Icore/include -Icore/adb -Icore/libsparse/include -Icore/mkbootimg -Iextras/ext4_utils/include -Iextras/f2fs_utils -Icore/libziparchive/include -Icore/mkbootimg/include/bootimg -c core/fastboot/fastboot.cpp -o core/fastboot/fastboot.cpp.o
+ninja: build stopped: subcommand failed.
+WARNING: /OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/temp/run.do_compile.12223:1 exit 1 from 'ninja'
+ERROR: Function failed: do_compile (log file is located at /OE/build/owpb/webos-ports/tmp-glibc/work/x86_64-linux/android-tools-native/9.0.0.r10-r0/temp/log.do_compile.12223)
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg.mk b/meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg.mk
deleted file mode 100644
index 519f609fd2..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-# Makefile for mkbootimg
-
-SRCDIR ?= $(S)
-
-VPATH += $(SRCDIR)/system/core/mkbootimg
-mkbootimg_SRC_FILES += mkbootimg.c
-mkbootimg_OBJS := $(mkbootimg_SRC_FILES:.c=.o)
-
-VPATH += $(SRCDIR)/system/core/libmincrypt
-libmincrypt_SRC_FILES := dsa_sig.c p256.c p256_ec.c p256_ecdsa.c rsa.c sha.c sha256.c
-libmincrypt_OBJS := $(libmincrypt_SRC_FILES:.c=.o)
-
-CFLAGS += -DANDROID
-CFLAGS += -I$(SRCDIR)/system/core/mkbootimg
-CFLAGS += -I$(SRCDIR)/system/core/include
-CFLAGS += -include $(SRCDIR)/build/core/combo/include/arch/$(android_arch)/AndroidConfig.h
-
-LIBS += libmincrypt.a
-
-all: mkbootimg
-
-mkbootimg: libmincrypt.a $(mkbootimg_OBJS)
- $(CC) -o $@ $(LDFLAGS) $(mkbootimg_OBJS) $(LIBS)
-
-libmincrypt.a: $(libmincrypt_OBJS)
- $(AR) rcs $@ $(libmincrypt_OBJS)
-
-clean:
- $(RM) $(mkbootimg_OBJS) $(libmincrypt_OBJS) mkbootimg *.a
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/stdatomic.patch b/meta-oe/recipes-devtools/android-tools/android-tools/stdatomic.patch
new file mode 100644
index 0000000000..07d870ff7f
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/stdatomic.patch
@@ -0,0 +1,54 @@
+Description: Fix `stdatomic.h` in g++
+ `stdatomic.h` cannot be consumed by g++ because they refuse to implement
+ keywords like `_Atomic`, while Clang does.
+Author: Kai-Chung Yan
+Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60932
+--- a/adb/adb_trace.h
++++ b/adb/adb_trace.h
+@@ -62,7 +62,10 @@
+ #include <atomic>
+
+ #define ATRACE_TAG ATRACE_TAG_ADB
++extern "C" {
++using namespace std;
+ #include <cutils/trace.h>
++}
+ #include <utils/Trace.h>
+
+ #endif /* __ADB_TRACE_H */
+--- a/libcutils/include/cutils/trace.h
++++ b/libcutils/include/cutils/trace.h
+@@ -18,7 +18,9 @@
+ #define _LIBS_CUTILS_TRACE_H
+
+ #include <inttypes.h>
++#ifndef __cplusplus
+ #include <stdatomic.h>
++#endif
+ #include <stdbool.h>
+ #include <stdint.h>
+ #include <stdio.h>
+--- a/libcutils/include/cutils/atomic.h
++++ b/libcutils/include/cutils/atomic.h
+@@ -19,7 +19,9 @@
+
+ #include <stdint.h>
+ #include <sys/types.h>
++#ifndef __cplusplus
+ #include <stdatomic.h>
++#endif
+
+ #ifndef ANDROID_ATOMIC_INLINE
+ #define ANDROID_ATOMIC_INLINE static inline
+--- a/libutils/include/utils/Atomic.h
++++ b/libutils/include/utils/Atomic.h
+@@ -17,6 +17,9 @@
+ #ifndef ANDROID_UTILS_ATOMIC_H
+ #define ANDROID_UTILS_ATOMIC_H
+
++extern "C" {
++using namespace std;
+ #include <cutils/atomic.h>
++}
+
+ #endif // ANDROID_UTILS_ATOMIC_H
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb b/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
deleted file mode 100644
index 2604f65e1f..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb
+++ /dev/null
@@ -1,161 +0,0 @@
-DESCRIPTION = "Different utilities from Android"
-SECTION = "console/utils"
-LICENSE = "Apache-2.0 & GPL-2.0 & BSD-2-Clause & BSD-3-Clause"
-LIC_FILES_CHKSUM = " \
- file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10 \
- file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \
- file://${COMMON_LICENSE_DIR}/BSD-2-Clause;md5=8bef8e6712b1be5aa76af1ebde9d6378 \
- file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9 \
-"
-DEPENDS = "libbsd libpcre zlib libcap"
-DEPENDS_append_class-target = " openssl10"
-
-ANDROID_MIRROR = "android.googlesource.com"
-
-# matches with android-5.1.1_r37
-SRCREV_core = "2314b110bdebdbfd2d94c502282f9e57c849897e"
-SRCREV_extras = "3ecbe8d841df96127d7855661293e5ab6ba6c205"
-SRCREV_libhardware = "be55eb1f4d840c82ffaf7c47460df17ff5bc4d9b"
-SRCREV_libselinux = "07e9e1339ad1ba608acfba9dce2d0f474b252feb"
-SRCREV_build = "16e987def3d7d8f7d30805eb95cef69e52a87dbc"
-
-SRC_URI = " \
- git://${ANDROID_MIRROR}/platform/system/core;name=core;protocol=https;nobranch=1;destsuffix=git/system/core \
- git://${ANDROID_MIRROR}/platform/system/extras;name=extras;protocol=https;nobranch=1;destsuffix=git/system/extras \
- git://${ANDROID_MIRROR}/platform/hardware/libhardware;name=libhardware;protocol=https;nobranch=1;destsuffix=git/hardware/libhardware \
- git://${ANDROID_MIRROR}/platform/external/libselinux;name=libselinux;protocol=https;nobranch=1;destsuffix=git/external/libselinux \
- git://${ANDROID_MIRROR}/platform/build;name=build;protocol=https;nobranch=1;destsuffix=git/build \
- file://core/0001-adb-remove-selinux-extensions.patch;patchdir=system/core \
- file://core/0002-adb-Use-local-sockets-where-appropriate.patch;patchdir=system/core \
- file://core/0003-adb-define-shell-command.patch;patchdir=system/core \
- file://core/0004-adb-Fix-build-on-big-endian-systems.patch;patchdir=system/core \
- file://core/0005-adb-add-base64-implementation.patch;patchdir=system/core \
- file://core/0006-adb-Musl-fixes.patch;patchdir=system/core \
- file://core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch;patchdir=system/core \
- file://core/0008-adb-Allow-adbd-to-be-ran-as-root.patch;patchdir=system/core \
- file://core/0009-mkbootimg-Add-dt-parameter-to-specify-DT-image.patch;patchdir=system/core \
- file://core/0010-Use-linux-capability.h-on-linux-systems-too.patch;patchdir=system/core \
- file://core/0011-Remove-bionic-specific-calls.patch;patchdir=system/core \
- file://core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch;patchdir=system/core \
- file://extras/0001-ext4_utils-remove-selinux-extensions.patch;patchdir=system/extras \
- file://extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch;patchdir=system/extras \
- file://libselinux/0001-Remove-bionic-specific-calls.patch;patchdir=external/libselinux \
- file://android-tools-adbd.service \
- file://gitignore \
- file://adb.mk;subdir=${BPN} \
- file://adbd.mk;subdir=${BPN} \
- file://ext4_utils.mk;subdir=${BPN} \
- file://fastboot.mk;subdir=${BPN} \
- file://mkbootimg.mk;subdir=${BPN} \
-"
-
-
-S = "${WORKDIR}/git"
-B = "${WORKDIR}/${BPN}"
-
-# http://errors.yoctoproject.org/Errors/Details/133881/
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
-
-inherit systemd
-
-SYSTEMD_SERVICE_${PN} = "android-tools-adbd.service"
-
-# Find libbsd headers during native builds
-CC_append_class-native = " -I${STAGING_INCDIR}"
-CC_append_class-nativesdk = " -I${STAGING_INCDIR}"
-
-TOOLS = "adb fastboot ext4_utils mkbootimg adbd"
-
-# Adb needs sys/capability.h, which is not available for native*
-TOOLS_class-native = "fastboot ext4_utils mkbootimg"
-TOOLS_class-nativesdk = "fastboot ext4_utils mkbootimg"
-
-do_compile() {
- cp ${WORKDIR}/gitignore ${S}/.gitignore
-
- # Setting both variables below causing our makefiles to not work with
- # implicit make rules
- unset CFLAGS
- unset CPPFLAGS
-
- export SRCDIR=${S}
-
- case "${HOST_ARCH}" in
- arm)
- export android_arch=linux-arm
- ;;
- aarch64)
- export android_arch=linux-arm64
- ;;
- mips|mipsel)
- export android_arch=linux-mips
- ;;
- powerpc|powerpc64)
- export android_arch=linux-ppc
- ;;
- i586|x86_64)
- export android_arch=linux-x86
- ;;
- esac
-
- for tool in ${TOOLS}; do
- mkdir -p ${B}/${tool}
- oe_runmake -f ${B}/${tool}.mk -C ${B}/${tool}
- done
-}
-
-do_install() {
- if echo ${TOOLS} | grep -q "ext4_utils" ; then
- install -D -p -m0755 ${S}/system/core/libsparse/simg_dump.py ${D}${bindir}/simg_dump
- install -D -p -m0755 ${S}/system/extras/ext4_utils/mkuserimg.sh ${D}${bindir}/mkuserimg
-
- install -m0755 ${B}/ext4_utils/ext2simg ${D}${bindir}
- install -m0755 ${B}/ext4_utils/ext4fixup ${D}${bindir}
- install -m0755 ${B}/ext4_utils/img2simg ${D}${bindir}
- install -m0755 ${B}/ext4_utils/make_ext4fs ${D}${bindir}
- install -m0755 ${B}/ext4_utils/simg2img ${D}${bindir}
- install -m0755 ${B}/ext4_utils/simg2simg ${D}${bindir}
- fi
-
- if echo ${TOOLS} | grep -q "adb " ; then
- install -d ${D}${bindir}
- install -m0755 ${B}/adb/adb ${D}${bindir}
- fi
-
- if echo ${TOOLS} | grep -q "adbd" ; then
- install -d ${D}${bindir}
- install -m0755 ${B}/adbd/adbd ${D}${bindir}
- fi
-
- # Outside the if statement to avoid errors during do_package
- install -D -p -m0644 ${WORKDIR}/android-tools-adbd.service \
- ${D}${systemd_unitdir}/system/android-tools-adbd.service
-
- if echo ${TOOLS} | grep -q "fastboot" ; then
- install -d ${D}${bindir}
- install -m0755 ${B}/fastboot/fastboot ${D}${bindir}
- fi
-
- if echo ${TOOLS} | grep -q "mkbootimg" ; then
- install -d ${D}${bindir}
- install -m0755 ${B}/mkbootimg/mkbootimg ${D}${bindir}
- fi
-}
-
-PACKAGES += "${PN}-fstools"
-
-RDEPENDS_${BPN} = "${BPN}-conf bash"
-
-FILES_${PN}-fstools = "\
- ${bindir}/ext2simg \
- ${bindir}/ext4fixup \
- ${bindir}/img2simg \
- ${bindir}/make_ext4fs \
- ${bindir}/simg2img \
- ${bindir}/simg2simg \
- ${bindir}/simg_dump \
- ${bindir}/mkuserimg \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools_9.0.0.r10.bb b/meta-oe/recipes-devtools/android-tools/android-tools_9.0.0.r10.bb
new file mode 100644
index 0000000000..7b06234b87
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools_9.0.0.r10.bb
@@ -0,0 +1,117 @@
+SUMMARY = "Different utilities from Android"
+SECTION = "console/utils"
+LICENSE = "Apache-2.0 & GPL-2.0 & BSD-2-Clause & BSD-3-Clause"
+LIC_FILES_CHKSUM = " \
+ file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10 \
+ file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \
+ file://${COMMON_LICENSE_DIR}/BSD-2-Clause;md5=8bef8e6712b1be5aa76af1ebde9d6378 \
+ file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9 \
+"
+DEPENDS = "libbsd libpcre zlib libcap ruby-native cmake-native ninja-native go-native libusb1 gtest"
+
+# matches with android-9.0.0_r10
+SRCREV_core = "c8a633cd4782fd594af3f06b80ba7ee780ce65d6"
+SRCREV_extras = "740a3c436188f9ad615f830e599f15506962cbcd"
+SRCREV_selinux = "c679e266062e711dcf892dacd9c0cb978fde5a8a"
+SRCREV_f2fs-tools = "23f82306bb2ca2553afe6791be10f93e68111da9"
+SRCREV_e2fsprogs = "f63aeea08e882dad0520a1df0c57e6578d738bfe"
+# instead of platfrom/external/boringssl from:
+# git://${ANDROID_MIRROR}/platform/external/boringssl;name=boringssl;protocol=https;nobranch=1;destsuffix=git/boringssl \
+# SRCREV_boringssl = "8c2f177d0c90eac12f6bb9a264d383e8302148f1"
+# we use the standalone one (because it has cmake support) with matching SRCREV from:
+# https://android.googlesource.com/platform/external/boringssl/+/android-9.0.0_r10/BORINGSSL_REVISION
+SRCREV_boringssl = "45210dd4e21ace9d28cb76b3f83303fcdd2efcce"
+ANDROID_MIRROR = "android.googlesource.com"
+
+SRC_URI = " \
+ git://${ANDROID_MIRROR}/platform/system/core;name=core;protocol=https;nobranch=1;destsuffix=git/core \
+ git://${ANDROID_MIRROR}/platform/system/extras;name=extras;protocol=https;nobranch=1;destsuffix=git/extras \
+ git://${ANDROID_MIRROR}/platform/external/selinux;name=selinux;protocol=https;nobranch=1;destsuffix=git/selinux \
+ git://${ANDROID_MIRROR}/platform/external/f2fs-tools;name=f2fs-tools;protocol=https;nobranch=1;destsuffix=git/f2fs-tools \
+ git://${ANDROID_MIRROR}/platform/external/e2fsprogs;name=e2fsprogs;protocol=https;nobranch=1;destsuffix=git/e2fsprogs \
+ git://boringssl.googlesource.com/boringssl;name=boringssl;protocol=https;nobranch=1;destsuffix=git/boringssl \
+ file://fix_build_core.patch;patchdir=core \
+ file://stdatomic.patch;patchdir=core \
+ file://Nonnull.patch;patchdir=core \
+ file://fix_build_e2fsprogs.patch;patchdir=e2fsprogs \
+ file://fix_build_selinux.patch;patchdir=selinux \
+ file://generate_build.rb \
+"
+
+S = "${WORKDIR}/git"
+
+inherit systemd
+
+SYSTEMD_SERVICE_${PN} = "android-tools-adbd.service"
+
+# Find libbsd headers during native builds
+CC_append_class-native = " -I${STAGING_INCDIR}"
+CC_append_class-nativesdk = " -I${STAGING_INCDIR}"
+
+TOOLS = "adb mke2fs.android fastboot e2fsdroid ext2simg ext4_utils mkbootimg adbd"
+
+# Adb needs sys/capability.h, which is not available for native*
+TOOLS_class-native = "fastboot ext4_utils mkbootimg"
+TOOLS_class-nativesdk = "fastboot ext4_utils mkbootimg"
+
+do_compile() {
+ PKGVER=${PV} ruby ${WORKDIR}/generate_build.rb > build.ninja
+ [ -d ${S}/boringssl/build ] && rm -rf ${S}/boringssl/build
+ mkdir ${S}/boringssl/build && cd ${S}/boringssl/build && cmake -G Ninja -DCMAKE_MAKE_PROGRAM=ninja ..; ninja; cd -
+ ninja
+}
+
+do_install() {
+ if echo ${TOOLS} | grep -q "ext4_utils" ; then
+ install -D -p -m0755 ${S}/system/core/libsparse/simg_dump.py ${D}${bindir}/simg_dump
+ install -D -p -m0755 ${S}/system/extras/ext4_utils/mkuserimg.sh ${D}${bindir}/mkuserimg
+
+ install -m0755 ${B}/ext4_utils/ext2simg ${D}${bindir}
+ install -m0755 ${B}/ext4_utils/ext4fixup ${D}${bindir}
+ install -m0755 ${B}/ext4_utils/img2simg ${D}${bindir}
+ install -m0755 ${B}/ext4_utils/make_ext4fs ${D}${bindir}
+ install -m0755 ${B}/ext4_utils/simg2img ${D}${bindir}
+ install -m0755 ${B}/ext4_utils/simg2simg ${D}${bindir}
+ fi
+
+ if echo ${TOOLS} | grep -q "adb " ; then
+ install -d ${D}${bindir}
+ install -m0755 ${B}/adb/adb ${D}${bindir}
+ fi
+
+ if echo ${TOOLS} | grep -q "adbd" ; then
+ install -d ${D}${bindir}
+ install -m0755 ${B}/adbd/adbd ${D}${bindir}
+ fi
+
+ # Outside the if statement to avoid errors during do_package
+ install -D -p -m0644 ${WORKDIR}/android-tools-adbd.service \
+ ${D}${systemd_unitdir}/system/android-tools-adbd.service
+
+ if echo ${TOOLS} | grep -q "fastboot" ; then
+ install -d ${D}${bindir}
+ install -m0755 ${B}/fastboot/fastboot ${D}${bindir}
+ fi
+
+ if echo ${TOOLS} | grep -q "mkbootimg" ; then
+ install -d ${D}${bindir}
+ install -m0755 ${B}/mkbootimg/mkbootimg ${D}${bindir}
+ fi
+}
+
+PACKAGES += "${PN}-fstools"
+
+RDEPENDS_${BPN} = "${BPN}-conf bash"
+
+FILES_${PN}-fstools = "\
+ ${bindir}/ext2simg \
+ ${bindir}/ext4fixup \
+ ${bindir}/img2simg \
+ ${bindir}/make_ext4fs \
+ ${bindir}/simg2img \
+ ${bindir}/simg2simg \
+ ${bindir}/simg_dump \
+ ${bindir}/mkuserimg \
+"
+
+BBCLASSEXTEND = "native"