[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    dll-separated lzexpand doesn't work
From:       Ove Kaaven <ovehk () ping ! uio ! no>
Date:       2001-04-26 2:41:49
[Download RAW message or body]

At least not on debian unstable...
I've tracked the problem down to:

lzexpand_main.c, function LZCopy, line 525:

    xread=(_readfun)LZRead; 

assembles as:

        movl LZRead@GOT(%ebx),%edx
        movl %edx,-1012(%ebp)

so it reads out the address of LZRead out of the GOT.

The final result in liblz32.so becomes:

    5eb7:       8b 93 44 00 00 00       mov    0x44(%ebx),%edx
    5ebd:       89 95 0c fc ff ff       mov    %edx,0xfffffc0c(%ebp)

but because of the -symbolic linker switch, there's no such GOT entry.
CRASH!

The GOT entry for LZRead should be at 00007d64 in the dynamic relocation
table, as far as I can tell from objdump and peeking at the GOT, but in
the relocation table there's only this...

...
00007d60 R_386_GLOB_DAT    __dso_handle
00007d68 R_386_GLOB_DAT    __deregister_frame_info
...

What can be done about this? Submit bug reports on ld?

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic