public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* Useless code in sh_elf_create_dynamic_sections
@ 2012-06-27 15:46 Alan Modra
  2012-06-29 14:07 ` Alan Modra
  0 siblings, 1 reply; 2+ messages in thread
From: Alan Modra @ 2012-06-27 15:46 UTC (permalink / raw)
  To: binutils; +Cc: nickc, ian, aoliva

This patch removes a useless block of code that started life in
elf32-sh.c (*) http://sourceware.org/ml/binutils/2000-08/msg00457.html
and was copied blindly to other files.  At least I can't see any use
for the code.  It looks to be creating relocation sections for bss
style sections, ie. .rela.bss for .bss, .rela.sbss for .sbss if such
exists, etc.  However, none of these sections will be used except for
.rela.bss, to hold copy relocs for .dynbss, and we create .rela.bss a
few lines later anyway.  (I guess .rela.bss should really be called
.rela.dynbss.)  .rela.bss is sized in adjust_dynamic_symbol, allocated
along with other dynamic sections, then filled out in
finish_dynamic_symbol.  I'll note that
       s = bfd_get_section_by_name (h->root.u.def.section->owner,
                                    ".rela.bss");
in finish_dynamic_symbol is just an obscure way of writing
       s = bfd_get_section_by_name (dynobj, ".rela.bss");
(h->root.u.def.section becomes .dynbss in _bfd_elf_adjust_dynamic_copy).

cc'ing a few maintainers in case I've missed something, but I'd like
to apply this soon as it's a prerequisite for another cleanup.

*) As far as I could tell.  Maybe it was copied from some earlier
file..

	* elf32-sh.c (sh_elf_create_dynamic_sections): Don't create .rela
	section for bss type sections, except for .rela.bss.
	* elf-m10300.c (_bfd_mn10300_elf_create_dynamic_sections): Likewise.
	* elf32-cr16.c (_bfd_cr16_elf_create_dynamic_sections): Likewise.
	* elf32-lm32.c (lm32_elf_create_dynamic_sections): Likewise.
	* elf32-m32r.c (m32r_elf_create_dynamic_sections): Likewise.
	* elf64-sh64.c (sh64_elf64_create_dynamic_sections): Likewise.

Index: bfd/elf-m10300.c
===================================================================
RCS file: /cvs/src/src/bfd/elf-m10300.c,v
retrieving revision 1.114
diff -u -p -r1.114 elf-m10300.c
--- bfd/elf-m10300.c	7 May 2012 03:27:48 -0000	1.114
+++ bfd/elf-m10300.c	27 Jun 2012 05:55:09 -0000
@@ -4843,32 +4835,6 @@ _bfd_mn10300_elf_create_dynamic_sections
   if (! _bfd_mn10300_elf_create_got_section (abfd, info))
     return FALSE;
 
-  {
-    const char * secname;
-    char *       relname;
-    flagword     secflags;
-    asection *   sec;
-
-    for (sec = abfd->sections; sec; sec = sec->next)
-      {
-	secflags = bfd_get_section_flags (abfd, sec);
-	if ((secflags & (SEC_DATA | SEC_LINKER_CREATED))
-	    || ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS))
-	  continue;
-
-	secname = bfd_get_section_name (abfd, sec);
-	relname = bfd_malloc (strlen (secname) + 6);
-	strcpy (relname, ".rela");
-	strcat (relname, secname);
-
-	s = bfd_make_section_with_flags (abfd, relname,
-					 flags | SEC_READONLY);
-	if (s == NULL
-	    || ! bfd_set_section_alignment (abfd, s, ptralign))
-	  return FALSE;
-      }
-  }
-
   if (bed->want_dynbss)
     {
       /* The .dynbss section is a place to put symbols which are defined
Index: bfd/elf32-cr16.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-cr16.c,v
retrieving revision 1.19
diff -u -p -r1.19 elf32-cr16.c
--- bfd/elf32-cr16.c	7 May 2012 03:27:49 -0000	1.19
+++ bfd/elf32-cr16.c	27 Jun 2012 05:55:14 -0000
@@ -2289,32 +2287,6 @@ _bfd_cr16_elf_create_dynamic_sections (b
   if (! _bfd_cr16_elf_create_got_section (abfd, info))
     return FALSE;
 
-  {
-    const char * secname;
-    char *       relname;
-    flagword     secflags;
-    asection *   sec;
-
-    for (sec = abfd->sections; sec; sec = sec->next)
-      {
-        secflags = bfd_get_section_flags (abfd, sec);
-        if ((secflags & (SEC_DATA | SEC_LINKER_CREATED))
-            || ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS))
-          continue;
-
-        secname = bfd_get_section_name (abfd, sec);
-        relname = (char *) bfd_malloc (strlen (secname) + 6);
-        strcpy (relname, ".rela");
-        strcat (relname, secname);
-
-        s = bfd_make_section_with_flags (abfd, relname,
-                                         flags | SEC_READONLY);
-        if (s == NULL
-            || ! bfd_set_section_alignment (abfd, s, ptralign))
-          return FALSE;
-      }
-  }
-
   if (bed->want_dynbss)
     {
       /* The .dynbss section is a place to put symbols which are defined
Index: bfd/elf32-lm32.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-lm32.c,v
retrieving revision 1.13
diff -u -p -r1.13 elf32-lm32.c
--- bfd/elf32-lm32.c	16 May 2012 14:26:46 -0000	1.13
+++ bfd/elf32-lm32.c	27 Jun 2012 05:55:18 -0000
@@ -2523,32 +2528,6 @@ lm32_elf_create_dynamic_sections (bfd *a
       && ! create_got_section (abfd, info))
     return FALSE;
 
-  {
-    const char *secname;
-    char *relname;
-    flagword secflags;
-    asection *sec;
-
-    for (sec = abfd->sections; sec; sec = sec->next)
-      {
-        secflags = bfd_get_section_flags (abfd, sec);
-        if ((secflags & (SEC_DATA | SEC_LINKER_CREATED))
-            || ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS))
-          continue;
-        secname = bfd_get_section_name (abfd, sec);
-        relname = bfd_malloc ((bfd_size_type) strlen (secname) + 6);
-        strcpy (relname, ".rela");
-        strcat (relname, secname);
-        if (bfd_get_section_by_name (abfd, secname))
-          continue;
-        s = bfd_make_section_with_flags (abfd, relname,
-					 flags | SEC_READONLY);
-        if (s == NULL
-            || ! bfd_set_section_alignment (abfd, s, ptralign))
-          return FALSE;
-      }
-  }
-
   if (bed->want_dynbss)
     {
       /* The .dynbss section is a place to put symbols which are defined
Index: bfd/elf32-m32r.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-m32r.c,v
retrieving revision 1.107
diff -u -p -r1.107 elf32-m32r.c
--- bfd/elf32-m32r.c	16 May 2012 16:38:28 -0000	1.107
+++ bfd/elf32-m32r.c	27 Jun 2012 05:55:19 -0000
@@ -1701,32 +1702,6 @@ m32r_elf_create_dynamic_sections (bfd *a
       && ! create_got_section (abfd, info))
     return FALSE;
 
-  {
-    const char *secname;
-    char *relname;
-    flagword secflags;
-    asection *sec;
-
-    for (sec = abfd->sections; sec; sec = sec->next)
-      {
-        secflags = bfd_get_section_flags (abfd, sec);
-        if ((secflags & (SEC_DATA | SEC_LINKER_CREATED))
-            || ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS))
-          continue;
-        secname = bfd_get_section_name (abfd, sec);
-        relname = bfd_malloc ((bfd_size_type) strlen (secname) + 6);
-        strcpy (relname, ".rela");
-        strcat (relname, secname);
-        if (bfd_get_section_by_name (abfd, secname))
-          continue;
-        s = bfd_make_section_with_flags (abfd, relname,
-					 flags | SEC_READONLY);
-        if (s == NULL
-            || ! bfd_set_section_alignment (abfd, s, ptralign))
-          return FALSE;
-      }
-  }
-
   if (bed->want_dynbss)
     {
       /* The .dynbss section is a place to put symbols which are defined
Index: bfd/elf32-sh.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-sh.c,v
retrieving revision 1.179
diff -u -p -r1.179 elf32-sh.c
--- bfd/elf32-sh.c	7 May 2012 03:27:50 -0000	1.179
+++ bfd/elf32-sh.c	27 Jun 2012 05:55:26 -0000
@@ -2749,32 +2750,6 @@ sh_elf_create_dynamic_sections (bfd *abf
       && !create_got_section (abfd, info))
     return FALSE;
 
-  {
-    const char *secname;
-    char *relname;
-    flagword secflags;
-    asection *sec;
-
-    for (sec = abfd->sections; sec; sec = sec->next)
-      {
-	secflags = bfd_get_section_flags (abfd, sec);
-	if ((secflags & (SEC_DATA | SEC_LINKER_CREATED))
-	    || ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS))
-	  continue;
-	secname = bfd_get_section_name (abfd, sec);
-	relname = (char *) bfd_malloc ((bfd_size_type) strlen (secname) + 6);
-	strcpy (relname, ".rela");
-	strcat (relname, secname);
-	if (bfd_get_section_by_name (abfd, secname))
-	  continue;
-	s = bfd_make_section_with_flags (abfd, relname,
-					 flags | SEC_READONLY);
-	if (s == NULL
-	    || ! bfd_set_section_alignment (abfd, s, ptralign))
-	  return FALSE;
-      }
-  }
-
   if (bed->want_dynbss)
     {
       /* The .dynbss section is a place to put symbols which are defined
Index: bfd/elf64-sh64.c
===================================================================
RCS file: /cvs/src/src/bfd/elf64-sh64.c,v
retrieving revision 1.91
diff -u -p -r1.91 elf64-sh64.c
--- bfd/elf64-sh64.c	7 May 2012 03:27:52 -0000	1.91
+++ bfd/elf64-sh64.c	27 Jun 2012 05:55:36 -0000
@@ -3196,30 +3195,6 @@ sh64_elf64_create_dynamic_sections (bfd 
   if (! _bfd_elf_create_got_section (abfd, info))
     return FALSE;
 
-  {
-    const char *secname;
-    char *relname;
-    flagword secflags;
-    asection *sec;
-
-    for (sec = abfd->sections; sec; sec = sec->next)
-      {
-	secflags = bfd_get_section_flags (abfd, sec);
-	if ((secflags & (SEC_DATA | SEC_LINKER_CREATED))
-	    || ((secflags & SEC_HAS_CONTENTS) != SEC_HAS_CONTENTS))
-	  continue;
-	secname = bfd_get_section_name (abfd, sec);
-	relname = (char *) bfd_malloc (strlen (secname) + 6);
-	strcpy (relname, ".rela");
-	strcat (relname, secname);
-	s = bfd_make_section_with_flags (abfd, relname,
-					 flags | SEC_READONLY);
-	if (s == NULL
-	    || ! bfd_set_section_alignment (abfd, s, ptralign))
-	  return FALSE;
-      }
-  }
-
   if (bed->want_dynbss)
     {
       /* The .dynbss section is a place to put symbols which are defined

-- 
Alan Modra
Australia Development Lab, IBM

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Useless code in sh_elf_create_dynamic_sections
  2012-06-27 15:46 Useless code in sh_elf_create_dynamic_sections Alan Modra
@ 2012-06-29 14:07 ` Alan Modra
  0 siblings, 0 replies; 2+ messages in thread
From: Alan Modra @ 2012-06-29 14:07 UTC (permalink / raw)
  To: binutils, nickc, ian, aoliva

On Thu, Jun 28, 2012 at 01:16:08AM +0930, Alan Modra wrote:
> 	* elf32-sh.c (sh_elf_create_dynamic_sections): Don't create .rela
> 	section for bss type sections, except for .rela.bss.
> 	* elf-m10300.c (_bfd_mn10300_elf_create_dynamic_sections): Likewise.
> 	* elf32-cr16.c (_bfd_cr16_elf_create_dynamic_sections): Likewise.
> 	* elf32-lm32.c (lm32_elf_create_dynamic_sections): Likewise.
> 	* elf32-m32r.c (m32r_elf_create_dynamic_sections): Likewise.
> 	* elf64-sh64.c (sh64_elf64_create_dynamic_sections): Likewise.

Committed.

-- 
Alan Modra
Australia Development Lab, IBM

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2012-06-29 14:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-27 15:46 Useless code in sh_elf_create_dynamic_sections Alan Modra
2012-06-29 14:07 ` Alan Modra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).