This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


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

Re: IA64 cross compilation broken


In article <20000802133204Y.mitchell@codesourcery.com> you write:
>I can't seem to build a x86->ia64 cross compiler.  I get:
>
>  ../../gcc/libgcc2.h:99: no data type for mode `TI'
>  ../../gcc/libgcc2.h:100: no data type for mode `TI'

I believe all cross compilation from 32-bit hosts to 64-bit targets is broken.

This is a consequence of two patches:
1) Kenner's patch to make the DImode routines in libgcc2.c do TImode
   arithmetic for 64-bit targets (Apr 15).
1) John Anglin's change to disable TImode for 32-bit hosts (May 17).

This isn't an immediate problem for me, as I never build cross compilers to
IA-64 anymore, and I haven't had time to worry about it yet.

The IA-64 port doesn't have any 128-bit types, so we don't actually need any
TImode functions in libgcc2.c.  But then the Alpha doesn't either as far as
I know.  Maybe Kenner needed them for Ada?

At Red Hat, we have a configure hack that sets HOST_WIDE_INT to "long long" if
the host is a 32-bit machine, and the target is a 64-bit machine.  That makes
the cross compilers work at the expense of getting bigger and slower cc1
binaries.  I don't know if any other changes are required other than the
configure hack.  Oh, it does require that you use gcc to compile the cross
compiler.

Jim

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