dg-skip-if on powerpc when multiple cpu cflags specified

Mark Mitchell mark@codesourcery.com
Mon Apr 28 19:05:00 GMT 2008


Joel Sherrill wrote:

>> 1. Make these tests say something about what capability they require,
>> with a dg-require directive, and then write autoconf-style tests run by
>> the testsuite to determine whether the current compiler has that
>> capability.  For example, add a "dg-require-hard-float" directive, and
>> probe the compiler to see whether it can generate hard float, given all
>> the options in play.

> That will not work on at least the *-rtems* configurations.
> We use one multilib'ed toolset configuration to support
> all variants within a family.   So for the PowerPC, we actually
> do have support for [4567]xx, [58]xxx,  etc.  m68k includes
> coldfire, etc.

There's no reason that we can't probe once per multilib.  There are 
already probes like that in the testsuite.  The autoconfy-ness just 
needs to be per-multilib.

> I think this would work.  If you ended up with compiler
> settings that didn't match what the test required, then
> it could exit.   How should it exit in this case?

Just by doing "return 0;" from "main".

> For the case we have been looking at, -mcpu=405 results
> in __PPC405__ being defined.  If you are writing a CPU model
> specific test, you should know what the macro generated is.
> 
> #if !defined(__PPC405__)
> XXX -- ?? what to do?
> #endif

Here:

#if !defined(__PPC405__)
int main() { return 0; }
#else
/* The real test goes here.  */
#endif

> Would this work on the scan tests which look for particular
> assembly instructions?

Probably not.  Though, I suppose:

#if !defined(__PPC405__)
asm("haha here is a 405 insn");
#else
/* The real test goes here.  */
#endif

might...

-- 
Mark Mitchell
CodeSourcery
mark@codesourcery.com
(650) 331-3385 x713



More information about the Gcc mailing list