From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hossein Golestani Subject: Re: Pktgen having problem with Lua on RHEL Date: Wed, 19 Dec 2018 09:52:29 -0500 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Cc: dev@dpdk.org To: keith.wiles@intel.com Return-path: Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) by dpdk.org (Postfix) with ESMTP id 7100710BD for ; Wed, 19 Dec 2018 15:52:55 +0100 (CET) Received: by mail-ed1-f46.google.com with SMTP id g22so11156082edr.7 for ; Wed, 19 Dec 2018 06:52:55 -0800 (PST) In-Reply-To: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Hi Keith, Thanks for your reply. I solved the problem just now. There was no misspelling. Apparently, for static linking (i.e., linking **.a* files), there's no need to use *-L*. So, for example, instead of *MYLIBS +=3D -lpktgen_lua -L:/home/me/lua/liblua.a*, I should have simply used *MYLIBS +=3D -lpktgen_lua -/home/me/lua/liblua.a* Thanks, Hossein On Wed, Dec 19, 2018 at 9:08 AM Wiles, Keith wrote: > > > > On Dec 18, 2018, at 7:53 PM, Hossein Golestani > wrote: > > > > Hi, > > > > I'm having a hard time compiling Pktgen on a Red Hat machine. The sourc= e > 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 cann= ot > > 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 > > ), 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/ > > =E2=94=9C=E2=94=80=E2=94=80 include > > =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80 lauxlib.h > > =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80 luaconf.h > > =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80 lua.h > > =E2=94=82 =E2=94=9C=E2=94=80=E2=94=80 lua.hpp > > =E2=94=82 =E2=94=94=E2=94=80=E2=94=80 lualib.h > > =E2=94=94=E2=94=80=E2=94=80 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 +=3D -lpktgen_lua $(shell pkg-config --libs-only-l lua5.3)* > > > > with > > > > *MYLIBS +=3D -lpktgen_lua -L:/home/me/lua/liblua.a* > > I assume that =E2=80=98me=E2=80=99 here is really =E2=80=98hossening=E2= =80=99 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 +=3D -L$(LUA_LIB) $(shell pkg-config --libs-only-L lua5.3)* > > > > with > > > > *MYLIB_PATH +=3D -L$(LUA_LIB) **-L:/home/me/lua/liblua.a* > > > > > > Replacing > > > > *CFLAGS +=3D -I/usr/include/lua5.3* > > > > with > > > > *CFLAGS +=3D -I/home/me/lua/include* > > > > > > In *lib/lua/Makefile*: > > > > Replacing > > > > *CFLAGS +=3D $(shell pkg-config --cflags lua5.3)* > > > > with > > > > *CFLAGS +=3D -I/home/me/lua/include* > > > > > > Replacing > > > > LDLIBS +=3D -L$(SRCDIR)/../lua/$(RTE_TARGET)/lib -llua > > > > with > > > > LDLIBS +=3D -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/libp= ktgen_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 > >