48 lines
1.8 KiB
Diff
48 lines
1.8 KiB
Diff
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)
|
|
|