summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPHO <pho@cielonegro.org>2021-05-06 12:16:52 +0900
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-05-22 00:08:55 -0400
commite2d4f241293347926e6fb764ff3fe362add7d40e (patch)
tree52181f81934536447c59b60943765e8d7ac42651
parentc680691252660995c09bb953a7dd046056d030a2 (diff)
downloadhaskell-e2d4f241293347926e6fb764ff3fe362add7d40e.tar.gz
Support NetBSD/aarch64 via LLVM codegen
Only adding "aarch64-unknown-netbsd" to gen-data-layout.sh was sufficient to get it working. No other changes were strictly required.
-rw-r--r--llvm-targets1
-rw-r--r--m4/fptools_set_c_ld_flags.m45
-rwxr-xr-xutils/llvm-targets/gen-data-layout.sh6
3 files changed, 12 insertions, 0 deletions
diff --git a/llvm-targets b/llvm-targets
index 1d00445342..130a45a970 100644
--- a/llvm-targets
+++ b/llvm-targets
@@ -52,5 +52,6 @@
,("aarch64-unknown-freebsd", ("e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128", "generic", "+neon"))
,("armv6-unknown-freebsd-gnueabihf", ("e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64", "arm1176jzf-s", "+strict-align"))
,("armv7-unknown-freebsd-gnueabihf", ("e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64", "generic", "+strict-align"))
+,("aarch64-unknown-netbsd", ("e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128", "generic", "+neon"))
,("arm-unknown-nto-qnx-eabi", ("e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64", "arm7tdmi", "+strict-align"))
]
diff --git a/m4/fptools_set_c_ld_flags.m4 b/m4/fptools_set_c_ld_flags.m4
index 9cea4a832e..e7e2eadac1 100644
--- a/m4/fptools_set_c_ld_flags.m4
+++ b/m4/fptools_set_c_ld_flags.m4
@@ -80,6 +80,11 @@ AC_DEFUN([FPTOOLS_SET_C_LD_FLAGS],
$4="$$4 -z noexecstack"
;;
+ aarch64*netbsd*)
+ $3="$$3 -Wl,-z,noexecstack"
+ $4="$$4 -z noexecstack"
+ ;;
+
powerpc-ibm-aix*)
# We need `-D_THREAD_SAFE` to unlock the thread-local `errno`.
$2="$$2 -D_THREAD_SAFE"
diff --git a/utils/llvm-targets/gen-data-layout.sh b/utils/llvm-targets/gen-data-layout.sh
index 092e0892e5..b85f77438d 100755
--- a/utils/llvm-targets/gen-data-layout.sh
+++ b/utils/llvm-targets/gen-data-layout.sh
@@ -108,6 +108,12 @@ TARGETS=(
"armv7-unknown-freebsd-gnueabihf"
#########################
+ # NetBSD
+ #########################
+
+ "aarch64-unknown-netbsd"
+
+ #########################
# Other
#########################