[FFmpeg-devel] [PATCH] add cflags filtering rules for suncc

Michael Kostylev michael.kostylev
Sat Oct 31 20:47:55 CET 2009


On Sat Oct 31 15:14:31 2009
M?ns Rullg?rd wrote:

>>>> The -Os mapping may be ajusted/safely removed, -O2 is set just because 
>>>> the -O[3-5] options are currently unusable on x86.
>>> 
>>> Are you sure you attached the patch you're talking about there?  I see
>>> nothing about 3-5.
>>
>> Theoretically, `-O[3-5] -xspace' should work too, -xspace is an additional
>> flag, it is used to disable optimizations which increase code size.
>> Maybe `-O5 -xspace' works ok on sparc, I don't know.
> 
> The bugs should be tracked down and fixed or worked around.  Disabling
> optimisations is a bad idea (except for the gcc vectoriser, which will
> never be of any use).

I thought that O2 is better than nothing and slightly better than O1.
Currently, non-working O3 requires some hackery with the options like 
--disable-optimizations --extra-cflags='-O2 -xregs=frameptr' or
--enable-small --disable-optimizations --extra-cflags='-O2 -xspace -xregs=frameptr'

>>>> --- ./configure.orig
>>>> +++ ./configure
>>>> @@ -1613,6 +1618,17 @@
>>>>      cc_version="AV_STRINGIFY(__SUNPRO_C)"
>>>>      DEPEND_CMD='$(DEPCC) $(DEPFLAGS) $< | sed -e "1s,^.*: ,$@: ," -e "\$$!s,\$$, \\\\\\," -e "1!s,^.*: , ," > $(@:.o=.d)'
>>>>      DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -xM1'
>>>> +    filter_cflags=suncc_flags
>>>> +    suncc_flags(){
>>>> +        for flag; do
>>>> +            case $flag in
>>>> +                -std=c99)             echo -xc99           ;;
>>>> +                -fomit-frame-pointer) echo -xregs=frameptr ;;
>>>> +                -Os)                  echo -O2 -xspace     ;;
>>>> +                -O[1-5]|-g)           echo $flag           ;;
>>>> +            esac
>>>> +        done
>>>> +    }
>>>>  fi
>>>
>>> Do you realise that this will drop all other flags?
>>
>> I do. If you need more details:
>> almost all warning options are on by default;
>> it is not very easy to map -march and -mcpu, it can de done later.
> 
> What do the equivalent options look like?

-xarch=isa, simply the list of possible arguments differs.

>  What about other options?

Oh, it seems I see what you mean. A bad news for me is that extra cflags are
filtered too. Then I would suggest something like this:

   -std=c99)               echo -xc99                                     ;;
   -fomit-frame-pointer)   echo -xregs=frameptr                           ;;
   -fPIC)                  enabled x86 && echo -Kpic || echo -xcode=pic32 ;;
   -W*,*)                  echo $flag                                     ;;
   -Os)                    echo -O3 -xspace                               ;;
   -f*-*|-W*)                                                             ;;
   *)                      echo $flag                                     ;;
   
Maybe someone has a better idea about filtering? The actual man page is here:
http://developers.sun.com/sunstudio/documentation/ss12u1/mr/man/man1/cc.1.html

Michael



More information about the ffmpeg-devel mailing list