Re: PATCH: Fix gnu-efi-3.0b-041222 for ia32

From: H. J. Lu <hjl_at_lucon.org>
Date: 2006-03-18 08:52:11
On Fri, Mar 17, 2006 at 01:46:57PM -0800, H. J. Lu wrote:
> On Fri, Mar 17, 2006 at 12:53:24PM -0800, James E Wilson wrote:
> > On Fri, 2006-03-17 at 12:45, James E Wilson wrote:
> > > That should be .text.*, not .text*.
> > 
> > And because .text.* doesn't match .text, this actually needs to be
> >     *(.text .text.*)
> 
> I don't think so. linker calls fnmatch to match section names by
> patterns.  According to my man page:
> 
> NAME
>        fnmatch - match filename or pathname
> 
> SYNOPSIS
>        #include <fnmatch.h>
> 
>        int fnmatch(const char *pattern, const char *string, int flags);
> 
> DESCRIPTION
>        The  fnmatch()  function checks whether the string argument
> matches the
>        pattern argument, which is a shell wildcard pattern.
> 
> ".text*" should work as a shell wildcard pattern.
> 
> > Try looking at ld --verbose output, and grepping for .text.
> 
> This is the updated patch to include *(.gnu.linkonce.t.*) sections.
> 

This new makes linker scripts similar to normal linker. It should
generate the same output.


H.J.
---
--- gnu-efi/gnuefi/elf_ia32_efi.lds.ia32	2004-12-22 07:52:28.000000000 -0800
+++ gnu-efi/gnuefi/elf_ia32_efi.lds	2006-03-17 13:48:13.000000000 -0800
@@ -10,6 +10,12 @@ SECTIONS
   .text :
   {
    *(.text)
+   *(.text.*)
+   *(.gnu.linkonce.t.*)
+  }
+  .reloc :
+  {
+   *(.reloc)
   }
   . = ALIGN(4096);
   .data :
@@ -48,12 +54,9 @@ SECTIONS
   . = ALIGN(4096);
   .dynstr   : { *(.dynstr) }
   . = ALIGN(4096);
-  .ignored.reloc :
+  /DISCARD/ :
   {
     *(.rel.reloc)
-  }
-  .ignored :
-  {
     *(.eh_frame)
   }
 }
--- gnu-efi/gnuefi/elf_ia64_efi.lds.ia32	2004-12-22 10:18:10.000000000 -0800
+++ gnu-efi/gnuefi/elf_ia64_efi.lds	2006-03-17 13:48:20.000000000 -0800
@@ -10,6 +10,7 @@ SECTIONS
   .text :
   {
    *(.text)
+   *(.text.*)
    *(.gnu.linkonce.t*)
   }
   . = ALIGN(4096);
@@ -59,13 +60,10 @@ SECTIONS
   .dynsym   : { *(.dynsym) }
   . = ALIGN(4096);
   .dynstr   : { *(.dynstr) }
-  .ignored_reloc :
+  /DISCARD/ :
   {
     *(.rela.plabel)
     *(.rela.reloc)
-  }
-  /DISCARD/ :
-  {
     *(.IA_64.unwind*)
     *(.IA64.unwind*)
   }
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Received on Sat Mar 18 08:52:45 2006

This archive was generated by hypermail 2.1.8 : 2006-03-18 08:52:53 EST