Sorry for the direct mail, Gedare.  The Lua mailing list I'm on automatically forwards to all users in the email because it re-writes the return mail address but leaves the persons name on it. I keep forgetting that rtems mailing list does not.

Original question below...
Thanks 
Russ
Sent from my BlackBerry 10 smartphone on the Virgin Mobile network.
From: Russell Haley <russ.ha...@gmail.com>
Sent: Sunday, April 8, 2018 10:51 PM
To: Gedare Bloom
Subject: Re: Lua was Re: Quickstart Build instructions

Thanks for the help! I've managed to load a lua script from a string in my C application. While novel, that in itself isn't very functional. I'll need to figure out how to run other scripts as well as C based components. 

I'd like to start with getting other Lua scripts running. My goal is to load a library called penlight that's a few dozens of files. Is there a utility for creating and loading resources? I'll also look at compiling the files using the luac compiler, but that's outside of rtems.

Very exciting!
Russ

On Sun, Apr 1, 2018 at 5:24 AM, Gedare Bloom <ged...@rtems.org> wrote:
On Sun, Apr 1, 2018 at 1:52 AM, Russell Haley <russ.ha...@gmail.com> wrote:
>
>
> On Fri, Mar 30, 2018 at 12:48 PM, Russell Haley <russ.ha...@gmail.com>
> wrote:
>>
>>
>>
>> On Fri, Mar 30, 2018 at 7:54 AM, Joel Sherrill <j...@rtems.org> wrote:
>>>
>>>
>>>
>>> On Fri, Mar 30, 2018 at 1:05 AM, Russell Haley <russ.ha...@gmail.com>
>>> wrote:
>>>>
>>>> Thanks Joel. I haven't looped back to test if it was my mistake or
>>>> something else so I'll assume my mistake for now.
>>>>
>>>> Either way, I'm able to build and run the examples_v2 repository against
>>>> erc32, so... YAY!
>>>>
>>>> I'd like to build Lua 5.3, do I just build the static lib "a" file and
>>>> include it in a test application? Would that happen in RTEMS proper or in
>>>> waf? I need sleep now but any suggestions would be grand.
>>>
>>>
>>> Porting Lua was an early GSoC project. Some information is here.:
>>>
>>> https://devel.rtems.org/wiki/Packages/LUA
>>>
>>> That effort predates the RSB but the proper solution would be to have
>>> an RSB recipe for it. My understanding is that it was quite easy to build
>>> for RTEMS.
>>>
>>> https://github.com/lparam/rtems-liblua appears to be enough to help you
>>> build it.
>>>
>>> Needs an RSB recipe though. :)
>>
>>
>> That would be great. I've managed to get lua 5.3 built and installed from
>> the github repo by lparam. I've run out of time but will clean it up
>> tonight. The SGOC link seems to be pointing to a modified/extended lua build
>> and the link to the source code is dead.
>>
>> I'll try modifying the hello world example tonight as well and see what I
>> get.
>
>
> So building liblua.a was pretty straightforward as a "Ken" has already done
> the heavy lifting in the makefile. I can call gmake as:
>
> gmake ARCH=sparc-rtems5 BSP=erc32 BSP_BASE=~/development/rtems/5
>
> and "make install" puts liblua.a in the correct directory. But I am getting
> a linking errors with my example code that seem to imply a missing math
> library? I copied the RTEMS hello example and added the Lua C example from
> the Programming in Lua book (4th edition for 5.3). The files and build
> output follow.
>
> //test-lua.c
> #include <bsp.h>
> #include <lua.h>
> #include <lualib.h>
> #include <lauxlib.h>
>
> //This is the reference to the lua interpreter
> lua_State* L;
>
> rtems_task Init(
>     rtems_task_argument ignored
> )
> {
>     lua_State *L = luaL_newstate();
>     luaL_openlibs(L);
>     char buff[256] = "print('Hello from Lua')";
>     //Test of basic lua functionality
>     int error;
>     error = luaL_loadstring(L, buff);
>     if(error)
>     {
>         fprintf(stderr, "%s\n", lua_tostring(L,-1));
>         lua_pop(L,1);
>     }
>     lua_close(L);
>     return 0;
> }
>
> /* NOTICE: the clock driver is explicitly disabled */
> #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
> #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
> #define CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
>
> #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
> #define CONFIGURE_MAXIMUM_TASKS 1
>
> #define CONFIGURE_INIT
> #include <rtems/confdefs.h>
> /* end of file */
>
>
> #wscript
> # Copyright 2018 Russell Haley (russ.ha...@gmail.com)
> # Copyright 2013 Gedare Bloom (ged...@rtems.org)
> #
> # This file's license is 2-clause BSD as in this distribution's LICENSE.2
> file.
> #
>
> # Waf build script for a Lua test harness
> import rtems_waf.rtems as rtems
>
> def build(bld):
>     rtems.build(bld)
>
>     bld.includes = ['.
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/include']
>
>     bld.read_stlib('lua',
> paths=['/home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/'])
>     bld(features = 'c cprogram',
>         target = 'test-lua.exe',
>         source = ['test-lua.c'],
>         use = 'lua')
>
>
> #output
>
> russellh@g1 ~/d/e/lua53-test> waf -v
> Waf: Entering directory
> `/usr/home/russellh/development/examples-v2/build/sparc-rtems5-erc32'
> [2/3] Linking ../build/sparc-rtems5-erc32/lua53-test/test-lua.exe
> 22:33:27 runner ['/home/russellh/development/rtems/5/bin/sparc-rtems5-gcc',
> '-qrtems', '-B/home/russellh/development/rtems/5/sparc-rtems5/lib/',
> '-B/home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/', '--specs',
> 'bsp_specs', '-mcpu=cypress', '-mcpu=cypress', '-ffunction-sections',
> '-ffunction-sections', '-fdata-sections', '-fdata-sections',
> '-Wl,--gc-sections', 'lua53-test/test-lua.c.2.o',
> '-o/usr/home/russellh/development/examples-v2/build/sparc-rtems5-erc32/lua53-test/test-lua.exe',
> '-Wl,-Bstatic',
> '-L/home/russellh/development/rtems/5/sparc-rtems5/erc32/lib', '-llua',
> '-Wl,-Bdynamic']
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lobject.o):
> In function `numarith':
> lobject.c:(.text+0x570): undefined reference to `powf'
> lobject.c:(.text+0x598): undefined reference to `floorf'
> lobject.c:(.text+0x5c4): undefined reference to `fmodf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lvm.o):
> In function `luaV_tointeger':
> lvm.c:(.text+0x308): undefined reference to `floorf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lvm.o):
> In function `luaV_execute':
> lvm.c:(.text+0x43cc): undefined reference to `fmodf'
> lvm.c:(.text+0x4640): undefined reference to `floorf'
> lvm.c:(.text+0x47f8): undefined reference to `powf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_sin':
> lmathlib.c:(.text+0xd8): undefined reference to `sinf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_cos':
> lmathlib.c:(.text+0x130): undefined reference to `cosf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_tan':
> lmathlib.c:(.text+0x188): undefined reference to `tanf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_asin':
> lmathlib.c:(.text+0x1e0): undefined reference to `asinf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_acos':
> lmathlib.c:(.text+0x238): undefined reference to `acosf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_atan':
> lmathlib.c:(.text+0x2b8): undefined reference to `atan2f'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_floor':
> lmathlib.c:(.text+0x460): undefined reference to `floorf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_ceil':
> lmathlib.c:(.text+0x4ec): undefined reference to `ceilf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_fmod':
> lmathlib.c:(.text+0x654): undefined reference to `fmodf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_modf':
> lmathlib.c:(.text+0x720): undefined reference to `ceilf'
> lmathlib.c:(.text+0x738): undefined reference to `floorf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_sqrt':
> lmathlib.c:(.text+0x7dc): undefined reference to `sqrtf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_log':
> lmathlib.c:(.text+0x8b8): undefined reference to `logf'
> lmathlib.c:(.text+0x904): undefined reference to `log2f'
> lmathlib.c:(.text+0x93c): undefined reference to `log10f'
> lmathlib.c:(.text+0x954): undefined reference to `logf'
> lmathlib.c:(.text+0x964): undefined reference to `logf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_exp':
> lmathlib.c:(.text+0x9c4): undefined reference to `expf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_cosh':
> lmathlib.c:(.text+0xf70): undefined reference to `coshf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_sinh':
> lmathlib.c:(.text+0xfc8): undefined reference to `sinhf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_tanh':
> lmathlib.c:(.text+0x1020): undefined reference to `tanhf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_pow':
> lmathlib.c:(.text+0x108c): undefined reference to `powf'
> /home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/liblua.a(lmathlib.o):
> In function `math_log10':
> lmathlib.c:(.text+0x11c4): undefined reference to `log10f'
> collect2: error: ld returned 1 exit status
>
> Waf: Leaving directory
> `/usr/home/russellh/development/examples-v2/build/sparc-rtems5-erc32'
> Build failed
>  -> task in 'test-lua.exe' failed with exit status 1:
>     {task 34394256160: cprogram test-lua.c.2.o -> test-lua.exe}
> ['/home/russellh/development/rtems/5/bin/sparc-rtems5-gcc', '-qrtems',
> '-B/home/russellh/development/rtems/5/sparc-rtems5/lib/',
> '-B/home/russellh/development/rtems/5/sparc-rtems5/erc32/lib/', '--specs',
> 'bsp_specs', '-mcpu=cypress', '-mcpu=cypress', '-ffunction-sections',
> '-ffunction-sections', '-fdata-sections', '-fdata-sections',
> '-Wl,--gc-sections', 'lua53-test/test-lua.c.2.o',
> '-o/usr/home/russellh/development/examples-v2/build/sparc-rtems5-erc32/lua53-test/test-lua.exe',
> '-Wl,-Bstatic',
> '-L/home/russellh/development/rtems/5/sparc-rtems5/erc32/lib', '-llua',
> '-Wl,-Bdynamic']
>

See the examples-v2/benchmarks/nbench/wscript for how to link the math
lib with waf
https://git.rtems.org/examples-v2/tree/benchmarks/nbench/wscript

>
>  Cheers,
> Russ
>>
>>
>> Thanks everyone!
>>
>> Russ
>>>
>>>
>>> --joel
>>>
>>>>
>>>>
>>>> Thanks!
>>>> Russ
>>>>
>>>> On Wed, Mar 28, 2018 at 6:48 AM, Joel Sherrill <j...@rtems.org> wrote:
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Mar 28, 2018 at 12:51 AM, Russell Haley <russ.ha...@gmail.com>
>>>>> wrote:
>>>>>>
>>>>>>
>>>>>> ---------- Forwarded message ----------
>>>>>> From: Russell Haley <russ.ha...@gmail.com>
>>>>>> Date: Tue, Mar 27, 2018 at 10:45 PM
>>>>>> Subject: Re: Quickstart Build instructions
>>>>>> To: Sebastian Huber <sebastian.huber@embedded-brains.de>
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Tue, Mar 27, 2018 at 10:36 PM, Sebastian Huber
>>>>>> <sebastian.huber@embedded-brains.de> wrote:
>>>>>>>
>>>>>>> Please send e-mails to the mailing list.
>>>>>>
>>>>>> Sorry, my mistake.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 28/03/18 07:34, Russell Haley wrote:
>>>>>>>>
>>>>>>>> Where did the directory 5 come from in these instructions? Are you
>>>>>>>> missing a mkdir?
>>>>>>>
>>>>>>>
>>>>>>> The
>>>>>>>
>>>>>>> --prefix=/usr/home/chris/development/rtems/5
>>>>>>>
>>>>>>>
>>>>>>> directory is created by the sb-set-builder. It is the base
>>>>>>> installation directory.
>>>>>>
>>>>>> I was getting a directory not writeable error until I created the
>>>>>> folder myself (even after correcting for my username). I'll try again later,
>>>>>> but it builds if I create the 5/ directory.
>>>>>
>>>>>
>>>>> What is your $HOME? Mine is usually /home/joel. If yours is similar,
>>>>> then
>>>>> not being able to write into /usr as non-root is expected.
>>>>>
>>>>> Perhaps the documentation should say ${HOME}/development/rtems/5?
>>>>>
>>>>> FWIW Around OAR, we tend to use ${HOME}/rtems-work/tools/5 or for
>>>>> wider deployments /rtems/5
>>>>>
>>>>> --joel
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Russ
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> $cd
>>>>>>>> $ mkdir -p development/rtems
>>>>>>>> $cd  development/rtems
>>>>>>>> $ git clone git://git.rtems.org/rtems-source-builder.git
>>>>>>>> <http://git.rtems.org/rtems-source-builder.git>  rsb
>>>>>>>>    ...
>>>>>>>> $cd  rsb
>>>>>>>> $ ./source-builder/sb-check
>>>>>>>>    ...
>>>>>>>> $cd  rtems
>>>>>>>> $ ../source-builder/sb-set-builder\
>>>>>>>>      --prefix=/usr/home/chris/development/rtems/55/rtems-sparc
>>>>>>>>    ...
>>>>>>>>
>>>>>>>> Thanks,
>>>>>>>> Russ
>>>>>>>>
>>>>>>>> On Tue, Mar 27, 2018 at 10:28 PM, Russell Haley
>>>>>>>> <russ.ha...@gmail.com <mailto:russ.ha...@gmail.com>> wrote:
>>>>>>>>
>>>>>>>>     Thanks!
>>>>>>>>     Russ
>>>>>>>>
>>>>>>>>     On Tue, Mar 27, 2018 at 10:23 PM, Sebastian Huber
>>>>>>>>     <sebastian.huber@embedded-brains.de
>>>>>>>>     <mailto:sebastian.huber@embedded-brains.de>> wrote:
>>>>>>>>
>>>>>>>>         On 28/03/18 07:14, Russell Haley wrote:
>>>>>>>>
>>>>>>>>             Hi, the quick start indicates using ./bootstrap -p, but
>>>>>>>>             using said parameter only results in the error/hep
>>>>>>>> output.
>>>>>>>>             Using ./bootstrap without any parameters started the the
>>>>>>>>             process for me?
>>>>>>>>
>>>>>>>>
>>>>>>>> https://docs.rtems.org/branches/master/user/start/index.html
>>>>>>>>
>>>>>>>> <https://docs.rtems.org/branches/master/user/start/index.html>
>>>>>>>>
>>>>>>>>
>>>>>>>>         Sorry for the confusion. I updated the documentation:
>>>>>>>>
>>>>>>>>
>>>>>>>> https://git.rtems.org/rtems-docs/commit/?id=fc9db4c26eb66b1b94f79617d850d2b0f161c00e
>>>>>>>>
>>>>>>>> <https://git.rtems.org/rtems-docs/commit/?id=fc9db4c26eb66b1b94f79617d850d2b0f161c00e>
>>>>>>>>
>>>>>>>>         --         Sebastian Huber, embedded brains GmbH
>>>>>>>>
>>>>>>>>         Address : Dornierstr. 4, D-82178 Puchheim,
>>>>>>>>
>>>>>>>> <https://maps.google.com/?q=dress+:+Dornierstr.+4,+D-82178+Puchheim,&entry=gmail&source=g>
>>>>>>>>         Germany
>>>>>>>>         Phone   : +49 89 189 47 41-16
>>>>>>>> <tel:%2B49%2089%20189%2047%2041-16>
>>>>>>>>         Fax     : +49 89 189 47 41-09
>>>>>>>> <tel:%2B49%2089%20189%2047%2041-09>
>>>>>>>>         E-Mail  : sebastian.huber@embedded-brains.de
>>>>>>>>         <mailto:sebastian.huber@embedded-brains.de>
>>>>>>>>         PGP     : Public key available on request.
>>>>>>>>
>>>>>>>>         Diese Nachricht ist keine geschäftliche Mitteilung im Sinne
>>>>>>>>         des EHUG.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Sebastian Huber, embedded brains GmbH
>>>>>>>
>>>>>>> Address : Dornierstr. 4, D-82178 Puchheim, Germany
>>>>>>> Phone   : +49 89 189 47 41-16
>>>>>>> Fax     : +49 89 189 47 41-09
>>>>>>> E-Mail  : sebastian.huber@embedded-brains.de
>>>>>>> PGP     : Public key available on request.
>>>>>>>
>>>>>>> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> users mailing list
>>>>>> users@rtems.org
>>>>>> http://lists.rtems.org/mailman/listinfo/users
>>>>>
>>>>>
>>>>
>>>
>>
>
>
> _______________________________________________
> users mailing list
> users@rtems.org
> http://lists.rtems.org/mailman/listinfo/users


_______________________________________________
users mailing list
users@rtems.org
http://lists.rtems.org/mailman/listinfo/users

Reply via email to