summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2015-04-24 12:09:01 -0400
committerRich Felker <dalias@aerifal.cx>2015-04-24 13:05:21 -0400
commit1fb0878ebc037ee2ad9e31e5873b6c7f95b22c1c (patch)
treea08b023a3275045976a07d68fd31d99fc8eedc59
parenta658afbf94a41108d2e01bbc4113011b792b3bad (diff)
downloadmusl-1fb0878ebc037ee2ad9e31e5873b6c7f95b22c1c.tar.gz
fix ldso name for sh-nofpu subarch
previously it was using the same name as the default ABI with hard float (floating point args and return value in registers). the test __SH_FPU_ANY__ || __SH4__ matches what's used in the configure script already, and seems correct under casual review against gcc's config/sh.h, but may need tweaks. the logic for predefined macros for sh, and what they all mean, is very complex. eventually this should be documented in comments here. configure already rejects "half-hard" configurations on sh where double=float since these do not conform to Annex F and are not suitable for musl, so these do not need to be considered here.
-rw-r--r--arch/sh/reloc.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/sh/reloc.h b/arch/sh/reloc.h
index 61192ffe..77da6508 100644
--- a/arch/sh/reloc.h
+++ b/arch/sh/reloc.h
@@ -6,7 +6,13 @@
#define ENDIAN_SUFFIX ""
#endif
-#define LDSO_ARCH "sh" ENDIAN_SUFFIX
+#if __SH_FPU_ANY__ || __SH4__
+#define FP_SUFFIX ""
+#else
+#define FP_SUFFIX "-nofpu"
+#endif
+
+#define LDSO_ARCH "sh" ENDIAN_SUFFIX FP_SUFFIX
#define TPOFF_K 8