[lld] 85d0fbe - [lld] Don't allow -dynamicbase:no on ARM64EC.

via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 11 09:09:04 PDT 2023


Author: Jacek Caban
Date: 2023-10-11T18:09:00+02:00
New Revision: 85d0fbeaae46989d062bed975d1b3c475c874146

URL: https://github.com/llvm/llvm-project/commit/85d0fbeaae46989d062bed975d1b3c475c874146
DIFF: https://github.com/llvm/llvm-project/commit/85d0fbeaae46989d062bed975d1b3c475c874146.diff

LOG: [lld] Don't allow -dynamicbase:no on ARM64EC.

Added: 
    

Modified: 
    lld/COFF/Driver.cpp
    lld/test/COFF/arm64-dynamicbase.s

Removed: 
    


################################################################################
diff  --git a/lld/COFF/Driver.cpp b/lld/COFF/Driver.cpp
index c7f4e1f767a5431..278f5e71b14f543 100644
--- a/lld/COFF/Driver.cpp
+++ b/lld/COFF/Driver.cpp
@@ -2181,7 +2181,7 @@ void LinkerDriver::linkerMain(ArrayRef<const char *> argsArr) {
       args.hasFlag(OPT_highentropyva, OPT_highentropyva_no, true);
 
   if (!config->dynamicBase &&
-      (config->machine == ARMNT || config->machine == ARM64))
+      (config->machine == ARMNT || isAnyArm64(config->machine)))
     error("/dynamicbase:no is not compatible with " +
           machineToStr(config->machine));
 

diff  --git a/lld/test/COFF/arm64-dynamicbase.s b/lld/test/COFF/arm64-dynamicbase.s
index d4cb12c1c8ffb9e..6ccce26a2f168a3 100644
--- a/lld/test/COFF/arm64-dynamicbase.s
+++ b/lld/test/COFF/arm64-dynamicbase.s
@@ -1,8 +1,16 @@
 // REQUIRES: aarch64
 // RUN: llvm-mc -filetype=obj -triple=aarch64-windows %s -o %t.obj
 // RUN: not lld-link -entry:_start -subsystem:console %t.obj -out:%t.exe -dynamicbase:no 2>&1 | FileCheck %s
+
+// RUN: llvm-mc -filetype=obj -triple=arm64ec-windows %s -o %t.obj
+// RUN: not lld-link -entry:_start -subsystem:console %t.obj -out:%t.exe -dynamicbase:no -machine:arm64ec 2>&1 \
+// RUN:              | FileCheck %s -check-prefix=ARM64EC
+// RUN: not lld-link -entry:_start -subsystem:console %t.obj -out:%t.exe -dynamicbase:no -machine:arm64x -dll -noentry 2>&1 \
+// RUN:              | FileCheck %s -check-prefix=ARM64X
  .globl _start
 _start:
  ret
 
 # CHECK: dynamicbase:no is not compatible with arm64
+# ARM64EC: dynamicbase:no is not compatible with arm64ec
+# ARM64X: dynamicbase:no is not compatible with arm64x


        


More information about the llvm-commits mailing list