summaryrefslogtreecommitdiff
path: root/ld/emultempl
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2012-11-26 23:26:34 +0000
committerRoland McGrath <roland@gnu.org>2012-11-26 23:26:34 +0000
commit27c51457aed3420c201d145609fbeb6b83c38134 (patch)
tree55d648707f751d43074e5c71e98b8b38890a1211 /ld/emultempl
parentcf71ddc7d6551fc86f3854d93bdab7cc561c84c0 (diff)
downloadbinutils-redhat-27c51457aed3420c201d145609fbeb6b83c38134.tar.gz
ld/
* emultempl/aarch64elf.em (gld${EMULATION_NAME}_before_parse): Copy last elf32.em here too. * emultempl/armelf.em (gld${EMULATION_NAME}_before_parse): Likewise. * emultempl/mmixelf.em (gld${EMULATION_NAME}_before_parse): Likewise. * emultempl/scoreelf.em (gld${EMULATION_NAME}_before_parse): Likewise.
Diffstat (limited to 'ld/emultempl')
-rw-r--r--ld/emultempl/aarch64elf.em1
-rw-r--r--ld/emultempl/armelf.em25
-rw-r--r--ld/emultempl/mmixelf.em4
-rw-r--r--ld/emultempl/scoreelf.em2
4 files changed, 18 insertions, 14 deletions
diff --git a/ld/emultempl/aarch64elf.em b/ld/emultempl/aarch64elf.em
index 4c03ffd449..25935d0bc2 100644
--- a/ld/emultempl/aarch64elf.em
+++ b/ld/emultempl/aarch64elf.em
@@ -39,6 +39,7 @@ gld${EMULATION_NAME}_before_parse (void)
#endif /* not TARGET_ */
input_flags.dynamic = ${DYNAMIC_LINK-TRUE};
config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
+ config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
}
static void
diff --git a/ld/emultempl/armelf.em b/ld/emultempl/armelf.em
index 3b881dd24d..7f7d2cc00f 100644
--- a/ld/emultempl/armelf.em
+++ b/ld/emultempl/armelf.em
@@ -52,6 +52,7 @@ gld${EMULATION_NAME}_before_parse (void)
#endif /* not TARGET_ */
input_flags.dynamic = ${DYNAMIC_LINK-TRUE};
config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
+ config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
}
static void
@@ -254,19 +255,19 @@ compare_output_sec_vma (const void *a, const void *b)
asection *asec = *(asection **) a, *bsec = *(asection **) b;
asection *aout = asec->output_section, *bout = bsec->output_section;
bfd_vma avma, bvma;
-
+
/* If there's no output section for some reason, compare equal. */
if (!aout || !bout)
return 0;
-
+
avma = aout->vma + asec->output_offset;
bvma = bout->vma + bsec->output_offset;
-
+
if (avma > bvma)
return 1;
else if (avma < bvma)
return -1;
-
+
return 0;
}
@@ -286,10 +287,10 @@ gld${EMULATION_NAME}_after_allocation (void)
{
bfd *abfd = is->the_bfd;
asection *sec;
-
+
if ((abfd->flags & (EXEC_P | DYNAMIC)) != 0)
continue;
-
+
for (sec = abfd->sections; sec != NULL; sec = sec->next)
{
asection *out_sec = sec->output_section;
@@ -305,7 +306,7 @@ gld${EMULATION_NAME}_after_allocation (void)
if (sec_count == list_size)
{
list_size *= 2;
- sec_list = (asection **)
+ sec_list = (asection **)
xrealloc (sec_list, list_size * sizeof (asection *));
}
@@ -313,13 +314,13 @@ gld${EMULATION_NAME}_after_allocation (void)
}
}
}
-
+
qsort (sec_list, sec_count, sizeof (asection *), &compare_output_sec_vma);
-
+
if (elf32_arm_fix_exidx_coverage (sec_list, sec_count, &link_info,
merge_exidx_entries))
need_laying_out = 1;
-
+
free (sec_list);
}
@@ -465,7 +466,7 @@ arm_elf_create_output_section_statements (void)
target2_type, fix_v4bx, use_blx,
vfp11_denorm_fix, no_enum_size_warning,
no_wchar_size_warning,
- pic_veneer, fix_cortex_a8,
+ pic_veneer, fix_cortex_a8,
fix_arm1176);
stub_file = lang_add_input_file ("linker stubs",
@@ -480,7 +481,7 @@ arm_elf_create_output_section_statements (void)
einfo ("%X%P: can not create BFD %E\n");
return;
}
-
+
stub_file->the_bfd->flags |= BFD_LINKER_CREATED;
ldlang_add_file (stub_file);
diff --git a/ld/emultempl/mmixelf.em b/ld/emultempl/mmixelf.em
index a875a5c10d..89c60c9878 100644
--- a/ld/emultempl/mmixelf.em
+++ b/ld/emultempl/mmixelf.em
@@ -1,5 +1,5 @@
# This shell script emits a C file. -*- C -*-
-# Copyright 2001, 2002, 2003, 2005, 2007 Free Software Foundation, Inc.
+# Copyright 2001, 2002, 2003, 2005, 2007, 2012 Free Software Foundation, Inc.
#
# This file is part of the GNU Binutils.
#
@@ -38,6 +38,8 @@ elfmmix_before_parse (void)
full system with shared libraries and demand paging, you will want to
exclude this file. */
config.magic_demand_paged = FALSE;
+
+ config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
}
EOF
diff --git a/ld/emultempl/scoreelf.em b/ld/emultempl/scoreelf.em
index 94aa5af17a..8556b40488 100644
--- a/ld/emultempl/scoreelf.em
+++ b/ld/emultempl/scoreelf.em
@@ -38,6 +38,7 @@ gld${EMULATION_NAME}_before_parse ()
#endif /* not TARGET_ */
input_flags.dynamic = ${DYNAMIC_LINK-TRUE};
config.has_shared = `if test -n "$GENERATE_SHLIB_SCRIPT" ; then echo TRUE ; else echo FALSE ; fi`;
+ config.separate_code = `if test "x${SEPARATE_CODE}" = xyes ; then echo TRUE ; else echo FALSE ; fi`;
}
static void
@@ -74,4 +75,3 @@ LDEMUL_AFTER_OPEN=score_elf_after_open
# Replace the elf before_parse function with our own.
LDEMUL_BEFORE_PARSE=gld"${EMULATION_NAME}"_before_parse
-