From fc37a8a17075fd1a609ea4603a3403dff3f1c510 Mon Sep 17 00:00:00 2001
From: John Birrell
-From: John Birrell <jb@freebsd1.cimlogic.com.au> -Message-Id: <199801110548.QAA24424@freebsd1.cimlogic.com.au> -Subject: Bootstrapping FreeBSD/Alpha -To: alpha@FreeBSD.ORG -Date: Sun, 11 Jan 1998 16:48:09 +1100 (EST) - - -G'day, - -I've committed a bunch of changes that allow FreeBSD/Alpha to be -bootstrapped from an installed NetBSD/Alpha 1.3 system. The bootstrap -is not complete (after 2.5 days), but it is in a state where people -who want to play can do so using source that they are familiar with. - -The bootstrap is not intended to clobber anything on the system you -are using. It uses a modified makefile based on the -current make -world, but unlike that makefile, there is no final install (yet). -The bootstrap will abort long before that. 8-). - -The philosophy behind this bootstrap is that you start with a stock -NetBSD/Alpha installation and using the FreeBSD bootstrap procedure -you evolve into FreeBSD/Alpha. The system will remain a hybrid for -some time due to the differences in the kernel interface. The goal -is to be able to run as much of the FreeBSD user-space code as -possible and then (hopefully) people will step up to the plate to -take the system the extra mile. - -Here's a summary of what the bootstrap does: - -1. Deletes a previous build if one exists. You always bootstrap - from scratch. - -2. Installs FreeBSD's mkdep in the temporary build tree because - the one in NetBSD isn't good enough. - -3. Runs NetBSD's make using FreeBSD's .mk and makefiles to build - a new version of make from FreeBSD sources using NetBSD headers, - installed libraries and tools. - -4. Builds a FreeBSD version of find which has the -L argument that - NetBSD doesn't have. This version of find doesn't support the - -fstype argument because NetBSD's libc doesn't support getvfsbyname(). - -5. Runs mtree like a normal build does. At this point you'll find - that you need to add a few users and groups because NetBSD doesn't - support as many as FreeBSD does. - -6. Builds the obj tree like a normal build does. - -7. Re-makes make, this time using makefiles parsed by the FreeBSD - make (just in case the NetBSD one came up with a different set - of build commands). - -8. Builds install from the FreeBSD source because the NetBSD one - doesn't know -C. - -9. Builds lex like the normal build does. - -10. Creates links to the GNU programs that haven't been ported. - -11. Builds gperf, tsort, bison, gcc, cpp, g++ etc which are - needed to build the libraries. - -12. Installs the FreeBSD header files in the temporary build tree. - -Up to this point, all the builds have used the NetBSD make until the -FreeBSD one was built. The FreeBSD source files have been pre-processed -against NetBSD header files and the programs linked against NetBSD -libraries. From here on, the build continues to use FreeBSD programs -if they have been built and NetBSD ones otherwise. The build will -only look at FreeBSD header files from this point. - -13. Builds a number of the most important libraries that are needed - to link the remainder of the build tools. [You can expect the - bootstrap build to come to a grinding halt somewhere in here - when it tries to link against NetBSD's libc and finds that the - locale functions referenced by ctype.h are not there. I've - started porting libc to resolve this.] - -14. Builds the rest of the build tools. - -15. Makes dependencies on everything. - -16. Builds everythings. - -[And then you'd install to clobber the existing system if you got that far]. - -Before you use the bootstrap build, just give a thought to what you'd -do if it clobbers something it shouldn't. As always, you do this at -your own risk. 8-) - -Here's what I do: - -1. Mount /usr/src from another (FreeBSD) machine. -2. Create /usr/obj with enough disk space to build. -3. cd /usr/src - make -m /usr/src/share/mk buildworld -4. Sit back and wait for it to crash. If it stops before you get to - the libs, I've probably missed committing something. -5. When it does stop, all of the things you've built will be in - the /usr/obj/usr/src/tmp tree. They should run! - -Let me (and this list) know how you get on. And if anyone else wants -to do part of this work, please do. - -Regards, - --- -John Birrell - jb@cimlogic.com.au; jb@netbsd.org; jb@freebsd.org -CIMlogic Pty Ltd, GPO Box 117A, Melbourne Vic 3001, Australia +61 418 353 137 -- -&footer; - - - diff --git a/en/alpha/current.sgml b/en/alpha/current.sgml deleted file mode 100644 index 5e649a3faa..0000000000 --- a/en/alpha/current.sgml +++ /dev/null @@ -1,89 +0,0 @@ - - - - - %includes; -]> - - - -&header; - -
-From: John Birrell <jb@cimlogic.com.au> -Message-Id: <199803270127.MAA01315@cimlogic.com.au> -Subject: Re: what's a good way to help? -To: nmanisca@vt.edu (nm) -Date: Fri, 27 Mar 1998 12:27:10 +1100 (EST) -Cc: freebsd-alpha@FreeBSD.ORG - -nm wrote: -> i have an axppci33 based system here with 64 megs of ram -> and a 2 gig scsi disk... -> -> ill soon be connected to the net via 10baseT (to multiple t3's) -> -> i look forward to seeing freebsd running on alpha and so i am -> asking what is there to be done that can be accomplished with -> a slow machine and not a great deal of intimate knowledge of -> either the alpha architecture or the bsd? - -Do you have an Intel machine that you can use to run -current? -This is important because you need to be able to check that anything -you do doesn't affect the mainstream FreeBSD. - -[you may already know this stuff, but I'll point it out anyway 8-)] - -On the Intel machine, setup cvsup to use release=cvs and src-all. -After the initial cvsup, plan to run daily. - -Learn to use cvs on the cvs files that cvsup creates/updates. - -Learn to `make world' on the Intel machine. - -Install NetBSD 1.3 on the alpha. Configure it to give you telnet/rlogin -access from the Intel machine. Setup both machines as NFS client & server. -NFS mount the checked out source tree (on the Intel machine) as -/usr/src on the alpha. Create a symlink for /usr/src to the _same_ tree -on the Intel. That way you build exactly the same source on both -machines at the same time. - -Learn to `make -m /usr/src/share/mk buildworld' on the alpha. Most of -the code is already committed. There are a few files that I can send you -when you let me know you need them. You'll know that when the build -bombs. And you'll need to tell me how it bombs to prove that you have -got that far (and are serious about working on this). 8-) - -Try running the programs that get created in /usr/obj/usr/src/tmp/usr.bin -and compare their behaviour to the Intel ones. You'll find lots of things -that don't work "quite right". Finding fixes to any of these would be -a constructive way to help. - --- -John Birrell - jb@cimlogic.com.au; jb@freebsd.org -CIMlogic Pty Ltd, GPO Box 117A, Melbourne Vic 3001, Australia +61 418 353 137 - - -Starting with NetBSD 1.3, /etc/group needs the following additional -groups added manually: - -man:*:9: -uucp:*:66: -xten:*:67:xten -network:*:69: - -The build of libc needs a temporary patch for vfprintf.c that I don't -want to commit. I'm note sure how best to distribute this info. - -There is a problem with optimization in gcc/gas so I set CFLAGS in -/etc/make.conf to remove the default -O. - -Also, it's worth noting that NetBSD uses /etc/mk.conf whereas -FreeBSD uses /etc/make.conf. The bootstrap builds make very early on -so there is no point adding anything to /etc/mk.conf. -- -&footer; - -