Browse Source

* ldemul.c (ldemul_do_assignments): New function.

(do_assignments_default): New function.
	* ldemul.h (ldemul_do_assignments): Declare.
	(do_assignments_default): Declare.
	(struct ld_emulation_xfer_struct): Add do_assignments.
	* ldlang.c (lang_do_assignments) Call ldemul_do_assignments.
	* emultempl/aix.em (ld_*_emulation): Init do_assignments field.
	* emultempl/armcoff.em: Likewise.
	* emultempl/beos.em: Likewise.
	* emultempl/generic.em: Likewise.
	* emultempl/gld960.em: Likewise.
	* emultempl/gld960c.em: Likewise.
	* emultempl/linux.em: Likewise.
	* emultempl/lnk960.em: Likewise.
	* emultempl/m68kcoff.em: Likewise.
	* emultempl/pe.em: Likewise.
	* emultempl/sunos.em: Likewise.
	* emultempl/ticoff.em: Likewise.
	* emultempl/vanilla.em: Likewise.
	* emultempl/elf32.em: Likewise, to call gld*_provide_init_fini_syms.
	(gld*_find_exp_assignment): Adjust bfd_elf_record_link_assignment call.
gdb-csl-arm-20051020-branch
Alan Modra 21 years ago
parent
commit
5e797c2c67
  1. 24
      ld/ChangeLog
  2. 1
      ld/emultempl/aix.em
  3. 1
      ld/emultempl/armcoff.em
  4. 1
      ld/emultempl/beos.em
  5. 5
      ld/emultempl/elf32.em
  6. 1
      ld/emultempl/generic.em
  7. 1
      ld/emultempl/gld960.em
  8. 1
      ld/emultempl/gld960c.em
  9. 1
      ld/emultempl/linux.em
  10. 1
      ld/emultempl/lnk960.em
  11. 1
      ld/emultempl/m68kcoff.em
  12. 1
      ld/emultempl/pe.em
  13. 1
      ld/emultempl/sunos.em
  14. 1
      ld/emultempl/ticoff.em
  15. 1
      ld/emultempl/vanilla.em
  16. 11
      ld/ldemul.c
  17. 9
      ld/ldemul.h
  18. 1
      ld/ldlang.c

24
ld/ChangeLog

@ -1,3 +1,27 @@
2005-07-15 Alan Modra <amodra@bigpond.net.au>
* ldemul.c (ldemul_do_assignments): New function.
(do_assignments_default): New function.
* ldemul.h (ldemul_do_assignments): Declare.
(do_assignments_default): Declare.
(struct ld_emulation_xfer_struct): Add do_assignments.
* ldlang.c (lang_do_assignments) Call ldemul_do_assignments.
* emultempl/aix.em (ld_*_emulation): Init do_assignments field.
* emultempl/armcoff.em: Likewise.
* emultempl/beos.em: Likewise.
* emultempl/generic.em: Likewise.
* emultempl/gld960.em: Likewise.
* emultempl/gld960c.em: Likewise.
* emultempl/linux.em: Likewise.
* emultempl/lnk960.em: Likewise.
* emultempl/m68kcoff.em: Likewise.
* emultempl/pe.em: Likewise.
* emultempl/sunos.em: Likewise.
* emultempl/ticoff.em: Likewise.
* emultempl/vanilla.em: Likewise.
* emultempl/elf32.em: Likewise, to call gld*_provide_init_fini_syms.
(gld*_find_exp_assignment): Adjust bfd_elf_record_link_assignment call.
2005-07-14 Jim Blandy <jimb@redhat.com>
Add support for the Renesas M32C and M16C.

1
ld/emultempl/aix.em

@ -1340,6 +1340,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation = {
gld${EMULATION_NAME}_set_output_arch,
gld${EMULATION_NAME}_choose_target,
gld${EMULATION_NAME}_before_allocation,
do_assignments_default,
gld${EMULATION_NAME}_get_script,
"${EMULATION_NAME}",
"${OUTPUT_FORMAT}",

1
ld/emultempl/armcoff.em

@ -260,6 +260,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
set_output_arch_default,
ldemul_default_target,
gld${EMULATION_NAME}_before_allocation,
do_assignments_default,
gld${EMULATION_NAME}_get_script,
"${EMULATION_NAME}",
"${OUTPUT_FORMAT}",

1
ld/emultempl/beos.em

@ -767,6 +767,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
set_output_arch_default,
ldemul_default_target,
gld_${EMULATION_NAME}_before_allocation,
do_assignments_default,
gld_${EMULATION_NAME}_get_script,
"${EMULATION_NAME}",
"${OUTPUT_FORMAT}",

5
ld/emultempl/elf32.em

@ -981,8 +981,8 @@ gld${EMULATION_NAME}_find_exp_assignment (etree_type *exp)
will do no harm. */
if (strcmp (exp->assign.dst, ".") != 0)
{
if (!bfd_elf_record_link_assignment (output_bfd, &link_info,
exp->assign.dst, provide))
if (!bfd_elf_record_link_assignment (&link_info, exp->assign.dst,
provide))
einfo ("%P%F: failed to record assignment to %s: %E\n",
exp->assign.dst);
}
@ -1881,6 +1881,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
${LDEMUL_SET_OUTPUT_ARCH-set_output_arch_default},
${LDEMUL_CHOOSE_TARGET-ldemul_default_target},
${LDEMUL_BEFORE_ALLOCATION-gld${EMULATION_NAME}_before_allocation},
${LDEMUL_DO_ASSIGNMENTS-gld${EMULATION_NAME}_provide_init_fini_syms},
${LDEMUL_GET_SCRIPT-gld${EMULATION_NAME}_get_script},
"${EMULATION_NAME}",
"${OUTPUT_FORMAT}",

1
ld/emultempl/generic.em

@ -128,6 +128,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
${LDEMUL_SET_OUTPUT_ARCH-set_output_arch_default},
${LDEMUL_CHOOSE_TARGET-ldemul_default_target},
${LDEMUL_BEFORE_ALLOCATION-before_allocation_default},
${LDEMUL_DO_ASSIGNMENTS-do_assignments_default},
${LDEMUL_GET_SCRIPT-gld${EMULATION_NAME}_get_script},
"${EMULATION_NAME}",
"${OUTPUT_FORMAT}",

1
ld/emultempl/gld960.em

@ -134,6 +134,7 @@ struct ld_emulation_xfer_struct ld_gld960_emulation =
gld960_set_output_arch,
gld960_choose_target,
before_allocation_default,
do_assignments_default,
gld960_get_script,
"960",
"",

1
ld/emultempl/gld960c.em

@ -149,6 +149,7 @@ struct ld_emulation_xfer_struct ld_gld960coff_emulation =
gld960_set_output_arch,
gld960_choose_target,
before_allocation_default,
do_assignments_default,
gld960_get_script,
"960coff",
"",

1
ld/emultempl/linux.em

@ -189,6 +189,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
set_output_arch_default,
ldemul_default_target,
gld${EMULATION_NAME}_before_allocation,
do_assignments_default,
gld${EMULATION_NAME}_get_script,
"${EMULATION_NAME}",
"${OUTPUT_FORMAT}",

1
ld/emultempl/lnk960.em

@ -269,6 +269,7 @@ struct ld_emulation_xfer_struct ld_lnk960_emulation =
lnk960_set_output_arch,
lnk960_choose_target,
before_allocation_default,
do_assignments_default,
lnk960_get_script,
"lnk960",
"",

1
ld/emultempl/m68kcoff.em

@ -222,6 +222,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
set_output_arch_default,
ldemul_default_target,
before_allocation_default,
do_assignments_default,
gld${EMULATION_NAME}_get_script,
"${EMULATION_NAME}",
"${OUTPUT_FORMAT}",

1
ld/emultempl/pe.em

@ -1822,6 +1822,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
set_output_arch_default,
ldemul_default_target,
gld_${EMULATION_NAME}_before_allocation,
do_assignments_default,
gld_${EMULATION_NAME}_get_script,
"${EMULATION_NAME}",
"${OUTPUT_FORMAT}",

1
ld/emultempl/sunos.em

@ -1013,6 +1013,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
set_output_arch_default,
ldemul_default_target,
gld${EMULATION_NAME}_before_allocation,
do_assignments_default,
gld${EMULATION_NAME}_get_script,
"${EMULATION_NAME}",
"${OUTPUT_FORMAT}",

1
ld/emultempl/ticoff.em

@ -162,6 +162,7 @@ struct ld_emulation_xfer_struct ld_${EMULATION_NAME}_emulation =
set_output_arch_default,
ldemul_default_target,
before_allocation_default,
do_assignments_default,
gld_${EMULATION_NAME}_get_script,
"${EMULATION_NAME}",
"${OUTPUT_FORMAT}",

1
ld/emultempl/vanilla.em

@ -65,6 +65,7 @@ struct ld_emulation_xfer_struct ld_vanilla_emulation =
vanilla_set_output_arch,
ldemul_default_target,
before_allocation_default,
do_assignments_default,
vanilla_get_script,
"vanilla",
"a.out-sunos-big",

11
ld/ldemul.c

@ -79,6 +79,12 @@ ldemul_before_allocation (void)
ld_emulation->before_allocation ();
}
void
ldemul_do_assignments (void)
{
ld_emulation->do_assignments ();
}
void
ldemul_set_output_arch (void)
{
@ -216,6 +222,11 @@ before_allocation_default (void)
strip_excluded_output_sections ();
}
void
do_assignments_default (void)
{
}
void
set_output_arch_default (void)
{

9
ld/ldemul.h

@ -1,6 +1,6 @@
/* ld-emul.h - Linker emulation header file
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001,
2002, 2003, 2004
2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This file is part of GLD, the Gnu Linker.
@ -35,6 +35,8 @@ extern void ldemul_after_allocation
(void);
extern void ldemul_before_allocation
(void);
extern void ldemul_do_assignments
(void);
extern void ldemul_set_output_arch
(void);
extern char *ldemul_choose_target
@ -77,6 +79,8 @@ extern void after_allocation_default
(void);
extern void before_allocation_default
(void);
extern void do_assignments_default
(void);
extern void set_output_arch_default
(void);
extern void syslib_default
@ -117,6 +121,9 @@ typedef struct ld_emulation_xfer_struct {
/* Run before allocating output sections. */
void (*before_allocation) (void);
/* Run to set special symbols at the same time as link script syms. */
void (*do_assignments) (void);
/* Return the appropriate linker script. */
char * (*get_script) (int *isfile);

1
ld/ldlang.c

@ -4585,6 +4585,7 @@ lang_do_assignments (void)
{
lang_statement_iteration++;
lang_do_assignments_1 (statement_list.head, abs_output_section, NULL, 0);
ldemul_do_assignments ();
}
/* Fix any .startof. or .sizeof. symbols. When the assemblers see the

Loading…
Cancel
Save