summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrahmajit das <listout@protonmail.com>2022-08-10 16:07:58 +0530
committerSam James <sam@gentoo.org>2022-08-12 19:39:43 +0100
commit4ad0d9de826a89b6ff0dec451e73bbeecd93e4a8 (patch)
tree3e1e7fcce1f6dff60838a9a4c4bca9854130b333 /dev-cpp/folly
parentnet-misc/htpdate: add 1.3.6 (diff)
downloadgentoo-4ad0d9de826a89b6ff0dec451e73bbeecd93e4a8.tar.gz
gentoo-4ad0d9de826a89b6ff0dec451e73bbeecd93e4a8.tar.bz2
gentoo-4ad0d9de826a89b6ff0dec451e73bbeecd93e4a8.zip
dev-cpp/folly: Fix musl build
Fixes "ELFCLASSFOLLY_ELF_NATIVE_CLASS was not declared in this scope". Elf.cpp expects __ELF_NATIVE_CLASS to be defined at least for platforms besides FreeBSD-based ones, and so it defines FOLLY_ELF_NATIVE_CLASS with it. Without __ELF_NATIVE_CLASS (and apparently musl does not define it), FOLLY_ELF_NATIVE_CLASS is also not defined so what was supposed to be expanded to ELFCLASS32 or ELFCLASS64 ends up being ELFCLASSFOLLY_ELF_NATIVE_CLASS. Please refer: https://github.com/facebook/folly/issues/1478#issuecomment-719883898 Closes: https://bugs.gentoo.org/835744 Signed-off-by: brahmajit das <listout@protonmail.com> Closes: https://github.com/gentoo/gentoo/pull/26807 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-cpp/folly')
-rw-r--r--dev-cpp/folly/files/folly-2022.07.04.00-musl-fix.patch36
-rw-r--r--dev-cpp/folly/folly-2022.07.04.00.ebuild4
2 files changed, 40 insertions, 0 deletions
diff --git a/dev-cpp/folly/files/folly-2022.07.04.00-musl-fix.patch b/dev-cpp/folly/files/folly-2022.07.04.00-musl-fix.patch
new file mode 100644
index 000000000000..001af39625c5
--- /dev/null
+++ b/dev-cpp/folly/files/folly-2022.07.04.00-musl-fix.patch
@@ -0,0 +1,36 @@
+# Elf.cpp expects __ELF_NATIVE_CLASS to be defined at least for platforms
+# besides FreeBSD-based ones, and so it defines FOLLY_ELF_NATIVE_CLASS with it.
+# Without __ELF_NATIVE_CLASS (and apparently musl does not define it),
+# FOLLY_ELF_NATIVE_CLASS is also not defined so what was supposed to be
+# expanded to ELFCLASS32 or ELFCLASS64 ends up being
+# ELFCLASSFOLLY_ELF_NATIVE_CLASS.
+#
+# Please refer: https://github.com/facebook/folly/issues/1478
+#
+# Closes: https://bugs.gentoo.org/835744
+--- a/folly/experimental/symbolizer/Elf.cpp
++++ b/folly/experimental/symbolizer/Elf.cpp
+@@ -39,12 +39,10 @@
+
+ #if defined(__ELF_NATIVE_CLASS)
+ #define FOLLY_ELF_NATIVE_CLASS __ELF_NATIVE_CLASS
+-#elif defined(__FreeBSD__)
+-#if defined(__LP64__)
++#elif defined(__LP64__)
+ #define FOLLY_ELF_NATIVE_CLASS 64
+ #else
+ #define FOLLY_ELF_NATIVE_CLASS 32
+-#endif
+ #endif // __ELF_NATIVE_CLASS
+
+ namespace folly {
+--- a/folly/experimental/symbolizer/Elf.h
++++ b/folly/experimental/symbolizer/Elf.h
+@@ -24,6 +24,7 @@
+ #include <initializer_list>
+ #include <stdexcept>
+ #include <system_error>
++#include <sys/types.h>
+
+ #include <folly/Conv.h>
+ #include <folly/Likely.h>
diff --git a/dev-cpp/folly/folly-2022.07.04.00.ebuild b/dev-cpp/folly/folly-2022.07.04.00.ebuild
index e4b9470d848e..4107d94ca13b 100644
--- a/dev-cpp/folly/folly-2022.07.04.00.ebuild
+++ b/dev-cpp/folly/folly-2022.07.04.00.ebuild
@@ -39,6 +39,10 @@ DEPEND="${RDEPEND}
sys-libs/binutils-libs"
BDEPEND="test? ( sys-devel/clang )"
+PATCHES=(
+ "${FILESDIR}/${PN}"-2022.07.04.00-musl-fix.patch
+)
+
pkg_setup() {
[[ ${BUILD_TYPE} == "binary" ]] && return