package/uclibc-ng-test: fix build with the musl C library

Musl doesn't provide sys/asm.h header so we should add some defines
inside mips-specific header file to avoid build errors.

Fixes:

  http://autobuild.buildroot.net/results/af7a1d00930485f87f77762b34cae01873a8cd41/

Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Dmitry Chestnykh
2024-07-25 11:27:03 +03:00
committed by Thomas Petazzoni
parent ea3c465304
commit b5c1ead57e

View File

@@ -0,0 +1,59 @@
From a99d5bdb51bdab92a303c508b2b938ee0789d614 Mon Sep 17 00:00:00 2001
From: Dmitry Chestnykh <dm.chestnykh@gmail.com>
Date: Thu, 25 Jul 2024 09:15:11 +0300
Subject: [PATCH] Fix errors due to absent sys/asm.h in mips64 musl build
Upstream: https://patchwork.ozlabs.org/project/uclibc-ng/patch/20240725081519.611076-1-dm.chestnykh@gmail.com/
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
---
test/tls/tls-macros-mips.h | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/test/tls/tls-macros-mips.h b/test/tls/tls-macros-mips.h
index eed0938..bd4c5c4 100644
--- a/test/tls/tls-macros-mips.h
+++ b/test/tls/tls-macros-mips.h
@@ -1,7 +1,40 @@
/* Macros to support TLS testing in times of missing compiler support. */
#include <sys/cdefs.h>
+#if defined(__has_include) && __has_include(<sys/asm.h>)
#include <sys/asm.h>
+#else
+
+#define __STRING(x) #x
+
+#if ((_MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _ABI32) && _MIPS_SZPTR == 32)
+#define PTR_ADDIU addiu
+#define PTR_L lw
+#endif
+
+#if _MIPS_SIM == _MIPS_SIM_NABI32 || _MIPS_SIM == _NABI32
+
+#if !defined __mips_isa_rev || __mips_isa_rev < 6
+#define PTR_ADDU add
+#define PTR_ADDIU addi
+#else
+#define PTR_ADDU addu
+#define PTR_ADDIU addiu
+#endif
+
+#define PTR_L lw
+#endif
+
+#if ((_MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _ABI32) && _MIPS_SZPTR == 64) \
+ || _MIPS_SIM == _MIPS_SIM_ABI64 || _MIPS_SIM == _ABIN32
+
+#define PTR_ADDU daddu
+#define PTR_ADDIU daddiu
+#define PTR_L ld
+
+#endif
+
+#endif
#define __STRING2(X) __STRING(X)
#define ADDU __STRING2(PTR_ADDU)
--
2.45.2