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 | 726f5b622b027d26f1d2ae6a31beadffb5c48312 (patch) | |
tree | 1bdf48554b333c5567d6ba5f9e90b2c8c1bf7d83 | |
parent | 7e86fc3fe72f67b0d9240b4afad28c66dc482c80 (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.
-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 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; |