| [!cgo] skip |
| |
| # Set CC explicitly to something that requires a PATH lookup. |
| # Normally, the default is gcc or clang, but if CC was set during make.bash, |
| # that becomes the default. |
| [exec:clang] env CC=clang |
| [exec:gcc] env CC=gcc |
| [!exec:clang] [!exec:gcc] skip 'Unknown C compiler' |
| |
| env GOCACHE=$WORK/gocache # Looking for compile flags, so need a clean cache. |
| [!windows] env PATH=.:$PATH |
| [!windows] chmod 0755 p/gcc p/clang |
| [!windows] exists -exec p/gcc p/clang |
| [windows] exists -exec p/gcc.bat p/clang.bat |
| ! exists p/bug.txt |
| ! go build -x |
| stderr '^cgo: exec (clang|gcc): (clang|gcc) resolves to executable relative to current directory \(.[/\\](clang|gcc)(.bat)?\)$' |
| ! exists p/bug.txt |
| |
| -- go.mod -- |
| module m |
| |
| -- m.go -- |
| package m |
| |
| import _ "m/p" |
| |
| -- p/p.go -- |
| package p |
| |
| // #define X 1 |
| import "C" |
| |
| -- p/gcc -- |
| #!/bin/sh |
| echo ran gcc >bug.txt |
| -- p/clang -- |
| #!/bin/sh |
| echo ran clang >bug.txt |
| -- p/gcc.bat -- |
| echo ran gcc >bug.txt |
| -- p/clang.bat -- |
| echo ran clang >bug.txt |