diff --git a/misc/nacl/testzip.proto b/misc/nacl/testzip.proto
index 720663db9b4632f839359d3b2aad3fdcb2637b6e..d05219364dcb7da2b35497b3628dd16782100c6e 100644
--- a/misc/nacl/testzip.proto
+++ b/misc/nacl/testzip.proto
@@ -37,9 +37,6 @@ go	src=..
 				buildid
 					testdata
 						+
-				xcoff
-					testdata
-						+
 			gofmt
 				gofmt.go
 				gofmt_test.go
@@ -157,6 +154,9 @@ go	src=..
 			trace
 				testdata
 					+
+			xcoff
+				testdata
+					+
 		io
 			+
 		mime
diff --git a/src/cmd/cgo/gcc.go b/src/cmd/cgo/gcc.go
index b59bfe68fe10a6015710b4e0e6f0cb9747d6bf45..e7766e740fd0b90150c4493e75aa4837e951f40b 100644
--- a/src/cmd/cgo/gcc.go
+++ b/src/cmd/cgo/gcc.go
@@ -9,7 +9,6 @@ package main
 
 import (
 	"bytes"
-	"cmd/internal/xcoff"
 	"debug/dwarf"
 	"debug/elf"
 	"debug/macho"
@@ -21,6 +20,7 @@ import (
 	"go/ast"
 	"go/parser"
 	"go/token"
+	"internal/xcoff"
 	"math"
 	"os"
 	"strconv"
diff --git a/src/cmd/cgo/out.go b/src/cmd/cgo/out.go
index 401a87fecab59fd19c37dee442bfef5403dc2c49..0985a7e72ead99b6cd7f43ce0836d0c33472011d 100644
--- a/src/cmd/cgo/out.go
+++ b/src/cmd/cgo/out.go
@@ -6,7 +6,6 @@ package main
 
 import (
 	"bytes"
-	"cmd/internal/xcoff"
 	"debug/elf"
 	"debug/macho"
 	"debug/pe"
@@ -14,6 +13,7 @@ import (
 	"go/ast"
 	"go/printer"
 	"go/token"
+	"internal/xcoff"
 	"io"
 	"io/ioutil"
 	"os"
diff --git a/src/cmd/compile/internal/ssa/stmtlines_test.go b/src/cmd/compile/internal/ssa/stmtlines_test.go
index 6fc0239ffe4d756363e6488984d716e06d999c4a..c71f8befd9d295df3e0c20a780166595ac3e9d69 100644
--- a/src/cmd/compile/internal/ssa/stmtlines_test.go
+++ b/src/cmd/compile/internal/ssa/stmtlines_test.go
@@ -1,13 +1,13 @@
 package ssa_test
 
 import (
-	"cmd/internal/xcoff"
 	"debug/dwarf"
 	"debug/elf"
 	"debug/macho"
 	"debug/pe"
 	"fmt"
 	"internal/testenv"
+	"internal/xcoff"
 	"io"
 	"runtime"
 	"testing"
diff --git a/src/cmd/dist/buildtool.go b/src/cmd/dist/buildtool.go
index 2db115e20ede7d318a21e452d108b527ca37c91a..71ed4ba8bc7c10e296046901f1e10adac638f90a 100644
--- a/src/cmd/dist/buildtool.go
+++ b/src/cmd/dist/buildtool.go
@@ -65,7 +65,6 @@ var bootstrapDirs = []string{
 	"cmd/internal/obj/wasm",
 	"cmd/internal/src",
 	"cmd/internal/sys",
-	"cmd/internal/xcoff",
 	"cmd/link",
 	"cmd/link/internal/amd64",
 	"cmd/link/internal/arm",
@@ -90,6 +89,7 @@ var bootstrapDirs = []string{
 	"debug/elf",
 	"debug/macho",
 	"debug/pe",
+	"internal/xcoff",
 	"math/big",
 	"math/bits",
 	"sort",
diff --git a/src/cmd/internal/buildid/buildid.go b/src/cmd/internal/buildid/buildid.go
index 8205f696eb15df5b12131890bff84ac5c503d6a9..ac238d70ea0cd92e825e06492522775a9643a344 100644
--- a/src/cmd/internal/buildid/buildid.go
+++ b/src/cmd/internal/buildid/buildid.go
@@ -6,9 +6,9 @@ package buildid
 
 import (
 	"bytes"
-	"cmd/internal/xcoff"
 	"debug/elf"
 	"fmt"
+	"internal/xcoff"
 	"io"
 	"os"
 	"strconv"
diff --git a/src/cmd/internal/objfile/xcoff.go b/src/cmd/internal/objfile/xcoff.go
index f62a7edf89fa50f92a2a1d307a83f2116fefb090..d438c802264f693ff311c8079d723d985d04c543 100644
--- a/src/cmd/internal/objfile/xcoff.go
+++ b/src/cmd/internal/objfile/xcoff.go
@@ -7,9 +7,9 @@
 package objfile
 
 import (
-	"cmd/internal/xcoff"
 	"debug/dwarf"
 	"fmt"
+	"internal/xcoff"
 	"io"
 	"unicode"
 )
diff --git a/src/cmd/link/internal/loadxcoff/ldxcoff.go b/src/cmd/link/internal/loadxcoff/ldxcoff.go
index 7204d343888757999d704ddf292639ce93ac1c76..7c863d79c5832928f02d955a3ffe0e07f5734175 100644
--- a/src/cmd/link/internal/loadxcoff/ldxcoff.go
+++ b/src/cmd/link/internal/loadxcoff/ldxcoff.go
@@ -9,10 +9,10 @@ import (
 	"cmd/internal/bio"
 	"cmd/internal/objabi"
 	"cmd/internal/sys"
-	"cmd/internal/xcoff"
 	"cmd/link/internal/sym"
 	"errors"
 	"fmt"
+	"internal/xcoff"
 )
 
 // ldSection is an XCOFF section with its symbols.
diff --git a/src/cmd/nm/nm_test.go b/src/cmd/nm/nm_test.go
index 87baa09d38ef3209e7052d42cefb58c04129ef47..1f2ad53ef27155e0a2c4f305b1cedb5d3edfefd4 100644
--- a/src/cmd/nm/nm_test.go
+++ b/src/cmd/nm/nm_test.go
@@ -64,7 +64,7 @@ func TestNonGoExecs(t *testing.T) {
 		"debug/pe/testdata/gcc-386-mingw-exec",
 		"debug/plan9obj/testdata/amd64-plan9-exec",
 		"debug/plan9obj/testdata/386-plan9-exec",
-		"cmd/internal/xcoff/testdata/gcc-ppc64-aix-dwarf2-exec",
+		"internal/xcoff/testdata/gcc-ppc64-aix-dwarf2-exec",
 	}
 	for _, f := range testfiles {
 		exepath := filepath.Join(runtime.GOROOT(), "src", f)
diff --git a/src/go/build/deps_test.go b/src/go/build/deps_test.go
index 7251274756407b9e1db279e26f73f1d8b6077f18..dd38cc0a6a5821af382a23491c6bb213251cee75 100644
--- a/src/go/build/deps_test.go
+++ b/src/go/build/deps_test.go
@@ -273,6 +273,7 @@ var pkgDeps = map[string][]string{
 	"internal/goroot":                {"L4", "OS"},
 	"internal/singleflight":          {"sync"},
 	"internal/trace":                 {"L4", "OS", "container/heap"},
+	"internal/xcoff":                 {"L4", "OS", "debug/dwarf"},
 	"math/big":                       {"L4"},
 	"mime":                           {"L4", "OS", "syscall", "internal/syscall/windows/registry"},
 	"mime/quotedprintable":           {"L4"},
diff --git a/src/cmd/internal/xcoff/file.go b/src/internal/xcoff/file.go
similarity index 100%
rename from src/cmd/internal/xcoff/file.go
rename to src/internal/xcoff/file.go
diff --git a/src/cmd/internal/xcoff/file_test.go b/src/internal/xcoff/file_test.go
similarity index 100%
rename from src/cmd/internal/xcoff/file_test.go
rename to src/internal/xcoff/file_test.go
diff --git a/src/cmd/internal/xcoff/testdata/gcc-ppc32-aix-dwarf2-exec b/src/internal/xcoff/testdata/gcc-ppc32-aix-dwarf2-exec
similarity index 100%
rename from src/cmd/internal/xcoff/testdata/gcc-ppc32-aix-dwarf2-exec
rename to src/internal/xcoff/testdata/gcc-ppc32-aix-dwarf2-exec
diff --git a/src/cmd/internal/xcoff/testdata/gcc-ppc64-aix-dwarf2-exec b/src/internal/xcoff/testdata/gcc-ppc64-aix-dwarf2-exec
similarity index 100%
rename from src/cmd/internal/xcoff/testdata/gcc-ppc64-aix-dwarf2-exec
rename to src/internal/xcoff/testdata/gcc-ppc64-aix-dwarf2-exec
diff --git a/src/cmd/internal/xcoff/testdata/hello.c b/src/internal/xcoff/testdata/hello.c
similarity index 100%
rename from src/cmd/internal/xcoff/testdata/hello.c
rename to src/internal/xcoff/testdata/hello.c
diff --git a/src/cmd/internal/xcoff/xcoff.go b/src/internal/xcoff/xcoff.go
similarity index 100%
rename from src/cmd/internal/xcoff/xcoff.go
rename to src/internal/xcoff/xcoff.go