v68-banked: import missing fuzix.ld from v68
authorPaolo Pisati <p.pisati@gmail.com>
Tue, 10 Jul 2018 17:29:37 +0000 (17:29 +0000)
committerPaolo Pisati <p.pisati@gmail.com>
Tue, 10 Jul 2018 17:29:37 +0000 (17:29 +0000)
Signed-off-by: Paolo Pisati <p.pisati@gmail.com>
Kernel/platform-v68-banked/fuzix.ld [new file with mode: 0644]

diff --git a/Kernel/platform-v68-banked/fuzix.ld b/Kernel/platform-v68-banked/fuzix.ld
new file mode 100644 (file)
index 0000000..b02ba91
--- /dev/null
@@ -0,0 +1,87 @@
+STARTUP(crt0.o)
+OUTPUT_ARCH(m68k)
+
+SEARCH_DIR(.)
+
+MEMORY
+{
+  ram (rwx) : ORIGIN = 0x2000, LENGTH = 0x80000-0x2000
+}
+
+/*
+ * stick everything in ram (of course)
+ */
+SECTIONS
+{
+  .text :
+  {
+    CREATE_OBJECT_SYMBOLS
+    *(.text .text.*)
+
+    . = ALIGN(0x4);
+    /* These are for running static constructors and destructors under ELF.  */
+    KEEP (*crtbegin.o(.ctors))
+    KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
+    KEEP (*(SORT(.ctors.*)))
+    KEEP (*(.ctors))
+    KEEP (*crtbegin.o(.dtors))
+    KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
+    KEEP (*(SORT(.dtors.*)))
+    KEEP (*(.dtors))
+
+    *(.rodata .rodata.*)
+
+    . = ALIGN(0x4);
+    *(.gcc_except_table)
+
+    . = ALIGN(0x4);
+    *(.eh_frame)
+
+    . = ALIGN(0x4);
+    __INIT_SECTION__ = . ;
+    LONG (0x4e560000)   /* linkw %fp,#0 */
+    *(.init)
+    SHORT (0x4e5e)      /* unlk %fp */
+    SHORT (0x4e75)      /* rts */
+
+    . = ALIGN(0x4);
+    __FINI_SECTION__ = . ;
+    LONG (0x4e560000)   /* linkw %fp,#0 */
+    *(.fini)
+    SHORT (0x4e5e)      /* unlk %fp */
+    SHORT (0x4e75)      /* rts */
+
+    . = ALIGN(0x4);
+    _etext = .;
+    *(.lit)
+  } > ram
+
+  .data :
+  {
+    *(.got.plt) *(.got)
+    *(.shdata)
+    *(.data .data.*)
+    _edata = .;
+  } > ram
+
+  .bss :
+  {
+    . = ALIGN(0x4);
+    __bss_start = . ;
+    *(.shbss)
+    *(.bss .bss.*)
+    *(COMMON)
+    _end =  ALIGN (0x8);
+    __end = _end;
+  } > ram
+
+  .stab 0 (NOLOAD) :
+  {
+    *(.stab)
+  }
+
+  .stabstr 0 (NOLOAD) :
+  {
+    *(.stabstr)
+  }
+}