[comp.os.minix] missing in V1.6.16 but K&R works.

DCHAPMAN@utkvx.utk.edu (Don Chapman) (06/12/91)

For those who have gotten V1.6.16,

Things missing:
From Post1:
  amoeba_00.uue contained only amoeba.crc and it shows
  00000 0
  lib_00.uue contained only lib.crc and it shows
  00000 0
and /usr/include/minix is missing entirely in Post1..Post23.
They are probably on their way.

Here are the changes (mostly in makefiles) I used to compile
mm/fs/kernel/tools using K&R-ACK compiler, V1.6.15 libc.a
(essentially V1.5 libc.a plus a few) and no need for
xenix_to_asld.  The few new lib files are needed.

I added -D_EM_WSIZE=2 to the makefile in mm. (16-bit machine)

Most of the Makefiles needed LIB to be rewritten as something like
LIB=$l/libc.a  or
LIB=$l/libc.a $l/end.$O

In a number of instances I changed .o to .$O in the Makefiles and
generally substituted asld for LD CV.

All four of mm/fs/kernel/tools were giving 'multiply defined: _exit'
errors when linking.  Well I took printk.c from the lib/ansi and
put it the kernel, fs, mm and tools directories, added them to
the makefile obj's and changed (them) to use putk.
(usually by -Dputc=putk in the makefile, I suspect that printk.c.
changes are to be in lib_00.uue)  The _exit problem was fixed.

The menu.c had some "\n" that needed to be "\r\n" or some such.

I kludged fs/pipe.c using a define at its top to
#define PIPE_DEV rfp->fp_workdir->i_dev or if you prefer
#define PIPE_DEV rfp->fp_rootdir->i_dev (likely faster!)

And now V1.6.16 is working here.
I have decided to use rfp->fp_rootdir->i_dev until I see
what/where it should be.

How I survived without xenix_to_asld:
I renamed bootblok.s to be bootblok.x for uniformity.
I wrote -Defines for the conversion of the assembler using the
pre-processor.  Also I used tr \! \| to finish the conversion.
That was needed in both kernel and tools.

Example scraps of my K&R-ACK kernel/Makefile:
  ----------------
O=s
# Here is half of .x to .s (kinda tricky)
CPPFLAGS	=-P -Ddata2=word -Ddata1=byte -Dstos=stow \
        -Dcseg=seg\ cs -Dlods=lodw -Dcallf=calli -Djmpf=jmpi \
        -Deseg=seg\ es -Dsseg=seg\ ss

CFLAGS		=-I$i -m -Dputc=putk

KEROBJS		=[what was there plus...] printk.$O

# Rules.
.SUFFIXES: .x		# .x to .s substitute... the other half.
.x.$O:
	$(CPP) $(CPPFLAGS) $< | tr \! \| > $@


# the LD CV substitute...
$(BIN)/kernel: $(START) $(KEROBJS) $(LIB) $(END)
	asld  $(LDFLAGS) -o $(BIN)/kernel $(START) $(KEROBJS) \
	$(LIB) $(END) > symbol.out
	ast -X kernel
	@rm -f symbol.out

printk.$O:	$a
printk.$O:	$i/stdarg.h
   --------
Looking forward to seeing the files that mis-packed.

Don Chapman <dchapman@utkvx.utk.edu>