diff options
Diffstat (limited to 'ld/emulparams')
-rw-r--r-- | ld/emulparams/shelf_vxworks.sh | 19 | ||||
-rw-r--r-- | ld/emulparams/shlelf_vxworks.sh | 2 | ||||
-rw-r--r-- | ld/emulparams/vxworks.sh | 8 |
3 files changed, 25 insertions, 4 deletions
diff --git a/ld/emulparams/shelf_vxworks.sh b/ld/emulparams/shelf_vxworks.sh new file mode 100644 index 0000000..a87d529 --- /dev/null +++ b/ld/emulparams/shelf_vxworks.sh @@ -0,0 +1,19 @@ +# If you change this file, please also look at files which source this one: +# shlelf_vxworks.sh + +SCRIPT_NAME=elf +BIG_OUTPUT_FORMAT="elf32-sh-vxworks" +LITTLE_OUTPUT_FORMAT="elf32-shl-vxworks" +OUTPUT_FORMAT="$BIG_OUTPUT_FORMAT" +TEXT_START_ADDR=0x1000 +MAXPAGESIZE='CONSTANT (MAXPAGESIZE)' +ARCH=sh +MACHINE= +TEMPLATE_NAME=elf32 +GENERATE_SHLIB_SCRIPT=yes +ENTRY=__start +SYMPREFIX=_ +GOT=".got ${RELOCATING-0} : { + PROVIDE(__GLOBAL_OFFSET_TABLE_ = .); + *(.got.plt) *(.got) }" +. ${srcdir}/emulparams/vxworks.sh diff --git a/ld/emulparams/shlelf_vxworks.sh b/ld/emulparams/shlelf_vxworks.sh new file mode 100644 index 0000000..0a055b1 --- /dev/null +++ b/ld/emulparams/shlelf_vxworks.sh @@ -0,0 +1,2 @@ +. ${srcdir}/emulparams/shelf_vxworks.sh +OUTPUT_FORMAT="$LITTLE_OUTPUT_FORMAT" diff --git a/ld/emulparams/vxworks.sh b/ld/emulparams/vxworks.sh index 4382859..e54cdbb 100644 --- a/ld/emulparams/vxworks.sh +++ b/ld/emulparams/vxworks.sh @@ -17,12 +17,12 @@ FINI_START='_fini = .; KEEP (*(.fini$0[1-9])); KEEP (*(.fini$[1-8][0-9])); KEEP (*(.fini$9[0-8]));' -FINI_END='KEEP (*(.fini$99)); - PROVIDE (_etext = .);' +FINI_END="KEEP (*(.fini\$99)); + PROVIDE (${SYMPREFIX}_etext = .);" ETEXT_NAME=etext_unrelocated -OTHER_SYMBOLS="PROVIDE (_ehdr = ${TEXT_START_ADDR});" -DATA_END_SYMBOLS=".edata : { PROVIDE (_edata = .); }" +OTHER_END_SYMBOLS="PROVIDE (${SYMPREFIX}_ehdr = ${TEXT_START_ADDR});" +DATA_END_SYMBOLS=".edata : { PROVIDE (${SYMPREFIX}_edata = .); }" VXWORKS_BASE_EM_FILE=$EXTRA_EM_FILE EXTRA_EM_FILE=vxworks unset EMBEDDED |