diff --git a/cc/config/x86_linux_host.go b/cc/config/x86_linux_host.go
index 07b95e1..1b126de 100644
--- a/cc/config/x86_linux_host.go
+++ b/cc/config/x86_linux_host.go
@@ -109,7 +109,7 @@
 	}, "-l")
 
 	muslCrtBeginStaticBinary, muslCrtEndStaticBinary   = []string{"libc_musl_crtbegin_static"}, []string{"libc_musl_crtend"}
-	muslCrtBeginSharedBinary, muslCrtEndSharedBinary   = []string{"libc_musl_crtbegin_dynamic"}, []string{"libc_musl_crtend"}
+	muslCrtBeginSharedBinary, muslCrtEndSharedBinary   = []string{"libc_musl_crtbegin_dynamic", "musl_linker_script"}, []string{"libc_musl_crtend"}
 	muslCrtBeginSharedLibrary, muslCrtEndSharedLibrary = []string{"libc_musl_crtbegin_so"}, []string{"libc_musl_crtend_so"}
 
 	muslDefaultSharedLibraries = []string{"libc_musl"}
diff --git a/cc/object.go b/cc/object.go
index 20eef30..65a11e0 100644
--- a/cc/object.go
+++ b/cc/object.go
@@ -256,18 +256,13 @@
 	builderFlags := flagsToBuilderFlags(flags)
 
 	if len(objs.objFiles) == 1 && String(object.Properties.Linker_script) == "" {
-		output := android.PathForModuleOut(ctx, ctx.ModuleName()+objectExtension)
-		outputFile = output
+		outputFile = objs.objFiles[0]
 
 		if String(object.Properties.Prefix_symbols) != "" {
-			transformBinaryPrefixSymbols(ctx, String(object.Properties.Prefix_symbols), objs.objFiles[0],
+			output := android.PathForModuleOut(ctx, ctx.ModuleName()+objectExtension)
+			transformBinaryPrefixSymbols(ctx, String(object.Properties.Prefix_symbols), outputFile,
 				builderFlags, output)
-		} else {
-			ctx.Build(pctx, android.BuildParams{
-				Rule:   android.Cp,
-				Input:  objs.objFiles[0],
-				Output: output,
-			})
+			outputFile = output
 		}
 	} else {
 		output := android.PathForModuleOut(ctx, ctx.ModuleName()+objectExtension)
diff --git a/cc/object_test.go b/cc/object_test.go
index 00f83d4..259a892 100644
--- a/cc/object_test.go
+++ b/cc/object_test.go
@@ -15,7 +15,6 @@
 package cc
 
 import (
-	"fmt"
 	"testing"
 
 	"android/soong/android"
@@ -108,53 +107,3 @@
 	expectedOutputFiles := []string{"outputbase/execroot/__main__/bazel_out.o"}
 	android.AssertDeepEquals(t, "output files", expectedOutputFiles, outputFiles.Strings())
 }
-
-func TestCcObjectOutputFile(t *testing.T) {
-	testcases := []struct {
-		name string
-		bp   string
-	}{
-		{
-			name: "normal",
-			bp: `
-				srcs: ["bar.c"],
-			`,
-		},
-		{
-			name: "keep symbols",
-			bp: `
-				srcs: ["bar.c"],
-				prefix_symbols: "foo_",
-			`,
-		},
-		{
-			name: "partial linking",
-			bp: `
-				srcs: ["bar.c", "baz.c"],
-			`,
-		},
-		{
-			name: "partial linking and prefix symbols",
-			bp: `
-				srcs: ["bar.c", "baz.c"],
-				prefix_symbols: "foo_",
-			`,
-		},
-	}
-
-	for _, testcase := range testcases {
-		bp := fmt.Sprintf(`
-			cc_object {
-				name: "foo",
-				%s
-			}
-		`, testcase.bp)
-		t.Run(testcase.name, func(t *testing.T) {
-			ctx := PrepareForIntegrationTestWithCc.RunTestWithBp(t, bp)
-			android.AssertPathRelativeToTopEquals(t, "expected output file foo.o",
-				"out/soong/.intermediates/foo/android_arm64_armv8-a/foo.o",
-				ctx.ModuleForTests("foo", "android_arm64_armv8-a").Output("foo.o").Output)
-		})
-	}
-
-}
