This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB 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] testsuite/gdb.dwarf2: Fix for dw2-dos-drive failure on ARM


On 07/15/2013 11:26 AM, Omair Javaid wrote:
> A test-case in gdb.dwarf2/dw2-dos-drive.exp fails on ARM. Problem occurs
> due to an unaligned access of text section. This patch correctly aligns
> text section to 4 bytes. This patch has been tested on armv7 and x86_64.

#1 - What exactly is unaligned?  You're reserving 4 bytes instead
of 1 for pc_start.  Does that really influence alignment of text ?
It doesn't for me, with an arm-linux toolchain:

$ arm-linux-gcc dw2-dos-drive.S -o a.out -c
$ arm-gp2x-linux-objdump -h a.out
...
  Sections:
  Idx Name          Size      VMA       LMA       File off  Algn
    0 .text         00000001  00000000  00000000  00000034  2**0
                    CONTENTS, ALLOC, LOAD, READONLY, CODE
...

 vs

...
  Sections:
  Idx Name          Size      VMA       LMA       File off  Algn
    0 .text         00000004  00000000  00000000  00000034  2**0
                   CONTENTS, ALLOC, LOAD, READONLY, CODE
...

IOW, size increases, but alignment stays the same.

#2 - Where's the actual access/fault?  AFAICS, the test doesn't
even execute the compiled object's code.

#3 - How come these other tests aren't likewise affected?

$ grep "\.byte 0$" * -B 4
dw2-canonicalize-type.S-   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
dw2-canonicalize-type.S-
dw2-canonicalize-type.S-        .text
dw2-canonicalize-type.S-        .globl main
dw2-canonicalize-type.S:main:   .byte 0
--
pr11465.S-      .text
pr11465.S-text_start:
pr11465.S-_ZN1N1cE:
pr11465.S-      /* Valid function must have non-empty PC range.  */
pr11465.S:      .byte 0

> 
> gdb/testsuite/ChangeLog:
> 
> 2013-07-15  Omair Javaid  <Omair.Javaid@linaro.org>
> 
> 	* gdb.dwarf2/dw2-dos-drive.S: Corrected text section alignment

Missing period at end of sentence.  That's a "why".  You should say
a "what" instead:

	* gdb.dwarf2/dw2-dos-drive.S (pc_start): Use .4byte instead of
	.byte.

> 
> ===================================================================
> RCS file: /cvs/src/src/gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S,v
> retrieving revision 1.1
> diff -u -p -r1.1 dw2-dos-drive.S
> --- gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S    17 Jan 2013 20:40:44
> -0000      1.1
> +++ gdb/testsuite/gdb.dwarf2/dw2-dos-drive.S    19 Jun 2013 19:43:32 -0000
> @@ -15,7 +15,7 @@
> 
>         .text
>  pc_start:
> -       .byte   0
> +       .4byte  0
>  pc_end:
> 
>         .section        .debug_info
> 

-- 
Pedro Alves


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