kumquat-buildroot/package/wpewebkit/0001-Support-building-against-uClibc.patch
Adrian Perez de Castro 35eb9b566a package/wpewebkit: import patch to support uclibc
Import a small patch from the upstream Bugzilla which is needed to allow
building WPE WebKit against uClibc.

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:38:42 +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