This is the mail archive of the binutils@sources.redhat.com 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: arm-aout testsuite failures


Hi Alan,

> gas:
> FAIL: ARM v1 instructions
> FAIL: ARM arm7t
> FAIL: Thumb instructions
> FAIL: Thumb instructions (-a)
> FAIL: ARM Architecture v5TEJ instructions
> FAIL: FPA memory insructions
> FAIL: VFP Double-precision instructions
> FAIL: XScale instructions
> 
> The above mostly look like they should be xfailed.  Please, can one
> of the ARM maintainers look into it?

Actually it is mostly just a problem with the aout format padding the
.text section with nops.  Plus it does not support Thumb
instructions.  Fixed by applying the attached patch.  No failures for
arm-aout, arm-coff or arm-elf now.

> ld/testsuite/ld-scripts/defined.exp
> ERROR: tmpdir/def: nm failed

I do not have a fix for this, yet, but I do have a small patch so that
LD will return the correct error message - "no symbols" - rather than
the slighly confusing "wrong format" message.

Cheers
        Nick

ld/ChangeLog
2002-08-22  Nick Clifton  <nickc@redhat.com>

	* syms.c (_bfd_generic_read_minisymbols): Set bfd_error if the
	symbols are not read.

gas/testsuite/ChangeLog
2002-08-22  Nick Clifton  <nickc@redhat.com>

	* gas/arm/arch5tej.s: Add nops to align output.
	* gas/arm/arch5tej.d: Expect nops.
        * gas/arm/arm7t.s: Add nops, remove thumb instructions.
        * gas/arm/arm7t.d: Expect nops.
        * gas/arm/armv1.s: Add nops.
        * gas/arm/armv1.d: Expect nops.
        * gas/arm/fpa-mem.s: Add nops.
        * gas/arm/fpa-mem.d: Expext nops.
        * gas/arm/vfp1.s: Add nops.
        * gas/arm/vfp1.d: Expect nops.
        * gas/arm/xscale.s: Add nops.
        * gas/arm/xscale.d: Expect nops.
        * gas/arm/arm.exp: Do not run thumb tests for arm-aout
	toolchain.

Index: arm/arch5tej.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/arch5tej.d,v retrieving
revision 1.1 diff -c -3 -p -w -r1.1 arch5tej.d *** arm/arch5tej.d 19
Jan 2002 14:25:48 -0000 1.1 --- arm/arch5tej.d 22 Aug 2002 14:38:46
-0000 *************** Disassembly of section .text: *** 13,15 **** ---
13,17 ---- 0+0c <[^>]*> 012fff20 ? bxjeq r0 0+10 <[^>]*> 412fff20 ?
bxjmi r0 0+14 <[^>]*> 512fff27 ? bxjpl r7 + 0+18 <[^>]*> e1a00000 ?
nop[ ]+\(mov r0,r0\) + 0+1c <[^>]*> e1a00000 ? nop[ ]+\(mov r0,r0\)

Index: arm/arch5tej.s
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/arch5tej.s,v
retrieving revision 1.1
diff -c -3 -p -w -r1.1 arch5tej.s
*** arm/arch5tej.s	19 Jan 2002 14:25:48 -0000	1.1
--- arm/arch5tej.s	22 Aug 2002 14:38:46 -0000
*************** label:	
*** 7,9 ****
--- 7,14 ----
  	bxjeq	r0
  	bxjmi	r0
  	bxjpl	r7
+ 	
+ 	# Add two nop instructions to ensure that the output
+ 	# is aligned as will automatically be done for arm-aout.
+ 	nop
+ 	nop

Index: arm/arm.exp
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/arm.exp,v
retrieving revision 1.14
diff -c -3 -p -w -r1.14 arm.exp
*** arm/arm.exp	20 May 2002 17:05:35 -0000	1.14
--- arm/arm.exp	22 Aug 2002 14:38:46 -0000
*************** if {[istarget *arm*-*-*] || [istarget "x
*** 31,37 ****
--- 31,40 ----
  
      run_dump_test "arm7t"
  
+     if {! [istarget arm*-*-aout]} then {
+ 	# The arm-aout port does not support Thumb mode.
  	gas_test "thumb.s" "-mcpu=arm7t" $stdoptlist "Thumb instructions"
+     }
  
      gas_test "arch4t.s" "-march=armv4t" $stdoptlist "Arm architecture 4t instructions"
  
Index: arm/arm7t.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/arm7t.d,v
retrieving revision 1.8
diff -c -3 -p -w -r1.8 arm7t.d
*** arm/arm7t.d	20 May 2002 17:05:35 -0000	1.8
--- arm/arm7t.d	22 Aug 2002 14:38:46 -0000
*************** Disassembly of section .text:
*** 66,70 ****
  [		]*dc:.*fred
  0+e0 <[^>]*> 0000c0de ?	.*
  0+e4 <[^>]*> 0000dead ?	.*
! 0+e8 <[^>]*> 3800      	sub	r0, #0
! 0+ea <[^>]*> 3000      	add	r0, #0
--- 66,70 ----
  [		]*dc:.*fred
  0+e0 <[^>]*> 0000c0de ?	.*
  0+e4 <[^>]*> 0000dead ?	.*
! 0+e8 <[^>]*> e1a00000 ?	nop[ 	]+\(mov r0,r0\)
! 0+ec <[^>]*> e1a00000 ?	nop[ 	]+\(mov r0,r0\)

Index: arm/arm7t.s
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/arm7t.s,v
retrieving revision 1.4
diff -c -3 -p -w -r1.4 arm7t.s
*** arm/arm7t.s	2 May 2002 09:11:14 -0000	1.4
--- arm/arm7t.s	22 Aug 2002 14:38:46 -0000
*************** misc:
*** 74,82 ****
  	.word	fred
  	
  	.ltorg
! 	.thumb
! 	.global thumb_tests
! 	.thumb_func
! thumb_tests:	
! 	sub	r0, #0
! 	add	r0, #0
--- 74,81 ----
  	.word	fred
  	
  	.ltorg
! 
! 	# Add two nop instructions to ensure that the
! 	# output is 32-byte aligned as required for arm-aout.
! 	nop
! 	nop

Index: arm/armv1.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/armv1.d,v
retrieving revision 1.2
diff -c -3 -p -w -r1.2 armv1.d
*** arm/armv1.d	20 May 2002 17:05:35 -0000	1.2
--- arm/armv1.d	22 Aug 2002 14:38:46 -0000
*************** Disassembly of section .text:
*** 68,70 ****
--- 68,73 ----
  0+e8 <[^>]*> e8100001 ?	ldmda	r0, {r0}
  0+ec <[^>]*> e9100001 ?	ldmdb	r0, {r0}
  0+f0 <[^>]*> e9900001 ?	ldmib	r0, {r0}
+ 0+f4 <[^>]*> e1a00000 ?	nop[ 	]+\(mov r0,r0\)
+ 0+f8 <[^>]*> e1a00000 ?	nop[ 	]+\(mov r0,r0\)
+ 0+fc <[^>]*> e1a00000 ?	nop[ 	]+\(mov r0,r0\)

Index: arm/armv1.s
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/armv1.s,v
retrieving revision 1.1
diff -c -3 -p -w -r1.1 armv1.s
*** arm/armv1.s	14 Jan 2002 17:39:02 -0000	1.1
--- arm/armv1.s	22 Aug 2002 14:38:46 -0000
*************** entry:
*** 68,70 ****
--- 68,76 ----
  	ldmfa	r0, {r0}
  	ldmea	r0, {r0}
  	ldmed	r0, {r0}
+ 
+ 	# Add three nop instructions to ensure that the
+ 	# output is 32-byte aligned as required for arm-aout.
+ 	nop
+ 	nop
+ 	nop

Index: arm/fpa-mem.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/fpa-mem.d,v
retrieving revision 1.2
diff -c -3 -p -w -r1.2 fpa-mem.d
*** arm/fpa-mem.d	20 May 2002 17:05:35 -0000	1.2
--- arm/fpa-mem.d	22 Aug 2002 14:38:46 -0000
*************** Disassembly of section .text:
*** 30,32 ****
--- 30,34 ----
  0+4c <[^>]*> ed800200 ?	sfm	f0, 4, \[r0\]
  0+50 <[^>]*> ed00020c ?	sfm	f0, 4, \[r0, -#48\]
  0+54 <[^>]*> ed800200 ?	sfm	f0, 4, \[r0\]
+ 0+58 <[^>]*> e1a00000 ?	nop[ 	]+\(mov r0,r0\)
+ 0+5c <[^>]*> e1a00000 ?	nop[ 	]+\(mov r0,r0\)

Index: arm/fpa-mem.s
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/fpa-mem.s,v
retrieving revision 1.1
diff -c -3 -p -w -r1.1 fpa-mem.s
*** arm/fpa-mem.s	14 Jan 2002 17:39:02 -0000	1.1
--- arm/fpa-mem.s	22 Aug 2002 14:38:46 -0000
*************** F:
*** 24,26 ****
--- 24,31 ----
  	sfm	f0, 4, [r0]
  	sfmfd	f0, 4, [r0]
  	sfmea	f0, 4, [r0]
+ 	
+ 	# Add two nop instructions to ensure that the
+ 	# output is 32-byte aligned as required for arm-aout.
+ 	nop
+ 	nop

Index: arm/vfp1.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/vfp1.d,v
retrieving revision 1.2
diff -c -3 -p -w -r1.2 vfp1.d
*** arm/vfp1.d	18 Jan 2002 17:01:55 -0000	1.2
--- arm/vfp1.d	22 Aug 2002 14:38:46 -0000
*************** Disassembly of section .text:
*** 188,190 ****
--- 188,193 ----
  0+2c8 <[^>]*> 0e1f7b10 	fmrdleq	r7, d15
  0+2cc <[^>]*> 0e21fb10 	fmdhreq	d1, pc
  0+2d0 <[^>]*> 0e0f1b10 	fmdlreq	d15, r1
+ 0+2d4 <[^>]*> e1a00000 ?	nop[ 	]+\(mov r0,r0\)
+ 0+2d8 <[^>]*> e1a00000 ?	nop[ 	]+\(mov r0,r0\)
+ 0+2dc <[^>]*> e1a00000 ?	nop[ 	]+\(mov r0,r0\)

Index: arm/vfp1.s
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/vfp1.s,v
retrieving revision 1.1
diff -c -3 -p -w -r1.1 vfp1.s
*** arm/vfp1.s	15 Jan 2002 16:05:34 -0000	1.1
--- arm/vfp1.s	22 Aug 2002 14:38:46 -0000
*************** F:
*** 276,278 ****
--- 276,285 ----
  
  	fmdhreq	d1, r15
  	fmdlreq	d15, r1
+ 
+ 	# Add three nop instructions to ensure that the
+ 	# output is 32-byte aligned as required for arm-aout.
+ 	nop
+ 	nop
+ 	nop

Index: arm/xscale.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/xscale.d,v
retrieving revision 1.5
diff -c -3 -p -w -r1.5 xscale.d
*** arm/xscale.d	20 May 2002 17:05:35 -0000	1.5
--- arm/xscale.d	22 Aug 2002 14:38:46 -0000
*************** Disassembly of section .text:
*** 33,35 ****
--- 33,37 ----
  0+5c <[^>]*> e5910000 	ldr	r0, \[r1\]
  0+60 <[^>]*> e5832000 	str	r2, \[r3\]
  0+64 <[^>]*> e321f011 	msr	CPSR_c, #17	; 0x11
+ 0+68 <[^>]*> e1a00000 ?	nop[ 	]+\(mov r0,r0\)
+ 0+6c <[^>]*> e1a00000 ?	nop[ 	]+\(mov r0,r0\)

Index: arm/xscale.s
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/xscale.s,v
retrieving revision 1.2
diff -c -3 -p -w -r1.2 xscale.s
*** arm/xscale.s	5 Dec 2001 11:58:40 -0000	1.2
--- arm/xscale.s	22 Aug 2002 14:38:46 -0000
*************** foo:
*** 35,37 ****
--- 35,42 ----
  	str	r2, [r3]
  
  	msr	cpsr_ctl, #0x11
+ 
+ 	# Add two nop instructions to ensure that the
+ 	# output is 32-byte aligned as required for arm-aout.
+ 	nop
+ 	nop

Index: syms.c
===================================================================
RCS file: /cvs/src/src/bfd/syms.c,v
retrieving revision 1.24
diff -c -3 -p -w -r1.24 syms.c
*** syms.c	5 Jul 2002 20:29:38 -0000	1.24
--- syms.c	22 Aug 2002 16:04:29 -0000
*************** _bfd_generic_read_minisymbols (abfd, dyn
*** 806,811 ****
--- 806,812 ----
    return symcount;
  
   error_return:
+   bfd_set_error (bfd_error_no_symbols);
    if (syms != NULL)
      free (syms);
    return -1;


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