From 726f5b622b027d26f1d2ae6a31beadffb5c48312 Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Sun, 16 Jan 2011 22:13:31 +0200 Subject: Use mscx.map 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. --- salhelper/source/makefile.mk | 2 ++ salhelper/source/mscx.map | 50 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 salhelper/source/mscx.map (limited to 'salhelper/source') diff --git a/salhelper/source/makefile.mk b/salhelper/source/makefile.mk index 26acb2e3051d..f4e54ea3c5c7 100644 --- a/salhelper/source/makefile.mk +++ b/salhelper/source/makefile.mk @@ -69,6 +69,8 @@ DEF1NAME= $(SHL1TARGET) .IF "$(COMNAME)"=="msci" SHL1VERSIONMAP=msci.map +.ELIF "$(COMNAME)"=="mscx" +SHL1VERSIONMAP=mscx.map .ELIF "$(GUI)"=="OS2" SHL1VERSIONMAP=gcc3os2.map .ELIF "$(COMNAME)"=="sunpro5" diff --git a/salhelper/source/mscx.map b/salhelper/source/mscx.map new file mode 100644 index 000000000000..58f26e9041ab --- /dev/null +++ b/salhelper/source/mscx.map @@ -0,0 +1,50 @@ +UDK_3_0_0 { + global: +GetVersionInfo +??0ORealDynamicLoader@salhelper@@IEAA@PEAPEAV01@AEBVOUString@rtl@@1PEAX2@Z +??1ORealDynamicLoader@salhelper@@MEAA@XZ +??_7ORealDynamicLoader@salhelper@@6B@ +?acquire@ORealDynamicLoader@salhelper@@QEAAKXZ +?getApi@ORealDynamicLoader@salhelper@@QEBAPEAXXZ +?newInstance@ORealDynamicLoader@salhelper@@SAPEAV12@PEAPEAV12@AEBVOUString@rtl@@1@Z +?release@ORealDynamicLoader@salhelper@@QEAAKXZ +??1SimpleReferenceObject@salhelper@@MEAA@XZ +??2SimpleReferenceObject@salhelper@@SAPEAX_K@Z +??2SimpleReferenceObject@salhelper@@SAPEAX_KAEBUnothrow_t@std@@@Z +??3SimpleReferenceObject@salhelper@@SAXPEAX@Z +??3SimpleReferenceObject@salhelper@@SAXPEAXAEBUnothrow_t@std@@@Z + local: + *; +}; + +UDK_3.1 { + global: + ??_VSimpleReferenceObject@salhelper@@KAXPEAX@Z; + ??_7SimpleReferenceObject@salhelper@@6B@; + + ??0Condition@salhelper@@QEAA@AEAVMutex@osl@@@Z; + ??1Condition@salhelper@@UEAA@XZ; + + ??0ConditionModifier@salhelper@@QEAA@AEAVCondition@1@@Z; + ??1ConditionModifier@salhelper@@QEAA@XZ; + + ??0ConditionWaiter@salhelper@@QEAA@AEAVCondition@1@@Z; + ??0ConditionWaiter@salhelper@@QEAA@AEAVCondition@1@K@Z; + ??1ConditionWaiter@salhelper@@QEAA@XZ; + + ??0timedout@ConditionWaiter@salhelper@@QEAA@XZ; + ??0timedout@ConditionWaiter@salhelper@@QEAA@AEBU012@@Z; + ??1timedout@ConditionWaiter@salhelper@@UEAA@XZ; + ??4timedout@ConditionWaiter@salhelper@@QEAAAEAU012@AEBU012@@Z; + + ??0Timer@salhelper@@QEAA@XZ; + ??0Timer@salhelper@@QEAA@AEBUTTimeValue@1@@Z; + ??0Timer@salhelper@@QEAA@AEBUTTimeValue@1@0@Z; + ??1Timer@salhelper@@MEAA@XZ; + + ?isExpired@Timer@salhelper@@QEBAEXZ; + ?isTicking@Timer@salhelper@@QEBAEXZ; + ?setRemainingTime@Timer@salhelper@@QEAAXAEBUTTimeValue@2@@Z; + ?start@Timer@salhelper@@QEAAXXZ; + ?stop@Timer@salhelper@@QEAAXXZ; +} UDK_3_0_0; -- cgit