Bootstrapping cross-toolchain for ia64

Message ID 20161104141647.231bb720b4679f7fe57bd81a@danny.cz
State New, archived
Headers

Commit Message

Dan Horák Nov. 4, 2016, 1:16 p.m. UTC
  On Fri, 4 Nov 2016 13:06:05 +0000
Joseph Myers <joseph@codesourcery.com> wrote:

> On Fri, 4 Nov 2016, Adhemerval Zanella wrote:
> 
> > I faced the same issue and the solution I found was to configure
> > gcc with '--disable-shared'.  It is not an optimal approach for a
> > complete toolchain, but it is at least suffice to correctly build
> > glibc.
> 
> The first GCC (whose build fails) *is* configured with
> --disable-shared (and --without-headers --with-newlib to get
> inhibit_libc defined).  It still tries to build unwind code that
> includes libc headers unconditionally.

we used to have the following patch in the Fedora cross-gcc
http://pkgs.fedoraproject.org/cgit/rpms/cross-gcc.git/log/cross-gcc-with-libgcc.patch



		Dan
  

Comments

Joseph Myers Nov. 4, 2016, 1:31 p.m. UTC | #1
On Fri, 4 Nov 2016, Dan Horák wrote:

> On Fri, 4 Nov 2016 13:06:05 +0000
> Joseph Myers <joseph@codesourcery.com> wrote:
> 
> > On Fri, 4 Nov 2016, Adhemerval Zanella wrote:
> > 
> > > I faced the same issue and the solution I found was to configure
> > > gcc with '--disable-shared'.  It is not an optimal approach for a
> > > complete toolchain, but it is at least suffice to correctly build
> > > glibc.
> > 
> > The first GCC (whose build fails) *is* configured with
> > --disable-shared (and --without-headers --with-newlib to get
> > inhibit_libc defined).  It still tries to build unwind code that
> > includes libc headers unconditionally.
> 
> we used to have the following patch in the Fedora cross-gcc
> http://pkgs.fedoraproject.org/cgit/rpms/cross-gcc.git/log/cross-gcc-with-libgcc.patch

Thanks.  I see that stdlib.h include was removed by

r231697 | edlinger | 2015-12-16 15:24:52 +0000 (Wed, 16 Dec 2015) | 5 lines

2015-12-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>

        * unwind-generic.h (_Unwind_GetTextRelBase): Call __builtin_abort
        instead of abort to avoid dependency on stdlib.h.

so I'll see if the problem goes away with newer GCC (I'm initially trying 
to clean up results with GCC 5 branch before going on to GCC 6 and 
mainline).
  

Patch

diff -up gcc-4.7.0/libgcc/unwind-generic.h.cross-libgcc-ia64 gcc-4.7.0/libgcc/unwind-generic.h
--- gcc-4.7.0/libgcc/unwind-generic.h.cross-libgcc-ia64 2012-06-01 18:14:22.552450391 +0200
+++ gcc-4.7.0libgcc/unwind-generic.h 2012-06-01 18:14:42.523121821 +0200
@@ -211,7 +211,9 @@ 
_Unwind_SjLj_Resume_or_Rethrow (struct _ compatible with the standard ABI for IA-64, we inline these.  */

 #ifdef __ia64__
+#ifndef inhibit_libc
 #include <stdlib.h>
+#endif

 static inline _Unwind_Ptr
 _Unwind_GetDataRelBase (struct _Unwind_Context *_C)