diff --git a/src/ctypes.c b/src/ctypes.c index 7d976ee..cd6411f 100644 --- a/src/ctypes.c +++ b/src/ctypes.c @@ -452,7 +452,7 @@ static char *dlcall_usage[] = { "These are specified followed by a ':' then the type.", "", " $ dlopen libc.so.6", - " $ dlcall lchown string:/tmp/foo int:$UID int:-1", + " $ dlcall lchown string:@TERMUX_PREFIX@/tmp/foo int:$UID int:-1", "", "Options:", " -a abi Use the specified ABI rather than the default.", diff --git a/src/struct/dutil.h b/src/struct/dutil.h index 0401b3e..c6d35f3 100644 --- a/src/struct/dutil.h +++ b/src/struct/dutil.h @@ -296,7 +296,7 @@ void *zalloc(const size_t size); Elf_Scn *elf_section_by_name(Elf *elf, GElf_Ehdr *ep, GElf_Shdr *shp, const char *name, size_t *index); -#ifndef SHT_GNU_ATTRIBUTES +#if !defined(SHT_GNU_ATTRIBUTES) && !defined(__ANDROID__) /* Just a way to check if we're using an old elfutils version */ static inline int elf_getshdrstrndx(Elf *elf, size_t *dst) { diff --git a/src/struct/struct.c b/src/struct/struct.c index dd3687d..70d0a8d 100644 --- a/src/struct/struct.c +++ b/src/struct/struct.c @@ -21,6 +21,10 @@ #define MAX_ELEMENT_SIZE 128 // Maximum length of array_name[element_name] +#ifdef __ANDROID__ +#define strdupa(s) strcpy(alloca(strlen(s) + 1), s) +#endif + static int select_union_string(char *unionstr, const char *unionname, char *membername, size_t maxlen); // This is just to disable ctf support. diff --git a/src/unpack.c b/src/unpack.c index e50c33b..d9dd611 100644 --- a/src/unpack.c +++ b/src/unpack.c @@ -22,7 +22,7 @@ #include "types.h" #include "shell.h" -#if !defined(__GLIBC__) && !defined(__NEWLIB__) +#if !defined(__GLIBC__) && !defined(__NEWLIB__) && __ANDROID_API__ < 23 static inline void *mempcpy(void *dest, const void *src, size_t n) { memcpy(dest, src, n);