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

Hossein Golestani hosseing at umich.edu
Wed Dec 19 02:53:16 CET 2018


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*


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


More information about the dev mailing list