1*4882a593SmuzhiyunFrom f2dd94dce490d8e8301fba9e4684cfb8d7bc7756 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Fabrice Fontaine <fontaine.fabrice@gmail.com> 3*4882a593SmuzhiyunDate: Wed, 10 Nov 2021 23:14:54 +0100 4*4882a593SmuzhiyunSubject: [PATCH] fix musl build on riscv 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunFix the following build failure raised with musl: 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun../../gdbserver/linux-riscv-low.cc: In function 'void riscv_fill_fpregset(regcache*, void*)': 9*4882a593Smuzhiyun../../gdbserver/linux-riscv-low.cc:140:19: error: 'ELF_NFPREG' was not declared in this scope; did you mean 'ELF_NGREG'? 10*4882a593Smuzhiyun 140 | for (i = 0; i < ELF_NFPREG - 1; i++, regbuf += flen) 11*4882a593Smuzhiyun | ^~~~~~~~~~ 12*4882a593Smuzhiyun | ELF_NGREG 13*4882a593Smuzhiyun 14*4882a593Smuzhiyunmusl fixed the issue with 15*4882a593Smuzhiyunhttps://git.musl-libc.org/cgit/musl/commit/?id=e5d2823631bbfebacf48e1a34ed28f28d7cb2570 16*4882a593Smuzhiyun 17*4882a593SmuzhiyunFixes: 18*4882a593Smuzhiyun - http://autobuild.buildroot.org/results/16b19198980ce9c81a618b3f6e8dc9fe28247a28 19*4882a593Smuzhiyun 20*4882a593SmuzhiyunSigned-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 21*4882a593Smuzhiyun--- 22*4882a593Smuzhiyun gdb/nat/riscv-linux-tdesc.c | 5 +++++ 23*4882a593Smuzhiyun gdbserver/linux-riscv-low.cc | 5 +++++ 24*4882a593Smuzhiyun 2 files changed, 10 insertions(+) 25*4882a593Smuzhiyun 26*4882a593Smuzhiyundiff --git a/gdb/nat/riscv-linux-tdesc.c b/gdb/nat/riscv-linux-tdesc.c 27*4882a593Smuzhiyunindex 07b49c0f16e..1ff58cce16f 100644 28*4882a593Smuzhiyun--- a/gdb/nat/riscv-linux-tdesc.c 29*4882a593Smuzhiyun+++ b/gdb/nat/riscv-linux-tdesc.c 30*4882a593Smuzhiyun@@ -31,6 +31,11 @@ 31*4882a593Smuzhiyun # define NFPREG 33 32*4882a593Smuzhiyun #endif 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun+/* Work around musl breakage since version 1.1.24. */ 35*4882a593Smuzhiyun+#ifndef ELF_NFPREG 36*4882a593Smuzhiyun+# define ELF_NFPREG 33 37*4882a593Smuzhiyun+#endif 38*4882a593Smuzhiyun+ 39*4882a593Smuzhiyun /* See nat/riscv-linux-tdesc.h. */ 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun struct riscv_gdbarch_features 42*4882a593Smuzhiyundiff --git a/gdbserver/linux-riscv-low.cc b/gdbserver/linux-riscv-low.cc 43*4882a593Smuzhiyunindex 6b2902e422d..ead54db09a8 100644 44*4882a593Smuzhiyun--- a/gdbserver/linux-riscv-low.cc 45*4882a593Smuzhiyun+++ b/gdbserver/linux-riscv-low.cc 46*4882a593Smuzhiyun@@ -30,6 +30,11 @@ 47*4882a593Smuzhiyun # define NFPREG 33 48*4882a593Smuzhiyun #endif 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun+/* Work around musl breakage since version 1.1.24. */ 51*4882a593Smuzhiyun+#ifndef ELF_NFPREG 52*4882a593Smuzhiyun+# define ELF_NFPREG 33 53*4882a593Smuzhiyun+#endif 54*4882a593Smuzhiyun+ 55*4882a593Smuzhiyun /* Linux target op definitions for the RISC-V architecture. */ 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun class riscv_target : public linux_process_target 58*4882a593Smuzhiyun-- 59*4882a593Smuzhiyun2.37.1 60*4882a593Smuzhiyun 61