This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: glibc broken with 3.4...


> On Sun, Sep 07, 2003 at 03:58:29PM +0200, Jan Hubicka wrote:
> > extern int t();
> > q()
> > {t();}
> > extern int t() asm("t2");
> 
> I don't think we should support this.  The glibc case I fear does 
> need to be handled.  Both with an asm specifier as above or with
> 
>   #pragma redefined_extname oldname newname
>   #pragma extern_prefix "prefix"
> 
> which we implemented for solaris and tru64 system header support.

I made patch for this:
http://gcc.gnu.org/ml/gcc-patches/2003-08/msg01832.html
it, however refuse more sanier testcase

extern int __isinf (double __value) __attribute__ ((__const__));
extern __typeof (__isinf) __isinf __asm__ ("" "__GI___isinf") __attribute__ ((visibility ("hidden")));
extern __typeof (__isinf) __GI___isinf; 

This is what is done in glibc.  This would be acceptable, but __typeof
(__isinf) counts as used so error fires.  In the case we want to accept
this somewhat, we would run into issues with slightly modified testcase
where extern inline version of function is provided first and rename
later.  This would break already without my code for renaming in cgraph
hashtables I use on hammer branch as the extern inline body is finalized
first.

Any idea where to go from here?

Honza
> 
> 
> r~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]