Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 6 Apr 2009 11:31:31 +0000 (UTC)
From:      Luigi Rizzo <luigi@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r190767 - stable/7/release/picobsd/bridge
Message-ID:  <200904061131.n36BVVan070125@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: luigi
Date: Mon Apr  6 11:31:31 2009
New Revision: 190767
URL: http://svn.freebsd.org/changeset/base/190767

Log:
  MFC: use shared libraries for the crunched binary,
  put together the basic binaries so it is easier to replace them
  with busybox.
  
  Approved by:	re (blanket on picobsd)

Modified:
  stable/7/release/picobsd/bridge/crunch.conf

Modified: stable/7/release/picobsd/bridge/crunch.conf
==============================================================================
--- stable/7/release/picobsd/bridge/crunch.conf	Mon Apr  6 11:23:20 2009	(r190766)
+++ stable/7/release/picobsd/bridge/crunch.conf	Mon Apr  6 11:31:31 2009	(r190767)
@@ -1,39 +1,55 @@
 #
 # $FreeBSD$
 #
-# configuration file for "bridge" floppy.
-# Depending on your needs, almost surely you will need to
-# modify your configuration to add/remove/change programs used in
-# the floppy image. Remember that some programs also require
-# matching kernel options to enable device drivers etc.
-#
-# Next to most of the programs i have tried to indicate the approximate
-# space consumed, but beware that these values change from release
-# to release, and might depend on the presence of other programs which
-# share the same libraries.
+# Configuration file for "bridge" images..
 #
-# NOTE: the string "/usr/src" will be automatically replaced with the
-# correct value set in 'build' script - you should change it there
+# Depending on your needs, you will almost surely need to
+# add/remove/change programs according to your needs.
+# Remember that some programs require matching kernel options to
+# enable device drivers etc.
+#
+# To figure out how much space is used by each program, do
+#
+#	size build_dir-bridge/crunch/*lo
+#
+# Remember that programs require libraries, which add up to the
+# total size. The final binary is build_dir-bridge/mfs.tree/stand/crunch
+# and you can check which libraries it uses with
+#
+#	ldd build_dir-bridge/mfs.tree/stand/crunch
 
-# Default build options. Basically tell the Makefiles which understand
-# that to use the most compact possible version of the code.
+# crunchgen configuration to build the crunched binary, see "man crunchgen"
+# We need to specify generic build options, the places where to look
+# for sources, and the list of program and libraries we want to put
+# in the crunched binary.
 #
-buildopts -DNO_PAM -DRELEASE_CRUNCH -DPPP_NO_NETGRAPH -DTRACEROUTE_NO_IPSEC -DNO_INET6
+# NOTE: the string "/usr/src" below will be automatically replaced with
+# the path set in the 'build' script.
+
+# Default build options. Basically tell the Makefiles
+# that to use the most compact possible version of the code.
+
+buildopts -DNO_PAM -DRELEASE_CRUNCH -DPPP_NO_NETGRAPH
+buildopts -DTRACEROUTE_NO_IPSEC -DNO_INET6
 buildopts -DWITHOUT_IPX
 
-# directories where to look for sources of various binaries.
+# Directories where to look for sources of various binaries.
 # @__CWD__@ is a magic keyword in the picobsd's (Makefile.conf)
-# which is replaced with the picobsd directory.
+# which is replaced with the directory with the picobsd configuration
+# corresponding to your image. This way you can have custom sources
+# in that directory overriding system programs.
+
 srcdirs @__CWD__@/src
 
-# Some programs are especially written for PicoBSD and reside here
-# Make this first in the list so we can override standard programs
-# with the picobsd-specific ones.
+# Some programs are especially written for PicoBSD and reside in
+# release/picobsd/tinyware.
+# Put this entry near the head of the list to override standard binaries.
+
 srcdirs /usr/src/release/picobsd/tinyware
 
-#
-# standard locations
-#
+# Other standard locations for sources.
+# If a program uses its own source directory, add
+
 srcdirs /usr/src/bin
 srcdirs /usr/src/sbin/i386
 srcdirs /usr/src/sbin
@@ -41,51 +57,59 @@ srcdirs /usr/src/usr.bin
 srcdirs /usr/src/gnu/usr.bin
 srcdirs /usr/src/usr.sbin
 srcdirs /usr/src/libexec
-#
-# And there are others (mostly ports) which reside in their specific
-# directories. For them, we use the "special" commands to tell
-# crunchgen where to look for sources, objects, which Makefile
-# variables contain the list of sources and objects, and so on.
 
-# init is almost always necessary.
+# For programs that reside in different places, the best option
+# is to use the command "special XXX srcdir YYY" where XXX is the
+# program name and YYY is the directory path.
+# "special XXX ..." can be used to specify more options, see again
+# the crunchgen manpage.
+
+#--- Basic configuraton
+# init is always necessary (unless you have a replacement, oinit)
 progs init
+
 # fsck is almost always necessary, unless you have everything on the
 # image and use 'tar' or something similar to read/write raw blocks
 # from the floppy.
+
 progs fsck
-# ifconfig is needed if you want to configure interfaces...
+
+# ifconfig is needed if you want to configure interfaces.
 progs ifconfig
-#
+
 # You will also need a shell and a bunch of utilities.
 # The standard shell is not that large, but you need many
 # external programs. In fact most of them do not take much space
-# as they merely issue a system call, and print the result; the
-# libraries are already needed anyways, so they end up using almost
-# no additional memory.
-# There are a few exceptions such as 'less', which in 4.x is
-# rather large.
+# as they merely issue a system call, and print the result.
+# For a more compact version of shell and utilities, you could
+# try busybox, however most system management commands in busybox
+# will not work as they use linux-specific interfaces.
+
 progs sh
 ln sh -sh
+
+# the small utilities, also available in busybox
 progs echo
-progs pwd
-progs mkdir rmdir
+progs pwd mkdir rmdir
 progs chmod chown
-progs mv ln
-progs mount
+ln chown chgrp
+progs mv ln cp rm ls
+progs cat tail tee
+progs test
+ln test [
+progs du
+progs kill
 progs minigzip
 ln minigzip gzip
-progs cp
-progs rm
-progs ls
-progs kill
+progs ee		# editor (busybox has 'vi')
+
+# FreeBSD commands not working in busybox
+progs mount
 progs df
 progs ps
-progs ns
+progs ns	# this is the picobsd version
 ln ns netstat
 progs vm
-progs cat
-progs test
-ln test [
 progs hostname
 progs login
 progs getty
@@ -94,72 +118,57 @@ progs w
 progs msg
 ln msg dmesg
 progs reboot
-progs less
-ln less more
 
 progs sysctl
 progs swapon
 progs pwd_mkdb
 progs umount
-progs du
-progs tail
-progs tee
 progs passwd
 
 progs route
-# progs mount_msdosfs
-# progs comcontrol
-#
+
 # If you want to run natd, remember the alias library
 #progs natd
-#libs -lalias	# natd
-#
+#libs_so -lalias	# natd
+
 # ppp is rather large. Note that as of Jan.01, RELEASE_CRUNCH
 # makes ppp not use libalias, so you cannot have aliasing.
 #progs ppp
 
-# You need an editor. ee is relatively small, though there are
-# smaller ones. vi is much larger.
-# The editor also usually need a curses library.
-progs ee
-libs -lncurses
-# progs vi # ??
-# libs -lcurses # for vi
-
-#progs tcpdump
-special tcpdump srcdir /usr/src/usr.sbin/tcpdump/tcpdump
-
 progs arp
 
-progs bsdlabel
-progs fdisk
-progs mdconfig
+# these require libgeom
+# progs bsdlabel fdisk mdconfig
 
-progs kldload kldunload kldstat kldxref
-#progs grep
+progs kldload kldunload kldstat
+progs kldxref
 progs date
-#progs mount_nfs
-ln mount_nfs nfs
 progs ping
 #progs routed
 progs ipfw
 progs traceroute
 progs mdmfs
 ln mdmfs mount_mfs
+# Various filesystem support -- remember to enable the kernel parts
+# progs mount_msdosfs
+# progs mount_nfs
 # progs mount_cd9660
-# ln mount_cd9660 cd9660
-progs newfs
+ln mount_nfs nfs
+ln mount_cd9660 cd9660
+# progs newfs
 #ln newfs mount_mfs
-ln chown chgrp
 # ln mount_msdosfs msdos
 
 # For a small ssh client/server use dropbear
 
-libs -ll       # used by sh
-libs -lufs     # used by mount
-### ee uses ncurses instead of curses
-libs -ledit -lutil -lmd -lcrypt -lmp -lm -lkvm
-libs -lz -lpcap -lwrap
-libs -ltermcap -lgnuregex # -lcurses
-libs -lgeom
-libs -lsbuf -lbsdxml
+# Now the libraries
+libs_so	-lc		# the C library
+libs_so -ll		# used by sh (really ?)
+libs_so -lufs		# used by mount
+### ee uses ncurses but as a dependency
+#libs_so -lncurses
+libs_so -lm
+libs_so -ledit -lutil
+libs_so -lcrypt
+libs_so -lkvm
+libs_so -lz



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904061131.n36BVVan070125>