https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=426613 A very minimal backport of the upstream: http://sourceware.org/ml/gdb-patches/2007-03/msg00307.html `continue' of a PIE ppc32 program on ppc64 GDB fails. diff -u -rup gdb-6.6-orig/gdb/solib-svr4.c gdb-6.6/gdb/solib-svr4.c --- gdb-6.6-orig/gdb/solib-svr4.c 2007-12-26 18:46:17.000000000 -0500 +++ gdb-6.6/gdb/solib-svr4.c 2007-12-27 16:38:59.000000000 -0500 @@ -130,9 +130,9 @@ LM_ADDR_FROM_LINK_MAP (struct so_list *s { struct link_map_offsets *lmo = svr4_fetch_link_map_offsets (); - return (CORE_ADDR) extract_signed_integer (so->lm_info->lm - + lmo->l_addr_offset, - lmo->l_addr_size); + return (CORE_ADDR) extract_unsigned_integer (so->lm_info->lm + + lmo->l_addr_offset, + lmo->l_addr_size); } static int @@ -150,9 +150,9 @@ LM_DYNAMIC_FROM_LINK_MAP (struct so_list gdb_assert (lmo->l_ld_size != 0); - return (CORE_ADDR) extract_signed_integer (so->lm_info->lm - + lmo->l_ld_offset, - lmo->l_ld_size); + return (CORE_ADDR) extract_unsigned_integer (so->lm_info->lm + + lmo->l_ld_offset, + lmo->l_ld_size); } static CORE_ADDR