Backport compilation fix for 5.3 kernel
Signed-off-by: David Abdurachmanov <david.abdurachmanov@sifive.com>
This commit is contained in:
parent
4be26d7c24
commit
091eeafd9d
47
a6aaabd036d735a1b412f441bf6c706832655598.patch
Normal file
47
a6aaabd036d735a1b412f441bf6c706832655598.patch
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
From a6aaabd036d735a1b412f441bf6c706832655598 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Joseph Myers <joseph@codesourcery.com>
|
||||||
|
Date: Wed, 18 Sep 2019 13:22:24 +0000
|
||||||
|
Subject: [PATCH] Fix RISC-V vfork build with Linux 5.3 kernel headers.
|
||||||
|
|
||||||
|
Building glibc for RISC-V with Linux 5.3 kernel headers fails because
|
||||||
|
<linux/sched.h>, included in vfork.S for CLONE_* constants, contains a
|
||||||
|
structure definition not safe for inclusion in assembly code.
|
||||||
|
|
||||||
|
All other architectures already avoid use of that header in vfork.S,
|
||||||
|
either defining the CLONE_* constants locally or embedding the
|
||||||
|
required values directly in the relevant instruction, where they
|
||||||
|
implement vfork using the clone syscall (see the implementations for
|
||||||
|
aarch64, ia64, mips and nios2). This patch makes the RISC-V version
|
||||||
|
define the constants locally like the other architectures.
|
||||||
|
|
||||||
|
Tested build for all three RISC-V configurations in
|
||||||
|
build-many-glibcs.py with Linux 5.3 headers.
|
||||||
|
|
||||||
|
* sysdeps/unix/sysv/linux/riscv/vfork.S: Do not include
|
||||||
|
<linux/sched.h>.
|
||||||
|
(CLONE_VM): New macro.
|
||||||
|
(CLONE_VFORK): Likewise.
|
||||||
|
|
||||||
|
(cherry picked from commit 8cacbcf4a984ccac24efedb795d9c8a7f149d17b)
|
||||||
|
---
|
||||||
|
sysdeps/unix/sysv/linux/riscv/vfork.S | 5 ++++-
|
||||||
|
2 files changed, 11 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/sysdeps/unix/sysv/linux/riscv/vfork.S b/sysdeps/unix/sysv/linux/riscv/vfork.S
|
||||||
|
index 67373f181b..dc173d6b47 100644
|
||||||
|
--- a/sysdeps/unix/sysv/linux/riscv/vfork.S
|
||||||
|
+++ b/sysdeps/unix/sysv/linux/riscv/vfork.S
|
||||||
|
@@ -21,9 +21,12 @@
|
||||||
|
#include <sys/asm.h>
|
||||||
|
#include <sysdep.h>
|
||||||
|
#define __ASSEMBLY__
|
||||||
|
-#include <linux/sched.h>
|
||||||
|
#include <asm/signal.h>
|
||||||
|
|
||||||
|
+#define CLONE_VM 0x00000100 /* Set if VM shared between processes. */
|
||||||
|
+#define CLONE_VFORK 0x00004000 /* Set if the parent wants the child to
|
||||||
|
+ wake it up on mm_release. */
|
||||||
|
+
|
||||||
|
.text
|
||||||
|
LEAF (__libc_vfork)
|
||||||
|
|
@ -87,7 +87,7 @@
|
|||||||
Summary: The GNU libc libraries
|
Summary: The GNU libc libraries
|
||||||
Name: glibc
|
Name: glibc
|
||||||
Version: %{glibcversion}
|
Version: %{glibcversion}
|
||||||
Release: 1%{?dist}
|
Release: 1.0.riscv64%{?dist}
|
||||||
|
|
||||||
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
|
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
|
||||||
# libraries.
|
# libraries.
|
||||||
@ -160,6 +160,9 @@ Patch28: glibc-rh1615608.patch
|
|||||||
# https://www.sourceware.org/ml/libc-alpha/2019-03/msg00436.html
|
# https://www.sourceware.org/ml/libc-alpha/2019-03/msg00436.html
|
||||||
Patch31: glibc-fedora-nscd-warnings.patch
|
Patch31: glibc-fedora-nscd-warnings.patch
|
||||||
|
|
||||||
|
# Fix compilation error on RISC-V with 5.3 kernel
|
||||||
|
# https://github.com/bminor/glibc/commit/a6aaabd036d735a1b412f441bf6c706832655598
|
||||||
|
Patch100: a6aaabd036d735a1b412f441bf6c706832655598.patch
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
# Continued list of core "glibc" package information:
|
# Continued list of core "glibc" package information:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user