Project

General

Profile

Actions

Bug #4969

closed

/hipster-2014.1 package runtime/lua delivers broken libraries

Added by Predrag Zečević almost 8 years ago. Updated almost 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
-
Target version:
-
Start date:
2014-07-08
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

Hi,

this is not correct:

$ file /usr/lib/liblua.so /usr/lib/64/liblua.so
/usr/lib/liblua.so:     current ar archive, not a dynamic executable or shared object
/usr/lib/64/liblua.so:  current ar archive, not a dynamic executable or shared object

those came with runtime/lua package:
$ pkg contents runtime/lua | grep -E "/lib/.*liblua" 
usr/lib/amd64/liblua.so
usr/lib/liblua.so

$ pkg list -H runtime/lua
runtime/lua                                       5.2.2-2014.0.1.0           i--

Normally this should display something similar (like in oi_151.1.9 X86):

$file /usr/lib/liblua.so /usr/lib/64/liblua.so                                                                                                                                              
/usr/lib/liblua.so:     ELF 32-bit LSB dynamic lib 80386 Version 1 [FPU], dynamically linked, not tripped                                                                                                  
/usr/lib/64/liblua.so:  ELF 64-bit LSB dynamic lib AMD64 Version 1 [SSE2 SSE CMOV], dynamically linked, not stripped

$ pkg list -H runtime/lua                                                                                                                                                                    
runtime/lua                                       5.1.4-0.151.1.9            i--

Best regards.

Actions #1

Updated by Alexander Pyhalov almost 8 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 40

The right thing to do is to apply modified patch from Oracle userland which builds liblua as shared library. Unfortunately, it was messed up at some point in oi-userland.
The reason why it was messed up is the following: liblua is not supposed to be linked as shared library in luac / lua itself. So, some hidden symbols shouldn't be hidden.
When using Studio this issue doesn't appear, because in luaconf.h we have

#if defined(__GNUC__) && ((__GNUC__*100 + __GNUC_MINOR__) >= 302) && \\
    defined(__ELF__)            /* { */
#define LUAI_FUNC       __attribute__((visibility("hidden"))) extern
#define LUAI_DDEC       LUAI_FUNC
#define LUAI_DDEF       /* empty */

#else                           /* }{ */
#define LUAI_FUNC       extern
#define LUAI_DDEC       extern
#define LUAI_DDEF       /* empty */
#endif                          /* } */

Wireshark, gnuplot and rrdtool should be recompiled after fixing this issue.

Actions #3

Updated by Ken Mays almost 8 years ago

  • Status changed from In Progress to Closed
  • Assignee set to OI Userland
Actions

Also available in: Atom PDF