[FFmpeg-devel] [PATCH V2] FATE/dnn: let fate/dnn tests depend on ffmpeg static libraries
Li, Zhong
zhong.li at intel.com
Fri Aug 16 17:20:36 EEST 2019
> From: ffmpeg-devel [mailto:ffmpeg-devel-bounces at ffmpeg.org] On Behalf
> Of Guo, Yejun
> Sent: Wednesday, August 7, 2019 10:44 AM
> To: ffmpeg-devel at ffmpeg.org
> Cc: Guo, Yejun <yejun.guo at intel.com>
> Subject: [FFmpeg-devel] [PATCH V2] FATE/dnn: let fate/dnn tests depend on
> ffmpeg static libraries
>
> background:
> DNN (deep neural network) is a sub module of libavfilter, and FATE/dnn is
> unit test for the DNN module, one unit test for one dnn layer.
> The unit tests are not based on the APIs exported by libavfilter, they just
> directly call into the functions within DNN submodule.
>
> There is an issue when run the following command:
> build$ ../ffmpeg/configure --disable-static --enable-shared make make
> fate-dnn-layer-pad
>
> And part of error message:
> tests/dnn/dnn-layer-pad-test.o: In function `test_with_mode_symmetric':
> /work/media/ffmpeg/build/src/tests/dnn/dnn-layer-pad-test.c:73:
> undefined reference to `dnn_execute_layer_pad'
>
> The root cause is that function dnn_execute_layer_pad is a LOCAL symbol in
> libavfilter.so, and so the linker could not find it when build
> dnn-layer-pad-test.
> To check it, just run: readelf -s libavfilter/libavfilter.so | grep dnn
>
> So, add dependency in fate/dnn Makefile with ffmpeg static libraries.
> This is the same method used in fate/checkasm
>
> Signed-off-by: Guo, Yejun <yejun.guo at intel.com>
> ---
> tests/dnn/Makefile | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/tests/dnn/Makefile b/tests/dnn/Makefile index b2e6680..0e050ea
> 100644
> --- a/tests/dnn/Makefile
> +++ b/tests/dnn/Makefile
> @@ -4,8 +4,8 @@ DNNTESTOBJS :=
> $(DNNTESTOBJS:%=$(DNNTESTSDIR)%)
> $(DNNTESTPROGS:%=$(DNNTESTSDIR) DNNTESTPROGS :=
> $(DNNTESTPROGS:%=$(DNNTESTSDIR)/%-test$(EXESUF))
> -include $(wildcard $(DNNTESTOBJS:.o=.d))
>
> -$(DNNTESTPROGS): %$(EXESUF): %.o $(FF_DEP_LIBS)
> - $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(filter %.o,$^)
> $(FF_EXTRALIBS) $(ELIBS)
> +$(DNNTESTPROGS): %$(EXESUF): %.o $(FF_STATIC_DEP_LIBS)
> + $(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(filter %.o,$^)
> +$(FF_STATIC_DEP_LIBS) $(ELIBS)
>
> testclean::
> $(RM) $(addprefix $(DNNTESTSDIR)/,$(CLEANSUFFIXES)
> *-test$(EXESUF))
> --
> 2.7.4
LGTM && Verified
IMHO this is a high priority patch since currently FATE is broken now if build with dynamic link
More information about the ffmpeg-devel
mailing list