Date: Wed, 17 Nov 1999 20:53:23 +0100 From: Marcel Moolenaar <marcel@scc.nl> To: John Birrell <jb@cimlogic.com.au> Cc: Warner Losh <imp@village.org>, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src Makefile.inc1 src/usr.bin/make Makefile Message-ID: <383307B3.ACE06314@scc.nl> References: <383189F7.67E89E8B@scc.nl> <38310A94.B1939A83@scc.nl> <199911151707.JAA03820@freefall.freebsd.org> <199911160533.WAA02391@harmony.village.org> <199911161544.IAA08642@harmony.village.org> <199911161714.KAA09479@harmony.village.org> <38319FFB.530FFCC6@scc.nl> <199911161935.MAA10311@harmony.village.org> <19991117212631.A13376@freebsd1.cimlogic.com.au> <38329493.82FFA536@scc.nl> <19991118060714.B13376@freebsd1.cimlogic.com.au>
next in thread | previous in thread | raw e-mail | index | archive | help
John Birrell wrote: > > On Wed, Nov 17, 1999 at 12:42:11PM +0100, Marcel Moolenaar wrote: > > John Birrell wrote: > > > > > > I've sent a set of makefiles to David O'Brien which allow gcc/egcs to > > > be built as host and cross-compilers. Most of the trickery needs > > > to be in sys.mk (it gets poluted more!), not Makefile.inc1 to ensure > > > that things like the bfd type set at all levels of the build. > > > > sys.mk should not and need not be polluted. With the proper staging > > and/or phasing of the build process you can handle anything without > > trickery. > > Can you cross-compile from any level in the tree? Not with the current set of makefiles. > > > all the tools that are needed for a cross-build. Then, for a cross-build, > > > all you need to do in Makefile.inc1 is this: > > > > > > # Check if cross-compiling. > > > __MA!=/sbin/sysctl -b hw.machine_arch > > > __M!=/sbin/sysctl -b hw.machine > > > .if ${__MA} != ${MACHINE_ARCH} || ${__M} != ${MACHINE} > > > # Cross-compiling, so don't build tools. > > > CROSS_COMPILING = 1 > > > NOTOOLS = 1 > > > .endif > > > > This won't work. I'm not able to make the native, non-cross Alpha > > compiler in a cross-build, because MACHINE_ARCH=alpha in that case and > > __MA will be something other (say i386). In a cross-build you want to > > create the same world you do when you don't cross-build. This is not the > > case with your 'solution'. > > Yes it is. You basicly have 2 variables: MACHINE_ARCH and `sysctl -n hw.machine_arch`. MACHINE_ARCH is set to the machine for which you're building and `sysctl -n hw.machine_arch` is contant, describing the host machine. How do you distinguish the following mandatory cases: 1) Make a compiler that runs on the host but makes binaries for the target, and 2) Make a compiler that runs on the target and makes binaries for the target 1) is simple: set MACHINE_ARCH=target and because sysctl=source CROSS_COMPILING=1 and all is fine. 2) is impossible. You need MACHINE_ARCH to specify for which machine the compiler should make the binaries, but you don't have a way to say that the compiler is supposed to run on the target so that CROSS_COMPILING should be 0. How do you pull that off? > > > I still believe that there should be compatibility in libc for the > > > old signal interface while the running kernel doesn't support the > > > new signal stuff. > > > > Unnecessarily complex. Fix what is broken. Don't work-around it, unless > > a fix is not feasible. The build process is broken and fixing it would > > give us much more in return than a work-around in libc would do. > > > > > Building a kernel in as part of a make world is too complicated IMHO. > > > > kernel: > > cd ${.CURDIR}/sys/${MACHINE_ARCH}/conf; \ > > config -d ${KERNELBUILDDIR} ${KERNEL} > > cd ${KERNELBUILDDIR}; ${MAKE} depend; ${MAKE} all > > > > Piece of cake :-) > > Sounds simple, but I doubt that it will work out that way because > of all the issues related to ${KERNEL}. What issues? Set kernel to GENERIC if not already set to something. -- Marcel Moolenaar mailto:marcel@scc.nl SCC Internetworking & Databases http://www.scc.nl/ The FreeBSD project mailto:marcel@FreeBSD.org To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?383307B3.ACE06314>