aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Makefile3
-rw-r--r--src/lj_alloc.c2
-rw-r--r--src/lj_arch.h31
-rw-r--r--src/lj_gdbjit.c2
-rw-r--r--src/ps4build.bat4
-rw-r--r--src/vm_x64.dasc2
-rw-r--r--src/vm_x86.dasc2
-rw-r--r--src/xb1build.bat2
8 files changed, 31 insertions, 17 deletions
diff --git a/src/Makefile b/src/Makefile
index a96c1997..667fff56 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -212,7 +212,7 @@ TARGET_CC= $(STATIC_CC)
212TARGET_STCC= $(STATIC_CC) 212TARGET_STCC= $(STATIC_CC)
213TARGET_DYNCC= $(DYNAMIC_CC) 213TARGET_DYNCC= $(DYNAMIC_CC)
214TARGET_LD= $(CROSS)$(CC) 214TARGET_LD= $(CROSS)$(CC)
215TARGET_AR= $(CROSS)ar rcus 215TARGET_AR= $(CROSS)ar rcus 2>/dev/null
216TARGET_STRIP= $(CROSS)strip 216TARGET_STRIP= $(CROSS)strip
217 217
218TARGET_LIBPATH= $(or $(PREFIX),/usr/local)/$(or $(MULTILIB),lib) 218TARGET_LIBPATH= $(or $(PREFIX),/usr/local)/$(or $(MULTILIB),lib)
@@ -312,7 +312,6 @@ ifeq (Windows,$(TARGET_SYS))
312 TARGET_XSHLDFLAGS= -shared -Wl,--out-implib,$(TARGET_DLLDOTANAME) 312 TARGET_XSHLDFLAGS= -shared -Wl,--out-implib,$(TARGET_DLLDOTANAME)
313 TARGET_DYNXLDOPTS= 313 TARGET_DYNXLDOPTS=
314else 314else
315 TARGET_AR+= 2>/dev/null
316ifeq (,$(shell $(TARGET_CC) -o /dev/null -c -x c /dev/null -fno-stack-protector 2>/dev/null || echo 1)) 315ifeq (,$(shell $(TARGET_CC) -o /dev/null -c -x c /dev/null -fno-stack-protector 2>/dev/null || echo 1))
317 TARGET_XCFLAGS+= -fno-stack-protector 316 TARGET_XCFLAGS+= -fno-stack-protector
318endif 317endif
diff --git a/src/lj_alloc.c b/src/lj_alloc.c
index a12ec8b4..70ca1e3b 100644
--- a/src/lj_alloc.c
+++ b/src/lj_alloc.c
@@ -302,7 +302,7 @@ static void *mmap_probe(size_t size)
302 302
303#if LJ_ALLOC_MMAP32 303#if LJ_ALLOC_MMAP32
304 304
305#if defined(__sun__) 305#if LJ_TARGET_SOLARIS
306#define LJ_ALLOC_MMAP32_START ((uintptr_t)0x1000) 306#define LJ_ALLOC_MMAP32_START ((uintptr_t)0x1000)
307#else 307#else
308#define LJ_ALLOC_MMAP32_START ((uintptr_t)0) 308#define LJ_ALLOC_MMAP32_START ((uintptr_t)0)
diff --git a/src/lj_arch.h b/src/lj_arch.h
index d65bc551..3e3581c2 100644
--- a/src/lj_arch.h
+++ b/src/lj_arch.h
@@ -8,6 +8,8 @@
8 8
9#include "lua.h" 9#include "lua.h"
10 10
11/* -- Target definitions -------------------------------------------------- */
12
11/* Target endianess. */ 13/* Target endianess. */
12#define LUAJIT_LE 0 14#define LUAJIT_LE 0
13#define LUAJIT_BE 1 15#define LUAJIT_BE 1
@@ -38,6 +40,14 @@
38#define LUAJIT_OS_BSD 4 40#define LUAJIT_OS_BSD 4
39#define LUAJIT_OS_POSIX 5 41#define LUAJIT_OS_POSIX 5
40 42
43/* Number mode. */
44#define LJ_NUMMODE_SINGLE 0 /* Single-number mode only. */
45#define LJ_NUMMODE_SINGLE_DUAL 1 /* Default to single-number mode. */
46#define LJ_NUMMODE_DUAL 2 /* Dual-number mode only. */
47#define LJ_NUMMODE_DUAL_SINGLE 3 /* Default to dual-number mode. */
48
49/* -- Target detection ---------------------------------------------------- */
50
41/* Select native target if no target defined. */ 51/* Select native target if no target defined. */
42#ifndef LUAJIT_TARGET 52#ifndef LUAJIT_TARGET
43 53
@@ -74,7 +84,10 @@
74 defined(__NetBSD__) || defined(__OpenBSD__) || \ 84 defined(__NetBSD__) || defined(__OpenBSD__) || \
75 defined(__DragonFly__)) && !defined(__ORBIS__) 85 defined(__DragonFly__)) && !defined(__ORBIS__)
76#define LUAJIT_OS LUAJIT_OS_BSD 86#define LUAJIT_OS LUAJIT_OS_BSD
77#elif (defined(__sun__) && defined(__svr4__)) || defined(__HAIKU__) 87#elif (defined(__sun__) && defined(__svr4__))
88#define LJ_TARGET_SOLARIS 1
89#define LUAJIT_OS LUAJIT_OS_POSIX
90#elif defined(__HAIKU__)
78#define LUAJIT_OS LUAJIT_OS_POSIX 91#define LUAJIT_OS LUAJIT_OS_POSIX
79#elif defined(__CYGWIN__) 92#elif defined(__CYGWIN__)
80#define LJ_TARGET_CYGWIN 1 93#define LJ_TARGET_CYGWIN 1
@@ -103,6 +116,7 @@
103#define LJ_TARGET_WINDOWS (LUAJIT_OS == LUAJIT_OS_WINDOWS) 116#define LJ_TARGET_WINDOWS (LUAJIT_OS == LUAJIT_OS_WINDOWS)
104#define LJ_TARGET_LINUX (LUAJIT_OS == LUAJIT_OS_LINUX) 117#define LJ_TARGET_LINUX (LUAJIT_OS == LUAJIT_OS_LINUX)
105#define LJ_TARGET_OSX (LUAJIT_OS == LUAJIT_OS_OSX) 118#define LJ_TARGET_OSX (LUAJIT_OS == LUAJIT_OS_OSX)
119#define LJ_TARGET_BSD (LUAJIT_OS == LUAJIT_OS_BSD)
106#define LJ_TARGET_IOS (LJ_TARGET_OSX && (LUAJIT_TARGET == LUAJIT_ARCH_ARM || LUAJIT_TARGET == LUAJIT_ARCH_ARM64)) 120#define LJ_TARGET_IOS (LJ_TARGET_OSX && (LUAJIT_TARGET == LUAJIT_ARCH_ARM || LUAJIT_TARGET == LUAJIT_ARCH_ARM64))
107#define LJ_TARGET_POSIX (LUAJIT_OS > LUAJIT_OS_WINDOWS) 121#define LJ_TARGET_POSIX (LUAJIT_OS > LUAJIT_OS_WINDOWS)
108#define LJ_TARGET_DLOPEN LJ_TARGET_POSIX 122#define LJ_TARGET_DLOPEN LJ_TARGET_POSIX
@@ -142,10 +156,7 @@
142#endif 156#endif
143#endif 157#endif
144 158
145#define LJ_NUMMODE_SINGLE 0 /* Single-number mode only. */ 159/* -- Arch-specific settings ---------------------------------------------- */
146#define LJ_NUMMODE_SINGLE_DUAL 1 /* Default to single-number mode. */
147#define LJ_NUMMODE_DUAL 2 /* Dual-number mode only. */
148#define LJ_NUMMODE_DUAL_SINGLE 3 /* Default to dual-number mode. */
149 160
150/* Set target architecture properties. */ 161/* Set target architecture properties. */
151#if LUAJIT_TARGET == LUAJIT_ARCH_X86 162#if LUAJIT_TARGET == LUAJIT_ARCH_X86
@@ -407,9 +418,7 @@
407#error "No target architecture defined" 418#error "No target architecture defined"
408#endif 419#endif
409 420
410#ifndef LJ_PAGESIZE 421/* -- Checks for requirements --------------------------------------------- */
411#define LJ_PAGESIZE 4096
412#endif
413 422
414/* Check for minimum required compiler versions. */ 423/* Check for minimum required compiler versions. */
415#if defined(__GNUC__) 424#if defined(__GNUC__)
@@ -485,6 +494,8 @@
485#endif 494#endif
486#endif 495#endif
487 496
497/* -- Derived defines ----------------------------------------------------- */
498
488/* Enable or disable the dual-number mode for the VM. */ 499/* Enable or disable the dual-number mode for the VM. */
489#if (LJ_ARCH_NUMMODE == LJ_NUMMODE_SINGLE && LUAJIT_NUMMODE == 2) || \ 500#if (LJ_ARCH_NUMMODE == LJ_NUMMODE_SINGLE && LUAJIT_NUMMODE == 2) || \
490 (LJ_ARCH_NUMMODE == LJ_NUMMODE_DUAL && LUAJIT_NUMMODE == 1) 501 (LJ_ARCH_NUMMODE == LJ_NUMMODE_DUAL && LUAJIT_NUMMODE == 1)
@@ -582,6 +593,10 @@
582#define LJ_TARGET_UNALIGNED 0 593#define LJ_TARGET_UNALIGNED 0
583#endif 594#endif
584 595
596#ifndef LJ_PAGESIZE
597#define LJ_PAGESIZE 4096
598#endif
599
585/* Various workarounds for embedded operating systems or weak C runtimes. */ 600/* Various workarounds for embedded operating systems or weak C runtimes. */
586#if defined(__ANDROID__) || defined(__symbian__) || LJ_TARGET_XBOX360 || LJ_TARGET_WINDOWS 601#if defined(__ANDROID__) || defined(__symbian__) || LJ_TARGET_XBOX360 || LJ_TARGET_WINDOWS
587#define LUAJIT_NO_LOG2 602#define LUAJIT_NO_LOG2
diff --git a/src/lj_gdbjit.c b/src/lj_gdbjit.c
index 69585e51..5b9fe0ad 100644
--- a/src/lj_gdbjit.c
+++ b/src/lj_gdbjit.c
@@ -363,7 +363,7 @@ static const ELFheader elfhdr_template = {
363 .eosabi = 12, 363 .eosabi = 12,
364#elif defined(__DragonFly__) 364#elif defined(__DragonFly__)
365 .eosabi = 0, 365 .eosabi = 0,
366#elif (defined(__sun__) && defined(__svr4__)) 366#elif LJ_TARGET_SOLARIS
367 .eosabi = 6, 367 .eosabi = 6,
368#else 368#else
369 .eosabi = 0, 369 .eosabi = 0,
diff --git a/src/ps4build.bat b/src/ps4build.bat
index e4a7defe..e83c674a 100644
--- a/src/ps4build.bat
+++ b/src/ps4build.bat
@@ -27,12 +27,12 @@
27@set DASMDIR=..\dynasm 27@set DASMDIR=..\dynasm
28@set DASM=%DASMDIR%\dynasm.lua 28@set DASM=%DASMDIR%\dynasm.lua
29@set ALL_LIB=lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c 29@set ALL_LIB=lib_base.c lib_math.c lib_bit.c lib_string.c lib_table.c lib_io.c lib_os.c lib_package.c lib_debug.c lib_jit.c lib_ffi.c
30@set GC64=-DLUAJIT_ENABLE_GC64 30@set GC64=
31@set DASC=vm_x64.dasc 31@set DASC=vm_x64.dasc
32 32
33@if "%1" neq "gc32" goto :NOGC32 33@if "%1" neq "gc32" goto :NOGC32
34@shift 34@shift
35@set GC64= 35@set GC64=-DLUAJIT_DISABLE_GC64
36@set DASC=vm_x86.dasc 36@set DASC=vm_x86.dasc
37:NOGC32 37:NOGC32
38 38
diff --git a/src/vm_x64.dasc b/src/vm_x64.dasc
index c714f4c7..77a579d5 100644
--- a/src/vm_x64.dasc
+++ b/src/vm_x64.dasc
@@ -4734,7 +4734,7 @@ static void emit_asm_debug(BuildCtx *ctx)
4734 ".LEFDE1:\n\n", (int)ctx->codesz - fcofs); 4734 ".LEFDE1:\n\n", (int)ctx->codesz - fcofs);
4735#endif 4735#endif
4736#if !LJ_NO_UNWIND 4736#if !LJ_NO_UNWIND
4737#if (defined(__sun__) && defined(__svr4__)) 4737#if LJ_TARGET_SOLARIS
4738 fprintf(ctx->fp, "\t.section .eh_frame,\"a\",@unwind\n"); 4738 fprintf(ctx->fp, "\t.section .eh_frame,\"a\",@unwind\n");
4739#else 4739#else
4740 fprintf(ctx->fp, "\t.section .eh_frame,\"a\",@progbits\n"); 4740 fprintf(ctx->fp, "\t.section .eh_frame,\"a\",@progbits\n");
diff --git a/src/vm_x86.dasc b/src/vm_x86.dasc
index c3999e7c..57c8e4fc 100644
--- a/src/vm_x86.dasc
+++ b/src/vm_x86.dasc
@@ -5548,7 +5548,7 @@ static void emit_asm_debug(BuildCtx *ctx)
5548 ".LEFDE1:\n\n", (int)ctx->codesz - fcofs); 5548 ".LEFDE1:\n\n", (int)ctx->codesz - fcofs);
5549#endif 5549#endif
5550#if !LJ_NO_UNWIND 5550#if !LJ_NO_UNWIND
5551#if (defined(__sun__) && defined(__svr4__)) 5551#if LJ_TARGET_SOLARIS
5552#if LJ_64 5552#if LJ_64
5553 fprintf(ctx->fp, "\t.section .eh_frame,\"a\",@unwind\n"); 5553 fprintf(ctx->fp, "\t.section .eh_frame,\"a\",@unwind\n");
5554#else 5554#else
diff --git a/src/xb1build.bat b/src/xb1build.bat
index 847e84a5..12c73dd6 100644
--- a/src/xb1build.bat
+++ b/src/xb1build.bat
@@ -9,7 +9,7 @@
9 9
10@setlocal 10@setlocal
11@echo ---- Host compiler ---- 11@echo ---- Host compiler ----
12@set LJCOMPILE=cl /nologo /c /MD /O2 /W3 /D_CRT_SECURE_NO_DEPRECATE /DLUAJIT_ENABLE_GC64 12@set LJCOMPILE=cl /nologo /c /MD /O2 /W3 /D_CRT_SECURE_NO_DEPRECATE
13@set LJLINK=link /nologo 13@set LJLINK=link /nologo
14@set LJMT=mt /nologo 14@set LJMT=mt /nologo
15@set DASMDIR=..\dynasm 15@set DASMDIR=..\dynasm