diff options
author | Tor Lillqvist <tlillqvist@novell.com> | 2011-01-16 22:13:31 +0200 |
---|---|---|
committer | Tor Lillqvist <tlillqvist@novell.com> | 2011-01-16 22:23:32 +0200 |
commit | 40773f5b34b6e8776e0733a9c6d3ce2504f9645d (patch) | |
tree | de6c0c5112b8851867304d13f57201654693377f /salhelper/source | |
parent | 60f523c253e988d310ca2e14aff817e916ad2e7e (diff) |
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.
Diffstat (limited to 'salhelper/source')
-rw-r--r-- | salhelper/source/makefile.mk | 2 | ||||
-rw-r--r-- | salhelper/source/mscx.map | 50 |
2 files changed, 52 insertions, 0 deletions
diff --git a/salhelper/source/makefile.mk b/salhelper/source/makefile.mk index 26acb2e30..f4e54ea3c 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 000000000..58f26e904 --- /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; |