I am trying to build Luajit on ppc64le. I had used the ppc64le supported code. The code is building without issues.
But I am seeing few failures when Valgrind is enabled with gcc or clang compiler.
I am sharing the test suit run here (removed the few test cases output which are passed to minimize log).
I checked the code but I could not notice the susceptible code line which could be causing memory leak. However I had fixed one error related to unfinalized variable.
Please have a look and let me know suggestions or if it could be ok to live with these errors? Note that I had not seen these errors on AMD build.
Build commands (same as Travis build using valgrind with gcc/clang)
export JOBS=3
export LUAJIT_PREFIX=/opt/luajit21
export LUAJIT_SYSM_PREFIX=/opt/luajit21-sysm
export LUAJIT_COMMON_XCFLAGS="-DLUA_USE_APICHECK -DLUA_USE_ASSERT -DLUAJIT_NUMMODE=2 -O1"
export LUAJIT_XCFLAGS="-DLUAJIT_USE_VALGRIND -DLUAJIT_USE_SYSMALLOC -DLUAJIT_ENABLE_LUA52COMPAT $LUAJIT_COMMON_XCFLAGS"
export LUA52=1
export FLAGS=-v
export TRAVIS_COMPILER=gcc
export CC=${CC:-gcc}
export CC_FOR_BUILD=${CC_FOR_BUILD:-gcc}
gcc --version
make -j$JOBS CCDEBUG=-g Q= PREFIX=$LUAJIT_PREFIX CC=$CC XCFLAGS="$LUAJIT_XCFLAGS" VERBOSE=1
make install PREFIX=$LUAJIT_PREFIX
Test case execution log -
./run-tests $FLAGS $LUAJIT_PREFIX
=== test/ffi/ffi_arith_ptr.lua
=== test/ffi/ffi_convert.lua
==558== Invalid read of size 4
==558== at 0x1003B234: lj_cconv_ct_tv (lj_cconv.c:628)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Address 0x4457840 is 2,848 bytes inside a block of size 4,096 free'd
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001FB0B: lj_ctype_intern (lj_ctype.c:198)
==558== by 0x1003ACA7: lj_cconv_ct_tv (lj_cconv.c:562)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Block was alloc'd at
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001F953: lj_ctype_new (lj_ctype.c:167)
==558== by 0x10042A6B: cp_struct_name (lj_cparse.c:1204)
==558== by 0x10043823: cp_decl_enum (lj_cparse.c:1408)
==558== by 0x10043823: cp_decl_spec (lj_cparse.c:1504)
==558== by 0x1004497F: cp_decl_multi (lj_cparse.c:1802)
==558== by 0x10044E2F: cpcparser (lj_cparse.c:1878)
==558== by 0x1002A25B: lj_vm_cpcall (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10044F03: lj_cparse (lj_cparse.c:1891)
==558== by 0x10023763: lj_cf_ffi_cdef (lib_ffi.c:487)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558==
{
<insert_a_suppression_name_here>
Memcheck:Addr4
fun:lj_cconv_ct_tv
fun:lj_cdata_set
fun:lj_cf_ffi_meta___newindex
fun:lj_BC_FUNCC
fun:lua_pcall
fun:docall
fun:handle_script
fun:pmain
fun:lj_BC_FUNCC
fun:lua_cpcall
fun:main
}
==558== Invalid read of size 4
==558== at 0x10038F34: lj_cconv_ct_ct (lj_cconv.c:121)
==558== by 0x1003B2A3: lj_cconv_ct_tv (lj_cconv.c:629)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Address 0x4457844 is 2,852 bytes inside a block of size 4,096 free'd
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001FB0B: lj_ctype_intern (lj_ctype.c:198)
==558== by 0x1003ACA7: lj_cconv_ct_tv (lj_cconv.c:562)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Block was alloc'd at
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001F953: lj_ctype_new (lj_ctype.c:167)
==558== by 0x10042A6B: cp_struct_name (lj_cparse.c:1204)
==558== by 0x10043823: cp_decl_enum (lj_cparse.c:1408)
==558== by 0x10043823: cp_decl_spec (lj_cparse.c:1504)
==558== by 0x1004497F: cp_decl_multi (lj_cparse.c:1802)
==558== by 0x10044E2F: cpcparser (lj_cparse.c:1878)
==558== by 0x1002A25B: lj_vm_cpcall (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10044F03: lj_cparse (lj_cparse.c:1891)
==558== by 0x10023763: lj_cf_ffi_cdef (lib_ffi.c:487)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558==
{
<insert_a_suppression_name_here>
Memcheck:Addr4
fun:lj_cconv_ct_ct
fun:lj_cconv_ct_tv
fun:lj_cdata_set
fun:lj_cf_ffi_meta___newindex
fun:lj_BC_FUNCC
fun:lua_pcall
fun:docall
fun:handle_script
fun:pmain
fun:lj_BC_FUNCC
fun:lua_cpcall
fun:main
}
==558== Invalid read of size 4
==558== at 0x10038F3C: lj_cconv_ct_ct (lj_cconv.c:122)
==558== by 0x1003B2A3: lj_cconv_ct_tv (lj_cconv.c:629)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Address 0x4457840 is 2,848 bytes inside a block of size 4,096 free'd
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001FB0B: lj_ctype_intern (lj_ctype.c:198)
==558== by 0x1003ACA7: lj_cconv_ct_tv (lj_cconv.c:562)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Block was alloc'd at
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001F953: lj_ctype_new (lj_ctype.c:167)
==558== by 0x10042A6B: cp_struct_name (lj_cparse.c:1204)
==558== by 0x10043823: cp_decl_enum (lj_cparse.c:1408)
==558== by 0x10043823: cp_decl_spec (lj_cparse.c:1504)
==558== by 0x1004497F: cp_decl_multi (lj_cparse.c:1802)
==558== by 0x10044E2F: cpcparser (lj_cparse.c:1878)
==558== by 0x1002A25B: lj_vm_cpcall (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10044F03: lj_cparse (lj_cparse.c:1891)
==558== by 0x10023763: lj_cf_ffi_cdef (lib_ffi.c:487)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558==
{
<insert_a_suppression_name_here>
Memcheck:Addr4
fun:lj_cconv_ct_ct
fun:lj_cconv_ct_tv
fun:lj_cdata_set
fun:lj_cf_ffi_meta___newindex
fun:lj_BC_FUNCC
fun:lua_pcall
fun:docall
fun:handle_script
fun:pmain
fun:lj_BC_FUNCC
fun:lua_cpcall
fun:main
}
==558== Invalid read of size 4
==558== at 0x10038B70: ctype_child (lj_ctype.h:411)
==558== by 0x10038B70: cconv_childqual (lj_cconv.c:60)
==558== by 0x10038DAB: lj_cconv_compatptr (lj_cconv.c:80)
==558== by 0x10039AE7: lj_cconv_ct_ct (lj_cconv.c:338)
==558== by 0x1003B2A3: lj_cconv_ct_tv (lj_cconv.c:629)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Address 0x4457840 is 2,848 bytes inside a block of size 4,096 free'd
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001FB0B: lj_ctype_intern (lj_ctype.c:198)
==558== by 0x1003ACA7: lj_cconv_ct_tv (lj_cconv.c:562)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Block was alloc'd at
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001F953: lj_ctype_new (lj_ctype.c:167)
==558== by 0x10042A6B: cp_struct_name (lj_cparse.c:1204)
==558== by 0x10043823: cp_decl_enum (lj_cparse.c:1408)
==558== by 0x10043823: cp_decl_spec (lj_cparse.c:1504)
==558== by 0x1004497F: cp_decl_multi (lj_cparse.c:1802)
==558== by 0x10044E2F: cpcparser (lj_cparse.c:1878)
==558== by 0x1002A25B: lj_vm_cpcall (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10044F03: lj_cparse (lj_cparse.c:1891)
==558== by 0x10023763: lj_cf_ffi_cdef (lib_ffi.c:487)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558==
{
<insert_a_suppression_name_here>
Memcheck:Addr4
fun:ctype_child
fun:cconv_childqual
fun:lj_cconv_compatptr
fun:lj_cconv_ct_ct
fun:lj_cconv_ct_tv
fun:lj_cdata_set
fun:lj_cf_ffi_meta___newindex
fun:lj_BC_FUNCC
fun:lua_pcall
fun:docall
fun:handle_script
fun:pmain
fun:lj_BC_FUNCC
fun:lua_cpcall
fun:main
}
Failed test when running valgrind --gen-suppressions=all --error-exitcode=2 --num-callers=100 --leak-check=full --show-possibly-lost=no --suppressions=/usr/LuaJIT_2_BUILD/luajit2-test-suite/valgrind.suppress -q /opt/luajit21/bin/luajit-2.1.0-beta3 ffi_convert.lua 1: 512
=== test/ffi/ffi_copy_fill.lua
=== test/ffi/ffi_enum.lua
=== test/ffi/ffi_err.lua
==561== Invalid read of size 4
==561== at 0x1002A290: lj_cont_dispatch (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==561== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==561== by 0x1000422F: docall (luajit.c:121)
==561== by 0x100059B7: handle_script (luajit.c:292)
==561== by 0x100059B7: pmain (luajit.c:553)
==561== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==561== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==561== by 0x10005B4B: main (luajit.c:582)
==561== Address 0x4428840 is 0 bytes after a block of size 16 alloc'd
==561== at 0x4084168: malloc (vg_replace_malloc.c:308)
==561== by 0x408709F: realloc (vg_replace_malloc.c:836)
==561== by 0x1002261F: mem_alloc (lib_aux.c:336)
==561== by 0x1002E4A7: lj_mem_newgco (lj_gc.c:831)
==561== by 0x1003F04B: lj_cdata_new (lj_cdata.h:45)
==561== by 0x1003F04B: lj_clib_index (lj_clib.c:384)
==561== by 0x1002584B: ffi_clib_index (lib_ffi.c:370)
==561== by 0x10025A6B: lj_cf_ffi_clib___index (lib_ffi.c:375)
==561== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==561== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==561== by 0x1000422F: docall (luajit.c:121)
==561== by 0x100059B7: handle_script (luajit.c:292)
==561== by 0x100059B7: pmain (luajit.c:553)
==561== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==561== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==561== by 0x10005B4B: main (luajit.c:582)
==561==
{
<insert_a_suppression_name_here>
Memcheck:Addr4
fun:lj_cont_dispatch
fun:lj_BC_FUNCC
fun:docall
fun:handle_script
fun:pmain
fun:lj_BC_FUNCC
fun:lua_cpcall
fun:main
}
Failed test when running valgrind --gen-suppressions=all --error-exitcode=2 --num-callers=100 --leak-check=full --show-possibly-lost=no --suppressions=/usr/LuaJIT_2_BUILD/luajit2-test-suite/valgrind.suppress -q /opt/luajit21/bin/luajit-2.1.0-beta3 ffi_err.lua 1: 512
=== test/ffi/ffi_gcstep_recursive.lua
=== test/ffi/unsink_64_kptr.lua
=== test/misc/ack.lua
Ack(3,1): 13
=== test/misc/ack_notail.lua
Ack(3,1): 13
=== test/misc/alias_alloc.lua
=== test/misc/table_chain_bug_LuaJIT_494.lua
/opt/luajit21/bin/luajit-2.1.0-beta3: table_chain_bug_LuaJIT_494.lua:130: 3
stack traceback:
[C]: in function 'assert'
table_chain_bug_LuaJIT_494.lua:130: in main chunk
[C]: at 0x10004fcc
Failed test when running valgrind --gen-suppressions=all --error-exitcode=2 --num-callers=100 --leak-check=full --show-possibly-lost=no --suppressions=/usr/LuaJIT_2_BUILD/luajit2-test-suite/valgrind.suppress -q /opt/luajit21/bin/luajit-2.1.0-beta3 table_chain_bug_LuaJIT_494.lua 1: 256
=== test/misc/table_insert.lua
=== test/misc/table_misc.lua
=== test/misc/table_remove.lua
=== test/misc/tak.lua
2
=== test/misc/tcall_base.lua
=== test/unportable/math_special.lua
3 tests failed.
bash-4.2#
I am trying to build Luajit on ppc64le. I had used the ppc64le supported code. The code is building without issues.
But I am seeing few failures when Valgrind is enabled with gcc or clang compiler.
I am sharing the test suit run here (removed the few test cases output which are passed to minimize log).
I checked the code but I could not notice the susceptible code line which could be causing memory leak. However I had fixed one error related to unfinalized variable.
Please have a look and let me know suggestions or if it could be ok to live with these errors? Note that I had not seen these errors on AMD build.
Build commands (same as Travis build using valgrind with gcc/clang)
export JOBS=3
export LUAJIT_PREFIX=/opt/luajit21
export LUAJIT_SYSM_PREFIX=/opt/luajit21-sysm
export LUAJIT_COMMON_XCFLAGS="-DLUA_USE_APICHECK -DLUA_USE_ASSERT -DLUAJIT_NUMMODE=2 -O1"
export LUAJIT_XCFLAGS="-DLUAJIT_USE_VALGRIND -DLUAJIT_USE_SYSMALLOC -DLUAJIT_ENABLE_LUA52COMPAT $LUAJIT_COMMON_XCFLAGS"
export LUA52=1
export FLAGS=-v
export TRAVIS_COMPILER=gcc
export CC=${CC:-gcc}
export CC_FOR_BUILD=${CC_FOR_BUILD:-gcc}
gcc --version
make -j$JOBS CCDEBUG=-g Q= PREFIX=$LUAJIT_PREFIX CC=$CC XCFLAGS="$LUAJIT_XCFLAGS" VERBOSE=1
make install PREFIX=$LUAJIT_PREFIX
Test case execution log -
./run-tests $FLAGS $LUAJIT_PREFIX
=== test/ffi/ffi_arith_ptr.lua
=== test/ffi/ffi_convert.lua
==558== Invalid read of size 4
==558== at 0x1003B234: lj_cconv_ct_tv (lj_cconv.c:628)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Address 0x4457840 is 2,848 bytes inside a block of size 4,096 free'd
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001FB0B: lj_ctype_intern (lj_ctype.c:198)
==558== by 0x1003ACA7: lj_cconv_ct_tv (lj_cconv.c:562)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Block was alloc'd at
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001F953: lj_ctype_new (lj_ctype.c:167)
==558== by 0x10042A6B: cp_struct_name (lj_cparse.c:1204)
==558== by 0x10043823: cp_decl_enum (lj_cparse.c:1408)
==558== by 0x10043823: cp_decl_spec (lj_cparse.c:1504)
==558== by 0x1004497F: cp_decl_multi (lj_cparse.c:1802)
==558== by 0x10044E2F: cpcparser (lj_cparse.c:1878)
==558== by 0x1002A25B: lj_vm_cpcall (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10044F03: lj_cparse (lj_cparse.c:1891)
==558== by 0x10023763: lj_cf_ffi_cdef (lib_ffi.c:487)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558==
{
<insert_a_suppression_name_here>
Memcheck:Addr4
fun:lj_cconv_ct_tv
fun:lj_cdata_set
fun:lj_cf_ffi_meta___newindex
fun:lj_BC_FUNCC
fun:lua_pcall
fun:docall
fun:handle_script
fun:pmain
fun:lj_BC_FUNCC
fun:lua_cpcall
fun:main
}
==558== Invalid read of size 4
==558== at 0x10038F34: lj_cconv_ct_ct (lj_cconv.c:121)
==558== by 0x1003B2A3: lj_cconv_ct_tv (lj_cconv.c:629)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Address 0x4457844 is 2,852 bytes inside a block of size 4,096 free'd
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001FB0B: lj_ctype_intern (lj_ctype.c:198)
==558== by 0x1003ACA7: lj_cconv_ct_tv (lj_cconv.c:562)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Block was alloc'd at
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001F953: lj_ctype_new (lj_ctype.c:167)
==558== by 0x10042A6B: cp_struct_name (lj_cparse.c:1204)
==558== by 0x10043823: cp_decl_enum (lj_cparse.c:1408)
==558== by 0x10043823: cp_decl_spec (lj_cparse.c:1504)
==558== by 0x1004497F: cp_decl_multi (lj_cparse.c:1802)
==558== by 0x10044E2F: cpcparser (lj_cparse.c:1878)
==558== by 0x1002A25B: lj_vm_cpcall (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10044F03: lj_cparse (lj_cparse.c:1891)
==558== by 0x10023763: lj_cf_ffi_cdef (lib_ffi.c:487)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558==
{
<insert_a_suppression_name_here>
Memcheck:Addr4
fun:lj_cconv_ct_ct
fun:lj_cconv_ct_tv
fun:lj_cdata_set
fun:lj_cf_ffi_meta___newindex
fun:lj_BC_FUNCC
fun:lua_pcall
fun:docall
fun:handle_script
fun:pmain
fun:lj_BC_FUNCC
fun:lua_cpcall
fun:main
}
==558== Invalid read of size 4
==558== at 0x10038F3C: lj_cconv_ct_ct (lj_cconv.c:122)
==558== by 0x1003B2A3: lj_cconv_ct_tv (lj_cconv.c:629)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Address 0x4457840 is 2,848 bytes inside a block of size 4,096 free'd
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001FB0B: lj_ctype_intern (lj_ctype.c:198)
==558== by 0x1003ACA7: lj_cconv_ct_tv (lj_cconv.c:562)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Block was alloc'd at
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001F953: lj_ctype_new (lj_ctype.c:167)
==558== by 0x10042A6B: cp_struct_name (lj_cparse.c:1204)
==558== by 0x10043823: cp_decl_enum (lj_cparse.c:1408)
==558== by 0x10043823: cp_decl_spec (lj_cparse.c:1504)
==558== by 0x1004497F: cp_decl_multi (lj_cparse.c:1802)
==558== by 0x10044E2F: cpcparser (lj_cparse.c:1878)
==558== by 0x1002A25B: lj_vm_cpcall (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10044F03: lj_cparse (lj_cparse.c:1891)
==558== by 0x10023763: lj_cf_ffi_cdef (lib_ffi.c:487)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558==
{
<insert_a_suppression_name_here>
Memcheck:Addr4
fun:lj_cconv_ct_ct
fun:lj_cconv_ct_tv
fun:lj_cdata_set
fun:lj_cf_ffi_meta___newindex
fun:lj_BC_FUNCC
fun:lua_pcall
fun:docall
fun:handle_script
fun:pmain
fun:lj_BC_FUNCC
fun:lua_cpcall
fun:main
}
==558== Invalid read of size 4
==558== at 0x10038B70: ctype_child (lj_ctype.h:411)
==558== by 0x10038B70: cconv_childqual (lj_cconv.c:60)
==558== by 0x10038DAB: lj_cconv_compatptr (lj_cconv.c:80)
==558== by 0x10039AE7: lj_cconv_ct_ct (lj_cconv.c:338)
==558== by 0x1003B2A3: lj_cconv_ct_tv (lj_cconv.c:629)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Address 0x4457840 is 2,848 bytes inside a block of size 4,096 free'd
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001FB0B: lj_ctype_intern (lj_ctype.c:198)
==558== by 0x1003ACA7: lj_cconv_ct_tv (lj_cconv.c:562)
==558== by 0x10038B27: lj_cdata_set (lj_cdata.c:296)
==558== by 0x10026C0B: lj_cf_ffi_meta___newindex (lib_ffi.c:178)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558== Block was alloc'd at
==558== at 0x408712C: realloc (vg_replace_malloc.c:836)
==558== by 0x1002261F: mem_alloc (lib_aux.c:336)
==558== by 0x1002E3A3: lj_mem_realloc (lj_gc.c:818)
==558== by 0x1002E597: lj_mem_grow (lj_gc.c:850)
==558== by 0x1001F953: lj_ctype_new (lj_ctype.c:167)
==558== by 0x10042A6B: cp_struct_name (lj_cparse.c:1204)
==558== by 0x10043823: cp_decl_enum (lj_cparse.c:1408)
==558== by 0x10043823: cp_decl_spec (lj_cparse.c:1504)
==558== by 0x1004497F: cp_decl_multi (lj_cparse.c:1802)
==558== by 0x10044E2F: cpcparser (lj_cparse.c:1878)
==558== by 0x1002A25B: lj_vm_cpcall (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10044F03: lj_cparse (lj_cparse.c:1891)
==558== by 0x10023763: lj_cf_ffi_cdef (lib_ffi.c:487)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==558== by 0x1000422F: docall (luajit.c:121)
==558== by 0x100059B7: handle_script (luajit.c:292)
==558== by 0x100059B7: pmain (luajit.c:553)
==558== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==558== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==558== by 0x10005B4B: main (luajit.c:582)
==558==
{
<insert_a_suppression_name_here>
Memcheck:Addr4
fun:ctype_child
fun:cconv_childqual
fun:lj_cconv_compatptr
fun:lj_cconv_ct_ct
fun:lj_cconv_ct_tv
fun:lj_cdata_set
fun:lj_cf_ffi_meta___newindex
fun:lj_BC_FUNCC
fun:lua_pcall
fun:docall
fun:handle_script
fun:pmain
fun:lj_BC_FUNCC
fun:lua_cpcall
fun:main
}
Failed test when running valgrind --gen-suppressions=all --error-exitcode=2 --num-callers=100 --leak-check=full --show-possibly-lost=no --suppressions=/usr/LuaJIT_2_BUILD/luajit2-test-suite/valgrind.suppress -q /opt/luajit21/bin/luajit-2.1.0-beta3 ffi_convert.lua 1: 512
=== test/ffi/ffi_copy_fill.lua
=== test/ffi/ffi_enum.lua
=== test/ffi/ffi_err.lua
==561== Invalid read of size 4
==561== at 0x1002A290: lj_cont_dispatch (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==561== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==561== by 0x1000422F: docall (luajit.c:121)
==561== by 0x100059B7: handle_script (luajit.c:292)
==561== by 0x100059B7: pmain (luajit.c:553)
==561== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==561== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==561== by 0x10005B4B: main (luajit.c:582)
==561== Address 0x4428840 is 0 bytes after a block of size 16 alloc'd
==561== at 0x4084168: malloc (vg_replace_malloc.c:308)
==561== by 0x408709F: realloc (vg_replace_malloc.c:836)
==561== by 0x1002261F: mem_alloc (lib_aux.c:336)
==561== by 0x1002E4A7: lj_mem_newgco (lj_gc.c:831)
==561== by 0x1003F04B: lj_cdata_new (lj_cdata.h:45)
==561== by 0x1003F04B: lj_clib_index (lj_clib.c:384)
==561== by 0x1002584B: ffi_clib_index (lib_ffi.c:370)
==561== by 0x10025A6B: lj_cf_ffi_clib___index (lib_ffi.c:375)
==561== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==561== by 0x10014E5B: lua_pcall (lj_api.c:1129)
==561== by 0x1000422F: docall (luajit.c:121)
==561== by 0x100059B7: handle_script (luajit.c:292)
==561== by 0x100059B7: pmain (luajit.c:553)
==561== by 0x10029AFF: lj_BC_FUNCC (in /opt/luajit21/bin/luajit-2.1.0-beta3)
==561== by 0x10014F17: lua_cpcall (lj_api.c:1153)
==561== by 0x10005B4B: main (luajit.c:582)
==561==
{
<insert_a_suppression_name_here>
Memcheck:Addr4
fun:lj_cont_dispatch
fun:lj_BC_FUNCC
fun:docall
fun:handle_script
fun:pmain
fun:lj_BC_FUNCC
fun:lua_cpcall
fun:main
}
Failed test when running valgrind --gen-suppressions=all --error-exitcode=2 --num-callers=100 --leak-check=full --show-possibly-lost=no --suppressions=/usr/LuaJIT_2_BUILD/luajit2-test-suite/valgrind.suppress -q /opt/luajit21/bin/luajit-2.1.0-beta3 ffi_err.lua 1: 512
=== test/ffi/ffi_gcstep_recursive.lua
=== test/ffi/unsink_64_kptr.lua
=== test/misc/ack.lua
Ack(3,1): 13
=== test/misc/ack_notail.lua
Ack(3,1): 13
=== test/misc/alias_alloc.lua
=== test/misc/table_chain_bug_LuaJIT_494.lua
/opt/luajit21/bin/luajit-2.1.0-beta3: table_chain_bug_LuaJIT_494.lua:130: 3
stack traceback:
[C]: in function 'assert'
table_chain_bug_LuaJIT_494.lua:130: in main chunk
[C]: at 0x10004fcc
Failed test when running valgrind --gen-suppressions=all --error-exitcode=2 --num-callers=100 --leak-check=full --show-possibly-lost=no --suppressions=/usr/LuaJIT_2_BUILD/luajit2-test-suite/valgrind.suppress -q /opt/luajit21/bin/luajit-2.1.0-beta3 table_chain_bug_LuaJIT_494.lua 1: 256
=== test/misc/table_insert.lua
=== test/misc/table_misc.lua
=== test/misc/table_remove.lua
=== test/misc/tak.lua
2
=== test/misc/tcall_base.lua
=== test/unportable/math_special.lua
3 tests failed.
bash-4.2#