diff --git a/src/klayout.pri b/src/klayout.pri index d9d1fdc41..245b3f12d 100644 --- a/src/klayout.pri +++ b/src/klayout.pri @@ -160,7 +160,7 @@ equals(HAVE_QT, "0") { } else { DEFINES += HAVE_QT - QT += core network xml sql + QT += core network xml sql widgets equals(HAVE_QT5, "1") { QT += designer printsupport diff --git a/src/lay/lay/laySignalHandler.cc b/src/lay/lay/laySignalHandler.cc index f1d7462a0..73da25731 100644 --- a/src/lay/lay/laySignalHandler.cc +++ b/src/lay/lay/laySignalHandler.cc @@ -450,7 +450,7 @@ void install_signal_handlers () act.sa_sigaction = signal_handler; sigemptyset (&act.sa_mask); act.sa_flags = SA_SIGINFO; -#if !defined(__APPLE__) && !defined(__OpenBSD__) +#if !defined(__APPLE__) && !defined(__FreeBSD__) && !defined(__OpenBSD__) act.sa_restorer = 0; #endif diff --git a/src/tl/tl/tlFileUtils.cc b/src/tl/tl/tlFileUtils.cc index b608139c4..7a8078883 100644 --- a/src/tl/tl/tlFileUtils.cc +++ b/src/tl/tl/tlFileUtils.cc @@ -59,6 +59,13 @@ #endif +#if defined(__FreeBSD__) + +#include +#include + +#endif + namespace tl { @@ -816,6 +823,16 @@ get_inst_path_internal () return tl::absolute_path (buffer); } +#elif defined (__FreeBSD__) + + char path[PATH_MAX]; + size_t len = PATH_MAX; + const int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1}; + if (sysctl(&mib[0], 4, &path, &len, NULL, 0) == 0) { + return tl::absolute_path(path); + } + return ""; + #else std::string pf = tl::sprintf ("/proc/%d/exe", getpid ()); diff --git a/src/tl/tl/tlStream.cc b/src/tl/tl/tlStream.cc index 753e5e16b..36f6a8b3c 100644 --- a/src/tl/tl/tlStream.cc +++ b/src/tl/tl/tlStream.cc @@ -32,6 +32,8 @@ #include #ifdef _WIN32 # include +#else +# include #endif #include "tlStream.h"