Alexander Langer wrote:
> 
> cc -O -pipe -I/usr/src/lib/libmd
> -I/usr/obj/alpha/usr/src/i386/usr/include -c /usr/src/lib/libmd/md2c.c
> -o md2c.o
> /usr/src/lib/libmd/md2c.c: In function `MD2Final':
> /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 a known problem; at least to me. We have this since the early
days of cross-compiling. I have a patch on my side that worked with the
previous gcc. I applied this patch with the new gcc and it still fails.
I have to find the bug and send a patch to cygnus...

If you're feeling lucky, you can download the patch I have on my webpage
(http://people.freebsd.org/~marcel) and start from their. I suspect (or
rather hope) it's as simple as providing some prototypes to get it to
work again. That was how I fixed it before...

Looking at the failure, I think it's just that (ie a lack of prototype
causes gcc to assume an argument is int (which is 32-bits for us) and
creates the call-site as such, but while compiling the function itself
it creates a 64-bit integral for that argument)...

HTH,

-- 
Marcel Moolenaar
  mail: [EMAIL PROTECTED] / [EMAIL PROTECTED]
  tel:  (408) 447-4222


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to