go/gcexportdata: better error when reading exportdata directly from archive

Change-Id: Iaa6fe8a33bee852be4e2414c6db7ca5df17006b6
Reviewed-on: https://go-review.googlesource.com/33715
Reviewed-by: Robert Griesemer <gri@golang.org>
diff --git a/go/gcexportdata/gcexportdata.go b/go/gcexportdata/gcexportdata.go
index 99a1eca..572da5c 100644
--- a/go/gcexportdata/gcexportdata.go
+++ b/go/gcexportdata/gcexportdata.go
@@ -78,6 +78,10 @@
 		return nil, fmt.Errorf("reading export data for %q: %v", path, err)
 	}
 
+	if bytes.HasPrefix(data, []byte("!<arch>")) {
+		return nil, fmt.Errorf("can't read export data for %q directly from an archive file (call gcexportdata.NewReader first to extract export data)", path)
+	}
+
 	// The App Engine Go runtime v1.6 uses the old export data format.
 	// TODO(adonovan): delete once v1.7 has been around for a while.
 	if bytes.HasPrefix(data, []byte("package ")) {