[ARM/FDPIC,v5,14/21,ARM,testsuite] FDPIC: Skip unsupported tests

Message ID 20190515124006.25840-15-christophe.lyon@st.com
State Superseded
Headers show
Series
  • FDPIC ABI for ARM
Related show

Commit Message

Christophe Lyon May 15, 2019, 12:39 p.m.
Several tests cannot work on ARM-FDPIC for various reasons: skip them,
or skip some directives.

gcc.dg/20020312-2.c: Skip since it forces -fno-pic.

gcc.target/arm/:
* Skip since r9 is clobbered by assembly code:
  20051215-1.c
  mmx-1.c
  pr61948.c
  pr77933-1.c
  pr77933-2.c

* Skip since the test forces armv5te which is not supported by FDPIC:
  pr40887.c
  pr19599.c

* Skip since FDPIC disables sibcall to external functions:
  sibcall-1.c
  tail-long-call
  vfp-longcall-apcs

* Skip size check since it's different for FDPIC:
  ivopts-2.c
  ivopts-3.c
  ivopts-4.c
  ivopts-5.c
  pr43597.c
  pr43920-2.c

* Disable assembler scanning invalid for FDPIC:
  pr45701-1.c
  pr45701-2.c
  stack-red-zone.c

* gnu2 TLS dialect is not supported by FDPIC:
  tlscall.c

* Test relies on symbols not generated in FDPIC:
  data-rel-2.c
  data-rel-3.c

2019-XX-XX  Christophe Lyon  <christophe.lyon@st.com>
	Mickaël Guêné <mickael.guene@st.com>

	gcc/testsuite/
	* gcc.dg/20020312-2.c: Skip on arm*-*-uclinuxfdpiceabi.
	* gcc.target/arm/20051215-1.c: Likewise.
	* gcc.target/arm/mmx-1.c: Likewise.
	* gcc.target/arm/pr19599.c: Likewise.
	* gcc.target/arm/pr40887.c: Likewise.
	* gcc.target/arm/pr61948.c: Likewise.
	* gcc.target/arm/pr77933-1.c: Likewise.
	* gcc.target/arm/pr77933-2.c: Likewise.
	* gcc.target/arm/sibcall-1.c: Likewise.
	* gcc.target/arm/data-rel-2.c: Likewise.
	* gcc.target/arm/data-rel-3.c: Likewise.
	* gcc.target/arm/tail-long-call: Likewise.
	* gcc.target/arm/tlscall.c: Likewise.
	* gcc.target/arm/vfp-longcall-apcs: Likewise.
	* gcc.target/arm/ivopts-2.c: Skip object-size test on
	arm*-*-uclinuxfdpiceabi.
	* gcc.target/arm/ivopts-3.c: Likewise.
	* gcc.target/arm/ivopts-4.c: Likewise.
	* gcc.target/arm/ivopts-5.c: Likewise.
	* gcc.target/arm/pr43597.c: Likewise.
	* gcc.target/arm/pr43920-2.c: Likewise.
	* gcc.target/arm/pr45701-1.c: Skip scan-assembler on
	arm*-*-uclinuxfdpiceabi.
	* gcc.target/arm/pr45701-2.c: Likewise.
	* gcc.target/arm/stack-red-zone.c: Likewise.

Change-Id: Icada7ce52537901fdac10403e7997571b7e2c509

-- 
2.6.3

Comments

Kyrill Tkachov July 19, 2019, 8:51 a.m. | #1
Hi Christophe,

On 5/15/19 1:39 PM, Christophe Lyon wrote:
> Several tests cannot work on ARM-FDPIC for various reasons: skip them,

> or skip some directives.

>

> gcc.dg/20020312-2.c: Skip since it forces -fno-pic.

>

> gcc.target/arm/:

> * Skip since r9 is clobbered by assembly code:

>   20051215-1.c

>   mmx-1.c

>   pr61948.c

>   pr77933-1.c

>   pr77933-2.c

>

> * Skip since the test forces armv5te which is not supported by FDPIC:

>   pr40887.c

>   pr19599.c

>

> * Skip since FDPIC disables sibcall to external functions:

>   sibcall-1.c

>   tail-long-call

>   vfp-longcall-apcs

>

> * Skip size check since it's different for FDPIC:

>   ivopts-2.c

>   ivopts-3.c

>   ivopts-4.c

>   ivopts-5.c

>   pr43597.c

>   pr43920-2.c

>

> * Disable assembler scanning invalid for FDPIC:

>   pr45701-1.c

>   pr45701-2.c

>   stack-red-zone.c

>

> * gnu2 TLS dialect is not supported by FDPIC:

>   tlscall.c

>

> * Test relies on symbols not generated in FDPIC:

>   data-rel-2.c

>   data-rel-3.c

>


Thanks for the summary.

Ok once the rest is approved.

Kyrill


> 2019-XX-XX  Christophe Lyon  <christophe.lyon@st.com>

>         Mickaël Guêné <mickael.guene@st.com>

>

>         gcc/testsuite/

>         * gcc.dg/20020312-2.c: Skip on arm*-*-uclinuxfdpiceabi.

>         * gcc.target/arm/20051215-1.c: Likewise.

>         * gcc.target/arm/mmx-1.c: Likewise.

>         * gcc.target/arm/pr19599.c: Likewise.

>         * gcc.target/arm/pr40887.c: Likewise.

>         * gcc.target/arm/pr61948.c: Likewise.

>         * gcc.target/arm/pr77933-1.c: Likewise.

>         * gcc.target/arm/pr77933-2.c: Likewise.

>         * gcc.target/arm/sibcall-1.c: Likewise.

>         * gcc.target/arm/data-rel-2.c: Likewise.

>         * gcc.target/arm/data-rel-3.c: Likewise.

>         * gcc.target/arm/tail-long-call: Likewise.

>         * gcc.target/arm/tlscall.c: Likewise.

>         * gcc.target/arm/vfp-longcall-apcs: Likewise.

>         * gcc.target/arm/ivopts-2.c: Skip object-size test on

>         arm*-*-uclinuxfdpiceabi.

>         * gcc.target/arm/ivopts-3.c: Likewise.

>         * gcc.target/arm/ivopts-4.c: Likewise.

>         * gcc.target/arm/ivopts-5.c: Likewise.

>         * gcc.target/arm/pr43597.c: Likewise.

>         * gcc.target/arm/pr43920-2.c: Likewise.

>         * gcc.target/arm/pr45701-1.c: Skip scan-assembler on

>         arm*-*-uclinuxfdpiceabi.

>         * gcc.target/arm/pr45701-2.c: Likewise.

>         * gcc.target/arm/stack-red-zone.c: Likewise.

>

> Change-Id: Icada7ce52537901fdac10403e7997571b7e2c509

>

> diff --git a/gcc/testsuite/gcc.dg/20020312-2.c 

> b/gcc/testsuite/gcc.dg/20020312-2.c

> index c584d35..3df99d9 100644

> --- a/gcc/testsuite/gcc.dg/20020312-2.c

> +++ b/gcc/testsuite/gcc.dg/20020312-2.c

> @@ -9,6 +9,7 @@

>  /* { dg-options "-O -fno-pic" } */

>  /* { dg-additional-options "-no-pie" { target pie_enabled } } */

>  /* { dg-require-effective-target nonlocal_goto } */

> +/* { dg-skip-if "" { arm*-*-uclinuxfdpiceabi } "*" "" } */

>

>  extern void abort (void);

>

> diff --git a/gcc/testsuite/gcc.target/arm/20051215-1.c 

> b/gcc/testsuite/gcc.target/arm/20051215-1.c

> index 0519dc7..cc07693 100644

> --- a/gcc/testsuite/gcc.target/arm/20051215-1.c

> +++ b/gcc/testsuite/gcc.target/arm/20051215-1.c

> @@ -3,6 +3,7 @@

>     the call would need an output reload.  */

>  /* { dg-do run } */

>  /* { dg-options "-O2 -fno-omit-frame-pointer" } */

> +/* { dg-skip-if "r9 is reserved in FDPIC" { arm*-*-uclinuxfdpiceabi } 

> "*" "" } */

>  extern void abort (void);

>  typedef void (*callback) (void);

>

> diff --git a/gcc/testsuite/gcc.target/arm/data-rel-2.c 

> b/gcc/testsuite/gcc.target/arm/data-rel-2.c

> index 6ba47d6..7d37a8c 100644

> --- a/gcc/testsuite/gcc.target/arm/data-rel-2.c

> +++ b/gcc/testsuite/gcc.target/arm/data-rel-2.c

> @@ -1,3 +1,4 @@

> +/* { dg-skip-if "Not supported in FDPIC" { arm*-*-uclinuxfdpiceabi } 

> "*" "" } */

>  /* { dg-options "-fPIC -mno-pic-data-is-text-relative 

> -mno-single-pic-base" } */

>  /* { dg-final { scan-assembler-not "j-\\(.LPIC"  } } */

>  /* { dg-final { scan-assembler "_GLOBAL_OFFSET_TABLE_-\\(.LPIC" } } */

> diff --git a/gcc/testsuite/gcc.target/arm/data-rel-3.c 

> b/gcc/testsuite/gcc.target/arm/data-rel-3.c

> index 2ce1e66..534c6c4 100644

> --- a/gcc/testsuite/gcc.target/arm/data-rel-3.c

> +++ b/gcc/testsuite/gcc.target/arm/data-rel-3.c

> @@ -1,3 +1,4 @@

> +/* { dg-skip-if "Not supported in FDPIC" { arm*-*-uclinuxfdpiceabi } 

> "*" "" } */

>  /* { dg-options "-fPIC -mpic-data-is-text-relative" } */

>  /* { dg-final { scan-assembler "j-\\(.LPIC"  } } */

>  /* { dg-final { scan-assembler-not "_GLOBAL_OFFSET_TABLE_-\\(.LPIC" } 

> } */

> diff --git a/gcc/testsuite/gcc.target/arm/ivopts-2.c 

> b/gcc/testsuite/gcc.target/arm/ivopts-2.c

> index afe91aa..f1d5edb 100644

> --- a/gcc/testsuite/gcc.target/arm/ivopts-2.c

> +++ b/gcc/testsuite/gcc.target/arm/ivopts-2.c

> @@ -14,4 +14,4 @@ tr4 (short array[], int n)

>

>  /* { dg-final { scan-tree-dump-times "PHI <ivtmp" 1 "ivopts"} } */

>  /* { dg-final { scan-tree-dump-times "PHI <" 1 "ivopts"} } */

> -/* { dg-final { object-size text <= 26 { target arm_thumb2 } } } */

> +/* { dg-final { object-size text <= 26 { target { arm_thumb2 && { ! 

> arm*-*-uclinuxfdpiceabi } } } } } */

> diff --git a/gcc/testsuite/gcc.target/arm/ivopts-3.c 

> b/gcc/testsuite/gcc.target/arm/ivopts-3.c

> index faea996..357350c 100644

> --- a/gcc/testsuite/gcc.target/arm/ivopts-3.c

> +++ b/gcc/testsuite/gcc.target/arm/ivopts-3.c

> @@ -16,4 +16,4 @@ tr3 (short array[], unsigned int n)

>  /* { dg-final { scan-tree-dump-times "PHI <ivtmp" 1 "ivopts"} } */

>  /* { dg-final { scan-tree-dump-times "PHI <x" 0 "ivopts"} } */

>  /* { dg-final { scan-tree-dump-times ", x" 0 "ivopts"} } */

> -/* { dg-final { object-size text <= 30 { target arm_thumb2 } } } */

> +/* { dg-final { object-size text <= 30 { target { arm_thumb2 && { ! 

> arm*-*-uclinuxfdpiceabi } } } } } */

> diff --git a/gcc/testsuite/gcc.target/arm/ivopts-4.c 

> b/gcc/testsuite/gcc.target/arm/ivopts-4.c

> index b8101cb..2e866c0 100644

> --- a/gcc/testsuite/gcc.target/arm/ivopts-4.c

> +++ b/gcc/testsuite/gcc.target/arm/ivopts-4.c

> @@ -17,4 +17,4 @@ tr2 (int array[], int n)

>  /* { dg-final { scan-tree-dump-times "PHI <ivtmp" 1 "ivopts"} } */

>  /* { dg-final { scan-tree-dump-times "PHI <x" 0 "ivopts"} } */

>  /* { dg-final { scan-tree-dump-times ", x" 0 "ivopts"} } */

> -/* { dg-final { object-size text <= 36 { target arm_thumb2 } } } */

> +/* { dg-final { object-size text <= 36 { target { arm_thumb2 && { ! 

> arm*-*-uclinuxfdpiceabi } } } } } */

> diff --git a/gcc/testsuite/gcc.target/arm/ivopts-5.c 

> b/gcc/testsuite/gcc.target/arm/ivopts-5.c

> index f4f8c2c..4e8e380 100644

> --- a/gcc/testsuite/gcc.target/arm/ivopts-5.c

> +++ b/gcc/testsuite/gcc.target/arm/ivopts-5.c

> @@ -16,4 +16,4 @@ tr1 (int array[], unsigned int n)

>  /* { dg-final { scan-tree-dump-times "PHI <ivtmp" 1 "ivopts"} } */

>  /* { dg-final { scan-tree-dump-times "PHI <x" 0 "ivopts"} } */

>  /* { dg-final { scan-tree-dump-times ", x" 0 "ivopts"} } */

> -/* { dg-final { object-size text <= 30 { target arm_thumb2 } } } */

> +/* { dg-final { object-size text <= 30 { target { arm_thumb2 && { ! 

> arm*-*-uclinuxfdpiceabi } } } } } */

> diff --git a/gcc/testsuite/gcc.target/arm/mmx-1.c 

> b/gcc/testsuite/gcc.target/arm/mmx-1.c

> index 6317cc0..8060dbd 100644

> --- a/gcc/testsuite/gcc.target/arm/mmx-1.c

> +++ b/gcc/testsuite/gcc.target/arm/mmx-1.c

> @@ -9,6 +9,7 @@

>  /* { dg-require-effective-target arm32 } */

>  /* { dg-require-effective-target arm_iwmmxt_ok } */

>  /* { dg-final { scan-assembler "push.*ip,\[ ]*pc" } } */

> +/* { dg-skip-if "r9 is reserved in FDPIC" { arm*-*-uclinuxfdpiceabi } 

> "*" "" } */

>

>  /* This function uses all the call-saved registers, namely r4, r5, r6,

>     r7, r8, r9, sl, fp.  Since we also save lr, that leaves an odd

> diff --git a/gcc/testsuite/gcc.target/arm/pr19599.c 

> b/gcc/testsuite/gcc.target/arm/pr19599.c

> index c3ee220..a536548 100644

> --- a/gcc/testsuite/gcc.target/arm/pr19599.c

> +++ b/gcc/testsuite/gcc.target/arm/pr19599.c

> @@ -1,4 +1,5 @@

>  /* { dg-skip-if "need at least armv5te" { *-*-* } { 

> "-march=armv[234]*" "-mthumb" } { "" } } */

> +/* { dg-skip-if "FDPIC does not support armv5te" { 

> arm*-*-uclinuxfdpiceabi } "*" "" } */

>  /* { dg-options "-O2 -march=armv5te -marm" }  */

>  /* { dg-final { scan-assembler "bx" } } */

>

> diff --git a/gcc/testsuite/gcc.target/arm/pr40887.c 

> b/gcc/testsuite/gcc.target/arm/pr40887.c

> index 8c91cd9..832f676 100644

> --- a/gcc/testsuite/gcc.target/arm/pr40887.c

> +++ b/gcc/testsuite/gcc.target/arm/pr40887.c

> @@ -1,5 +1,6 @@

>  /* { dg-do compile } */

>  /* { dg-skip-if "need at least armv5" { *-*-* } { "-march=armv[234]*" 

> } { "" } } */

> +/* { dg-skip-if "FDPIC does not support armv5te" { 

> arm*-*-uclinuxfdpiceabi } "*" "" } */

>  /* { dg-require-effective-target arm_arch_v5te_ok } */

>  /* { dg-options "-O2" }  */

>  /* { dg-add-options arm_arch_v5te } */

> diff --git a/gcc/testsuite/gcc.target/arm/pr43597.c 

> b/gcc/testsuite/gcc.target/arm/pr43597.c

> index 3fdea98..6c9d419 100644

> --- a/gcc/testsuite/gcc.target/arm/pr43597.c

> +++ b/gcc/testsuite/gcc.target/arm/pr43597.c

> @@ -24,4 +24,4 @@ foo4 ()

>

>  /* { dg-final { scan-assembler-times "sub" 1 } } */

>  /* { dg-final { scan-assembler-times "cmp" 0 } } */

> -/* { dg-final { object-size text <= 30 } } */

> +/* { dg-final { object-size text <= 30 { target { ! 

> arm*-*-uclinuxfdpiceabi } } } } */

> diff --git a/gcc/testsuite/gcc.target/arm/pr43920-2.c 

> b/gcc/testsuite/gcc.target/arm/pr43920-2.c

> index f5e8f48..c367d6b 100644

> --- a/gcc/testsuite/gcc.target/arm/pr43920-2.c

> +++ b/gcc/testsuite/gcc.target/arm/pr43920-2.c

> @@ -29,4 +29,4 @@ int getFileStartAndLength (int fd, int *start_, 

> size_t *length_)

>

>  /* { dg-final { scan-assembler-times "pop" 2 } } */

>  /* { dg-final { scan-assembler-times "beq" 3 } } */

> -/* { dg-final { object-size text <= 54 } } */

> +/* { dg-final { object-size text <= 54 { target { ! 

> arm*-*-uclinuxfdpiceabi } } } } */

> diff --git a/gcc/testsuite/gcc.target/arm/pr45701-1.c 

> b/gcc/testsuite/gcc.target/arm/pr45701-1.c

> index 01db15a..b26011b 100644

> --- a/gcc/testsuite/gcc.target/arm/pr45701-1.c

> +++ b/gcc/testsuite/gcc.target/arm/pr45701-1.c

> @@ -1,8 +1,8 @@

>  /* { dg-do compile } */

>  /* { dg-skip-if "" { ! { arm_thumb1_ok || arm_thumb2_ok } } } */

>  /* { dg-options "-mthumb -Os" }  */

> -/* { dg-final { scan-assembler "push\t\{r3" } } */

> -/* { dg-final { scan-assembler-not "\[^\-\]r8" } } */

> +/* { dg-final { scan-assembler "push\t\{r3" { target { ! 

> arm*-*-uclinuxfdpiceabi } } } } */

> +/* { dg-final { scan-assembler-not "\[^\-\]r8" { target { ! 

> arm*-*-uclinuxfdpiceabi } } } } */

>

>  extern int hist_verify;

>  extern int a1;

> diff --git a/gcc/testsuite/gcc.target/arm/pr45701-2.c 

> b/gcc/testsuite/gcc.target/arm/pr45701-2.c

> index ce66d75..32eed4d 100644

> --- a/gcc/testsuite/gcc.target/arm/pr45701-2.c

> +++ b/gcc/testsuite/gcc.target/arm/pr45701-2.c

> @@ -1,8 +1,8 @@

>  /* { dg-do compile } */

>  /* { dg-skip-if "" { ! { arm_thumb1_ok || arm_thumb2_ok } } } */

>  /* { dg-options "-mthumb -Os" }  */

> -/* { dg-final { scan-assembler "push\t\{r3" } } */

> -/* { dg-final { scan-assembler-not "\[^\-\]r8" } } */

> +/* { dg-final { scan-assembler "push\t\{r3" { target { ! 

> arm*-*-uclinuxfdpiceabi } } } } */

> +/* { dg-final { scan-assembler-not "\[^\-\]r8" { target { ! 

> arm*-*-uclinuxfdpiceabi } } } } */

>

>  extern int hist_verify;

>  extern int a1;

> diff --git a/gcc/testsuite/gcc.target/arm/pr61948.c 

> b/gcc/testsuite/gcc.target/arm/pr61948.c

> index 411e898..3b2b72a 100644

> --- a/gcc/testsuite/gcc.target/arm/pr61948.c

> +++ b/gcc/testsuite/gcc.target/arm/pr61948.c

> @@ -1,5 +1,6 @@

>  /* PR target/61948 */

>  /* { dg-do compile } */

> +/* { dg-skip-if "r9 is reserved in FDPIC" { arm*-*-uclinuxfdpiceabi } 

> "*" "" } */

>  /* { dg-require-effective-target arm_neon_ok } */

>  /* { dg-require-effective-target arm_thumb2_ok } */

>  /* { dg-options "-O2 -mthumb" } */

> diff --git a/gcc/testsuite/gcc.target/arm/pr77933-1.c 

> b/gcc/testsuite/gcc.target/arm/pr77933-1.c

> index 95cf68e..86b9507 100644

> --- a/gcc/testsuite/gcc.target/arm/pr77933-1.c

> +++ b/gcc/testsuite/gcc.target/arm/pr77933-1.c

> @@ -1,4 +1,5 @@

>  /* { dg-do run } */

> +/* { dg-skip-if "r9 is reserved in FDPIC" { arm*-*-uclinuxfdpiceabi } 

> "*" "" } */

>  /* { dg-options "-O2" } */

>

>  __attribute__ ((noinline, noclone)) void

> diff --git a/gcc/testsuite/gcc.target/arm/pr77933-2.c 

> b/gcc/testsuite/gcc.target/arm/pr77933-2.c

> index 9028c4f..a06c11a 100644

> --- a/gcc/testsuite/gcc.target/arm/pr77933-2.c

> +++ b/gcc/testsuite/gcc.target/arm/pr77933-2.c

> @@ -1,5 +1,6 @@

>  /* { dg-do run } */

>  /* { dg-skip-if "" { ! { arm_thumb1_ok || arm_thumb2_ok } } } */

> +/* { dg-skip-if "r9 is reserved in FDPIC" { arm*-*-uclinuxfdpiceabi } 

> "*" "" } */

>  /* { dg-options "-mthumb -O2 -mtpcs-leaf-frame" } */

>

>  __attribute__ ((noinline, noclone)) void

> diff --git a/gcc/testsuite/gcc.target/arm/sibcall-1.c 

> b/gcc/testsuite/gcc.target/arm/sibcall-1.c

> index cf352c1..dcdd552 100644

> --- a/gcc/testsuite/gcc.target/arm/sibcall-1.c

> +++ b/gcc/testsuite/gcc.target/arm/sibcall-1.c

> @@ -1,5 +1,6 @@

>  /* { dg-do compile { target { arm32 } } } */

>  /* { dg-options "-O2" } */

> +/* { dg-skip-if "FDPIC does not support sibcall optimization" { 

> arm*-*-uclinuxfdpiceabi } "*" "" } */

>

>  #define noinline __attribute__((noinline))

>

> diff --git a/gcc/testsuite/gcc.target/arm/stack-red-zone.c 

> b/gcc/testsuite/gcc.target/arm/stack-red-zone.c

> index b29ed0b..3385d7d 100644

> --- a/gcc/testsuite/gcc.target/arm/stack-red-zone.c

> +++ b/gcc/testsuite/gcc.target/arm/stack-red-zone.c

> @@ -1,7 +1,7 @@

>  /* No stack red zone.  PR38644.  */

>  /* { dg-skip-if "incompatible options" { ! { arm_thumb1_ok || 

> arm_thumb2_ok } } } */

>  /* { dg-options "-mthumb -O2" } */

> -/* { dg-final { scan-assembler "ldrb\[^\n\]*\\n\[\t \]*add\[\t \]*sp" 

> } } */

> +/* { dg-final { scan-assembler "ldrb\[^\n\]*\\n\[\t \]*add\[\t \]*sp" 

> { target { ! arm*-*-uclinuxfdpiceabi } } } } */

>

>  extern int doStreamReadBlock (int *, char *, int size, int);

>

> diff --git a/gcc/testsuite/gcc.target/arm/tail-long-call.c 

> b/gcc/testsuite/gcc.target/arm/tail-long-call.c

> index 9b27468..f70e9cf 100644

> --- a/gcc/testsuite/gcc.target/arm/tail-long-call.c

> +++ b/gcc/testsuite/gcc.target/arm/tail-long-call.c

> @@ -1,4 +1,5 @@

>  /* { dg-skip-if "need at least armv5te" { *-*-* } { 

> "-march=armv[234]*" "-mthumb" } { "" } } */

> +/* { dg-skip-if "FDPIC does not support tailcall optimization" { 

> arm*-*-uclinuxfdpiceabi } "*" "" } */

>  /* { dg-options "-O2 -march=armv5te -marm" } */

>  /* { dg-final { scan-assembler "bx" } } */

>  /* { dg-final { scan-assembler-not "blx" } } */

> diff --git a/gcc/testsuite/gcc.target/arm/tlscall.c 

> b/gcc/testsuite/gcc.target/arm/tlscall.c

> index 366c1ae..5f4d58b 100644

> --- a/gcc/testsuite/gcc.target/arm/tlscall.c

> +++ b/gcc/testsuite/gcc.target/arm/tlscall.c

> @@ -2,6 +2,7 @@

>

>  /* { dg-do assemble } */

>  /* { dg-options "-O2 -fPIC -mtls-dialect=gnu2" } */

> +/* { dg-skip-if "FDPIC does not support gnu2 TLS dialect" { 

> arm*-*-uclinuxfdpiceabi } "*" "" } */

>

>  typedef struct _IO_FILE FILE;

>

> diff --git a/gcc/testsuite/gcc.target/arm/vfp-longcall-apcs.c 

> b/gcc/testsuite/gcc.target/arm/vfp-longcall-apcs.c

> index fa22b4d..817d5d0 100644

> --- a/gcc/testsuite/gcc.target/arm/vfp-longcall-apcs.c

> +++ b/gcc/testsuite/gcc.target/arm/vfp-longcall-apcs.c

> @@ -1,4 +1,5 @@

>  /* { dg-do run } */

> +/* { dg-skip-if "FDPIC does not support sibcall optimization" { 

> arm*-*-uclinuxfdpiceabi } "*" "" } */

>  /* { dg-options "-mapcs-frame -O -foptimize-sibling-calls 

> -ffunction-sections" } */

>

>  extern void abort (void);

> -- 

> 2.6.3

>

Patch

diff --git a/gcc/testsuite/gcc.dg/20020312-2.c b/gcc/testsuite/gcc.dg/20020312-2.c
index c584d35..3df99d9 100644
--- a/gcc/testsuite/gcc.dg/20020312-2.c
+++ b/gcc/testsuite/gcc.dg/20020312-2.c
@@ -9,6 +9,7 @@ 
 /* { dg-options "-O -fno-pic" } */
 /* { dg-additional-options "-no-pie" { target pie_enabled } } */
 /* { dg-require-effective-target nonlocal_goto } */
+/* { dg-skip-if "" { arm*-*-uclinuxfdpiceabi } "*" "" } */
 
 extern void abort (void);
 
diff --git a/gcc/testsuite/gcc.target/arm/20051215-1.c b/gcc/testsuite/gcc.target/arm/20051215-1.c
index 0519dc7..cc07693 100644
--- a/gcc/testsuite/gcc.target/arm/20051215-1.c
+++ b/gcc/testsuite/gcc.target/arm/20051215-1.c
@@ -3,6 +3,7 @@ 
    the call would need an output reload.  */
 /* { dg-do run } */
 /* { dg-options "-O2 -fno-omit-frame-pointer" } */
+/* { dg-skip-if "r9 is reserved in FDPIC" { arm*-*-uclinuxfdpiceabi } "*" "" } */
 extern void abort (void);
 typedef void (*callback) (void);
 
diff --git a/gcc/testsuite/gcc.target/arm/data-rel-2.c b/gcc/testsuite/gcc.target/arm/data-rel-2.c
index 6ba47d6..7d37a8c 100644
--- a/gcc/testsuite/gcc.target/arm/data-rel-2.c
+++ b/gcc/testsuite/gcc.target/arm/data-rel-2.c
@@ -1,3 +1,4 @@ 
+/* { dg-skip-if "Not supported in FDPIC" { arm*-*-uclinuxfdpiceabi } "*" "" } */
 /* { dg-options "-fPIC -mno-pic-data-is-text-relative -mno-single-pic-base" } */
 /* { dg-final { scan-assembler-not "j-\\(.LPIC"  } } */
 /* { dg-final { scan-assembler "_GLOBAL_OFFSET_TABLE_-\\(.LPIC" } } */
diff --git a/gcc/testsuite/gcc.target/arm/data-rel-3.c b/gcc/testsuite/gcc.target/arm/data-rel-3.c
index 2ce1e66..534c6c4 100644
--- a/gcc/testsuite/gcc.target/arm/data-rel-3.c
+++ b/gcc/testsuite/gcc.target/arm/data-rel-3.c
@@ -1,3 +1,4 @@ 
+/* { dg-skip-if "Not supported in FDPIC" { arm*-*-uclinuxfdpiceabi } "*" "" } */
 /* { dg-options "-fPIC -mpic-data-is-text-relative" } */
 /* { dg-final { scan-assembler "j-\\(.LPIC"  } } */
 /* { dg-final { scan-assembler-not "_GLOBAL_OFFSET_TABLE_-\\(.LPIC" } } */
diff --git a/gcc/testsuite/gcc.target/arm/ivopts-2.c b/gcc/testsuite/gcc.target/arm/ivopts-2.c
index afe91aa..f1d5edb 100644
--- a/gcc/testsuite/gcc.target/arm/ivopts-2.c
+++ b/gcc/testsuite/gcc.target/arm/ivopts-2.c
@@ -14,4 +14,4 @@  tr4 (short array[], int n)
 
 /* { dg-final { scan-tree-dump-times "PHI <ivtmp" 1 "ivopts"} } */
 /* { dg-final { scan-tree-dump-times "PHI <" 1 "ivopts"} } */
-/* { dg-final { object-size text <= 26 { target arm_thumb2 } } } */
+/* { dg-final { object-size text <= 26 { target { arm_thumb2 && { ! arm*-*-uclinuxfdpiceabi } } } } } */
diff --git a/gcc/testsuite/gcc.target/arm/ivopts-3.c b/gcc/testsuite/gcc.target/arm/ivopts-3.c
index faea996..357350c 100644
--- a/gcc/testsuite/gcc.target/arm/ivopts-3.c
+++ b/gcc/testsuite/gcc.target/arm/ivopts-3.c
@@ -16,4 +16,4 @@  tr3 (short array[], unsigned int n)
 /* { dg-final { scan-tree-dump-times "PHI <ivtmp" 1 "ivopts"} } */
 /* { dg-final { scan-tree-dump-times "PHI <x" 0 "ivopts"} } */
 /* { dg-final { scan-tree-dump-times ", x" 0 "ivopts"} } */
-/* { dg-final { object-size text <= 30 { target arm_thumb2 } } } */
+/* { dg-final { object-size text <= 30 { target { arm_thumb2 && { ! arm*-*-uclinuxfdpiceabi } } } } } */
diff --git a/gcc/testsuite/gcc.target/arm/ivopts-4.c b/gcc/testsuite/gcc.target/arm/ivopts-4.c
index b8101cb..2e866c0 100644
--- a/gcc/testsuite/gcc.target/arm/ivopts-4.c
+++ b/gcc/testsuite/gcc.target/arm/ivopts-4.c
@@ -17,4 +17,4 @@  tr2 (int array[], int n)
 /* { dg-final { scan-tree-dump-times "PHI <ivtmp" 1 "ivopts"} } */
 /* { dg-final { scan-tree-dump-times "PHI <x" 0 "ivopts"} } */
 /* { dg-final { scan-tree-dump-times ", x" 0 "ivopts"} } */
-/* { dg-final { object-size text <= 36 { target arm_thumb2 } } } */
+/* { dg-final { object-size text <= 36 { target { arm_thumb2 && { ! arm*-*-uclinuxfdpiceabi } } } } } */
diff --git a/gcc/testsuite/gcc.target/arm/ivopts-5.c b/gcc/testsuite/gcc.target/arm/ivopts-5.c
index f4f8c2c..4e8e380 100644
--- a/gcc/testsuite/gcc.target/arm/ivopts-5.c
+++ b/gcc/testsuite/gcc.target/arm/ivopts-5.c
@@ -16,4 +16,4 @@  tr1 (int array[], unsigned int n)
 /* { dg-final { scan-tree-dump-times "PHI <ivtmp" 1 "ivopts"} } */
 /* { dg-final { scan-tree-dump-times "PHI <x" 0 "ivopts"} } */
 /* { dg-final { scan-tree-dump-times ", x" 0 "ivopts"} } */
-/* { dg-final { object-size text <= 30 { target arm_thumb2 } } } */
+/* { dg-final { object-size text <= 30 { target { arm_thumb2 && { ! arm*-*-uclinuxfdpiceabi } } } } } */
diff --git a/gcc/testsuite/gcc.target/arm/mmx-1.c b/gcc/testsuite/gcc.target/arm/mmx-1.c
index 6317cc0..8060dbd 100644
--- a/gcc/testsuite/gcc.target/arm/mmx-1.c
+++ b/gcc/testsuite/gcc.target/arm/mmx-1.c
@@ -9,6 +9,7 @@ 
 /* { dg-require-effective-target arm32 } */
 /* { dg-require-effective-target arm_iwmmxt_ok } */
 /* { dg-final { scan-assembler "push.*ip,\[ ]*pc" } } */
+/* { dg-skip-if "r9 is reserved in FDPIC" { arm*-*-uclinuxfdpiceabi } "*" "" } */
 
 /* This function uses all the call-saved registers, namely r4, r5, r6,
    r7, r8, r9, sl, fp.  Since we also save lr, that leaves an odd
diff --git a/gcc/testsuite/gcc.target/arm/pr19599.c b/gcc/testsuite/gcc.target/arm/pr19599.c
index c3ee220..a536548 100644
--- a/gcc/testsuite/gcc.target/arm/pr19599.c
+++ b/gcc/testsuite/gcc.target/arm/pr19599.c
@@ -1,4 +1,5 @@ 
 /* { dg-skip-if "need at least armv5te" { *-*-* } { "-march=armv[234]*" "-mthumb" } { "" } } */
+/* { dg-skip-if "FDPIC does not support armv5te" { arm*-*-uclinuxfdpiceabi } "*" "" } */
 /* { dg-options "-O2 -march=armv5te -marm" }  */
 /* { dg-final { scan-assembler "bx" } } */
 
diff --git a/gcc/testsuite/gcc.target/arm/pr40887.c b/gcc/testsuite/gcc.target/arm/pr40887.c
index 8c91cd9..832f676 100644
--- a/gcc/testsuite/gcc.target/arm/pr40887.c
+++ b/gcc/testsuite/gcc.target/arm/pr40887.c
@@ -1,5 +1,6 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "need at least armv5" { *-*-* } { "-march=armv[234]*" } { "" } } */
+/* { dg-skip-if "FDPIC does not support armv5te" { arm*-*-uclinuxfdpiceabi } "*" "" } */
 /* { dg-require-effective-target arm_arch_v5te_ok } */
 /* { dg-options "-O2" }  */
 /* { dg-add-options arm_arch_v5te } */
diff --git a/gcc/testsuite/gcc.target/arm/pr43597.c b/gcc/testsuite/gcc.target/arm/pr43597.c
index 3fdea98..6c9d419 100644
--- a/gcc/testsuite/gcc.target/arm/pr43597.c
+++ b/gcc/testsuite/gcc.target/arm/pr43597.c
@@ -24,4 +24,4 @@  foo4 ()
 
 /* { dg-final { scan-assembler-times "sub" 1 } } */
 /* { dg-final { scan-assembler-times "cmp" 0 } } */
-/* { dg-final { object-size text <= 30 } } */
+/* { dg-final { object-size text <= 30 { target { ! arm*-*-uclinuxfdpiceabi } } } } */
diff --git a/gcc/testsuite/gcc.target/arm/pr43920-2.c b/gcc/testsuite/gcc.target/arm/pr43920-2.c
index f5e8f48..c367d6b 100644
--- a/gcc/testsuite/gcc.target/arm/pr43920-2.c
+++ b/gcc/testsuite/gcc.target/arm/pr43920-2.c
@@ -29,4 +29,4 @@  int getFileStartAndLength (int fd, int *start_, size_t *length_)
 
 /* { dg-final { scan-assembler-times "pop" 2 } } */
 /* { dg-final { scan-assembler-times "beq" 3 } } */
-/* { dg-final { object-size text <= 54 } } */
+/* { dg-final { object-size text <= 54 { target { ! arm*-*-uclinuxfdpiceabi } } } } */
diff --git a/gcc/testsuite/gcc.target/arm/pr45701-1.c b/gcc/testsuite/gcc.target/arm/pr45701-1.c
index 01db15a..b26011b 100644
--- a/gcc/testsuite/gcc.target/arm/pr45701-1.c
+++ b/gcc/testsuite/gcc.target/arm/pr45701-1.c
@@ -1,8 +1,8 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "" { ! { arm_thumb1_ok || arm_thumb2_ok } } } */
 /* { dg-options "-mthumb -Os" }  */
-/* { dg-final { scan-assembler "push\t\{r3" } } */
-/* { dg-final { scan-assembler-not "\[^\-\]r8" } } */
+/* { dg-final { scan-assembler "push\t\{r3" { target { ! arm*-*-uclinuxfdpiceabi } } } } */
+/* { dg-final { scan-assembler-not "\[^\-\]r8" { target { ! arm*-*-uclinuxfdpiceabi } } } } */
 
 extern int hist_verify;
 extern int a1;
diff --git a/gcc/testsuite/gcc.target/arm/pr45701-2.c b/gcc/testsuite/gcc.target/arm/pr45701-2.c
index ce66d75..32eed4d 100644
--- a/gcc/testsuite/gcc.target/arm/pr45701-2.c
+++ b/gcc/testsuite/gcc.target/arm/pr45701-2.c
@@ -1,8 +1,8 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "" { ! { arm_thumb1_ok || arm_thumb2_ok } } } */
 /* { dg-options "-mthumb -Os" }  */
-/* { dg-final { scan-assembler "push\t\{r3" } } */
-/* { dg-final { scan-assembler-not "\[^\-\]r8" } } */
+/* { dg-final { scan-assembler "push\t\{r3" { target { ! arm*-*-uclinuxfdpiceabi } } } } */
+/* { dg-final { scan-assembler-not "\[^\-\]r8" { target { ! arm*-*-uclinuxfdpiceabi } } } } */
 
 extern int hist_verify;
 extern int a1;
diff --git a/gcc/testsuite/gcc.target/arm/pr61948.c b/gcc/testsuite/gcc.target/arm/pr61948.c
index 411e898..3b2b72a 100644
--- a/gcc/testsuite/gcc.target/arm/pr61948.c
+++ b/gcc/testsuite/gcc.target/arm/pr61948.c
@@ -1,5 +1,6 @@ 
 /* PR target/61948 */
 /* { dg-do compile } */
+/* { dg-skip-if "r9 is reserved in FDPIC" { arm*-*-uclinuxfdpiceabi } "*" "" } */
 /* { dg-require-effective-target arm_neon_ok } */
 /* { dg-require-effective-target arm_thumb2_ok } */
 /* { dg-options "-O2 -mthumb" } */
diff --git a/gcc/testsuite/gcc.target/arm/pr77933-1.c b/gcc/testsuite/gcc.target/arm/pr77933-1.c
index 95cf68e..86b9507 100644
--- a/gcc/testsuite/gcc.target/arm/pr77933-1.c
+++ b/gcc/testsuite/gcc.target/arm/pr77933-1.c
@@ -1,4 +1,5 @@ 
 /* { dg-do run } */
+/* { dg-skip-if "r9 is reserved in FDPIC" { arm*-*-uclinuxfdpiceabi } "*" "" } */
 /* { dg-options "-O2" } */
 
 __attribute__ ((noinline, noclone)) void
diff --git a/gcc/testsuite/gcc.target/arm/pr77933-2.c b/gcc/testsuite/gcc.target/arm/pr77933-2.c
index 9028c4f..a06c11a 100644
--- a/gcc/testsuite/gcc.target/arm/pr77933-2.c
+++ b/gcc/testsuite/gcc.target/arm/pr77933-2.c
@@ -1,5 +1,6 @@ 
 /* { dg-do run } */
 /* { dg-skip-if "" { ! { arm_thumb1_ok || arm_thumb2_ok } } } */
+/* { dg-skip-if "r9 is reserved in FDPIC" { arm*-*-uclinuxfdpiceabi } "*" "" } */
 /* { dg-options "-mthumb -O2 -mtpcs-leaf-frame" } */
 
 __attribute__ ((noinline, noclone)) void
diff --git a/gcc/testsuite/gcc.target/arm/sibcall-1.c b/gcc/testsuite/gcc.target/arm/sibcall-1.c
index cf352c1..dcdd552 100644
--- a/gcc/testsuite/gcc.target/arm/sibcall-1.c
+++ b/gcc/testsuite/gcc.target/arm/sibcall-1.c
@@ -1,5 +1,6 @@ 
 /* { dg-do compile { target { arm32 } } } */
 /* { dg-options "-O2" } */
+/* { dg-skip-if "FDPIC does not support sibcall optimization" { arm*-*-uclinuxfdpiceabi } "*" "" } */
 
 #define noinline __attribute__((noinline))
 
diff --git a/gcc/testsuite/gcc.target/arm/stack-red-zone.c b/gcc/testsuite/gcc.target/arm/stack-red-zone.c
index b29ed0b..3385d7d 100644
--- a/gcc/testsuite/gcc.target/arm/stack-red-zone.c
+++ b/gcc/testsuite/gcc.target/arm/stack-red-zone.c
@@ -1,7 +1,7 @@ 
 /* No stack red zone.  PR38644.  */
 /* { dg-skip-if "incompatible options" { ! { arm_thumb1_ok || arm_thumb2_ok } } } */
 /* { dg-options "-mthumb -O2" } */
-/* { dg-final { scan-assembler "ldrb\[^\n\]*\\n\[\t \]*add\[\t \]*sp" } } */
+/* { dg-final { scan-assembler "ldrb\[^\n\]*\\n\[\t \]*add\[\t \]*sp" { target { ! arm*-*-uclinuxfdpiceabi } } } } */
 
 extern int doStreamReadBlock (int *, char *, int size, int);
 
diff --git a/gcc/testsuite/gcc.target/arm/tail-long-call.c b/gcc/testsuite/gcc.target/arm/tail-long-call.c
index 9b27468..f70e9cf 100644
--- a/gcc/testsuite/gcc.target/arm/tail-long-call.c
+++ b/gcc/testsuite/gcc.target/arm/tail-long-call.c
@@ -1,4 +1,5 @@ 
 /* { dg-skip-if "need at least armv5te" { *-*-* } { "-march=armv[234]*" "-mthumb" } { "" } } */
+/* { dg-skip-if "FDPIC does not support tailcall optimization" { arm*-*-uclinuxfdpiceabi } "*" "" } */
 /* { dg-options "-O2 -march=armv5te -marm" } */
 /* { dg-final { scan-assembler "bx" } } */
 /* { dg-final { scan-assembler-not "blx" } } */
diff --git a/gcc/testsuite/gcc.target/arm/tlscall.c b/gcc/testsuite/gcc.target/arm/tlscall.c
index 366c1ae..5f4d58b 100644
--- a/gcc/testsuite/gcc.target/arm/tlscall.c
+++ b/gcc/testsuite/gcc.target/arm/tlscall.c
@@ -2,6 +2,7 @@ 
 
 /* { dg-do assemble } */
 /* { dg-options "-O2 -fPIC -mtls-dialect=gnu2" } */
+/* { dg-skip-if "FDPIC does not support gnu2 TLS dialect" { arm*-*-uclinuxfdpiceabi } "*" "" } */
 
 typedef struct _IO_FILE FILE;
 
diff --git a/gcc/testsuite/gcc.target/arm/vfp-longcall-apcs.c b/gcc/testsuite/gcc.target/arm/vfp-longcall-apcs.c
index fa22b4d..817d5d0 100644
--- a/gcc/testsuite/gcc.target/arm/vfp-longcall-apcs.c
+++ b/gcc/testsuite/gcc.target/arm/vfp-longcall-apcs.c
@@ -1,4 +1,5 @@ 
 /* { dg-do run } */
+/* { dg-skip-if "FDPIC does not support sibcall optimization" { arm*-*-uclinuxfdpiceabi } "*" "" } */
 /* { dg-options "-mapcs-frame -O -foptimize-sibling-calls -ffunction-sections" } */
 
 extern void abort (void);