Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package luajit for openSUSE:Factory checked in at 2024-03-03 20:19:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/luajit (Old) and /work/SRC/openSUSE:Factory/.luajit.new.1770 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "luajit" Sun Mar 3 20:19:31 2024 rev:12 rq:1154166 version:5.1.2.1.0+git.1707061634.0d313b2 Changes: -------- --- /work/SRC/openSUSE:Factory/luajit/luajit.changes 2023-10-10 20:52:16.372623989 +0200 +++ /work/SRC/openSUSE:Factory/.luajit.new.1770/luajit.changes 2024-03-03 20:19:58.347243829 +0100 @@ -1,0 +2,101 @@ +Fri Mar 01 20:05:18 UTC 2024 - [email protected] + +- Update to version 5.1.2.1.0+git.1707061634.0d313b2: + * Rework stack overflow handling. + * Preserve keys with dynamic values in template tables when saving bytecode. + * Prevent include of luajit_rolling.h. + * Fix documentation bug about '\z' string escape. + * Fix zero stripping in %g number formatting. + * Fix unsinking of IR_FSTORE for NULL metatable. + * DynASM/x86: Add endbr instruction. + * MIPS64 R2/R6: Fix FP to integer conversions. + * Add cross-32/64 bit and deterministic bytecode generation. + * DynASM/x86: Allow [&expr] operand. + * Check for IR_HREF vs. IR_HREFK aliasing in non-nil store check. + * Respect jit.off() on pending trace exit. + * Simplify handling of instable types in TNEW/TDUP load forwarding. + * Only emit proper parent references in snapshot replay. + * Fix anchoring for string buffer set() method (again). + * ARM: Fix stack restore for FP slots. + * Document workaround for multilib vs. cross-compiler conflict. + * Fix anchoring for string buffer set() method. + * Fix runtime library flags for MSVC debug builds. + * Fix .debug_abbrev section in GDB JIT API. + * Optimize table.new() with constant args to (sinkable) IR_TNEW. + * Emit sunk IR_NEWREF only once per key on snapshot replay. + * Fix last commit. + * x86/x64: Don't fuse loads across IR_NEWREF. + * Improve last commit. + * x86/x64: Don't fuse loads across table.clear. + * x86/x64: Add more red zone checks to assembler backend. + * Add stack check to pcall/xpcall. + * Invalidate SCEV entry when returning to lower frame. + * FFI: Fix pragma push stack limit check and throw on overflow. + * ARM64: Fix disassembly of ldp/stp offsets. + * Check for upvalue state transition in IR_UREFO. + * x64: Properly fix __call metamethod return dispatch. + * Windows/x86: _BitScan*64 are only available on 64 bit archs. + * Add 'cc' file type for saving bytecode. + * FFI/Windows: Fix type declaration for int64_t and uint64_t. + * FFI: Fix dangling reference to CType in carith_checkarg(). + * DynASM/ARM64: Support ldp/stp of q registers. + * ARM64: Use ADR and ADRP to form constants. + * ARM64: Fix disassembly of U12 loads. + * ARM64: Unify constant register handling in interpreter. + * ARM: Fix register hint for FFI calls with FP results. + * ARM64: Fix register hint for FFI calls with FP results. + * ARM64: Restore fp before sp in C stack unwinders. + * FFI: Fix ffi.abi("pauth"). + * Maintain chain invariant in DCE. + * LJ_FR2: Fix stack checks in vararg calls. + * Follow-up fix for stack overflow handling cleanup. + * Handle OOM error on stack resize in coroutine.resume and lua_checkstack. + * Restore cur_L for specific Lua/C API use case. + * Consistently use 64 bit constants for 64 bit IR instructions. + * ARM64: Fix IR_HREF code generation for constant FP keys. + * ARM64: Fuse negative 32 bit constants into arithmetic ops again. + * Handle all stack layouts in (delayed) TRACE vmevent. + * Add missing coercion when recording select(string, ...) + * Cleanup stack overflow handling. + * Windows/ARM64: Add MSVC cross-build support for x64 to ARM64. + * IR_MIN/IR_MAX is non-commutative due to underlying FPU ops. + * ARM64: Set fixed interpreter registers before rethrow. + * Windows/ARM64: Update install docs. + * Windows: Call C++ destructors without compiling with /EHa. + * Windows: Pass scratch CONTEXT record to RtlUnwindEx. + * ARM64: External unwinder already restores non-volatile registers. + * Windows/ARM64: Fix exception unwinding (again). + * Windows/ARM64: Fix typo in exception unwinding. + * FFI: Fix 64 bit shift fold rules. + * Windows/ARM64: Support Windows calling conventions. + * Windows/ARM64: Fix exception unwinding. + * ARM64: Remove unneeded IRCALL_* defs for math intrinsics. + * Fix Cygwin build. + * Allow path overrides in genversion.lua with minilua, too. + * Windows/ARM64: Add initial support. + * Improve architecture detection error messages. + * ARM64: Fuse rotates into logical operands. + * ARM64: Don't fuse sign extensions into logical operands. + * ARM64: Disassemble rotates on logical operands. + * ARM: Fix stack check code generation. + * ARM64: Fix LDP/STP fusion (again). + * ARM64: Ensure branch is in range before emitting TBZ/TBNZ. + * Fix mcode limit check for non-x86 archs. + * ARM64: Improve BC_JLOOP. + * ARM64: Improve integer IR_MUL code generation. + * ARM64: Simplify code generation for IR_STRTO. + * ARM64: Use RID_TMP instead of scratch register in more places. + * ARM64: Improve IR_OBAR code generation. + * ARM64: Improve IR_UREF code generation. + * ARM64: Improve IR_HREF code generation. + * ARM64: Reload BASE via GL instead of spilling it. + * ARM64: Consolidate 32/64-bit constant handling in assembler. + * ARM64: Tune emit_lsptr. Avoid wrong load for asm_prof. + * ARM64: Inline only use of emit_loada. + * ARM64: Improve K13 constant rematerialization. + * Add NaN check to IR_NEWREF. + * Allow override of paths for genversion.lua. + * Fix native MinGW build. +- Also refresh luajit-s390x.patch from the rebased pull request. + +------------------------------------------------------------------- Old: ---- luajit-5.1.2.1.0+git.1693350652.41fb94d.tar.xz New: ---- luajit-5.1.2.1.0+git.1707061634.0d313b2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ luajit.spec ++++++ --- /var/tmp/diff_new_pack.bcAEEC/_old 2024-03-03 20:19:59.187274219 +0100 +++ /var/tmp/diff_new_pack.bcAEEC/_new 2024-03-03 20:19:59.191274363 +0100 @@ -1,7 +1,7 @@ # # spec file for package luajit # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,7 +20,7 @@ %define lib_version 5_1 %define so_version 2 Name: luajit -Version: 5.1.2.1.0+git.1693350652.41fb94d +Version: 5.1.2.1.0+git.1707061634.0d313b2 Release: 0 Summary: JIT compiler for Lua language License: MIT ++++++ 0003-Get-rid-of-LUAJIT_VERSION_SYM-that-changes-ABI-on-ev.patch ++++++ --- /var/tmp/diff_new_pack.bcAEEC/_old 2024-03-03 20:19:59.207274942 +0100 +++ /var/tmp/diff_new_pack.bcAEEC/_new 2024-03-03 20:19:59.211275087 +0100 @@ -34,12 +34,13 @@ if (argn < 0) { /* Invalid args? */ --- a/src/luajit_rolling.h +++ b/src/luajit_rolling.h -@@ -73,7 +73,4 @@ LUA_API void luaJIT_profile_stop(lua_Sta +@@ -73,8 +73,5 @@ LUA_API void luaJIT_profile_stop(lua_Sta LUA_API const char *luaJIT_profile_dumpstack(lua_State *L, const char *fmt, int depth, size_t *len); -/* Enforce (dynamic) linker error for version mismatches. Call from main. */ -LUA_API void LUAJIT_VERSION_SYM(void); - + #error "DO NOT USE luajit_rolling.h -- only include build-generated luajit.h" #endif ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.bcAEEC/_old 2024-03-03 20:19:59.239276100 +0100 +++ /var/tmp/diff_new_pack.bcAEEC/_new 2024-03-03 20:19:59.243276244 +0100 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/LuaJIT/LuaJIT.git</param> - <param name="changesrevision">41fb94defa8f830ce69a8122b03f6ac3216d392a</param></service></servicedata> + <param name="changesrevision">0d313b243194a0b8d2399d8b549ca5a0ff234db5</param></service></servicedata> (No newline at EOF) ++++++ luajit-5.1.2.1.0+git.1693350652.41fb94d.tar.xz -> luajit-5.1.2.1.0+git.1707061634.0d313b2.tar.xz ++++++ ++++ 4950 lines of diff (skipped) ++++++ luajit-s390x.patch ++++++ --- /var/tmp/diff_new_pack.bcAEEC/_old 2024-03-03 20:19:59.455283914 +0100 +++ /var/tmp/diff_new_pack.bcAEEC/_new 2024-03-03 20:19:59.455283914 +0100 @@ -1,24 +1,3 @@ -From ad1d41ea8bd3454c066172c99e94cc6848e470ce Mon Sep 17 00:00:00 2001 -From: Ilya Leoshkevich <[email protected]> -Date: Fri, 11 Aug 2023 13:51:19 +0200 -Subject: [PATCH] Add s390x architecture support - -s390x (IBM Z) is an architecture of server computers produced by IBM. -It is supported by a number of open source code generators, such as -GCC, LLVM, OpenJDK, eBPF, QEMU, Valgrind and Cranelift. One of the -missing pieces in the ecosystem support is LuaJIT. - -The s390x support for LuaJIT was initially developed by @ketank-new, -@mundaym and @niravthakkar. It found its way into moonjit and luajit2 -forks, as well as Fedora distro (as a patch). There were also smaller -contributions by @preetikhorjuvenkar, @Bisht13, @velemas and @iii-i. - -This is a cumulative patch of the work mentioned above. It contains -all the contributions squashed together, plus minor stylistic -cleanups. It passes all the tests from LuaJIT-test-cleanup, except -for contents.lua, which fails on x86_64 as well. - -Signed-off-by: Ilya Leoshkevich <[email protected]> --- dynasm/dasm_s390x.h | 546 ++++++ dynasm/dasm_s390x.lua | 1634 ++++++++++++++++++ @@ -29,7 +8,7 @@ src/lib_jit.c | 2 src/lj_arch.h | 19 src/lj_asm.c | 2 - src/lj_ccall.c | 47 + src/lj_ccall.c | 50 src/lj_ccall.h | 15 src/lj_ccallback.c | 9 src/lj_err.c | 3 @@ -37,12 +16,7 @@ src/lj_target.h | 2 src/lj_target_s390x.h | 80 src/vm_s390x.dasc | 4261 +++++++++++++++++++++++++++++++++++++++++++++++++ - 17 files changed, 6693 insertions(+), 1 deletion(-) - create mode 100644 dynasm/dasm_s390x.h - create mode 100644 dynasm/dasm_s390x.lua - create mode 100644 src/jit/dis_s390x.lua - create mode 100644 src/lj_target_s390x.h - create mode 100644 src/vm_s390x.dasc + 17 files changed, 6697 insertions(+) --- /dev/null +++ b/dynasm/dasm_s390x.h @@ -2343,7 +2317,7 @@ +-- Not yet implemented. --- a/src/lib_jit.c +++ b/src/lib_jit.c -@@ -720,6 +720,8 @@ static uint32_t jit_cpudetect(void) +@@ -702,6 +702,8 @@ static uint32_t jit_cpudetect(void) } #endif @@ -2365,14 +2339,14 @@ #define LUAJIT_OS_OTHER 0 @@ -59,6 +61,8 @@ #define LUAJIT_TARGET LUAJIT_ARCH_ARM - #elif defined(__aarch64__) + #elif defined(__aarch64__) || defined(_M_ARM64) #define LUAJIT_TARGET LUAJIT_ARCH_ARM64 +#elif defined(__s390x__) || defined(__s390x) +#define LUAJIT_TARGET LUAJIT_ARCH_S390X #elif defined(__ppc__) || defined(__ppc) || defined(__PPC__) || defined(__PPC) || defined(__powerpc__) || defined(__powerpc) || defined(__POWERPC__) || defined(__POWERPC) || defined(_M_PPC) #define LUAJIT_TARGET LUAJIT_ARCH_PPC #elif defined(__mips64__) || defined(__mips64) || defined(__MIPS64__) || defined(__MIPS64) -@@ -438,6 +442,21 @@ +@@ -439,6 +443,21 @@ #define LJ_ARCH_VERSION 10 #endif @@ -2396,7 +2370,7 @@ #endif --- a/src/lj_asm.c +++ b/src/lj_asm.c -@@ -1704,6 +1704,8 @@ static void asm_loop(ASMState *as) +@@ -1708,6 +1708,8 @@ static void asm_loop(ASMState *as) #include "lj_asm_ppc.h" #elif LJ_TARGET_MIPS #include "lj_asm_mips.h" @@ -2448,24 +2422,27 @@ #else #error "Missing calling convention definitions for this architecture" #endif -@@ -990,7 +1024,7 @@ static int ccall_set_args(lua_State *L, - CTypeID did; +@@ -999,6 +1033,9 @@ static int ccall_set_args(lua_State *L, CType *d; CTSize sz; -- MSize n, isfp = 0, isva = 0; -+ MSize n, isfp = 0, isva = 0, onstack = 0; + MSize n, isfp = 0, isva = 0; ++#if LJ_TARGET_S390X ++ MSize onstack = 0; ++#endif void *dp, *rp = NULL; if (fid) { /* Get argument type from field. */ -@@ -1029,6 +1063,7 @@ static int ccall_set_args(lua_State *L, +@@ -1037,6 +1074,9 @@ static int ccall_set_args(lua_State *L, CCALL_HANDLE_REGARG /* Handle register arguments. */ /* Otherwise pass argument on stack. */ ++#if LJ_TARGET_S390X + onstack = 1; ++#endif if (CCALL_ALIGN_STACKARG) { /* Align argument on stack. */ MSize align = (1u << ctype_align(d->info)) - 1; if (rp || (CCALL_PACK_STACKARG && isva && align < CTSIZE_PTR-1)) -@@ -1073,6 +1108,16 @@ static int ccall_set_args(lua_State *L, +@@ -1086,6 +1126,16 @@ static int ccall_set_args(lua_State *L, *(int64_t *)dp = (int64_t)*(int32_t *)dp; /* Sign-extend to 64 bit. */ } #endif @@ -2526,7 +2503,7 @@ #endif --- a/src/lj_err.c +++ b/src/lj_err.c -@@ -419,6 +419,9 @@ LJ_FUNCA int lj_err_unwind_dwarf(int ver +@@ -448,6 +448,9 @@ LJ_FUNCA int lj_err_unwind_dwarf(int ver if (version != 1) return _URC_FATAL_PHASE1_ERROR; cf = (void *)_Unwind_GetCFA(ctx); @@ -2561,7 +2538,7 @@ #endif --- a/src/lj_target.h +++ b/src/lj_target.h -@@ -146,6 +146,8 @@ typedef uint32_t RegCost; +@@ -143,6 +143,8 @@ typedef uint32_t RegCost; #include "lj_target_ppc.h" #elif LJ_TARGET_MIPS #include "lj_target_mips.h"
