Index: src/libslic3r/Thread.cpp
--- src/libslic3r/Thread.cpp.orig
+++ src/libslic3r/Thread.cpp
@@ -13,6 +13,10 @@
 	#endif // __APPLE__
 #endif
 
+#ifdef __OpenBSD__
+	#include <pthread_np.h>
+#endif
+
 #include <atomic>
 #include <condition_variable>
 #include <mutex>
@@ -162,6 +166,33 @@ std::optional<std::string> get_current_thread_name()
 //	char buf[16];
 //	return std::string(thread_getname_np(buf, 16) == 0 ? buf : "");
 	return std::nullopt;
+}
+
+#elif __OpenBSD__
+
+bool set_thread_name(std::thread &thread, const char *thread_name)
+{
+	pthread_set_name_np(thread.native_handle(), thread_name);
+	return true;
+}
+
+bool set_thread_name(boost::thread &thread, const char *thread_name)
+{
+	pthread_set_name_np(thread.native_handle(), thread_name);
+	return true;
+}
+
+bool set_current_thread_name(const char *thread_name)
+{
+	pthread_set_name_np(pthread_self(), thread_name);
+	return true;
+}
+
+std::optional<std::string> get_current_thread_name()
+{
+	char buf[16];
+	pthread_get_name_np(pthread_self(), buf, 16);
+	return std::string(buf);
 }
 
 #else
