* Incorrect assumption on the CIE/FDE alignment @ 2006-05-13 1:07 H. J. Lu 2006-05-13 17:42 ` PATCH: PR ld/2655/2657: Incorrrect padding for .eh_frame section H. J. Lu 0 siblings, 1 reply; 5+ messages in thread From: H. J. Lu @ 2006-05-13 1:07 UTC (permalink / raw) To: binutils; +Cc: richard Hi Richard, Your patch: http://sourceware.org/ml/binutils/2004-11/msg00226.html assumes that CIE/FDE are aligned at the pointer size. But it isn't necessarily true. See http://sources.redhat.com/bugzilla/show_bug.cgi?id=2657 Do you have any suggestions? Thanks. H.J. ^ permalink raw reply [flat|nested] 5+ messages in thread
* PATCH: PR ld/2655/2657: Incorrrect padding for .eh_frame section 2006-05-13 1:07 Incorrect assumption on the CIE/FDE alignment H. J. Lu @ 2006-05-13 17:42 ` H. J. Lu 2006-05-15 2:03 ` H. J. Lu 0 siblings, 1 reply; 5+ messages in thread From: H. J. Lu @ 2006-05-13 17:42 UTC (permalink / raw) To: binutils; +Cc: richard On Fri, May 12, 2006 at 10:05:12AM -0700, H. J. Lu wrote: > Hi Richard, > > Your patch: > > http://sourceware.org/ml/binutils/2004-11/msg00226.html > > assumes that CIE/FDE are aligned at the pointer size. But it isn't > necessarily true. See > > http://sources.redhat.com/bugzilla/show_bug.cgi?id=2657 > This patch fixes 2 PRs 2655/2657. PR 2655 is a gcc bug http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27576 PR 2657 is we don't properly shrink CIE/FDE. H.J. ----- 2006-05-12 H.J. Lu <hongjiu.lu@intel.com> PR ld/2657 * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Properly update CIE/FDE length. PR ld/2655 * elf.c (_bfd_elf_make_section_from_shdr): Enforce pointer alignment on .eh_frame sections. --- bfd/elf-eh-frame.c.eh 2006-05-02 06:49:58.000000000 -0700 +++ bfd/elf-eh-frame.c 2006-05-12 12:30:12.000000000 -0700 @@ -1075,12 +1075,14 @@ _bfd_elf_write_section_eh_frame (bfd *ab end = buf + ent->size; new_size = size_of_output_cie_fde (ent, ptr_size); - /* Install the new size, filling the extra bytes with DW_CFA_nops. */ + /* Update the size. We may have shrinked it. */ + bfd_put_32 (abfd, new_size - 4, buf); + + /* Filling the extra bytes with DW_CFA_nops. */ if (new_size != ent->size) - { - memset (end, 0, new_size - ent->size); - bfd_put_32 (abfd, new_size - 4, buf); - } + memset (end, 0, new_size - ent->size); + + if (ent->cie) { --- bfd/elf.c.eh 2006-05-11 09:26:36.000000000 -0700 +++ bfd/elf.c 2006-05-12 11:26:19.000000000 -0700 @@ -731,6 +731,7 @@ _bfd_elf_make_section_from_shdr (bfd *ab { asection *newsect; flagword flags; + bfd_vma alignment; const struct elf_backend_data *bed; if (hdr->bfd_section != NULL) @@ -754,10 +755,24 @@ _bfd_elf_make_section_from_shdr (bfd *ab newsect->filepos = hdr->sh_offset; + bed = get_elf_backend_data (abfd); + + alignment = hdr->sh_addralign; + if (hdr->sh_type == SHT_PROGBITS && strcmp (name, ".eh_frame") == 0) + { + /* The .eh_frame sections in crtend.o from gcc on 64bit targets + may be aligned at 4 byte. But the runtime library and linker + expect it is aligned at 8. We adjust the section alignment if + it is too small. PR 2655. */ + bfd_vma eh_frame_alignment = bed->s->arch_size / 8; + if (alignment < eh_frame_alignment) + alignment = eh_frame_alignment; + } + if (! bfd_set_section_vma (abfd, newsect, hdr->sh_addr) || ! bfd_set_section_size (abfd, newsect, hdr->sh_size) || ! bfd_set_section_alignment (abfd, newsect, - bfd_log2 ((bfd_vma) hdr->sh_addralign))) + bfd_log2 (alignment))) return FALSE; flags = SEC_NO_FLAGS; @@ -840,7 +855,6 @@ _bfd_elf_make_section_from_shdr (bfd *ab && elf_next_in_group (newsect) == NULL) flags |= SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD; - bed = get_elf_backend_data (abfd); if (bed->elf_backend_section_flags) if (! bed->elf_backend_section_flags (&flags, hdr)) return FALSE; ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: PATCH: PR ld/2655/2657: Incorrrect padding for .eh_frame section 2006-05-13 17:42 ` PATCH: PR ld/2655/2657: Incorrrect padding for .eh_frame section H. J. Lu @ 2006-05-15 2:03 ` H. J. Lu 2006-05-15 3:19 ` H. J. Lu 0 siblings, 1 reply; 5+ messages in thread From: H. J. Lu @ 2006-05-15 2:03 UTC (permalink / raw) To: binutils; +Cc: richard [-- Attachment #1: Type: text/plain, Size: 961 bytes --] On Fri, May 12, 2006 at 01:54:13PM -0700, H. J. Lu wrote: > On Fri, May 12, 2006 at 10:05:12AM -0700, H. J. Lu wrote: > > Hi Richard, > > > > Your patch: > > > > http://sourceware.org/ml/binutils/2004-11/msg00226.html > > > > assumes that CIE/FDE are aligned at the pointer size. But it isn't > > necessarily true. See > > > > http://sources.redhat.com/bugzilla/show_bug.cgi?id=2657 > > > > This patch fixes 2 PRs 2655/2657. PR 2655 is a gcc bug > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27576 > > PR 2657 is we don't properly shrink CIE/FDE. > It turns out that _bfd_elf_discard_section_eh_frame will always pad CIE/FDE record to the pointer size boundary since it calls size_of_output_cie_fde to set the CIE/FDE record size. Even if the next .eh_frame section is marked for 4 byte alignment, it always will be aligned at the pointer size. Fixing PR 2657 will also fix PR 2655. I am enclosing an upated patch and 2 testcases for x86-64. H.J. [-- Attachment #2: bfd-eh-3.patch --] [-- Type: text/plain, Size: 860 bytes --] 2006-05-12 H.J. Lu <hongjiu.lu@intel.com> PR ld/2655 PR ld/2657 * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Properly update CIE/FDE length. --- bfd/elf-eh-frame.c.eh 2006-05-02 06:49:58.000000000 -0700 +++ bfd/elf-eh-frame.c 2006-05-12 17:19:33.000000000 -0700 @@ -1075,12 +1075,12 @@ _bfd_elf_write_section_eh_frame (bfd *ab end = buf + ent->size; new_size = size_of_output_cie_fde (ent, ptr_size); - /* Install the new size, filling the extra bytes with DW_CFA_nops. */ + /* Update the size. It may be shrinked. */ + bfd_put_32 (abfd, new_size - 4, buf); + + /* Filling the extra bytes with DW_CFA_nops. */ if (new_size != ent->size) - { - memset (end, 0, new_size - ent->size); - bfd_put_32 (abfd, new_size - 4, buf); - } + memset (end, 0, new_size - ent->size); if (ent->cie) { [-- Attachment #3: ld-test-eh-1.patch --] [-- Type: text/plain, Size: 3144 bytes --] 2006-05-12 H.J. Lu <hongjiu.lu@intel.com> PR ld/2655 PR ld/2657 * ld-elf/eh1.d: New file. * ld-elf/eh1.s: Likewise. * ld-elf/eh1a.s: Likewise. * ld-elf/eh2.d: Likewise. * ld-elf/eh2a.s: Likewise. --- ld/testsuite/ld-elf/eh1.d.eh 2006-05-12 17:43:02.000000000 -0700 +++ ld/testsuite/ld-elf/eh1.d 2006-05-12 17:15:23.000000000 -0700 @@ -0,0 +1,33 @@ +#source: eh1.s +#source: eh1a.s +#ld: +#readelf: -wf +#target: x86_64-*-* + +The section .eh_frame contains: + +00000000 00000014 00000000 CIE + Version: 1 + Augmentation: "" + Code alignment factor: 1 + Data alignment factor: -8 + Return address column: 16 + + DW_CFA_def_cfa: r7 ofs 8 + DW_CFA_offset: r16 at cfa-8 + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + +00000018 0000001c 0000001c FDE cie=00000000 pc=004000b0..004000b0 + DW_CFA_advance_loc: 0 to 004000b0 + DW_CFA_def_cfa_offset: 16 + DW_CFA_offset: r6 at cfa-16 + DW_CFA_advance_loc: 0 to 004000b0 + DW_CFA_def_cfa_reg: r6 + +00000038 ZERO terminator + --- ld/testsuite/ld-elf/eh1.s.eh 2006-05-12 17:43:02.000000000 -0700 +++ ld/testsuite/ld-elf/eh1.s 2006-05-12 17:15:46.000000000 -0700 @@ -0,0 +1,47 @@ + .text +.globl _start + .type _start, %function +_start: +.LFB2: +.LCFI0: +.LCFI1: +.LFE2: + .size _start, .-_start + .section .eh_frame,"a",%progbits +.Lframe1: + .long .LECIE1-.LSCIE1 +.LSCIE1: + .long 0x0 + .byte 0x1 + .string "" + .uleb128 0x1 + .sleb128 -8 + .byte 0x10 + .byte 0xc + .uleb128 0x7 + .uleb128 0x8 + .byte 0x90 + .uleb128 0x1 + .align 8 +.LECIE1: +.LSFDE1: + .long .LEFDE1-.LASFDE1 +.LASFDE1: + .long .LASFDE1-.Lframe1 + .quad .LFB2 + .quad .LFE2-.LFB2 + .byte 0x4 + .long .LCFI0-.LFB2 + .byte 0xe + .uleb128 0x10 + .byte 0x86 + .uleb128 0x2 + .byte 0x4 + .long .LCFI1-.LCFI0 + .byte 0xd + .uleb128 0x6 + .byte 0x0 + .byte 0x0 + .byte 0x0 + .byte 0x0 +.LEFDE1: --- ld/testsuite/ld-elf/eh1a.s.eh 2006-05-12 17:43:02.000000000 -0700 +++ ld/testsuite/ld-elf/eh1a.s 2006-05-12 17:17:36.000000000 -0700 @@ -0,0 +1,3 @@ + .section .eh_frame,"a",%progbits + .align 8 + .zero 4 --- ld/testsuite/ld-elf/eh2.d.eh 2006-05-12 17:43:02.000000000 -0700 +++ ld/testsuite/ld-elf/eh2.d 2006-05-12 17:18:35.000000000 -0700 @@ -0,0 +1,33 @@ +#source: eh1.s +#source: eh2a.s +#ld: +#readelf: -wf +#target: x86_64-*-* + +The section .eh_frame contains: + +00000000 00000014 00000000 CIE + Version: 1 + Augmentation: "" + Code alignment factor: 1 + Data alignment factor: -8 + Return address column: 16 + + DW_CFA_def_cfa: r7 ofs 8 + DW_CFA_offset: r16 at cfa-8 + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + +00000018 0000001c 0000001c FDE cie=00000000 pc=004000b0..004000b0 + DW_CFA_advance_loc: 0 to 004000b0 + DW_CFA_def_cfa_offset: 16 + DW_CFA_offset: r6 at cfa-16 + DW_CFA_advance_loc: 0 to 004000b0 + DW_CFA_def_cfa_reg: r6 + +00000038 ZERO terminator + --- ld/testsuite/ld-elf/eh2a.s.eh 2006-05-12 17:43:02.000000000 -0700 +++ ld/testsuite/ld-elf/eh2a.s 2006-05-12 17:17:42.000000000 -0700 @@ -0,0 +1,3 @@ + .section .eh_frame,"a",%progbits + .align 4 + .zero 4 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: PATCH: PR ld/2655/2657: Incorrrect padding for .eh_frame section 2006-05-15 2:03 ` H. J. Lu @ 2006-05-15 3:19 ` H. J. Lu 2006-05-24 12:16 ` Alan Modra 0 siblings, 1 reply; 5+ messages in thread From: H. J. Lu @ 2006-05-15 3:19 UTC (permalink / raw) To: binutils; +Cc: richard [-- Attachment #1: Type: text/plain, Size: 1378 bytes --] On Fri, May 12, 2006 at 05:52:46PM -0700, H. J. Lu wrote: > On Fri, May 12, 2006 at 01:54:13PM -0700, H. J. Lu wrote: > > On Fri, May 12, 2006 at 10:05:12AM -0700, H. J. Lu wrote: > > > Hi Richard, > > > > > > Your patch: > > > > > > http://sourceware.org/ml/binutils/2004-11/msg00226.html > > > > > > assumes that CIE/FDE are aligned at the pointer size. But it isn't > > > necessarily true. See > > > > > > http://sources.redhat.com/bugzilla/show_bug.cgi?id=2657 > > > > > > > This patch fixes 2 PRs 2655/2657. PR 2655 is a gcc bug > > > > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27576 > > > > PR 2657 is we don't properly shrink CIE/FDE. > > > > It turns out that _bfd_elf_discard_section_eh_frame will always pad > CIE/FDE record to the pointer size boundary since it calls > size_of_output_cie_fde to set the CIE/FDE record size. Even if the next > .eh_frame section is marked for 4 byte alignment, it always will be > aligned at the pointer size. Fixing PR 2657 will also fix PR 2655. > I am enclosing an upated patch and 2 testcases for x86-64. > > We shouldn't pad the .eh_frame section to its section alignment. We only need to make sure that CIE/FDE records are aligned at pointer size. Otherwise, we may generate bad .eh_frame section if the input section alignment isn't pointer size. I am enclosing a new patch. I also added a new testcase. H.J. [-- Attachment #2: bfd-eh-4.patch --] [-- Type: text/plain, Size: 2394 bytes --] 2006-05-13 H.J. Lu <hongjiu.lu@intel.com> PR ld/2655 PR ld/2657 * elf-eh-frame.c (_bfd_elf_write_section_eh_frame): Properly update CIE/FDE length. Don't pad to the section alignment. --- bfd/elf-eh-frame.c.eh 2006-05-02 06:49:58.000000000 -0700 +++ bfd/elf-eh-frame.c 2006-05-13 10:33:37.000000000 -0700 @@ -1075,12 +1075,12 @@ _bfd_elf_write_section_eh_frame (bfd *ab end = buf + ent->size; new_size = size_of_output_cie_fde (ent, ptr_size); - /* Install the new size, filling the extra bytes with DW_CFA_nops. */ + /* Update the size. It may be shrinked. */ + bfd_put_32 (abfd, new_size - 4, buf); + + /* Filling the extra bytes with DW_CFA_nops. */ if (new_size != ent->size) - { - memset (end, 0, new_size - ent->size); - bfd_put_32 (abfd, new_size - 4, buf); - } + memset (end, 0, new_size - ent->size); if (ent->cie) { @@ -1262,40 +1262,13 @@ _bfd_elf_write_section_eh_frame (bfd *ab } } - { - unsigned int alignment = 1 << sec->alignment_power; - unsigned int pad = sec->size % alignment; - - /* Don't pad beyond the raw size of the output section. It - can happen at the last input section. */ - if (pad - && ((sec->output_offset + sec->size + pad) - <= sec->output_section->size)) - { - bfd_byte *buf; - unsigned int new_size; - - /* Find the last CIE/FDE. */ - ent = sec_info->entry + sec_info->count; - while (--ent != sec_info->entry) - if (!ent->removed) - break; - - /* The size of the last CIE/FDE must be at least 4. */ - if (ent->removed || ent->size < 4) - abort (); - - pad = alignment - pad; - buf = contents + ent->new_offset - sec->output_offset; - new_size = size_of_output_cie_fde (ent, ptr_size); - - /* Pad it with DW_CFA_nop */ - memset (buf + new_size, 0, pad); - bfd_put_32 (abfd, new_size + pad - 4, buf); - - sec->size += pad; - } - } + /* We don't align the section to its section alignment since the + runtime library only expects all CIE/FDE records aligned at + the pointer size. _bfd_elf_discard_section_eh_frame should + have padded CIE/FDE records to multiple of pointer size with + size_of_output_cie_fde. */ + if ((sec->size % ptr_size) != 0) + abort (); return bfd_set_section_contents (abfd, sec->output_section, contents, (file_ptr) sec->output_offset, [-- Attachment #3: ld-test-eh-2.patch --] [-- Type: text/plain, Size: 5128 bytes --] 2006-05-12 H.J. Lu <hongjiu.lu@intel.com> PR ld/2655 PR ld/2657 * ld-elf/eh1.d: New file. * ld-elf/eh1.s: Likewise. * ld-elf/eh1a.s: Likewise. * ld-elf/eh2.d: Likewise. * ld-elf/eh2a.s: Likewise. * ld-elf/eh3.d: Likewise. * ld-elf/eh3.s: Likewise. * ld-elf/eh3a.s: Likewise. --- ld/testsuite/ld-elf/eh1.d.eh 2006-05-12 17:43:02.000000000 -0700 +++ ld/testsuite/ld-elf/eh1.d 2006-05-12 17:15:23.000000000 -0700 @@ -0,0 +1,33 @@ +#source: eh1.s +#source: eh1a.s +#ld: +#readelf: -wf +#target: x86_64-*-* + +The section .eh_frame contains: + +00000000 00000014 00000000 CIE + Version: 1 + Augmentation: "" + Code alignment factor: 1 + Data alignment factor: -8 + Return address column: 16 + + DW_CFA_def_cfa: r7 ofs 8 + DW_CFA_offset: r16 at cfa-8 + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + +00000018 0000001c 0000001c FDE cie=00000000 pc=004000b0..004000b0 + DW_CFA_advance_loc: 0 to 004000b0 + DW_CFA_def_cfa_offset: 16 + DW_CFA_offset: r6 at cfa-16 + DW_CFA_advance_loc: 0 to 004000b0 + DW_CFA_def_cfa_reg: r6 + +00000038 ZERO terminator + --- ld/testsuite/ld-elf/eh1.s.eh 2006-05-12 17:43:02.000000000 -0700 +++ ld/testsuite/ld-elf/eh1.s 2006-05-12 17:15:46.000000000 -0700 @@ -0,0 +1,47 @@ + .text +.globl _start + .type _start, %function +_start: +.LFB2: +.LCFI0: +.LCFI1: +.LFE2: + .size _start, .-_start + .section .eh_frame,"a",%progbits +.Lframe1: + .long .LECIE1-.LSCIE1 +.LSCIE1: + .long 0x0 + .byte 0x1 + .string "" + .uleb128 0x1 + .sleb128 -8 + .byte 0x10 + .byte 0xc + .uleb128 0x7 + .uleb128 0x8 + .byte 0x90 + .uleb128 0x1 + .align 8 +.LECIE1: +.LSFDE1: + .long .LEFDE1-.LASFDE1 +.LASFDE1: + .long .LASFDE1-.Lframe1 + .quad .LFB2 + .quad .LFE2-.LFB2 + .byte 0x4 + .long .LCFI0-.LFB2 + .byte 0xe + .uleb128 0x10 + .byte 0x86 + .uleb128 0x2 + .byte 0x4 + .long .LCFI1-.LCFI0 + .byte 0xd + .uleb128 0x6 + .byte 0x0 + .byte 0x0 + .byte 0x0 + .byte 0x0 +.LEFDE1: --- ld/testsuite/ld-elf/eh1a.s.eh 2006-05-12 17:43:02.000000000 -0700 +++ ld/testsuite/ld-elf/eh1a.s 2006-05-12 17:17:36.000000000 -0700 @@ -0,0 +1,3 @@ + .section .eh_frame,"a",%progbits + .align 8 + .zero 4 --- ld/testsuite/ld-elf/eh2.d.eh 2006-05-12 17:43:02.000000000 -0700 +++ ld/testsuite/ld-elf/eh2.d 2006-05-12 17:18:35.000000000 -0700 @@ -0,0 +1,33 @@ +#source: eh1.s +#source: eh2a.s +#ld: +#readelf: -wf +#target: x86_64-*-* + +The section .eh_frame contains: + +00000000 00000014 00000000 CIE + Version: 1 + Augmentation: "" + Code alignment factor: 1 + Data alignment factor: -8 + Return address column: 16 + + DW_CFA_def_cfa: r7 ofs 8 + DW_CFA_offset: r16 at cfa-8 + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + +00000018 0000001c 0000001c FDE cie=00000000 pc=004000b0..004000b0 + DW_CFA_advance_loc: 0 to 004000b0 + DW_CFA_def_cfa_offset: 16 + DW_CFA_offset: r6 at cfa-16 + DW_CFA_advance_loc: 0 to 004000b0 + DW_CFA_def_cfa_reg: r6 + +00000038 ZERO terminator + --- ld/testsuite/ld-elf/eh2a.s.eh 2006-05-12 17:43:02.000000000 -0700 +++ ld/testsuite/ld-elf/eh2a.s 2006-05-12 17:17:42.000000000 -0700 @@ -0,0 +1,3 @@ + .section .eh_frame,"a",%progbits + .align 4 + .zero 4 --- ld/testsuite/ld-elf/eh3.d.eh 2006-05-13 10:24:59.000000000 -0700 +++ ld/testsuite/ld-elf/eh3.d 2006-05-13 10:27:12.000000000 -0700 @@ -0,0 +1,33 @@ +#source: eh3.s +#source: eh3a.s +#ld: +#readelf: -wf +#target: x86_64-*-* + +The section .eh_frame contains: + +00000000 00000014 00000000 CIE + Version: 1 + Augmentation: "" + Code alignment factor: 1 + Data alignment factor: -8 + Return address column: 16 + + DW_CFA_def_cfa: r7 ofs 8 + DW_CFA_offset: r16 at cfa-8 + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + +00000018 0000001c 0000001c FDE cie=00000000 pc=004000b0..004000b0 + DW_CFA_advance_loc: 0 to 004000b0 + DW_CFA_def_cfa_offset: 16 + DW_CFA_offset: r6 at cfa-16 + DW_CFA_advance_loc: 0 to 004000b0 + DW_CFA_def_cfa_reg: r6 + +00000038 ZERO terminator +#pass --- ld/testsuite/ld-elf/eh3.s.eh 2006-05-13 10:24:44.000000000 -0700 +++ ld/testsuite/ld-elf/eh3.s 2006-05-13 10:24:24.000000000 -0700 @@ -0,0 +1,48 @@ + .text +.globl _start + .type _start, %function +_start: +.LFB2: +.LCFI0: +.LCFI1: +.LFE2: + .size _start, .-_start + .section .eh_frame,"a",%progbits + .align 16 +.Lframe1: + .long .LECIE1-.LSCIE1 +.LSCIE1: + .long 0x0 + .byte 0x1 + .string "" + .uleb128 0x1 + .sleb128 -8 + .byte 0x10 + .byte 0xc + .uleb128 0x7 + .uleb128 0x8 + .byte 0x90 + .uleb128 0x1 + .align 8 +.LECIE1: +.LSFDE1: + .long .LEFDE1-.LASFDE1 +.LASFDE1: + .long .LASFDE1-.Lframe1 + .quad .LFB2 + .quad .LFE2-.LFB2 + .byte 0x4 + .long .LCFI0-.LFB2 + .byte 0xe + .uleb128 0x10 + .byte 0x86 + .uleb128 0x2 + .byte 0x4 + .long .LCFI1-.LCFI0 + .byte 0xd + .uleb128 0x6 + .byte 0x0 + .byte 0x0 + .byte 0x0 + .byte 0x0 +.LEFDE1: --- ld/testsuite/ld-elf/eh3a.s.eh 2006-05-13 10:24:41.000000000 -0700 +++ ld/testsuite/ld-elf/eh3a.s 2006-05-13 10:24:30.000000000 -0700 @@ -0,0 +1,3 @@ + .section .eh_frame,"a",%progbits + .align 8 + .zero 8 ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: PATCH: PR ld/2655/2657: Incorrrect padding for .eh_frame section 2006-05-15 3:19 ` H. J. Lu @ 2006-05-24 12:16 ` Alan Modra 0 siblings, 0 replies; 5+ messages in thread From: Alan Modra @ 2006-05-24 12:16 UTC (permalink / raw) To: H. J. Lu; +Cc: binutils, richard On Sat, May 13, 2006 at 10:41:31AM -0700, H. J. Lu wrote: > We shouldn't pad the .eh_frame section to its section alignment. Where it was being done is too late anyway. Patch OK. -- Alan Modra IBM OzLabs - Linux Technology Centre ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2006-05-24 2:18 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2006-05-13 1:07 Incorrect assumption on the CIE/FDE alignment H. J. Lu 2006-05-13 17:42 ` PATCH: PR ld/2655/2657: Incorrrect padding for .eh_frame section H. J. Lu 2006-05-15 2:03 ` H. J. Lu 2006-05-15 3:19 ` H. J. Lu 2006-05-24 12:16 ` 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).