This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Recent bootstrap failure on CentOS 5.11, /usr/bin/ld: Dwarf Error: found dwarf version '4' ...
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Uros Bizjak <ubizjak at gmail dot com>
- Cc: GCC Development <gcc at gcc dot gnu dot org>, Marek Polacek <polacek at redhat dot com>
- Date: Thu, 16 Oct 2014 14:05:35 +0200
- Subject: Re: Recent bootstrap failure on CentOS 5.11, /usr/bin/ld: Dwarf Error: found dwarf version '4' ...
- Authentication-results: sourceware.org; auth=none
- References: <CAFULd4YOmoQZKPLfRrEtJ5DHkkJ4_nQT+2rBd8XKKj+u-8ZF3w at mail dot gmail dot com> <CAFULd4YKWiSPMuzOBJhGNOqEUQ=MP2ffJC-7trrymH2Y1fB5_Q at mail dot gmail dot com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
On Thu, Oct 16, 2014 at 01:57:51PM +0200, Uros Bizjak wrote:
> On Thu, Oct 16, 2014 at 11:25 AM, Uros Bizjak <ubizjak@gmail.com> wrote:
>
> > Recent change caused bootstrap failure on CentOS 5.11:
> >
> > /usr/bin/ld: Dwarf Error: found dwarf version '4', this reader only
> > handles version 2 information.
> > unwind-dw2-fde-dip_s.o: In function `__pthread_cleanup_routine':
> > unwind-dw2-fde-dip.c:(.text+0x1590): multiple definition of
> > `__pthread_cleanup_routine'
> > /usr/bin/ld: Dwarf Error: found dwarf version '4', this reader only
> > handles version 2 information.
> > unwind-dw2_s.o:unwind-dw2.c:(.text+0x270): first defined here
> > /usr/bin/ld: Dwarf Error: found dwarf version '4', this reader only
> > handles version 2 information.
> > unwind-sjlj_s.o: In function `__pthread_cleanup_routine':
> > unwind-sjlj.c:(.text+0x0): multiple definition of `__pthread_cleanup_routine'
> > unwind-dw2_s.o:unwind-dw2.c:(.text+0x270): first defined here
> > /usr/bin/ld: Dwarf Error: found dwarf version '4', this reader only
> > handles version 2 information.
> > emutls_s.o: In function `__pthread_cleanup_routine':
> > emutls.c:(.text+0x170): multiple definition of `__pthread_cleanup_routine'
> > unwind-dw2_s.o:unwind-dw2.c:(.text+0x270): first defined here
> > collect2: error: ld returned 1 exit status
> > gmake[5]: *** [libgcc_s.so] Error 1
> >
> > $ ld --version
> > GNU ld version 2.17.50.0.6-26.el5 20061020
>
> It looks like a switch-to-c11 fallout. Older glibc versions have
> issues with c99 (and c11) conformance [1].
>
> Changing "extern __inline void __pthread_cleanup_routine (...)" in
> system /usr/include/pthread.h to
>
> if __STDC_VERSION__ < 199901L
> extern
> #endif
> __inline__ void __pthread_cleanup_routine (...)
>
> fixes this issue and allows bootstrap to proceed.
>
> However, fixincludes is not yet built in stage1 bootstrap. Is there a
> way to fix this issue without changing system headers?
>
> [1] https://gcc.gnu.org/ml/gcc-patches/2006-11/msg01030.html
Yeah, old glibcs are totally incompatible with -fno-gnu89-inline.
Not sure if it is easily fixincludable, if yes, then -fgnu89-inline should
be used for code like libgcc which is built with the newly built compiler
before it is fixincluded.
Or we need -fgnu89-inline by default for old glibcs (that is pretty
much what we do e.g. in Developer Toolset for RHEL5).
Jakub