This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: [Bug c++/12175] [3.4 Regression] Tru64 UNIX bootstrap failure: multiply defined symbols linking libstdc++.so
> PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12175
>
>
>
> ------- Additional Comments From dave at hiauly1 dot hia dot nrc dot ca 2003-09-28 20:39 -------
> Subject: Re: [3.4 Regression] Tru64 UNIX bootstrap failure: mu
>
> > Yes, this is the decl I am looking for (the _GLOBAL symbol is added later).
> > It
> > really is external so probably the patch I sent you will help.
> > Can you send me backtrace of this call?
> > It seems wrong to me that someone calls notice_global_symbol on it.
>
> I think there is only one call that matters here, that's the one
> in assemble_start_function. I believe that there is a small bug
> in notice_global_symbol. It seems to me the function of this
> routine is just to set appropriate values for first_global_object_name
> and weak_global_object_name in a given translation unit. The way
> the code is written first_global_object_name or weak_global_object_name
> can set several times until both get set. I don't know if this matters
> but we certainly don't get the "first" global object name saved in
> first_global_object_name.s
This does not matter much - in fact we need some global object name, but
you are right that we should avoid duplicated work.
So the call comes from assemble_start_function that calls it on external
decl?
Honza
>
> Possibly, you are correct that we are accidently picking an external
> symbol for the first global object name and this is causing the duplication
> in constructor names.
>
> Dave