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

Commit 2ff2c38c authored by Patrice Arruda's avatar Patrice Arruda Committed by Automerger Merge Worker
Browse files

Pass the TMPDIR directly to the command when dumping makefile variables. am:...

Pass the TMPDIR directly to the command when dumping makefile variables. am: 2ce07760 am: 5e3eedde

Original change: https://googleplex-android-review.googlesource.com/c/platform/build/soong/+/12463369

Change-Id: I79f70d8580d4015409c2866ea53067cf7bdbe2ad
parents 3a227064 5e3eedde
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -54,18 +54,16 @@ func DumpMakeVars(ctx Context, config Config, goals, vars []string) (map[string]

	var ret map[string]string
	if len(makeVars) > 0 {
		// It's not safe to use the same TMPDIR as the build, as that can be removed.
		tmpDir, err := ioutil.TempDir("", "dumpvars")
		if err != nil {
			return nil, err
		}
		defer os.RemoveAll(tmpDir)

		// It's not safe to use the same TMPDIR as the build, as that can be removed.
		config.Environment().Set("TMPDIR", tmpDir)

		SetupLitePath(ctx, config)
		SetupLitePath(ctx, config, tmpDir)

		ret, err = dumpMakeVars(ctx, config, goals, makeVars, false)
		ret, err = dumpMakeVars(ctx, config, goals, makeVars, false, tmpDir)
		if err != nil {
			return ret, err
		}
@@ -82,7 +80,7 @@ func DumpMakeVars(ctx Context, config Config, goals, vars []string) (map[string]
	return ret, nil
}

func dumpMakeVars(ctx Context, config Config, goals, vars []string, write_soong_vars bool) (map[string]string, error) {
func dumpMakeVars(ctx Context, config Config, goals, vars []string, write_soong_vars bool, tmpDir string) (map[string]string, error) {
	ctx.BeginTrace(metrics.RunKati, "dumpvars")
	defer ctx.EndTrace()

@@ -98,6 +96,9 @@ func dumpMakeVars(ctx Context, config Config, goals, vars []string, write_soong_
		cmd.Environment.Set("WRITE_SOONG_VARIABLES", "true")
	}
	cmd.Environment.Set("DUMP_MANY_VARS", strings.Join(vars, " "))
	if tmpDir != "" {
		cmd.Environment.Set("TMPDIR", tmpDir)
	}
	cmd.Sandbox = dumpvarsSandbox
	output := bytes.Buffer{}
	cmd.Stdout = &output
@@ -262,7 +263,7 @@ func runMakeProductConfig(ctx Context, config Config) {
		"BUILD_BROKEN_USES_BUILD_TARGET_TEST_CONFIG",
	}, exportEnvVars...), BannerVars...)

	make_vars, err := dumpMakeVars(ctx, config, config.Arguments(), allVars, true)
	make_vars, err := dumpMakeVars(ctx, config, config.Arguments(), allVars, true, "")
	if err != nil {
		ctx.Fatalln("Error dumping make vars:", err)
	}
+8 −4
Original line number Diff line number Diff line
@@ -55,8 +55,9 @@ func parsePathDir(dir string) []string {
}

// A "lite" version of SetupPath used for dumpvars, or other places that need
// minimal overhead (but at the expense of logging).
func SetupLitePath(ctx Context, config Config) {
// minimal overhead (but at the expense of logging). If tmpDir is empty, the
// default TMPDIR is used from config.
func SetupLitePath(ctx Context, config Config, tmpDir string) {
	if config.pathReplaced {
		return
	}
@@ -65,8 +66,11 @@ func SetupLitePath(ctx Context, config Config) {
	defer ctx.EndTrace()

	origPath, _ := config.Environment().Get("PATH")
	myPath, _ := config.Environment().Get("TMPDIR")
	myPath = filepath.Join(myPath, "path")

	if tmpDir == "" {
		tmpDir, _ = config.Environment().Get("TMPDIR")
	}
	myPath := filepath.Join(tmpDir, "path")
	ensureEmptyDirectoriesExist(ctx, myPath)

	os.Setenv("PATH", origPath)