git: e1a6d93155ce - main - pxeboot: Enforce a 500k limit here
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 06 Aug 2024 23:30:31 UTC
The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=e1a6d93155cea7fbb038dee671ecf005c4846fd3 commit e1a6d93155cea7fbb038dee671ecf005c4846fd3 Author: Warner Losh <imp@FreeBSD.org> AuthorDate: 2024-08-05 21:19:36 +0000 Commit: Warner Losh <imp@FreeBSD.org> CommitDate: 2024-08-06 23:22:36 +0000 pxeboot: Enforce a 500k limit here Have a separate PXEBOOTSIZE variable that acts much like LOADERSIZE variable to limit the size of the loader used for pxeldr. This allows people to override it independently of LOADERSIZE, which they may need to set larger for other reasons. Combined with PXEBOOT_DEFAULT_INTERP, you can build a larger lua loader, while still being able to build pxeldr with the 4th one, for example. MFC After: 3 days Sponsored by: Netflix Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D46214 --- stand/i386/pxeldr/Makefile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/stand/i386/pxeldr/Makefile b/stand/i386/pxeldr/Makefile index bec2a27af47a..715a13f19e6f 100644 --- a/stand/i386/pxeldr/Makefile +++ b/stand/i386/pxeldr/Makefile @@ -28,6 +28,12 @@ L=${PXEBOOT_DEFAULT_INTERP} L=${LOADER_DEFAULT_INTERP} .endif LOADERBIN= ${BOOTOBJ}/i386/loader_${L}/loader_${L}.bin +# pxeboot runs in an environment where there's 500k or less of space available +# due to space for packet buffers, network drivers, etc. While some environments +# may have a bit more, the limit of 500,000 (488k) provides enough margin to +# work in a huge array of environments. Larger values may work for specific +# environments. +PXEBOOTSIZE?=500000 CLEANFILES+= ${BOOT}.tmp @@ -43,6 +49,8 @@ CLEANFILES+= ${LOADER} # Note: pxeldr.S assumes a.out and will require changes for ELF if the output # format is changed to ELF. ${LOADER}: ${LOADERBIN} ${BTXLDR} ${BTXKERN} + @set -- `ls -l ${LOADERBIN}` ; x=$$((${PXEBOOTSIZE}-$$5)); \ + echo "$$x bytes available"; test $$x -ge 0 btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \ -b ${BTXKERN} ${LOADERBIN}