On Wed, Jan 20, 2016 at 12:21:37PM +0000, Vicente Olivert Riera wrote: > 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.
make libavfilter/filtfmts-test CC libavfilter/filtfmts-test.o libavfilter/filtfmts.c:141:9: warning: ignoring return value of function declared with warn_unused_result attribute [-Wunused-result] ff_default_query_formats(filter_ctx); ^~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~ 1 warning generated. LD libavfilter/filtfmts-test the source and object files differ in their names > > > 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." i know, the problem is not me, i can update, IIRC you guys posted a binary already but others might use similarly build or old compilers so keeping this one here gives some wider coverage ... and its less work > > Anyway, how can I obtain the same compiler as you have in order to try > reproducing the bug? i dont know, if they arent on emdian anymore i dont seem to have the deb files in var/cache/apt/archive anymore Package: gcc-4.4-mips-linux-gnu Status: install ok installed Priority: extra Section: devel Installed-Size: 3088 Maintainer: Debian GCC Maintainers <debian-...@lists.debian.org> Architecture: amd64 Source: gcc-4.4 Version: 4.4.5-8 Provides: c-compiler-mips-linux-gnu Depends: gcc-4.4-mips-linux-gnu-base (= 4.4.5-8), cpp-4.4-mips-linux-gnu (= 4.4.5-8), binutils-mips-linux-gnu (>= 2.20.1-15~), libgcc1-mips-cross (>= 1:4.4.5-8), libgomp1-mips-cross (>= 4.4.5-8), libc6 (>= 2.11) Recommends: libc6-dev-mips-cross (>= 2.5) Suggests: gcc-4.4-multilib-mips-linux-gnu, libmudflap0-4.4-dev-mips-cross (>= 4.4.5-8), gcc-4.4-doc (>= 4.4.4-17), gcc-4.4-locales (>= 4.4.4-17), libgcc1-dbg-mips-cross, libgomp1-dbg-mips-cross, libmudflap0-dbg-mips-cross, libcloog-ppl0 (>= 0.15.9-2~), libppl-c2, libppl7 Description: The GNU C compiler This is the GNU C compiler, a fairly portable optimizing compiler for C. . This package contains C cross-compiler for mips architecture. Homepage: http://gcc.gnu.org/ > > > 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? before the patch: grep '\-mhard-float' build.log-V1-disable-mipsfpu | wc -l 0 grep '\-msoft-float' build.log-V1-disable-mipsfpu | wc -l 0 after the patch: grep '\-mhard-float' build.log-V1-disable-mipsfpu-with-patch | wc -l 0 grep '\-msoft-float' build.log-V1-disable-mipsfpu-with-patch | wc -l 1428 grep "mips-linux-gnu-gcc" build.log-V1-disable-mipsfpu-with-patch | wc -l 1428 also forget about filtfmts, its not specifici to that /usr/lib/gcc/mips-linux-gnu/4.4.5/../../../../mips-linux-gnu/bin/ld: Warning: ffprobe_g uses hard float, libavutil/libavutil.a(samplefmt.o) uses soft float /usr/lib/gcc/mips-linux-gnu/4.4.5/../../../../mips-linux-gnu/bin/ld: Warning: ffprobe_g uses hard float, libavutil/libavutil.a(sha.o) uses soft float /usr/lib/gcc/mips-linux-gnu/4.4.5/../../../../mips-linux-gnu/bin/ld: Warning: ffprobe_g uses hard float, libavutil/libavutil.a(sha512.o) uses soft float /usr/lib/gcc/mips-linux-gnu/4.4.5/../../../../mips-linux-gnu/bin/ld: Warning: ffprobe_g uses hard float, libavutil/libavutil.a(stereo3d.o) uses soft float [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Rewriting code that is poorly written but fully understood is good. Rewriting code that one doesnt understand is a sign that one is less smart then the original author, trying to rewrite it will not make it better.
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel