diff options
author | Andrew Geissler <geissonator@yahoo.com> | 2020-04-13 21:39:40 +0300 |
---|---|---|
committer | Andrew Geissler <geissonator@yahoo.com> | 2020-05-05 16:30:44 +0300 |
commit | 82c905dc58a36aeae40b1b273a12f63fb1973cf4 (patch) | |
tree | 38caf00263451b5036435cdc36e035b25d32e623 /meta-openembedded/meta-oe/recipes-devtools/android-tools | |
parent | 83ecb75644b3d677c274188f9ac0b2374d6f6925 (diff) | |
download | openbmc-82c905dc58a36aeae40b1b273a12f63fb1973cf4.tar.xz |
meta-openembedded and poky: subtree updates
Squash of the following due to dependencies among them
and OpenBMC changes:
meta-openembedded: subtree update:d0748372d2..9201611135
meta-openembedded: subtree update:9201611135..17fd382f34
poky: subtree update:9052e5b32a..2e11d97b6c
poky: subtree update:2e11d97b6c..a8544811d7
The change log was too large for the jenkins plugin
to handle therefore it has been removed. Here is
the first and last commit of each subtree:
meta-openembedded:d0748372d2
cppzmq: bump to version 4.6.0
meta-openembedded:17fd382f34
mpv: Remove X11 dependency
poky:9052e5b32a
package_ipk: Remove pointless comment to trigger rebuild
poky:a8544811d7
pbzip2: Fix license warning
Change-Id: If0fc6c37629642ee207a4ca2f7aa501a2c673cd6
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-devtools/android-tools')
3 files changed, 554 insertions, 0 deletions
diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/build/0001-Riscv-Add-risc-v-Android-config-header.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/build/0001-Riscv-Add-risc-v-Android-config-header.patch new file mode 100644 index 0000000000..57c443b707 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/build/0001-Riscv-Add-risc-v-Android-config-header.patch @@ -0,0 +1,359 @@ +From 82dce13ea7b5b31c63851bd67f66072413917e73 Mon Sep 17 00:00:00 2001 +From: Chenxi Mao <maochenxi@eswin.com> +Date: Mon, 20 Apr 2020 15:32:40 +0800 +Subject: [PATCH 1/1] Riscv: Add risc-v Android config header + +--- + .../arch/linux-riscv64/AndroidConfig.h | 340 ++++++++++++++++++ + 1 file changed, 340 insertions(+) + create mode 100644 core/combo/include/arch/linux-riscv64/AndroidConfig.h + +diff --git a/core/combo/include/arch/linux-riscv64/AndroidConfig.h b/core/combo/include/arch/linux-riscv64/AndroidConfig.h +new file mode 100644 +index 0000000000..bcbda8f87f +--- /dev/null ++++ b/core/combo/include/arch/linux-riscv64/AndroidConfig.h +@@ -0,0 +1,340 @@ ++/* ++ * Copyright (C) 2013 The Android Open Source Project ++ * ++ * Licensed under the Apache License, Version 2.0 (the "License"); ++ * you may not use this file except in compliance with the License. ++ * You may obtain a copy of the License at ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, software ++ * distributed under the License is distributed on an "AS IS" BASIS, ++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ * See the License for the specific language governing permissions and ++ * limitations under the License. ++ */ ++ ++/* ++ * Android config -- "android-aarch64". Used for ARM aarch64 device builds. ++ */ ++#ifndef _ANDROID_CONFIG_H ++#define _ANDROID_CONFIG_H ++ ++/* ++ * =========================================================================== ++ * !!! IMPORTANT !!! ++ * =========================================================================== ++ * ++ * This file is included by ALL C/C++ source files. Don't put anything in ++ * here unless you are absolutely certain it can't go anywhere else. ++ * ++ * Any C++ stuff must be wrapped with "#ifdef __cplusplus". Do not use "//" ++ * comments. ++ */ ++ ++/* ++ * Threading model. Choose one: ++ * ++ * HAVE_PTHREADS - use the pthreads library. ++ * HAVE_WIN32_THREADS - use Win32 thread primitives. ++ * -- combine HAVE_CREATETHREAD, HAVE_CREATEMUTEX, and HAVE__BEGINTHREADEX ++ */ ++#define HAVE_PTHREADS ++ ++/* ++ * Do we have pthread_setname_np()? ++ * ++ * (HAVE_PTHREAD_SETNAME_NP is used by WebKit to enable a function with ++ * the same name but different parameters, so we can't use that here.) ++ */ ++#define HAVE_ANDROID_PTHREAD_SETNAME_NP ++ ++/* ++ * Do we have the futex syscall? ++ */ ++#define HAVE_FUTEX ++ ++/* ++ * Process creation model. Choose one: ++ * ++ * HAVE_FORKEXEC - use fork() and exec() ++ * HAVE_WIN32_PROC - use CreateProcess() ++ */ ++#define HAVE_FORKEXEC ++ ++/* ++ * Process out-of-memory adjustment. Set if running on Linux, ++ * where we can write to /proc/<pid>/oom_adj to modify the out-of-memory ++ * badness adjustment. ++ */ ++#define HAVE_OOM_ADJ ++ ++/* ++ * IPC model. Choose one: ++ * ++ * HAVE_SYSV_IPC - use the classic SysV IPC mechanisms (semget, shmget). ++ * HAVE_MACOSX_IPC - use Macintosh IPC mechanisms (sem_open, mmap). ++ * HAVE_WIN32_IPC - use Win32 IPC (CreateSemaphore, CreateFileMapping). ++ * HAVE_ANDROID_IPC - use Android versions (?, mmap). ++ */ ++#define HAVE_ANDROID_IPC ++ ++/* ++ * Memory-mapping model. Choose one: ++ * ++ * HAVE_POSIX_FILEMAP - use the Posix sys/mmap.h ++ * HAVE_WIN32_FILEMAP - use Win32 filemaps ++ */ ++#define HAVE_POSIX_FILEMAP ++ ++/* ++ * Define this if you have <termio.h> ++ */ ++#define HAVE_TERMIO_H 1 ++ ++/* ++ * Define this if you have <sys/sendfile.h> ++ */ ++#define HAVE_SYS_SENDFILE_H 1 ++ ++/* ++ * Define this if you build against MSVCRT.DLL ++ */ ++/* #define HAVE_MS_C_RUNTIME */ ++ ++/* ++ * Define this if you have sys/uio.h ++ */ ++#define HAVE_SYS_UIO_H 1 ++ ++/* ++ * Define this if your platforms implements symbolic links ++ * in its filesystems ++ */ ++#define HAVE_SYMLINKS ++ ++/* ++ * Define this if we have localtime_r(). ++ */ ++/* #define HAVE_LOCALTIME_R 1 */ ++ ++/* ++ * Define this if we have gethostbyname_r(). ++ */ ++/* #define HAVE_GETHOSTBYNAME_R */ ++ ++/* ++ * Define this if we have ioctl(). ++ */ ++#define HAVE_IOCTL ++ ++/* ++ * Define this if we want to use WinSock. ++ */ ++/* #define HAVE_WINSOCK */ ++ ++/* ++ * Define this if have clock_gettime() and friends ++ */ ++#define HAVE_POSIX_CLOCKS ++ ++/* ++ * Define this if we have linux style epoll() ++ */ ++#define HAVE_EPOLL ++ ++/* ++ * Endianness of the target machine. Choose one: ++ * ++ * HAVE_ENDIAN_H -- have endian.h header we can include. ++ * HAVE_LITTLE_ENDIAN -- we are little endian. ++ * HAVE_BIG_ENDIAN -- we are big endian. ++ */ ++#define HAVE_ENDIAN_H ++#define HAVE_LITTLE_ENDIAN ++ ++#define _FILE_OFFSET_BITS 64 ++/* #define _LARGEFILE_SOURCE 1 */ ++ ++/* ++ * Define if platform has off64_t (and lseek64 and other xxx64 functions) ++ */ ++#define HAVE_OFF64_T ++ ++/* ++ * Defined if we have the backtrace() call for retrieving a stack trace. ++ * Needed for CallStack to operate; if not defined, CallStack is ++ * non-functional. ++ */ ++#define HAVE_BACKTRACE 0 ++ ++/* ++ * Defined if we have the cxxabi.h header for demangling C++ symbols. If ++ * not defined, stack crawls will be displayed with raw mangled symbols ++ */ ++#define HAVE_CXXABI 0 ++ ++/* ++ * Defined if we have the gettid() system call. ++ */ ++#define HAVE_GETTID ++ ++/* ++ * Defined if we have the sched_setscheduler() call ++ */ ++#define HAVE_SCHED_SETSCHEDULER ++ ++/* ++ * Add any extra platform-specific defines here. ++ */ ++#ifndef __linux__ ++#define __linux__ ++#endif ++ ++/* ++ * Define if we have <malloc.h> header ++ */ ++#define HAVE_MALLOC_H ++ ++/* ++ * Define if we're running on *our* linux on device or emulator. ++ */ ++#define HAVE_ANDROID_OS 1 ++ ++/* ++ * Define if we have Linux-style non-filesystem Unix Domain Sockets ++ */ ++#define HAVE_LINUX_LOCAL_SOCKET_NAMESPACE 1 ++ ++/* ++ * Define if we have Linux's inotify in <sys/inotify.h>. ++ */ ++#define HAVE_INOTIFY 1 ++ ++/* ++ * Define if we have madvise() in <sys/mman.h> ++ */ ++#define HAVE_MADVISE 1 ++ ++/* ++ * Define if tm struct has tm_gmtoff field ++ */ ++#define HAVE_TM_GMTOFF 1 ++ ++/* ++ * Define if dirent struct has d_type field ++ */ ++#define HAVE_DIRENT_D_TYPE 1 ++ ++/* ++ * Define if libc includes Android system properties implementation. ++ */ ++#define HAVE_LIBC_SYSTEM_PROPERTIES 1 ++ ++/* ++ * Define if system provides a system property server (should be ++ * mutually exclusive with HAVE_LIBC_SYSTEM_PROPERTIES). ++ */ ++/* #define HAVE_SYSTEM_PROPERTY_SERVER */ ++ ++/* ++ * What CPU architecture does this platform use? ++ */ ++#define ARCH_AARCH64 ++ ++/* ++ * Define if the size of enums is as short as possible, ++ */ ++/* #define HAVE_SHORT_ENUMS */ ++ ++/* ++ * sprintf() format string for shared library naming. ++ */ ++#define OS_SHARED_LIB_FORMAT_STR "lib%s.so" ++ ++/* ++ * type for the third argument to mincore(). ++ */ ++#define MINCORE_POINTER_TYPE unsigned char * ++ ++/* ++ * The default path separator for the platform ++ */ ++#define OS_PATH_SEPARATOR '/' ++ ++/* ++ * Is the filesystem case sensitive? ++ */ ++#define OS_CASE_SENSITIVE ++ ++/* ++ * Define if <sys/socket.h> exists. ++ */ ++#define HAVE_SYS_SOCKET_H 1 ++ ++/* ++ * Define if the strlcpy() function exists on the system. ++ */ ++#define HAVE_STRLCPY 1 ++ ++/* ++ * Define if the open_memstream() function exists on the system. ++ */ ++/* #define HAVE_OPEN_MEMSTREAM 1 */ ++ ++/* ++ * Define if the BSD funopen() function exists on the system. ++ */ ++#define HAVE_FUNOPEN 1 ++ ++/* ++ * Define if prctl() exists ++ */ ++#define HAVE_PRCTL 1 ++ ++/* ++ * Define if writev() exists ++ */ ++#define HAVE_WRITEV 1 ++ ++/* ++ * Define if <stdint.h> exists. ++ */ ++#define HAVE_STDINT_H 1 ++ ++/* ++ * Define if <stdbool.h> exists. ++ */ ++#define HAVE_STDBOOL_H 1 ++ ++/* ++ * Define if <sched.h> exists. ++ */ ++#define HAVE_SCHED_H 1 ++ ++/* ++ * Define if pread() exists ++ */ ++#define HAVE_PREAD 1 ++ ++/* ++ * Define if we have st_mtim in struct stat ++ */ ++#define HAVE_STAT_ST_MTIM 1 ++ ++/* ++ * Define if printf() supports %zd for size_t arguments ++ */ ++#define HAVE_PRINTF_ZD 1 ++ ++/* ++ * Define to 1 if <stdlib.h> provides qsort_r() with a BSD style function prototype. ++ */ ++#define HAVE_BSD_QSORT_R 0 ++ ++/* ++ * Define to 1 if <stdlib.h> provides qsort_r() with a GNU style function prototype. ++ */ ++#define HAVE_GNU_QSORT_R 0 ++ ++#endif /* _ANDROID_CONFIG_H */ +-- +2.17.1 + diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0013-adb-Support-riscv64.patch b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0013-adb-Support-riscv64.patch new file mode 100644 index 0000000000..a8434afbad --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools/core/0013-adb-Support-riscv64.patch @@ -0,0 +1,189 @@ +From 48ddf4fb999931942c359350fb31cd557514e1c6 Mon Sep 17 00:00:00 2001 +From: Chenxi Mao <maochenxi@eswin.com> +Date: Mon, 20 Apr 2020 15:27:22 +0800 +Subject: [PATCH 1/1] adb: Support riscv64 + +--- + include/cutils/atomic-inline.h | 2 + + include/cutils/atomic-riscv64.h | 156 ++++++++++++++++++++++++++++++++ + 2 files changed, 158 insertions(+) + create mode 100644 include/cutils/atomic-riscv64.h + +diff --git a/include/cutils/atomic-inline.h b/include/cutils/atomic-inline.h +index a31e913579..b5dc38209c 100644 +--- a/include/cutils/atomic-inline.h ++++ b/include/cutils/atomic-inline.h +@@ -55,6 +55,8 @@ extern "C" { + #include <cutils/atomic-mips64.h> + #elif defined(__mips__) + #include <cutils/atomic-mips.h> ++#elif defined(__riscv) && __riscv_xlen == 64 ++#include <cutils/atomic-riscv64.h> + #else + #error atomic operations are unsupported + #endif +diff --git a/include/cutils/atomic-riscv64.h b/include/cutils/atomic-riscv64.h +new file mode 100644 +index 0000000000..2664db5a86 +--- /dev/null ++++ b/include/cutils/atomic-riscv64.h +@@ -0,0 +1,156 @@ ++/* ++ * Copyright (C) 2014 The Android Open Source Project ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * * Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * * Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in ++ * the documentation and/or other materials provided with the ++ * distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ++ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT ++ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS ++ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE ++ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, ++ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS ++ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED ++ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ++ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ++ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++#ifndef ANDROID_CUTILS_ATOMIC_RISCV64_H ++#define ANDROID_CUTILS_ATOMIC_RISCV64_H ++ ++#include <stdint.h> ++ ++#ifndef ANDROID_ATOMIC_INLINE ++#define ANDROID_ATOMIC_INLINE inline __attribute__((always_inline)) ++#endif ++ ++/* ++ TODOAArch64: Revisit the below functions and check for potential ++ optimizations using assembly code or otherwise. ++*/ ++ ++extern ANDROID_ATOMIC_INLINE ++void android_compiler_barrier(void) ++{ ++ __asm__ __volatile__ ("" : : : "memory"); ++} ++ ++extern ANDROID_ATOMIC_INLINE ++void android_memory_barrier(void) ++{ ++ __asm__ __volatile__ ("fence rw,rw" : : : "memory"); ++} ++ ++extern ANDROID_ATOMIC_INLINE ++int32_t android_atomic_acquire_load(volatile const int32_t *ptr) ++{ ++ int32_t value = *ptr; ++ android_memory_barrier(); ++ return value; ++} ++ ++extern ANDROID_ATOMIC_INLINE ++int32_t android_atomic_release_load(volatile const int32_t *ptr) ++{ ++ android_memory_barrier(); ++ return *ptr; ++} ++ ++extern ANDROID_ATOMIC_INLINE ++void android_atomic_acquire_store(int32_t value, volatile int32_t *ptr) ++{ ++ *ptr = value; ++ android_memory_barrier(); ++} ++ ++extern ANDROID_ATOMIC_INLINE ++void android_atomic_release_store(int32_t value, volatile int32_t *ptr) ++{ ++ android_memory_barrier(); ++ *ptr = value; ++} ++ ++extern ANDROID_ATOMIC_INLINE ++int android_atomic_cas(int32_t old_value, int32_t new_value, ++ volatile int32_t *ptr) ++{ ++ return __sync_val_compare_and_swap(ptr, old_value, new_value) != old_value; ++} ++ ++extern ANDROID_ATOMIC_INLINE ++int android_atomic_acquire_cas(int32_t old_value, int32_t new_value, ++ volatile int32_t *ptr) ++{ ++ int status = android_atomic_cas(old_value, new_value, ptr); ++ android_memory_barrier(); ++ return status; ++} ++ ++extern ANDROID_ATOMIC_INLINE ++int android_atomic_release_cas(int32_t old_value, int32_t new_value, ++ volatile int32_t *ptr) ++{ ++ android_memory_barrier(); ++ return android_atomic_cas(old_value, new_value, ptr); ++} ++ ++extern ANDROID_ATOMIC_INLINE ++int32_t android_atomic_add(int32_t increment, volatile int32_t *ptr) ++{ ++ int32_t prev, status; ++ android_memory_barrier(); ++ do { ++ prev = *ptr; ++ status = android_atomic_cas(prev, prev + increment, ptr); ++ } while (__builtin_expect(status != 0, 0)); ++ return prev; ++} ++ ++extern ANDROID_ATOMIC_INLINE ++int32_t android_atomic_inc(volatile int32_t *addr) ++{ ++ return android_atomic_add(1, addr); ++} ++ ++extern ANDROID_ATOMIC_INLINE ++int32_t android_atomic_dec(volatile int32_t *addr) ++{ ++ return android_atomic_add(-1, addr); ++} ++ ++extern ANDROID_ATOMIC_INLINE ++int32_t android_atomic_and(int32_t value, volatile int32_t *ptr) ++{ ++ int32_t prev, status; ++ android_memory_barrier(); ++ do { ++ prev = *ptr; ++ status = android_atomic_cas(prev, prev & value, ptr); ++ } while (__builtin_expect(status != 0, 0)); ++ return prev; ++} ++ ++extern ANDROID_ATOMIC_INLINE ++int32_t android_atomic_or(int32_t value, volatile int32_t *ptr) ++{ ++ int32_t prev, status; ++ android_memory_barrier(); ++ do { ++ prev = *ptr; ++ status = android_atomic_cas(prev, prev | value, ptr); ++ } while (__builtin_expect(status != 0, 0)); ++ return prev; ++} ++ ++#endif /* ANDROID_CUTILS_ATOMIC_RISCV_H */ +-- +2.17.1 + diff --git a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb index c0d08db174..fb6125e2a5 100644 --- a/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb +++ b/meta-openembedded/meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb @@ -38,11 +38,13 @@ SRC_URI = " \ 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://core/adb_libssl_11.diff;patchdir=system/core \ + file://core/0013-adb-Support-riscv64.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://libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch;patchdir=external/libselinux \ file://android-tools-adbd.service \ + file://build/0001-Riscv-Add-risc-v-Android-config-header.patch;patchdir=build \ file://gitignore \ file://adb.mk;subdir=${BPN} \ file://adbd.mk;subdir=${BPN} \ @@ -61,6 +63,7 @@ ARM_INSTRUCTION_SET_armv5 = "arm" COMPATIBLE_HOST_powerpc = "(null)" COMPATIBLE_HOST_powerpc64 = "(null)" +COMPATIBLE_HOST_powerpc64le = "(null)" inherit systemd @@ -93,6 +96,9 @@ do_compile() { aarch64) export android_arch=linux-arm64 ;; + riscv64) + export android_arch=linux-riscv64 + ;; mips|mipsel) export android_arch=linux-mips ;; |