www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 20036] New: COFF: missing relocations in large object files

https://issues.dlang.org/show_bug.cgi?id=20036

          Issue ID: 20036
           Summary: COFF: missing relocations in large object files
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Windows
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: r.sagitario gmx.de

If an COFF object file section has more than 65535 relocations, only a part of
them are actually written to the object file:


__gshared int x = 7;
__gshared int*[70000] px = &x;

void main()
{
        foreach(p; px)
                assert(p && *p == 7);
}

Building on Windows with -m64 or -32mscoff causes the assertion to fail.

--
Jul 08 2019