This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc 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: gcc 3.1 20020118 miscompiled ld.so on Linux/mips


On Sun, Jan 20, 2002 at 09:55:38PM +0100, Jakub Jelinek wrote:
> On Sun, Jan 20, 2002 at 12:45:37PM -0800, H . J . Lu wrote:
> > On Sun, Jan 20, 2002 at 11:39:45AM -0800, H . J . Lu wrote:
> > > When I used gcc 3.1 20020118 to compile the current glibc from trunk
> > > on Linux/mips, I got
> > > 
> > > # /export/build/gnu/glibc-3.1/build-mipsel-linux/elf/ld.so.1
> > > zsh: 30232 segmentation fault (core dumped) /export/build/gnu/glibc-3.1/build-mipsel-linux/elf/ld.so.1
> > > 
> > > gcc 2.96 is ok. I am looking into it now.
> > > 
> > 
> > It looks like we need to add -finline-limit=xxxx at least for mips. We
> > have to inline all functions in rtld.c if they are marked as inline
> > since we can't do relocation during ld.so bootstrap.
> 
> The same is true for ia32, alpha or ia64 and I believe other arches too.
> I just always build glibc with -finline-limit=2000 these days and it works.
> Unless somebody is working on improving the tree inliner heuristics for 3.1,
> I believe it should e.g. double the limit for functions with explicit inline
> keyword as opposed to -O3 inlining and double even that for inline nested
> functions.

Before gcc 3.1 is fixed, in the meantime, we should add

-finline-limit=xxxx

if gcc supports it when building glibc. I will write a patch next
week.


H.J.


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