This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: gcc 3.1 20020118 miscompiled ld.so on Linux/mips
- From: Jakub Jelinek <jakub at redhat dot com>
- To: "H . J . Lu" <hjl at lucon dot org>
- Cc: gcc at gcc dot gnu dot org, GNU C Library <libc-alpha at sources dot redhat dot com>
- Date: Sun, 20 Jan 2002 21:55:38 +0100
- Subject: Re: gcc 3.1 20020118 miscompiled ld.so on Linux/mips
- References: <20020120113945.A7433@lucon.org> <20020120124537.A8405@lucon.org>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
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.
Jakub