Messages per Month
|Subject:||[patch] use ld(1) to build kernel with linked-in md(4) filesys|
|From:||W Gerald Hicks (gehi...@gehicks.dyndns.org)|
|Date:||Jun 29, 2002 7:47:50 pm|
The patch seems to remove rather than deprecate the MD_ROOT_SIZE code.
Oops, wrong choice of words. Yes, it's intended to replace the MD_ROOT_SIZE feature and any need for a write_mfs_in_kernel program.
I wasn't clear about what this patch is for right now. I don't want to ask to have it committed right away. It is one of a few prerequisite patches I am preparing to do some work on PicoBSD and needed to post this so others will be able to get the subsequent patches to build.
Is there a good reason not just leave it there and add the new option.
I suppose I could have set a -DMD_ROOT_IMAGE when 'makeoption MD_ROOT_IMAGE=' is specified but otherwise it seems hard to relate 'options' with 'makeoptions'.
The new approach requires that you have the image available at the time
that the kernel is compiled, so for some applications it is less flexible (...)
Well, not exactly. This patch is only the first piece of a scheme :-)
kern/40017 is related to this effort. It allows us to use modified kernel build metadata (sys/conf) for specialized applications. Using this facility I am going to provide further patches which allow incremental linking.
These changes are pretty far-reaching and I was afraid of taking them straight to src/sys/conf directly. kern/40017 allows us to use something like /usr/local/src/picobsd/conf to implement extra build steps from private specialized versions of the kern.pre.mk and kern.post.mk files.
The picobsd/conf example will implement another couple of makeoptions:
makeoptions RLINK_KERNEL="/mykernels/kernel-foo-v1.rel" makeoptions RLINK_KERNEL_OBJS="/tmp/foo.o"
There are two new kernel build targets used for these options:
make prelim # build a partially linked-kernel make final # produce a bootable kernel
This has all been tested successfully in a src/conf patch. I hesitated submitting them there in favor of an "outboard" approach using kern/40017
I'd really rather avoid bringing the objcopy step into the kernel build process.
Being able to build a kernel with a two-step process allows us to trivally wrap everything into a little shell script or other makefile fragment. The 'make final' step can be run as often as one requires while changing filesystem images.
Jerry Hicks gehi...@gehicks.dyndns.org
To Unsubscribe: send mail to majo...@FreeBSD.org with "unsubscribe freebsd-small" in the body of the message