On Sun, Feb 11, 2018 at 6:37 AM, Michael Niedermayer
<mich...@niedermayer.cc> wrote:
> On Sat, Feb 10, 2018 at 05:13:10PM +0700, Muhammad Faiz wrote:
>> On Sat, Feb 10, 2018 at 7:51 AM, Michael Niedermayer
>> <mich...@niedermayer.cc> wrote:
>> > On Fri, Feb 09, 2018 at 10:21:04PM +0700, Muhammad Faiz wrote:
>> >> On Fri, Feb 9, 2018 at 6:53 PM, James Almer <jamr...@gmail.com> wrote:
>> >> > On 2/9/2018 7:56 AM, Muhammad Faiz wrote:
>> >> >> On Thu, Feb 8, 2018 at 7:04 AM, Michael Niedermayer
>> >> >> <mich...@niedermayer.cc> wrote:
>> >> >>> On Wed, Feb 07, 2018 at 01:52:33PM +0100, Nicolas George wrote:
>> >> >>>> Josh de Kock (2018-02-06):
>> >> >>>>> ffmpeg | branch: master | Josh de Kock <j...@itanimul.li> | Fri Dec 
>> >> >>>>> 22 22:17:00 2017 +0000| [7e8eba2d8755962d9dca5eade57bf8f591a73c0c] 
>> >> >>>>> | committer: Josh de Kock
>> >> >>>>>
>> >> >>>>> lavc: add new API for iterating codecs and codec parsers
>> >> >>>>>
>> >> >>>>> Based on an unfinished patch by atomnuker.
>> >> >>>
>> >> >>> This commit also breaks
>> >> >>>
>> >> >>> ./configure --enable-libsoxr && make -j12 fate-checkasm
>> >> >>>  make -j12 fate-checkasm
>> >> >>>  ...
>> >> >>> LD      tests/checkasm/checkasm
>> >> >>> libswresample/libswresample.a(soxr_resample.o): In function 
>> >> >>> `get_out_samples':
>> >> >>> ffmpeg/libswresample/soxr_resample.c:118: undefined reference to 
>> >> >>> `soxr_delay'
>> >> >>> libswresample/libswresample.a(soxr_resample.o): In function 
>> >> >>> `get_delay':
>> >> >>> ffmpeg/libswresample/soxr_resample.c:100: undefined reference to 
>> >> >>> `soxr_delay'
>> >> >>> libswresample/libswresample.a(soxr_resample.o): In function `flush':
>> >> >>> ffmpeg/libswresample/soxr_resample.c:70: undefined reference to 
>> >> >>> `soxr_delay'
>> >> >>> ffmpeg/libswresample/soxr_resample.c:72: undefined reference to 
>> >> >>> `soxr_process'
>> >> >>> ffmpeg/libswresample/soxr_resample.c:77: undefined reference to 
>> >> >>> `soxr_process'
>> >> >>> ffmpeg/libswresample/soxr_resample.c:78: undefined reference to 
>> >> >>> `soxr_delay'
>> >> >>> libswresample/libswresample.a(soxr_resample.o): In function `process':
>> >> >>> ffmpeg/libswresample/soxr_resample.c:88: undefined reference to 
>> >> >>> `soxr_set_num_channels'
>> >> >>> ffmpeg/libswresample/soxr_resample.c:88: undefined reference to 
>> >> >>> `soxr_set_error'
>> >> >>> ffmpeg/libswresample/soxr_resample.c:90: undefined reference to 
>> >> >>> `soxr_process'
>> >> >>> libswresample/libswresample.a(soxr_resample.o): In function `destroy':
>> >> >>> ffmpeg/libswresample/soxr_resample.c:65: undefined reference to 
>> >> >>> `soxr_delete'
>> >> >>> libswresample/libswresample.a(soxr_resample.o): In function `create':
>> >> >>> ffmpeg/libswresample/soxr_resample.c:46: undefined reference to 
>> >> >>> `soxr_io_spec'
>> >> >>> ffmpeg/libswresample/soxr_resample.c:48: undefined reference to 
>> >> >>> `soxr_quality_spec'
>> >> >>> ffmpeg/libswresample/soxr_resample.c:56: undefined reference to 
>> >> >>> `soxr_delete'
>> >> >>> ffmpeg/libswresample/soxr_resample.c:57: undefined reference to 
>> >> >>> `soxr_create'
>> >> >>> collect2: error: ld returned 1 exit status
>> >> >>> make: *** [tests/checkasm/checkasm] Error 1
>> >> >>
>> >> >> Fixed in 81d6501be77b273053a66eeced94d78e2021f1d1
>> >> >>
>> >> >> Thank's.
>> >> >
>> >> > This is not a proper solution. swr is pulled by avcodec only if Opus
>> >> > decoder is enabled. There's no reason to hardcode it for checkasm 
>> >> > otherwise.
>> >> > The problem here is that the Makefile should pull all the dependencies
>> >> > of its hardcoded dependencies. This is what FFLIBS and FFEXTRALIBS do in
>> >> > common.mak to link the actual libraries.
>> >>
>> >> Probably, this is not a proper solution, but it is trivial enough.
>> >> (I'm sorry that I pushed it without posting).
>> >> So, please fix it with the proper solution. Probably, by adding
>> >> swresample-extralibs to avcodec-extralibs when avcodec has dependency
>> >> to swresample. I don't know how to do it.
>> >>
>> >
>> >> >
>> >> > That said, was this really a regression generated by this commit? It
>> >> > looks unrelated.
>> >>
>> >> Actually, it was a bug even before this commit. Just, previously it
>> >> was hidden because linker was smart enough to discard unneeded
>> >> dependency. But now when the list is changed to array, the linker is
>> >> unable to do it.
>> >
>> > iam not sure i understand correctly. But does this mean that
>> > tools/target_dec_"codec"_fuzzer will now include everything and not just
>> > the "codec" ?
>> > If so this will possibly prevent FFmpeg from being tested in googles 
>> > ossfuzz
>> > framework. As their diskspace was already rather tight.
>> >
>> > i do see on my disk that the more recently build fuzzers have gottem MUCH
>> > larger:
>> > -rwxr-x--- 1 michael michael  17588987 Feb  3 18:53 
>> > tools/target_dec_scpr_fuzzer*
>> > -rwxr-x--- 1 michael michael  17476326 Feb  4 02:16 
>> > tools/target_dec_paf_video_fuzzer*
>> > -rwxr-x--- 1 michael michael 143210465 Feb  9 13:53 
>> > tools/target_dec_h264_fuzzer*
>> > -rwxr-x--- 1 michael michael 143210465 Feb  9 13:56 
>> > tools/target_dec_vp3_fuzzer*
>> >
>>
>> Does the attached patch fix the problem?
>
> in my local build this makes no difference to the size
>
> make distclean ; ./configure   --optflags='-O1 -Os' --enable-debug 
> --disable-encoders --disable-parsers --disable-avformat --disable-avfilter 
> --disable-ffplay --disable-ffmpeg --disable-avdevice  --disable-stripping 
> --enable-ossfuzz --libfuzzer='~/libfuzzer/libFuzzer.a -lstdc++'    
> --cc='ccache clang' --cxx='ccache clang++' --disable-vaapi --disable-cuvid   
> --pkg-config-flags="--static" --enable-libx265  --enable-libx264 
> --enable-libvorbis --enable-libopus --enable-libvpx --enable-libmp3lame 
> --enable-libfdk-aac  --enable-gpl --enable-nonfree --enable-libfreetype 
> --enable-libtheora --enable-libass --assert_level=2 --enable-debug && time 
> make -j12 tools/target_dec_h264_fuzzer
>
>
> after the patch:
> -rwxr-x--- 1 michael michael 143237303 Feb 11 00:18 
> tools/target_dec_h264_fuzzer
>
> before the patch:
> -rwxr-x--- 1 michael michael 143237007 Feb 11 00:27 
> tools/target_dec_h264_fuzzer*
>
> caa4bd7a9fe9186a56fdcb8194263b066978cbbe
> -rwxr-x--- 1 michael michael  35470813 Feb 11 00:31 
> tools/target_dec_h264_fuzzer*

Yeah, this isn't simple. I have no idea about this.

Thank's.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel

Reply via email to