Commit b211cd1b by Ian Lance Taylor

cmd/go: pass -X64 to ar on aix/ppc64

    
    On aix/ppc64, ar tool must always have -X64 argument if it aims to
    create 64 bits archives.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/165317

From-SVN: r269404
parent 507318f1
3ae3024cae07fe7e85968ad2583add350616b296 14e48e756af205a68374c872f3bd03d62ccd70bb
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.
...@@ -278,6 +278,13 @@ func (tools gccgoToolchain) link(b *Builder, root *Action, out, importcfg string ...@@ -278,6 +278,13 @@ func (tools gccgoToolchain) link(b *Builder, root *Action, out, importcfg string
return nil return nil
} }
var arArgs []string
if cfg.Goos == "aix" && cfg.Goarch == "ppc64" {
// AIX puts both 32-bit and 64-bit objects in the same archive.
// Tell the AIX "ar" command to only care about 64-bit objects.
arArgs = []string{"-X64"}
}
newID := 0 newID := 0
readAndRemoveCgoFlags := func(archive string) (string, error) { readAndRemoveCgoFlags := func(archive string) (string, error) {
newID++ newID++
...@@ -293,11 +300,11 @@ func (tools gccgoToolchain) link(b *Builder, root *Action, out, importcfg string ...@@ -293,11 +300,11 @@ func (tools gccgoToolchain) link(b *Builder, root *Action, out, importcfg string
b.Showcmd("", "ar d %s _cgo_flags", newArchive) b.Showcmd("", "ar d %s _cgo_flags", newArchive)
return "", nil return "", nil
} }
err := b.run(root, root.Objdir, desc, nil, tools.ar(), "x", newArchive, "_cgo_flags") err := b.run(root, root.Objdir, desc, nil, tools.ar(), arArgs, "x", newArchive, "_cgo_flags")
if err != nil { if err != nil {
return "", err return "", err
} }
err = b.run(root, ".", desc, nil, tools.ar(), "d", newArchive, "_cgo_flags") err = b.run(root, ".", desc, nil, tools.ar(), arArgs, "d", newArchive, "_cgo_flags")
if err != nil { if err != nil {
return "", err return "", err
} }
...@@ -516,7 +523,7 @@ func (tools gccgoToolchain) link(b *Builder, root *Action, out, importcfg string ...@@ -516,7 +523,7 @@ func (tools gccgoToolchain) link(b *Builder, root *Action, out, importcfg string
switch buildmode { switch buildmode {
case "c-archive": case "c-archive":
if err := b.run(root, ".", desc, nil, tools.ar(), "rc", realOut, out); err != nil { if err := b.run(root, ".", desc, nil, tools.ar(), arArgs, "rc", realOut, out); err != nil {
return err return err
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment