This is the mail archive of the gcc-bugs@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]

[Bug target/28930] [4.2.0] regression



------- Comment #5 from edmar at freescale dot com  2006-09-01 20:03 -------
(In reply to comment #4)
> Subject: Re:   New: [4.2.0] regression
> 
> On Fri, 1 Sep 2006, edmar at freescale dot com wrote:
> 
> > During the build of glibc (2.3.6) there is a file (csu/initfini.c) that has
> > several asm statements. After compiling, the resulting asm file will be the
> > source of some sed scripts that generates crti.S and crtn.S.
> > 
> > Using gcc-trunk snapshot from 20060828, and gcc-4.0.2, the generated files
> > initfini.s differs to a point that the sed scripts gets totaly lost.
> 
> The ARM version of initfini.c does
> 
> /* Prevent this function from being inlined.  Otherwise half of its
>    constant pool will end up in crti and the other half in crtn.  */
> 
> static void call_gmon_start (void) __attribute__((noinline));
> 
> #include <sysdeps/generic/initfini.c>
> 
> to avoid problems with the asm processing of this file.  Does using 
> noinline like this work for you?
> 
It does change the inlining of call_gmon_start, but nothing else. I think the
critical point is the positioning of /*@_init_EPILOG_ENDS*/ and other markers
like it within the file.

Of course someone could argue that gcc is not doing anything wrong, and glibc
scripts is making too much assumptions. But if this change was accidental, and
could be reversed, it would be nice ...


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28930


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