Hmm, when was this problem last discussed? I'd like to read about it. I seem to recall something about C++ static initializers, which is one reason why you need this wrapper thing (to init winelib before the app starts), but what is this about intercepting variables?
Is the problem with altering the GOT a matter of writing a parser, or figuring out which entries are variables, or something else?
It seems to me that adding PE support to the rtld would be hard to write and extremely difficult to actually get merged by the glibc team - of course you can still alter .interp to use a wine specific linker, but I think that would get messy dependancy wise (i doubt ld is well insulated from the rest of the glibc internals). It'd probably be easier to add ELF support to Wine.
On Tue, 2003-05-20 at 17:24, Alexandre Julliard wrote:
"Dimitrie O. Paun" dpaun@rogers.com writes:
On May 19, 2003 01:21 pm, Alexandre Julliard wrote:
Ah right, I forgot about that one. Yes this is a pain to solve; it will probably require the loader to go muck about in the ELF GOT.
OK, which means... :) Do we have a solution for this around the corner, or we have to find another workaround for the Winelib apps?
It basically means teaching ld.so about the PE format, and/or teaching our PE loader about the ELF format. We don't have a solution around the corner, and we are unlikely to have one any time soon IMO. The simplest approach is to build the Winelib app in PE format, but of course that's not ideal...