freebsd-src/rescue
Ed Maste db9863a797 rescue: include ping iff at least one of INET & INET6 is enabled
Ping does not build (and serves no purpose) if neither is enabled
(i.e., building WITHOUT_INET and WITHOUT_INET6).

This is equvalent to a4ef9e58bc but for rescue/.

PR:		260082
Fixes:		a4ef9e58bc ("sbin: build ping if at least one of...")
Sponsored by:	The FreeBSD Foundation

(cherry picked from commit daf481f3d5)
2023-09-24 11:48:33 -04:00
..
librescue Remove $FreeBSD$: one-line sh pattern 2023-08-23 11:43:30 -06:00
rescue rescue: include ping iff at least one of INET & INET6 is enabled 2023-09-24 11:48:33 -04:00
Makefile Remove $FreeBSD$: one-line sh pattern 2023-08-23 11:43:30 -06:00
README Remove $FreeBSD$: one-line bare tag 2023-08-23 11:43:33 -06:00

The /rescue build system here has three goals:

1) Produce a reliable standalone set of /rescue tools.

The contents of /rescue are all statically linked and do not depend on
anything in /bin or /sbin.  In particular, they'll continue to
function even if you've hosed your dynamic /bin and /sbin.  For
example, note that /rescue/mount runs /rescue/mount_nfs and not
/sbin/mount_nfs.  This is more subtle than it looks.

As an added bonus, /rescue is fairly small (thanks to crunchgen) and
includes a number of tools (such as gzip, bzip2, vi) that are not
normally found in /bin and /sbin.

2) Demonstrate robust use of crunchgen.

These Makefiles recompile each of the crunchgen components and include
support for overriding specific library entries.  Such techniques
should be useful elsewhere.

3) Produce a toolkit suitable for small distributions.

Install /rescue on a CD or CompactFlash disk, and symlink /bin and
/sbin to /rescue to produce a small and fairly complete FreeBSD
system.

These tools have one big disadvantage: being statically linked, they
cannot use some advanced library functions that rely on dynamic
linking.  In particular, nsswitch, locales, and pam all
rely on dynamic linking.


To compile:

# cd /usr/src/rescue
# make obj
# make
# make install

Note that rebuilds don't always work correctly; if you run into
trouble, try 'make clean' before recompiling.