xref: /aosp_15_r20/external/toolchain-utils/compiler_wrapper/go_exec.go (revision 760c253c1ed00ce9abd48f8546f08516e57485fe)
1*760c253cSXin Li// Copyright 2020 The ChromiumOS Authors
2*760c253cSXin Li// Use of this source code is governed by a BSD-style license that can be
3*760c253cSXin Li// found in the LICENSE file.
4*760c253cSXin Li
5*760c253cSXin Li//go:build !libc_exec
6*760c253cSXin Li// +build !libc_exec
7*760c253cSXin Li
8*760c253cSXin Lipackage main
9*760c253cSXin Li
10*760c253cSXin Liimport (
11*760c253cSXin Li	"os/exec"
12*760c253cSXin Li	"syscall"
13*760c253cSXin Li)
14*760c253cSXin Li
15*760c253cSXin Li// Implement exec for users that don't need to dynamically link with glibc
16*760c253cSXin Li// See b/144783188 and libc_exec.go.
17*760c253cSXin Li
18*760c253cSXin Lifunc execCmd(env env, cmd *command) error {
19*760c253cSXin Li	execCmd := exec.Command(cmd.Path, cmd.Args...)
20*760c253cSXin Li	mergedEnv := mergeEnvValues(env.environ(), cmd.EnvUpdates)
21*760c253cSXin Li
22*760c253cSXin Li	ret := syscall.Exec(execCmd.Path, execCmd.Args, mergedEnv)
23*760c253cSXin Li	return newErrorwithSourceLocf("exec error: %v", ret)
24*760c253cSXin Li}
25