summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoritz Angermann <moritz.angermann@gmail.com>2021-03-26 10:02:41 +0800
committerMoritz Angermann <moritz.angermann@gmail.com>2021-03-28 19:12:58 -0400
commit5d913ceeb78ff7982aa59ec6eab9e33c8db662bb (patch)
tree26e7bd479262639a6182a66db6a4bda8af2bd842
parentef26ba33198755e64605521edb93f2596efd3e09 (diff)
downloadhaskell-wip/angerman/aarch64-ncg--linker-only.tar.gz
[armv7] PIC by default + [aarch64-linux] T11276 metric increasewip/angerman/aarch64-ncg--linker-only
Metric Increase: T11276
-rw-r--r--compiler/GHC/Driver/Session.hs1
-rw-r--r--includes/rts/Flags.h2
2 files changed, 2 insertions, 1 deletions
diff --git a/compiler/GHC/Driver/Session.hs b/compiler/GHC/Driver/Session.hs
index aea644aac8..ba957a9bd7 100644
--- a/compiler/GHC/Driver/Session.hs
+++ b/compiler/GHC/Driver/Session.hs
@@ -3691,6 +3691,7 @@ default_PIC platform =
-- be built with -fPIC.
(OSDarwin, ArchAArch64) -> [Opt_PIC]
(OSLinux, ArchAArch64) -> [Opt_PIC, Opt_ExternalDynamicRefs]
+ (OSLinux, ArchARM {}) -> [Opt_PIC, Opt_ExternalDynamicRefs]
(OSOpenBSD, ArchX86_64) -> [Opt_PIC] -- Due to PIE support in
-- OpenBSD since 5.3 release
-- (1 May 2013) we need to
diff --git a/includes/rts/Flags.h b/includes/rts/Flags.h
index ff05426e8a..23a5d78ea6 100644
--- a/includes/rts/Flags.h
+++ b/includes/rts/Flags.h
@@ -207,7 +207,7 @@ typedef struct _CONCURRENT_FLAGS {
* Note that there is no 32bit darwin system we can realistically expect to
* run on or compile for.
*/
-#if defined(darwin_HOST_OS) || defined(aarch64_HOST_ARCH)
+#if defined(darwin_HOST_OS) || defined(aarch64_HOST_ARCH) || defined(arm_HOST_ARCH)
#define DEFAULT_LINKER_ALWAYS_PIC true
#else
#define DEFAULT_LINKER_ALWAYS_PIC false