bazel-contrib / rules_go

Go rules for Bazel
Apache License 2.0
1.38k stars 656 forks source link

ngo should skip the ```_cgo_gotypes.go``` #4079

Closed hawkingrei closed 1 month ago

hawkingrei commented 1 month ago

What version of rules_go are you using?

use rules_go v0.50.0

What version of gazelle are you using?

What version of Bazel are you using?

v7.3.1

Does this issue reproduce with the latest releases of all the above?

build tidb with nogo

What operating system and processor architecture are you using?

Any other potentially useful information about your toolchain?

What did you do?

What did you expect to see?

succeed to build without nogo error message

What did you see instead?

nogo: errors found by nogo during build-time code analysis:

pkg/lightning/manual/allocator.go:1:1: 

diff bazel-out/k8-fastbuild/bin/pkg/lightning/manual/manual_/manual.a.cgo/_cgo_gotypes.go.orig bazel-out/k8-fastbuild/bin/pkg/lightning/manual/manual_/manual.a.cgo/_cgo_gotypes.go

--- bazel-out/k8-fastbuild/bin/pkg/lightning/manual/manual_/manual.a.cgo/_cgo_gotypes.go.orig

+++ bazel-out/k8-fastbuild/bin/pkg/lightning/manual/manual_/manual.a.cgo/_cgo_gotypes.go

@@ -16,13 +16,17 @@

 import _cgopackage "runtime/cgo"

 type _ _cgopackage.Incomplete

+

 var _ syscall.Errno

+

 func _Cgo_ptr(ptr unsafe.Pointer) unsafe.Pointer { return ptr }

 //go:linkname _Cgo_always_false runtime.cgoAlwaysFalse

 var _Cgo_always_false bool

+

 //go:linkname _Cgo_use runtime.cgoUse

-func _Cgo_use(interface{})

+func _Cgo_use(any)

+

 type _Ctype_size_t = _Ctype_ulong

 type _Ctype_ulong uint64

@@ -33,10 +37,10 @@

 func _cgo_runtime_cgocall(unsafe.Pointer, uintptr) int32

 //go:linkname _cgoCheckPointer runtime.cgoCheckPointer

-func _cgoCheckPointer(interface{}, interface{})

+func _cgoCheckPointer(any, any)

 //go:linkname _cgoCheckResult runtime.cgoCheckResult

-func _cgoCheckResult(interface{})

+func _cgoCheckResult(any)

 //go:cgo_import_static _cgo_9ab048b9b408_Cfunc_calloc

 //go:linkname __cgofn__cgo_9ab048b9b408_Cfunc_calloc _cgo_9ab048b9b408_Cfunc_calloc

@@ -52,6 +56,7 @@

    }

    return

 }

+

 //go:cgo_import_static _cgo_9ab048b9b408_Cfunc_free

 //go:linkname __cgofn__cgo_9ab048b9b408_Cfunc_free _cgo_9ab048b9b408_Cfunc_free

 var __cgofn__cgo_9ab048b9b408_Cfunc_free byte

 (gofmt)

pkg/lightning/manual/allocator.go:1:1: 

diff bazel-out/k8-fastbuild/bin/pkg/lightning/manual/manual_/manual.a.cgo/_cgo_imports.go.orig bazel-out/k8-fastbuild/bin/pkg/lightning/manual/manual_/manual.a.cgo/_cgo_imports.go

--- bazel-out/k8-fastbuild/bin/pkg/lightning/manual/manual_/manual.a.cgo/_cgo_imports.go.orig

+++ bazel-out/k8-fastbuild/bin/pkg/lightning/manual/manual_/manual.a.cgo/_cgo_imports.go

@@ -1,4 +1,5 @@

 package manual

+

 //go:cgo_import_dynamic __libc_start_main __libc_start_main#GLIBC_2.2.5 "libc.so.6"

 //go:cgo_import_dynamic __gmon_start__ __gmon_start__ ""

 //go:cgo_import_dynamic _ITM_deregisterTMCloneTable _ITM_deregisterTMCloneTable ""

 (gofmt)

pkg/lightning/manual/allocator.go:1:1: 

diff bazel-out/k8-fastbuild/bin/pkg/lightning/manual/manual_/manual.a.cgo/manual.cgo1.go.orig bazel-out/k8-fastbuild/bin/pkg/lightning/manual/manual_/manual.a.cgo/manual.cgo1.go

--- bazel-out/k8-fastbuild/bin/pkg/lightning/manual/manual_/manual.a.cgo/manual.cgo1.go.orig

+++ bazel-out/k8-fastbuild/bin/pkg/lightning/manual/manual_/manual.a.cgo/manual.cgo1.go

@@ -45,7 +45,7 @@

    //   passing uninitialized C memory to Go code if the Go code is going to

    //   store pointer values in it. Zero out the memory in C before passing it

    //   to Go.

-   ptr := ( /*line :45:9*/_Cfunc_calloc /*line :45:16*/)( /*line :45:18*/_Ctype_size_t /*line :45:26*/(n), 1)

+   ptr := ( /*line :45:9*/ _Cfunc_calloc /*line :45:16*/)( /*line :45:18*/ _Ctype_size_t /*line :45:26*/ (n), 1)

    if ptr == nil {

        // NB: throw is like panic, except it guarantees the process will be

        // terminated. The call below is exactly what the Go runtime invokes when

@@ -63,6 +63,6 @@

            b = b[:cap(b)]

        }

        ptr := unsafe.Pointer(&b[0])

-       func() { _cgo0 := /*line :63:10*/ptr; _cgoCheckPointer(_cgo0, nil); /*line :63:14*/_Cfunc_free(_cgo0); }()

+       func() { _cgo0 := /*line :63:10*/ ptr; _cgoCheckPointer(_cgo0, nil); /*line :63:14*/ _Cfunc_free(_cgo0) }()

    }

 }

 (gofmt)
hawkingrei commented 1 month ago

Finally, I have to skip some files in the nogo

image