summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Beich <jbeich@FreeBSD.org>2024-04-30 13:14:31 +0000
committerGitHub <noreply@github.com>2024-04-30 14:14:31 +0100
commit07e070012bf02294e66fbb89ac8b37d61b790855 (patch)
treee3f8895195e2882d0337479cdc8f7d8b5fa2bf7c
parent801437cd540e5ed0b729a68e1e3f59c5bae99bca (diff)
CrashReporter: unbreak build on FreeBSD (#5786)
* CrashReporter: skip Linux field on BSDs after 90a53aed59be In file included from src/debug/CrashReporter.cpp:10: src/debug/signal-safe.hpp:113:17: error: no member named 'sa_restorer' in 'sigaction' act.sa_restorer = NULL; ~~~ ^ * CrashReporter: ensure *argv[] is NULL-terminated after 90a53aed59be execv() may fail with EFAULT otherwise. * hyprpm: add missing header after 335015fe2def hyprpm/src/core/PluginManager.cpp:165:43: error: use of undeclared identifier 'getuid' 165 | const std::string USERNAME = getpwuid(getuid())->pw_name; | ^ hyprpm/src/core/PluginManager.cpp:431:45: error: use of undeclared identifier 'getuid' 431 | const std::string USERNAME = getpwuid(getuid())->pw_name; | ^ hyprpm/src/core/PluginManager.cpp:558:43: error: use of undeclared identifier 'getuid' 558 | const std::string USERNAME = getpwuid(getuid())->pw_name; | ^
-rw-r--r--hyprpm/src/core/PluginManager.cpp1
-rw-r--r--src/signal-safe.hpp6
2 files changed, 5 insertions, 2 deletions
diff --git a/hyprpm/src/core/PluginManager.cpp b/hyprpm/src/core/PluginManager.cpp
index 72ec7861..7b454d8d 100644
--- a/hyprpm/src/core/PluginManager.cpp
+++ b/hyprpm/src/core/PluginManager.cpp
@@ -15,6 +15,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <pwd.h>
+#include <unistd.h>
#include <toml++/toml.hpp>
diff --git a/src/signal-safe.hpp b/src/signal-safe.hpp
index 22c825db..70320ad1 100644
--- a/src/signal-safe.hpp
+++ b/src/signal-safe.hpp
@@ -109,8 +109,10 @@ class BufFileWriter {
struct sigaction act;
act.sa_handler = SIG_DFL;
sigemptyset(&act.sa_mask);
- act.sa_flags = SA_NOCLDWAIT;
+ act.sa_flags = SA_NOCLDWAIT;
+#ifdef SA_RESTORER
act.sa_restorer = NULL;
+#endif
sigaction(SIGCHLD, &act, NULL);
}
pid_t pid = fork();
@@ -123,7 +125,7 @@ class BufFileWriter {
if (pid == 0) {
close(pipefd[0]);
dup2(pipefd[1], STDOUT_FILENO);
- char const* const argv[] = {"/bin/sh", "-c", cmd};
+ char const* const argv[] = {"/bin/sh", "-c", cmd, NULL};
execv("/bin/sh", (char* const*)argv);
BufFileWriter<64> failmsg(pipefd[1]);