Index: gcc/go/gofrontend/MERGE =================================================================== --- gcc/go/gofrontend/MERGE (revision 275758) +++ gcc/go/gofrontend/MERGE (working copy) @@ -1,4 +1,4 @@ -722990deeede7801e4ed3ca5d53ce312a19fcd7a +ff18e041624b8c23ffcd747f51e9dda945777d2a The first line of this file holds the git revision number of the last merge done from the gofrontend repository. Index: libgo/go/reflect/makefunc_ffi.go =================================================================== --- libgo/go/reflect/makefunc_ffi.go (revision 275698) +++ libgo/go/reflect/makefunc_ffi.go (working copy) @@ -15,19 +15,20 @@ func makeFuncFFI(cif unsafe.Pointer, imp // The makeCIF function, implemented in the runtime package, allocates a CIF. func makeCIF(ft *funcType) unsafe.Pointer -// FFICallbackGo implements the Go side of the libffi callback. -// It is exported so that C code can call it. +// Export ffiCallbackGo so that C code in makefunc_ffi_c.c can call it. +//go:linkname ffiCallbackGo + +// ffiCallbackGo implements the Go side of the libffi callback. // // The call chain arriving here looks like // some_go_caller // ->some_ffi_internals // ->ffi_callback (in C) -// ->FFICallbackGo +// ->ffiCallbackGo // // The ffi_callback handles __go_makefunc_can_recover, and // then passes off the data as received from ffi here. - -func FFICallbackGo(results unsafe.Pointer, params unsafe.Pointer, impl *makeFuncImpl) { +func ffiCallbackGo(results unsafe.Pointer, params unsafe.Pointer, impl *makeFuncImpl) { ftyp := impl.typ in := make([]Value, 0, len(ftyp.in)) ap := params Index: libgo/go/reflect/makefunc_ffi_c.c =================================================================== --- libgo/go/reflect/makefunc_ffi_c.c (revision 275698) +++ libgo/go/reflect/makefunc_ffi_c.c (working copy) @@ -25,8 +25,8 @@ void makeFuncFFI(void *cif, void *impl) function ffiCall with the pointer to the arguments, the results area, and the closure structure. */ -extern void FFICallbackGo(void *result, void **args, ffi_go_closure *closure) - __asm__ (GOSYM_PREFIX "reflect.FFICallbackGo"); +extern void ffiCallbackGo(void *result, void **args, ffi_go_closure *closure) + __asm__ (GOSYM_PREFIX "reflect.ffiCallbackGo"); extern void makefuncfficanrecover(Slice) __asm__ (GOSYM_PREFIX "runtime.makefuncfficanrecover"); @@ -72,7 +72,7 @@ ffi_callback (ffi_cif* cif __attribute__ makefuncfficanrecover (s); } - FFICallbackGo(results, args, closure); + ffiCallbackGo(results, args, closure); if (i < n) makefuncreturning ();