On 20/01/16 12:05, Michael Niedermayer wrote: > On Wed, Jan 20, 2016 at 11:37:52AM +0000, Vicente Olivert Riera wrote: >> 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.ri...@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*" >> $ > > see libavfilter/filtfmts.c
But do you have a generated filtfmts-test binary or a filtfmts.o file? Because when my build is finished I don't any anything of that. > our compilers differ > the one i have here is a binary from emdebian > are you droping support for that ? > if so that should be clearly stated in the commit message, and the > compiler cleanly detected and a clear warning given to the user why > his/her compiler isnt supported and what is supported Well, my intention isn't dropping support for anything, although this is what the emdebian website says: "Status of Emdebian distributions As of July 2014, updates to the Emdebian distributions ceased. There will be no further updates and no further stable releases." Anyway, how can I obtain the same compiler as you have in order to try reproducing the bug? > make distclean ; ../configure --cross-prefix=/usr/mips-linux-gnu/bin/ > --cc='mips-linux-gnu-gcc-4.4' --arch=mips --target-os=linux > --enable-cross-compile --disable-mipsfpu && make -j12 >& build > > grep 'uses soft float' build | wc > 2327 24879 389225 > > echo 'int main(void){ return 0; }' | mips-linux-gnu-gcc-4.4 -x c - -o out.o > echo 'int main(void){ return 0; }' | mips-linux-gnu-gcc-4.4 -x c - -o out.o > -msoft-float > /usr/lib/gcc/mips-linux-gnu/4.4.5/../../../../mips-linux-gnu/bin/ld: Warning: > out.o uses hard float, /tmp/ccFlutMG.o uses soft float > > But I don't understand how your compiler built something for hard-float when the -msoft-float option should be used instead. This is what I have (note that I passed V=1 to the make command): $ grep '\-mhard-float' build.log | wc -l 0 $ grep '\-msoft-float' build.log | wc -l 1411 $ grep "mips-linux-gnu-gcc" build.log | wc -l 1411 So the -mhard-float option wasn't used at all, and the -msoft-float one was used every time the compiler was called. I'm curious, can you show me your output for those same commands, please? Regards, Vincent. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel