[FFmpeg-trac] #7732(build system:new): parallel minimalistic build fails
FFmpeg
trac at avcodec.org
Tue Feb 12 18:56:42 EET 2019
#7732: parallel minimalistic build fails
-------------------------------------+-------------------------------------
Reporter: barsnick | Type: defect
Status: new | Priority: normal
Component: build | Version:
system | unspecified
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Summary of the bug:
A parallel (e.g. -j4) build of ffmpeg fails consistently, under certain
configuration circumstances, due to (probably) race conditions by
incorrect dependencies. A second "make" attempt succeeds.
How to reproduce (wrapped for readability):
{{{
$ ../configure --disable-doc --disable-everything --disable-network
--disable-vdpau \
--enable-protocol=file,pipe --enable-indev=lavfi --enable-
muxer=null,spdif \
--enable-demuxer=matroska --enable-encoder=wrapped_avframe,truehd \
--enable-decoder=rawvideo,pcm_f64le \
--enable-filter=anoisesrc,anullsrc,nullsrc,testsrc,null,aresample \
&& make -j4 -k clean ffmpeg_g
}}}
Result:
{{{
[... various warnings]
AR libavutil/libavutil.a
STRIP libavcodec/x86/simple_idct.o
strip: 'libavcodec/x86/simple_idct.o': No such file
make: [/home/barsnick/Development/ffmpeg-
stuff/ffmpeg/ffbuild/common.mak:83: libavcodec/x86/simple_idct.o] Error 1
(ignored)
AR libavcodec/libavcodec.a
ar: libavcodec/ac3_parser.o: No such file or directory
make: *** [/home/barsnick/Development/ffmpeg-
stuff/ffmpeg/ffbuild/library.mak:22: libavcodec/libavcodec.a] Error 1
[... various warnings]
make: Target 'ffmpeg_g' not remade because of errors.
}}}
On a different machine (x86), I get:
{{{
STRIP libavutil/x86/lls.o
CC fftools/ffmpeg_filter.o
STRIP libavutil/x86/float_dsp.o
CC fftools/ffmpeg_hw.o
src/fftools/ffmpeg_opt.c: In function ‘add_input_streams’:
src/fftools/ffmpeg_opt.c:798: warning: ‘codec’ is deprecated (declared at
src/libavformat/avformat.h:878)
src/fftools/ffmpeg_opt.c:799: warning: ‘codec’ is deprecated (declared at
src/libavformat/avformat.h:878)
src/fftools/ffmpeg_opt.c:800: warning: ‘codec’ is deprecated (declared at
src/libavformat/avformat.h:878)
src/fftools/ffmpeg_opt.c:801: warning: ‘codec’ is deprecated (declared at
src/libavformat/avformat.h:878)
src/fftools/ffmpeg_opt.c:802: warning: ‘codec’ is deprecated (declared at
src/libavformat/avformat.h:878)
src/fftools/ffmpeg_opt.c:803: warning: ‘codec’ is deprecated (declared at
src/libavformat/avformat.h:878)
src/fftools/ffmpeg_opt.c: In function ‘open_output_file’:
src/fftools/ffmpeg_opt.c:2399: warning: ‘codec’ is deprecated (declared at
src/libavformat/avformat.h:878)
CC fftools/cmdutils.o
src/fftools/cmdutils.c: In function ‘print_all_libs_info’:
src/fftools/cmdutils.c:1134: warning: ‘avresample_version’ is deprecated
(declared at src/libavresample/avresample.h:148)
src/fftools/cmdutils.c:1134: warning: ‘avresample_configuration’ is
deprecated (declared at src/libavresample/avresample.h:158)
src/fftools/ffmpeg_hw.c: In function ‘hw_device_setup_for_decode’:
src/fftools/ffmpeg_hw.c:303: warning: ‘err’ may be used uninitialized in
this function
src/fftools/ffmpeg_hw.c:301: warning: ‘type’ may be used uninitialized in
this function
src/fftools/cmdutils.c: In function ‘next_codec_for_id’:
src/fftools/cmdutils.c:1499: warning: ‘av_codec_next’ is deprecated
(declared at src/libavcodec/avcodec.h:4102)
CC fftools/ffmpeg.o
src/fftools/ffmpeg.c: In function ‘do_streamcopy’:
src/fftools/ffmpeg.c:2073: warning: ‘av_copy_packet_side_data’ is
deprecated (declared at src/libavcodec/avcodec.h:4447)
src/fftools/ffmpeg.c: In function ‘init_output_stream’:
src/fftools/ffmpeg.c:3544: warning: ‘avcodec_copy_context’ is deprecated
(declared at src/libavcodec/avcodec.h:4219)
src/fftools/ffmpeg.c:3544: warning: ‘codec’ is deprecated (declared at
src/libavformat/avformat.h:878)
src/fftools/ffmpeg.c:3590: warning: ‘codec’ is deprecated (declared at
src/libavformat/avformat.h:878)
src/fftools/ffmpeg.c: In function ‘check_keyboard_interaction’:
src/fftools/ffmpeg.c:3971: warning: ‘codec’ is deprecated (declared at
src/libavformat/avformat.h:878)
src/fftools/ffmpeg.c:3994: warning: ‘codec’ is deprecated (declared at
src/libavformat/avformat.h:878)
src/fftools/ffmpeg_opt.c: In function ‘opt_map’:
src/fftools/ffmpeg_opt.c:275: warning: ‘allow_unused’ may be used
uninitialized in this function
AR libavdevice/libavdevice.a
AR libavfilter/libavfilter.a
AR libavformat/libavformat.a
AR libavcodec/libavcodec.a
AR libswresample/libswresample.a
AR libswscale/libswscale.a
AR libavutil/libavutil.a
src/fftools/ffmpeg.c: In function ‘send_frame_to_filters’:
src/fftools/ffmpeg.c:2257: warning: ‘ret’ may be used uninitialized in
this function
LD ffmpeg_g
gcc: fftools/ffmpeg_filter.o: No such file or directory
gcc: fftools/ffmpeg_hw.o: No such file or directory
make: *** [ffmpeg_g] Error 1
}}}
Following each failure up with a second
{{{
$ make -j4 ffmpeg_g
}}}
completes the build successfully.
Apparently, some dependency is incorrect. I'm too stupid to debug it on my
own though.
'''NOTE''': The exact above will currently (git master as of
84e7aff60816d8f491194a9d96d906c39ad052db) fail for another reason, which
needs to be fixed first (I will not open a ticket, but I have directly
sent a patch to ffmpeg-devel [http://ffmpeg.org/pipermail/ffmpeg-
devel/2019-February/240065.html],
[https://patchwork.ffmpeg.org/patch/12052/]): In ./configure, both
"mlp_encoder_select" and "truehd_encoder_select" require the additional
dependency "audio_frame_queue". With vanilla (i.e. unfixed) ffmpeg, you
can probably omit the "truehd" from configure above, and achieve the same
result which is the point of this ticket.
'''Note''': This happens both on x86 (32 bit) with old gcc, make and
glibc, as well as on modern x86_64 (F29 with all latest updates).
Other variations of the ./configure line also produce the same result, but
this is the one I have right now. Also "-j3", "-j4", and "-j8" often
result in the same (possibly with failures at different files / points in
build).
--
Ticket URL: <https://trac.ffmpeg.org/ticket/7732>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list