This patch by Tony Reix fixes a couple of issues in libgo on systems that distinguish between libgo's uintptr and uintptr_t. Bootstrapped on x86_64-pc-linux-gnu. Committed to mainline.
Ian
Index: gcc/go/gofrontend/MERGE =================================================================== --- gcc/go/gofrontend/MERGE (revision 253468) +++ gcc/go/gofrontend/MERGE (working copy) @@ -1,4 +1,4 @@ -adc6eb826f156d0980f0ad9f9efc5c919ec4905e +af46ad16dc34773877068393d331ac8ae34b2219 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. Index: libgo/runtime/go-caller.c =================================================================== --- libgo/runtime/go-caller.c (revision 253311) +++ libgo/runtime/go-caller.c (working copy) @@ -159,7 +159,7 @@ syminfo_callback (void *data, uintptr_t /* Set *VAL to the value of the symbol for PC. */ static _Bool -__go_symbol_value (uintptr_t pc, uintptr_t *val) +__go_symbol_value (uintptr pc, uintptr *val) { *val = 0; backtrace_syminfo (__go_get_backtrace_state (), pc, syminfo_callback, Index: libgo/runtime/proc.c =================================================================== --- libgo/runtime/proc.c (revision 253311) +++ libgo/runtime/proc.c (working copy) @@ -179,7 +179,7 @@ fixcontext(ucontext_t* c) // So we make the field larger in runtime2.go and pick an appropriate // offset within the field here. static ucontext_t* -ucontext_arg(uintptr* go_ucontext) +ucontext_arg(uintptr_t* go_ucontext) { uintptr_t p = (uintptr_t)go_ucontext; size_t align = __alignof__(ucontext_t);