]> sourceware.org Git - glibc.git/commitdiff
Fix RISC-V vfork build with Linux 5.3 kernel headers.
authorJoseph Myers <joseph@codesourcery.com>
Wed, 18 Sep 2019 13:22:24 +0000 (13:22 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Wed, 18 Sep 2019 13:22:24 +0000 (13:22 +0000)
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.

ChangeLog
sysdeps/unix/sysv/linux/riscv/vfork.S

index adc93a794ae655752bfdc84511fdd6a5360e5de4..2258e1cbb8fbc244b6f9e48ef003c22fae1de77c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2019-09-18  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-18  Stefan Liebler  <stli@linux.ibm.com>
 
        * elf/tst-pldd.c (do_test): Add UNSUPPORTED check.
index e68dbc7d5d77b3915e1c17bccaa597d442227c3f..062a562e72175eb86d80106c5524840c4f12d7db 100644 (file)
 #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)
 
This page took 0.062778 seconds and 5 git commands to generate.