0007-fix-musl-build-on-riscv.patch 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. From 7b93a4abcbaa0c273aabc40213b2cdc1d3570e25 Mon Sep 17 00:00:00 2001
  2. From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
  3. Date: Wed, 10 Nov 2021 23:14:54 +0100
  4. Subject: [PATCH] fix musl build on riscv
  5. Fix the following build failure raised with musl:
  6. ../../gdbserver/linux-riscv-low.cc: In function 'void riscv_fill_fpregset(regcache*, void*)':
  7. ../../gdbserver/linux-riscv-low.cc:140:19: error: 'ELF_NFPREG' was not declared in this scope; did you mean 'ELF_NGREG'?
  8. 140 | for (i = 0; i < ELF_NFPREG - 1; i++, regbuf += flen)
  9. | ^~~~~~~~~~
  10. | ELF_NGREG
  11. musl fixed the issue with
  12. https://git.musl-libc.org/cgit/musl/commit/?id=e5d2823631bbfebacf48e1a34ed28f28d7cb2570
  13. Fixes:
  14. - http://autobuild.buildroot.org/results/16b19198980ce9c81a618b3f6e8dc9fe28247a28
  15. Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
  16. ---
  17. gdb/nat/riscv-linux-tdesc.c | 5 +++++
  18. gdbserver/linux-riscv-low.cc | 5 +++++
  19. 2 files changed, 10 insertions(+)
  20. diff --git a/gdb/nat/riscv-linux-tdesc.c b/gdb/nat/riscv-linux-tdesc.c
  21. index 0cd38435b22..c1f39037ad7 100644
  22. --- a/gdb/nat/riscv-linux-tdesc.c
  23. +++ b/gdb/nat/riscv-linux-tdesc.c
  24. @@ -30,6 +30,11 @@
  25. # define NFPREG 33
  26. #endif
  27. +/* Work around musl breakage since version 1.1.24. */
  28. +#ifndef ELF_NFPREG
  29. +# define ELF_NFPREG 33
  30. +#endif
  31. +
  32. /* See nat/riscv-linux-tdesc.h. */
  33. struct riscv_gdbarch_features
  34. diff --git a/gdbserver/linux-riscv-low.cc b/gdbserver/linux-riscv-low.cc
  35. index c4554c507a8..aa9253ca769 100644
  36. --- a/gdbserver/linux-riscv-low.cc
  37. +++ b/gdbserver/linux-riscv-low.cc
  38. @@ -29,6 +29,11 @@
  39. # define NFPREG 33
  40. #endif
  41. +/* Work around musl breakage since version 1.1.24. */
  42. +#ifndef ELF_NFPREG
  43. +# define ELF_NFPREG 33
  44. +#endif
  45. +
  46. /* Linux target op definitions for the RISC-V architecture. */
  47. class riscv_target : public linux_process_target
  48. --
  49. 2.45.2