June 11, 2014
https://issues.dlang.org/show_bug.cgi?id=12894

          Issue ID: 12894
           Summary: Make extern(Windows) behave like extern(C) on
                    non-Windows systems
           Product: D
           Version: D1 & D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: DMD
          Assignee: nobody@puremagic.com
          Reporter: bugzilla@digitalmars.com

Currently,

    extern (Windows) int foo(int a, int b);

mangles on non-Windows systems as:

    foo@16

This doesn't really make any sense or have any use. It is not compatible with anything.

I propose changing it to behave like extern(C). This has the advantage that there is significant C code out there that mangles with Windows on Windows and otherwise C, and this will make these sorts of things easily compatible with D declarations.

It will require recompiling of any non-Windows libraries that use
extern(Windows).

--