Hi Russel,
yes I could step forward very much with that hint, even it didn't expalin that in very details.
What I did was:
1.) Creating an DKM Project and copy the files lua.h and lua.c to it.
2.) Including the src directory to the "Build Properties" - "Paths" and setting the -mlong-calls option.
3.) Adding the missing includes at top of lua.c:
#define lua_c
#ifdef __VXWORKS__
#include <taskLib.h>
#include <types/vxTypesOld.h>
#endif
#include "lprefix.h"
...
main(... has to be changed for Vx_Works.
I also have to change the code for file input.
But so far I am happy that I could compile it and that I could execute code via it's shell.
Thanks for the hint!
Regards
GRegor
Am 12.03.2018 10:07, schrieb Gregor Weissenborn:
Hi Russel,
I thank you vewrry much for your reply.
I will check the discussion on "nim" and come back with my results as soon as possible.
In deed my controller only supports DKMs which makes some things more complicated often.
Regards
GregorAm 08.03.2018 20:12, schrieb Russell Haley:
On Thu, Mar 8, 2018 at 12:17 AM, Gregor Weissenborn <gregor.weissenborn@weissenborn-online.de> wrote:
Hello everyone,
I like to bring Lua 5.3.4 on to an industrial PLC controller which has VxWorks 6.9 as OS.
I downloaded the sources but failed compiling them.I use an official Windriver Workbench for the development.
First I created a (DKM) project and copied all src files to that.The following error _VX_CPU I could get rid of by defining LUA_USE_C89:
--->
Build Started in Project 'lua-5.3.4-library': 2011年08月17日 10:41:26
Generation of makefiles started.
Generation of makefiles finished (Elapsed Time: 00:00).
Platform: Wind River VxWorks 6.9
Command: make --no-print-directory BUILD_SPEC=ARMARCH7gnu_SMP DEBUG_MODE=1 TRACE=1 clean all
Working Directory: C:/WindRiver/CAS_2.6/lua-5.3.4-library/ARMARCH7gnu_SMP
make: removing targets and objects of C:/WindRiver/CAS_2.6/lua-5.3.4-library/ARMARCH7gnu_SMP
if [ -d "lua-5.3.4-library" ]; then cd "lua-5.3.4-library"; rm -rf Debug; fi
if [ -d "lua-5.3.4-library_partialImage" ]; then cd "lua-5.3.4-library_ partialImage"; rm -rf Debug; fi
if [ ! -d "`dirname "lua-5.3.4-library_partialImage/Debug/Objects/ lua-5.3.4-library/Sources/ lapi.o"`" ]; then mkdir -p "`dirname "lua-5.3.4-library_ partialImage/Debug/Objects/ lua-5.3.4-library/Sources/ lapi.o"`"; fi;echo "building lua-5.3.4-library_ partialImage/Debug/Objects/ lua-5.3.4-library/Sources/ lapi.o"; ccarm -g -t7 -mfpu=vfp -mfloat-abi=softfp -mlong-calls -ansi -fno-zero-initialized-in-bss -Wall -MD -MP -DCPU=_VX_ARMARCH7 -DTOOL_FAMILY=gnu -DTOOL=gnu -D_WRS_KERNEL -D_WRS_VX_SMP -D_WRS_CONFIG_SMP -D_VSB_CONFIG_FILE=\"C:/ WindRiver/vxworks-6.9/target/ lib_smp/h/config/vsbConfig.h\" -DARMEL -DARMEL -DARM_USE_VFP -DIP_PORT_VXWORKS=69 -IC:/WindRiver/vxworks-6.9/ target/h -IC:/WindRiver/vxworks-6.9/ target/h/wrn/coreip -IC:/WindRiver/CAS_2.6/lua-5. 3.4 -o "lua-5.3.4-library_ partialImage/Debug/Objects/ lua-5.3.4-library/Sources/ lapi.o" -c "C:/WindRiver/CAS_2.6/lua-5.3. 4/lapi.c"
building lua-5.3.4-library_partialImage/Debug/Objects/ lua-5.3.4-library/Sources/ lapi.o
In file included from C:/WindRiver/vxworks-6.9/target/h/types/vxANSI.h:61,
from C:/WindRiver/vxworks-6.9/target/h/string.h:36,
from C:/WindRiver/CAS_2.6/lua-5.3.4/lapi.c:14:
C:/WindRiver/vxworks-6.9/target/h/types/vxCpu.h:648:2: error: #error _VX_CPU is not defined correctly
In file included from C:/WindRiver/CAS_2.6/lua-5.3.4/lapi.c:14:
C:/WindRiver/vxworks-6.9/target/h/string.h:54: error: expected declaration specifiers or '...' before 'size_t'
C:/WindRiver/vxworks-6.9/target/h/string.h:55: error: expected declaration specifiers or '...' before 'size_t'
C:/WindRiver/vxworks-6.9/target/h/string.h:56: error: expected declaration specifiers or '...' before 'size_t' <---
But then I get this errors:--->
Build Started in Project 'lua-5.3.4-library': 2011年08月16日 16:31:15
Generation of makefiles started.
Generation of makefiles finished (Elapsed Time: 00:00).
Platform: Wind River VxWorks 6.9
Command: make --no-print-directory BUILD_SPEC=ARMARCH7gnu_SMP DEBUG_MODE=1 TRACE=1 clean all
Working Directory: C:/WindRiver/CAS_2.6/lua-5.3.4-library/ARMARCH7gnu_SMP
make: removing targets and objects of C:/WindRiver/CAS_2.6/lua-5.3.4-library/ARMARCH7gnu_SMP
if [ -d "lua-5.3.4-library" ]; then cd "lua-5.3.4-library"; rm -rf Debug; fi
if [ -d "lua-5.3.4-library_partialImage" ]; then cd "lua-5.3.4-library_ partialImage"; rm -rf Debug; fi
if [ ! -d "`dirname "lua-5.3.4-library_partialImage/Debug/Objects/ lua-5.3.4-library/Sources/ lapi.o"`" ]; then mkdir -p "`dirname "lua-5.3.4-library_ partialImage/Debug/Objects/ lua-5.3.4-library/Sources/ lapi.o"`"; fi;echo "building lua-5.3.4-library_ partialImage/Debug/Objects/ lua-5.3.4-library/Sources/ lapi.o"; ccarm -g -t7 -mfpu=vfp -mfloat-abi=softfp -mlong-calls -ansi -fno-zero-initialized-in-bss -Wall -MD -MP -DCPU=_VX_ARMARCH7 -DTOOL_FAMILY=gnu -DTOOL=gnu -D_WRS_KERNEL -D_WRS_VX_SMP -D_WRS_CONFIG_SMP -D_VSB_CONFIG_FILE=\"C:/ WindRiver/vxworks-6.9/target/ lib_smp/h/config/vsbConfig.h\" -DARMEL -DARMEL -DARM_USE_VFP -DIP_PORT_VXWORKS=69 -DLUA_USE_C89 -IC:/WindRiver/vxworks-6.9/ target/h -IC:/WindRiver/vxworks-6.9/ target/h/wrn/coreip -IC:/WindRiver/CAS_2.6/lua-5. 3.4 -o "lua-5.3.4-library_ partialImage/Debug/Objects/ lua-5.3.4-library/Sources/ lapi.o" -c "C:/WindRiver/CAS_2.6/lua-5.3. 4/lapi.c"
building lua-5.3.4-library_partialImage/Debug/Objects/ lua-5.3.4-library/Sources/ lapi.o
In file included from C:/WindRiver/vxworks-6.9/target/h/signal.h:102,
from C:/WindRiver/CAS_2.6/lua-5.3.4/lstate.h:41,
from C:/WindRiver/CAS_2.6/lua-5.3.4/lapi.h:12,
from C:/WindRiver/CAS_2.6/lua-5.3.4/lapi.c:18:
C:/WindRiver/vxworks-6.9/target/h/sigevent.h:36: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'sigeventInit'
C:/WindRiver/vxworks-6.9/target/h/sigevent.h:38: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'sigeventNotify'
C:/WindRiver/vxworks-6.9/target/h/sigevent.h:39: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'sigeventDelete'
In file included from C:/WindRiver/CAS_2.6/lua-5.3.4/lstate.h:41,
from C:/WindRiver/CAS_2.6/lua-5.3.4/lapi.h:12,
from C:/WindRiver/CAS_2.6/lua-5.3.4/lapi.c:18:
C:/WindRiver/vxworks-6.9/target/h/signal.h:410: error: expected ')' before 'rtpId'
C:/WindRiver/vxworks-6.9/target/h/signal.h:464: error: expected ')' before '__tid'
C:/WindRiver/vxworks-6.9/target/h/signal.h:465: error: expected ')' before 'tid'
C:\WindRiver\utilities-1.0\x86-win32\bin\make.exe: *** [lua-5.3.4-library_ partialImage/Debug/Objects/ lua-5.3.4-library/Sources/ lapi.o] Error 1
Build Failed in Project 'lua-5.3.4-library' (Process Exit Value was 2): 2011年08月16日 16:31:16 (Elapsed Time: 00:01)<---
Maybe someone of you can help me and then we also could add the knowledge of that what we experience during the way to get that runnig to get a general support of Lua on VxWorks. - Good Idea?
Regards
GregorHi,There seems to be some information here: https://forum.nim-lang.org/t/798/2. Note the third post where the user seemed to find a fix by creating a new define. Also from the same thread:"In VxWorks you can generate two types of artifacts, DKMs and RTPs (a.k.a. VXEs). My changes let me generate a vxe, which is akin to a regular executable."Are you sure you want to generate Lua as a DKM Kernel Module? Perhaps what you want is a VXE? I don't know anything about VXWorks but it makes sense that signal libraries work differently within the kernel as compared to userland.Good luck, I'd love to know the outcome.Russ