diff options
author | Ian Lance Taylor <iant@golang.org> | 2020-11-16 20:06:53 -0800 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2020-11-20 12:44:35 -0800 |
commit | a01dda3c23b836754814fab1cab949a1bbc641e8 (patch) | |
tree | 826310b88323c0f636baf89393557fde6a56fdeb /libgo/runtime | |
parent | 90bf60c3c24c6c99ebbecf9d08a6d0d916d73721 (diff) | |
download | gcc-a01dda3c23b836754814fab1cab949a1bbc641e8.zip gcc-a01dda3c23b836754814fab1cab949a1bbc641e8.tar.gz gcc-a01dda3c23b836754814fab1cab949a1bbc641e8.tar.bz2 |
compiler, libgo: change mangling scheme
Overhaul the mangling scheme to avoid ambiguities if the package path
contains a dot. Instead of using dot both to separate components and
to mangle characters, use dot only to separate components and use
underscore to mangle characters.
For golang/go#41862
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/271726
Diffstat (limited to 'libgo/runtime')
-rw-r--r-- | libgo/runtime/go-ffi.c | 30 | ||||
-rw-r--r-- | libgo/runtime/go-setenv.c | 2 | ||||
-rw-r--r-- | libgo/runtime/go-unsafe-pointer.c | 4 | ||||
-rw-r--r-- | libgo/runtime/go-unsetenv.c | 2 | ||||
-rw-r--r-- | libgo/runtime/runtime.h | 2 |
5 files changed, 20 insertions, 20 deletions
diff --git a/libgo/runtime/go-ffi.c b/libgo/runtime/go-ffi.c index b030f5e..1ec5f87 100644 --- a/libgo/runtime/go-ffi.c +++ b/libgo/runtime/go-ffi.c @@ -16,36 +16,36 @@ the libffi type values. */ ffi_type *go_ffi_type_pointer(void) __attribute__ ((no_split_stack)); -ffi_type *go_ffi_type_pointer(void) __asm__ ("runtime.ffi_type_pointer"); +ffi_type *go_ffi_type_pointer(void) __asm__ ("runtime.ffi__type__pointer"); ffi_type *go_ffi_type_sint8(void) __attribute__ ((no_split_stack)); -ffi_type *go_ffi_type_sint8(void) __asm__ ("runtime.ffi_type_sint8"); +ffi_type *go_ffi_type_sint8(void) __asm__ ("runtime.ffi__type__sint8"); ffi_type *go_ffi_type_sint16(void) __attribute__ ((no_split_stack)); -ffi_type *go_ffi_type_sint16(void) __asm__ ("runtime.ffi_type_sint16"); +ffi_type *go_ffi_type_sint16(void) __asm__ ("runtime.ffi__type__sint16"); ffi_type *go_ffi_type_sint32(void) __attribute__ ((no_split_stack)); -ffi_type *go_ffi_type_sint32(void) __asm__ ("runtime.ffi_type_sint32"); +ffi_type *go_ffi_type_sint32(void) __asm__ ("runtime.ffi__type__sint32"); ffi_type *go_ffi_type_sint64(void) __attribute__ ((no_split_stack)); -ffi_type *go_ffi_type_sint64(void) __asm__ ("runtime.ffi_type_sint64"); +ffi_type *go_ffi_type_sint64(void) __asm__ ("runtime.ffi__type__sint64"); ffi_type *go_ffi_type_uint8(void) __attribute__ ((no_split_stack)); -ffi_type *go_ffi_type_uint8(void) __asm__ ("runtime.ffi_type_uint8"); +ffi_type *go_ffi_type_uint8(void) __asm__ ("runtime.ffi__type__uint8"); ffi_type *go_ffi_type_uint16(void) __attribute__ ((no_split_stack)); -ffi_type *go_ffi_type_uint16(void) __asm__ ("runtime.ffi_type_uint16"); +ffi_type *go_ffi_type_uint16(void) __asm__ ("runtime.ffi__type__uint16"); ffi_type *go_ffi_type_uint32(void) __attribute__ ((no_split_stack)); -ffi_type *go_ffi_type_uint32(void) __asm__ ("runtime.ffi_type_uint32"); +ffi_type *go_ffi_type_uint32(void) __asm__ ("runtime.ffi__type__uint32"); ffi_type *go_ffi_type_uint64(void) __attribute__ ((no_split_stack)); -ffi_type *go_ffi_type_uint64(void) __asm__ ("runtime.ffi_type_uint64"); +ffi_type *go_ffi_type_uint64(void) __asm__ ("runtime.ffi__type__uint64"); ffi_type *go_ffi_type_float(void) __attribute__ ((no_split_stack)); -ffi_type *go_ffi_type_float(void) __asm__ ("runtime.ffi_type_float"); +ffi_type *go_ffi_type_float(void) __asm__ ("runtime.ffi__type__float"); ffi_type *go_ffi_type_double(void) __attribute__ ((no_split_stack)); -ffi_type *go_ffi_type_double(void) __asm__ ("runtime.ffi_type_double"); +ffi_type *go_ffi_type_double(void) __asm__ ("runtime.ffi__type__double"); ffi_type *go_ffi_type_complex_float(void) __attribute__ ((no_split_stack)); -ffi_type *go_ffi_type_complex_float(void) __asm__ ("runtime.ffi_type_complex_float"); +ffi_type *go_ffi_type_complex_float(void) __asm__ ("runtime.ffi__type__complex__float"); ffi_type *go_ffi_type_complex_double(void) __attribute__ ((no_split_stack)); -ffi_type *go_ffi_type_complex_double(void) __asm__ ("runtime.ffi_type_complex_double"); +ffi_type *go_ffi_type_complex_double(void) __asm__ ("runtime.ffi__type__complex__double"); ffi_type *go_ffi_type_void(void) __attribute__ ((no_split_stack)); -ffi_type *go_ffi_type_void(void) __asm__ ("runtime.ffi_type_void"); +ffi_type *go_ffi_type_void(void) __asm__ ("runtime.ffi__type__void"); _Bool go_ffi_supports_complex(void) __attribute__ ((no_split_stack)); -_Bool go_ffi_supports_complex(void) __asm__ ("runtime.ffi_supports_complex"); +_Bool go_ffi_supports_complex(void) __asm__ ("runtime.ffi__supports__complex"); ffi_type * go_ffi_type_pointer(void) diff --git a/libgo/runtime/go-setenv.c b/libgo/runtime/go-setenv.c index 81b1775..08987de 100644 --- a/libgo/runtime/go-setenv.c +++ b/libgo/runtime/go-setenv.c @@ -13,7 +13,7 @@ /* Set the C environment from Go. This is called by syscall.Setenv. */ -void setenv_c (String, String) __asm__ (GOSYM_PREFIX "syscall.setenv_c"); +void setenv_c (String, String) __asm__ (GOSYM_PREFIX "syscall.setenv__c"); void setenv_c (String k, String v) diff --git a/libgo/runtime/go-unsafe-pointer.c b/libgo/runtime/go-unsafe-pointer.c index 364878e..e24bfb2 100644 --- a/libgo/runtime/go-unsafe-pointer.c +++ b/libgo/runtime/go-unsafe-pointer.c @@ -72,7 +72,7 @@ const struct _type unsafe_Pointer = it to be defined elsewhere. */ extern const struct ptrtype pointer_unsafe_Pointer - __asm__ (GOSYM_PREFIX "type...1unsafe.Pointer"); + __asm__ (GOSYM_PREFIX "unsafe.Pointer..p"); /* The reflection string. */ #define PREFLECTION "*unsafe.Pointer" @@ -83,7 +83,7 @@ static const String preflection_string = }; extern const byte pointer_unsafe_Pointer_gc[] - __asm__ (GOSYM_PREFIX "type...1unsafe.Pointer..g"); + __asm__ (GOSYM_PREFIX "unsafe.Pointer..p..g"); const byte pointer_unsafe_Pointer_gc[] = { 1 }; diff --git a/libgo/runtime/go-unsetenv.c b/libgo/runtime/go-unsetenv.c index 2135997..4b5058a 100644 --- a/libgo/runtime/go-unsetenv.c +++ b/libgo/runtime/go-unsetenv.c @@ -14,7 +14,7 @@ /* Unset an environment variable from Go. This is called by syscall.Unsetenv. */ -void unsetenv_c (String) __asm__ (GOSYM_PREFIX "syscall.unsetenv_c"); +void unsetenv_c (String) __asm__ (GOSYM_PREFIX "syscall.unsetenv__c"); void unsetenv_c (String k) diff --git a/libgo/runtime/runtime.h b/libgo/runtime/runtime.h index f46eaea..3a65d44 100644 --- a/libgo/runtime/runtime.h +++ b/libgo/runtime/runtime.h @@ -440,7 +440,7 @@ void runtime_freedefer(Defer*); extern void _cgo_wait_runtime_init_done (void); extern void _cgo_notify_runtime_init_done (void) - __asm__ (GOSYM_PREFIX "runtime._cgo_notify_runtime_init_done"); + __asm__ (GOSYM_PREFIX "runtime.__cgo__notify__runtime__init__done"); extern _Bool runtime_iscgo; extern uintptr __go_end __attribute__ ((weak)); extern void *getitab(const struct _type *, const struct _type *, _Bool) |