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: Mark .gnu.lto_main/ .gnu.lto_ sections with SHF_EXCLUDE


On Fri, Dec 10, 2010 at 4:02 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Fri, Dec 10, 2010 at 3:07 PM, H.J. Lu <hongjiu.lu@intel.com> wrote:
>> Hi,
>>
>> This patch marks .gnu.lto_main/ .gnu.lto_ sections with SHF_EXCLUDE.
>> OK to install?
>>
>> Thanks.
>>
>>
>> H.J.
>> --
>> bfd/
>>
>> 2010-12-10 ?H.J. Lu ?<hongjiu.lu@intel.com>
>>
>> ? ? ? ?* elf.c (special_sections_g): Add .gnu.lto_main and .gnu.lto_.
>>
>> gas/testsuite/
>>
>> 2010-12-10 ?H.J. Lu ?<hongjiu.lu@intel.com>
>>
>> ? ? ? ?* gas/elf/elf.exp: Run section9.
>>
>> ? ? ? ?* gas/elf/section9.d: New.
>> ? ? ? ?* gas/elf/section9.s: Likewise.
>>
>
> It turns out gcc uses `_' as separator. for LTO section names.
> This updated patch allows ?`_' as separator.. ?OK to install?
>
> Thanks.
>
>
> --
> H.J.
> -
> bfd/
>
> 2010-12-10 ?H.J. Lu ?<hongjiu.lu@intel.com>
>
> ? ? ? ?* elf.c (special_sections_g): Add ".gnu.lto".
> ? ? ? ?(_bfd_elf_get_special_section): Allow `_' as separator.
>

I should use .gnu.lto_" with -1.  Here is the updated patch.


-- 
H.J.
--
bfd/

2010-12-11  H.J. Lu  <hongjiu.lu@intel.com>

	* elf.c (special_sections_g): Add ".gnu.lto_".

gas/testsuite/

2010-12-11  H.J. Lu  <hongjiu.lu@intel.com>

	* gas/elf/elf.exp: Run section9.

	* gas/elf/section9.d: New.
	* gas/elf/section9.s: Likewise.

diff --git a/bfd/elf.c b/bfd/elf.c
index 075a668..45b86a8 100644
--- a/bfd/elf.c
+++ b/bfd/elf.c
@@ -2082,6 +2082,7 @@ static const struct bfd_elf_special_section
special_sections_f[] =
 static const struct bfd_elf_special_section special_sections_g[] =
 {
   { STRING_COMMA_LEN (".gnu.linkonce.b"), -2, SHT_NOBITS,
SHF_ALLOC + SHF_WRITE },
+  { STRING_COMMA_LEN (".gnu.lto_"),       -1, SHT_PROGBITS,    SHF_EXCLUDE },
   { STRING_COMMA_LEN (".got"),             0, SHT_PROGBITS,
SHF_ALLOC + SHF_WRITE },
   { STRING_COMMA_LEN (".gnu.version"),     0, SHT_GNU_versym,  0 },
   { STRING_COMMA_LEN (".gnu.version_d"),   0, SHT_GNU_verdef,  0 },
diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp
index 3babe0b..7f86266 100644
--- a/gas/testsuite/gas/elf/elf.exp
+++ b/gas/testsuite/gas/elf/elf.exp
@@ -174,6 +174,7 @@ if { ([istarget "*-*-*elf*"]
     run_dump_test "section6"
     run_dump_test "section7"
     run_dump_test "section8"
+    run_dump_test "section9"
     run_dump_test "dwarf2-1"
     run_dump_test "dwarf2-2"
     run_dump_test "dwarf2-3"
diff --git a/gas/testsuite/gas/elf/section9.d b/gas/testsuite/gas/elf/section9.d
new file mode 100644
index 0000000..c1df902
--- /dev/null
+++ b/gas/testsuite/gas/elf/section9.d
@@ -0,0 +1,7 @@
+#readelf: -S --wide
+#name: section flags
+
+#...
+[ 	]*\[.*\][ 	]+\.gnu\.lto_main[ 	]+PROGBITS.*[ 	]+E[   ]+.*
+[ 	]*\[.*\][ 	]+\.gnu\.lto_.pureconst[ 	]+PROGBITS.*[ 	]+E[   ]+.*
+#pass
diff --git a/gas/testsuite/gas/elf/section9.s b/gas/testsuite/gas/elf/section9.s
new file mode 100644
index 0000000..6b8b107
--- /dev/null
+++ b/gas/testsuite/gas/elf/section9.s
@@ -0,0 +1,4 @@
+	.section .gnu.lto_main,"",%progbits
+	.byte 0,0,0,0
+	.section .gnu.lto_.pureconst,"",%progbits
+	.byte 0,0,0,0


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