mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2026-05-05 04:16:46 +02:00
community/lua-bitop: fix with lua 5.2+ and run tests
fixes https://gitlab.alpinelinux.org/alpine/aports/-/issues/15245
This commit is contained in:
parent
53a7244233
commit
735389eded
@ -2,12 +2,13 @@
|
||||
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
|
||||
pkgname=lua-bitop
|
||||
pkgver=1.0.2
|
||||
pkgrel=0
|
||||
pkgrel=1
|
||||
pkgdesc="Bitwise operations on numbers"
|
||||
url="https://bitop.luajit.org/"
|
||||
arch="all"
|
||||
license="MIT"
|
||||
source="https://bitop.luajit.org/download/LuaBitOp-$pkgver.tar.gz"
|
||||
source="https://bitop.luajit.org/download/LuaBitOp-$pkgver.tar.gz
|
||||
lua5.3.patch"
|
||||
builddir="$srcdir/LuaBitOp-$pkgver"
|
||||
|
||||
_luaversions="5.1 5.2 5.3 5.4"
|
||||
@ -27,7 +28,14 @@ prepare() {
|
||||
build() {
|
||||
local lver; for lver in $_luaversions; do
|
||||
msg "Building for Lua $lver..."
|
||||
make -C "$builddir-$lver" LUA="lua$lver"
|
||||
make -C "$builddir-$lver" LUA="lua$lver" INCLUDES="$(pkg-config --cflags lua$lver)"
|
||||
done
|
||||
}
|
||||
|
||||
check() {
|
||||
local lver; for lver in $_luaversions; do
|
||||
msg "Test for Lua $lver..."
|
||||
make -C "$builddir-$lver" LUA="lua$lver" test
|
||||
done
|
||||
}
|
||||
|
||||
@ -45,4 +53,7 @@ _subpackage() {
|
||||
install -Dm 644 bit.so "$subpkgdir/usr/lib/lua/$lver/bit.so"
|
||||
}
|
||||
|
||||
sha512sums="a652050ea5c6fbeb8a28b05e2bc4a3550c854cc45f7f42c8c1b0a81f5b76773cdf061e6a839cdb339614118169e578b6e3efa5a3efbe59a2f01874b2fa2b4f2e LuaBitOp-1.0.2.tar.gz"
|
||||
sha512sums="
|
||||
a652050ea5c6fbeb8a28b05e2bc4a3550c854cc45f7f42c8c1b0a81f5b76773cdf061e6a839cdb339614118169e578b6e3efa5a3efbe59a2f01874b2fa2b4f2e LuaBitOp-1.0.2.tar.gz
|
||||
5bd70b9f619cdddc4a930cfe0c091a3a016ebea2bf197d338435b945900b8480f5c57551aeee6b38a11388172eecd9e48a1b335c437414a076f0b93a0f01307f lua5.3.patch
|
||||
"
|
||||
|
||||
84
community/lua-bitop/lua5.3.patch
Normal file
84
community/lua-bitop/lua5.3.patch
Normal file
@ -0,0 +1,84 @@
|
||||
Patch from: https://github.com/LuaJIT/LuaJIT/issues/384
|
||||
|
||||
diff -ur LuaBitOp-1.0.2/bit.c LuaBitOp-1.0.3/bit.c
|
||||
--- LuaBitOp-1.0.2/bit.c 2012-05-08 15:15:00.000000000 -0400
|
||||
+++ LuaBitOp-1.0.3/bit.c 2018-01-20 21:41:00.037749052 -0500
|
||||
@@ -26,7 +26,7 @@
|
||||
** [ MIT license: http://www.opensource.org/licenses/mit-license.php ]
|
||||
*/
|
||||
|
||||
-#define LUA_BITOP_VERSION "1.0.2"
|
||||
+#define LUA_BITOP_VERSION "1.0.3"
|
||||
|
||||
#define LUA_LIB
|
||||
#include "lua.h"
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
typedef union {
|
||||
lua_Number n;
|
||||
-#ifdef LUA_NUMBER_DOUBLE
|
||||
+#if defined(LUA_NUMBER_DOUBLE) || defined(LUA_FLOAT_DOUBLE)
|
||||
uint64_t b;
|
||||
#else
|
||||
UBits b;
|
||||
@@ -63,24 +63,25 @@
|
||||
#else
|
||||
bn.n = luaL_checknumber(L, idx);
|
||||
#endif
|
||||
-#if defined(LUA_NUMBER_DOUBLE)
|
||||
+#if defined(LUA_NUMBER_DOUBLE) || defined(LUA_FLOAT_DOUBLE)
|
||||
bn.n += 6755399441055744.0; /* 2^52+2^51 */
|
||||
#ifdef SWAPPED_DOUBLE
|
||||
b = (UBits)(bn.b >> 32);
|
||||
#else
|
||||
b = (UBits)bn.b;
|
||||
#endif
|
||||
-#elif defined(LUA_NUMBER_INT) || defined(LUA_NUMBER_LONG) || \
|
||||
- defined(LUA_NUMBER_LONGLONG) || defined(LUA_NUMBER_LONG_LONG) || \
|
||||
- defined(LUA_NUMBER_LLONG)
|
||||
+#elif defined(LUA_NUMBER_INT) || defined(LUA_INT_INT) || \
|
||||
+ defined(LUA_NUMBER_LONG) || defined(LUA_INT_LONG) || \
|
||||
+ defined(LUA_NUMBER_LONGLONG) || defined(LUA_INT_LONGLONG) || \
|
||||
+ defined(LUA_NUMBER_LONG_LONG) || defined(LUA_NUMBER_LLONG)
|
||||
if (sizeof(UBits) == sizeof(lua_Number))
|
||||
b = bn.b;
|
||||
else
|
||||
b = (UBits)(SBits)bn.n;
|
||||
-#elif defined(LUA_NUMBER_FLOAT)
|
||||
+#elif defined(LUA_NUMBER_FLOAT) || defined(LUA_FLOAT_FLOAT)
|
||||
#error "A 'float' lua_Number type is incompatible with this library"
|
||||
#else
|
||||
-#error "Unknown number type, check LUA_NUMBER_* in luaconf.h"
|
||||
+#error "Unknown number type, check LUA_NUMBER_*, LUA_FLOAT_*, LUA_INT_* in luaconf.h"
|
||||
#endif
|
||||
#if LUA_VERSION_NUM < 502
|
||||
if (b == 0 && !lua_isnumber(L, idx)) {
|
||||
@@ -91,7 +92,11 @@
|
||||
}
|
||||
|
||||
/* Return bit type. */
|
||||
+#if LUA_VERSION_NUM < 503
|
||||
#define BRET(b) lua_pushnumber(L, (lua_Number)(SBits)(b)); return 1;
|
||||
+#else
|
||||
+#define BRET(b) lua_pushinteger(L, (lua_Integer)(SBits)(b)); return 1;
|
||||
+#endif
|
||||
|
||||
static int bit_tobit(lua_State *L) { BRET(barg(L, 1)) }
|
||||
static int bit_bnot(lua_State *L) { BRET(~barg(L, 1)) }
|
||||
@@ -163,11 +168,15 @@
|
||||
LUALIB_API int luaopen_bit(lua_State *L)
|
||||
{
|
||||
UBits b;
|
||||
+#if LUA_VERSION_NUM < 503
|
||||
lua_pushnumber(L, (lua_Number)1437217655L);
|
||||
+#else
|
||||
+ lua_pushinteger(L, (lua_Integer)1437217655L);
|
||||
+#endif
|
||||
b = barg(L, -1);
|
||||
if (b != (UBits)1437217655L || BAD_SAR) { /* Perform a simple self-test. */
|
||||
const char *msg = "compiled with incompatible luaconf.h";
|
||||
-#ifdef LUA_NUMBER_DOUBLE
|
||||
+#if defined(LUA_NUMBER_DOUBLE) || defined(LUA_FLOAT_DOUBLE)
|
||||
#ifdef _WIN32
|
||||
if (b == (UBits)1610612736L)
|
||||
msg = "use D3DCREATE_FPU_PRESERVE with DirectX";
|
||||
Loading…
x
Reference in New Issue
Block a user