// Copyright 2020 The ChromiumOS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

//go:build !libc_exec
// +build !libc_exec

package main

import (
	"os/exec"
	"syscall"
)

// Implement exec for users that don't need to dynamically link with glibc
// See b/144783188 and libc_exec.go.

func execCmd(env env, cmd *command) error {
	execCmd := exec.Command(cmd.Path, cmd.Args...)
	mergedEnv := mergeEnvValues(env.environ(), cmd.EnvUpdates)

	ret := syscall.Exec(execCmd.Path, execCmd.Args, mergedEnv)
	return newErrorwithSourceLocf("exec error: %v", ret)
}
