Fix some ld dependencies
authorAlan Modra <amodra@gmail.com>
Wed, 10 Apr 2019 02:05:48 +0000 (11:35 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 10 Apr 2019 04:00:32 +0000 (13:30 +0930)
In looking at the csky-elf vs. csky-linux differences, the first thing
I compared was csky_elf.sh and cskyelf_linux.sh.  Those files are
mostly the same but besides the real differences, annoyingly have some
lines ordered differently.  It's better in such cases to have one file
source the other, making differences plain.  This patch does that for
csky and microblaze, removes an unused variable defined in a few
places, and fixes ld makefile dependencies.

* Makefile.am (eskyelf.c, eskyelf_linux.c): Depend on cskyelf.em.
(ecskyelf_linux.c): Depend on cskyelf.sh.
(eelf32microblazeel.c): Depend on elf32microblaze.sh.
* Makefile.in: Regenerate.
* emulparams/cskyelf.sh: Comment regarding cskelf_linux.sh.
(PAGE_SIZE): Don't define.
* emulparams/cskyelf_linux.sh: Source sckyelf.sh, leaving just
the differing variable defs/undefs.
* emulparams/elf32mcore.sh (PAGE_SIZE): Don't define.
* emulparams/elf32microblaze.sh: Comment re. elf32microblazeel.sh.
(OUTPUT_FORMAT): Use BIG_OUTPUT_FORMAT.
(PAGE_SIZE): Don't define.
* emulparams/elf32microblazeel.sh: Source elf32microblaze.sh,
leaving just the differing OUTPUT_FORMAT.

ld/ChangeLog
ld/Makefile.am
ld/Makefile.in
ld/emulparams/cskyelf.sh
ld/emulparams/cskyelf_linux.sh
ld/emulparams/elf32mcore.sh
ld/emulparams/elf32microblaze.sh
ld/emulparams/elf32microblazeel.sh

index d4e3dc1aa2f18bd1f3b22fec891f57561555c85a..4df91b7a2056a9da34f401f035f2994b45ed7210 100644 (file)
@@ -1,3 +1,20 @@
+2019-04-10  Alan Modra  <amodra@gmail.com>
+
+       * Makefile.am (eskyelf.c, eskyelf_linux.c): Depend on cskyelf.em.
+       (ecskyelf_linux.c): Depend on cskyelf.sh.
+       (eelf32microblazeel.c): Depend on elf32microblaze.sh.
+       * Makefile.in: Regenerate.
+       * emulparams/cskyelf.sh: Comment regarding cskelf_linux.sh.
+       (PAGE_SIZE): Don't define.
+       * emulparams/cskyelf_linux.sh: Source sckyelf.sh, leaving just
+       the differing variable defs/undefs.
+       * emulparams/elf32mcore.sh (PAGE_SIZE): Don't define.
+       * emulparams/elf32microblaze.sh: Comment re. elf32microblazeel.sh.
+       (OUTPUT_FORMAT): Use BIG_OUTPUT_FORMAT.
+       (PAGE_SIZE): Don't define.
+       * emulparams/elf32microblazeel.sh: Source elf32microblaze.sh,
+       leaving just the differing OUTPUT_FORMAT.
+
 2019-04-10  Alan Modra  <amodra@gmail.com>
 
        * po/BLD-POTFILES.in: Regenerate.
index 199bacf5d74cea2da8c8154a5ff3aba949fba0bd..0434a827b9cb44766e88c8aabf94c04d010ec035 100644 (file)
@@ -879,9 +879,11 @@ ecrislinux.c: $(srcdir)/emulparams/crislinux.sh \
   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
 ecskyelf.c: $(srcdir)/emulparams/cskyelf.sh \
+  $(srcdir)/emultempl/cskyelf.em \
   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
 ecskyelf_linux.c: $(srcdir)/emulparams/cskyelf_linux.sh \
+  $(srcdir)/emulparams/cskyelf.sh $(srcdir)/emultempl/cskyelf.em \
   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
 ed10velf.c: $(srcdir)/emulparams/d10velf.sh \
@@ -1178,6 +1180,7 @@ eelf32metag.c: $(srcdir)/emulparams/elf32metag.sh \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
 eelf32microblazeel.c: $(srcdir)/emulparams/elf32microblazeel.sh \
+  $(srcdir)/emulparams/elf32microblaze.sh \
   $(ELF_DEPS) $(srcdir)/scripttempl/elfmicroblaze.sc ${GEN_DEPENDS}
 
 eelf32microblaze.c: $(srcdir)/emulparams/elf32microblaze.sh \
index edaf530a65b4702764249cd5570a7d899a6f5250..3aede6e79856503e88838719f50b693df91d1152 100644 (file)
@@ -2482,9 +2482,11 @@ ecrislinux.c: $(srcdir)/emulparams/crislinux.sh \
   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
 ecskyelf.c: $(srcdir)/emulparams/cskyelf.sh \
+  $(srcdir)/emultempl/cskyelf.em \
   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
 ecskyelf_linux.c: $(srcdir)/emulparams/cskyelf_linux.sh \
+  $(srcdir)/emulparams/cskyelf.sh $(srcdir)/emultempl/cskyelf.em \
   $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
 ed10velf.c: $(srcdir)/emulparams/d10velf.sh \
@@ -2781,6 +2783,7 @@ eelf32metag.c: $(srcdir)/emulparams/elf32metag.sh \
   $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
 
 eelf32microblazeel.c: $(srcdir)/emulparams/elf32microblazeel.sh \
+  $(srcdir)/emulparams/elf32microblaze.sh \
   $(ELF_DEPS) $(srcdir)/scripttempl/elfmicroblaze.sc ${GEN_DEPENDS}
 
 eelf32microblaze.c: $(srcdir)/emulparams/elf32microblaze.sh \
index 218951c730a9db03a8db61d5b44ff3df6d2bb8ce..c9f7e3fa5cf06fdeab8ca3737dd758793057a148 100644 (file)
@@ -1,9 +1,10 @@
+# If you change this file, please also look at files which source this one:
+# cskyelf_linux.sh
 SCRIPT_NAME=elf
 OUTPUT_FORMAT="elf32-csky-little"
 BIG_OUTPUT_FORMAT="elf32-csky-big"
 LITTLE_OUTPUT_FORMAT="elf32-csky-little"
 NO_REL_RELOCS=yes
-PAGE_SIZE=0x1000
 TARGET_PAGE_SIZE=0x400
 MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
 TEXT_START_ADDR=0x8000
index 118be1acecb08f4c6df74df485b32d5a48d6e294..135ea1f9549ad35da880bb101fec13753130c30c 100644 (file)
@@ -1,36 +1,9 @@
-SCRIPT_NAME=elf
-OUTPUT_FORMAT="elf32-csky-little"
-BIG_OUTPUT_FORMAT="elf32-csky-big"
-LITTLE_OUTPUT_FORMAT="elf32-csky-little"
-NO_REL_RELOCS=yes
-TARGET_PAGE_SIZE=0x400
-MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
+. ${srcdir}/emulparams/cskyelf.sh
+
+unset EMBEDDED
+unset ENTRY
 COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
-CHECK_RELOCS_AFTER_OPEN_INPUT=yes
-TEXT_START_ADDR=0x8000
-NONPAGED_TEXT_START_ADDR=0
-ARCH=csky
 GENERATE_SHLIB_SCRIPT=yes
 GENERATE_PIE_SCRIPT=yes
-
-# There is a problem with the NOP value - it must work for both
-# big endian and little endian systems.  Unfortunately there is
-# no symmetrical mcore opcode that functions as a noop.  The
-# chosen solution is to use "tst r0, r14".  This is a symmetrical
-# value, and apart from the corruption of the C bit, it has no other
-# side effects.  Since the carry bit is never tested without being
-# explicitly set first, and since the NOP code is only used as a
-# fill value between independently viable pieces of code, it should
-# not matter.
-NOP=0
-
-OTHER_BSS_SYMBOLS="__bss_start__ = . ;"
-OTHER_BSS_END_SYMBOLS="__bss_end__ = . ;"
-
-# This sets the stack to the top of the simulator memory (2^19 bytes).
-# STACK_ADDR=0x80000
-
-TEMPLATE_NAME=elf32
 GENERATE_SHLIB_SCRIPT=yes
 GENERATE_COMBRELOC_SCRIPT=yes
-EXTRA_EM_FILE=cskyelf
index 8a09bba2c8d7e1bb1c4150afe7055b94b0d1d81f..ee988129c46a1a0f34fee1259807862847781cba 100644 (file)
@@ -3,7 +3,6 @@ OUTPUT_FORMAT="elf32-mcore-little"
 BIG_OUTPUT_FORMAT="elf32-mcore-big"
 LITTLE_OUTPUT_FORMAT="elf32-mcore-little"
 NO_REL_RELOCS=yes
-PAGE_SIZE=0x1000
 TARGET_PAGE_SIZE=0x400
 MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
 TEXT_START_ADDR=0
index 8595e2dba432fc0fa69c1a7e6034f6ee3c9b2cb9..116e37d0705eb3eed3283a3b7d722851e93cafa1 100644 (file)
@@ -1,7 +1,9 @@
+# If you change this file, please also look at files which source this one:
+# elf32microblazeel.sh
 SCRIPT_NAME=elfmicroblaze
-OUTPUT_FORMAT="elf32-microblaze"
 BIG_OUTPUT_FORMAT="elf32-microblaze"
 LITTLE_OUTPUT_FORMAT="elf32-microblazeel"
+OUTPUT_FORMAT=$BIG_OUTPUT_FORMAT
 #TEXT_START_ADDR=0
 NONPAGED_TEXT_START_ADDR=0x28
 ALIGNMENT=4
@@ -13,7 +15,6 @@ NOP=0x80000000
 
 # Hmmm, there's got to be a better way.  This sets the stack to the
 # top of the simulator memory (2^19 bytes).
-#PAGE_SIZE=0x1000
 #DATA_ADDR=0x10000
 #OTHER_RELOCATING_SECTIONS='.stack 0x7000 : { _stack = .; *(.stack) }'
 #$@{RELOCATING+ PROVIDE (__stack = 0x7000);@}
index 86268b0ac5b9f29d4ebec54b35e80d8e7d904761..14f3b3bf562275137a15aea61526f06331a3e7ec 100644 (file)
@@ -1,23 +1,2 @@
-SCRIPT_NAME=elfmicroblaze
-OUTPUT_FORMAT="elf32-microblazeel"
-BIG_OUTPUT_FORMAT="elf32-microblaze"
-LITTLE_OUTPUT_FORMAT="elf32-microblazeel"
-#TEXT_START_ADDR=0
-NONPAGED_TEXT_START_ADDR=0x28
-ALIGNMENT=4
-MAXPAGESIZE=4
-ARCH=microblaze
-EMBEDDED=yes
-
-NOP=0x80000000
-
-# Hmmm, there's got to be a better way.  This sets the stack to the
-# top of the simulator memory (2^19 bytes).
-#PAGE_SIZE=0x1000
-#DATA_ADDR=0x10000
-#OTHER_RELOCATING_SECTIONS='.stack 0x7000 : { _stack = .; *(.stack) }'
-#$@{RELOCATING+ PROVIDE (__stack = 0x7000);@}
-#OTHER_RELOCATING_SECTIONS='PROVIDE (_stack = _end + 0x1000);'
-
-TEMPLATE_NAME=elf32
-#GENERATE_SHLIB_SCRIPT=yes
+. ${srcdir}/emulparams/elf32microblaze.sh
+OUTPUT_FORMAT=$LITTLE_OUTPUT_FORMAT