diff options
| -rw-r--r-- | cc/config/x86_linux_host.go | 2 | ||||
| -rw-r--r-- | cc/object.go | 13 | ||||
| -rw-r--r-- | cc/object_test.go | 51 |
3 files changed, 5 insertions, 61 deletions
diff --git a/cc/config/x86_linux_host.go b/cc/config/x86_linux_host.go index 07b95e112..1b126dea1 100644 --- a/cc/config/x86_linux_host.go +++ b/cc/config/x86_linux_host.go @@ -109,7 +109,7 @@ var ( }, "-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 20eef30d2..65a11e005 100644 --- a/cc/object.go +++ b/cc/object.go @@ -256,18 +256,13 @@ func (object *objectLinker) link(ctx ModuleContext, 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 00f83d464..259a892ab 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 @@ cc_object { 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) - }) - } - -} |