From owner-freebsd-amd64@FreeBSD.ORG Sun Mar 7 09:59:09 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id CFEB816A4CE; Sun, 7 Mar 2004 09:59:09 -0800 (PST) Received: from ares.wolfpond.org (ns1.wolfpond.org [62.212.96.219]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9CC8743D48; Sun, 7 Mar 2004 09:59:07 -0800 (PST) (envelope-from ftigeot@wolfpond.org) Received: from ares.wolfpond.org (localhost [127.0.0.1]) by ares.wolfpond.org (8.12.10/8.12.10) with ESMTP id i27HwsxC059278; Sun, 7 Mar 2004 18:58:54 +0100 (CET) (envelope-from greywolf@ares.wolfpond.org) Received: (from greywolf@localhost) by ares.wolfpond.org (8.12.10/8.12.10/Submit) id i27Hwr6O059277; Sun, 7 Mar 2004 18:58:53 +0100 (CET) (envelope-from greywolf) Date: Sun, 7 Mar 2004 18:58:53 +0100 From: Francois Tigeot To: freebsd-amd64@freebsd.org Message-ID: <20040307175852.GD40161@ares.wolfpond.org> References: <20040304175103.GA36195@ares.wolfpond.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040304175103.GA36195@ares.wolfpond.org> User-Agent: Mutt/1.4.1i cc: freebsd-current@freebsd.org Subject: Re: Cross-compilation to i386 X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Mar 2004 17:59:09 -0000 [copy to -current since it may be of help to other freebsd ports] On Thu, Mar 04, 2004 at 06:51:03PM +0100, Francois Tigeot wrote: > > I'm currently running a 5.2.1-RELEASE/amd64 system and I'm trying to > cross-build an i386 world with the following command : > > time nice make buildworld TARGET_ARCH=i386 DESTDIR=/itx > > This fails miserably with these error messages : > > cc -Os -march=c3 -fno-strict-aliasing -pipe -I/usr/src/sbin/gbde/../../sys -DRESCUE -Wsystem -headers -Werror -Wall -Wno-format-y2k -W -Wstrict-prototypes -Wmissing-prototypes -Wpointer -arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch -Wshadow -Wcast-align -c /usr/src/sys/crypto/sha2/sha2.c > {standard input}: Assembler messages: > {standard input}:92: Error: bignum invalid > {standard input}:93: Error: bignum invalid > [more bignum invalid lines] I've managed to make it work. The 'bignum invalid' error is caused by this type of gcc-generated assembly code : .quad 8158064640168781261 .quad -5349999486874862801 For some reason, as doesn't like big negative numbers. This is what I did : - I installed a stock copy of binutils compiled with --target=i386-freebsd and --enable-64-bit-bfd - I initiated a buildworld to populate /usr/obj - After the first build failure, I replaced /usr/obj/i386/usr/src/amd64/usr/bin/as with the new assembler, protecting it by a chflags command The world and kernel builds then completed succesfully. The new i386 kernel boots on a diskless machine. Now, I understand a new binutils import was scheduled before 5.3-RELEASE. Is there any reason not to compile it with the '--enable-64-bit-bfd' option on 64-bit architectures ? -- Francois Tigeot