aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pall <mike>2023-09-09 23:01:26 +0200
committerMike Pall <mike>2023-09-09 23:01:26 +0200
commit4fe200229289c43868442ba344a71f4ff847bfe1 (patch)
treec051ae7540674a5aa1cc3b4cca9f445fc1838a7f
parent44da356e97a159f5962f32a526525d14bcd13179 (diff)
downloadluajit-4fe200229289c43868442ba344a71f4ff847bfe1.tar.gz
luajit-4fe200229289c43868442ba344a71f4ff847bfe1.tar.bz2
luajit-4fe200229289c43868442ba344a71f4ff847bfe1.zip
Improve architecture detection error messages.
-rw-r--r--src/Makefile2
-rw-r--r--src/lj_arch.h22
2 files changed, 16 insertions, 8 deletions
diff --git a/src/Makefile b/src/Makefile
index dad90138..a83b8629 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -232,7 +232,7 @@ TARGET_ALDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) $(TARGET_FLAGS) $(TARGET_LDFLAG
232TARGET_ASHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) $(TARGET_FLAGS) $(TARGET_SHLDFLAGS) 232TARGET_ASHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) $(TARGET_FLAGS) $(TARGET_SHLDFLAGS)
233TARGET_ALIBS= $(TARGET_XLIBS) $(LIBS) $(TARGET_LIBS) 233TARGET_ALIBS= $(TARGET_XLIBS) $(LIBS) $(TARGET_LIBS)
234 234
235TARGET_TESTARCH=$(shell $(TARGET_CC) $(TARGET_TCFLAGS) -E lj_arch.h -dM) 235TARGET_TESTARCH:=$(shell $(TARGET_CC) $(TARGET_TCFLAGS) -E lj_arch.h -dM)
236ifneq (,$(findstring LJ_TARGET_X64 ,$(TARGET_TESTARCH))) 236ifneq (,$(findstring LJ_TARGET_X64 ,$(TARGET_TESTARCH)))
237 TARGET_LJARCH= x64 237 TARGET_LJARCH= x64
238else 238else
diff --git a/src/lj_arch.h b/src/lj_arch.h
index da53b162..e77865d9 100644
--- a/src/lj_arch.h
+++ b/src/lj_arch.h
@@ -52,7 +52,7 @@
52#elif defined(__mips__) || defined(__mips) || defined(__MIPS__) || defined(__MIPS) 52#elif defined(__mips__) || defined(__mips) || defined(__MIPS__) || defined(__MIPS)
53#define LUAJIT_TARGET LUAJIT_ARCH_MIPS 53#define LUAJIT_TARGET LUAJIT_ARCH_MIPS
54#else 54#else
55#error "No support for this architecture (yet)" 55#error "Architecture not supported (in this version), see: https://luajit.org/status.html#architectures"
56#endif 56#endif
57 57
58#endif 58#endif
@@ -188,13 +188,13 @@
188#define LJ_TARGET_UNIFYROT 2 /* Want only IR_BROR. */ 188#define LJ_TARGET_UNIFYROT 2 /* Want only IR_BROR. */
189#define LJ_ARCH_NUMMODE LJ_NUMMODE_DUAL 189#define LJ_ARCH_NUMMODE LJ_NUMMODE_DUAL
190 190
191#if __ARM_ARCH____ARM_ARCH_8__ || __ARM_ARCH_8A__ 191#if __ARM_ARCH >= 8 || __ARM_ARCH_8__ || __ARM_ARCH_8A__
192#define LJ_ARCH_VERSION 80 192#define LJ_ARCH_VERSION 80
193#elif __ARM_ARCH_7__ || __ARM_ARCH_7A__ || __ARM_ARCH_7R__ || __ARM_ARCH_7S__ || __ARM_ARCH_7VE__ 193#elif __ARM_ARCH == 7 || __ARM_ARCH_7__ || __ARM_ARCH_7A__ || __ARM_ARCH_7R__ || __ARM_ARCH_7S__ || __ARM_ARCH_7VE__
194#define LJ_ARCH_VERSION 70 194#define LJ_ARCH_VERSION 70
195#elif __ARM_ARCH_6T2__ 195#elif __ARM_ARCH_6T2__
196#define LJ_ARCH_VERSION 61 196#define LJ_ARCH_VERSION 61
197#elif __ARM_ARCH_6__ || __ARM_ARCH_6J__ || __ARM_ARCH_6K__ || __ARM_ARCH_6Z__ || __ARM_ARCH_6ZK__ 197#elif __ARM_ARCH == 6 || __ARM_ARCH_6__ || __ARM_ARCH_6J__ || __ARM_ARCH_6K__ || __ARM_ARCH_6Z__ || __ARM_ARCH_6ZK__
198#define LJ_ARCH_VERSION 60 198#define LJ_ARCH_VERSION 60
199#else 199#else
200#define LJ_ARCH_VERSION 50 200#define LJ_ARCH_VERSION 50
@@ -328,29 +328,37 @@
328#elif LJ_TARGET_ARM 328#elif LJ_TARGET_ARM
329#if defined(__ARMEB__) 329#if defined(__ARMEB__)
330#error "No support for big-endian ARM" 330#error "No support for big-endian ARM"
331#undef LJ_TARGET_ARM
331#endif 332#endif
332#if __ARM_ARCH_6M__ || __ARM_ARCH_7M__ || __ARM_ARCH_7EM__ 333#if __ARM_ARCH_6M__ || __ARM_ARCH_7M__ || __ARM_ARCH_7EM__
333#error "No support for Cortex-M CPUs" 334#error "No support for Cortex-M CPUs"
335#undef LJ_TARGET_ARM
334#endif 336#endif
335#if !(__ARM_EABI__ || LJ_TARGET_IOS) 337#if !(__ARM_EABI__ || LJ_TARGET_IOS)
336#error "Only ARM EABI or iOS 3.0+ ABI is supported" 338#error "Only ARM EABI or iOS 3.0+ ABI is supported"
339#undef LJ_TARGET_ARM
337#endif 340#endif
338#elif LJ_TARGET_PPC || LJ_TARGET_PPCSPE 341#elif LJ_TARGET_PPC || LJ_TARGET_PPCSPE
339#if defined(_SOFT_FLOAT) || defined(_SOFT_DOUBLE) 342#if defined(_SOFT_FLOAT) || defined(_SOFT_DOUBLE)
340#error "No support for PowerPC CPUs without double-precision FPU" 343#error "No support for PowerPC CPUs without double-precision FPU, use LuaJIT v2.1"
344#undef LJ_TARGET_PPC
341#endif 345#endif
342#if defined(_LITTLE_ENDIAN) && (!defined(_BYTE_ORDER) || (_BYTE_ORDER == _LITTLE_ENDIAN)) 346#if defined(_LITTLE_ENDIAN) && (!defined(_BYTE_ORDER) || (_BYTE_ORDER == _LITTLE_ENDIAN))
343#error "No support for little-endian PowerPC" 347#error "No support for little-endian PowerPC"
348#undef LJ_TARGET_PPC
344#endif 349#endif
345#if defined(_LP64) 350#if defined(_LP64)
346#error "No support for PowerPC 64 bit mode" 351#error "No support for PowerPC 64 bit mode"
352#undef LJ_TARGET_PPC
347#endif 353#endif
348#elif LJ_TARGET_MIPS 354#elif LJ_TARGET_MIPS
349#if defined(__mips_soft_float) 355#if defined(__mips_soft_float)
350#error "No support for MIPS CPUs without FPU" 356#error "No support for MIPS CPUs without FPU, use LuaJIT v2.1+"
357#undef LJ_TARGET_MIPS
351#endif 358#endif
352#if defined(_LP64) 359#if defined(_LP64)
353#error "No support for MIPS64" 360#error "No support for MIPS64, use LuaJIT v2.1+"
361#undef LJ_TARGET_MIPS
354#endif 362#endif
355#endif 363#endif
356#endif 364#endif