diff --git a/libgo/go/cmd/cgo/gcc.go b/libgo/go/cmd/cgo/gcc.go
index 5ea2d94..028804e 100644
--- a/libgo/go/cmd/cgo/gcc.go
+++ b/libgo/go/cmd/cgo/gcc.go
@@ -86,11 +86,29 @@
 // addToFlag appends args to flag. All flags are later written out onto the
 // _cgo_flags file for the build system to use.
 func (p *Package) addToFlag(flag string, args []string) {
-	p.CgoFlags[flag] = append(p.CgoFlags[flag], args...)
 	if flag == "CFLAGS" {
-		// We'll also need these when preprocessing for dwarf information.
+		// We'll need these when preprocessing for dwarf information.
 		p.GccOptions = append(p.GccOptions, args...)
 	}
+
+	skip := false
+	for i, arg := range args {
+		// The go tool will pass us a -I option pointing to objdir;
+		// we don't need to record that for later, as the objdir
+		// will disappear anyhow.
+		if skip {
+			// Discard argument in "-I objdir" case.
+			skip = false
+		} else if strings.HasPrefix(arg, "-I") && strings.HasPrefix(arg[2:], *objDir) {
+			// This is -Iobjdir. Don't save this argument.
+		} else if arg == "-I" && i+1 < len(args) && strings.HasPrefix(args[i+1], *objDir) {
+			// This is -I objdir. Don't save this argument
+			// or the next one.
+			skip = true
+		} else {
+			p.CgoFlags[flag] = append(p.CgoFlags[flag], arg)
+		}
+	}
 }
 
 // splitQuoted splits the string s around each instance of one or more consecutive
diff --git a/libgo/go/cmd/cgo/out.go b/libgo/go/cmd/cgo/out.go
index e82ec37..a8292f2 100644
--- a/libgo/go/cmd/cgo/out.go
+++ b/libgo/go/cmd/cgo/out.go
@@ -40,14 +40,19 @@
 	var gccgoInit bytes.Buffer
 
 	fflg := creat(*objDir + "_cgo_flags")
+	var flags []string
 	for k, v := range p.CgoFlags {
-		fmt.Fprintf(fflg, "_CGO_%s=%s\n", k, strings.Join(v, " "))
+		flags = append(flags, fmt.Sprintf("_CGO_%s=%s", k, strings.Join(v, " ")))
 		if k == "LDFLAGS" && !*gccgo {
 			for _, arg := range v {
 				fmt.Fprintf(fgo2, "//go:cgo_ldflag %q\n", arg)
 			}
 		}
 	}
+	sort.Strings(flags)
+	for _, flag := range flags {
+		fmt.Fprintln(fflg, flag)
+	}
 	fflg.Close()
 
 	// Write C main file for using gcc to resolve imports.
