Fixes for the android build and related warnings

This commit is contained in:
pancake 2019-01-21 12:10:33 +01:00
parent 3ef9a7cc95
commit 709ffb60b6
8 changed files with 33 additions and 29 deletions

View file

@ -30,5 +30,4 @@ Build farm, see `sys/android-shell.sh` and `sys/android-build.sh`
Environment:
NDK_ARCH=arm|x86
STATIC_BUILD=0|1
NDK_ARCH=arm|arm64|x86

View file

@ -39,7 +39,7 @@ static bool advance_till_scope_end(RAnal* anal, RAnalOp *op, ut64 address, ut32
ut8 buffer[16];
ut8 *ptr = buffer;
ut8 *end = ptr + sizeof (buffer);
WasmOp wop = {0};
WasmOp wop = {{0}};
int size = 0;
while (anal->iob.read_at (anal->iob.io, address, buffer, sizeof (buffer))) {
size = wasm_dis (&wop, ptr, end - ptr);
@ -72,7 +72,7 @@ static bool advance_till_scope_end(RAnal* anal, RAnalOp *op, ut64 address, ut32
// analyzes the wasm opcode.
static int wasm_op(RAnal *anal, RAnalOp *op, ut64 addr, const ut8 *data, int len) {
WasmOp wop = {0};
WasmOp wop = {{0}};
RAnalHint *hint = NULL;
memset (op, '\0', sizeof (RAnalOp));
int ret = wasm_dis (&wop, data, len);

View file

@ -35,7 +35,7 @@ static void print_string(RBinFile *bf, RBinString *string, int raw) {
vaddr = addr = r_bin_get_vaddr (bin, string->paddr, string->vaddr);
// If raw string dump mode, use printf to dump directly to stdout.
PrintfCallback temp = io->cb_printf;
// PrintfCallback temp = io->cb_printf;
switch (mode) {
case R_MODE_SIMPLEST:
io->cb_printf ("%s\n", string->string);

View file

@ -225,7 +225,7 @@ R_API int r_cmd_call(RCmd *cmd, const char *input) {
return true;
}
}
if (input[0] == -1) {
if (!*input) {
free (nstr);
return -1;
}

View file

@ -214,7 +214,7 @@ static int r_debug_native_detach (RDebug *dbg, int pid) {
#elif __BSD__
return ptrace (PT_DETACH, pid, NULL, 0);
#else
return r_debug_ptrace (dbg, PTRACE_DETACH, pid, NULL, NULL);
return r_debug_ptrace (dbg, PTRACE_DETACH, pid, NULL, (r_ptrace_data_t)(size_t)0);
#endif
}
@ -1609,7 +1609,7 @@ static bool arm32_hwbp_del (RDebug *dbg, RBreakpoint *bp, RBreakpointItem *b) {
#if __arm64__ || __aarch64__
// type = 2 = write
static volatile uint8_t var[96] __attribute__((__aligned__(32)));
//static volatile uint8_t var[96] __attribute__((__aligned__(32)));
static bool ll_arm64_hwbp_set(pid_t pid, ut64 _addr, int size, int wp, ut32 type) {
const volatile uint8_t *addr = (void*)(size_t)_addr; //&var[32 + wp];
@ -1647,7 +1647,7 @@ static bool ll_arm64_hwbp_set(pid_t pid, ut64 _addr, int size, int wp, ut32 type
}
static bool ll_arm64_hwbp_del(pid_t pid, ut64 _addr, int size, int wp, ut32 type) {
const volatile uint8_t *addr = &var[32 + wp];
// const volatile uint8_t *addr = &var[32 + wp];
// TODO: support multiple watchpoints and find
struct user_hwdebug_state dreg_state = {0};
struct iovec iov = {0};

View file

@ -1,4 +1,4 @@
/* radare - LGPL - Copyright 2009-2018 - pancake */
/* radare - LGPL - Copyright 2009-2019 - pancake */
#include <r_userconf.h>
@ -59,7 +59,7 @@ static int linux_stop_process(int pid);
int linux_handle_signals (RDebug *dbg) {
siginfo_t siginfo = {0};
int ret = r_debug_ptrace (dbg, PTRACE_GETSIGINFO, dbg->pid, 0, &siginfo);
int ret = r_debug_ptrace (dbg, PTRACE_GETSIGINFO, dbg->pid, 0, (r_ptrace_data_t)(size_t)&siginfo);
if (ret == -1) {
/* ESRCH means the process already went away :-/ */
if (errno == ESRCH) {
@ -169,7 +169,7 @@ RDebugReasonType linux_ptrace_event (RDebug *dbg, int pid, int status) {
break;
case PTRACE_EVENT_CLONE:
if (dbg->trace_clone) {
if (r_debug_ptrace (dbg, PTRACE_GETEVENTMSG, pid, 0, &data) == -1) {
if (r_debug_ptrace (dbg, PTRACE_GETEVENTMSG, pid, 0, (r_ptrace_data_t)(size_t)&data) == -1) {
r_sys_perror ("ptrace GETEVENTMSG");
return R_DEBUG_REASON_ERROR;
}
@ -180,7 +180,7 @@ RDebugReasonType linux_ptrace_event (RDebug *dbg, int pid, int status) {
break;
case PTRACE_EVENT_FORK:
if (dbg->trace_forks) {
if (r_debug_ptrace (dbg, PTRACE_GETEVENTMSG, pid, 0, &data) == -1) {
if (r_debug_ptrace (dbg, PTRACE_GETEVENTMSG, pid, 0, (r_ptrace_data_t)(size_t)&data) == -1) {
r_sys_perror ("ptrace GETEVENTMSG");
return R_DEBUG_REASON_ERROR;
}
@ -193,7 +193,7 @@ RDebugReasonType linux_ptrace_event (RDebug *dbg, int pid, int status) {
}
break;
case PTRACE_EVENT_EXIT:
if (r_debug_ptrace (dbg, PTRACE_GETEVENTMSG, pid, 0, &data) == -1) {
if (r_debug_ptrace (dbg, PTRACE_GETEVENTMSG, pid, 0, (r_ptrace_data_t)(size_t)&data) == -1) {
r_sys_perror ("ptrace GETEVENTMSG");
return R_DEBUG_REASON_ERROR;
}
@ -252,7 +252,7 @@ static void linux_detach_all (RDebug *dbg) {
RListIter *it;
r_list_foreach (th_list, it, th) {
if (th->pid != dbg->main_pid) {
if (r_debug_ptrace (dbg, PTRACE_DETACH, th->pid, NULL, NULL) == -1) {
if (r_debug_ptrace (dbg, PTRACE_DETACH, th->pid, NULL, (r_ptrace_data_t)(size_t)NULL) == -1) {
perror ("PTRACE_DETACH");
}
}
@ -260,7 +260,7 @@ static void linux_detach_all (RDebug *dbg) {
}
// Detaching from main proc
if (r_debug_ptrace (dbg, PTRACE_DETACH, dbg->main_pid, NULL, NULL) == -1) {
if (r_debug_ptrace (dbg, PTRACE_DETACH, dbg->main_pid, NULL, (r_ptrace_data_t)(size_t)NULL) == -1) {
perror ("PTRACE_DETACH");
}
}
@ -408,7 +408,7 @@ static int linux_stop_process(int pid) {
static int linux_attach_single_pid(RDebug *dbg, int ptid) {
int ret = 0;
linux_set_options (dbg, ptid);
ret = r_debug_ptrace (dbg, PTRACE_ATTACH, ptid, NULL, NULL);
ret = r_debug_ptrace (dbg, PTRACE_ATTACH, ptid, NULL, (r_ptrace_data_t)(size_t)NULL);
return ret;
}
@ -880,7 +880,7 @@ int linux_reg_read (RDebug *dbg, int type, ut8 *buf, int size) {
.iov_base = &regs,
.iov_len = sizeof (regs)
};
ret = r_debug_ptrace (dbg, PTRACE_GETREGSET, pid, NT_PRSTATUS, &io);
ret = r_debug_ptrace (dbg, PTRACE_GETREGSET, pid, (void*)(size_t)NT_PRSTATUS, (r_ptrace_data_t)(size_t)&io);
}
#elif __BSD__ && __POWERPC__ || __sparc__
ret = r_debug_ptrace (dbg, PTRACE_GETREGS, pid, &regs, NULL);
@ -932,10 +932,10 @@ int linux_reg_write (RDebug *dbg, int type, const ut8 *buf, int size) {
if (type == R_REG_TYPE_GPR) {
#if __arm64__ || __aarch64__
struct iovec io = {
.iov_base = buf,
.iov_base = (void*)buf,
.iov_len = sizeof (R_DEBUG_REG_T)
};
int ret = r_debug_ptrace (dbg, PTRACE_SETREGSET, dbg->pid, NT_PRSTATUS, &io);
int ret = r_debug_ptrace (dbg, PTRACE_SETREGSET, dbg->pid, (void*)(size_t)NT_PRSTATUS, (r_ptrace_data_t)(size_t)&io);
#elif __POWERPC__ || __sparc__
int ret = r_debug_ptrace (dbg, PTRACE_SETREGS, dbg->pid, buf, NULL);
#else

View file

@ -42,12 +42,12 @@ static int replace(int argc, const char *argv[], char *newstr) {
{ 0, "b.w", "jmp #", { 1 } },
{ 0, "b.gt", "jmp ifgt #", { 1 } },
{ 0, "b.le", "jmp ifle #", { 1 } },
{ 0, "beq lr", "ifeq ret", { NULL } },
{ 0, "beq lr", "ifeq ret", { 0 } },
{ 0, "beq", "je #", { 1 } },
{ 0, "call", "#()", { 1 } },
{ 0, "bl", "#()", { 1 } },
{ 0, "blx", "#()", { 1 } },
{ 0, "bx lr", "ret", { NULL } },
{ 0, "bx lr", "ret", { 0 } },
{ 0, "bxeq", "je #", { 1 } },
{ 0, "cmf", "if (# == #)", { 1, 2 } },
{ 0, "cmn", "if (# != #)", { 1, 2 } },

View file

@ -3,6 +3,9 @@
BUILD=1
FLAGS=""
PREFIX="/data/data/org.radare.radare2installer/radare2"
MAKE=make
gmake --help >/dev/null 2>&1
[ $? = 0 ] && MAKE=gmake
type pax
[ $? != 0 ] && exit 1
@ -106,7 +109,7 @@ if [ "${BUILD}" = 1 ]; then
sleep 1
if [ 1 = 1 ]; then
make mrproper
${MAKE} mrproper
if [ $STATIC_BUILD = 1 ]; then
CFGFLAGS="--with-libr"
fi
@ -119,7 +122,7 @@ if [ "${BUILD}" = 1 ]; then
./configure --with-compiler=android --without-libuv \
--with-ostype=android \
--prefix=${PREFIX} ${CFGFLAGS} || exit 1
make -s -j 4 || exit 1
${MAKE} -s -j 4 || exit 1
fi
fi
rm -rf $D
@ -128,15 +131,15 @@ mkdir -p $D
HERE=${PWD}
INSTALL_PROGRAM=`grep INSTALL_DATA config-user.mk|cut -d = -f 2`
make install INSTALL_PROGRAM="${INSTALL_PROGRAM}" DESTDIR="$HERE/$D" || exit 1
${MAKE} install INSTALL_PROGRAM="${INSTALL_PROGRAM}" DESTDIR="$HERE/$D" || exit 1
make purge-dev DESTDIR=${PWD}/${D} STRIP="${STRIP}"
${MAKE} purge-dev DESTDIR="${PWD}/${D}" STRIP="${STRIP}"
#make purge-doc DESTDIR=${PWD}/${D} STRIP="${STRIP}"
#rm -rf ${PWD}/${D}/share
rm -rf ${PWD}/${D}/include
rm -rf ${PWD}/${D}/lib/pkgconfig
rm -rf ${PWD}/${D}/lib/libsdb.a
rm -rf "${HERE}/${D}/${PREFIX}/lib"
#rm -rf "${HERE}/${D}/${PREFIX}/lib"
rm -rf "${HERE}/${D}/${PREFIX}/radare2" # r2pm
rm -rf "${HERE}/${D}/${PREFIX}/bin/r2pm"
@ -148,8 +151,10 @@ rm -rf "${HERE}/${D}/${PREFIX}/bin/r2pm"
# use busybox style symlinkz
cd binr/blob
make STATIC_BUILD=1 || exit 1
make install PREFIX="${PREFIX}" DESTDIR="${HERE}/${D}" || exit 1
#${MAKE} || exit 1
#CFLAGS=-static LDFLAGS=-static ${MAKE} -j4 || exit 1
${MAKE} -j4 || exit 1
${MAKE} install PREFIX="${PREFIX}" DESTDIR="${HERE}/${D}" || exit 1
mkdir -p ${HERE}/${D}/${PREFIX}/projects
:> ${HERE}/${D}/${PREFIX}/projects/.empty
mkdir -p ${HERE}/${D}/${PREFIX}/tmp