From dc10b4300af949e4867ca892a394655e43f17d3c Mon Sep 17 00:00:00 2001 From: Antti Kantee Date: Mon, 15 Feb 2016 12:21:10 +0000 Subject: [PATCH] cookfs: warn if image is >1MB. --- app-tools/Makefile | 2 ++ app-tools/cookfs.in | 8 ++++++++ lib/librumprunfs_base/Makefile | 4 +++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app-tools/Makefile b/app-tools/Makefile index beb5b6f..beb39b8 100644 --- a/app-tools/Makefile +++ b/app-tools/Makefile @@ -58,6 +58,7 @@ MACHDIR:= rumprun-${MACHINE_GNU_ARCH}-${PLATFORM} LIBEXEC_CC:= $(subst ${BRSOURCEDIR},${BRLIBEXECDEST},${CC}) LIBEXEC_CXX:= $(subst ${BRSOURCEDIR},${BRLIBEXECDEST},${CXX}) LIBEXEC_OBJCOPY:= ${BRLIBEXECDEST}/${MACHINE_GNU_PLATFORM}-objcopy +LIBEXEC_SIZE:= ${BRLIBEXECDEST}/${MACHINE_GNU_PLATFORM}-size LIBEXEC_READELF:= ${BRLIBEXECDEST}/${MACHINE_GNU_PLATFORM}-readelf TOOLS_CC := ${RRDEST}/bin/$(TOOLTUPLE)-${_CCVARIANT} @@ -73,6 +74,7 @@ ${TOOLOBJ}/${2}: ${1} Makefile ${TOOLOBJ} -e 's#!LIBEXEC_CXX!#$(LIBEXEC_CXX)#g;' \ -e 's#!LIBEXEC_OBJCOPY!#$(LIBEXEC_OBJCOPY)#g;' \ -e 's#!LIBEXEC_READELF!#$(LIBEXEC_READELF)#g;' \ + -e 's#!LIBEXEC_SIZE!#$(LIBEXEC_SIZE)#g;' \ -e 's#!TOOLS_CC!#$(TOOLS_CC)#g;' \ -e 's#!TOOLS_CXX!#$(TOOLS_CXX)#g;' \ -e 's#!MACHINE_GNU_ARCH!#$(MACHINE_GNU_ARCH)#g;' \ diff --git a/app-tools/cookfs.in b/app-tools/cookfs.in index 2c920ea..4972b3f 100644 --- a/app-tools/cookfs.in +++ b/app-tools/cookfs.in @@ -35,6 +35,7 @@ set -eu : ${RUMPRUN_COOKFS_CC:=!LIBEXEC_CC!} : ${RUMPRUN_COOKFS_OBJCOPY:=!LIBEXEC_OBJCOPY!} +: ${RUMPRUN_COOKFS_SIZE:=!LIBEXEC_SIZE!} : ${RUMPRUN_COOKFS_INCDIR:=!DESTDIR!/rumprun-!MACHINE_GNU_ARCH!/include} usage () @@ -235,4 +236,11 @@ ${RUMPRUN_COOKFS_CC} !CFLAGS! !CPPFLAGS! -I${RUMPRUN_COOKFS_INCDIR} \ -nostdlib -Wl,-r -o ${TMPDIR}/fin.o ${TMPDIR}/d*.o ${TMPDIR}/constr.c ${RUMPRUN_COOKFS_OBJCOPY} ${LSYM} ${TMPDIR}/fin.o ${OUTFILE} +totsize=$(${RUMPRUN_COOKFS_SIZE} ${OUTFILE} | awk 'NR == 2{print $4}') +if [ ${totsize} -gt $((1024*1024)) ]; then + echo ">> WARNING: cookfs images will be loaded into memory." 2>&1 + echo ">> Maximum recommended size is 1024 kB." 2>&1 + echo ">> Your image memory footprint is $((${totsize}/1024)) kB." 2>&1 +fi + exit 0 diff --git a/lib/librumprunfs_base/Makefile b/lib/librumprunfs_base/Makefile index 11fd14c..9796ce5 100644 --- a/lib/librumprunfs_base/Makefile +++ b/lib/librumprunfs_base/Makefile @@ -10,7 +10,9 @@ includes: dependall: ( cd ${.CURDIR} && \ - RUMPRUN_COOKFS_CC="${CC}" RUMPRUN_COOKFS_OBJCOPY="${OBJCOPY}" \ + RUMPRUN_COOKFS_CC="${CC}" \ + RUMPRUN_COOKFS_OBJCOPY="${OBJCOPY}" \ + RUMPRUN_COOKFS_SIZE="${SIZE}" \ RUMPRUN_COOKFS_INCDIR="${RROBJ}/dest.stage/include" \ ${RROBJ}/app-tools/${TOOLTUPLE}-cookfs -s 1 \ ${MAKEOBJDIR}/librumprunfs_base.a rootfs ) -- 2.39.5