aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/build.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstore/build.cc')
-rw-r--r--src/libstore/build.cc14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index a124b2b14..284d781b4 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -621,11 +621,15 @@ HookInstance::HookInstance()
if (dup2(builderOut.writeSide, 4) == -1)
throw SysError("dupping builder's stdout/stderr");
- execl(buildHook.c_str(), buildHook.c_str(), settings.thisSystem.c_str(),
- (format("%1%") % settings.maxSilentTime).str().c_str(),
- (format("%1%") % settings.printBuildTrace).str().c_str(),
- (format("%1%") % settings.buildTimeout).str().c_str(),
- NULL);
+ Strings args = {
+ baseNameOf(buildHook),
+ settings.thisSystem,
+ (format("%1%") % settings.maxSilentTime).str(),
+ (format("%1%") % settings.printBuildTrace).str(),
+ (format("%1%") % settings.buildTimeout).str()
+ };
+
+ execv(buildHook.c_str(), stringsToCharPtrs(args).data());
throw SysError(format("executing ‘%1%’") % buildHook);
});