Kaydet (Commit) 3e3482dc authored tarafından Tor Lillqvist's avatar Tor Lillqvist

Use separate .map files for 64-bit MSVC build

Unfortunately the C++ name mangling in a 64-bit MSVC compilation is
slightly different from that in a 32-bit one:

-- An 'E' is inserted for pointers to indicate that they are 64
bits. I don't fully understand the rationale for this; isn't that the
only kind of pointer in 64-bit code produced by a C++ compiler anyway?

-- As there is only one calling convention on x64 Windows, __cdecl,
the indications for other calling conventions (here, especially
__thiscall) change to that for __cdecl.

It should be possible to write a tool to at least partially automate
conversion of 32-bit mangled names to 64-bit ones, and thus make it
easy to create mscx map files from the corresponding msci ones in
LibreOffice. Sure, it probably wouldn't work 100% correctly in all
cases, but it would help a lot.
üst 726f5b62
...@@ -76,6 +76,8 @@ DEF2NAME := $(SHL2TARGET) ...@@ -76,6 +76,8 @@ DEF2NAME := $(SHL2TARGET)
SHL2VERSIONMAP:=uno_purpenvhelper$(COMID).map SHL2VERSIONMAP:=uno_purpenvhelper$(COMID).map
.ELIF "$(GUI)"=="OS2" .ELIF "$(GUI)"=="OS2"
SHL2VERSIONMAP:=uno_purpenvhelperwntgcc.map SHL2VERSIONMAP:=uno_purpenvhelperwntgcc.map
.ELIF "$(COMNAME)"=="mscx"
SHL2VERSIONMAP:=$(SHL2TARGET)X.map
.ELSE .ELSE
SHL2VERSIONMAP:=$(SHL2TARGET).map SHL2VERSIONMAP:=$(SHL2TARGET).map
.ENDIF # "$(GUI)$(COM)"=="WNTGCC" .ENDIF # "$(GUI)$(COM)"=="WNTGCC"
......
UDK_3_0_0 {
global:
?Environment_initWithEnterable@purpenv@helper@cppu@@YAXPEAU_uno_Environment@@PEAVEnterable@3@@Z;
?createMapping@purpenv@helper@cppu@@YAXPEAPEAU_uno_Mapping@@PEAU_uno_Environment@@1P6AX_NPEAX3PEAU_typelib_TypeDescriptionReference@@PEAU_typelib_MethodParameter@@JPEBU_typelib_TypeDescription@@3QEAPEAXPEAPEAU_uno_Any@@@Z3@Z;
local:
*;
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment