kumquat-buildroot/package/webkitgtk/0001-Support-building-against-uClibc.patch
Adrian Perez de Castro 4140e0ffdf package/webkitgtk: allow building with musl and uclibc
WebKitGTK 2.32.1 includes fixes for building with the Musl libc, which
also makes it possible to use uClibc as well, therefore arrange
dependencies to allow selecting the package any of the C libraries is in
use. This is done by making the dependencies be more granular, basically
following what the wpewebkit package does.

In order to make make it build against uClibc a small patch that has
been submitted to the upstream's Bugzilla is needed.

Signed-off-by: Adrian Perez de Castro <aperez@igalia.com>
[yann.morin.1998@free.fr: add upstream commit refs in backported patch]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2021-06-04 22:37:26 +02:00

83 lines
2.5 KiB
Diff

From 624d3b6a99778443e35fb260bef50a3969df9215 Mon Sep 17 00:00:00 2001
From: Adrian Perez de Castro <aperez@igalia.com>
Date: Wed, 26 May 2021 01:24:59 +0300
Subject: [PATCH] Support building against uClibc
https://bugs.webkit.org/show_bug.cgi?id=226244
Reviewed by Michael Catanzaro.
Source/JavaScriptCore:
* assembler/MacroAssemblerARM64.cpp:
(getauxval): Provide a fallback implementation of getauxval() for
systems which do not provide <sys/auxv.h>, like those using uClibc
as their C library.
Source/WTF:
* wtf/PlatformRegisters.h: Use the <sys/ucontext.h> header instead of
<ucontext.h>, which is enough to gain access to the type definitions
for CPU registers and is available on every libc. On the other hand,
uClibc does not have <ucontext.h>, so this fixes the build in that
case.
Signed-off-by: Adrian Perez de Castro <aperez@igalia.com>
[Backport from upstream:
- https://bugs.webkit.org/show_bug.cgi?id=226244
- https://trac.webkit.org/changeset/278302 (current svn, soon legacy)
- https://commits.webkit.org/238339@main (future-proof for after the migration to git)
]
[yann.morin.1998@free.fr: add upstream commit refs]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
---
.../assembler/MacroAssemblerARM64.cpp | 18 ++++++++++++++++++
Source/WTF/wtf/PlatformRegisters.h | 2 +-
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp b/Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp
index 9e5c5147ea0..d20e632d825 100644
--- a/Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp
+++ b/Source/JavaScriptCore/assembler/MacroAssemblerARM64.cpp
@@ -34,7 +34,25 @@
#if OS(LINUX)
#include <asm/hwcap.h>
+#if __has_include(<sys/auxv.h>)
#include <sys/auxv.h>
+#else
+#include <linux/auxvec.h>
+// Provide an implementation for C libraries which do not ship one.
+static unsigned long getauxval(unsigned long type)
+{
+ char** env = environ;
+ while (*env++) { /* no-op */ }
+
+ for (auto* auxv = reinterpret_cast<unsigned long*>(env); *auxv != AT_NULL; auxv += 2) {
+ if (*auxv == type)
+ return auxv[1];
+ }
+
+ errno = ENOENT;
+ return 0;
+}
+#endif
#endif
namespace JSC {
diff --git a/Source/WTF/wtf/PlatformRegisters.h b/Source/WTF/wtf/PlatformRegisters.h
index d26ef985169..e7f15b7eb62 100644
--- a/Source/WTF/wtf/PlatformRegisters.h
+++ b/Source/WTF/wtf/PlatformRegisters.h
@@ -35,7 +35,7 @@
#elif OS(WINDOWS)
#include <windows.h>
#else
-#include <ucontext.h>
+#include <sys/ucontext.h>
#endif
namespace WTF {
--
2.31.1