On Sun, Jul 6, 2014 at 11:11:08 +0200, Enrico Tassi wrote: > On Sun, Jul 06, 2014 at 12:24:24AM +0200, Julien Cristau wrote: > > So the thing is, having liblua5.1 and liblua5.2 share symbols is a > > recipe for trouble. There's a number of other libraries using each of > > them, and there's as far as I can tell nothing preventing a program from > > using two of those libs, linked against different liblua5.x versions, > > and exploding at runtime. So if we want to keep shipping several liblua > > versions, they need to be made safe against this kind of issues, IMO. > > You are right, I did not think about that. > > AFAIK Lua 5.2 should detect a double runtime and give a decent assertion > failure message. The upstreams did take care of that. But I guess you > would prefer a link time error, or simply have a disjoint symbol set. > > I can make the point on the Lua mailing list, and suggest to have > symbols named like lua51_foo instead of lua_foo and have #define lua_foo > lua51_foo. Assuming they listen to me, this won't happen before 5.3. > Another way to achieve this is ELF symbol versioning. So instead of each lib exporting lua_foo@Base, there would be lua_foo@lua_51, lua_foo@lua_52, lua_foo@lua_53, etc.
Cheers, Julien
signature.asc
Description: Digital signature