]> git.ipfire.org Git - thirdparty/LuaJIT.git/commitdiff
Handle cross-compiles with FPU/no-FPU or hard-fp/soft-fp ABI mismatch.
authorMike Pall <mike>
Sun, 29 Jul 2012 10:22:18 +0000 (12:22 +0200)
committerMike Pall <mike>
Sun, 29 Jul 2012 10:22:18 +0000 (12:22 +0200)
src/Makefile
src/lj_arch.h

index 531f8babb354e77a847426621d13a2d04b136c67..748a4ed73348c727e568de347a2f09ecb9fd4473 100644 (file)
@@ -379,9 +379,15 @@ ifneq (,$(findstring LJ_DUALNUM 1,$(TARGET_TESTARCH)))
 endif
 ifneq (,$(findstring LJ_ARCH_HASFPU 1,$(TARGET_TESTARCH)))
   DASM_AFLAGS+= -D FPU
+  TARGET_ARCH+= -DLJ_ARCH_HASFPU=1
+else
+  TARGET_ARCH+= -DLJ_ARCH_HASFPU=0
 endif
 ifeq (,$(findstring LJ_ABI_SOFTFP 1,$(TARGET_TESTARCH)))
-  DASM_AFLAGS+= -D HF
+  DASM_AFLAGS+= -D HFABI
+  TARGET_ARCH+= -DLJ_ABI_SOFTFP=0
+else
+  TARGET_ARCH+= -DLJ_ABI_SOFTFP=1
 endif
 DASM_AFLAGS+= -D VER=$(subst LJ_ARCH_VERSION_,,$(filter LJ_ARCH_VERSION_%,$(subst LJ_ARCH_VERSION ,LJ_ARCH_VERSION_,$(TARGET_TESTARCH))))
 ifeq (Windows,$(TARGET_SYS))
index a3d515428d7b31399ab35572c718945e33ad619a..8850f8a96d035291df89048adb9535626f378db8 100644 (file)
 #define LJ_ARCH_NAME           "x86"
 #define LJ_ARCH_BITS           32
 #define LJ_ARCH_ENDIAN         LUAJIT_LE
-#define LJ_ARCH_HASFPU         1
 #if LJ_TARGET_WINDOWS || __CYGWIN__
 #define LJ_ABI_WIN             1
 #else
 #define LJ_ARCH_NAME           "x64"
 #define LJ_ARCH_BITS           64
 #define LJ_ARCH_ENDIAN         LUAJIT_LE
-#define LJ_ARCH_HASFPU         1
 #define LJ_ABI_WIN             LJ_TARGET_WINDOWS
 #define LJ_TARGET_X64          1
 #define LJ_TARGET_X86ORX64     1
 #define LJ_ARCH_NAME           "arm"
 #define LJ_ARCH_BITS           32
 #define LJ_ARCH_ENDIAN         LUAJIT_LE
+#ifndef LJ_ARCH_HASFPU
 #define LJ_ARCH_HASFPU         0
+#endif
+#ifndef LJ_ABI_SOFTFP
 #define LJ_ABI_SOFTFP          1
+#endif
 #define LJ_ABI_EABI            1
 #define LJ_TARGET_ARM          1
 #define LJ_TARGET_EHRETREG     0
 #define LJ_ARCH_BITS           32
 #endif
 #define LJ_ARCH_ENDIAN         LUAJIT_BE
-#define LJ_ARCH_HASFPU         1
 #define LJ_TARGET_PPC          1
 #define LJ_TARGET_EHRETREG     3
 #define LJ_TARGET_JUMPRANGE    25      /* +-2^25 = +-32MB */
 #define LJ_ARCH_NAME           "ppcspe"
 #define LJ_ARCH_BITS           32
 #define LJ_ARCH_ENDIAN         LUAJIT_BE
-#define LJ_ARCH_HASFPU         1
+#ifndef LJ_ABI_SOFTFP
 #define LJ_ABI_SOFTFP          1
+#endif
 #define LJ_ABI_EABI            1
 #define LJ_TARGET_PPCSPE       1
 #define LJ_TARGET_EHRETREG     3
 #define LJ_ARCH_ENDIAN         LUAJIT_BE
 #endif
 #define LJ_ARCH_BITS           32
-#define LJ_ARCH_HASFPU         1
 #define LJ_TARGET_MIPS         1
 #define LJ_TARGET_EHRETREG     4
 #define LJ_TARGET_JUMPRANGE    27      /* 2*2^27 = 256MB-aligned region */
 #define LJ_HASFFI              1
 #endif
 
+#ifndef LJ_ARCH_HASFPU
+#define LJ_ARCH_HASFPU         1
+#endif
 #define LJ_SOFTFP              (!LJ_ARCH_HASFPU)
 
 #if LJ_ARCH_ENDIAN == LUAJIT_BE