[Libreoffice-commits] .: cppu/util

Tor Lillqvist tml at kemper.freedesktop.org
Sun Jan 16 13:33:18 PST 2011


 cppu/util/makefile.mk            |    2 ++
 cppu/util/purpenvhelper3MSCX.map |    8 ++++++++
 2 files changed, 10 insertions(+)

New commits:
commit cf3abb4ad91e2f77f4ca64b012a68001fa0ea8f3
Author: Tor Lillqvist <tlillqvist at novell.com>
Date:   Sun Jan 16 22:13:31 2011 +0200

    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.

diff --git a/cppu/util/makefile.mk b/cppu/util/makefile.mk
index 5eb7eac..47a3c9a 100644
--- a/cppu/util/makefile.mk
+++ b/cppu/util/makefile.mk
@@ -76,6 +76,8 @@ DEF2NAME    := $(SHL2TARGET)
 SHL2VERSIONMAP:=uno_purpenvhelper$(COMID).map
 .ELIF "$(GUI)"=="OS2"
 SHL2VERSIONMAP:=uno_purpenvhelperwntgcc.map
+.ELIF "$(COMNAME)"=="mscx"
+SHL2VERSIONMAP:=$(SHL2TARGET)X.map
 .ELSE
 SHL2VERSIONMAP:=$(SHL2TARGET).map
 .ENDIF			# "$(GUI)$(COM)"=="WNTGCC"
diff --git a/cppu/util/purpenvhelper3MSCX.map b/cppu/util/purpenvhelper3MSCX.map
new file mode 100644
index 0000000..2248519
--- /dev/null
+++ b/cppu/util/purpenvhelper3MSCX.map
@@ -0,0 +1,8 @@
+UDK_3_0_0 {
+    global:
+        ?Environment_initWithEnterable at purpenv@helper at cppu@@YAXPEAU_uno_Environment@@PEAVEnterable at 3@@Z;
+        ?createMapping at purpenv@helper at cppu@@YAXPEAPEAU_uno_Mapping@@PEAU_uno_Environment@@1P6AX_NPEAX3PEAU_typelib_TypeDescriptionReference@@PEAU_typelib_MethodParameter@@JPEBU_typelib_TypeDescription@@3QEAPEAXPEAPEAU_uno_Any@@@Z3 at Z;
+
+    local:
+        *;
+};


More information about the Libreoffice-commits mailing list