From owner-freebsd-hackers Thu Mar 2 11:07:27 1995 Return-Path: hackers-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.9/8.6.6) id LAA00276 for hackers-outgoing; Thu, 2 Mar 1995 11:07:27 -0800 Received: from seagull.rtd.com (root@Seagull.rtd.com [198.102.68.2]) by freefall.cdrom.com (8.6.9/8.6.6) with ESMTP id LAA00268 for ; Thu, 2 Mar 1995 11:07:26 -0800 Received: (from dgy@localhost) by seagull.rtd.com (8.6.9/8.6.9.1) id LAA19698 for freebsd-hackers@freefall.cdrom.com; Thu, 2 Mar 1995 11:32:44 -0700 From: Don Yuniskis Message-Id: <199503021832.LAA19698@seagull.rtd.com> Subject: Re: Got the new build tools to work with Mach4 (fwd) To: freebsd-hackers@freefall.cdrom.com (FreeBSD hackers) Date: Thu, 2 Mar 1995 11:32:43 -0700 (MST) X-Mailer: ELM [version 2.4 PL24] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Length: 5515 Sender: hackers-owner@FreeBSD.org Precedence: bulk Greetings! Thought this might be of interest in light of recent discussions... Forwarded message: > From mach4-request@schirf.cs.utah.edu Thu Mar 2 10:31:04 1995 > Message-Id: <199503021654.IAA11079@uruk.org> > X-Authentication-Warning: uruk.org: Host loopback didn't use HELO protocol > To: Krisda Eaksrun > Cc: mach4-users@cs.utah.edu > Subject: Re: Got the new build tools to work with Mach4 > In-Reply-To: Your message of "Thu, 02 Mar 1995 17:38:02 +0700." > > Date: Thu, 02 Mar 1995 08:54:21 -0800 > From: Erich Stefan Boleyn > > > so won't gas 2.3 work anymore ? i follow the way in www at utah > > that, i have to patch gas a little bite (yeah i got gas 2.3 and patch it) > > i, currently, compile it on freebsd 2.0 (release), also i have set target > > for that gas to i386-gnu too, then..everything goes fine, until it > > start to ranlib the libmach_sa.a , and it refuse to do so coz' the file > > is in inapprpriate format.., any suggestion ? > > There are 2 build environments from FreeBSD 2.0 that you can use that will > build "mach4-UK02p8": > > 1) FreeBSD build tools: If you use the FreeBSD build tools, you > have to patch the assembler it comes with (or I understand you > can use a patched version of gas-2.3, but I haven't gone that > route myself). Here is the relevant info (after patching, > just type make, though make sure it is the BSD make, I think): > > ------------------------(start info here)------------------ > spam: <{275} (as)> pwd > /usr/src/gnu/usr.bin/as > spam: <{276} (as)> diff -u subsegs.c subsegs.c.orig > --- subsegs.c Thu Feb 16 07:29:19 1995 > +++ subsegs.c.orig Thu Feb 16 07:23:48 1995 > @@ -140,9 +140,6 @@ > if (seg == SEG_DATA) { > seg_fix_rootP = &data_fix_root; > seg_fix_tailP = &data_fix_tail; > - } else if (seg == SEG_BSS) { > - seg_fix_rootP = &bss_fix_root; > - seg_fix_tailP = &bss_fix_tail; > } else { > know (seg == SEG_TEXT); > seg_fix_rootP = &text_fix_root; > @@ -174,7 +171,7 @@ > { > long tmp; /* JF for obstack alignment hacking */ > #ifndef MANY_SEGMENTS > - know(seg == SEG_DATA || seg == SEG_TEXT || seg == SEG_BSS); > + know(seg == SEG_DATA || seg == SEG_TEXT); > #endif > if (seg != now_seg || subseg != now_subseg) > { /* we just changed sub-segments */ > -------------------------(finish)------------------------ > > Now, you have to change "Makeconf" (after running "configure", I think) > to use "ar -T" instead of "ar". If the "AR" variable isn't in the > file, add a line with "AR = ar -T", but I think it is there. > > It should then build fine. It will *not* boot from the standard > boot block without either zeroing the 21st byte in the file, or > patching the boot block to ignore the lower component of the > load address. It appears to be a bug in the BSD build tools. > > 2) GNU cross-compile tools: Using a recent gas/binutils snapshot > from Cygnus (950221 is the one I'm using right now, but it works > with all I've tried in the last 3-4 weeks) and gcc-2.6.3, build > the cross-compile environment that Bryan mentions in his installation > WWW pages (gas/binutils first, then gcc) for target "i386-gnu". > To get gcc-2.6.3 to compile, I had to add a "-Dbsd4_4" > to the compiler flags, since the FreeBSD configuration is set > up for the pre-2.0 BSD 4.3 versions, and FreeBSD 2.0 is BSD 4.4 based. > Now patch the mkubmod script. Here's the relevant info (do this > before running "configure" in the object directory!): > > -----------------(start info here)---------------------- > spam: <{267} (boot)> pwd > /usr/local_build/mach/mach4-i386/boot > spam: <{268} (boot)> diff -u mkubmod.sh mkubmod.sh.orig > --- mkubmod.sh Fri Feb 24 22:03:26 1995 > +++ mkubmod.sh.orig Fri Feb 24 21:56:40 1995 > @@ -62,7 +62,4 @@ > rm -f $infile.tmp.o > fi > > -# kludge to fix unstripped symbol problems > -i386-gnu-objcopy -N _mach_bmod_text -N _mach_bmod_data -N _mach_bmod_bss -N _mach_bmod_init -N _mach_bmod_etext -N _mach_bmod_edata -N _mach_bmod_ebss -N _etext -N _edata -N _ebss $outfile > - > exit 0 > ------------------------(finish)----------------------- > > At his point, run Bryan's "configure" with the "--target=i386-gnu" > option, then run the make command. It should build the entire kernel > and produce a bootable image that works with no binary patching > or bootblock patches. > > (one note: my patches are backward, but I hope that's obvious :-) > > A final note, #2 above, being a cross-compile environment, should work > from other OS's as well. I haven't tested this on other OS's myself, > so interaction bugs could certainly creep in. > > ...and this is going to change for newer versions of mach4, but updated > info will be provided. > > Question, etc. are welcome (I don't want to give people wrong info). > > Erich > -- > Erich Stefan Boleyn \__ E-mail (preferred): > WWW site: "http://www.uruk.org/" \__ home #: +1 (503) 226-0741 > Mad Genius wanna-be, CyberMuffin \_ U-Snail: 924 S.W. 16th Ave, #202 > Motto: "I'll live forever or die trying" \ Portland, OR, USA 97205 >