[FFmpeg-devel] [PATCH 1/9] configure: [loongson] revert no-expensive-optimizations

Shiyou Yin yinshiyou-hf at loongson.cn
Fri Aug 24 19:19:40 EEST 2018


rom: ffmpeg-devel-bounces at ffmpeg.org [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf Of
>Michael Niedermayer
>Sent: Thursday, August 23, 2018 3:27 AM
>To: FFmpeg development discussions and patches
>Subject: Re: [FFmpeg-devel] [PATCH 1/9] configure: [loongson] revert no-expensive-optimizations
>
>On Wed, Aug 22, 2018 at 06:11:15PM +0800, Shiyou Yin wrote:
>> >-----Original Message-----
>> >From: ffmpeg-devel-bounces at ffmpeg.org
>> >[mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf Of Michael
>> >Niedermayer
>> >Sent: Wednesday, August 22, 2018 6:04 AM
>> >To: FFmpeg development discussions and patches
>> >Subject: Re: [FFmpeg-devel] [PATCH 1/9] configure: [loongson] revert
>> >no-expensive-optimizations
>> >
>> >On Tue, Aug 21, 2018 at 04:06:05PM +0800, Shiyou Yin wrote:
>> >> >-----Original Message-----
>> >> >From: ffmpeg-devel-bounces at ffmpeg.org
>> >> >[mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf Of Shiyou Yin
>> >> >Sent: Thursday, July 12, 2018 8:44 PM
>> >> >To: ffmpeg-devel at ffmpeg.org
>> >> >Subject: [FFmpeg-devel] [PATCH 1/9] configure: [loongson] revert
>> >> >no-expensive-optimizations
>> >> >
>> >> >The bug in  gcc-4.9.x has been fixed in gcc master branch.
>> >> >Loongson released gcc-4.9.3-3.fc21.loongson with this patch.
>> >> >More bug info see:
>> >> >https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67736
>> >> >https://gcc.gnu.org/ml/gcc-patches/2012-05/msg00401.html
>> >> >
>> >> >Change-Id: I780125d4cdee71d40457aaee22126ba0547a2c8f
>> >> >Signed-off-by: Shiyou Yin <yinshiyou-hf at loongson.cn>
>> >> >---
>> >> > configure | 6 +++---
>> >> > 1 file changed, 3 insertions(+), 3 deletions(-)
>> >> >
>> >> >diff --git a/configure b/configure index b1a4dcf..17a7ea9 100755
>> >> >--- a/configure
>> >> >+++ b/configure
>> >> >@@ -4789,13 +4789,13 @@ elif enabled mips; then
>> >> >                 disable mipsdspr2
>> >> >                 case $cpu in
>> >> >                     loongson3*)
>> >> >-                        cpuflags="-march=loongson3a -mhard-float
>> >-fno-expensive-optimizations"
>> >> >+                        cpuflags="-march=loongson3a -mhard-float"
>> >> >                     ;;
>> >> >                     loongson2e)
>> >> >-                        cpuflags="-march=loongson2e -mhard-float
>> >-fno-expensive-optimizations"
>> >> >+                        cpuflags="-march=loongson2e -mhard-float"
>> >> >                     ;;
>> >> >                     loongson2f)
>> >> >-                        cpuflags="-march=loongson2f -mhard-float
>> >-fno-expensive-optimizations"
>> >> >+                        cpuflags="-march=loongson2f -mhard-float"
>> >> >                     ;;
>> >> >                 esac
>> >> >             ;;
>> >> >--
>> >> >2.1.0
>> >> >
>> >>
>> >> Hi Michael, could you please help to apply this patch. It has been tested on loongson
platform.
>> >
>> >shouldnt this test the compiler the user uses ? its version or something ?
>> >
>> Thank you very much for your review. Be strictly, it's needed to check
>> the compiler version which user uses.
>> Consider that this bug has been fixed about three years and the
>> compiler has been upgraded a lot of times in loongson yum repository.
>> At present, there are still only a few developers will build ffmpeg on
>> loongson platform. The risk of his change is controllable.
>> So, between the simplicity and absolute reliability of the code I chosed the simplicity this
time.
>> Should I still add version check here?
>
>I think there should maybe be a check for the minimum gcc version supported then to ensure that no
too
>old version is used. If you do not want to add teh flag for specific versions The effect of the bug
was IIRC
>not trivial to connect to the gcc version so it could leave a developer quite lost and confused
what is
>causing it
>

Hi Michael, please help to review the following updates.


diff --git a/configure b/configure
index b9c9d0b..08cf48e 100755
--- a/configure
+++ b/configure
@@ -4796,15 +4796,24 @@ elif enabled mips; then
                 disable mipsfpu
                 disable mipsdsp
                 disable mipsdspr2
+                # When gcc version less than 5.3.0, add -fno-expensive-optimizations flag.
+                if [ $cc == gcc ]; then
+                    gcc_version=$(gcc -dumpversion)
+                    if [ "$(echo "$gcc_version 5.3.0" | tr " " "\n" | sort -rV | head -n 1)" ==
"$gcc_version" ]; then
+                        expensive_optimization_flag=""
+                    else
+                        expensive_optimization_flag="-fno-expensive-optimizations"
+                    fi
+                fi
                 case $cpu in
                     loongson3*)
-                        cpuflags="-march=loongson3a -mhard-float -fno-expensive-optimizations"
+                        cpuflags="-march=loongson3a -mhard-float $expensive_optimization_flag"
                     ;;
                     loongson2e)
-                        cpuflags="-march=loongson2e -mhard-float -fno-expensive-optimizations"
+                        cpuflags="-march=loongson2e -mhard-float $expensive_optimization_flag"
                     ;;
                     loongson2f)
-                        cpuflags="-march=loongson2f -mhard-float -fno-expensive-optimizations"
+                        cpuflags="-march=loongson2f -mhard-float $expensive_optimization_flag"
                     ;;
                 esac
             ;;
-- 
2.1.0




More information about the ffmpeg-devel mailing list