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


Jim Wilson wrote:
> 
> 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.

We do the same on FreeBSD. I do get an internal compiler error when
cross-compiling from i386 to Alpha:

/usr/src/lib/libmd/md2c.c:167: internal error--unrecognizable insn:
(insn 26 24 28 (set (reg:DI 79)
        (and:DI (plus:DI (reg/v:DI 69)
                (const_int 586478694938416944 [0x823974408239730]))
            (const_int -8 [0xfffffffffffffff8]))) -1 (insn_list 4 (nil))
    (nil))

This is with with gcc version 2.95.2 19991024 (release).

I had a patch for an older gcc that solved this. I only needed to add 4
prototypes of functions that took HOST_WIDE_INT arguments. That patch
doesn't work anymore on 2.95.2, although the failure mode looks the
same.

I'm not sure this is a FreeBSD issue or a gcc issue and thus don't know
if you can expect the same on Linux (I have to test that as well)...

-- 
Marcel Moolenaar
  mail: marcel@cup.hp.com / marcel@FreeBSD.org
  tel:  (408) 447-4222

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