source: clfs-sysroot/patches/binutils-2.17-branch_update-1.patch @ 16ca464

Last change on this file since 16ca464 was 16ca464, checked in by Joe Ciccone <jciccone@…>, 17 years ago

Added the binutils branch update patch.

  • Property mode set to 100644
File size: 20.2 KB
RevLine 
[16ca464]1Submitted By: Robert Connolly <robert at linuxfromscratch dot org> (ashes)
2Date: 2006-12-04
3Initial Package Version: 2.17
4Upstream Status: From Upstream
5Origin: cvs -z 9 -d :pserver:anoncvs@sourceware.org:/cvs/src co \
6                -rbinutils-2_17-branch binutils
7Description: This is the binutils-2_17-branch (bug fix branch) update,
8compared from binutils-2.17-release and binutils-2_17-branch with all
9the fluff removed (CVS entries, maintainer files, etc). This patch
10should be updated periodically.
11
12diff -Naur binutils-2.17/bfd/bfd-in2.h src/bfd/bfd-in2.h
13--- binutils-2.17/bfd/bfd-in2.h 2006-03-25 16:38:42.000000000 -0800
14+++ src/bfd/bfd-in2.h   2006-07-18 19:37:04.000000000 -0700
15@@ -643,6 +643,12 @@
16   DYN_NO_NEEDED = 8
17 };
18 
19+enum notice_asneeded_action {
20+  notice_as_needed,
21+  notice_not_needed,
22+  notice_needed
23+};
24+
25 extern bfd_boolean bfd_elf_record_link_assignment
26   (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
27    bfd_boolean);
28diff -Naur binutils-2.17/bfd/bfd-in.h src/bfd/bfd-in.h
29--- binutils-2.17/bfd/bfd-in.h  2006-03-16 04:20:15.000000000 -0800
30+++ src/bfd/bfd-in.h    2006-07-18 19:37:04.000000000 -0700
31@@ -636,6 +636,12 @@
32   DYN_NO_NEEDED = 8
33 };
34 
35+enum notice_asneeded_action {
36+  notice_as_needed,
37+  notice_not_needed,
38+  notice_needed
39+};
40+
41 extern bfd_boolean bfd_elf_record_link_assignment
42   (bfd *, struct bfd_link_info *, const char *, bfd_boolean,
43    bfd_boolean);
44diff -Naur binutils-2.17/bfd/ChangeLog src/bfd/ChangeLog
45--- binutils-2.17/bfd/ChangeLog 2006-06-23 11:18:16.000000000 -0700
46+++ src/bfd/ChangeLog   2006-08-08 01:19:56.000000000 -0700
47@@ -1,3 +1,25 @@
48+2006-08-08  Nick Clifton  <nickc@redhat.com>
49+
50+       PR binutils/2724
51+       * coffcode.h (coff_new_section_hook): Only modify the section
52+       symbol of sections which were created by the user.
53+
54+2006-07-19  Alan Modra  <amodra@bigpond.net.au>
55+
56+       * bfd-in.h (enum notice_asneeded_action): Define.
57+       * bfd-in2.h: Regenerate.
58+       * elflink.c (elf_link_add_object_symbols): Call linker "notice"
59+       function with NULL name for as-needed handling.
60+
61+2006-07-12  Matthew R. Dempsky  <mrd@alkemio.org>
62+
63+       * cpu-m68k.c (bfd_m68k_compatible): Handle CPU32.
64+
65+2006-06-23  Daniel Jacobowitz  <dan@codesourcery.com>
66+
67+       * Makefile.am: Clear RELEASE.
68+       * Makefile.in: Regenerated.
69+
70 2006-06-23  Daniel Jacobowitz  <dan@codesourcery.com>
71 
72        * configure.in: Update version to 2.17.
73diff -Naur binutils-2.17/bfd/coffcode.h src/bfd/coffcode.h
74--- binutils-2.17/bfd/coffcode.h        2005-10-25 10:40:09.000000000 -0700
75+++ src/bfd/coffcode.h  2006-08-08 01:19:57.000000000 -0700
76@@ -1546,9 +1546,6 @@
77 static bfd_boolean
78 coff_new_section_hook (bfd * abfd, asection * section)
79 {
80-  combined_entry_type *native;
81-  bfd_size_type amt;
82-
83   section->alignment_power = COFF_DEFAULT_SECTION_ALIGNMENT_POWER;
84 
85 #ifdef RS6000COFF_C
86@@ -1560,27 +1557,34 @@
87     section->alignment_power = bfd_xcoff_data_align_power (abfd);
88 #endif
89 
90-  /* Allocate aux records for section symbols, to store size and
91-     related info.
92-
93-     @@ The 10 is a guess at a plausible maximum number of aux entries
94-     (but shouldn't be a constant).  */
95-  amt = sizeof (combined_entry_type) * 10;
96-  native = bfd_zalloc (abfd, amt);
97-  if (native == NULL)
98-    return FALSE;
99-
100-  /* We don't need to set up n_name, n_value, or n_scnum in the native
101-     symbol information, since they'll be overridden by the BFD symbol
102-     anyhow.  However, we do need to set the type and storage class,
103-     in case this symbol winds up getting written out.  The value 0
104-     for n_numaux is already correct.  */
105-
106-  native->u.syment.n_type = T_NULL;
107-  native->u.syment.n_sclass = C_STAT;
108+  /* PR binutils/2724: Only real sections have a symbol that
109+     has the coff_symbol_type structure allocated for it.  */
110+  if (! bfd_is_const_section (section))
111+    {
112+      combined_entry_type *native;
113+      bfd_size_type amt;
114+
115+      /* Allocate aux records for section symbols, to store size and
116+        related info.
117+
118+        @@ The 10 is a guess at a plausible maximum number of aux entries
119+        (but shouldn't be a constant).  */
120+      amt = sizeof (combined_entry_type) * 10;
121+      native = bfd_zalloc (abfd, amt);
122+      if (native == NULL)
123+       return FALSE;
124 
125-  coffsymbol (section->symbol)->native = native;
126+      /* We don't need to set up n_name, n_value, or n_scnum in the native
127+        symbol information, since they'll be overridden by the BFD symbol
128+        anyhow.  However, we do need to set the type and storage class,
129+        in case this symbol winds up getting written out.  The value 0
130+        for n_numaux is already correct.  */
131+      native->u.syment.n_type = T_NULL;
132+      native->u.syment.n_sclass = C_STAT;
133 
134+      coffsymbol (section->symbol)->native = native;
135+    }
136
137   coff_set_custom_section_alignment (abfd, section,
138                                     coff_section_alignment_table,
139                                     coff_section_alignment_table_size);
140diff -Naur binutils-2.17/bfd/cpu-m68k.c src/bfd/cpu-m68k.c
141--- binutils-2.17/bfd/cpu-m68k.c        2006-03-25 02:24:27.000000000 -0800
142+++ src/bfd/cpu-m68k.c  2006-07-12 05:55:21.000000000 -0700
143@@ -202,6 +202,9 @@
144   if (a->mach <= bfd_mach_m68060 && b->mach <= bfd_mach_m68060)
145     /* Merge m68k machine. */
146     return a->mach > b->mach ? a : b;
147+  else if (a->mach == bfd_mach_cpu32 && b->mach == bfd_mach_cpu32)
148+    /* CPU32 is compatible with itself. */
149+    return a;
150   else if (a->mach >= bfd_mach_mcf_isa_a_nodiv
151           && b->mach >= bfd_mach_mcf_isa_a_nodiv)
152     {
153diff -Naur binutils-2.17/bfd/elflink.c src/bfd/elflink.c
154--- binutils-2.17/bfd/elflink.c 2006-05-22 08:06:36.000000000 -0700
155+++ src/bfd/elflink.c   2006-07-18 19:37:04.000000000 -0700
156@@ -3496,6 +3496,13 @@
157       if (alloc_mark == NULL)
158        goto error_free_vers;
159 
160+      /* Make a special call to the linker "notice" function to
161+        tell it that we are about to handle an as-needed lib.  */
162+      if (!(*info->callbacks->notice) (info, NULL, abfd, NULL,
163+                                      notice_as_needed))
164+       return FALSE;
165+
166+
167       /* Clone the symbol table and sym hashes.  Remember some
168         pointers into the symbol table, and dynamic symbol count.  */
169       old_hash = (char *) old_tab + tabsize;
170@@ -4169,6 +4176,12 @@
171            }
172        }
173 
174+      /* Make a special call to the linker "notice" function to
175+        tell it that symbols added for crefs may need to be removed.  */
176+      if (!(*info->callbacks->notice) (info, NULL, abfd, NULL,
177+                                      notice_not_needed))
178+       return FALSE;
179+
180       free (old_tab);
181       objalloc_free_block ((struct objalloc *) htab->root.table.memory,
182                           alloc_mark);
183@@ -4179,6 +4192,9 @@
184 
185   if (old_tab != NULL)
186     {
187+      if (!(*info->callbacks->notice) (info, NULL, abfd, NULL,
188+                                      notice_needed))
189+       return FALSE;
190       free (old_tab);
191       old_tab = NULL;
192     }
193diff -Naur binutils-2.17/bfd/Makefile.am src/bfd/Makefile.am
194--- binutils-2.17/bfd/Makefile.am       2006-06-23 11:17:17.000000000 -0700
195+++ src/bfd/Makefile.am 2006-06-23 13:57:04.000000000 -0700
196@@ -3,7 +3,7 @@
197 AUTOMAKE_OPTIONS = 1.9 cygnus
198 
199 # Uncomment the following line when doing a release.
200-RELEASE=y
201+# RELEASE=y
202 
203 INCDIR = $(srcdir)/../include
204 CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
205diff -Naur binutils-2.17/bfd/version.h src/bfd/version.h
206--- binutils-2.17/bfd/version.h 2006-06-23 11:14:41.000000000 -0700
207+++ src/bfd/version.h   2006-12-03 15:00:13.000000000 -0800
208@@ -1,3 +1,3 @@
209-#define BFD_VERSION_DATE 20060623
210+#define BFD_VERSION_DATE 20061204
211 #define BFD_VERSION @bfd_version@
212 #define BFD_VERSION_STRING @bfd_version_string@
213diff -Naur binutils-2.17/binutils/ChangeLog src/binutils/ChangeLog
214--- binutils-2.17/binutils/ChangeLog    2006-06-12 06:05:03.000000000 -0700
215+++ src/binutils/ChangeLog      2006-08-15 05:01:21.000000000 -0700
216@@ -1,3 +1,8 @@
217+2006-08-15  Nick Clifton  <nickc@redhat.com>
218+
219+       PR binutils/3039
220+       * wrstabs.c (stab_tag_type): Initialize 'size'.
221+
222 2006-06-07  Joseph S. Myers  <joseph@codesourcery.com>
223 
224        * po/Make-in (pdf, ps): New dummy targets.
225diff -Naur binutils-2.17/binutils/wrstabs.c src/binutils/wrstabs.c
226--- binutils-2.17/binutils/wrstabs.c    2006-03-16 04:20:16.000000000 -0800
227+++ src/binutils/wrstabs.c      2006-08-15 05:01:21.000000000 -0700
228@@ -1869,7 +1869,7 @@
229 {
230   struct stab_write_handle *info = (struct stab_write_handle *) p;
231   long index;
232-  unsigned int size;
233+  unsigned int size = 0;
234 
235   index = stab_get_struct_index (info, name, id, kind, &size);
236   if (index < 0)
237diff -Naur binutils-2.17/configure.in src/configure.in
238--- binutils-2.17/configure.in  2006-06-23 11:19:53.000000000 -0700
239+++ src/configure.in    2006-04-06 14:49:25.000000000 -0700
240@@ -130,7 +130,7 @@
241 # know that we are building the simulator.
242 # binutils, gas and ld appear in that order because it makes sense to run
243 # "make check" in that particular order.
244-host_tools="byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools"
245+host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools"
246 
247 # libgcj represents the runtime libraries only used by gcj.
248 libgcj="target-libffi \
249diff -Naur binutils-2.17/gas/ChangeLog src/gas/ChangeLog
250--- binutils-2.17/gas/ChangeLog 2006-06-12 06:05:03.000000000 -0700
251+++ src/gas/ChangeLog   2006-07-18 19:06:08.000000000 -0700
252@@ -1,3 +1,8 @@
253+2006-07-19  Mat Hostetter  <mat@lcs.mit.edu>
254+
255+       * symbols.c (report_op_error): Fix pasto.  Don't use as_bad_where
256+       when file and line unknown.
257+
258 2006-06-07  Joseph S. Myers  <joseph@codesourcery.com>
259 
260        * po/Make-in (pdf, ps): New dummy targets.
261diff -Naur binutils-2.17/gas/symbols.c src/gas/symbols.c
262--- binutils-2.17/gas/symbols.c 2006-01-09 09:14:40.000000000 -0800
263+++ src/gas/symbols.c   2006-07-18 19:06:08.000000000 -0700
264@@ -928,13 +928,11 @@
265          && seg_right != undefined_section)
266        {
267          if (right)
268-           as_bad_where (file, line,
269-                         _("invalid sections for operation on `%s' and `%s' setting `%s'"),
270-                         S_GET_NAME (left), S_GET_NAME (right), S_GET_NAME (symp));
271+           as_bad (_("invalid sections for operation on `%s' and `%s' setting `%s'"),
272+                   S_GET_NAME (left), S_GET_NAME (right), S_GET_NAME (symp));
273          else
274-           as_bad_where (file, line,
275-                         _("invalid section for operation on `%s' setting `%s'"),
276-                         S_GET_NAME (left), S_GET_NAME (symp));
277+           as_bad (_("invalid section for operation on `%s' setting `%s'"),
278+                   S_GET_NAME (left), S_GET_NAME (symp));
279        }
280     }
281 }
282diff -Naur binutils-2.17/ld/ChangeLog src/ld/ChangeLog
283--- binutils-2.17/ld/ChangeLog  2006-06-12 06:07:28.000000000 -0700
284+++ src/ld/ChangeLog    2006-07-18 19:37:05.000000000 -0700
285@@ -1,3 +1,20 @@
286+2006-07-19  Alan Modra  <amodra@bigpond.net.au>
287+
288+       * ld.h (handle_asneeded_cref): Declare.
289+       * ldcref.c: Include objalloc.h.
290+       (old_table, old_tab, alloc_mark): New variables.
291+       (tabsize, entsize, refsize, old_symcount): Likewise.
292+       (add_cref): Use bfd_hash_allocate for refs.
293+       (handle_asneeded_cref): New function.
294+       * ldmain.c (notice): Call handle_asneeded_cref for NULL name.
295+
296+2006-07-04  Daniel Jacobowitz  <dan@codesourcery.com>
297+
298+       Backport:
299+       2006-05-19  Alan Modra  <amodra@bigpond.net.au>
300+       * ldlang.c (lang_size_sections_1): Don't check mem regions for
301+       os->ignored sections.
302+
303 2006-06-12  Fred Fish  <fnf@specifix.com>
304 
305        * emulparams/elf32bmip.sh (OTHER_SECTIONS): Keep the
306diff -Naur binutils-2.17/ld/ldcref.c src/ld/ldcref.c
307--- binutils-2.17/ld/ldcref.c   2006-03-16 04:20:16.000000000 -0800
308+++ src/ld/ldcref.c     2006-07-18 19:37:05.000000000 -0700
309@@ -27,6 +27,7 @@
310 #include "sysdep.h"
311 #include "bfdlink.h"
312 #include "libiberty.h"
313+#include "objalloc.h"
314 
315 #include "ld.h"
316 #include "ldmain.h"
317@@ -101,6 +102,15 @@
318 
319 static size_t cref_symcount;
320 
321+/* Used to take a snapshot of the cref hash table when starting to
322+   add syms from an as-needed library.  */
323+static struct bfd_hash_entry **old_table;
324+static unsigned int old_size;
325+static void *old_tab;
326+static void *alloc_mark;
327+static size_t tabsize, entsize, refsize;
328+static size_t old_symcount;
329+
330 /* Create an entry in a cref hash table.  */
331 
332 static struct bfd_hash_entry *
333@@ -165,7 +175,9 @@
334 
335   if (r == NULL)
336     {
337-      r = xmalloc (sizeof *r);
338+      r = bfd_hash_allocate (&cref_table.root, sizeof *r);
339+      if (r == NULL)
340+       einfo (_("%X%P: cref alloc failed: %E\n"));
341       r->next = h->refs;
342       h->refs = r;
343       r->abfd = abfd;
344@@ -182,6 +194,123 @@
345     r->def = TRUE;
346 }
347 
348+/* Called before loading an as-needed library to take a snapshot of
349+   the cref hash table, and after we have loaded or found that the
350+   library was not needed.  */
351+
352+bfd_boolean
353+handle_asneeded_cref (bfd *abfd ATTRIBUTE_UNUSED,
354+                     enum notice_asneeded_action act)
355+{
356+  unsigned int i;
357+
358+  if (!cref_initialized)
359+    return TRUE;
360+
361+  if (act == notice_as_needed)
362+    {
363+      char *old_ent, *old_ref;
364+
365+      for (i = 0; i < cref_table.root.size; i++)
366+       {
367+         struct bfd_hash_entry *p;
368+         struct cref_hash_entry *c;
369+         struct cref_ref *r;
370+
371+         for (p = cref_table.root.table[i]; p != NULL; p = p->next)
372+           {
373+             entsize += cref_table.root.entsize;
374+             c = (struct cref_hash_entry *) p;
375+             for (r = c->refs; r != NULL; r = r->next)
376+               refsize += sizeof (struct cref_hash_entry);
377+           }
378+       }
379+
380+      tabsize = cref_table.root.size * sizeof (struct bfd_hash_entry *);
381+      old_tab = xmalloc (tabsize + entsize + refsize);
382+
383+      alloc_mark = bfd_hash_allocate (&cref_table.root, 1);
384+      if (alloc_mark == NULL)
385+       return FALSE;
386+
387+      memcpy (old_tab, cref_table.root.table, tabsize);
388+      old_ent = (char *) old_tab + tabsize;
389+      old_ref = (char *) old_ent + entsize;
390+      old_table = cref_table.root.table;
391+      old_size = cref_table.root.size;
392+      old_symcount = cref_symcount;
393+
394+      for (i = 0; i < cref_table.root.size; i++)
395+       {
396+         struct bfd_hash_entry *p;
397+         struct cref_hash_entry *c;
398+         struct cref_ref *r;
399+
400+         for (p = cref_table.root.table[i]; p != NULL; p = p->next)
401+           {
402+             memcpy (old_ent, p, cref_table.root.entsize);
403+             old_ent = (char *) old_ent + cref_table.root.entsize;
404+             c = (struct cref_hash_entry *) p;
405+             for (r = c->refs; r != NULL; r = r->next)
406+               {
407+                 memcpy (old_ref, r, sizeof (struct cref_hash_entry));
408+                 old_ref = (char *) old_ref + sizeof (struct cref_hash_entry);
409+               }
410+           }
411+       }
412+      return TRUE;
413+    }
414+
415+  if (act == notice_not_needed)
416+    {
417+      char *old_ent, *old_ref;
418+
419+      if (old_tab == NULL)
420+       {
421+         /* The only way old_tab can be NULL is if the cref hash table
422+            had not been initialised when notice_as_needed.  */
423+         bfd_hash_table_free (&cref_table.root);
424+         cref_initialized = FALSE;
425+         return TRUE;
426+       }
427+
428+      old_ent = (char *) old_tab + tabsize;
429+      old_ref = (char *) old_ent + entsize;
430+      cref_table.root.table = old_table;
431+      cref_table.root.size = old_size;
432+      memcpy (cref_table.root.table, old_tab, tabsize);
433+      cref_symcount = old_symcount;
434+
435+      for (i = 0; i < cref_table.root.size; i++)
436+       {
437+         struct bfd_hash_entry *p;
438+         struct cref_hash_entry *c;
439+         struct cref_ref *r;
440+
441+         for (p = cref_table.root.table[i]; p != NULL; p = p->next)
442+           {
443+             memcpy (p, old_ent, cref_table.root.entsize);
444+             old_ent = (char *) old_ent + cref_table.root.entsize;
445+             c = (struct cref_hash_entry *) p;
446+             for (r = c->refs; r != NULL; r = r->next)
447+               {
448+                 memcpy (r, old_ref, sizeof (struct cref_hash_entry));
449+                 old_ref = (char *) old_ref + sizeof (struct cref_hash_entry);
450+               }
451+           }
452+       }
453+
454+      objalloc_free_block ((struct objalloc *) cref_table.root.memory,
455+                          alloc_mark);
456+    }
457+  else if (act != notice_needed)
458+    return FALSE;
459+
460+  free (old_tab);
461+  old_tab = NULL;
462+  return TRUE;
463+}
464+
465 /* Copy the addresses of the hash table entries into an array.  This
466    is called via cref_hash_traverse.  We also fill in the demangled
467    name.  */
468diff -Naur binutils-2.17/ld/ld.h src/ld/ld.h
469--- binutils-2.17/ld/ld.h       2005-09-30 04:42:04.000000000 -0700
470+++ src/ld/ld.h 2006-07-18 19:37:05.000000000 -0700
471@@ -1,6 +1,6 @@
472 /* ld.h -- general linker header file
473    Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
474-   2001, 2002, 2003, 2004, 2005
475+   2001, 2002, 2003, 2004, 2005, 2006
476    Free Software Foundation, Inc.
477 
478    This file is part of GLD, the Gnu Linker.
479@@ -282,6 +282,7 @@
480 
481 extern int yyparse (void);
482 extern void add_cref (const char *, bfd *, asection *, bfd_vma);
483+extern bfd_boolean handle_asneeded_cref (bfd *, enum notice_asneeded_action);
484 extern void output_cref (FILE *);
485 extern void check_nocrossrefs (void);
486 extern void ld_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
487diff -Naur binutils-2.17/ld/ldlang.c src/ld/ldlang.c
488--- binutils-2.17/ld/ldlang.c   2006-06-12 06:05:04.000000000 -0700
489+++ src/ld/ldlang.c     2006-07-04 06:29:24.000000000 -0700
490@@ -4207,7 +4207,8 @@
491                    /* If a loadable section is using the default memory
492                       region, and some non default memory regions were
493                       defined, issue an error message.  */
494-                   if (!IGNORE_SECTION (os->bfd_section)
495+                   if (!os->ignored
496+                       && !IGNORE_SECTION (os->bfd_section)
497                        && ! link_info.relocatable
498                        && check_regions
499                        && strcmp (os->region->name,
500diff -Naur binutils-2.17/ld/ldmain.c src/ld/ldmain.c
501--- binutils-2.17/ld/ldmain.c   2006-04-06 11:52:45.000000000 -0700
502+++ src/ld/ldmain.c     2006-07-18 19:37:05.000000000 -0700
503@@ -1511,6 +1511,13 @@
504        asection *section,
505        bfd_vma value)
506 {
507+  if (name == NULL)
508+    {
509+      if (command_line.cref || nocrossref_list != NULL)
510+       return handle_asneeded_cref (abfd, value);
511+      return TRUE;
512+    }
513+
514   if (! info->notice_all
515       || (info->notice_hash != NULL
516          && bfd_hash_lookup (info->notice_hash, name, FALSE, FALSE) != NULL))
517diff -Naur binutils-2.17/ld/testsuite/ChangeLog src/ld/testsuite/ChangeLog
518--- binutils-2.17/ld/testsuite/ChangeLog        2006-06-12 06:44:33.000000000 -0700
519+++ src/ld/testsuite/ChangeLog  2006-07-12 05:55:21.000000000 -0700
520@@ -1,3 +1,17 @@
521+2006-07-12  Richard Sandiford  <richard@codesourcery.com>
522+
523+       * ld-m68k/merge-ok-1c.d: New test.
524+       * ld-m68k/m68k.exp: Run it.
525+
526+2006-07-04  Daniel Jacobowitz  <dan@codesourcery.com>
527+
528+       Backport:
529+       2006-05-19  Alan Modra  <amodra@bigpond.net.au>
530+       * ld-scripts/empty-orphan.d: Update again.
531+
532+       * ld-scripts/empty-orphan.t: Discard .reginfo.
533+       * ld-scripts/empty-orphan.d: Update.
534+
535 2006-06-12  Daniel Jacobowitz  <dan@codesourcery.com>
536 
537        Backport:
538diff -Naur binutils-2.17/ld/testsuite/ld-m68k/m68k.exp src/ld/testsuite/ld-m68k/m68k.exp
539--- binutils-2.17/ld/testsuite/ld-m68k/m68k.exp 2006-03-25 02:24:27.000000000 -0800
540+++ src/ld/testsuite/ld-m68k/m68k.exp   2006-07-12 05:55:21.000000000 -0700
541@@ -53,3 +53,4 @@
542 run_dump_test "merge-error-1e"
543 run_dump_test "merge-ok-1a"
544 run_dump_test "merge-ok-1b"
545+run_dump_test "merge-ok-1c"
546diff -Naur binutils-2.17/ld/testsuite/ld-m68k/merge-ok-1c.d src/ld/testsuite/ld-m68k/merge-ok-1c.d
547--- binutils-2.17/ld/testsuite/ld-m68k/merge-ok-1c.d    1969-12-31 16:00:00.000000000 -0800
548+++ src/ld/testsuite/ld-m68k/merge-ok-1c.d      2006-07-12 05:55:21.000000000 -0700
549@@ -0,0 +1,6 @@
550+#source: merge-error-1a.s -march=cpu32
551+#source: merge-error-1b.s -march=cpu32
552+#ld: -r
553+#objdump: -p
554+#...
555+private flags = 810000: \[cpu32\]
556diff -Naur binutils-2.17/ld/testsuite/ld-scripts/empty-orphan.d src/ld/testsuite/ld-scripts/empty-orphan.d
557--- binutils-2.17/ld/testsuite/ld-scripts/empty-orphan.d        2005-03-17 08:20:39.000000000 -0800
558+++ src/ld/testsuite/ld-scripts/empty-orphan.d  2006-07-04 06:29:24.000000000 -0700
559@@ -1,3 +1,6 @@
560 #source: empty-orphan.s
561 #ld: -T empty-orphan.t
562-#error: no memory region specified for loadable section
563+#readelf: -l --wide
564+#...
565+ +LOAD +[x0-9a-f]+ [x0]+70000000 [x0]+70000000 [x0]+(2|4|8|10|20|40|80) .*
566+#pass
567diff -Naur binutils-2.17/ld/testsuite/ld-scripts/empty-orphan.t src/ld/testsuite/ld-scripts/empty-orphan.t
568--- binutils-2.17/ld/testsuite/ld-scripts/empty-orphan.t        2005-03-17 08:20:39.000000000 -0800
569+++ src/ld/testsuite/ld-scripts/empty-orphan.t  2006-07-04 06:29:24.000000000 -0700
570@@ -17,5 +17,6 @@
571    .text : { *(.text) } > text_mem : text_phdr
572    .data : { *(.data) } > data_mem : data_phdr
573    .bss : { *(.bss) } > data_mem : data_phdr
574+   /DISCARD/ : { *(.reginfo) }
575    /* .orphan_data is an orphan */
576 }
Note: See TracBrowser for help on using the repository browser.