Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fc2bf34c authored by Alyssa Ketpreechasawat's avatar Alyssa Ketpreechasawat
Browse files

Revert "Copy cc_object output files to a name that matches the m..."

Revert submission 2216822

Reason for revert: DroidMonitor: Potential culprit for Bug 247028852
Reverted Changes:
I086bb0d14:Copy cc_object output files to a name that matches...
I868cb8b5b:Drop dependency on musl_linker_script
Ib9b5530d3:Run __libc_start_main directly
I1a197dc5c:Move replacement program headers into bss
If59613374:Support missing PT_PHDR
Icb7d8d3e0:Remove note from relinterp
I05cdee7a4:Remove ldso_trampoline_debugger.c

Change-Id: Iecbc09297b59fae18c6d4068048fc19c23dbf9d8
parent 0a96c7db
Loading
Loading
Loading
Loading
+4 −9
Original line number Diff line number Diff line
@@ -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)
+0 −51
Original line number Diff line number Diff line
@@ -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)
		})
	}

}