HexDecOctBin 2 days ago

libgl can be dlopened, glibc can't be. That is the problem. If libgl has some incompatibility, I can try to work around that. If glibc has some incompatibility, my executable won't even launch.

I agree with this article completely.

1
dataflow 1 day ago

> libgl can be dlopened, glibc can't be. That is the problem.

What exactly prevents this for glibc? I assume you'd need a dlopen equivalent from somewhere for bootstrapping, but are there other issues (like TLS or whatnot)?

HexDecOctBin 1 day ago

Yeah, TLS is one reason. I don't remember the details, but last time I looked into it, glibc abd the loader have some private interface that they use to load the program correctly, and there are no stability guarantees for this interface. Ideally, the loader and libdl will ship with the kernel, and glibc will have to use the public interface they expose.

dataflow 1 day ago

If that's the case then it feels like it proves they just don't care enough about compatibility...