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