On Fri, Apr 10, 2020 at 09:35:16AM -0400, Nick Holland wrote: > Question about kernel randomization and relinking... > > It seems to take a fair amount of RAM, at least for systems that > are forced to run i386. And I mean real RAM -- swap doesn't seem > to cut it. > > I discovered that several machines I was intending on using for > minimal purposes just couldn't complete relinking. So I built a > VM and started playing with the RAM. > > Built with 1G RAM, default was a 1.2G swap, worked fine. > Reduced to 256MB RAM, Kernel failed to relink. As with my old > junk. > > The magic number seemed to be between 320MB (failed) and 384MB > (worked) of RAM. Ok, fine.
FWIW, my soekris net5501 with 256MB of RAM and 512MB swap does manage to relink a kernel (on 6.6 + syspatches). # ls -l relink.log -rw-r--r-- 1 root wheel - 507B Apr 10 13:33 relink.log # cat relink.log (SHA256) /bsd: OK LD="ld" LDFLAGS="-g" sh makegap.sh 0xcccccccc gapdummy.o ld -T ld.script -X --warn-common -nopie -o newbsd ${SYSTEM_HEAD} vers.o ${OBJS} text data bss dec hex 11815507 267748 1101824 13185079 c93037 mv newbsd newbsd.gdb ctfstrip -S -o newbsd newbsd.gdb rm -f bsd.gdb mv -f newbsd bsd install -F -m 700 bsd /bsd && sha256 -h /var/db/kernel.SHA256 /bsd Kernel has been relinked and is active on next reboot. SHA256 (/bsd) = a940ce989d708e5b87a1186ee81bd624066baeabe67b8405b52e4fa2988b565 # dislabel -pm wd0 # size offset fstype [fsize bsize cpg] a: 353.0M 64 4.2BSD 2048 16384 5624 # / b: 511.1M 722944 swap # none c: 15280.0M 0 unused d: 444.8M 1769728 4.2BSD 2048 16384 7116 # /tmp e: 607.7M 2680576 4.2BSD 2048 16384 9685 # /var f: 1703.0M 3925216 4.2BSD 2048 16384 12958 # /usr g: 505.8M 7412896 4.2BSD 2048 16384 8060 # /usr/X11R6 h: 1632.9M 8448736 4.2BSD 2048 16384 12958 # /usr/local i: 1381.2M 11792960 4.2BSD 2048 16384 12958 # /usr/src j: 5282.4M 14621632 4.2BSD 2048 16384 12958 # /usr/obj k: 2850.9M 25439936 4.2BSD 2048 16384 12958 # /home