AIX Open Source

 View Only

 rpmdeps from rpm.rte 4.15.1.1015 errors on undefined symbol from liblua.a

Douglas Irvine's profile image
Douglas Irvine posted Fri July 25, 2025 12:25 AM

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?

Parth Patel's profile image
Parth Patel


Planning to update the /usr/opt/rpm/lib/rpm/rpmdeps  with respect to rpm.rte file set.

We'll update you once latest rpm.rte(4.15.1.10xx) is available.