]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/cgo: use full prototype for main in C code
authorIan Lance Taylor <iant@golang.org>
Wed, 11 Dec 2024 04:05:06 +0000 (20:05 -0800)
committerGopher Robot <gobot@golang.org>
Wed, 11 Dec 2024 23:57:34 +0000 (15:57 -0800)
Avoids pedantic errors from modern C compilers.

Fixes #70769

Change-Id: Ibe0d9960e998eb0346b97d7bd69eb7de0d0e6c60
Reviewed-on: https://go-review.googlesource.com/c/go/+/635095
Reviewed-by: Robert Griesemer <gri@google.com>
Reviewed-by: Mauri de Souza Meneguzzo <mauri870@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Commit-Queue: Ian Lance Taylor <iant@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>

src/cmd/cgo/doc.go
src/cmd/cgo/out.go

index 9ff5fd41901c9034d72dc04f01b0795f1b82eda5..ef5272299bbf077ce3167d1d0f37818e6471e28d 100644 (file)
@@ -796,7 +796,7 @@ Instead, the build process generates an object file using dynamic
 linkage to the desired libraries. The main function is provided by
 _cgo_main.c:
 
-       int main() { return 0; }
+       int main(int argc, char **argv) { return 0; }
        void crosscall2(void(*fn)(void*), void *a, int c, uintptr_t ctxt) { }
        uintptr_t _cgo_wait_runtime_init_done(void) { return 0; }
        void _cgo_release_context(uintptr_t ctxt) { }
index 954c4b70c954ebbf884b66443d828686df24c92a..5e67cc2d3345985d9ac114f12cfd50accbd90789 100644 (file)
@@ -59,7 +59,7 @@ func (p *Package) writeDefs() {
 
        // Write C main file for using gcc to resolve imports.
        fmt.Fprintf(fm, "#include <stddef.h>\n") // For size_t below.
-       fmt.Fprintf(fm, "int main() { return 0; }\n")
+       fmt.Fprintf(fm, "int main(int argc __attribute__((unused)), char **argv __attribute__((unused))) { return 0; }\n")
        if *importRuntimeCgo {
                fmt.Fprintf(fm, "void crosscall2(void(*fn)(void*) __attribute__((unused)), void *a __attribute__((unused)), int c __attribute__((unused)), size_t ctxt __attribute__((unused))) { }\n")
                fmt.Fprintf(fm, "size_t _cgo_wait_runtime_init_done(void) { return 0; }\n")