This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: PATCH: ld/1467: Orphaned section is put in the odd place


Hi H.J.

+++ binutils/ld/ld.texinfo 2005-10-13 08:02:20.000000000 -0700
@@ -4626,6 +4626,9 @@ SECTIONS
Now, the orphan @code{.rodata} section will be placed between
@code{end_of_text} and @code{start_of_data}.
+For ELF targets, linker will place the orphan section together with
+sections of the same section type.

I think that we need more documentation than this. In fact I think that we need a whole new node in the linker manual. Something like this maybe:


Orphaned Sections

   Orphaned sections are sections present in the input files which
   are not explicitly placed into the output file by the linker
   script.  The linker will still copy these sections into the
   output file, but it has to guess as to where they should be
   placed.  The linker uses a simple heuristic to do this.  It
   attempts to place orphaned sections after non-orphaned
   sections of the same type(1).  If there is not enough room to
   do this then it places at the end of the file.  Within a group
   of orphaned sections it orders them alphabetically by their
   name.

   Footnote (1):  In this context the type of the section are
   its attributes such as code vs data, loadable vs non-loadable,
   etc.  For ELF based targets the type also includes the sh_type
   field of the ELF section header.

       if (look->bfd_section != NULL)
-	flags = look->bfd_section->flags;
+	{
+	  flags = look->bfd_section->flags;
+	  if (!bfd_match_sections_by_type (output_bfd,
+					   look->bfd_section,
+					   sec->owner, sec))
+	    continue;
+	}

The curly parentheses are unnecessary.


Cheers
  Nick



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]