On Mon, 2006-07-31 at 20:43 +0900, Mike McCormack wrote:
OK, it seems to be that the preloader can't lookup the ELF symbol "wine_main_preload_info" in wine-pthread.
I agree. My gdb cannot show variables in 32-bit binaries (or maybe it's just something Wine specific), but it shows the line numbers. I traced find_symbol() in preloader.c, and it seems like symtabend is 0, so that the last loop is skipped and NULL is returned. This is also evidenced by the lack of "Found" in the log I sent in the previous message.
That's bad, because the preloader is reserving memory, but has no way to let wine-pthread know which memory it reserved.
Can you see that symbol exported from wine-pthread?
mike@black:~/wine$ nm loader/wine-pthread | grep wine_main_preload_info 7bf023d8 B wine_main_preload_info
$ nm loader/wine-pthread | grep wine_main_preload_info 000000007bf02434 B wine_main_preload_info
Also, which version of gcc/ld are you using? For me:
GNU ld version 2.17 Debian GNU/Linux gcc version 4.1.2 20060715 (prerelease) (Debian 4.1.1-9)
Apart from the custom kernel, that's all from the current Fedora Development:
gcc (GCC) 4.1.1 20060721 (Red Hat 4.1.1-13) GNU ld version 2.17.50.0.3-2 20060715
It's a x86_64 system, but I have the necessary packages for i386 development. I don't have SELinux enabled.