[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Shared libraries
- From: Coda Highland <chighland@...>
- Date: Tue, 13 May 2014 13:48:19 -0700
On Tue, May 13, 2014 at 1:27 PM, hasufell <hasufell@gentoo.org> wrote:
> I'm confused why this thread gets ignored.
>
> You probably don't realize that distros randomly fix this and cause more
> of a mess for lua users, because there is no consistency whatsoever.
>
> Not fixing this also breaks compatibility with C# programs under linux
> that cannot link to the static lib (you don't want to link it statically
> into mono).
>
> This effectively decreases quality of lua.
If you really want to push for a response, I'll give you a blunt
answer: You're looking at it from a very limited perspective.
On Windows and OSX, the behavior of a static library is exactly what
you DO want. You don't want to trust that the shared libraries are
going to be compatible, because you don't have any promises -- there's
no package tree maintainer to put trust in.
If you're applying patches to Lua, the behavior of a static library
is, again, exactly what you want. You don't want your patches to
affect the ecosystem as a whole.
If you're worried about hardening your application by sandboxing Lua,
the behavior of a static library is desirable, to prevent bypassing
the sandbox by hijacking the dynamic loader or by replacing the
library without the application's knowledge.
On embedded Linux, the behavior of a static library is ALSO likely to
be what you want, to reduce footprint and avoid interactions. If it
isn't what you want, there are configuration flags to change that. On
embedded Linux, you probably have control over the whole system.
Ecosystems like desktop Linux where you've got a tree of package
dependencies are the EXCEPTION, not the norm -- and it's easy to
forget this when you've been using it for a long time.
Lua offers the options to change how it's built. If you're a Linux
package maintainer, and your platform would be best served by a
dynamic library, then use the option. That's why it's there. It's
fully supported.
/s/ Adam