Previously the libgo Makefile explicitly listed the set of files to
compile for each package. For packages that use build tags, this
required a lot of awkward automake conditionals in the Makefile.
This CL changes the build to look at the build tags in the files.
The new shell script libgo/match.sh does the matching. This required
adjusting a lot of build tags, and removing some files that are never
used. I verified that the exact same sets of files are compiled on
amd64 GNU/Linux. I also tested the build on i386 Solaris.
Writing match.sh revealed some bugs in the build tag handling that
already exists, in a slightly different form, in the gotest shell
script. This CL fixes those problems as well.
The old code used automake conditionals to handle systems that were
missing strerror_r and wait4. Rather than deal with those in Go, those
functions are now implemented in runtime/go-nosys.c when necessary, so
the Go code can simply assume that they exist.
The os testsuite looked for dir_unix.go, which was never built for gccgo
and has now been removed. I changed the testsuite to look for dir.go
instead.
Reviewed-on: https://go-review.googlesource.com/25546
From-SVN: r239189
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| compare.go | Loading commit data... | |
| compare_test.go | Loading commit data... | |
| example_test.go | Loading commit data... | |
| export_test.go | Loading commit data... | |
| indexbyte.c | Loading commit data... | |
| reader.go | Loading commit data... | |
| reader_test.go | Loading commit data... | |
| replace.go | Loading commit data... | |
| replace_test.go | Loading commit data... | |
| search.go | Loading commit data... | |
| search_test.go | Loading commit data... | |
| strings.go | Loading commit data... | |
| strings_amd64.go | Loading commit data... | |
| strings_decl.go | Loading commit data... | |
| strings_generic.go | Loading commit data... | |
| strings_test.go | Loading commit data... |