initial v9 stuff
authorKen Raeburn <raeburn@cygnus>
Thu, 8 Jul 1993 22:44:34 +0000 (22:44 +0000)
committerKen Raeburn <raeburn@cygnus>
Thu, 8 Jul 1993 22:44:34 +0000 (22:44 +0000)
ld/config/sparc64-elf.mt [new file with mode: 0644]
ld/configure.in
ld/emulparams/elf64-sparc.sh [new file with mode: 0644]
ld/scripttempl/elf.sc [new file with mode: 0644]

diff --git a/ld/config/sparc64-elf.mt b/ld/config/sparc64-elf.mt
new file mode 100644 (file)
index 0000000..5cab18e
--- /dev/null
@@ -0,0 +1,5 @@
+EMUL=elf64_sparc
+OTHER_EMULATIONS= em_elf64_sparc.o
+em_elf64_sparc.c: $(srcdir)/emulparams/elf64-sparc.sh \
+  $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
+       ${GENSCRIPTS} elf64-sparc.sh
index d3a45b48ff1ab2dbec5810d79be0bc566de22656..1bf0aab3e22e766e3d2485464e9a9117c6e1306f 100644 (file)
@@ -30,6 +30,8 @@ case "${target}" in
   sparc*-*-aout)       my_target=sun4
                        ;;
 # start-sanitize-v9
+  sparc64-*-elf*)      my_target=sparc64-elf
+                       ;;
   sparc64*)            my_target=sun4
                        ;;
 # end-sanitize-v9
diff --git a/ld/emulparams/elf64-sparc.sh b/ld/emulparams/elf64-sparc.sh
new file mode 100644 (file)
index 0000000..df6a3cb
--- /dev/null
@@ -0,0 +1,7 @@
+EMULATION_NAME=elf64_sparc
+SCRIPT_NAME=elf
+OUTPUT_FORMAT="elf64-sparc"
+TEXT_START_ADDR=0x2020
+PAGE_SIZE=0x2000
+NONPAGED_TEXT_START_ADDR=0x2000
+ARCH=sparc
diff --git a/ld/scripttempl/elf.sc b/ld/scripttempl/elf.sc
new file mode 100644 (file)
index 0000000..0643925
--- /dev/null
@@ -0,0 +1,32 @@
+cat <<EOF
+OUTPUT_FORMAT("${OUTPUT_FORMAT}")
+OUTPUT_ARCH(${ARCH})
+
+${RELOCATING+${LIB_SEARCH_DIRS}}
+${RELOCATING+__DYNAMIC  =  0;}
+${STACKZERO+${RELOCATING+${STACKZERO}}}
+${SHLIB_PATH+${RELOCATING+${SHLIB_PATH}}}
+SECTIONS
+{
+  .text ${RELOCATING+${TEXT_START_ADDR}}:
+  {
+    CREATE_OBJECT_SYMBOLS
+    *(.text)
+    ${RELOCATING+_etext = ${DATA_ALIGNMENT};}
+  }
+  .data  ${RELOCATING+${DATA_ALIGNMENT}} :
+  {
+    *(.data)
+    ${CONSTRUCTING+CONSTRUCTORS}
+    ${RELOCATING+_edata  =  .;}
+  }
+  .bss ${RELOCATING+SIZEOF(.data) + ADDR(.data)} :
+  {
+    ${RELOCATING+ __bss_start = .};
+   *(.bss)
+   *(COMMON)
+   ${RELOCATING+_end = . };
+   ${RELOCATING+__end = . };
+  }
+}
+EOF