From db88957493b8c5f6c586ee3353995286766f2c41 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Mon, 26 Oct 1998 16:18:58 +0000 Subject: Patches done in conjunction with Juan Zamorano Flores . He debugged enough to let me know what was wrong and I supplied the code. :) --- c/src/lib/libbsp/m68k/dmv152/startup/linkcmds | 5 +++++ c/src/lib/libbsp/m68k/idp/startup/linkcmds | 6 ++++++ c/src/lib/libbsp/m68k/mvme136/startup/linkcmds | 4 ++++ c/src/lib/libbsp/m68k/mvme147/startup/linkcmds | 5 +++++ c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds | 5 +++++ c/src/lib/libbsp/m68k/mvme162/startup/linkcmds | 5 +++++ c/src/lib/start/m68k/start.s | 15 +-------------- 7 files changed, 31 insertions(+), 14 deletions(-) (limited to 'c/src') diff --git a/c/src/lib/libbsp/m68k/dmv152/startup/linkcmds b/c/src/lib/libbsp/m68k/dmv152/startup/linkcmds index ada99e3020..7046b88a20 100644 --- a/c/src/lib/libbsp/m68k/dmv152/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/dmv152/startup/linkcmds @@ -13,6 +13,8 @@ * $Id$ */ +StackSize = DEFINED(StackSize) ? StackSize : 0x1000; + MEMORY { ram : org = 0x12800, l = 1M @@ -60,6 +62,9 @@ SECTIONS _bss_start = . ; *(.bss) *(COMMON) + . += StackSize; /* XXX -- Old gld can't handle this */ + . = ALIGN (16); + stack_init = .; end = . ; _end = . ; } diff --git a/c/src/lib/libbsp/m68k/idp/startup/linkcmds b/c/src/lib/libbsp/m68k/idp/startup/linkcmds index 68026b08f8..d35d1d17ac 100644 --- a/c/src/lib/libbsp/m68k/idp/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/idp/startup/linkcmds @@ -11,6 +11,9 @@ * stack grows up towards high memory. This works for * both the rom68k and the mon68k monitors. */ + +StackSize = DEFINED(StackSize) ? StackSize : 0x1000; + MEMORY { ram : org = 0x10000, l = 2M @@ -58,6 +61,9 @@ SECTIONS _bss_start = . ; *(.bss) *(COMMON) + . += StackSize; /* XXX -- Old gld can't handle this */ + . = ALIGN (16); + stack_init = .; end = . ; _end = . ; } diff --git a/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds index 8598b870e9..eb88a08bfe 100644 --- a/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme136/startup/linkcmds @@ -13,6 +13,7 @@ * $Id$ */ +StackSize = DEFINED(StackSize) ? StackSize : 0x1000; MEMORY { ram : org = 0x3000, l = 1M @@ -60,6 +61,9 @@ SECTIONS _bss_start = . ; *(.bss) *(COMMON) + . += StackSize; /* XXX -- Old gld can't handle this */ + . = ALIGN (16); + stack_init = .; end = . ; _end = . ; } diff --git a/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds index fec94a5783..4749021258 100644 --- a/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme147/startup/linkcmds @@ -17,6 +17,8 @@ * $Id$ */ +StackSize = DEFINED(StackSize) ? StackSize : 0x1000; + MEMORY { ram : org = 0x5000, l = 0x3fafff @@ -64,6 +66,9 @@ SECTIONS _bss_start = . ; *(.bss) *(COMMON) + . += StackSize; /* XXX -- Old gld can't handle this */ + . = ALIGN (16); + stack_init = .; end = . ; _end = . ; } diff --git a/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds index 4fb36e7301..15c1ecf8e8 100644 --- a/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme147s/startup/linkcmds @@ -17,6 +17,8 @@ * $Id$ */ +StackSize = DEFINED(StackSize) ? StackSize : 0x1000; + MEMORY { ram : org = 0x7000, l = 0x3d8fff @@ -64,6 +66,9 @@ SECTIONS _bss_start = . ; *(.bss) *(COMMON) + . += StackSize; /* XXX -- Old gld can't handle this */ + . = ALIGN (16); + stack_init = .; end = . ; _end = . ; } diff --git a/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds b/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds index 7e3d734dbe..27bea7d764 100644 --- a/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds +++ b/c/src/lib/libbsp/m68k/mvme162/startup/linkcmds @@ -20,6 +20,8 @@ * $Id$ */ +StackSize = DEFINED(StackSize) ? StackSize : 0x1000; + MEMORY { ram : org = 0x100000, l = 1M @@ -62,6 +64,9 @@ SECTIONS bss_start = . ; *(.bss) *(COMMON) + . += StackSize; /* XXX -- Old gld can't handle this */ + . = ALIGN (16); + stack_init = .; end = . ; _end = . ; } diff --git a/c/src/lib/start/m68k/start.s b/c/src/lib/start/m68k/start.s index e7a58e997b..72849170d9 100644 --- a/c/src/lib/start/m68k/start.s +++ b/c/src/lib/start/m68k/start.s @@ -77,10 +77,7 @@ loop: movel #0,a1@+ | to zero out uninitialized cmpal a0,a1 jlt loop | loop until _end reached - movel # SYM (end),d0 | d0 = end of bss/start of heap - addl # SYM (heap_size),d0 | d0 = end of heap - movel d0, SYM (stack_start) | Save for brk() routine - addl # SYM (stack_size),d0 | make room for stack + movel # SYM (stack_init),d0 | d0 = stop of stack andl #0xffffffc0,d0 | align it on 16 byte boundary movw #0x3700,sr | SUPV MODE,INTERRUPTS OFF!!! movel d0,a7 | set master stack pointer @@ -124,9 +121,6 @@ BEGIN_DATA SYM (start_frame): .space 4,0 - PUBLIC (stack_start) -SYM (stack_start): - .space 4,0 END_DATA BEGIN_BSS @@ -152,13 +146,6 @@ SYM (initial_usp): SYM (initial_sr): .space 2 - PUBLIC (heap_size) - .set SYM (heap_size),0x2000 - - PUBLIC (stack_size) - .set SYM (stack_size),0x1000 - - END_DATA #endif END -- cgit v1.2.3