Merge changes from topic "revert-2216822-DZNPYURQOE"
* changes: Revert "Drop dependency on musl_linker_script" Revert "Copy cc_object output files to a name that matches the m..."
This commit is contained in:
@@ -109,7 +109,7 @@ var (
|
|||||||
}, "-l")
|
}, "-l")
|
||||||
|
|
||||||
muslCrtBeginStaticBinary, muslCrtEndStaticBinary = []string{"libc_musl_crtbegin_static"}, []string{"libc_musl_crtend"}
|
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"}
|
muslCrtBeginSharedLibrary, muslCrtEndSharedLibrary = []string{"libc_musl_crtbegin_so"}, []string{"libc_musl_crtend_so"}
|
||||||
|
|
||||||
muslDefaultSharedLibraries = []string{"libc_musl"}
|
muslDefaultSharedLibraries = []string{"libc_musl"}
|
||||||
|
13
cc/object.go
13
cc/object.go
@@ -256,18 +256,13 @@ func (object *objectLinker) link(ctx ModuleContext,
|
|||||||
builderFlags := flagsToBuilderFlags(flags)
|
builderFlags := flagsToBuilderFlags(flags)
|
||||||
|
|
||||||
if len(objs.objFiles) == 1 && String(object.Properties.Linker_script) == "" {
|
if len(objs.objFiles) == 1 && String(object.Properties.Linker_script) == "" {
|
||||||
output := android.PathForModuleOut(ctx, ctx.ModuleName()+objectExtension)
|
outputFile = objs.objFiles[0]
|
||||||
outputFile = output
|
|
||||||
|
|
||||||
if String(object.Properties.Prefix_symbols) != "" {
|
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)
|
builderFlags, output)
|
||||||
} else {
|
outputFile = output
|
||||||
ctx.Build(pctx, android.BuildParams{
|
|
||||||
Rule: android.Cp,
|
|
||||||
Input: objs.objFiles[0],
|
|
||||||
Output: output,
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
output := android.PathForModuleOut(ctx, ctx.ModuleName()+objectExtension)
|
output := android.PathForModuleOut(ctx, ctx.ModuleName()+objectExtension)
|
||||||
|
@@ -15,7 +15,6 @@
|
|||||||
package cc
|
package cc
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"android/soong/android"
|
"android/soong/android"
|
||||||
@@ -108,53 +107,3 @@ cc_object {
|
|||||||
expectedOutputFiles := []string{"outputbase/execroot/__main__/bazel_out.o"}
|
expectedOutputFiles := []string{"outputbase/execroot/__main__/bazel_out.o"}
|
||||||
android.AssertDeepEquals(t, "output files", expectedOutputFiles, outputFiles.Strings())
|
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)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
Reference in New Issue
Block a user