dll-separated lzexpand doesn't work
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(a)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?
participants (1)
-
Ove Kaaven