Browse Source

Merge branch 'ndk-r11'

android-5
Fredrik Fornwall 9 years ago
parent
commit
370d9aa189
  1. 6
      Dockerfile
  2. 2
      README.md
  3. 12
      build-package.sh
  4. 9
      ndk_patches/pwd.patch
  5. 20
      ndk_patches/sys-user.h.patch
  6. 18
      packages/busybox/include-platform.h.patch
  7. 14
      packages/busybox/include-platform.h.patch64
  8. 11
      packages/clang/Makefile.patch
  9. 6
      packages/clang/build.sh
  10. 14
      packages/clang/dont-build-c-index-test.patch
  11. 8
      packages/dnsutils/build.sh
  12. 7
      packages/gdb/build.sh
  13. 8
      packages/gdb/gdb-arm-linux-nac.c.patch
  14. 21
      packages/gdb/gdb-gdbserver-configure.patch
  15. 12
      packages/gdb/gdbserver_gdb_proc_service.h.patch
  16. 15
      packages/gdb/i386-linux-nat.c.patch
  17. 11
      packages/gdb/linux-arm-low.c.patch
  18. 23
      packages/gdb/linux-x86-low.c.patch
  19. 37
      packages/gdb/linux_low.patch
  20. 17
      packages/gdb/linux_nat.patch
  21. 24
      packages/gdb/nm-linux.h.patch
  22. 11
      packages/gdb/proc_server_c_procfs.patch
  23. 23
      packages/gdb/x86-linux-nat.c.patch
  24. 14
      packages/libgc/pthread_stop_world.c.patch

6
Dockerfile

@ -50,12 +50,12 @@ RUN apt-get update && apt-get install -y \
RUN cd /tmp && \
curl -O http://dl.google.com/android/android-sdk_r24.3.4-linux.tgz && \
curl -O http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin && \
tar xzvf /tmp/android-sdk_r24.3.4-linux.tgz && \
chmod 755 /tmp/android-ndk* && /tmp/android-ndk-r10e-linux-x86_64.bin && \
curl -o ndk.zip http://dl.google.com/android/repository/android-ndk-r11-linux-x86_64.zip && \
unzip ndk.zip && \
mkdir /root/lib && \
mv /tmp/android-sdk-linux /root/lib/android-sdk && \
mv /tmp/android-ndk-r10e /root/lib/android-ndk && \
mv /tmp/android-ndk-r11-linux-x86_64.tar.bz2 /root/lib/android-ndk && \
rm -fr /tmp/*
RUN mkdir -p /data/data/com.termux/files/usr && mkdir -p /root/termux-packages && \

2
README.md

@ -23,7 +23,7 @@ setup steps:
* Install the Android SDK at `$HOME/lib/android-sdk`. Override this by setting the environment
variable `$ANDROID_HOME` to point at another location.
* Install the Android NDK, version r10e, at `$HOME/lib/android-ndk`. Override this by setting
* Install the Android NDK, version r11, at `$HOME/lib/android-ndk`. Override this by setting
the environment variable `$NDK` to point at another location.
Alternatively a Dockerfile is provided which sets up a pristine image

12
build-package.sh

@ -59,7 +59,13 @@ export TERMUX_TOUCH="touch"
test `uname` = "Darwin" && TERMUX_TOUCH=gtouch
# Compute NDK version. We remove the first character (the r in e.g. r9d) to get a version number which can be used in packages):
export TERMUX_NDK_VERSION=`cut -d ' ' -f 1 $NDK/RELEASE.TXT | cut -c 2-`
export TERMUX_NDK_VERSION=11
if grep -s -q "Pkg.Revision = $TERMUX_NDK_VERSION" $NDK/source.properties; then
:
else
echo "Wrong NDK version - we need $TERMUX_NDK_VERSION"
exit 1
fi
export prefix=${TERMUX_PREFIX} # prefix is used by some makefiles
#export ACLOCAL="aclocal -I $TERMUX_PREFIX/share/aclocal"
@ -127,7 +133,7 @@ if [ ! -d $TERMUX_STANDALONE_TOOLCHAIN ]; then
_TERMUX_NDK_TOOLCHAIN_NAME="$TERMUX_HOST_PLATFORM"
fi
bash $NDK/build/tools/make-standalone-toolchain.sh --platform=android-$TERMUX_API_LEVEL --toolchain=${_TERMUX_NDK_TOOLCHAIN_NAME}-${TERMUX_GCC_VERSION} \
--install-dir=$TERMUX_STANDALONE_TOOLCHAIN --system=`uname | tr '[:upper:]' '[:lower:]'`-x86_64
--install-dir=$TERMUX_STANDALONE_TOOLCHAIN
if [ "arm" = $TERMUX_ARCH ]; then
# Fix to allow e.g. <bits/c++config.h> to be included:
cp $TERMUX_STANDALONE_TOOLCHAIN/include/c++/$TERMUX_GCC_VERSION/arm-linux-androideabi/armv7-a/bits/* $TERMUX_STANDALONE_TOOLCHAIN/include/c++/$TERMUX_GCC_VERSION/bits
@ -356,6 +362,8 @@ termux_step_configure () {
# <https://github.com/termux/termux-packages/issues/76>.
AVOID_AUTOCONF_WRAPPERS+=" gl_cv_func_getcwd_null=yes gl_cv_func_getcwd_posix_signature=yes gl_cv_func_getcwd_path_max=yes gl_cv_func_getcwd_abort_bug=no"
AVOID_AUTOCONF_WRAPPERS+=" gl_cv_header_working_fcntl_h=yes gl_cv_func_fcntl_f_dupfd_cloexec=yes gl_cv_func_fcntl_f_dupfd_works=yes"
# Remove rpl_gettimeofday reference when building at least coreutils:
AVOID_AUTOCONF_WRAPPERS+=" gl_cv_func_tzset_clobber=no gl_cv_func_gettimeofday_clobber=no gl_cv_func_gettimeofday_posix_signature=yes"
env $AVOID_AUTOCONF_WRAPPERS $TERMUX_PKG_SRCDIR/configure \
--disable-dependency-tracking \

9
ndk_patches/pwd.patch

@ -1,6 +1,6 @@
diff -u -r /home/fornwall/lib/android-ndk/platforms/android-21/arch-arm/usr/include/pwd.h ./usr/include/pwd.h
--- /home/fornwall/lib/android-ndk/platforms/android-21/arch-arm/usr/include/pwd.h 2014-10-14 22:53:49.000000000 -0400
+++ ./usr/include/pwd.h 2015-07-15 09:42:32.974621965 -0400
--- /home/fornwall/lib/android-ndk/platforms/android-21/arch-arm/usr/include/pwd.h 2016-03-03 16:54:24.000000000 -0500
+++ ./usr/include/pwd.h 2016-03-10 08:11:16.795710172 -0500
@@ -65,6 +65,10 @@
#include <sys/cdefs.h>
#include <sys/types.h>
@ -12,10 +12,11 @@ diff -u -r /home/fornwall/lib/android-ndk/platforms/android-21/arch-arm/usr/incl
#define _PATH_PASSWD "/etc/passwd"
#define _PATH_MASTERPASSWD "/etc/master.passwd"
#define _PATH_MASTERPASSWD_LOCK "/etc/ptmp"
@@ -119,6 +122,36 @@
@@ -119,7 +123,37 @@
int getpwnam_r(const char*, struct passwd*, char*, size_t, struct passwd**);
int getpwuid_r(uid_t, struct passwd*, char*, size_t, struct passwd**);
-void endpwent(void);
+static void android_setup_pwd(struct passwd* pw) {
+ static char realpath_buffer[4096/*PATH_MAX*/];
+ char* result = realpath("@TERMUX_HOME@/.termux/shell", realpath_buffer);
@ -46,6 +47,6 @@ diff -u -r /home/fornwall/lib/android-ndk/platforms/android-21/arch-arm/usr/incl
+
+#define getpwnam android_polyfill_getpwnam
+#define getpwuid android_polyfill_getpwuid
void endpwent(void);
+static void endpwent(void) { /* Do nothing. */ }
struct passwd* getpwent(void);
int setpwent(void);

20
ndk_patches/sys-user.h.patch

@ -15,23 +15,3 @@ diff -u -r /home/fornwall/lib/android-ndk/platforms/android-21/arch-arm64/usr/in
#elif defined(__x86_64__)
struct user_fpregs_struct {
@@ -234,7 +240,18 @@
#elif defined(__aarch64__)
-// There are no user structures for 64 bit arm.
+/* From https://codereview.chromium.org/1291983003 */
+struct user_regs_struct {
+ __u64 regs[31];
+ __u64 sp;
+ __u64 pc;
+ __u64 pstate;
+};
+struct user_fpsimd_struct {
+ __uint128_t vregs[32];
+ __u32 fpsr;
+ __u32 fpcr;
+};
#else

18
packages/busybox/include-platform.h.patch

@ -0,0 +1,18 @@
The r11 of NDK removed dprintf.
diff -u -r ../busybox-1.24.1/include/platform.h ./include/platform.h
--- ../busybox-1.24.1/include/platform.h 2015-07-13 04:18:47.000000000 +0200
+++ ./include/platform.h 2016-03-10 11:47:06.000000000 +0100
@@ -480,11 +480,7 @@
#endif
#if defined(ANDROID) || defined(__ANDROID__)
-# if __ANDROID_API__ < 8
-# undef HAVE_DPRINTF
-# else
-# define dprintf fdprintf
-# endif
+# undef HAVE_DPRINTF
# if __ANDROID_API__ < 21
# undef HAVE_TTYNAME_R
# undef HAVE_GETLINE

14
packages/busybox/include-platform.h.patch64

@ -1,14 +0,0 @@
fdprintf() does not exist in 64-bit bionic.
diff -u -r ../busybox-1.24.1/include/platform.h ./include/platform.h
--- ../busybox-1.24.1/include/platform.h 2015-07-12 22:18:47.000000000 -0400
+++ ./include/platform.h 2015-11-26 16:14:37.061610995 -0500
@@ -480,7 +480,7 @@
#endif
#if defined(ANDROID) || defined(__ANDROID__)
-# if __ANDROID_API__ < 8
+# if __ANDROID_API__ < 8 || defined(__LP64__)
# undef HAVE_DPRINTF
# else
# define dprintf fdprintf

11
packages/clang/Makefile.patch

@ -0,0 +1,11 @@
diff -u -r ../llvm-3.8.0.src/Makefile ./Makefile
--- ../llvm-3.8.0.src/Makefile 2014-03-25 17:45:41.000000000 -0400
+++ ./Makefile 2016-03-10 16:28:00.142389801 -0500
@@ -69,7 +69,6 @@
ifeq ($(MAKECMDGOALS),install-clang)
DIRS := tools/clang/tools/driver tools/clang/lib/Headers \
tools/clang/tools/libclang \
- tools/clang/tools/c-index-test \
tools/clang/include/clang-c \
tools/clang/runtime tools/clang/docs \
tools/lto

6
packages/clang/build.sh

@ -1,7 +1,7 @@
TERMUX_PKG_HOMEPAGE=http://clang.llvm.org/
TERMUX_PKG_DESCRIPTION="C and C++ frontend for the LLVM compiler"
_PKG_MAJOR_VERSION=3.7
TERMUX_PKG_VERSION=${_PKG_MAJOR_VERSION}.1
_PKG_MAJOR_VERSION=3.8
TERMUX_PKG_VERSION=${_PKG_MAJOR_VERSION}.0
TERMUX_PKG_SRCURL=http://llvm.org/releases/${TERMUX_PKG_VERSION}/llvm-${TERMUX_PKG_VERSION}.src.tar.xz
TERMUX_PKG_HOSTBUILD=true
TERMUX_PKG_RM_AFTER_INSTALL="bin/macho-dump bin/bugpoint bin/llvm-tblgen lib/BugpointPasses.so lib/LLVMHello.so"
@ -32,8 +32,6 @@ termux_step_host_build () {
}
termux_step_configure () {
CXXFLAGS+=" -fno-devirtualize" # Avoid hitting https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61659
cd $TERMUX_PKG_BUILDDIR
LLVM_DEFAULT_TARGET_TRIPLE=$TERMUX_HOST_PLATFORM
LLVM_TARGET_ARCH=$TERMUX_ARCH

14
packages/clang/dont-build-c-index-test.patch

@ -1,11 +1,11 @@
diff -u -r ../orig-src/tools/clang/tools/CMakeLists.txt ./tools/clang/tools/CMakeLists.txt
--- ../orig-src/tools/clang/tools/CMakeLists.txt 2014-03-06 11:07:50.000000000 +0100
+++ ./tools/clang/tools/CMakeLists.txt 2014-03-06 11:06:10.000000000 +0100
@@ -3,7 +3,6 @@
add_subdirectory(clang-format)
add_subdirectory(clang-format-vs)
--- ../orig-src/tools/clang/tools/CMakeLists.txt 2016-01-12 21:03:50.000000000 -0500
+++ ./tools/clang/tools/CMakeLists.txt 2016-03-10 16:32:04.320055824 -0500
@@ -6,7 +6,6 @@
add_clang_subdirectory(clang-format-vs)
add_clang_subdirectory(clang-fuzzer)
-add_subdirectory(c-index-test)
add_subdirectory(libclang)
-add_clang_subdirectory(c-index-test)
add_clang_subdirectory(libclang)
if(CLANG_ENABLE_ARCMT)

8
packages/dnsutils/build.sh

@ -2,10 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://www.isc.org/downloads/bind/
TERMUX_PKG_DESCRIPTION="Clients provided with BIND"
# NOTE: When changing this version, you also needo to change TERMUX_PKG_SRCURL
# and TERMUX_PKG_FOLDERNAME.
TERMUX_PKG_VERSION=9.10.3.3
# TERMUX_PKG_SRCURL="https://www.isc.org/downloads/file/bind-9-10-3-p2/?version=tar-gz"
TERMUX_PKG_SRCURL="https://ftp.isc.org/isc/bind/cur/9.10/bind-9.10.3-P3.tar.gz"
TERMUX_PKG_FOLDERNAME="bind-9.10.3-P3"
_PATCHLEVEL=4
TERMUX_PKG_VERSION=9.10.3.$_PATCHLEVEL
TERMUX_PKG_SRCURL="https://ftp.isc.org/isc/bind/cur/9.10/bind-9.10.3-P${_PATCHLEVEL}.tar.gz"
TERMUX_PKG_FOLDERNAME="bind-9.10.3-P${_PATCHLEVEL}"
TERMUX_PKG_DEPENDS="openssl, readline, resolv-conf"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" --with-gssapi=no --with-randomdev=/dev/random -with-ecdsa=no --with-gost=no --with-libxml2=no --with-libtool"

7
packages/gdb/build.sh

@ -1,8 +1,7 @@
TERMUX_PKG_HOMEPAGE=https://www.gnu.org/software/gdb/
TERMUX_PKG_DESCRIPTION="The standard GNU Debugger that runs on many Unix-like systems and works for many programming languages"
TERMUX_PKG_DEPENDS="liblzma, libexpat, readline"
TERMUX_PKG_VERSION=7.10.1
TERMUX_PKG_BUILD_REVISION=2
TERMUX_PKG_VERSION=7.11
TERMUX_PKG_SRCURL=http://ftp.gnu.org/gnu/gdb/gdb-${TERMUX_PKG_VERSION}.tar.xz
# gdb can not build with our normal --disable-static: https://sourceware.org/bugzilla/show_bug.cgi?id=15916
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--with-system-readline --with-curses --enable-static ac_cv_func_getpwent=no ac_cv_func_getpwnam=no"
@ -13,3 +12,7 @@ TERMUX_PKG_BUILD_IN_SRC="yes"
# For frexp(3) usage:
LDFLAGS+=" -lm"
# Fix "undefined reference to 'rpl_gettimeofday'" when building on x86:
export gl_cv_func_gettimeofday_clobber=no
export gl_cv_func_gettimeofday_posix_signature=yes

8
packages/gdb/gdb-arm-linux-nac.c.patch

@ -1,14 +1,6 @@
diff -u -r ../gdb-7.10/gdb/arm-linux-nat.c ./gdb/arm-linux-nat.c
--- ../gdb-7.10/gdb/arm-linux-nat.c 2015-08-28 17:22:07.000000000 -0400
+++ ./gdb/arm-linux-nat.c 2015-08-29 08:06:52.000680658 -0400
@@ -34,7 +34,6 @@
#include <sys/user.h>
#include <sys/ptrace.h>
#include <sys/utsname.h>
-#include <sys/procfs.h>
#include "nat/linux-ptrace.h"
@@ -63,6 +62,10 @@
#define PTRACE_SETHBPREGS 30
#endif

21
packages/gdb/gdb-gdbserver-configure.patch

@ -0,0 +1,21 @@
diff -u -r ../gdb-7.11/gdb/gdbserver/configure ./gdb/gdbserver/configure
--- ../gdb-7.11/gdb/gdbserver/configure 2016-02-09 22:19:39.000000000 -0500
+++ ./gdb/gdbserver/configure 2016-03-10 10:17:40.111988028 -0500
@@ -6735,17 +6735,6 @@
case "${target}" in
- *-android*)
- # Starting with NDK version 9, <elf.h> actually includes definitions
- # of Elf32_auxv_t and Elf64_auxv_t. But sadly, <elf.h> includes
- # <sys/exec_elf.h> which defines some of the ELF types incorrectly,
- # leading to conflicts with the defintions from <linux/elf.h>.
- # This makes it impossible for us to include both <elf.h> and
- # <linux/elf.h>, which means that, in practice, we do not have
- # access to Elf32_auxv_t and Elf64_auxv_t on this platform.
- # Therefore, do not try to auto-detect availability, as it would
- # get it wrong on this platform.
- ;;
*)
ac_fn_c_check_type "$LINENO" "Elf32_auxv_t" "ac_cv_type_Elf32_auxv_t" "#include <elf.h>

12
packages/gdb/gdbserver_gdb_proc_service.h.patch

@ -1,12 +0,0 @@
diff -u -r ../gdb-7.8.1/gdb/gdbserver/gdb_proc_service.h ./gdb/gdbserver/gdb_proc_service.h
--- ../gdb-7.8.1/gdb/gdbserver/gdb_proc_service.h 2014-06-11 12:34:41.000000000 -0400
+++ ./gdb/gdbserver/gdb_proc_service.h 2014-12-22 07:53:22.855702229 -0500
@@ -38,6 +38,8 @@
# endif
#endif
+#include "../gregset.h" /* for elf_gregset_t */
+
typedef enum
{
PS_OK, /* Success. */

15
packages/gdb/i386-linux-nat.c.patch

@ -1,15 +0,0 @@
diff -u -r ../gdb-7.9/gdb/i386-linux-nat.c ./gdb/i386-linux-nat.c
--- ../gdb-7.9/gdb/i386-linux-nat.c 2015-02-19 06:58:07.000000000 -0500
+++ ./gdb/i386-linux-nat.c 2015-03-17 18:14:06.728805213 -0400
@@ -35,6 +35,11 @@
#include "x86-linux-nat.h"
+#ifdef __ANDROID__
+#include <sys/ucontext.h>
+typedef fpregset_t elf_fpxregset_t;
+#endif
+
/* The register sets used in GNU/Linux ELF core-dumps are identical to
the register sets in `struct user' that is used for a.out
core-dumps, and is also used by `ptrace'. The corresponding types

11
packages/gdb/linux-arm-low.c.patch

@ -1,11 +0,0 @@
diff -u -r ../gdb-7.8.1/gdb/gdbserver/linux-arm-low.c ./gdb/gdbserver/linux-arm-low.c
--- ../gdb-7.8.1/gdb/gdbserver/linux-arm-low.c 2014-10-29 15:45:50.000000000 -0400
+++ ./gdb/gdbserver/linux-arm-low.c 2014-12-22 07:57:06.035702383 -0500
@@ -26,6 +26,7 @@
#endif
#include <sys/ptrace.h>
#include <signal.h>
+#include <linux/auxvec.h> /* for AT_HWCAP define */
/* Defined in auto-generated files. */
void init_registers_arm (void);

23
packages/gdb/linux-x86-low.c.patch

@ -1,23 +0,0 @@
diff -u -r ../gdb-7.9/gdb/gdbserver/linux-x86-low.c ./gdb/gdbserver/linux-x86-low.c
--- ../gdb-7.9/gdb/gdbserver/linux-x86-low.c 2015-02-19 06:58:07.000000000 -0500
+++ ./gdb/gdbserver/linux-x86-low.c 2015-03-17 18:29:50.412805866 -0400
@@ -38,6 +38,11 @@
#include "tracepoint.h"
#include "ax.h"
+#ifdef __ANDROID__
+#include <sys/ucontext.h>
+typedef fpregset_t elf_fpxregset_t;
+#endif
+
#ifdef __x86_64__
/* Defined in auto-generated file amd64-linux.c. */
void init_registers_amd64_linux (void);
@@ -113,7 +118,6 @@
#endif
#include <sys/reg.h>
-#include <sys/procfs.h>
#include <sys/ptrace.h>
#include <sys/uio.h>

37
packages/gdb/linux_low.patch

@ -1,37 +0,0 @@
diff -u -r ../gdb-7.8.1/gdb/gdbserver/linux-low.c ./gdb/gdbserver/linux-low.c
--- ../gdb-7.8.1/gdb/gdbserver/linux-low.c 2014-10-29 15:45:50.000000000 -0400
+++ ./gdb/gdbserver/linux-low.c 2014-12-22 07:51:39.355702157 -0500
@@ -47,6 +47,7 @@
#include "filestuff.h"
#include "tracepoint.h"
#include "hostio.h"
+#include <linux/auxvec.h> /* For AT_PHDR and AT_PHNUM defines */
#ifndef ELFMAG0
/* Don't include <linux/elf.h> here. If it got included by gdb_proc_service.h
then ELFMAG0 will have been defined. If it didn't get included by
@@ -108,7 +109,6 @@
# include "linux-btrace.h"
#endif
-#ifndef HAVE_ELF32_AUXV_T
/* Copied from glibc's elf.h. */
typedef struct
{
@@ -121,9 +121,7 @@
on 64-bit platforms and vice versa. */
} a_un;
} Elf32_auxv_t;
-#endif
-#ifndef HAVE_ELF64_AUXV_T
/* Copied from glibc's elf.h. */
typedef struct
{
@@ -136,7 +134,6 @@
on 64-bit platforms and vice versa. */
} a_un;
} Elf64_auxv_t;
-#endif
/* A list of all unknown processes which receive stop signals. Some
other process will presumably claim each of these as forked

17
packages/gdb/linux_nat.patch

@ -1,14 +1,6 @@
diff -u -r ../gdb-7.7/gdb/linux-nat.c ./gdb/linux-nat.c
--- ../gdb-7.7/gdb/linux-nat.c 2014-02-06 03:21:29.000000000 +0100
+++ ./gdb/linux-nat.c 2014-02-12 01:55:15.000000000 +0100
@@ -41,7 +41,6 @@
#include "inf-child.h"
#include "inf-ptrace.h"
#include "auxv.h"
-#include <sys/procfs.h> /* for elf_gregset etc. */
#include "elf-bfd.h" /* for elfcore_write_* */
#include "gregset.h" /* for gregset */
#include "gdbcore.h" /* for get_exec_file */
@@ -68,6 +67,10 @@
#include "target-descriptions.h"
#include "filestuff.h"
@ -20,12 +12,3 @@ diff -u -r ../gdb-7.7/gdb/linux-nat.c ./gdb/linux-nat.c
#ifndef SPUFS_MAGIC
#define SPUFS_MAGIC 0x23c9b64e
#endif
@@ -3789,7 +3792,7 @@
if (last.kind == TARGET_WAITKIND_FORKED
|| last.kind == TARGET_WAITKIND_VFORKED)
{
- ptrace (PT_KILL, ptid_get_pid (last.value.related_pid), 0, 0);
+ ptrace (PTRACE_KILL, ptid_get_pid (last.value.related_pid), 0, 0);
wait (&status);
/* Let the arch-specific native code know this process is

24
packages/gdb/nm-linux.h.patch

@ -1,24 +0,0 @@
diff -u -r ../gdb-7.8.1/gdb/config/nm-linux.h ./gdb/config/nm-linux.h
--- ../gdb-7.8.1/gdb/config/nm-linux.h 2014-06-11 12:34:41.000000000 -0400
+++ ./gdb/config/nm-linux.h 2014-12-22 07:45:14.127701891 -0500
@@ -20,5 +20,20 @@
/* Use elf_gregset_t and elf_fpregset_t, rather than
gregset_t and fpregset_t. */
+#ifndef NM_CONFIG_LINUX_H
+#define NM_CONFIG_LINUX_H
+
+#include <sys/ucontext.h>
+
+#ifdef __arm__
+/* Structure to describe FPU registers. */
+typedef struct fpregset { } fpregset_t;
+#endif
+
+typedef gregset_t elf_gregset_t;
+typedef fpregset_t elf_fpregset_t;
+
#define GDB_GREGSET_T elf_gregset_t
#define GDB_FPREGSET_T elf_fpregset_t
+
+#endif

11
packages/gdb/proc_server_c_procfs.patch

@ -1,11 +0,0 @@
diff -u -r ../gdb-7.6.2/gdb/proc-service.c ./gdb/proc-service.c
--- ../gdb-7.6.2/gdb/proc-service.c 2013-12-08 05:33:13.000000000 +0100
+++ ./gdb/proc-service.c 2014-01-07 16:43:01.866311352 +0100
@@ -27,7 +27,6 @@
#include "gdb_proc_service.h"
-#include <sys/procfs.h>
/* Prototypes for supply_gregset etc. */
#include "gregset.h"

23
packages/gdb/x86-linux-nat.c.patch

@ -1,23 +0,0 @@
diff -u -r ../gdb-7.9/gdb/x86-linux-nat.c ./gdb/x86-linux-nat.c
--- ../gdb-7.9/gdb/x86-linux-nat.c 2015-02-20 12:11:44.000000000 -0500
+++ ./gdb/x86-linux-nat.c 2015-03-17 18:20:50.044805492 -0400
@@ -23,7 +23,6 @@
#include "gdb_proc_service.h"
#include <sys/ptrace.h>
#include <sys/user.h>
-#include <sys/procfs.h>
#include <sys/uio.h>
#include "x86-nat.h"
@@ -39,6 +38,11 @@
#include "x86-xstate.h"
#include "nat/linux-btrace.h"
+#ifdef __ANDROID__
+#include <sys/ucontext.h>
+typedef fpregset_t elf_fpxregset_t;
+#endif
+
/* Per-thread arch-specific data we want to keep. */
struct arch_lwp_info

14
packages/libgc/pthread_stop_world.c.patch

@ -0,0 +1,14 @@
The tkill(2) function was removed from libc in NDK r11.
diff -u -r ../bdwgc-c861ec3d1825b5bb450d20bf9091562fa8a81a4d/pthread_stop_world.c ./pthread_stop_world.c
--- ../bdwgc-c861ec3d1825b5bb450d20bf9091562fa8a81a4d/pthread_stop_world.c 2016-01-13 03:34:56.000000000 -0500
+++ ./pthread_stop_world.c 2016-03-10 07:09:03.607785056 -0500
@@ -450,7 +450,7 @@
#endif
#ifdef USE_TKILL_ON_ANDROID
- extern int tkill(pid_t tid, int sig); /* from sys/linux-unistd.h */
+ static int tkill(pid_t tid, int sig) { return tgkill(-1, tid, sig); }
static int android_thread_kill(pid_t tid, int sig)
{
Loading…
Cancel
Save