hoelzro / inline-lua

Perl extension for embedding Lua scripts into Perl code
4 stars 5 forks source link

Installation problems: luaenv and OS X #23

Open jomo666 opened 8 years ago

jomo666 commented 8 years ago

I have installed lua using the luaenv, e.g. got:

$ lua -v
Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio
$ luaenv which lua
/opt/anyenv/envs/luaenv/versions/5.1.5/bin/lua
$ find /opt/anyenv/envs/luaenv/versions/5.1.5 -print
/opt/anyenv/envs/luaenv/versions/5.1.5
/opt/anyenv/envs/luaenv/versions/5.1.5/bin
/opt/anyenv/envs/luaenv/versions/5.1.5/bin/lua
/opt/anyenv/envs/luaenv/versions/5.1.5/bin/luac
/opt/anyenv/envs/luaenv/versions/5.1.5/include
/opt/anyenv/envs/luaenv/versions/5.1.5/include/lauxlib.h
/opt/anyenv/envs/luaenv/versions/5.1.5/include/lua.h
/opt/anyenv/envs/luaenv/versions/5.1.5/include/lua.hpp
/opt/anyenv/envs/luaenv/versions/5.1.5/include/luaconf.h
/opt/anyenv/envs/luaenv/versions/5.1.5/include/lualib.h
/opt/anyenv/envs/luaenv/versions/5.1.5/lib
/opt/anyenv/envs/luaenv/versions/5.1.5/lib/liblua.a
/opt/anyenv/envs/luaenv/versions/5.1.5/lib/lua
/opt/anyenv/envs/luaenv/versions/5.1.5/lib/lua/5.1
/opt/anyenv/envs/luaenv/versions/5.1.5/share
/opt/anyenv/envs/luaenv/versions/5.1.5/share/lua
/opt/anyenv/envs/luaenv/versions/5.1.5/share/lua/5.1
/opt/anyenv/envs/luaenv/versions/5.1.5/share/man
/opt/anyenv/envs/luaenv/versions/5.1.5/share/man/man1
/opt/anyenv/envs/luaenv/versions/5.1.5/share/man/man1/lua.1
/opt/anyenv/envs/luaenv/versions/5.1.5/share/man/man1/luac.1

So, tried install as

$ perl Makefile.PL INC=-I/opt/anyenv/envs/luaenv/versions/5.1.5/include LIBS=-L/opt/anyenv/envs/luaenv/versions/5.1.5/lib/liblua.lib
Checking if your kit is complete...
Looks good
Generating a Unix-style Makefile
Writing Makefile for Inline::Lua
Writing MYMETA.yml and MYMETA.json

The make somewhat works

$ make
Skip blib/lib/Inline/Lua.pm (unchanged)
Running Mkbootstrap for Lua ()
chmod 644 "Lua.bs"
"/opt/anyenv/envs/plenv/versions/5.24.0/bin/perl5.24.0" -MExtUtils::Command::MM -e 'cp_nonempty' -- Lua.bs blib/arch/auto/Inline/Lua/Lua.bs 644
cc -c  -I/opt/anyenv/envs/luaenv/versions/5.1.5/include -fno-common -DPERL_DARWIN -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -I/opt/local/include -O3   -DVERSION=\"0.11\" -DXS_VERSION=\"0.11\"  "-I/opt/anyenv/envs/plenv/versions/5.24.0/lib/perl5/5.24.0/darwin-2level/CORE"   Lua.c 
Lua.xs:147:15: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
    while (he = hv_iternext(hv)) {
           ~~~^~~~~~~~~~~~~~~~~
Lua.xs:147:15: note: place parentheses around the assignment to silence this warning
    while (he = hv_iternext(hv)) {
              ^
           (                   )
Lua.xs:147:15: note: use '==' to turn this assignment into an equality comparison
    while (he = hv_iternext(hv)) {
              ^
              ==
Lua.xs:233:13: warning: 11 enumeration values not handled in switch: 'SVt_NULL', 'SVt_INVLIST', 'SVt_REGEXP'... [-Wswitch]
    switch (SvTYPE(val)) {
            ^
/opt/anyenv/envs/plenv/versions/5.24.0/lib/perl5/5.24.0/darwin-2level/CORE/sv.h:351:20: note: expanded from macro 'SvTYPE'
#define SvTYPE(sv)      ((svtype)((sv)->sv_flags & SVTYPEMASK))
                        ^
Lua.xs:623:11: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
        while (i = lua_gettop(lua)) {
               ~~^~~~~~~~~~~~~~~~~
Lua.xs:623:11: note: place parentheses around the assignment to silence this warning
        while (i = lua_gettop(lua)) {
                 ^
               (                  )
Lua.xs:623:11: note: use '==' to turn this assignment into an equality comparison
        while (i = lua_gettop(lua)) {
                 ^
                 ==
3 warnings generated.
rm -f blib/arch/auto/Inline/Lua/Lua.bundle
env MACOSX_DEPLOYMENT_TARGET=10.3 cc  -bundle -undefined dynamic_lookup -L/usr/local/lib -L/opt/local/lib -fstack-protector-strong -o blib/arch/auto/Inline/Lua/Lua.bundle  Lua.o  \
          \

ld: warning: object file (Lua.o) was built for newer OSX version (10.11) than being linked (10.4)
chmod 755 blib/arch/auto/Inline/Lua/Lua.bundle
Manifying 1 pod document

but the make test fails fully, with the

$ make test
"/opt/anyenv/envs/plenv/versions/5.24.0/bin/perl5.24.0" -MExtUtils::Command::MM -e 'cp_nonempty' -- Lua.bs blib/arch/auto/Inline/Lua/Lua.bs 644
PERL_DL_NONLAZY=1 "/opt/anyenv/envs/plenv/versions/5.24.0/bin/perl5.24.0" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00-compile.t .................. 1/1 
#   Failed test 'Inline/Lua.pm loaded ok'
#   at t/00-compile.t line 37.
#          got: '512'
#     expected: '0'
Can't load '/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle' for module Inline::Lua: dlopen(/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle, 2): Symbol not found: _luaL_checkudata
  Referenced from: /private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle
  Expected in: dynamic lookup
 at -e line 1.
Compilation failed in require at -e line 1.
# Looks like you failed 1 test of 1.
t/00-compile.t .................. Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests 
t/1_basic.t ..................... Can't load '/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle' for module Inline::Lua: dlopen(/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle, 2): Symbol not found: _luaL_checkudata
  Referenced from: /private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle
  Expected in: dynamic lookup
 at -e line 0.
Compilation failed in require at (eval 7) line 1.
Can't load '/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle' for module Inline::Lua: dlopen(/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle, 2): Symbol not found: _luaL_checkudata
  Referenced from: /private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle
  Expected in: dynamic lookup
 at -e line 0.
Compilation failed in require at (eval 7) line 1.
Error. You have specified 'Lua' as an Inline programming language.

I currently only know about the following languages:
    C, Foo, foo

If you have installed a support module for this language, try deleting the
config-darwin-2level-5.024000 file from the following Inline DIRECTORY, and run again:

    /private/tmp/Inline-Lua-0.11/_Inline

(And if that works, please file a bug report.)

 at t/1_basic.t line 0.
INIT failed--call queue aborted.
# Looks like your test exited with 255 before it could output anything.
t/1_basic.t ..................... Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 8/8 subtests 
t/2_table.t ..................... Can't load '/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle' for module Inline::Lua: dlopen(/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle, 2): Symbol not found: _luaL_checkudata
  Referenced from: /private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle
  Expected in: dynamic lookup
 at -e line 0.
Compilation failed in require at (eval 7) line 1.
Error. You have specified 'Lua' as an Inline programming language.

I currently only know about the following languages:
    C, Foo, foo

If you have installed a support module for this language, try deleting the
config-darwin-2level-5.024000 file from the following Inline DIRECTORY, and run again:

    /private/tmp/Inline-Lua-0.11/_Inline

(And if that works, please file a bug report.)

 at t/2_table.t line 0.
INIT failed--call queue aborted.
# Looks like your test exited with 255 before it could output anything.
t/2_table.t ..................... Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 10/10 subtests 
t/3_closure.t ................... Can't load '/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle' for module Inline::Lua: dlopen(/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle, 2): Symbol not found: _luaL_checkudata
  Referenced from: /private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle
  Expected in: dynamic lookup
 at -e line 0.
Compilation failed in require at (eval 7) line 1.
Error. You have specified 'Lua' as an Inline programming language.

I currently only know about the following languages:
    C, Foo, foo

If you have installed a support module for this language, try deleting the
config-darwin-2level-5.024000 file from the following Inline DIRECTORY, and run again:

    /private/tmp/Inline-Lua-0.11/_Inline

(And if that works, please file a bug report.)

 at t/3_closure.t line 0.
INIT failed--call queue aborted.
# Looks like your test exited with 255 before it could output anything.
t/3_closure.t ................... Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 5/5 subtests 
t/4_filehandle.t ................ Can't load '/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle' for module Inline::Lua: dlopen(/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle, 2): Symbol not found: _luaL_checkudata
  Referenced from: /private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle
  Expected in: dynamic lookup
 at -e line 0.
Compilation failed in require at (eval 7) line 1.
Error. You have specified 'Lua' as an Inline programming language.

I currently only know about the following languages:
    C, Foo, foo

If you have installed a support module for this language, try deleting the
config-darwin-2level-5.024000 file from the following Inline DIRECTORY, and run again:

    /private/tmp/Inline-Lua-0.11/_Inline

(And if that works, please file a bug report.)

 at t/4_filehandle.t line 0.
INIT failed--call queue aborted.
# Looks like your test exited with 255 before it could output anything.
t/4_filehandle.t ................ Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 2/2 subtests 
t/5_sub_string_segfault.t ....... Can't load '/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle' for module Inline::Lua: dlopen(/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle, 2): Symbol not found: _luaL_checkudata
  Referenced from: /private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle
  Expected in: dynamic lookup
 at -e line 0.
Compilation failed in require at (eval 7) line 1.
Error. You have specified 'Lua' as an Inline programming language.

I currently only know about the following languages:
    C, Foo, foo

If you have installed a support module for this language, try deleting the
config-darwin-2level-5.024000 file from the following Inline DIRECTORY, and run again:

    /private/tmp/Inline-Lua-0.11/_Inline

(And if that works, please file a bug report.)

 at t/5_sub_string_segfault.t line 0.
INIT failed--call queue aborted.
# Looks like your test exited with 255 before it could output anything.
t/5_sub_string_segfault.t ....... Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 1/1 subtests 
t/6_lua_calls_perl_calls_lua.t .. Can't load '/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle' for module Inline::Lua: dlopen(/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle, 2): Symbol not found: _luaL_checkudata
  Referenced from: /private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle
  Expected in: dynamic lookup
 at -e line 0.
Compilation failed in require at (eval 7) line 1.
Error. You have specified 'Lua' as an Inline programming language.

I currently only know about the following languages:
    C, Foo, foo

If you have installed a support module for this language, try deleting the
config-darwin-2level-5.024000 file from the following Inline DIRECTORY, and run again:

    /private/tmp/Inline-Lua-0.11/_Inline

(And if that works, please file a bug report.)

 at t/6_lua_calls_perl_calls_lua.t line 0.
INIT failed--call queue aborted.
t/6_lua_calls_perl_calls_lua.t .. Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run 
t/7_errors.t .................... Can't load '/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle' for module Inline::Lua: dlopen(/private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle, 2): Symbol not found: _luaL_checkudata
  Referenced from: /private/tmp/Inline-Lua-0.11/blib/arch/auto/Inline/Lua/Lua.bundle
  Expected in: dynamic lookup
 at -e line 0.
Compilation failed in require at (eval 7) line 1.
Error. You have specified 'Lua' as an Inline programming language.

I currently only know about the following languages:
    C, Foo, foo

If you have installed a support module for this language, try deleting the
config-darwin-2level-5.024000 file from the following Inline DIRECTORY, and run again:

    /private/tmp/Inline-Lua-0.11/_Inline

(And if that works, please file a bug report.)

 at t/7_errors.t line 0.
INIT failed--call queue aborted.
# Looks like your test exited with 255 before it could output anything.
t/7_errors.t .................... Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 2/2 subtests 

Test Summary Report
-------------------
t/00-compile.t                (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
t/1_basic.t                   (Wstat: 65280 Tests: 0 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 8 tests but ran 0.
t/2_table.t                   (Wstat: 65280 Tests: 0 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 10 tests but ran 0.
t/3_closure.t                 (Wstat: 65280 Tests: 0 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 5 tests but ran 0.
t/4_filehandle.t              (Wstat: 65280 Tests: 0 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 2 tests but ran 0.
t/5_sub_string_segfault.t     (Wstat: 65280 Tests: 0 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 1 tests but ran 0.
t/6_lua_calls_perl_calls_lua.t (Wstat: 65280 Tests: 0 Failed: 0)
  Non-zero exit status: 255
  Parse errors: No plan found in TAP output
t/7_errors.t                  (Wstat: 65280 Tests: 0 Failed: 0)
  Non-zero exit status: 255
  Parse errors: Bad plan.  You planned 2 tests but ran 0.
Files=8, Tests=1,  1 wallclock secs ( 0.03 usr  0.02 sys +  0.49 cusr  0.09 csys =  0.63 CPU)
Result: FAIL
Failed 8/8 test programs. 1/1 subtests failed.
make: *** [test_dynamic] Error 255

Would be nice to have more detailed instructions how to specify the exact INC and LIBS and how to install the module. :)

PS: I have an working Inline::C installation.

hoelzro commented 8 years ago

@jomo666 Can you reproduce this on a Linux or BSD system? I'm wondering if that warning about (Lua.o) was built for newer OSX version (10.11) has something to do with it!

jomo666 commented 8 years ago

Unfortunately i have only OS X and also i'm only an beginner, so can't help much with the problem tracking.

Fortunately, I managed an working Lua::API installation, so will try use it, instead of the Inline::Lua.

The (Lua.o) was built for newer OSX version (10.11) message is harmless, any other build process throws it (like my working Inline::C or Lua::API or Javascript::Duktape and many other (working) XS modules).

Thank you for your interest anyway - and sorry for the lack of my knowledge to help more. :)