[FFmpeg-devel] [PATCH v6 1/3] mips: improve detection of ISAs, FPU and ASEs (DSP, MSA)

Vicente Olivert Riera Vincent.Riera at imgtec.com
Wed Jan 20 12:37:52 CET 2016


Hello Michael,

On 19/01/16 22:11, Michael Niedermayer wrote:
> On Thu, Jan 14, 2016 at 02:59:03PM +0000, Vicente Olivert Riera wrote:
>> Signed-off-by: Vicente Olivert Riera <Vincent.Riera at imgtec.com>
>> ---
>> Changes v5 -> v6:
>>  - Multiple changes:
>>    - Use separate if blocks when detecting the MIPS ISA, this way when a block
>>      disables one ISA it will be detected by the next one. Before the elif was
>>      preventing this to be done.
>>    - Don't use check_cflags and use only check_ldflags instead, which will
>>      check if that flag is valid for compiling and linking. The compiler may
>>      accept some cflags for compiling but not for linking, so if we check first
>>      for the cflags it will succeed, and the cflags will be added to the CFLAGS
>>      variable despite of the check_ldflags failing after that. This can cause
>>      problems because of having multiple incompatible cflags enabled at the same
>>      time.
>>    - Check if mipsfpu has been disabled, and if so, then use -msoft-float. This
>>      way we override the compiler default behavious which can be building for
>>      hard-float.
>>    - Explicitly disable the features that fail any check by adding "|| disable
>>      $feature" at the end of the checks chain.
>>
>> Changes v4 -> v5:
>>  - Check for msa.h and disable msa if not found.
>>
>> Changes v3 -> v4:
>>  - Nothing.
>>
>> Changes v2 -> v3:
>>  - Nothing.
>>
>> Changes v1 -> v2:
>>  - Add a block of code for mipsdspr2 which was previously placed in the
>>    first patch of this series causing a syntax error in the configure
>>    script.
>>    https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2015-November/183444.html
> 
> make distclean ; ../configure --cross-prefix=/usr/mips-linux-gnu/bin/ --cc='ccache mips-linux-gnu-gcc-4.4' --arch=mips --target-os=linux --enable-cross-compile  --disable-mipsfpu && make -j12
> results in pages of:
> 
> /usr/lib/gcc/mips-linux-gnu/4.4.5/../../../../mips-linux-gnu/bin/ld: Warning: libavfilter/filtfmts-test uses hard float, libswresample/libswresample.a(dither.o) uses soft float
> /usr/lib/gcc/mips-linux-gnu/4.4.5/../../../../mips-linux-gnu/bin/ld: Warning: libavfilter/filtfmts-test uses hard float, libswresample/libswresample.a(resample.o) uses soft float
> /usr/lib/gcc/mips-linux-gnu/4.4.5/../../../../mips-linux-gnu/bin/ld: Warning: libavfilter/filtfmts-test uses hard float, libswresample/libswresample.a(resample_dsp.o) uses soft float
> /usr/lib/gcc/mips-linux-gnu/4.4.5/../../../../mips-linux-gnu/bin/ld: Warning: libavfilter/filtfmts-test uses hard float, libavutil/libavutil.a(adler32.o) uses soft float
> /usr/lib/gcc/mips-linux-gnu/4.4.5/../../../../mips-linux-gnu/bin/ld: Warning: libavfilter/filtfmts-test uses hard float, libavutil/libavutil.a(aes.o) uses soft float
> /usr/lib/gcc/mips-linux-gnu/4.4.5/../../../../mips-linux-gnu/bin/ld: Warning: libavfilter/filtfmts-test uses hard float, libavutil/libavutil.a(aes_ctr.o) uses soft float
> /usr/lib/gcc/mips-linux-gnu/4.4.5/../../../../mips-linux-gnu/bin/ld: Warning: libavfilter/filtfmts-test uses hard float, libavutil/libavutil.a(audio_fifo.o) uses soft float
> 
> 
> [...]
> 

I can't reproduce your issue. Look:

$ make distclean ; ./configure --cross-prefix=mips-linux-gnu-
--arch=mips --target-os=linux --enable-cross-compile --disable-mipsfpu

And then:

$ make -j1 V=1 2>&1 | tee build.log

And then:

$ grep "uses soft float" build.log
$ grep "filtfmts-test" build.log

It gives me nothing.

Also I try to find for that filtfmts-test file which your logs say that
is using hard-float, and I cannot find it:

$ find . -name "filtfmts-test*"
$

Regards,

Vincent.


More information about the ffmpeg-devel mailing list