Make "config -e" work with ramdisk kernels
authorkn <kn@openbsd.org>
Thu, 11 Nov 2021 20:25:56 +0000 (20:25 +0000)
committerkn <kn@openbsd.org>
Thu, 11 Nov 2021 20:25:56 +0000 (20:25 +0000)
commit55131dfc7c59dabb68f1e7da103c10fe7d22005f
tree57465fd3c5531ea04a037f8a314de944e8cd962a
parent2c847e449f3f6837e1710bc93c7a053a7e76aa50
Make "config -e" work with ramdisk kernels

amd64, alpha, i386 and macppc strip *all* symbols off the ramdisk bsd.rd
(before compressing it) and thus break config(8)'s modification feature:

$ gzcat bsd.rd > bsd.rd.raw
$ config -e bsd.rd.raw
...
config: failed to get first cfdata

This is different from "boot> boot /bsd.rd -c" which sucessfully drops into
UKC on all platforms regardless of stripping.

Having needed "config -e" this on arm64 made me look into this for all
platforms.  Other platforms work because they don't strip these symbols.

Tweak objcopy(1)'s stripping on amd64 and macppc to unbreak permanent
modifications.  I have no alpha or i386 to test, so these remain broken.

macppc works without cranking media size.
amd64 was cranked to the smallest possible size.

OK deraadt
distrib/amd64/ramdisk_cd/Makefile
distrib/macppc/ramdisk/Makefile