cmd/cgo: make _cgo_flags consistent across runs

The go tool will pass -I objdir as one of the flags, where objdir is
the temporary build directory. Remove that from _cgo_flags: we don't
need it, and it will be different each time.

Sort the flags to avoid the unpredictable map iteration order.

This matters for gccgo because for a package that uses cgo, the go
tool when building for gccgo will store the _cgo_flags file in the
archive. That means that we want to generate identical _cgo_flags for
every run.

The test for this is the cmd/go testsuite, to follow in a future CL.

Change-Id: I82afd2837d2ac7ca00660cf967d1b31b07d4916c
Reviewed-by: Than McIntosh <>
2 files changed