Apache OpenOffice (AOO) Bugzilla – Issue 77975
add map files for 64bit gcc
Last modified: 2007-06-29 11:46:01 UTC
i.e. see discussion in issue 77422 where we are not applying map files to salhelper/cppuhelper for x86_64
starting
done in cmcfixes35
->Caolan, I understand that you changed the map files according to our discussions in 77422. I have to admit that I only recently understood the reasons for the differences in the map files. The differences for Linux x86 and x86-64 are basically: - exported thunks (which ideally shouldn't be exported) - different typedefs for sal_Int32 (which basically is a "bug" and should have been fixed). As these differences are basically because of errors, I suggest (in contrast to my original comment, sorry for that ;-) to use exactly one map file for every ABI and to make this map file variable wrt the above issues. E.g. - for thunks we may want to replace symbol prefixes "_ZThn<number>..." with "_ZThn*...", - for symbols with mangled sal_Int32 we may want to replace the "l" or "i" with "?" What do you think? Sorry for bothering you Kay
kr: +1 for one map file...
*shrug*, sure, no skin off my nose. This issue was just to mirror the 32bit ones into the 64bit ones. Make the changes you want and I'll just back this mirror 32 to 64 out of my workspace. I would suggest though, if it makes sense to you, that we unify the platforms which are already using the "linux" gcc map file and make it a generic "gcc" one e.g. .IF "$(COMNAME)"=="msci" SHL1VERSIONMAP=msvc_win32_intel.map .ELIF "$(COMNAME)"=="sunpro5" SHL1VERSIONMAP=cc5_solaris_sparc.map .ELIF "$(GUI)$(COM)"=="WNTGCC" SHL1VERSIONMAP=mingw.map .ELIF "$(COMNAME)" == "gcc3" SHL1VERSIONMAP=gcc3_whatever.map .ENDIF we already point all our gcc platforms (except for windows) to the same .map file, this way we don't have to go around adding e.g. POWERPC64 or ARM or ALPHA when (if) those ports come onstream.
->Caolan: You are right, the simplification should certainly be reflected in the makefiles, e.g. the relevant part of cppuhelpers makefile is going to look like: .IF "$(COMNAME)"=="msci" SHL1VERSIONMAP=msvc_win32_intel.map .ELIF "$(COMNAME)"=="sunpro5" SHL1VERSIONMAP=cc5_solaris_sparc.map .ELIF "$(COMNAME)"=="gcc3" SHL1VERSIONMAP=gcc3.map .ENDIF While I rename "gcc3_linux_intel.map" to plain "gcc3.map". If I understand correctly (and from what I have seen in "mingw.map"), even the mingw port should use the same map file, so that I am going to remove "mingw.map".
yeah, the windows gcc shouldn't need separate maps. As long as the existing ones match the linux one they should go, but I guess if any of them do differ for some reason best to leave them alone :-)
ok, so ditching this particular task to make 64bit .map files, and so reverted from cmcfixes35