cross-building broken?

2000-07-20 Thread Alexander Langer

Hello!

root:/usr/src $ make MACHINE_ARCH=alpha buildworld

--
 stage 4: building libraries
--
cd /usr/src; MAKEOBJDIRPREFIX=/usr/obj/alpha
COMPILER_PATH=/usr/obj/alpha/usr/src/i386/usr/libexec:/usr/obj/alpha/usr/src/i386/usr/bin
LIBRARY_PATH=/usr/obj/alpha/usr/src/i386/usr/lib:/usr/obj/alpha/usr/src/i386/usr/lib
OBJFORMAT_PATH=/usr/obj/alpha/usr/src/i386/usr/libexec
PERL5LIB=/usr/obj/alpha/usr/src/i386/usr/libdata/perl/5.6.0
DESTDIR=/usr/obj/alpha/usr/src/i386  INSTALL="sh
/usr/src/tools/install.sh"
PATH=/usr/obj/alpha/usr/src/i386/usr/sbin:/usr/obj/alpha/usr/src/i386/usr/bin:/usr/obj/alpha/usr/src/i386/usr/games:/sbin:/bin:/usr/sbin:/usr/bin
make -f Makefile.inc1 -DNOHTML -DNOINFO -DNOMAN -DNOFSCHG libraries
cd /usr/src/lib/csu/alpha;  make depend;  make all;  make install
sh /usr/src/tools/install.sh -c -o root -g wheel -m 444  crt1.o
/usr/obj/alpha/usr/src/i386/usr/lib/crt1.o
sh /usr/src/tools/install.sh -c -o root -g wheel -m 444  crtbegin.o
/usr/obj/alpha/usr/src/i386/usr/lib/crtbegin.o
sh /usr/src/tools/install.sh -c -o root -g wheel -m 444  crtend.o
/usr/obj/alpha/usr/src/i386/usr/lib/crtend.o
sh /usr/src/tools/install.sh -c -o root -g wheel -m 444  gcrt1.o
/usr/obj/alpha/usr/src/i386/usr/lib/gcrt1.o
sh /usr/src/tools/install.sh -c -o root -g wheel -m 444  crtbegin.So
/usr/obj/alpha/usr/src/i386/usr/lib/crtbeginS.o
sh /usr/src/tools/install.sh -c -o root -g wheel -m 444  crtend.So
/usr/obj/alpha/usr/src/i386/usr/lib/crtendS.o
cd /usr/src/lib/libmd;  make depend;  make all;  make install
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 [0xfff8]))) -1 (insn_list 4
(nil))
(nil))
*** Error code 1

Stop in /usr/src/lib/libmd.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.

That is from

FreeBSD cichlids.cichlids.com 5.0-CURRENT FreeBSD 5.0-CURRENT #0: Tue Jul 18 13:36:59 
CEST 2000 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/cichlids  i386

Alex
-- 
cat: /home/alex/.sig: No such file or directory


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



Re: cross-building broken?

2000-07-20 Thread Marcel Moolenaar

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 [0xfff8]))) -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