Recent bootstrap failure on CentOS 5.11, /usr/bin/ld: Dwarf Error: found dwarf version '4' ...
Uros Bizjak
ubizjak@gmail.com
Thu Oct 16 11:57:00 GMT 2014
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
Uros.
More information about the Gcc
mailing list