From f4884049d9b8ce4430deae38dbac33b301451411 Mon Sep 17 00:00:00 2001 From: Ralf Corsepius Date: Tue, 14 Nov 2006 17:50:23 +0000 Subject: Add. --- .../patches/binutils-2.17-rtems4.8-20061021.diff | 556 +++++++++++++++++++++ 1 file changed, 556 insertions(+) create mode 100644 contrib/crossrpms/patches/binutils-2.17-rtems4.8-20061021.diff (limited to 'contrib') diff --git a/contrib/crossrpms/patches/binutils-2.17-rtems4.8-20061021.diff b/contrib/crossrpms/patches/binutils-2.17-rtems4.8-20061021.diff new file mode 100644 index 0000000000..a5b2216a5c --- /dev/null +++ b/contrib/crossrpms/patches/binutils-2.17-rtems4.8-20061021.diff @@ -0,0 +1,556 @@ +diff -uNr binutils-2.17.orig/bfd/bfd-in2.h binutils-2.17/bfd/bfd-in2.h +--- binutils-2.17.orig/bfd/bfd-in2.h 2006-03-26 01:38:42.000000000 +0100 ++++ binutils-2.17/bfd/bfd-in2.h 2006-10-21 13:53:23.000000000 +0200 +@@ -643,6 +643,12 @@ + DYN_NO_NEEDED = 8 + }; + ++enum notice_asneeded_action { ++ notice_as_needed, ++ notice_not_needed, ++ notice_needed ++}; ++ + extern bfd_boolean bfd_elf_record_link_assignment + (bfd *, struct bfd_link_info *, const char *, bfd_boolean, + bfd_boolean); +diff -uNr binutils-2.17.orig/bfd/bfd-in.h binutils-2.17/bfd/bfd-in.h +--- binutils-2.17.orig/bfd/bfd-in.h 2006-03-16 13:20:15.000000000 +0100 ++++ binutils-2.17/bfd/bfd-in.h 2006-10-21 13:53:23.000000000 +0200 +@@ -636,6 +636,12 @@ + DYN_NO_NEEDED = 8 + }; + ++enum notice_asneeded_action { ++ notice_as_needed, ++ notice_not_needed, ++ notice_needed ++}; ++ + extern bfd_boolean bfd_elf_record_link_assignment + (bfd *, struct bfd_link_info *, const char *, bfd_boolean, + bfd_boolean); +diff -uNr binutils-2.17.orig/bfd/ChangeLog binutils-2.17/bfd/ChangeLog +--- binutils-2.17.orig/bfd/ChangeLog 2006-06-23 20:18:16.000000000 +0200 ++++ binutils-2.17/bfd/ChangeLog 2006-10-21 13:53:23.000000000 +0200 +@@ -1,3 +1,25 @@ ++2006-08-08 Nick Clifton ++ ++ PR binutils/2724 ++ * coffcode.h (coff_new_section_hook): Only modify the section ++ symbol of sections which were created by the user. ++ ++2006-07-19 Alan Modra ++ ++ * bfd-in.h (enum notice_asneeded_action): Define. ++ * bfd-in2.h: Regenerate. ++ * elflink.c (elf_link_add_object_symbols): Call linker "notice" ++ function with NULL name for as-needed handling. ++ ++2006-07-12 Matthew R. Dempsky ++ ++ * cpu-m68k.c (bfd_m68k_compatible): Handle CPU32. ++ ++2006-06-23 Daniel Jacobowitz ++ ++ * Makefile.am: Clear RELEASE. ++ * Makefile.in: Regenerated. ++ + 2006-06-23 Daniel Jacobowitz + + * configure.in: Update version to 2.17. +diff -uNr binutils-2.17.orig/bfd/coffcode.h binutils-2.17/bfd/coffcode.h +--- binutils-2.17.orig/bfd/coffcode.h 2005-10-25 19:40:09.000000000 +0200 ++++ binutils-2.17/bfd/coffcode.h 2006-10-21 13:53:24.000000000 +0200 +@@ -1546,9 +1546,6 @@ + static bfd_boolean + coff_new_section_hook (bfd * abfd, asection * section) + { +- combined_entry_type *native; +- bfd_size_type amt; +- + section->alignment_power = COFF_DEFAULT_SECTION_ALIGNMENT_POWER; + + #ifdef RS6000COFF_C +@@ -1560,27 +1557,34 @@ + section->alignment_power = bfd_xcoff_data_align_power (abfd); + #endif + +- /* Allocate aux records for section symbols, to store size and +- related info. +- +- @@ The 10 is a guess at a plausible maximum number of aux entries +- (but shouldn't be a constant). */ +- amt = sizeof (combined_entry_type) * 10; +- native = bfd_zalloc (abfd, amt); +- if (native == NULL) +- return FALSE; +- +- /* We don't need to set up n_name, n_value, or n_scnum in the native +- symbol information, since they'll be overridden by the BFD symbol +- anyhow. However, we do need to set the type and storage class, +- in case this symbol winds up getting written out. The value 0 +- for n_numaux is already correct. */ +- +- native->u.syment.n_type = T_NULL; +- native->u.syment.n_sclass = C_STAT; ++ /* PR binutils/2724: Only real sections have a symbol that ++ has the coff_symbol_type structure allocated for it. */ ++ if (! bfd_is_const_section (section)) ++ { ++ combined_entry_type *native; ++ bfd_size_type amt; ++ ++ /* Allocate aux records for section symbols, to store size and ++ related info. ++ ++ @@ The 10 is a guess at a plausible maximum number of aux entries ++ (but shouldn't be a constant). */ ++ amt = sizeof (combined_entry_type) * 10; ++ native = bfd_zalloc (abfd, amt); ++ if (native == NULL) ++ return FALSE; + +- coffsymbol (section->symbol)->native = native; ++ /* We don't need to set up n_name, n_value, or n_scnum in the native ++ symbol information, since they'll be overridden by the BFD symbol ++ anyhow. However, we do need to set the type and storage class, ++ in case this symbol winds up getting written out. The value 0 ++ for n_numaux is already correct. */ ++ native->u.syment.n_type = T_NULL; ++ native->u.syment.n_sclass = C_STAT; + ++ coffsymbol (section->symbol)->native = native; ++ } ++ + coff_set_custom_section_alignment (abfd, section, + coff_section_alignment_table, + coff_section_alignment_table_size); +diff -uNr binutils-2.17.orig/bfd/cpu-m68k.c binutils-2.17/bfd/cpu-m68k.c +--- binutils-2.17.orig/bfd/cpu-m68k.c 2006-03-25 11:24:27.000000000 +0100 ++++ binutils-2.17/bfd/cpu-m68k.c 2006-10-21 13:53:24.000000000 +0200 +@@ -202,6 +202,9 @@ + if (a->mach <= bfd_mach_m68060 && b->mach <= bfd_mach_m68060) + /* Merge m68k machine. */ + return a->mach > b->mach ? a : b; ++ else if (a->mach == bfd_mach_cpu32 && b->mach == bfd_mach_cpu32) ++ /* CPU32 is compatible with itself. */ ++ return a; + else if (a->mach >= bfd_mach_mcf_isa_a_nodiv + && b->mach >= bfd_mach_mcf_isa_a_nodiv) + { +diff -uNr binutils-2.17.orig/bfd/elflink.c binutils-2.17/bfd/elflink.c +--- binutils-2.17.orig/bfd/elflink.c 2006-05-22 17:06:36.000000000 +0200 ++++ binutils-2.17/bfd/elflink.c 2006-10-21 13:53:24.000000000 +0200 +@@ -3496,6 +3496,13 @@ + if (alloc_mark == NULL) + goto error_free_vers; + ++ /* Make a special call to the linker "notice" function to ++ tell it that we are about to handle an as-needed lib. */ ++ if (!(*info->callbacks->notice) (info, NULL, abfd, NULL, ++ notice_as_needed)) ++ return FALSE; ++ ++ + /* Clone the symbol table and sym hashes. Remember some + pointers into the symbol table, and dynamic symbol count. */ + old_hash = (char *) old_tab + tabsize; +@@ -4169,6 +4176,12 @@ + } + } + ++ /* Make a special call to the linker "notice" function to ++ tell it that symbols added for crefs may need to be removed. */ ++ if (!(*info->callbacks->notice) (info, NULL, abfd, NULL, ++ notice_not_needed)) ++ return FALSE; ++ + free (old_tab); + objalloc_free_block ((struct objalloc *) htab->root.table.memory, + alloc_mark); +@@ -4179,6 +4192,9 @@ + + if (old_tab != NULL) + { ++ if (!(*info->callbacks->notice) (info, NULL, abfd, NULL, ++ notice_needed)) ++ return FALSE; + free (old_tab); + old_tab = NULL; + } +diff -uNr binutils-2.17.orig/bfd/version.h binutils-2.17/bfd/version.h +--- binutils-2.17.orig/bfd/version.h 2006-06-23 20:14:41.000000000 +0200 ++++ binutils-2.17/bfd/version.h 2006-10-21 13:53:24.000000000 +0200 +@@ -1,3 +1,3 @@ +-#define BFD_VERSION_DATE 20060623 ++#define BFD_VERSION_DATE 20061021 + #define BFD_VERSION @bfd_version@ + #define BFD_VERSION_STRING @bfd_version_string@ +diff -uNr binutils-2.17.orig/binutils/ChangeLog binutils-2.17/binutils/ChangeLog +--- binutils-2.17.orig/binutils/ChangeLog 2006-06-12 15:05:03.000000000 +0200 ++++ binutils-2.17/binutils/ChangeLog 2006-10-21 13:53:24.000000000 +0200 +@@ -1,3 +1,8 @@ ++2006-08-15 Nick Clifton ++ ++ PR binutils/3039 ++ * wrstabs.c (stab_tag_type): Initialize 'size'. ++ + 2006-06-07 Joseph S. Myers + + * po/Make-in (pdf, ps): New dummy targets. +diff -uNr binutils-2.17.orig/binutils/wrstabs.c binutils-2.17/binutils/wrstabs.c +--- binutils-2.17.orig/binutils/wrstabs.c 2006-03-16 13:20:16.000000000 +0100 ++++ binutils-2.17/binutils/wrstabs.c 2006-10-21 13:53:24.000000000 +0200 +@@ -1869,7 +1869,7 @@ + { + struct stab_write_handle *info = (struct stab_write_handle *) p; + long index; +- unsigned int size; ++ unsigned int size = 0; + + index = stab_get_struct_index (info, name, id, kind, &size); + if (index < 0) +diff -uNr binutils-2.17.orig/gas/ChangeLog binutils-2.17/gas/ChangeLog +--- binutils-2.17.orig/gas/ChangeLog 2006-06-12 15:05:03.000000000 +0200 ++++ binutils-2.17/gas/ChangeLog 2006-10-21 13:53:24.000000000 +0200 +@@ -1,3 +1,8 @@ ++2006-07-19 Mat Hostetter ++ ++ * symbols.c (report_op_error): Fix pasto. Don't use as_bad_where ++ when file and line unknown. ++ + 2006-06-07 Joseph S. Myers + + * po/Make-in (pdf, ps): New dummy targets. +diff -uNr binutils-2.17.orig/gas/symbols.c binutils-2.17/gas/symbols.c +--- binutils-2.17.orig/gas/symbols.c 2006-01-09 18:14:40.000000000 +0100 ++++ binutils-2.17/gas/symbols.c 2006-10-21 13:53:24.000000000 +0200 +@@ -928,13 +928,11 @@ + && seg_right != undefined_section) + { + if (right) +- as_bad_where (file, line, +- _("invalid sections for operation on `%s' and `%s' setting `%s'"), +- S_GET_NAME (left), S_GET_NAME (right), S_GET_NAME (symp)); ++ as_bad (_("invalid sections for operation on `%s' and `%s' setting `%s'"), ++ S_GET_NAME (left), S_GET_NAME (right), S_GET_NAME (symp)); + else +- as_bad_where (file, line, +- _("invalid section for operation on `%s' setting `%s'"), +- S_GET_NAME (left), S_GET_NAME (symp)); ++ as_bad (_("invalid section for operation on `%s' setting `%s'"), ++ S_GET_NAME (left), S_GET_NAME (symp)); + } + } + } +diff -uNr binutils-2.17.orig/ld/ChangeLog binutils-2.17/ld/ChangeLog +--- binutils-2.17.orig/ld/ChangeLog 2006-06-12 15:07:28.000000000 +0200 ++++ binutils-2.17/ld/ChangeLog 2006-10-21 13:53:24.000000000 +0200 +@@ -1,3 +1,20 @@ ++2006-07-19 Alan Modra ++ ++ * ld.h (handle_asneeded_cref): Declare. ++ * ldcref.c: Include objalloc.h. ++ (old_table, old_tab, alloc_mark): New variables. ++ (tabsize, entsize, refsize, old_symcount): Likewise. ++ (add_cref): Use bfd_hash_allocate for refs. ++ (handle_asneeded_cref): New function. ++ * ldmain.c (notice): Call handle_asneeded_cref for NULL name. ++ ++2006-07-04 Daniel Jacobowitz ++ ++ Backport: ++ 2006-05-19 Alan Modra ++ * ldlang.c (lang_size_sections_1): Don't check mem regions for ++ os->ignored sections. ++ + 2006-06-12 Fred Fish + + * emulparams/elf32bmip.sh (OTHER_SECTIONS): Keep the +diff -uNr binutils-2.17.orig/ld/configure.tgt binutils-2.17/ld/configure.tgt +--- binutils-2.17.orig/ld/configure.tgt 2006-04-05 14:41:57.000000000 +0200 ++++ binutils-2.17/ld/configure.tgt 2006-10-21 13:53:24.000000000 +0200 +@@ -83,7 +83,8 @@ + avr-*-*) targ_emul=avr2 + targ_extra_emuls="avr1 avr3 avr4 avr5" + ;; +-bfin-*-elf) targ_emul=elf32bfin; targ_extra_emuls="elf32bfinfd" ;; ++bfin-*-elf | bfin-*-rtems*) ++ targ_emul=elf32bfin; targ_extra_emuls="elf32bfinfd" ;; + bfin-*-uclinux*) targ_emul=elf32bfin; targ_extra_emuls="elf32bfinfd" ;; + cr16c-*-elf*) targ_emul=elf32cr16c + ;; +diff -uNr binutils-2.17.orig/ld/emulparams/h8300elf.sh binutils-2.17/ld/emulparams/h8300elf.sh +--- binutils-2.17.orig/ld/emulparams/h8300elf.sh 2005-12-22 18:43:34.000000000 +0100 ++++ binutils-2.17/ld/emulparams/h8300elf.sh 2006-10-21 13:53:24.000000000 +0200 +@@ -17,7 +17,7 @@ + TINY_DATA_SECTION=".tinydata 0xff8000 : + { + *(.tinydata) +- _tinydata = .; ++ ${RELOCATING+ _tinydata = .; } + }" + TINY_BSS_SECTION=".tinybss : AT (_tinydata) + { +diff -uNr binutils-2.17.orig/ld/ldcref.c binutils-2.17/ld/ldcref.c +--- binutils-2.17.orig/ld/ldcref.c 2006-03-16 13:20:16.000000000 +0100 ++++ binutils-2.17/ld/ldcref.c 2006-10-21 13:53:24.000000000 +0200 +@@ -27,6 +27,7 @@ + #include "sysdep.h" + #include "bfdlink.h" + #include "libiberty.h" ++#include "objalloc.h" + + #include "ld.h" + #include "ldmain.h" +@@ -101,6 +102,15 @@ + + static size_t cref_symcount; + ++/* Used to take a snapshot of the cref hash table when starting to ++ add syms from an as-needed library. */ ++static struct bfd_hash_entry **old_table; ++static unsigned int old_size; ++static void *old_tab; ++static void *alloc_mark; ++static size_t tabsize, entsize, refsize; ++static size_t old_symcount; ++ + /* Create an entry in a cref hash table. */ + + static struct bfd_hash_entry * +@@ -165,7 +175,9 @@ + + if (r == NULL) + { +- r = xmalloc (sizeof *r); ++ r = bfd_hash_allocate (&cref_table.root, sizeof *r); ++ if (r == NULL) ++ einfo (_("%X%P: cref alloc failed: %E\n")); + r->next = h->refs; + h->refs = r; + r->abfd = abfd; +@@ -182,6 +194,123 @@ + r->def = TRUE; + } + ++/* Called before loading an as-needed library to take a snapshot of ++ the cref hash table, and after we have loaded or found that the ++ library was not needed. */ ++ ++bfd_boolean ++handle_asneeded_cref (bfd *abfd ATTRIBUTE_UNUSED, ++ enum notice_asneeded_action act) ++{ ++ unsigned int i; ++ ++ if (!cref_initialized) ++ return TRUE; ++ ++ if (act == notice_as_needed) ++ { ++ char *old_ent, *old_ref; ++ ++ for (i = 0; i < cref_table.root.size; i++) ++ { ++ struct bfd_hash_entry *p; ++ struct cref_hash_entry *c; ++ struct cref_ref *r; ++ ++ for (p = cref_table.root.table[i]; p != NULL; p = p->next) ++ { ++ entsize += cref_table.root.entsize; ++ c = (struct cref_hash_entry *) p; ++ for (r = c->refs; r != NULL; r = r->next) ++ refsize += sizeof (struct cref_hash_entry); ++ } ++ } ++ ++ tabsize = cref_table.root.size * sizeof (struct bfd_hash_entry *); ++ old_tab = xmalloc (tabsize + entsize + refsize); ++ ++ alloc_mark = bfd_hash_allocate (&cref_table.root, 1); ++ if (alloc_mark == NULL) ++ return FALSE; ++ ++ memcpy (old_tab, cref_table.root.table, tabsize); ++ old_ent = (char *) old_tab + tabsize; ++ old_ref = (char *) old_ent + entsize; ++ old_table = cref_table.root.table; ++ old_size = cref_table.root.size; ++ old_symcount = cref_symcount; ++ ++ for (i = 0; i < cref_table.root.size; i++) ++ { ++ struct bfd_hash_entry *p; ++ struct cref_hash_entry *c; ++ struct cref_ref *r; ++ ++ for (p = cref_table.root.table[i]; p != NULL; p = p->next) ++ { ++ memcpy (old_ent, p, cref_table.root.entsize); ++ old_ent = (char *) old_ent + cref_table.root.entsize; ++ c = (struct cref_hash_entry *) p; ++ for (r = c->refs; r != NULL; r = r->next) ++ { ++ memcpy (old_ref, r, sizeof (struct cref_hash_entry)); ++ old_ref = (char *) old_ref + sizeof (struct cref_hash_entry); ++ } ++ } ++ } ++ return TRUE; ++ } ++ ++ if (act == notice_not_needed) ++ { ++ char *old_ent, *old_ref; ++ ++ if (old_tab == NULL) ++ { ++ /* The only way old_tab can be NULL is if the cref hash table ++ had not been initialised when notice_as_needed. */ ++ bfd_hash_table_free (&cref_table.root); ++ cref_initialized = FALSE; ++ return TRUE; ++ } ++ ++ old_ent = (char *) old_tab + tabsize; ++ old_ref = (char *) old_ent + entsize; ++ cref_table.root.table = old_table; ++ cref_table.root.size = old_size; ++ memcpy (cref_table.root.table, old_tab, tabsize); ++ cref_symcount = old_symcount; ++ ++ for (i = 0; i < cref_table.root.size; i++) ++ { ++ struct bfd_hash_entry *p; ++ struct cref_hash_entry *c; ++ struct cref_ref *r; ++ ++ for (p = cref_table.root.table[i]; p != NULL; p = p->next) ++ { ++ memcpy (p, old_ent, cref_table.root.entsize); ++ old_ent = (char *) old_ent + cref_table.root.entsize; ++ c = (struct cref_hash_entry *) p; ++ for (r = c->refs; r != NULL; r = r->next) ++ { ++ memcpy (r, old_ref, sizeof (struct cref_hash_entry)); ++ old_ref = (char *) old_ref + sizeof (struct cref_hash_entry); ++ } ++ } ++ } ++ ++ objalloc_free_block ((struct objalloc *) cref_table.root.memory, ++ alloc_mark); ++ } ++ else if (act != notice_needed) ++ return FALSE; ++ ++ free (old_tab); ++ old_tab = NULL; ++ return TRUE; ++} ++ + /* Copy the addresses of the hash table entries into an array. This + is called via cref_hash_traverse. We also fill in the demangled + name. */ +diff -uNr binutils-2.17.orig/ld/ld.h binutils-2.17/ld/ld.h +--- binutils-2.17.orig/ld/ld.h 2005-09-30 13:42:04.000000000 +0200 ++++ binutils-2.17/ld/ld.h 2006-10-21 13:53:24.000000000 +0200 +@@ -1,6 +1,6 @@ + /* ld.h -- general linker header file + Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, +- 2001, 2002, 2003, 2004, 2005 ++ 2001, 2002, 2003, 2004, 2005, 2006 + Free Software Foundation, Inc. + + This file is part of GLD, the Gnu Linker. +@@ -282,6 +282,7 @@ + + extern int yyparse (void); + extern void add_cref (const char *, bfd *, asection *, bfd_vma); ++extern bfd_boolean handle_asneeded_cref (bfd *, enum notice_asneeded_action); + extern void output_cref (FILE *); + extern void check_nocrossrefs (void); + extern void ld_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; +diff -uNr binutils-2.17.orig/ld/ldlang.c binutils-2.17/ld/ldlang.c +--- binutils-2.17.orig/ld/ldlang.c 2006-06-12 15:05:04.000000000 +0200 ++++ binutils-2.17/ld/ldlang.c 2006-10-21 13:53:24.000000000 +0200 +@@ -4207,7 +4207,8 @@ + /* If a loadable section is using the default memory + region, and some non default memory regions were + defined, issue an error message. */ +- if (!IGNORE_SECTION (os->bfd_section) ++ if (!os->ignored ++ && !IGNORE_SECTION (os->bfd_section) + && ! link_info.relocatable + && check_regions + && strcmp (os->region->name, +diff -uNr binutils-2.17.orig/ld/ldmain.c binutils-2.17/ld/ldmain.c +--- binutils-2.17.orig/ld/ldmain.c 2006-04-06 20:52:45.000000000 +0200 ++++ binutils-2.17/ld/ldmain.c 2006-10-21 13:53:24.000000000 +0200 +@@ -1511,6 +1511,13 @@ + asection *section, + bfd_vma value) + { ++ if (name == NULL) ++ { ++ if (command_line.cref || nocrossref_list != NULL) ++ return handle_asneeded_cref (abfd, value); ++ return TRUE; ++ } ++ + if (! info->notice_all + || (info->notice_hash != NULL + && bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE) != NULL)) +diff -uNr binutils-2.17.orig/ld/testsuite/ChangeLog binutils-2.17/ld/testsuite/ChangeLog +--- binutils-2.17.orig/ld/testsuite/ChangeLog 2006-06-12 15:44:33.000000000 +0200 ++++ binutils-2.17/ld/testsuite/ChangeLog 2006-10-21 13:53:24.000000000 +0200 +@@ -1,3 +1,17 @@ ++2006-07-12 Richard Sandiford ++ ++ * ld-m68k/merge-ok-1c.d: New test. ++ * ld-m68k/m68k.exp: Run it. ++ ++2006-07-04 Daniel Jacobowitz ++ ++ Backport: ++ 2006-05-19 Alan Modra ++ * ld-scripts/empty-orphan.d: Update again. ++ ++ * ld-scripts/empty-orphan.t: Discard .reginfo. ++ * ld-scripts/empty-orphan.d: Update. ++ + 2006-06-12 Daniel Jacobowitz + + Backport: +diff -uNr binutils-2.17.orig/ld/testsuite/ld-m68k/m68k.exp binutils-2.17/ld/testsuite/ld-m68k/m68k.exp +--- binutils-2.17.orig/ld/testsuite/ld-m68k/m68k.exp 2006-03-25 11:24:27.000000000 +0100 ++++ binutils-2.17/ld/testsuite/ld-m68k/m68k.exp 2006-10-21 13:53:24.000000000 +0200 +@@ -53,3 +53,4 @@ + run_dump_test "merge-error-1e" + run_dump_test "merge-ok-1a" + run_dump_test "merge-ok-1b" ++run_dump_test "merge-ok-1c" +diff -uNr binutils-2.17.orig/ld/testsuite/ld-scripts/empty-orphan.d binutils-2.17/ld/testsuite/ld-scripts/empty-orphan.d +--- binutils-2.17.orig/ld/testsuite/ld-scripts/empty-orphan.d 2005-03-17 17:20:39.000000000 +0100 ++++ binutils-2.17/ld/testsuite/ld-scripts/empty-orphan.d 2006-10-21 13:53:24.000000000 +0200 +@@ -1,3 +1,6 @@ + #source: empty-orphan.s + #ld: -T empty-orphan.t +-#error: no memory region specified for loadable section ++#readelf: -l --wide ++#... ++ +LOAD +[x0-9a-f]+ [x0]+70000000 [x0]+70000000 [x0]+(2|4|8|10|20|40|80) .* ++#pass +diff -uNr binutils-2.17.orig/ld/testsuite/ld-scripts/empty-orphan.t binutils-2.17/ld/testsuite/ld-scripts/empty-orphan.t +--- binutils-2.17.orig/ld/testsuite/ld-scripts/empty-orphan.t 2005-03-17 17:20:39.000000000 +0100 ++++ binutils-2.17/ld/testsuite/ld-scripts/empty-orphan.t 2006-10-21 13:53:24.000000000 +0200 +@@ -17,5 +17,6 @@ + .text : { *(.text) } > text_mem : text_phdr + .data : { *(.data) } > data_mem : data_phdr + .bss : { *(.bss) } > data_mem : data_phdr ++ /DISCARD/ : { *(.reginfo) } + /* .orphan_data is an orphan */ + } -- cgit v1.2.3