From 56a88b23fd9b70d6212210c214663825a4cb1309 Mon Sep 17 00:00:00 2001 From: Luke Gorrie Date: Sun, 14 Oct 2018 16:28:18 +0000 Subject: [PATCH] Prepare for RaptorJIT 1.0 with installation fixes Fix installation paths. Remove unnecessary installed files. Add test for (and fix) bytecode file version compatibility. --- Makefile | 71 +++++++++++++++++---------------------------------- default.nix | 11 +++++++- raptorjit.nix | 7 +++-- src/Makefile | 2 +- src/luaconf.h | 2 +- src/luajit.h | 6 ++--- 6 files changed, 43 insertions(+), 56 deletions(-) diff --git a/Makefile b/Makefile index eac48183e2..277bfa3a90 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ MAJVER= 1 MINVER= 0 RELVER= 0 -PREREL= -alpha1 +PREREL= VERSION= $(MAJVER).$(MINVER).$(RELVER)$(PREREL) ABIVER= 5.1 @@ -33,27 +33,20 @@ DPREFIX= $(DESTDIR)$(PREFIX) INSTALL_BIN= $(DPREFIX)/bin INSTALL_LIB= $(DPREFIX)/$(MULTILIB) INSTALL_SHARE= $(DPREFIX)/share -INSTALL_INC= $(DPREFIX)/include/luajit-$(MAJVER).$(MINVER) +INSTALL_INC= $(DPREFIX)/include/raptorjit-$(MAJVER).$(MINVER) -INSTALL_LJLIBD= $(INSTALL_SHARE)/luajit-$(VERSION) +INSTALL_LJLIBD= $(INSTALL_SHARE)/raptorjit-$(VERSION) INSTALL_JITLIB= $(INSTALL_LJLIBD)/jit -INSTALL_LMODD= $(INSTALL_SHARE)/lua -INSTALL_LMOD= $(INSTALL_LMODD)/$(ABIVER) -INSTALL_CMODD= $(INSTALL_LIB)/lua -INSTALL_CMOD= $(INSTALL_CMODD)/$(ABIVER) -INSTALL_MAN= $(INSTALL_SHARE)/man/man1 -INSTALL_PKGCONFIG= $(INSTALL_LIB)/pkgconfig - -INSTALL_TNAME= luajit-$(VERSION) -INSTALL_TSYMNAME= luajit -INSTALL_ANAME= libluajit-$(ABIVER).a -INSTALL_SOSHORT1= libluajit-$(ABIVER).so -INSTALL_SOSHORT2= libluajit-$(ABIVER).so.$(MAJVER) + +INSTALL_TNAME= raptorjit-$(VERSION) +INSTALL_TSYMNAME= raptorjit +INSTALL_ANAME= libraptorjit-$(ABIVER).a +INSTALL_SOSHORT1= libraptorjit-$(ABIVER).so +INSTALL_SOSHORT2= libraptorjit-$(ABIVER).so.$(MAJVER) INSTALL_SONAME= $(INSTALL_SOSHORT2).$(MINVER).$(RELVER) -INSTALL_DYLIBSHORT1= libluajit-$(ABIVER).dylib -INSTALL_DYLIBSHORT2= libluajit-$(ABIVER).$(MAJVER).dylib -INSTALL_DYLIBNAME= libluajit-$(ABIVER).$(MAJVER).$(MINVER).$(RELVER).dylib -INSTALL_PCNAME= luajit.pc +INSTALL_DYLIBSHORT1= libraptorjit-$(ABIVER).dylib +INSTALL_DYLIBSHORT2= libraptorjit-$(ABIVER).$(MAJVER).dylib +INSTALL_DYLIBNAME= libraptorjit-$(ABIVER).$(MAJVER).$(MINVER).$(RELVER).dylib INSTALL_STATIC= $(INSTALL_LIB)/$(INSTALL_ANAME) INSTALL_DYN= $(INSTALL_LIB)/$(INSTALL_SONAME) @@ -61,12 +54,10 @@ INSTALL_SHORT1= $(INSTALL_LIB)/$(INSTALL_SOSHORT1) INSTALL_SHORT2= $(INSTALL_LIB)/$(INSTALL_SOSHORT2) INSTALL_T= $(INSTALL_BIN)/$(INSTALL_TNAME) INSTALL_TSYM= $(INSTALL_BIN)/$(INSTALL_TSYMNAME) -INSTALL_PC= $(INSTALL_PKGCONFIG)/$(INSTALL_PCNAME) -INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) $(INSTALL_MAN) \ - $(INSTALL_PKGCONFIG) $(INSTALL_JITLIB) $(INSTALL_LMOD) $(INSTALL_CMOD) -UNINSTALL_DIRS= $(INSTALL_JITLIB) $(INSTALL_LJLIBD) $(INSTALL_INC) \ - $(INSTALL_LMOD) $(INSTALL_LMODD) $(INSTALL_CMOD) $(INSTALL_CMODD) +INSTALL_DIRS= $(INSTALL_BIN) $(INSTALL_LIB) $(INSTALL_INC) \ + $(INSTALL_JITLIB) +UNINSTALL_DIRS= $(INSTALL_JITLIB) $(INSTALL_LJLIBD) $(INSTALL_INC) RM= rm -f MKDIR= mkdir -p @@ -76,19 +67,12 @@ INSTALL_X= install -m 0755 INSTALL_F= install -m 0644 UNINSTALL= $(RM) LDCONFIG= ldconfig -n -SED_PC= sed -e "s|^prefix=.*|prefix=$(PREFIX)|" \ - -e "s|^multilib=.*|multilib=$(MULTILIB)|" - -FILE_T= luajit -FILE_A= libluajit.a -FILE_SO= libluajit.so -FILE_MAN= luajit.1 -FILE_PC= luajit.pc + +FILE_T= raptorjit +FILE_A= libraptorjit.a +FILE_SO= libraptorjit.so FILES_INC= lua.h lualib.h lauxlib.h luaconf.h lua.hpp luajit.h -FILES_JITLIB= bc.lua bcsave.lua dump.lua p.lua v.lua zone.lua \ - dis_x86.lua dis_x64.lua dis_arm.lua dis_arm64.lua \ - dis_ppc.lua dis_mips.lua dis_mipsel.lua dis_mips64.lua \ - dis_mips64el.lua vmdef.lua +FILES_JITLIB= bc.lua bcsave.lua vmdef.lua ifeq (,$(findstring Windows,$(OS))) HOST_SYS:= $(shell uname -s) @@ -106,7 +90,7 @@ endif ############################################################################## -INSTALL_DEP= src/luajit +INSTALL_DEP= src/raptorjit default all $(INSTALL_DEP): @echo "==== Building RaptorJIT $(VERSION) ====" @@ -127,24 +111,15 @@ install: $(INSTALL_DEP) $(LDCONFIG) $(INSTALL_LIB) && \ $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT1) && \ $(SYMLINK) $(INSTALL_SONAME) $(INSTALL_SHORT2) || : - cd etc && $(INSTALL_F) $(FILE_MAN) $(INSTALL_MAN) - cd etc && $(SED_PC) $(FILE_PC) > $(FILE_PC).tmp && \ - $(INSTALL_F) $(FILE_PC).tmp $(INSTALL_PC) && \ - $(RM) $(FILE_PC).tmp cd src && $(INSTALL_F) $(FILES_INC) $(INSTALL_INC) cd src/jit && $(INSTALL_F) $(FILES_JITLIB) $(INSTALL_JITLIB) - @echo "==== Successfully installed RaptorJIT $(VERSION) to $(PREFIX) ====" - @echo "" - @echo "Note: the development releases deliberately do NOT install a symlink for luajit" - @echo "You can do this now by running this command (with sudo):" - @echo "" - @echo " $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM)" + $(SYMLINK) $(INSTALL_TNAME) $(INSTALL_TSYM) @echo "" uninstall: @echo "==== Uninstalling RaptorJIT $(VERSION) from $(PREFIX) ====" - $(UNINSTALL) $(INSTALL_T) $(INSTALL_STATIC) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2) $(INSTALL_MAN)/$(FILE_MAN) $(INSTALL_PC) + $(UNINSTALL) $(INSTALL_T) $(INSTALL_STATIC) $(INSTALL_DYN) $(INSTALL_SHORT1) $(INSTALL_SHORT2) for file in $(FILES_JITLIB); do \ $(UNINSTALL) $(INSTALL_JITLIB)/$$file; \ done diff --git a/default.nix b/default.nix index ccee77c067..d7e52f1290 100644 --- a/default.nix +++ b/default.nix @@ -23,13 +23,22 @@ let old: { NIX_CFLAGS_COMPILE = "-Werror"; }); in -# Build RaptorJIT and run mulitple test suites. +# Build RaptorJIT and run multiple test suites. { raptorjit = raptorjit; test-O3 = test "O3" "-O3"; test-O2 = test "O2" "-O2"; test-O1 = test "O1" "-O1"; test-nojit = test "nojit" "-joff"; + # Test that generated bytecode is compatible + test-bytecode-compat = pkgs.runCommand "test-bytecode-compat" + { buildInputs = [ raptorjit ]; } + '' + echo "print('ok')" > test.lua + raptorjit -bg test.lua test.raw + raptorjit test.raw | grep ok + touch $out + ''; } // (if check then { inherit nowarnings check-generated-code; } else {}) diff --git a/raptorjit.nix b/raptorjit.nix index 2eecd685fd..e48362a5a7 100644 --- a/raptorjit.nix +++ b/raptorjit.nix @@ -11,9 +11,12 @@ mkDerivation rec { src = source; buildInputs = [ luajit ]; # LuaJIT to bootstrap DynASM dontStrip = true; + patchPhase = '' + substituteInPlace Makefile --replace "/usr/local" "$out" + ''; + configurePhase = false; installPhase = '' - install -D src/raptorjit $out/bin/raptorjit - install -D src/lj_dwarf.dwo $out/lib/raptorjit.dwo + make install PREFIX="$out" ''; enableParallelBuilding = true; # Do 'make -j' diff --git a/src/Makefile b/src/Makefile index 05821644f6..758473abca 100644 --- a/src/Makefile +++ b/src/Makefile @@ -197,7 +197,7 @@ endif TARGET_XCFLAGS+= -fno-stack-protector TARGET_XLIBS+= -ldl -HOST_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_LINUX +Host_XCFLAGS+= -DLUAJIT_OS=LUAJIT_OS_LINUX ############################################################################## # Files and pathnames. diff --git a/src/luaconf.h b/src/luaconf.h index 0c70b14505..e43396bc01 100644 --- a/src/luaconf.h +++ b/src/luaconf.h @@ -37,7 +37,7 @@ #endif #define LUA_LROOT "/usr/local" #define LUA_LUADIR "/lua/5.1/" -#define LUA_LJDIR "/luajit-2.1.0-beta2/" +#define LUA_LJDIR "/raptorjit-1.0.0/" #ifdef LUA_ROOT #define LUA_JROOT LUA_ROOT diff --git a/src/luajit.h b/src/luajit.h index 9ce75ec79b..44aa92ea88 100644 --- a/src/luajit.h +++ b/src/luajit.h @@ -30,9 +30,9 @@ #include "lua.h" -#define LUAJIT_VERSION "RaptorJIT 1.0.0-alpha1" -#define LUAJIT_VERSION_NUM 100000 /* Version 1.0.0 = 01.00.00. */ -#define LUAJIT_VERSION_SYM luaJIT_version_2_1_0_beta2 +#define LUAJIT_VERSION "RaptorJIT 1.0.0" +#define LUAJIT_VERSION_NUM 10000 /* Version 1.0.0 = 01.00.00. */ +#define LUAJIT_VERSION_SYM luaJIT_version_1_0_0 #define LUAJIT_URL "http://github.com/raptorjit/raptorjit"