diff options
author | Mike Pall <mike> | 2012-07-29 12:22:18 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2012-07-29 12:22:18 +0200 |
commit | e84c2a9e9ae5ed667e554471015a5df3bfd8634a (patch) | |
tree | 74dc22fd48c4bdcf9b25062ddb0178060a0f7652 | |
parent | b98c1582c9129e7db59e4edaf7236671b36b523c (diff) | |
download | luajit-e84c2a9e9ae5ed667e554471015a5df3bfd8634a.tar.gz luajit-e84c2a9e9ae5ed667e554471015a5df3bfd8634a.tar.bz2 luajit-e84c2a9e9ae5ed667e554471015a5df3bfd8634a.zip |
Handle cross-compiles with FPU/no-FPU or hard-fp/soft-fp ABI mismatch.
-rw-r--r-- | src/Makefile | 8 | ||||
-rw-r--r-- | src/lj_arch.h | 14 |
2 files changed, 16 insertions, 6 deletions
diff --git a/src/Makefile b/src/Makefile index 531f8bab..748a4ed7 100644 --- a/src/Makefile +++ b/src/Makefile | |||
@@ -379,9 +379,15 @@ ifneq (,$(findstring LJ_DUALNUM 1,$(TARGET_TESTARCH))) | |||
379 | endif | 379 | endif |
380 | ifneq (,$(findstring LJ_ARCH_HASFPU 1,$(TARGET_TESTARCH))) | 380 | ifneq (,$(findstring LJ_ARCH_HASFPU 1,$(TARGET_TESTARCH))) |
381 | DASM_AFLAGS+= -D FPU | 381 | DASM_AFLAGS+= -D FPU |
382 | TARGET_ARCH+= -DLJ_ARCH_HASFPU=1 | ||
383 | else | ||
384 | TARGET_ARCH+= -DLJ_ARCH_HASFPU=0 | ||
382 | endif | 385 | endif |
383 | ifeq (,$(findstring LJ_ABI_SOFTFP 1,$(TARGET_TESTARCH))) | 386 | ifeq (,$(findstring LJ_ABI_SOFTFP 1,$(TARGET_TESTARCH))) |
384 | DASM_AFLAGS+= -D HF | 387 | DASM_AFLAGS+= -D HFABI |
388 | TARGET_ARCH+= -DLJ_ABI_SOFTFP=0 | ||
389 | else | ||
390 | TARGET_ARCH+= -DLJ_ABI_SOFTFP=1 | ||
385 | endif | 391 | endif |
386 | DASM_AFLAGS+= -D VER=$(subst LJ_ARCH_VERSION_,,$(filter LJ_ARCH_VERSION_%,$(subst LJ_ARCH_VERSION ,LJ_ARCH_VERSION_,$(TARGET_TESTARCH)))) | 392 | DASM_AFLAGS+= -D VER=$(subst LJ_ARCH_VERSION_,,$(filter LJ_ARCH_VERSION_%,$(subst LJ_ARCH_VERSION ,LJ_ARCH_VERSION_,$(TARGET_TESTARCH)))) |
387 | ifeq (Windows,$(TARGET_SYS)) | 393 | ifeq (Windows,$(TARGET_SYS)) |
diff --git a/src/lj_arch.h b/src/lj_arch.h index a3d51542..8850f8a9 100644 --- a/src/lj_arch.h +++ b/src/lj_arch.h | |||
@@ -121,7 +121,6 @@ | |||
121 | #define LJ_ARCH_NAME "x86" | 121 | #define LJ_ARCH_NAME "x86" |
122 | #define LJ_ARCH_BITS 32 | 122 | #define LJ_ARCH_BITS 32 |
123 | #define LJ_ARCH_ENDIAN LUAJIT_LE | 123 | #define LJ_ARCH_ENDIAN LUAJIT_LE |
124 | #define LJ_ARCH_HASFPU 1 | ||
125 | #if LJ_TARGET_WINDOWS || __CYGWIN__ | 124 | #if LJ_TARGET_WINDOWS || __CYGWIN__ |
126 | #define LJ_ABI_WIN 1 | 125 | #define LJ_ABI_WIN 1 |
127 | #else | 126 | #else |
@@ -139,7 +138,6 @@ | |||
139 | #define LJ_ARCH_NAME "x64" | 138 | #define LJ_ARCH_NAME "x64" |
140 | #define LJ_ARCH_BITS 64 | 139 | #define LJ_ARCH_BITS 64 |
141 | #define LJ_ARCH_ENDIAN LUAJIT_LE | 140 | #define LJ_ARCH_ENDIAN LUAJIT_LE |
142 | #define LJ_ARCH_HASFPU 1 | ||
143 | #define LJ_ABI_WIN LJ_TARGET_WINDOWS | 141 | #define LJ_ABI_WIN LJ_TARGET_WINDOWS |
144 | #define LJ_TARGET_X64 1 | 142 | #define LJ_TARGET_X64 1 |
145 | #define LJ_TARGET_X86ORX64 1 | 143 | #define LJ_TARGET_X86ORX64 1 |
@@ -154,8 +152,12 @@ | |||
154 | #define LJ_ARCH_NAME "arm" | 152 | #define LJ_ARCH_NAME "arm" |
155 | #define LJ_ARCH_BITS 32 | 153 | #define LJ_ARCH_BITS 32 |
156 | #define LJ_ARCH_ENDIAN LUAJIT_LE | 154 | #define LJ_ARCH_ENDIAN LUAJIT_LE |
155 | #ifndef LJ_ARCH_HASFPU | ||
157 | #define LJ_ARCH_HASFPU 0 | 156 | #define LJ_ARCH_HASFPU 0 |
157 | #endif | ||
158 | #ifndef LJ_ABI_SOFTFP | ||
158 | #define LJ_ABI_SOFTFP 1 | 159 | #define LJ_ABI_SOFTFP 1 |
160 | #endif | ||
159 | #define LJ_ABI_EABI 1 | 161 | #define LJ_ABI_EABI 1 |
160 | #define LJ_TARGET_ARM 1 | 162 | #define LJ_TARGET_ARM 1 |
161 | #define LJ_TARGET_EHRETREG 0 | 163 | #define LJ_TARGET_EHRETREG 0 |
@@ -184,7 +186,6 @@ | |||
184 | #define LJ_ARCH_BITS 32 | 186 | #define LJ_ARCH_BITS 32 |
185 | #endif | 187 | #endif |
186 | #define LJ_ARCH_ENDIAN LUAJIT_BE | 188 | #define LJ_ARCH_ENDIAN LUAJIT_BE |
187 | #define LJ_ARCH_HASFPU 1 | ||
188 | #define LJ_TARGET_PPC 1 | 189 | #define LJ_TARGET_PPC 1 |
189 | #define LJ_TARGET_EHRETREG 3 | 190 | #define LJ_TARGET_EHRETREG 3 |
190 | #define LJ_TARGET_JUMPRANGE 25 /* +-2^25 = +-32MB */ | 191 | #define LJ_TARGET_JUMPRANGE 25 /* +-2^25 = +-32MB */ |
@@ -228,8 +229,9 @@ | |||
228 | #define LJ_ARCH_NAME "ppcspe" | 229 | #define LJ_ARCH_NAME "ppcspe" |
229 | #define LJ_ARCH_BITS 32 | 230 | #define LJ_ARCH_BITS 32 |
230 | #define LJ_ARCH_ENDIAN LUAJIT_BE | 231 | #define LJ_ARCH_ENDIAN LUAJIT_BE |
231 | #define LJ_ARCH_HASFPU 1 | 232 | #ifndef LJ_ABI_SOFTFP |
232 | #define LJ_ABI_SOFTFP 1 | 233 | #define LJ_ABI_SOFTFP 1 |
234 | #endif | ||
233 | #define LJ_ABI_EABI 1 | 235 | #define LJ_ABI_EABI 1 |
234 | #define LJ_TARGET_PPCSPE 1 | 236 | #define LJ_TARGET_PPCSPE 1 |
235 | #define LJ_TARGET_EHRETREG 3 | 237 | #define LJ_TARGET_EHRETREG 3 |
@@ -251,7 +253,6 @@ | |||
251 | #define LJ_ARCH_ENDIAN LUAJIT_BE | 253 | #define LJ_ARCH_ENDIAN LUAJIT_BE |
252 | #endif | 254 | #endif |
253 | #define LJ_ARCH_BITS 32 | 255 | #define LJ_ARCH_BITS 32 |
254 | #define LJ_ARCH_HASFPU 1 | ||
255 | #define LJ_TARGET_MIPS 1 | 256 | #define LJ_TARGET_MIPS 1 |
256 | #define LJ_TARGET_EHRETREG 4 | 257 | #define LJ_TARGET_EHRETREG 4 |
257 | #define LJ_TARGET_JUMPRANGE 27 /* 2*2^27 = 256MB-aligned region */ | 258 | #define LJ_TARGET_JUMPRANGE 27 /* 2*2^27 = 256MB-aligned region */ |
@@ -358,6 +359,9 @@ | |||
358 | #define LJ_HASFFI 1 | 359 | #define LJ_HASFFI 1 |
359 | #endif | 360 | #endif |
360 | 361 | ||
362 | #ifndef LJ_ARCH_HASFPU | ||
363 | #define LJ_ARCH_HASFPU 1 | ||
364 | #endif | ||
361 | #define LJ_SOFTFP (!LJ_ARCH_HASFPU) | 365 | #define LJ_SOFTFP (!LJ_ARCH_HASFPU) |
362 | 366 | ||
363 | #if LJ_ARCH_ENDIAN == LUAJIT_BE | 367 | #if LJ_ARCH_ENDIAN == LUAJIT_BE |