aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/gc.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstore/gc.cc')
-rw-r--r--src/libstore/gc.cc14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc
index 8e90913cc..3cdbb114a 100644
--- a/src/libstore/gc.cc
+++ b/src/libstore/gc.cc
@@ -426,22 +426,26 @@ void LocalStore::findRuntimeRoots(PathSet & roots)
throw SysError("iterating /proc");
}
+#if !defined(__linux__)
try {
- auto lsofRegex = std::regex(R"(^n(/.*)$)");
+ std::regex lsofRegex(R"(^n(/.*)$)");
auto lsofLines =
- tokenizeString<std::vector<string>>(runProgram("lsof", true, { "-n", "-w", "-F", "n" }), "\n");
+ tokenizeString<std::vector<string>>(runProgram(LSOF, true, { "-n", "-w", "-F", "n" }), "\n");
for (const auto & line : lsofLines) {
- auto match = std::smatch{};
+ std::smatch match;
if (std::regex_match(line, match, lsofRegex))
paths.emplace(match[1]);
}
} catch (ExecError & e) {
/* lsof not installed, lsof failed */
}
+#endif
+#if defined(__linux__)
readFileRoots("/proc/sys/kernel/modprobe", paths);
readFileRoots("/proc/sys/kernel/fbsplash", paths);
readFileRoots("/proc/sys/kernel/poweroff_cmd", paths);
+#endif
for (auto & i : paths)
if (isInStore(i)) {
@@ -611,7 +615,7 @@ void LocalStore::tryToDelete(GCState & state, const Path & path)
auto realPath = realStoreDir + "/" + baseNameOf(path);
if (realPath == linksDir || realPath == trashDir) return;
- Activity act(*logger, lvlDebug, format("considering whether to delete ‘%1%’") % path);
+ //Activity act(*logger, lvlDebug, format("considering whether to delete ‘%1%’") % path);
if (!isStorePath(path) || !isValidPath(path)) {
/* A lock file belonging to a path that we're building right
@@ -679,7 +683,7 @@ void LocalStore::removeUnusedLinks(const GCState & state)
if (unlink(path.c_str()) == -1)
throw SysError(format("deleting ‘%1%’") % path);
- state.results.bytesFreed += st.st_blocks * 512;
+ state.results.bytesFreed += st.st_blocks * 512ULL;
}
struct stat st;