aboutsummaryrefslogtreecommitdiff
path: root/ld/emulparams
diff options
context:
space:
mode:
Diffstat (limited to 'ld/emulparams')
-rw-r--r--ld/emulparams/elf32tilegx.sh26
-rw-r--r--ld/emulparams/elf32tilepro.sh27
-rw-r--r--ld/emulparams/elf64tilegx.sh25
3 files changed, 78 insertions, 0 deletions
diff --git a/ld/emulparams/elf32tilegx.sh b/ld/emulparams/elf32tilegx.sh
new file mode 100644
index 0000000..0b32262
--- /dev/null
+++ b/ld/emulparams/elf32tilegx.sh
@@ -0,0 +1,26 @@
+SCRIPT_NAME=elf
+OUTPUT_FORMAT="elf32-tilegx"
+TEXT_START_ADDR=0x10000
+NO_REL_RELOCS=yes
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
+# See also `include/elf/tilegx.h'
+ARCH=tilegx
+ALIGNMENT=64
+MACHINE=
+NOP=0
+TEMPLATE_NAME=elf32
+GENERATE_SHLIB_SCRIPT=yes
+GENERATE_COMBRELOC_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
+NO_SMALL_DATA=yes
+SEPARATE_GOTPLT=8
+# Look for 32 bit target libraries in /lib32, /usr/lib32 etc., first.
+LIBPATH_SUFFIX=32
+OTHER_SECTIONS="
+ /* TILE architecture interrupt vector areas */
+ .intrpt0 0xfc000000 : { KEEP(*(.intrpt0)) }
+ .intrpt1 0xfd000000 : { KEEP(*(.intrpt1)) }
+ .intrpt2 0xfe000000 : { KEEP(*(.intrpt2)) }
+ .intrpt3 0xff000000 : { KEEP(*(.intrpt3)) }
+"
diff --git a/ld/emulparams/elf32tilepro.sh b/ld/emulparams/elf32tilepro.sh
new file mode 100644
index 0000000..5fb4443
--- /dev/null
+++ b/ld/emulparams/elf32tilepro.sh
@@ -0,0 +1,27 @@
+SCRIPT_NAME=elf
+if [ -z "$OUTPUT_FORMAT" ]; then
+ # Allow overriding externally to "elf32-tile64" if desired
+ OUTPUT_FORMAT=elf32-tilepro
+fi
+TEXT_START_ADDR=0x10000
+NO_REL_RELOCS=yes
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
+# See also `include/elf/tilepro.h'
+ARCH=tilepro
+ALIGNMENT=64
+MACHINE=
+NOP=0
+TEMPLATE_NAME=elf32
+GENERATE_SHLIB_SCRIPT=yes
+GENERATE_COMBRELOC_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
+NO_SMALL_DATA=yes
+SEPARATE_GOTPLT=8
+OTHER_SECTIONS="
+ /* TILEPRO architecture interrupt vector areas */
+ .intrpt0 0xfc000000 : { KEEP(*(.intrpt0)) }
+ .intrpt1 0xfd000000 : { KEEP(*(.intrpt1)) }
+ .intrpt2 0xfe000000 : { KEEP(*(.intrpt2)) }
+ .intrpt3 0xff000000 : { KEEP(*(.intrpt3)) }
+"
diff --git a/ld/emulparams/elf64tilegx.sh b/ld/emulparams/elf64tilegx.sh
new file mode 100644
index 0000000..a2c407e
--- /dev/null
+++ b/ld/emulparams/elf64tilegx.sh
@@ -0,0 +1,25 @@
+SCRIPT_NAME=elf
+OUTPUT_FORMAT="elf64-tilegx"
+TEXT_START_ADDR=0x10000
+NO_REL_RELOCS=yes
+MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
+# See also `include/elf/tilegx.h'
+ARCH=tilegx
+ALIGNMENT=64
+MACHINE=
+NOP=0
+# Note that "elf32.em" actually handles elf64 also.
+TEMPLATE_NAME=elf32
+GENERATE_SHLIB_SCRIPT=yes
+GENERATE_COMBRELOC_SCRIPT=yes
+GENERATE_PIE_SCRIPT=yes
+NO_SMALL_DATA=yes
+SEPARATE_GOTPLT=16
+OTHER_SECTIONS="
+ /* TILE architecture interrupt vector areas */
+ .intrpt0 0xfffffffffc000000 : { KEEP(*(.intrpt0)) }
+ .intrpt1 0xfffffffffd000000 : { KEEP(*(.intrpt1)) }
+ .intrpt2 0xfffffffffe000000 : { KEEP(*(.intrpt2)) }
+ .intrpt3 0xffffffffff000000 : { KEEP(*(.intrpt3)) }
+"