bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/23854] -no-pie -export-dynamic corrupts binary


From: hjl.tools at gmail dot com
Subject: [Bug ld/23854] -no-pie -export-dynamic corrupts binary
Date: Sun, 04 Nov 2018 22:24:27 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=23854

--- Comment #3 from H.J. Lu <hjl.tools at gmail dot com> ---
(In reply to Stas Sergeev from comment #2)
> (In reply to H.J. Lu from comment #1)
> > dpmi.o has:
> > 
> >     8f69:       8b 83 00 00 00 00       mov    0x0(%ebx),%eax   8f6b:
> > R_386_GOT32X      DPMI_return_from_realmode
> >     8f6f:       66 05 00 48             add    $0x4800,%ax
> >     8f73:       66 2b 83 00 00 00 00    sub    0x0(%ebx),%ax    8f76:
> > R_386_GOT32X      DPMI_dummy_start
> >     8f7a:       66 89 46 30             mov    %ax,0x30(%esi)
> These functions are not from dpmi.c, they
> are from another translation unit. The function
> of interest is "do_dpmi_int" - it gets corrupted,
> as my test-case shows.
> 
> > Does dpmi.o contain normal i386 code?
> Yes, but not the ones you pointed to.
> These should be undefined in dpmi.c, and
> are actually written in 16bit asm.
> Please inspect "do_dpmi_int" instead - it
> is a valid C func from dpmi.o.
> You can see from my .gdbinit script where
> the corruption actually happens.

do_dpmi_int has

    8f69:       8b 83 00 00 00 00       mov    0x0(%ebx),%eax   8f6b:
R_386_GOT32X      DPMI_return_from_realmode
    8f6f:       66 05 00 48             add    $0x4800,%ax
    8f73:       66 2b 83 00 00 00 00    sub    0x0(%ebx),%ax    8f76:
R_386_GOT32X      DPMI_dummy_start
    8f7a:       66 89 46 30             mov    %ax,0x30(%esi)
    8f7e:       0f b7 45 2c             movzwl 0x2c(%ebp),%eax

Please show me the corresponding C code.

-- 
You are receiving this mail because:
You are on the CC list for the bug.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]