wine_main_preload_info not found, cannot use first megabyte, *.exe don't work

Mike McCormack mike at codeweavers.com
Mon Jul 31 09:41:46 CDT 2006


Pavel Roskin wrote:

> find_symbol() looks for DT_HASH (4) to set symtabend and fails to find
> it.  As I understand it, we should trick ld into creating the DT_HASH
> tag or use some other way to locate wine_main_preload_info.
> 
> The 6ffffef5 tag is DT_GNU_HASH - that may be a good alternative to
> DT_HASH.  Adding -Wl,--hash-style=sysv to the gcc flags when linking
> wine-pthread solves the problem!!!
> 
> I think adding support for DT_GNU_HASH would be a good idea anyway.

Great work!  There's some information on DT_GNU_HASH here:

http://sourceware.org/ml/binutils/2006-06/msg00418.html

Looks like we don't actually use the hash table to look up the symbol, 
just to find the last entry in the symbol table.

I agree with you the best way to solve the problem would be to handle 
DT_GNU_HASH.

Mike



More information about the wine-devel mailing list