Text file src/cmd/go/testdata/script/cgo_stale_precompiled.txt

     1  # Regression test for https://go.dev/issue/47215 and https://go.dev/issue/50183:
     2  # A mismatched $GOROOT_FINAL or missing $CC caused the C dependencies of the net
     3  # package to appear stale, and it could not be rebuilt due to a missing $CC.
     4  
     5  [!cgo] skip
     6  
     7  # This test may start with the runtime/cgo package already stale.
     8  # Explicitly rebuild it to ensure that it is cached.
     9  # (See https://go.dev/issue/50892.)
    10  #
    11  # If running in non-short mode, explicitly vary CGO_CFLAGS
    12  # as a control case (to ensure that our regexps do catch rebuilds).
    13  
    14  [!short] env GOCACHE=$WORK/cache
    15  [!short] env CGO_CFLAGS=-DTestScript_cgo_stale_precompiled=true
    16  go build -x runtime/cgo
    17  [!short] stderr '[/\\]cgo'$GOEXE'["]? .* -importpath runtime/cgo'
    18  
    19  # https://go.dev/issue/50183: a mismatched GOROOT_FINAL caused net to be stale.
    20  env oldGOROOT_FINAL=$GOROOT_FINAL
    21  env GOROOT_FINAL=$WORK${/}goroot
    22  go build -x runtime/cgo
    23  ! stderr '[/\\]cgo'$GOEXE'["]? .* -importpath runtime/cgo'
    24  
    25  env GOROOT_FINAL=$oldGOROOT_FINAL
    26  
    27  # https://go.dev/issue/47215: a missing $(go env CC) caused the precompiled net
    28  # to be stale. But as of https://go.dev/cl/452457 the precompiled libraries are
    29  # no longer installed anyway! Since we're requiring a C compiler in order to
    30  # build and use cgo libraries in the standard library, we should make sure it
    31  # matches what's in the cache.
    32  
    33  [abscc] stop
    34  
    35  env CGO_ENABLED=1
    36  env CC=''
    37  [!GOOS:plan9] env PATH=''  # Guaranteed not to include $(go env CC)!
    38  [GOOS:plan9] env path=''
    39  ! go build -x runtime/cgo
    40  stderr 'C compiler .* not found'
    41  

View as plain text