summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrahmajit das <brahmajit.xyz@gmail.com>2022-07-09 10:10:04 +0530
committerSam James <sam@gentoo.org>2022-07-09 05:56:11 +0100
commit5ca83cbca717c9d04ffa46f9a7fce31fe32b2d95 (patch)
tree9d8fe579f7fd41ac4cf7ce2448018a7842d74cc0 /sys-cluster/hpx
parentdev-python/imapclient: add 2.3.1 (diff)
downloadgentoo-5ca83cbca717c9d04ffa46f9a7fce31fe32b2d95.tar.gz
gentoo-5ca83cbca717c9d04ffa46f9a7fce31fe32b2d95.tar.bz2
gentoo-5ca83cbca717c9d04ffa46f9a7fce31fe32b2d95.zip
sys-cluster/hpx: Fix building on musl
These patches fixes building on musl. I've tried to document the patches to the best of my abilities. Mainly fixes the RTLD_DI_ORIGIN not being present in musl. However with this PR [1] we won't be requiring these patches anymore from 1.8.1 [1]: https://github.com/STEllAR-GROUP/hpx/pull/5947 Closes: https://bugs.gentoo.org/829242 Signed-off-by: brahmajit das <brahmajit.xyz@gmail.com> Closes: https://github.com/gentoo/gentoo/pull/26281 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'sys-cluster/hpx')
-rw-r--r--sys-cluster/hpx/files/hpx-1.8.0-fix-musl-exec_pagesize-not-defined.patch47
-rw-r--r--sys-cluster/hpx/files/hpx-1.8.0-fix-musl-execinfo.patch16
-rw-r--r--sys-cluster/hpx/files/hpx-1.8.0-fix-musl-rtdl-not-declared.patch25
-rw-r--r--sys-cluster/hpx/hpx-1.8.0.ebuild3
4 files changed, 91 insertions, 0 deletions
diff --git a/sys-cluster/hpx/files/hpx-1.8.0-fix-musl-exec_pagesize-not-defined.patch b/sys-cluster/hpx/files/hpx-1.8.0-fix-musl-exec_pagesize-not-defined.patch
new file mode 100644
index 000000000000..d2e54b9df256
--- /dev/null
+++ b/sys-cluster/hpx/files/hpx-1.8.0-fix-musl-exec_pagesize-not-defined.patch
@@ -0,0 +1,47 @@
+# EXEC_PAGESIZE is a preprocessor macro from the Linux Kernel headers. Include
+# the appropriate Linux header file <linux/param.h>
+#
+# With this PR https://github.com/STEllAR-GROUP/hpx/pull/5947 merged, from
+# 1.8.1 we can drop these patches
+--- a/components/performance_counters/memory/src/mem_counter_linux.cpp
++++ b/components/performance_counters/memory/src/mem_counter_linux.cpp
+@@ -14,6 +14,11 @@
+ #include <sys/types.h>
+ #include <unistd.h>
+
++// Fix for musl. Use linux/param.h for EXEC_PAGESIZE
++#ifdef __linux__
++#include <linux/param.h>
++#endif
++
+ #include <hpx/modules/errors.hpp>
+ #include <hpx/modules/format.hpp>
+
+--- a/libs/core/coroutines/include/hpx/coroutines/detail/context_linux_x86.hpp
++++ b/libs/core/coroutines/include/hpx/coroutines/detail/context_linux_x86.hpp
+@@ -37,6 +37,11 @@
+ #include <stdexcept>
+ #include <sys/param.h>
+
++// Fix for musl. Use linux/param.h for EXEC_PAGESIZE
++#ifdef __linux__
++#include <linux/param.h>
++#endif
++
+ #if defined(HPX_HAVE_STACKOVERFLOW_DETECTION)
+
+ #include <cstring>
+--- a/libs/core/coroutines/include/hpx/coroutines/detail/posix_utility.hpp
++++ b/libs/core/coroutines/include/hpx/coroutines/detail/posix_utility.hpp
+@@ -67,6 +67,11 @@
+ #define EXEC_PAGESIZE static_cast<std::size_t>(sysconf(_SC_PAGESIZE))
+ #endif
+
++// Fix for musl. Use linux/param.h for EXEC_PAGESIZE
++#ifdef __linux__
++#include <linux/param.h>
++#endif
++
+ /**
+ * Stack allocation routines and trampolines for setcontext
+ */
diff --git a/sys-cluster/hpx/files/hpx-1.8.0-fix-musl-execinfo.patch b/sys-cluster/hpx/files/hpx-1.8.0-fix-musl-execinfo.patch
new file mode 100644
index 000000000000..4c82ca3f6be1
--- /dev/null
+++ b/sys-cluster/hpx/files/hpx-1.8.0-fix-musl-execinfo.patch
@@ -0,0 +1,16 @@
+# Check for execinfo only on glibc and ulibc systems.
+#
+# With this PR https://github.com/STEllAR-GROUP/hpx/pull/5947 merged, from
+# 1.8.1 we can drop these patches
+--- a/libs/core/debugging/src/backtrace.cpp
++++ b/libs/core/debugging/src/backtrace.cpp
+@@ -19,7 +19,9 @@
+
+ #if (defined(__linux) || defined(__APPLE__) || defined(__sun)) && \
+ (!defined(__ANDROID__) || !defined(ANDROID))
++#if defined(__GLIBC__)
+ #define HPX_HAVE_EXECINFO
++#endif
+ #define HPX_HAVE_DLFCN
+ #if defined(__GNUC__) && !defined(__clang__)
+ #define HPX_HAVE_UNWIND
diff --git a/sys-cluster/hpx/files/hpx-1.8.0-fix-musl-rtdl-not-declared.patch b/sys-cluster/hpx/files/hpx-1.8.0-fix-musl-rtdl-not-declared.patch
new file mode 100644
index 000000000000..0264aeab52f5
--- /dev/null
+++ b/sys-cluster/hpx/files/hpx-1.8.0-fix-musl-rtdl-not-declared.patch
@@ -0,0 +1,25 @@
+# RTLD_DI_ORIGIN is not defined in musl as a result hpx fails to build.
+# Closes: https://bugs.gentoo.org/829242
+#
+# With this PR https://github.com/STEllAR-GROUP/hpx/pull/5947 merged, from
+# 1.8.1 we can drop these patches
+--- a/libs/core/plugin/include/hpx/plugin/detail/dll_dlopen.hpp
++++ b/libs/core/plugin/include/hpx/plugin/detail/dll_dlopen.hpp
+@@ -319,6 +319,7 @@ namespace hpx { namespace util { namespace plugin {
+ std::string result;
+
+ #if !defined(__ANDROID__) && !defined(ANDROID) && !defined(__APPLE__)
++#if defined(RTLD_DI_ORIGIN)
+ char directory[PATH_MAX] = {'\0'};
+ const_cast<dll&>(*this).LoadLibrary(ec);
+ if (!ec && ::dlinfo(dll_handle, RTLD_DI_ORIGIN, directory) < 0)
+@@ -333,6 +334,9 @@ namespace hpx { namespace util { namespace plugin {
+ }
+ result = directory;
+ ::dlerror(); // Clear the error state.
++#else
++ result = path(dll_name).parent_path().string();
++#endif
+ #elif defined(__APPLE__)
+ // SO staticfloat's solution
+ const_cast<dll&>(*this).LoadLibrary(ec);
diff --git a/sys-cluster/hpx/hpx-1.8.0.ebuild b/sys-cluster/hpx/hpx-1.8.0.ebuild
index a1b86f1f953f..118e080a1120 100644
--- a/sys-cluster/hpx/hpx-1.8.0.ebuild
+++ b/sys-cluster/hpx/hpx-1.8.0.ebuild
@@ -47,6 +47,9 @@ DEPEND="${RDEPEND}"
PATCHES=(
"${FILESDIR}/${P}-python.patch"
+ "${FILESDIR}/${P}-fix-musl-exec_pagesize-not-defined.patch"
+ "${FILESDIR}/${P}-fix-musl-execinfo.patch"
+ "${FILESDIR}/${P}-fix-musl-rtdl-not-declared.patch"
)
hpx_memory_requirement() {