This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: why are stl template classes not mangled as other classes and templates
On Tuesday 27 November 2007 11:09, you wrote:
> On 27 November 2007 15:49, Stephane Hockenhull wrote:
> >> But why are you using -fleading-underscore?
> >
> > on the win32 platform all C symbols requires a leading underscore
>
> Yes, that is the case on almost all platforms.
>
> And the compiler *automatically* puts leading underscores on symbols on
> all those platforms already.
>
> So the question remains: why are you using -fleading-underscores?
>
> -fleading-underscore is intended for use on platforms that *don't*
> require a leading underscore (e.g. ppc), where you might for special
> reasons want to force the symbols to have an underscore anyway.
>
> > everything works fine until we start using std::string objects, there is
> > a bug with the special case name mangling.
> >
> > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34166
>
> Yes, but as you yourself explain, the symbols already have leading
> underscores, and when you use -fleading-underscore, because it fails to
> consistently add *extra* underscores.
no, the symbol have a first underscore because that's how G++ mangles them, it
ALWAYS add 1 underscore (without -fleading-underscore) and some other
characters.
without -fleading-underscore for example "strstr" is called "strstr" but win32
libraries need "_strstr" so -fleading-underscore must be used
with -fleading-underscore gcc/g++ adds an underscore to ALL symbols, including
mangled ones, therefore it need TWO underscores for mangled names and ONE
underscore for normal identifiers.
which g++ does right 99.9% of the time, but it only does it halfway to
std::string.
it tries to call it as "__ZNSs7replaceEmmPKc"
but it instanciate it as "_ZNSs7replaceEmmPKc"
which is clearly a bug
I just need to know where in the code this boolean option is located and where
the mangling is done so I can patch it up.
> So: why are you using -fleading-underscores?
>
> cheers,
> DaveK
I'm an underscorophile, underscores makes me horny, that's why I drive around
town in an blue-screen-painted icecream truck playing windows's boot up
sounds to attract little windows symbols with underscores and "@" signs.
joking aside, we need to generate ELF object files for running on windows.
--
Stephane Hockenhull
SSC-Studios.com