This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[glibc/release/2.30/master] Fix RISC-V vfork build with Linux 5.3 kernel headers.


https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a6aaabd036d735a1b412f441bf6c706832655598

commit a6aaabd036d735a1b412f441bf6c706832655598
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Wed Sep 18 13:22:24 2019 +0000

    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)

Diff:
---
 ChangeLog                             | 7 +++++++
 sysdeps/unix/sysv/linux/riscv/vfork.S | 5 ++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/ChangeLog b/ChangeLog
index 3ea022b..29c8648 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-20  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/riscv/vfork.S: Do not include
+	<linux/sched.h>.
+	(CLONE_VM): New macro.
+	(CLONE_VFORK): Likewise.
+
 2019-09-14  Aurelien Jarno  <aurelien@aurel32.net>
 
 	[BZ #24986]
diff --git a/sysdeps/unix/sysv/linux/riscv/vfork.S b/sysdeps/unix/sysv/linux/riscv/vfork.S
index 67373f1..dc173d6 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)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]