Skip to content

Commit affeef0

Browse files
authored
Fix gmake build not always picking the right ARM64 arch options for clang (#4136)
* Fix gcc version checks erroneously excluding clang * Avoid some mtune names not supported by (Apple)Clang
1 parent 494313e commit affeef0

File tree

1 file changed

+24
-11
lines changed

1 file changed

+24
-11
lines changed

Makefile.arm64

Lines changed: 24 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ endif
6969
# in GCC>=9
7070
ifeq ($(CORE), NEOVERSEN1)
7171
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG)))
72-
ifeq ($(GCCVERSIONGTEQ9), 1)
72+
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ9) $(ISCLANG)))
7373
CCOMMON_OPT += -march=armv8.2-a -mtune=neoverse-n1
7474
ifneq ($(F_COMPILER), NAG)
7575
FCOMMON_OPT += -march=armv8.2-a -mtune=neoverse-n1
@@ -92,9 +92,14 @@ endif
9292
# in GCC>=10.4
9393
ifeq ($(CORE), NEOVERSEV1)
9494
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG)))
95-
ifeq ($(GCCVERSIONGTEQ10), 1)
96-
ifeq (1, $(filter 1,$(GCCMINORVERSIONGTEQ4) $(GCCVERSIONGTEQ11)))
97-
CCOMMON_OPT += -march=armv8.4-a+sve -mtune=neoverse-v1
95+
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ10) $(ISCLANG)))
96+
ifeq (1, $(filter 1,$(GCCMINORVERSIONGTEQ4) $(GCCVERSIONGTEQ11) $(ISCLANG)))
97+
CCOMMON_OPT += -march=armv8.4-a+sve
98+
ifeq (1, $(ISCLANG))
99+
CCOMMON_OPT += -mtune=cortex-x1
100+
else
101+
CCOMMON_OPT += -mtune=neoverse-v1
102+
endif
98103
ifneq ($(F_COMPILER), NAG)
99104
FCOMMON_OPT += -march=armv8.4-a -mtune=neoverse-v1
100105
endif
@@ -122,8 +127,8 @@ endif
122127
# in GCC>=10.4
123128
ifeq ($(CORE), NEOVERSEN2)
124129
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG)))
125-
ifeq ($(GCCVERSIONGTEQ10), 1)
126-
ifeq (1, $(filter 1,$(GCCMINORVERSIONGTEQ4) $(GCCVERSIONGTEQ11)))
130+
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ10) $(ISCLANG)))
131+
ifeq (1, $(filter 1,$(GCCMINORVERSIONGTEQ4) $(GCCVERSIONGTEQ11) $(ISCLANG)))
127132
ifneq ($(OSNAME), Darwin)
128133
CCOMMON_OPT += -march=armv8.5-a+sve+sve2+bf16 -mtune=neoverse-n2
129134
else
@@ -155,7 +160,7 @@ endif
155160
# Use a53 tunings because a55 is only available in GCC>=8.1
156161
ifeq ($(CORE), CORTEXA55)
157162
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ7) $(ISCLANG)))
158-
ifeq ($(GCCVERSIONGTEQ8), 1)
163+
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ8) $(ISCLANG)))
159164
CCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a55
160165
ifneq ($(F_COMPILER), NAG)
161166
FCOMMON_OPT += -march=armv8.2-a -mtune=cortex-a55
@@ -196,8 +201,13 @@ endif
196201
endif
197202

198203
ifeq ($(CORE), THUNDERX3T110)
199-
ifeq ($(GCCVERSIONGTEQ10), 1)
200-
CCOMMON_OPT += -march=armv8.3-a -mtune=thunderx3t110
204+
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ10) $(ISCLANG)))
205+
CCOMMON_OPT += -march=armv8.3-a
206+
ifeq (0, $(ISCLANG))
207+
CCOMMON_OPT += -mtune=thunderx3t110
208+
else
209+
CCOMMON_OPT += -mtune=thunderx2t99
210+
endif
201211
ifneq ($(F_COMPILER), NAG)
202212
FCOMMON_OPT += -march=armv8.3-a -mtune=thunderx3t110
203213
endif
@@ -225,9 +235,12 @@ endif
225235
endif
226236
endif
227237

228-
ifeq ($(GCCVERSIONGTEQ9), 1)
238+
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ9) $(ISCLANG)))
229239
ifeq ($(CORE), EMAG8180)
230-
CCOMMON_OPT += -march=armv8-a -mtune=emag
240+
CCOMMON_OPT += -march=armv8-a
241+
ifeq ($(ISCLANG), 0)
242+
CCOMMON_OPT += -mtune=emag
243+
endif
231244
ifneq ($(F_COMPILER), NAG)
232245
FCOMMON_OPT += -march=armv8-a -mtune=emag
233246
endif

0 commit comments

Comments
 (0)