Subject: Re: just a friendly warning
To: Mike Long <mikel@shore.net>
From: Open Carefully -- Contents Under Pressure <greywolf@starwolf.starwolf.com>
List: current-users
Date: 10/14/1997 19:41:15
Mike Long sez:
/*
 * >Date: Mon, 13 Oct 1997 02:24:30 -0400 (EDT)
 * >From: "Perry E. Metzger" <perry@piermont.com>
 * 
 * >For a long time I've been lucky and building userland before a new
 * >kernel hasn't hurt me too badly in general. Because of the new
 * >getdents() system call, I badly screwed myself tonight doing just
 * >that. In general, you MUST build a new kernel before building a new
 * >libc. "The life you save might be your own...."
 * 
 * I rebuild the kernel first whenever I see an update of
 * src/sys/sys/syscall.h.

Good advice, I'll have to remember that.

I ended up building:
	- ld
	- as
	- gcc
	- compile_et
	- make_cmds
	- libc
	- sh

and after that it died.  Everything I ran with sh would dump core
after returning from the exec (dowaitproc or something is where
it died).

Caught it before I rebooted my system, restored the old sh (always keep
a backup sh around), and built a kernel successfully and rebooted.

But then ldconfig caught the new libc which kept on dying with
"SYS_getdents() undefined in libc.so.12.19".

Got rid of libc.so.12.19 and everything is fine again.  Now I need to
rebuild libc and try again.

 * 
 * I also build all my kernels with COMPAT_12, which helps ease these
 * transitions.

I think I've got compat all the way back to 1.1.  Plus 4.3.

Has the problem been fixed so that I don't need COMPAT_43 to make
ttyname(3) not return ENOTTY?

 * -- 
 * Mike Long <mikel@shore.net>                http://www.shore.net/~mikel
 * "Every normal man must be tempted at times to spit on his hands,
 * hoist the black flag, and begin slitting throats." -- H.L. Mencken
 */


				--*greywolf;
--
When the government fails to meet the needs and wishes of its populace,
it is the right AND THE DUTY of the people to _abolish_ it, and start anew.
				-- Tom Jefferson (paraphrased)