Hi,
I'm banging my head as to why rpmdeps is complaining about a missing symbol:
/usr/opt/rpm/lib/rpm/rpmdeps
exec(): 0509-036 Cannot load program /usr/opt/rpm/lib/rpm/rpmdeps because of the following errors:
rtld: 0712-001 Symbol lua_newuserdata was referenced
from module /usr/opt/rpm/lib/librpmio.so(), but a runtime definition
of the symbol was not found.
here's the blibpath of the exe:
dump -H /usr/opt/rpm/lib/rpm/rpmdeps
/usr/opt/rpm/lib/rpm/rpmdeps:
***Loader Section***
Loader Header Information
VERSION# #SYMtableENT #RELOCent LENidSTR
0x00000001 0x0000002d 0x0000004e 0x000000e8
#IMPfilID OFFidSTR LENstrTBL OFFstrTBL
0x0000000a 0x00000800 0x000001c0 0x000008e8
***Import File Strings***
INDEX PATH BASE MEMBER
0 /usr/opt/rpm/lib:/opt/freeware/lib:/usr/opt/rpm/lib:/opt/freeware/lib:/usr/lib:/lib
1 librpmbuild.so
2 librpm.so
3 libdb.so
4 librpmio.so
5 libnss3.so
6 libpopt.a libpopt.so.0
7 libpthread.a shr_xpg5.o
8 libc.a shr.o
9 librtl.a shr.o
and the symbols from librpmio:
$ nm -g /usr/opt/rpm/lib/librpmio.so | grep lua_newuserdata
.lua_newuserdata T 268566272
lua_newuserdata U -
librpmio's header:
$ dump -H librpmio.so
librpmio.so:
***Loader Section***
Loader Header Information
VERSION# #SYMtableENT #RELOCent LENidSTR
0x00000001 0x000001ea 0x00000676 0x00000140
#IMPfilID OFFidSTR LENstrTBL OFFstrTBL
0x00000009 0x00007b98 0x00001455 0x00007cd8
***Import File Strings***
INDEX PATH BASE MEMBER
0 /usr/opt/rpm/lib:/opt/freeware/lib:/usr/lib:/lib
1 libc.a shr.o
2 /usr/opt/rpm/lib libintl.a libintl.so.8
3 /usr/opt/rpm/lib libnss3.a libnss3.so
4 libpthread.a shr_xpg5.o
5 /usr/opt/rpm/lib libpopt.a libpopt.so.0
6 /usr/opt/rpm/lib libbz2.a libbz2.so.1
7 /usr/opt/rpm/lib libz.a libz.so.1
8 /usr/opt/rpm/lib liblua.a liblua-5.3.so
I think the problem is the liblua from this rpm.rte which doesn't have the symbol in the linked version of the so liblua-5.3.so
:
nm -g /usr/opt/rpm/lib/liblua.a | grep -E "(liblua|lua_newuserdata)"
/usr/opt/rpm/lib/liblua.a[liblua-5.3.so]:
.lua_newuserdatauv T 268444832
lua_newuserdatauv D 805401080 12
/usr/opt/rpm/lib/liblua.a[liblua-5.4.so]:
.lua_newuserdatauv T 268444832
lua_newuserdatauv D 805401080 12
/usr/opt/rpm/lib/liblua.a[liblua-5.1.so]:
.lua_newuserdata T 268440832
lua_newuserdata D 536906120 12
an older rpm.rte (4.15.1.1006) has liblua.a with this symbol in all versions of the .so's:
$ nm -g /usr/opt/rpm/lib/liblua.a | grep -E "(liblua|lua_newuserdata)"
/usr/opt/rpm/lib/liblua.a[liblua-5.3.so]:
.lua_newuserdata T 268444096
lua_newuserdata D 805398256 12
/usr/opt/rpm/lib/liblua.a[liblua-5.1.so]:
.lua_newuserdata T 268440832
lua_newuserdata D 536906120 12
What is the fix to get a functional rpmdeps?