bug-binutils
[Top][All Lists]
Advanced

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

[Bug ld/16835] New: PE/COFF: __image_base__ and __ImageBase have differ


From: corinna at vinschen dot de
Subject: [Bug ld/16835] New: PE/COFF: __image_base__ and __ImageBase have different values
Date: Fri, 11 Apr 2014 15:21:25 +0000

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

            Bug ID: 16835
           Summary: PE/COFF:  __image_base__ and __ImageBase have
                    different values
           Product: binutils
           Version: 2.25 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: corinna at vinschen dot de

Created attachment 7549
  --> https://sourceware.org/bugzilla/attachment.cgi?id=7549&action=edit
Fix __ImageBase value for DLLs rebased to a fixed value in the .def file

When building DLLs with a .def file which also provides a fixed
image base address, then the values of __image_base__ and __ImageBase
differ.

The value of __image_base__ is correct (on 32 bit), the value of
__ImageBase looks weird.

The reason is that ld first evaluates the default address for
__image_base__ and then sets __ImageBase to the same value.  However,
when ld encounters another image base address in the .def file, it
sets the value of __image_base__, but neglects to set __ImageBase
to the same value.

I attached a patch suggestion.

This patch does, of course, not fix the problem that both values,
__image_base__ as well as __ImageBase, are still truncated to 32 bit
on x86_64, if the DLL or executable is located at an address beyond
the lowest 32 bit memory address space.


Corinna

-- 
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]