Using 32bit types like uint32_t for pointers creates issues on 64 bit architectures like AArch64. Replaced occurrences of these with uintptr_t, which will work for both 32 and 64 bit architectures. --- cpukit/libdebugger/rtems-debugger-server.c | 4 ++-- cpukit/libdebugger/rtems-debugger-target.c | 2 +- cpukit/libdebugger/rtems-debugger-target.h | 2 +- cpukit/libmisc/rtems-fdt/rtems-fdt-shell.c | 4 ++-- cpukit/libmisc/stackchk/check.c | 3 ++- 5 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/cpukit/libdebugger/rtems-debugger-server.c b/cpukit/libdebugger/rtems-debugger-server.c index 975ec23a30..f8c485a794 100644 --- a/cpukit/libdebugger/rtems-debugger-server.c +++ b/cpukit/libdebugger/rtems-debugger-server.c @@ -1438,7 +1438,7 @@ remote_read_memory(uint8_t* buffer, int size) if (comma == NULL) remote_packet_out_str(r_E01); else { - DB_UINT addr; + uintptr_t addr; DB_UINT length; int r; addr = hex_decode_uint(&buffer[1]); @@ -1468,7 +1468,7 @@ remote_write_memory(uint8_t* buffer, int size) comma = strchr((const char*) buffer, ','); colon = strchr((const char*) buffer, ':'); if (comma != NULL && colon != NULL) { - DB_UINT addr; + uintptr_t addr; DB_UINT length; int r; addr = hex_decode_uint(&buffer[1]); diff --git a/cpukit/libdebugger/rtems-debugger-target.c b/cpukit/libdebugger/rtems-debugger-target.c index bf7579700d..34e4e84d2f 100644 --- a/cpukit/libdebugger/rtems-debugger-target.c +++ b/cpukit/libdebugger/rtems-debugger-target.c @@ -168,7 +168,7 @@ rtems_debugger_target_reg_table_size(void) } int -rtems_debugger_target_swbreak_control(bool insert, DB_UINT addr, DB_UINT kind) +rtems_debugger_target_swbreak_control(bool insert, uintptr_t addr, DB_UINT kind) { rtems_debugger_target* target = rtems_debugger->target; rtems_debugger_target_swbreak* swbreaks; diff --git a/cpukit/libdebugger/rtems-debugger-target.h b/cpukit/libdebugger/rtems-debugger-target.h index f2abbe5fd3..db356e1f07 100644 --- a/cpukit/libdebugger/rtems-debugger-target.h +++ b/cpukit/libdebugger/rtems-debugger-target.h @@ -200,7 +200,7 @@ extern void rtems_debugger_target_exception_print(CPU_Exception_frame* frame); * Software breakpoints. These are also referred to as memory breakpoints. */ extern int rtems_debugger_target_swbreak_control(bool insert, - DB_UINT addr, + uintptr_t addr, DB_UINT kind); /** diff --git a/cpukit/libmisc/rtems-fdt/rtems-fdt-shell.c b/cpukit/libmisc/rtems-fdt/rtems-fdt-shell.c index b0894c1d38..61f20765e0 100644 --- a/cpukit/libmisc/rtems-fdt/rtems-fdt-shell.c +++ b/cpukit/libmisc/rtems-fdt/rtems-fdt-shell.c @@ -52,14 +52,14 @@ static long rtems_fdt_test_timeout = 5; static rtems_fdt_handle cmd_fdt_handle; static void -rtems_fdt_write (uint32_t address, uint32_t value) +rtems_fdt_write (uintptr_t address, uint32_t value) { volatile uint32_t* ap = (uint32_t*) address; *ap = value; } static uint32_t -rtems_fdt_read (uint32_t address) +rtems_fdt_read (uintptr_t address) { volatile uint32_t* ap = (uint32_t*) address; return *ap; diff --git a/cpukit/libmisc/stackchk/check.c b/cpukit/libmisc/stackchk/check.c index ab08155c92..a2b63345d9 100644 --- a/cpukit/libmisc/stackchk/check.c +++ b/cpukit/libmisc/stackchk/check.c @@ -447,12 +447,13 @@ static bool Stack_check_Dump_threads_usage( { char name[ 22 ]; const rtems_printer *printer; + uintptr_t sp = _CPU_Context_Get_SP( &the_thread->Registers ); printer = arg; _Thread_Get_name( the_thread, name, sizeof( name ) ); Stack_check_Dump_stack_usage( &the_thread->Start.Initial_stack, - (void *) _CPU_Context_Get_SP( &the_thread->Registers ), + (void *) sp, name, the_thread->Object.id, printer -- 2.27.0 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel