Commit 9586c093 authored by Philipp Stephani's avatar Philipp Stephani Committed by Ian Lance Taylor

cmd/cgo: add missing parameter list for function _cgo_wait_runtime_init_done

Fixes #29879

Change-Id: Id2061a5eab67bb90a8116dc4f16073be1c9a09a9
GitHub-Last-Rev: 186863ab6aa9481744f276a7afbd87bd53c9f863
GitHub-Pull-Request: golang/go#29900
Reviewed-on: https://go-review.googlesource.com/c/go/+/159178Reviewed-by: default avatarPhilipp Stephani <phst@google.com>
Reviewed-by: default avatarEmmanuel Odeke <emm.odeke@gmail.com>
Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
Run-TryBot: Emmanuel Odeke <emm.odeke@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent 3a62f4ee
...@@ -710,7 +710,7 @@ _cgo_main.c: ...@@ -710,7 +710,7 @@ _cgo_main.c:
int main() { return 0; } int main() { return 0; }
void crosscall2(void(*fn)(void*, int, uintptr_t), void *a, int c, uintptr_t ctxt) { } void crosscall2(void(*fn)(void*, int, uintptr_t), void *a, int c, uintptr_t ctxt) { }
uintptr_t _cgo_wait_runtime_init_done() { return 0; } uintptr_t _cgo_wait_runtime_init_done(void) { return 0; }
void _cgo_release_context(uintptr_t ctxt) { } void _cgo_release_context(uintptr_t ctxt) { }
char* _cgo_topofstack(void) { return (char*)0; } char* _cgo_topofstack(void) { return (char*)0; }
void _cgo_allocate(void *a, int c) { } void _cgo_allocate(void *a, int c) { }
......
...@@ -59,14 +59,14 @@ func (p *Package) writeDefs() { ...@@ -59,14 +59,14 @@ func (p *Package) writeDefs() {
fmt.Fprintf(fm, "int main() { return 0; }\n") fmt.Fprintf(fm, "int main() { return 0; }\n")
if *importRuntimeCgo { if *importRuntimeCgo {
fmt.Fprintf(fm, "void crosscall2(void(*fn)(void*, int, __SIZE_TYPE__), void *a, int c, __SIZE_TYPE__ ctxt) { }\n") fmt.Fprintf(fm, "void crosscall2(void(*fn)(void*, int, __SIZE_TYPE__), void *a, int c, __SIZE_TYPE__ ctxt) { }\n")
fmt.Fprintf(fm, "__SIZE_TYPE__ _cgo_wait_runtime_init_done() { return 0; }\n") fmt.Fprintf(fm, "__SIZE_TYPE__ _cgo_wait_runtime_init_done(void) { return 0; }\n")
fmt.Fprintf(fm, "void _cgo_release_context(__SIZE_TYPE__ ctxt) { }\n") fmt.Fprintf(fm, "void _cgo_release_context(__SIZE_TYPE__ ctxt) { }\n")
fmt.Fprintf(fm, "char* _cgo_topofstack(void) { return (char*)0; }\n") fmt.Fprintf(fm, "char* _cgo_topofstack(void) { return (char*)0; }\n")
} else { } else {
// If we're not importing runtime/cgo, we *are* runtime/cgo, // If we're not importing runtime/cgo, we *are* runtime/cgo,
// which provides these functions. We just need a prototype. // which provides these functions. We just need a prototype.
fmt.Fprintf(fm, "void crosscall2(void(*fn)(void*, int, __SIZE_TYPE__), void *a, int c, __SIZE_TYPE__ ctxt);\n") fmt.Fprintf(fm, "void crosscall2(void(*fn)(void*, int, __SIZE_TYPE__), void *a, int c, __SIZE_TYPE__ ctxt);\n")
fmt.Fprintf(fm, "__SIZE_TYPE__ _cgo_wait_runtime_init_done();\n") fmt.Fprintf(fm, "__SIZE_TYPE__ _cgo_wait_runtime_init_done(void);\n")
fmt.Fprintf(fm, "void _cgo_release_context(__SIZE_TYPE__);\n") fmt.Fprintf(fm, "void _cgo_release_context(__SIZE_TYPE__);\n")
} }
fmt.Fprintf(fm, "void _cgo_allocate(void *a, int c) { }\n") fmt.Fprintf(fm, "void _cgo_allocate(void *a, int c) { }\n")
...@@ -784,7 +784,7 @@ func (p *Package) writeExports(fgo2, fm, fgcc, fgcch io.Writer) { ...@@ -784,7 +784,7 @@ func (p *Package) writeExports(fgo2, fm, fgcc, fgcch io.Writer) {
fmt.Fprintf(fgcc, "#pragma GCC diagnostic ignored \"-Waddress-of-packed-member\"\n") fmt.Fprintf(fgcc, "#pragma GCC diagnostic ignored \"-Waddress-of-packed-member\"\n")
fmt.Fprintf(fgcc, "extern void crosscall2(void (*fn)(void *, int, __SIZE_TYPE__), void *, int, __SIZE_TYPE__);\n") fmt.Fprintf(fgcc, "extern void crosscall2(void (*fn)(void *, int, __SIZE_TYPE__), void *, int, __SIZE_TYPE__);\n")
fmt.Fprintf(fgcc, "extern __SIZE_TYPE__ _cgo_wait_runtime_init_done();\n") fmt.Fprintf(fgcc, "extern __SIZE_TYPE__ _cgo_wait_runtime_init_done(void);\n")
fmt.Fprintf(fgcc, "extern void _cgo_release_context(__SIZE_TYPE__);\n\n") fmt.Fprintf(fgcc, "extern void _cgo_release_context(__SIZE_TYPE__);\n\n")
fmt.Fprintf(fgcc, "extern char* _cgo_topofstack(void);") fmt.Fprintf(fgcc, "extern char* _cgo_topofstack(void);")
fmt.Fprintf(fgcc, "%s\n", tsanProlog) fmt.Fprintf(fgcc, "%s\n", tsanProlog)
...@@ -1924,5 +1924,5 @@ static void GoInit(void) { ...@@ -1924,5 +1924,5 @@ static void GoInit(void) {
runtime_iscgo = 1; runtime_iscgo = 1;
} }
extern __SIZE_TYPE__ _cgo_wait_runtime_init_done() __attribute__ ((weak)); extern __SIZE_TYPE__ _cgo_wait_runtime_init_done(void) __attribute__ ((weak));
` `
...@@ -32,7 +32,7 @@ x_cgo_sys_thread_create(void* (*func)(void*), void* arg) { ...@@ -32,7 +32,7 @@ x_cgo_sys_thread_create(void* (*func)(void*), void* arg) {
} }
uintptr_t uintptr_t
_cgo_wait_runtime_init_done() { _cgo_wait_runtime_init_done(void) {
void (*pfn)(struct context_arg*); void (*pfn)(struct context_arg*);
pthread_mutex_lock(&runtime_init_mu); pthread_mutex_lock(&runtime_init_mu);
......
...@@ -70,7 +70,7 @@ _cgo_is_runtime_initialized() { ...@@ -70,7 +70,7 @@ _cgo_is_runtime_initialized() {
} }
uintptr_t uintptr_t
_cgo_wait_runtime_init_done() { _cgo_wait_runtime_init_done(void) {
void (*pfn)(struct context_arg*); void (*pfn)(struct context_arg*);
_cgo_maybe_run_preinit(); _cgo_maybe_run_preinit();
......
...@@ -61,7 +61,7 @@ void _cgo_sys_thread_start(ThreadStart *ts); ...@@ -61,7 +61,7 @@ void _cgo_sys_thread_start(ThreadStart *ts);
* If runtime.SetCgoTraceback is used to set a context function, * If runtime.SetCgoTraceback is used to set a context function,
* calls the context function and returns the context value. * calls the context function and returns the context value.
*/ */
uintptr_t _cgo_wait_runtime_init_done(); uintptr_t _cgo_wait_runtime_init_done(void);
/* /*
* Call fn in the 6c world. * Call fn in the 6c world.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment