cgo: change long filenames in cgo archives (#1180)
cgo: change long filenames in cgo archives (#1180)

The Go .a format does not allow long filenames. This is not a problem
for "go build", since all the names of files in the archive are
hard-coded. In Bazel, we extract .o files from .a archives produced by
cc_library, then append them to the .a archives produced by Go. If .o
files have long names with similar prefixes, multiple entries can end
up with the same name after truncaction. Linkers don't seem to mind
this, but it's weird and is probably going to bite us some day.

This change renames files as they are extracted from the .a archive
produced by cc_library so they have "safe" names (15 or fewer
characters; no conflicts with other files in the archive).
Xjs/rules_go,bazelbuild/rules_go,bazelbuild/rules_go,bazelbuild/rules_go,bazelbuild/rules_go,Xjs/rules_go,bazelbuild/rules_go,Xjs/rules_go,Xjs/rules_go,Xjs/rules_go