Date: Mon, 6 Sep 1999 11:38:07 +0800 (WST) From: Michael Kennett <mike@laurasia.com.au> To: imp@village.org (Warner Losh) Cc: alpha@freebsd.org Subject: Re: Changes to binutils (--target=alpha-freebsd) Message-ID: <199909060338.LAA94307@laurasia.com.au> In-Reply-To: <199909060221.UAA01375@harmony.village.org> from Warner Losh at "Sep 5, 1999 08:21:02 pm"
next in thread | previous in thread | raw e-mail | index | archive | help
Hello Warner, > In message <199909040942.RAA26591@laurasia.com.au> Michael Kennett writes: > : It is the file mkstemp.o. I've added it to the Makefile /usr/src/gnu/usr.bin/ > : cc/cc_drv/Makefile (in the line SRCS). > > I've never needed to do this. I think that you must have an old > system... We went through this several months ago. > > I only intend to support cross compiling on a system that is installed > from a -current system that matches what you are cross compiling. > That is if you haven't done a make world before trying to make a cross > world, then all bets are off. I've cvsup'd the latest sources almost weekly, and not had problems doing a native (x86) build. I don't have FreeBSD installed on the alpha, as I don't have the binaries for it (I know it is possible to download the binaries, but that's just not nearly as much fun as building from source :-) I also got my network usage report today, and I can't afford to download the binaries :-( I've been using the 'standard-supfile', (modified to suck from cvsup.au. freebsd.org), with the source collection 'src-all' -- so I should be getting the source changes for contrib as well. I think I'm getting current, as the '*default release=cvs tag=.' line is present as well. i.e. the relevant lines in my supfile are: *default host=cvsup.au.freebsd.org *default release=cvs tag=. src-all The tag on the Makefile in /usr/src/gnu/usr.bin/cc/cc_drv is $FreeBSD: src/gnu/usr.bin/cc/cc_drv/Makefile,v 1.4 1998/08/27 23:35:15 .... $ This makefile does not include 'mkstemp.c' in the SRCS variable. > > : Hidden in the bowels of the FreeBSD source tree (/usr/src/gnu/usr.bin/binutils/ > : libbfd/alpha) is the file 'bfd.h', which configures the characteristics of the > : host architecture. In this file is the line > : > : #define BFD_HOST_64BIT_LONG 1 > : > : i.e. It is saying that a (native) alpha compiler has 64-bit registers. By > : changing this line to > : > : #define BFD_HOST_64BIT_LONG 0 > : > : the cross-compilation from the x86 architecture passes binutils without any > : warnings. > > This needs to be fixed so that the right things happens. I suspect > that this is due to mixing the HOST and the TARGET variables in the > same file... Sorry 'bout the ungracious hack on bfd.h -- I'd never recommend such a change. I'm still very much in the exploration phase, and trying to identify where changes need to be made. I think you're suspicion is correct - I've hacked the Makefile in /usr/src/gnu/usr.bin/cc/cc_tools: 131a132,133 >GCC_HOST?= `uname -m` > 134c136 < echo '#include "${GCC_ARCH}/xm-${GCC_ARCH}.h"' >> ${.TARGET} --- > echo '#include "${GCC_HOST}/xm-${GCC_HOST}.h"' >> ${.TARGET} The compilation progresses further, but later falls over when the cross- compiler is being used. > > Warner > Regards, Mike To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199909060338.LAA94307>