From: Will Sowerbutts Date: Mon, 5 Jan 2015 00:49:44 +0000 (+0000) Subject: binman: Fail when _DISCARD grows to overlap _COMMONMEM X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=45690f3a3a0892c0c733204d0f00b6151ba67cc1;p=FUZIX.git binman: Fail when _DISCARD grows to overlap _COMMONMEM --- diff --git a/Kernel/tools/binman.c b/Kernel/tools/binman.c index 8aeff896..224ce1f6 100644 --- a/Kernel/tools/binman.c +++ b/Kernel/tools/binman.c @@ -115,6 +115,14 @@ int main(int argc, char *argv[]) exit(1); } + /* linker will allow us to overlap _DISCARD (which may grow) + with with _COMMONMEM. */ + if(s__DISCARD && s__DISCARD+l__DISCARD > s__COMMONMEM){ + fprintf(stderr, "Move _DISCARD down by at least %d bytes\n", + s__DISCARD + l__DISCARD - s__COMMONMEM); + exit(1); + } + printf("Scanning data from 0x%x to 0x%x\n", s__DATA, s__DATA + l__DATA); base = s__DATA;