Issue 80735 - cppu: make the gcc3 map generic for 64bit as well
Summary: cppu: make the gcc3 map generic for 64bit as well
Status: CLOSED FIXED
Alias: None
Product: udk
Classification: Code
Component: code (show other issues)
Version: current
Hardware: All Linux, all
: P3 Trivial (vote)
Target Milestone: OOo 2.4
Assignee: kay.ramme
QA Contact: issues@udk
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-08-16 15:01 UTC by caolanm
Modified: 2007-11-16 15:34 UTC (History)
7 users (show)

See Also:
Issue Type: PATCH
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
merge 32bit and 64bit maps (1.63 KB, patch)
2007-08-16 15:01 UTC, caolanm
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description caolanm 2007-08-16 15:01:07 UTC
i.e. on my ppc64 build I got
_ZN4cppu6helper7purpenv13createMappingEPP12_uno_MappingP16_uno_EnvironmentS6_PFvbPvS7_P33_typelib_TypeDescriptionReferenceP24_typelib_MethodParameteriPK24_typelib_TypeDescriptionS7_PS7_PP8_uno_AnyES7_

which the x86_64,map has, but sounds better to wildcard the i/l with ? and merge
the x86_64 and 32bit ones into one that works for all gcc's including the ppc64 port
Comment 1 caolanm 2007-08-16 15:01:36 UTC
Created attachment 47572 [details]
merge 32bit and 64bit maps
Comment 2 caolanm 2007-08-16 15:06:34 UTC
I'll look after this after I confirm that ppc64/ppc/x86_64/i386 all build and work.
Comment 3 eric.bachard 2007-08-16 23:13:24 UTC
+ me on CC
Comment 4 caolanm 2007-08-20 14:15:08 UTC
Works for me in i386/x86_64/ppc/ppc64.

cmc->vq: Does the cygwin/mygwin windows gcc port really need a different .map
file or would the proposed map file attached below be sufficient so as to merge
all the gcc .map files together
Comment 5 quetschke 2007-08-20 16:36:31 UTC
> cmc->vq: Does the cygwin/mygwin windows gcc port really need a different .map
> file or would the proposed map file attached below be sufficient so as to merge
> all the gcc .map files together

@cmc: I don't know, but tono does. I added him to the cc list.
Comment 6 tono 2007-08-20 22:33:46 UTC
cmc: Mingw port is handling version map file to export symbols by converting 
it to .def file as MSVC build does.

So the version map file cannot include wild-card characters in its symbol 
expressions although the mangled names are very similar to those in version 
map files for other gcc platforms.

tono (Takashi Ono)
Comment 7 Stephan Bergmann 2007-08-21 08:46:20 UTC
@tono:  Would it be OK for the generated def file to contain extra symbol names
that are not present in the object?  If yes, we could devise some scheme by
which we expand wildcards in the generic map file into multiple entries in the
generated def file, of which one would represent an actual symbol and the others
would be ignored.
Comment 8 kay.ramme 2007-08-21 11:41:29 UTC
AFAIK, we are doing what SB suggested for Mac OS X as well, if I remember
correctly Tino did implement this -> adding Tino to CC:.
Comment 9 Stephan Bergmann 2007-08-21 14:12:40 UTC
@kr:  No, for Mac OS X we deliberately introduce wildcards into the map files so
that the linker does not complain about missing symbols.  See for example
jvmaccess/util/gcc3_linux_intel.map:1.14 l. 64--66:  "We prefix the next two
symbols with a wildcard sign because they will only be generated by gcj.  The
Mac OS X linker doesn't support 'Treat not existing symbols as warning' under
certain circumstances and thus ends with an error when trying to find these
symbols (see man ld on Mac OS X).  For further details see also #i69351#.  By
using the wildcard the symbols will be filtered out before."
Comment 10 kay.ramme 2007-08-22 10:27:21 UTC
->SB: Not sure if I understand you correctly. The Mac OS X mechanism does a "nm"
on all *.o and basically filters these against the appropriate map file using
awk, actually achieving an "expansion" of the wildcards against the available
symbols ... Thought the same was wished for mingw.
Comment 11 tono 2007-08-22 15:32:23 UTC
@sb and all: Cuurently mingw port is handling version map just in the same way 
as MSVC build. So the extra symbol in version map will generate extra symbol 
in .def and cause linkage error.
However, it is possible to introduce conditional make in tg_def.mk to hadle 
mingw case differently and use nm and awk although it may be a bit slower.

I will try to implement it but until then, mingw have to have dedicated 
version map.

tono (Takashi Ono)
Comment 12 kay.ramme 2007-08-22 15:44:47 UTC
->Tono: Do you think it would be possible to re-use the Mac OS X stuff? Though
not too pretty :-) it is actually there and works reasonably well ...
Comment 13 caolanm 2007-08-23 08:13:10 UTC
Does someone from udk want to take this task over, given that the cygwin stuff
complicates what I originally saw as a simple tweak ?
Comment 14 caolanm 2007-10-15 12:10:01 UTC
k, I've merged them in cmcfixes38. I left the cygwin situation unaffected with a
un-wildcarded version and the other gcc platforms use a common map.
Comment 15 caolanm 2007-10-15 19:05:49 UTC
cmc->kr: for verification in cmcfixes38
Comment 16 kay.ramme 2007-10-18 15:49:58 UTC
->Caolan: Please give me two weeks. I am currently away and going on vacation
afterwards ... ;-)
Comment 17 kay.ramme 2007-10-31 10:11:59 UTC
Looks good so far :-)
Comment 18 caolanm 2007-11-16 15:34:41 UTC
seen in SRC680_m237