summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Bauer <mjbauer95@gmail.com>2019-09-25 11:42:19 -0400
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-10-04 21:47:47 -0400
commit8039b6257ce5288e9e38c2593ff2d5d6d316efd4 (patch)
treee621bb88c0cde7bc2ea6249fd3c9a9c32d058e7c
parent93f02b6223b8fc4d85ece389ac0520ee9cc20f2f (diff)
downloadhaskell-8039b6257ce5288e9e38c2593ff2d5d6d316efd4.tar.gz
Add musl systems to llvm-targets
This was done in Nixpkgs, but never upstreamed. Musl is pretty much the same as gnu, but with a different libc. I’ve used the same values for everything.
-rw-r--r--aclocal.m42
-rw-r--r--llvm-targets13
-rwxr-xr-xutils/llvm-targets/gen-data-layout.sh13
3 files changed, 27 insertions, 1 deletions
diff --git a/aclocal.m4 b/aclocal.m4
index e3abb07202..2072a33b36 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1977,7 +1977,7 @@ AC_DEFUN([GHC_LLVM_TARGET], [
# for the LLVM Target. Otherwise these would be
# turned into just `-linux` and fail to be found
# in the `llvm-targets` file.
- *-android*|*-gnueabi*)
+ *-android*|*-gnueabi*|*-musleabi*)
GHC_CONVERT_VENDOR([$2],[llvm_target_vendor])
llvm_target_os="$3"
;;
diff --git a/llvm-targets b/llvm-targets
index b0fe913471..97414a383f 100644
--- a/llvm-targets
+++ b/llvm-targets
@@ -2,23 +2,36 @@
,("i686-unknown-windows", ("e-m:x-p:32:32-i64:64-f80:32-n8:16:32-a:0:32-S32", "pentium4", ""))
,("x86_64-unknown-windows", ("e-m:w-i64:64-f80:128-n8:16:32:64-S128", "x86-64", ""))
,("arm-unknown-linux-gnueabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "arm1176jzf-s", "+strict-align"))
+,("arm-unknown-linux-musleabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "arm1176jzf-s", "+strict-align"))
,("armv6-unknown-linux-gnueabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "arm1136jf-s", "+strict-align"))
+,("armv6-unknown-linux-musleabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "arm1136jf-s", "+strict-align"))
,("armv6l-unknown-linux-gnueabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "arm1176jzf-s", "+strict-align"))
+,("armv6l-unknown-linux-musleabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "arm1176jzf-s", "+strict-align"))
,("armv7-unknown-linux-gnueabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "generic", ""))
+,("armv7-unknown-linux-musleabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "generic", ""))
,("armv7a-unknown-linux-gnueabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "generic", ""))
+,("armv7a-unknown-linux-musleabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "generic", ""))
,("armv7a-unknown-linux-gnueabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "generic", ""))
+,("armv7a-unknown-linux-musleabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "generic", ""))
,("armv7l-unknown-linux-gnueabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "generic", ""))
+,("armv7l-unknown-linux-musleabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "generic", ""))
,("armv7l-unknown-linux-gnueabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "generic", ""))
+,("armv7l-unknown-linux-musleabihf", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "generic", ""))
,("aarch64-unknown-linux-gnu", ("e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128", "generic", "+neon"))
+,("aarch64-unknown-linux-musl", ("e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128", "generic", "+neon"))
,("aarch64-unknown-linux", ("e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128", "generic", "+neon"))
,("i386-unknown-linux-gnu", ("e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128", "pentium4", ""))
+,("i386-unknown-linux-musl", ("e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128", "pentium4", ""))
,("i386-unknown-linux", ("e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128", "pentium4", ""))
,("x86_64-unknown-linux-gnu", ("e-m:e-i64:64-f80:128-n8:16:32:64-S128", "x86-64", ""))
+,("x86_64-unknown-linux-musl", ("e-m:e-i64:64-f80:128-n8:16:32:64-S128", "x86-64", ""))
,("x86_64-unknown-linux", ("e-m:e-i64:64-f80:128-n8:16:32:64-S128", "x86-64", ""))
,("x86_64-unknown-linux-android", ("e-m:e-i64:64-f80:128-n8:16:32:64-S128", "x86-64", "+sse4.2 +popcnt"))
,("armv7-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "generic", ""))
,("aarch64-unknown-linux-android", ("e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128", "generic", "+neon"))
,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "generic", ""))
+,("powerpc64le-unknown-linux-gnu", ("e-m:e-i64:64-n32:64", "ppc64le", ""))
+,("powerpc64le-unknown-linux-musl", ("e-m:e-i64:64-n32:64", "ppc64le", ""))
,("powerpc64le-unknown-linux", ("e-m:e-i64:64-n32:64", "ppc64le", ""))
,("i386-apple-darwin", ("e-m:o-p:32:32-f64:32:64-f80:128-n8:16:32-S128", "yonah", ""))
,("x86_64-apple-darwin", ("e-m:o-i64:64-f80:128-n8:16:32:64-S128", "core2", ""))
diff --git a/utils/llvm-targets/gen-data-layout.sh b/utils/llvm-targets/gen-data-layout.sh
index 15fa113550..450d21903c 100755
--- a/utils/llvm-targets/gen-data-layout.sh
+++ b/utils/llvm-targets/gen-data-layout.sh
@@ -33,19 +33,30 @@ TARGETS=(
# Linux ARM
"arm-unknown-linux-gnueabihf"
+ "arm-unknown-linux-musleabihf"
"armv6-unknown-linux-gnueabihf"
+ "armv6-unknown-linux-musleabihf"
"armv6l-unknown-linux-gnueabihf"
+ "armv6l-unknown-linux-musleabihf"
"armv7-unknown-linux-gnueabihf"
+ "armv7-unknown-linux-musleabihf"
"armv7a-unknown-linux-gnueabi"
+ "armv7a-unknown-linux-musleabi"
"armv7a-unknown-linux-gnueabihf"
+ "armv7a-unknown-linux-musleabihf"
"armv7l-unknown-linux-gnueabi"
+ "armv7l-unknown-linux-musleabi"
"armv7l-unknown-linux-gnueabihf"
+ "armv7l-unknown-linux-musleabihf"
"aarch64-unknown-linux-gnu"
+ "aarch64-unknown-linux-musl"
"aarch64-unknown-linux"
# Linux x86
"i386-unknown-linux-gnu"
+ "i386-unknown-linux-musl"
"i386-unknown-linux"
"x86_64-unknown-linux-gnu"
+ "x86_64-unknown-linux-musl"
"x86_64-unknown-linux"
# Linux Android
"x86_64-unknown-linux-android"
@@ -53,6 +64,8 @@ TARGETS=(
"aarch64-unknown-linux-android"
"armv7a-unknown-linux-androideabi"
# Linux ppc64le
+ "powerpc64le-unknown-linux-gnu"
+ "powerpc64le-unknown-linux-musl"
"powerpc64le-unknown-linux"
#########################