[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