diff --git a/src/cmd/objdump/objdump_test.go b/src/cmd/objdump/objdump_test.go
index fa6a1b9a68cd8c3cca417ff14f1635e9e1e7b7c7..b747d0d542e8506b1fcbaf6620c575fe1d6d3c80 100644
--- a/src/cmd/objdump/objdump_test.go
+++ b/src/cmd/objdump/objdump_test.go
@@ -290,6 +290,10 @@ func TestDisasmPIE(t *testing.T) {
 	if !platform.BuildModeSupported("gc", "pie", runtime.GOOS, runtime.GOARCH) {
 		t.Skipf("skipping on %s/%s, PIE buildmode not supported", runtime.GOOS, runtime.GOARCH)
 	}
+	if !platform.InternalLinkPIESupported(runtime.GOOS, runtime.GOARCH) {
+		// require cgo on platforms that PIE needs external linking
+		testenv.MustHaveCGO(t)
+	}
 	t.Parallel()
 	testDisasm(t, "fmthello.go", false, false, "-buildmode=pie")
 }