On 10/12/2017 4:25 PM, Michael Niedermayer wrote: > On Thu, Oct 12, 2017 at 02:25:46PM -0300, James Almer wrote: >> On 10/12/2017 1:56 PM, Michael Niedermayer wrote: >>> On Wed, Oct 11, 2017 at 10:30:13PM -0300, James Almer wrote: >>>> On 10/11/2017 9:22 PM, Michael Niedermayer wrote: >>>>> On Wed, Oct 11, 2017 at 09:26:18PM +0000, James Almer wrote: >>>>>> ffmpeg | branch: master | James Almer <jamr...@gmail.com> | Wed Oct 11 >>>>>> 17:55:25 2017 -0300| [6dfcbd80ad446ff163b47f2bf432bbf706436ea8] | >>>>>> committer: James Almer >>>>>> >>>>>> Merge commit '7cb1d9e2dbbe5bf4652be5d78cdd68e956fa3d63' >>>>>> >>>>>> * commit '7cb1d9e2dbbe5bf4652be5d78cdd68e956fa3d63': >>>>>> build: Fine-grained link-time dependency settings >>>>>> >>>>>> Also included are bug fix commits >>>>>> 5ff3b5cafcc685b6936d16602b0f80aa09a95870, >>>>>> d9da7151eef7fc469787e7298196cea291acfd82 and >>>>>> 5e27ef800bfa2be17a6353ddedac6b7400e4624f. >>>>>> >>>>>> Merged-by: James Almer <jamr...@gmail.com> >>>>>> >>>>>>> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=6dfcbd80ad446ff163b47f2bf432bbf706436ea8 >>>>>> --- >>>>>> >>>>>> Makefile | 3 +- >>>>>> configure | 297 >>>>>> +++++++++++++++++++++++++++++------------------- >>>>>> ffbuild/common.mak | 2 +- >>>>>> ffbuild/library.mak | 2 +- >>>>>> tests/checkasm/Makefile | 2 +- >>>>>> 5 files changed, 187 insertions(+), 119 deletions(-) >>>>> >>>>> This breaks build here (linux x86-64) >>>>> >>>>> ./configure --enable-libxavs --enable-gpl >>>>> ERROR: libxavs not found >>>>> >>>>> Iam trying to test most patches for FFmpeg before they are pushed, but >>>>> i can only test what is posted for review on ffmpeg-devel ... >>>> >>>> Testing locally i see it's complaining about missing pthreads and libm >>>> ldflag, since they of course are not part of the global extralibs anymore. >>>> Switching detection to pkg-config would be ideal, but for some reason >>>> even the supplied .pc file doesn't include the -lm ldflag, only the >>>> pthreads one, and libxavs looks like it hasn't been updated for six >>>> years now (at least the one in sourceforge), so it's unlikely to be >>>> fixed on their end. >>>> >>>> Can you test the attached patch? >>> >>> seems to fix it >> >> Pushed then. Thanks. >> >>> but i get a build failure with fontconfig now: >>> >>> ../configure --enable-fontconfig && make -j12 >>> >>> LD ffmpeg_g >>> libavfilter/libavfilter.a(avf_showcqt.o): In function `render_fontconfig': >>> ffmpeg/nasm/src/libavfilter/avf_showcqt.c:606: undefined reference to >>> `FcInitLoadConfigAndFonts' >>> ffmpeg/nasm/src/libavfilter/avf_showcqt.c:611: undefined reference to >>> `FcNameParse' >>> ffmpeg/nasm/src/libavfilter/avf_showcqt.c:617: undefined reference to >>> `FcDefaultSubstitute' >>> ffmpeg/nasm/src/libavfilter/avf_showcqt.c:619: undefined reference to >>> `FcConfigSubstitute' >>> ffmpeg/nasm/src/libavfilter/avf_showcqt.c:626: undefined reference to >>> `FcFontMatch' >>> ffmpeg/nasm/src/libavfilter/avf_showcqt.c:627: undefined reference to >>> `FcPatternDestroy' >>> ffmpeg/nasm/src/libavfilter/avf_showcqt.c:643: undefined reference to >>> `FcPatternDestroy' >>> ffmpeg/nasm/src/libavfilter/avf_showcqt.c:644: undefined reference to >>> `FcConfigDestroy' >>> ffmpeg/nasm/src/libavfilter/avf_showcqt.c:621: undefined reference to >>> `FcPatternDestroy' >>> ffmpeg/nasm/src/libavfilter/avf_showcqt.c:622: undefined reference to >>> `FcConfigDestroy' >>> ffmpeg/nasm/src/libavfilter/avf_showcqt.c:635: undefined reference to >>> `FcPatternGetString' >>> ffmpeg/nasm/src/libavfilter/avf_showcqt.c:613: undefined reference to >>> `FcConfigDestroy' >>> collect2: error: ld returned 1 exit status >>> make: *** [ffmpeg_g] Error 1 >> >> That'd be because showcqt is missing its fontconfig and freetype deps in >> configure, a mistake that was hidden by extralibs being global before >> this merge. >> >> Does the attached patch fix it? > > it seems so
Will apply then. Thanks. > but it just results in the next failure > > make distclean ; ../configure --build-suffix=asterix && make -j12 This is not "the next failure" result of fixing showcqt. You're using a completely different command line where showcqt would have shown no issues even without the above fix. > LD ffmpeg_g > fftools/ffmpeg_opt.o: In function `new_output_stream': > ffmpeg/linux32/src/fftools/ffmpeg_opt.c:1334: undefined reference to > `avcodec_parameters_alloc' Apparently buildsuf breaks dependencies somewhere by changing the library names. At least here on mingw-64 i instead get "ld.exe: cannot find -lav*" for every library, instead of undefined references. I'll take a look, but could nonetheless use some help. > ffmpeg/linux32/src/fftools/ffmpeg_opt.c:1421: undefined reference to > `av_bsf_get_by_name' > ffmpeg/linux32/src/fftools/ffmpeg_opt.c:1433: undefined reference to > `av_bsf_alloc' > fftools/ffmpeg_opt.o: In function `opt_init_hw_device': > ffmpeg/linux32/src/fftools/ffmpeg_opt.c:513: undefined reference to > `av_hwdevice_get_type_name' > ffmpeg/linux32/src/fftools/ffmpeg_opt.c:511: undefined reference to > `av_hwdevice_iterate_types' > fftools/ffmpeg_opt.o: In function `new_output_stream': > ffmpeg/linux32/src/fftools/ffmpeg_opt.c:1334: undefined reference to > `avcodec_parameters_alloc' > ffmpeg/linux32/src/fftools/ffmpeg_opt.c:1421: undefined reference to > `av_bsf_get_by_name' > ffmpeg/linux32/src/fftools/ffmpeg_opt.c:1433: undefined reference to > `av_bsf_alloc' > fftools/ffmpeg_opt.o: In function `add_input_streams': > ffmpeg/linux32/src/fftools/ffmpeg_opt.c:784: undefined reference to > `avcodec_parameters_to_context' > ffmpeg/linux32/src/fftools/ffmpeg_opt.c:896: undefined reference to > `avcodec_parameters_from_context' > fftools/ffmpeg_opt.o: In function `open_output_file': > ffmpeg/linux32/src/fftools/ffmpeg_opt.c:2686: undefined reference to > `av_program_add_stream_index' > fftools/cmdutils.o: In function `show_bsfs': > ffmpeg/linux32/src/fftools/cmdutils.c:1605: undefined reference to > `av_bsf_next' > fftools/ffmpeg.o: In function `ifilter_send_eof': > ffmpeg/linux32/src/fftools/ffmpeg.c:2233: undefined reference to > `av_buffersrc_close' > fftools/ffmpeg.o: In function `output_packet': > ffmpeg/linux32/src/fftools/ffmpeg.c:837: undefined reference to > `av_bsf_send_packet' > ffmpeg/linux32/src/fftools/ffmpeg.c:845: undefined reference to > `av_bsf_receive_packet' > ffmpeg/linux32/src/fftools/ffmpeg.c:857: undefined reference to > `av_bsf_send_packet' > fftools/ffmpeg.o: In function `do_video_out': > ffmpeg/linux32/src/fftools/ffmpeg.c:1288: undefined reference to > `avcodec_send_frame' > ffmpeg/linux32/src/fftools/ffmpeg.c:1293: undefined reference to > `avcodec_receive_packet' > fftools/ffmpeg.o: In function `init_output_bsfs': > ffmpeg/linux32/src/fftools/ffmpeg.c:3018: undefined reference to > `avcodec_parameters_copy' > ffmpeg/linux32/src/fftools/ffmpeg.c:3025: undefined reference to `av_bsf_init' > ffmpeg/linux32/src/fftools/ffmpeg.c:3018: undefined reference to > `avcodec_parameters_copy' > ffmpeg/linux32/src/fftools/ffmpeg.c:3025: undefined reference to `av_bsf_init' > ffmpeg/linux32/src/fftools/ffmpeg.c:3034: undefined reference to > `avcodec_parameters_copy' > fftools/ffmpeg.o: In function `init_output_stream': > ffmpeg/linux32/src/fftools/ffmpeg.c:3467: undefined reference to > `av_buffersink_get_hw_frames_ctx' > ffmpeg/linux32/src/fftools/ffmpeg.c:3468: undefined reference to > `av_buffersink_get_hw_frames_ctx' > ffmpeg/linux32/src/fftools/ffmpeg.c:3469: undefined reference to > `av_buffersink_get_format' > ffmpeg/linux32/src/fftools/ffmpeg.c:3501: undefined reference to > `avcodec_parameters_from_context' > fftools/ffmpeg.o: In function `init_output_stream_streamcopy': > ffmpeg/linux32/src/fftools/ffmpeg.c:3055: undefined reference to > `avcodec_parameters_to_context' > fftools/ffmpeg.o: In function `init_output_stream_encode': > ffmpeg/linux32/src/fftools/ffmpeg.c:3362: undefined reference to > `av_buffersink_get_time_base' > ffmpeg/linux32/src/fftools/ffmpeg.c:3373: undefined reference to > `av_buffersink_get_w' > ffmpeg/linux32/src/fftools/ffmpeg.c:3374: undefined reference to > `av_buffersink_get_h' > ffmpeg/linux32/src/fftools/ffmpeg.c:3380: undefined reference to > `av_buffersink_get_format' > fftools/ffmpeg.o: In function `init_output_stream': > ffmpeg/linux32/src/fftools/ffmpeg.c:3521: undefined reference to > `av_stream_new_side_data' > fftools/ffmpeg.o: In function `init_output_stream_streamcopy': > ffmpeg/linux32/src/fftools/ffmpeg.c:3063: undefined reference to > `avcodec_parameters_from_context' > ffmpeg/linux32/src/fftools/ffmpeg.c:3073: undefined reference to > `avcodec_parameters_copy' > ffmpeg/linux32/src/fftools/ffmpeg.c:3083: undefined reference to > `avformat_transfer_internal_stream_timing_info' > ffmpeg/linux32/src/fftools/ffmpeg.c:3103: undefined reference to > `av_stream_new_side_data' > fftools/ffmpeg.o: In function `init_output_stream': > ffmpeg/linux32/src/fftools/ffmpeg.c:3566: undefined reference to > `avcodec_parameters_to_context' > ffmpeg/linux32/src/fftools/ffmpeg.c:3539: undefined reference to > `av_stream_new_side_data' > fftools/ffmpeg.o: In function `init_output_stream_encode': > ffmpeg/linux32/src/fftools/ffmpeg.c:3347: undefined reference to > `av_buffersink_get_format' > ffmpeg/linux32/src/fftools/ffmpeg.c:3351: undefined reference to > `av_buffersink_get_sample_rate' > ffmpeg/linux32/src/fftools/ffmpeg.c:3352: undefined reference to > `av_buffersink_get_channel_layout' > ffmpeg/linux32/src/fftools/ffmpeg.c:3353: undefined reference to > `av_buffersink_get_channels' > fftools/ffmpeg.o: In function `init_output_stream_streamcopy': > ffmpeg/linux32/src/fftools/ffmpeg.c:3089: undefined reference to > `av_stream_get_codec_timebase' > ffmpeg/linux32/src/fftools/ffmpeg.c:3111: undefined reference to > `av_stream_new_side_data' > fftools/ffmpeg.o: In function `init_output_stream_encode': > ffmpeg/linux32/src/fftools/ffmpeg.c:3377: undefined reference to > `av_buffersink_get_sample_aspect_ratio' > fftools/ffmpeg.o: In function `init_output_stream': > ffmpeg/linux32/src/fftools/ffmpeg.c:3470: undefined reference to > `av_buffersink_get_hw_frames_ctx' > fftools/ffmpeg.o: In function `reap_filters': > ffmpeg/linux32/src/fftools/ffmpeg.c:1475: undefined reference to > `av_buffersink_get_time_base' > ffmpeg/linux32/src/fftools/ffmpeg.c:1494: undefined reference to > `av_buffersink_get_type' > fftools/ffmpeg.o: In function `do_audio_out': > ffmpeg/linux32/src/fftools/ffmpeg.c:921: undefined reference to > `avcodec_send_frame' > ffmpeg/linux32/src/fftools/ffmpeg.c:926: undefined reference to > `avcodec_receive_packet' > fftools/ffmpeg.o: In function `reap_filters': > ffmpeg/linux32/src/fftools/ffmpeg.c:1464: undefined reference to > `av_buffersink_get_type' > fftools/ffmpeg.o: In function `decode': > ffmpeg/linux32/src/fftools/ffmpeg.c:2265: undefined reference to > `avcodec_send_packet' > ffmpeg/linux32/src/fftools/ffmpeg.c:2272: undefined reference to > `avcodec_receive_frame' > ffmpeg/linux32/src/fftools/ffmpeg.c:2265: undefined reference to > `avcodec_send_packet' > ffmpeg/linux32/src/fftools/ffmpeg.c:2272: undefined reference to > `avcodec_receive_frame' > fftools/ffmpeg.o: In function `ffmpeg_cleanup': > ffmpeg/linux32/src/fftools/ffmpeg.c:537: undefined reference to `av_bsf_free' > ffmpeg/linux32/src/fftools/ffmpeg.c:558: undefined reference to > `avcodec_parameters_free' > fftools/ffmpeg.o: In function `flush_encoders': > ffmpeg/linux32/src/fftools/ffmpeg.c:1931: undefined reference to > `avcodec_send_frame' > ffmpeg/linux32/src/fftools/ffmpeg.c:1930: undefined reference to > `avcodec_receive_packet' > fftools/ffmpeg.o: In function `output_packet': > ffmpeg/linux32/src/fftools/ffmpeg.c:837: undefined reference to > `av_bsf_send_packet' > ffmpeg/linux32/src/fftools/ffmpeg.c:857: undefined reference to > `av_bsf_send_packet' > ffmpeg/linux32/src/fftools/ffmpeg.c:845: undefined reference to > `av_bsf_receive_packet' > fftools/ffmpeg_filter.o: In function `configure_input_video_filter': > ffmpeg/linux32/src/fftools/ffmpeg_filter.c:751: undefined reference to > `av_buffersrc_parameters_alloc' > ffmpeg/linux32/src/fftools/ffmpeg_filter.c:793: undefined reference to > `av_buffersrc_parameters_set' > fftools/ffmpeg_filter.o: In function `configure_filtergraph': > ffmpeg/linux32/src/fftools/ffmpeg_filter.c:1108: undefined reference to > `av_buffersink_get_format' > ffmpeg/linux32/src/fftools/ffmpeg_filter.c:1110: undefined reference to > `av_buffersink_get_w' > ffmpeg/linux32/src/fftools/ffmpeg_filter.c:1111: undefined reference to > `av_buffersink_get_h' > ffmpeg/linux32/src/fftools/ffmpeg_filter.c:1113: undefined reference to > `av_buffersink_get_sample_rate' > ffmpeg/linux32/src/fftools/ffmpeg_filter.c:1114: undefined reference to > `av_buffersink_get_channel_layout' > fftools/ffmpeg_hw.o: In function `hwaccel_retrieve_data': > ffmpeg/linux32/src/fftools/ffmpeg_hw.c:354: undefined reference to > `av_hwframe_transfer_data' > fftools/ffmpeg_hw.o: In function `hw_device_init_from_string': > ffmpeg/linux32/src/fftools/ffmpeg_hw.c:93: undefined reference to > `av_hwdevice_find_type_by_name' > ffmpeg/linux32/src/fftools/ffmpeg_hw.c:175: undefined reference to > `av_hwdevice_ctx_create_derived' > ffmpeg/linux32/src/fftools/ffmpeg_hw.c:139: undefined reference to > `av_hwdevice_ctx_create' > ffmpeg/linux32/src/fftools/ffmpeg_hw.c:161: undefined reference to > `av_hwdevice_ctx_create' > fftools/ffmpeg_hw.o: In function `hw_device_match_type_in_name': > ffmpeg/linux32/src/fftools/ffmpeg_hw.c:245: undefined reference to > `av_hwdevice_iterate_types' > ffmpeg/linux32/src/fftools/ffmpeg_hw.c:247: undefined reference to > `av_hwdevice_iterate_types' > ffmpeg/linux32/src/fftools/ffmpeg_hw.c:248: undefined reference to > `av_hwdevice_get_type_name' > fftools/ffmpeg_hw.o: In function `hw_device_setup_for_decode': > ffmpeg/linux32/src/fftools/ffmpeg_hw.c:289: undefined reference to > `av_hwdevice_get_type_name' > ffmpeg/linux32/src/fftools/ffmpeg_hw.c:299: undefined reference to > `av_hwdevice_get_type_name' > ffmpeg/linux32/src/fftools/ffmpeg_hw.c:272: undefined reference to > `av_hwdevice_get_type_name' > fftools/ffmpeg_hw.o: In function `hw_device_match_type_in_name': > ffmpeg/linux32/src/fftools/ffmpeg_hw.c:245: undefined reference to > `av_hwdevice_iterate_types' > ffmpeg/linux32/src/fftools/ffmpeg_hw.c:247: undefined reference to > `av_hwdevice_iterate_types' > ffmpeg/linux32/src/fftools/ffmpeg_hw.c:248: undefined reference to > `av_hwdevice_get_type_name' > fftools/ffmpeg_hw.o: In function `hw_device_setup_for_encode': > ffmpeg/linux32/src/fftools/ffmpeg_hw.c:321: undefined reference to > `av_hwdevice_get_type_name' > fftools/ffmpeg_cuvid.o: In function `cuvid_init': > ffmpeg/linux32/src/fftools/ffmpeg_cuvid.c:48: undefined reference to > `av_hwframe_ctx_alloc' > ffmpeg/linux32/src/fftools/ffmpeg_cuvid.c:64: undefined reference to > `av_hwframe_ctx_init' > ffmpeg/linux32/src/fftools/ffmpeg_cuvid.c:39: undefined reference to > `av_hwdevice_ctx_create' > collect2: error: ld returned 1 exit status > make: *** [ffmpeg_g] Error 1 > > > [...] > > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > n _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel