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
|
||||
Name: glibc
|
||||
Version: %{glibcversion}
|
||||
Release: 1%{?dist}
|
||||
Release: 1.0.riscv64%{?dist}
|
||||
|
||||
# In general, GPLv2+ is used by programs, LGPLv2+ is used for
|
||||
# libraries.
|
||||
@ -160,6 +160,9 @@ Patch28: glibc-rh1615608.patch
|
||||
# https://www.sourceware.org/ml/libc-alpha/2019-03/msg00436.html
|
||||
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:
|
||||
|
Loading…
Reference in New Issue
Block a user