Date: Fri, 18 Apr 2003 21:42:48 -0400 From: "Craig Reyenga" <creyenga@connectmail.carleton.ca> To: <kientzle@acm.org> Cc: freebsd-current@freebsd.org Subject: Re: Going Dynamic (Was: HEADS UP: new NSS) Message-ID: <000d01c30615$0188d390$0200000a@fireball> References: <20030417141133.GA4155@madman.celabo.org> <20030417144449.GA4530@madman.celabo.org> <200304171535.h3HFZEFs094589@strings.polstra.com> <20030418014500.B94094@iclub.nsu.ru> <200304171944.h3HJi1jK095151@strings.polstra.com> <3E9F0A28.8030906@btc.adaptec.com> <3E9F1C15.7080702@acm.org> <20030417221622.GA18079@gattaca.yadt.co.uk> <3EA0A4E3.6090801@acm.org>
next in thread | previous in thread | raw e-mail | index | archive | help
From: "Tim Kientzle" <kientzle@acm.org> Subject: Re: Going Dynamic (Was: HEADS UP: new NSS) > David Taylor wrote: > > Hmm, but if /sbin/mount_ufs (say) is dynamically linked, and the libraries > > are still in /usr, how do you mount /usr? > > That's why certain critical shared libs > (e.g., libc.so) need to be moved to /lib. > > >>As I said, I've already done a chunk of work > >>for this. If someone would like to help finish... > > > > If there's a list of tasks that need to be done, I'd be willing to see > > what I can do (although I'm going back to uni next week)... > > > Here are the remaining tasks that I know of: > > 1) Create /lib, move shared libraries. > > This involves working on bsd.lib.mk and a few related > pieces so that certain libraries get installed > differently: > * shared lib into /lib > * compatibility symlinks from /usr/lib -> /lib > * static lib into /usr/lib > > Here's a list of libraries that I believe need to > be moved: > > libc libcrypt libedit libkvm libl libm libtermcap > libutil libalias libatm libcam libcurses libdevstat > libipsec libipx libmd libncp libreadline libsbuf libsmb > libufs libz > > 2) Update ld-elf.so.1 > > I've not yet looked carefully at this. This may need > to be moved? It will definitely need to have the > default search path altered to look in /lib first. > > If the above is done correctly, it should be possible to dynamically > link one of the standard utils (by adding NOSHARED=yes to the > Makefile for 'ed' or 'pax', for example), boot to single user and > have that utility work, even without /usr being mounted. > > 3) Set up a system-wide switch. This may just mean > setting a default for NOSHARED. It may be necessary > to visit specific Makefiles to override NOSHARED=no > to force those utilities to be compiled static. > (/sbin/init may require this. A few other utils may > also benefit.) > > 4) Boot-time safety issues. Various tweaks to ensure that > _something_ is possible even if the system gets screwed up. > Not sure which of the following is best: > a) Kernel automatically runs /rescue/init if /sbin/init fails > too quickly. > b) Prompt user for an alternate init if /sbin/init fails. > c) Have /sbin/init remain static, alter it to prompt > for /rescue/sh in single-user mode (always? sometimes?). > I'm leaning towards some variant of (c), but I'm not sure > what all the issues are here. > > Tim Kientzle > 5) Tell sysinstall to make a bigger root filesystem. -Craig (Sorry for being mouthy.)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?000d01c30615$0188d390$0200000a>