[dpdk-dev] Pktgen having problem with Lua on RHEL

Wiles, Keith keith.wiles at intel.com
Wed Dec 19 15:08:37 CET 2018



> On Dec 18, 2018, at 7:53 PM, Hossein Golestani <hosseing at umich.edu> wrote:
> 
> Hi,
> 
> I'm having a hard time compiling Pktgen on a Red Hat machine. The source of
> the problem is the Lua library.
> 
> I'm using Pktgen 3.5.9, and it requires Lua 5.3. Standard installation of
> Lua on RHEL ends up having Lua 5.1. So for having the latest release, I
> need to compile Lua from its source. My eventual problem is that I cannot
> appropriately link the compiled Lua library to Pktgen.
> 
> Here's a detailed explanation of what I did:
> 
> Based on the official website of Lua (link
> <http://www.lua.org/manual/5.3/readme.html>), for embedding Lua in C/C++
> programs, the following files are required:
> *lua.h luaconf.h lualib.h lauxlib.h lua.hpp*
> *liblua.a* (which is created after compiling Lua)
> 
> I put these files in the following directory:
> /home/me/lua/
> ├── include
> │   ├── lauxlib.h
> │   ├── luaconf.h
> │   ├── lua.h
> │   ├── lua.hpp
> │   └── lualib.h
> └── liblua.a
> 
> I made the following changes in Pktgen's Makefiles to include the Lua's
> header files and static library shown above:
> In *app/Makefile*:
> 
> Replacing
> 
> *MYLIBS     += -lpktgen_lua $(shell pkg-config --libs-only-l lua5.3)*
> 
> with
> 
> *MYLIBS     += -lpktgen_lua -L:/home/me/lua/liblua.a*

I assume that ‘me’ here is really ‘hossening’ so the real change to is /home/hossening/lua/liblua.a right?

I worry that you have mis-spelled on of the lines. The code linked compiled so it found the include, but not the lib.

Check and make sure you did not mis-spell something here.
> 
> 
> Replacing
> 
> *MYLIB_PATH += -L$(LUA_LIB) $(shell pkg-config --libs-only-L lua5.3)*
> 
> with
> 
> *MYLIB_PATH += -L$(LUA_LIB) **-L:/home/me/lua/liblua.a*
> 
> 
> Replacing
> 
> *CFLAGS     += -I/usr/include/lua5.3*
> 
> with
> 
> *CFLAGS     += -I/home/me/lua/include*
> 
> 
> In *lib/lua/Makefile*:
> 
> Replacing
> 
> *CFLAGS += $(shell pkg-config --cflags lua5.3)*
> 
> with
> 
> *CFLAGS += -I/home/me/lua/include*
> 
> 
> Replacing
> 
> LDLIBS += -L$(SRCDIR)/../lua/$(RTE_TARGET)/lib -llua
> 
> with
> 
> LDLIBS += -L$(SRCDIR)/../lua/$(RTE_TARGET)/lib
> -L:/home/hosseing/lua/liblua.a
> 
> 
> 
> Then, when I make Pktgen, I receive thousands of errors, like this:
> */home/me/pktgen-3.5.9/app/../lib/lua/x86_64-native-linuxapp-gcc/lib/libpktgen_lua.a(rte_lua.o):
> In function `msghandler':*
> */home/me/pktgen-3.5.9/lib/lua/rte_lua.c:244: undefined reference to
> `lua_tolstring'*
> */home/me/pktgen-3.5.9/lib/lua/rte_lua.c:257: undefined reference to
> `luaL_traceback'*
> */home/me/pktgen-3.5.9/lib/lua/rte_lua.c:247: undefined reference to
> `luaL_callmeta'*
> */home/me/pktgen-3.5.9/lib/lua/rte_lua.c:248: undefined reference to
> `lua_type'*
> */home/me/pktgen-3.5.9/lib/lua/rte_lua.c:252: undefined reference to
> `lua_type'*
> */home/me/pktgen-3.5.9/lib/lua/rte_lua.c:252: undefined reference to
> `lua_typename'*
> *...*
> 
> The included Lua header files seem to be OK. The problem seems to be
> because of how I link the liblua.a file. I'd really appreciate it if
> someone could help me on this.
> 
> Thanks,
> Hossein

Regards,
Keith



More information about the dev mailing list