This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: arm-aout testsuite failures
- From: Nick Clifton <nickc at redhat dot com>
- To: Alan Modra <amodra at bigpond dot net dot au>
- Cc: binutils at sources dot redhat dot com
- Date: 22 Aug 2002 17:13:24 +0100
- Subject: Re: arm-aout testsuite failures
- References: <20020821114230.F21053@bubble.sa.bigpond.net.au>
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;