Ask Your Question

Revision history [back]

libtbb segfault on second attempt in boost::thread on ARM/aarch64

I am having problems with OpenCV 3.3.1 on ARM. I have arrived at the following minimal example:

(snip includes)

void cvtTest() {
  cv::Mat imgTmp = cv::Mat(1200,1920, CV_16UC1, cv::Scalar(1));
  cv::Mat imgTmp2 = cv::Mat(1200,1920, CV_8UC3, cv::Scalar(0));
  cvtColor(imgTmp, imgTmp2, cv::COLOR_BayerBG2BGR);
}

int main(int argc, char* argv[])
{
  cout << "Start function call test" << endl;
  cvtTest();
  cout << "First done" << endl;
  cvtTest();
  cout << "Second done" << endl;

  cout << "Start boost::thread test" << endl;
  boost::thread* test1 = new boost::thread(cvtTest);
  test1->join();
  cout << "First done" << endl;
  boost::thread* test2 = new boost::thread(cvtTest);
  test2->join();
  cout << "Second done" << endl;
  [...]

this prints:

Start function call test
First done
Second done
Start boost::thread test
First done
[27069.712978] grabber[3369]: unhandled level 0 translation fault (11) at 0xfffffffffffffff7, esr 0x92000004
[27069.722563] pgd = ffff80096cb0c000
[27069.725958] [fffffffffffffff7] *pgd=00000009ed434003[27069.730751] , *pud=00000009ec966003
, *pmd=0000000000000000[27069.736243] 
[27069.737726] 
[27069.739219] CPU: 1 PID: 3369 Comm: grabber Not tainted 4.9.35+gb226445 #1
[27069.746009] Hardware name: LS1046A RDB Board (DT)
[27069.750714] task: ffff80096dd14f40 task.stack: ffff80096cad4000
[27069.756638] PC is at 0xffffa7454dd4
[27069.760127] LR is at 0xffffa7454ef0
[27069.763613] pc : [<0000ffffa7454dd4>] lr : [<0000ffffa7454ef0>] pstate: 80000000
[27069.771011] sp : 0000ffffa707f840
[27069.774321] x29: 0000ffffa707f840 x28: 0000ffffa707fde8 
[27069.779639] x27: 000000000000077e x26: 0000ffffa707fd28 
[27069.784956] x25: 0000ffffa707f980 x24: 0000000000000023 
[27069.790275] x23: 0000000000000000 x22: 0000ffffa707f988 
[27069.795592] x21: 0000ffffa7477568 x20: 0000000000000000 
[27069.800909] x19: 0000ffffa5e0be00 x18: 0000000000000030 
[27069.806229] x17: 0000ffffa7f5d380 x16: 0000ffffa5eca0d8 
[27069.811548] x15: 0000000000000000 x14: 0000000000000027 
[27069.816897] x13: 006b636174735f68 x12: 637461775f737472 
[27069.822216] x11: ffffffffffff7fff x10: 0000000000003fff 
[27069.827536] x9 : 0000000000000001 x8 : 0000ffffa5e08000 
[27069.832852] x7 : 0000000000000000 x6 : 0000000000000000 
[27069.838169] x5 : 00000000ba5703f5 x4 : 0000000000000001 
[27069.843489] x3 : 0000000000000000 x2 : ffffffffffffffff 
[27069.848804] x1 : 0000ffffa5e0beb0 x0 : ffffffffffffffff 
[27069.854120] 
Segmentation fault

or with valgrind:

(snip lots of Conditional jump or move depends on uninitialised value(s) )
First done
Second done
Start boost::thread test
First done
==3348== Thread 5:
==3348== Invalid read of size 8
==3348==    at 0x5BECDD4: ??? (in /usr/lib/libtbb.so.2)
==3348==    by 0x5BECEEF: ??? (in /usr/lib/libtbb.so.2)
==3348==    by 0x5BEE953: ??? (in /usr/lib/libtbb.so.2)
==3348==    by 0x5BED067: ??? (in /usr/lib/libtbb.so.2)
==3348==    by 0x5BE7FCB: ??? (in /usr/lib/libtbb.so.2)
==3348==    by 0x5BE610B: tbb::internal::allocate_root_with_context_proxy::allocate(unsigned long) const (in /usr/lib/libtbb.so.2)
==3348==    by 0x4994FEF: cv::parallel_for_(cv::Range const&, cv::ParallelLoopBody const&, double) (in /usr/lib/libopencv_core.so.3.3.0)
==3348==    by 0x4B69B07: cv::demosaicing(cv::_InputArray const&, cv::_OutputArray const&, int, int) (in /usr/lib/libopencv_imgproc.so.3.3.0)
==3348==    by 0x4B3BBFB: cv::cvtColor(cv::_InputArray const&, cv::_OutputArray const&, int, int) (in /usr/lib/libopencv_imgproc.so.3.3.0)
==3348==    by 0x5E0A13: cvtTest() (in /usr/bin/grabber)
==3348==    by 0x508E15F: ??? (in /usr/lib/libboost_thread.so.1.64.0)
==3348==    by 0x50CEF47: ??? (in /lib/libpthread-2.26.so)
==3348==  Address 0xfffffffffffffff7 is not stack'd, malloc'd or (recently) free'd
==3348== 
==3348== 
==3348== Process terminating with default action of signal 11 (SIGSEGV)
==3348==  Access not within mapped region at address 0xFFFFFFFFFFFFFFF7
==3348==    at 0x5BECDD4: ??? (in /usr/lib/libtbb.so.2)
==3348==    by 0x5BECEEF: ??? (in /usr/lib/libtbb.so.2)
==3348==    by 0x5BEE953: ??? (in /usr/lib/libtbb.so.2)
==3348==    by 0x5BED067: ??? (in /usr/lib/libtbb.so.2)
==3348==    by 0x5BE7FCB: ??? (in /usr/lib/libtbb.so.2)
==3348==    by 0x5BE610B: tbb::internal::allocate_root_with_context_proxy::allocate(unsigned long) const (in /usr/lib/libtbb.so.2)
==3348==    by 0x4994FEF: cv::parallel_for_(cv::Range const&, cv::ParallelLoopBody const&, double) (in /usr/lib/libopencv_core.so.3.3.0)
==3348==    by 0x4B69B07: cv::demosaicing(cv::_InputArray const&, cv::_OutputArray const&, int, int) (in /usr/lib/libopencv_imgproc.so.3.3.0)
==3348==    by 0x4B3BBFB: cv::cvtColor(cv::_InputArray const&, cv::_OutputArray const&, int, int) (in /usr/lib/libopencv_imgproc.so.3.3.0)
==3348==    by 0x5E0A13: cvtTest() (in /usr/bin/grabber)
==3348==    by 0x508E15F: ??? (in /usr/lib/libboost_thread.so.1.64.0)
==3348==    by 0x50CEF47: ??? (in /lib/libpthread-2.26.so)
==3348==  If you believe this happened as a result of a stack
==3348==  overflow in your program's main thread (unlikely but
==3348==  possible), you can try to increase the size of the
==3348==  main thread stack using the --main-stacksize= flag.
==3348==  The main thread stack size used in this run was 8388608.
==3348== Conditional jump or move depends on uninitialised value(s)
==3348==    at 0x5B89E9C: ??? (in /lib/libc-2.26.so)
==3348== 
==3348== Conditional jump or move depends on uninitialised value(s)
==3348==    at 0x5B89F20: ??? (in /lib/libc-2.26.so)
==3348== 
==3348== Use of uninitialised value of size 8
==3348==    at 0x5B89EDC: ??? (in /lib/libc-2.26.so)
==3348== 
==3348== Use of uninitialised value of size 8
==3348==    at 0x5B89EE0: ??? (in /lib/libc-2.26.so)
==3348== 
==3348== Use of uninitialised value of size 8
==3348==    at 0x5B89F10: ??? (in /lib/libc-2.26.so)
==3348== 
==3348== Use of uninitialised value of size 8
==3348==    at 0x5B89F18: ??? (in /lib/libc-2.26.so)
==3348== 
==3348== 
==3348== HEAP SUMMARY:
==3348==     in use at exit: 18,491,742 bytes in 211 blocks
==3348==   total heap usage: 335 allocs, 124 frees, 101,530,217 bytes allocated
==3348== 
==3348== LEAK SUMMARY:
==3348==    definitely lost: 16 bytes in 1 blocks
==3348==    indirectly lost: 0 bytes in 0 blocks
==3348==      possibly lost: 16,560 bytes in 23 blocks
==3348==    still reachable: 18,475,166 bytes in 187 blocks
==3348==                       of which reachable via heuristic:
==3348==                         stdstring          : 135 bytes in 5 blocks
==3348==                         newarray           : 1,560 bytes in 3 blocks
==3348==         suppressed: 0 bytes in 0 blocks
==3348== Rerun with --leak-check=full to see details of leaked memory
==3348== 
==3348== For counts of detected and suppressed errors, rerun with: -v
==3348== Use --track-origins=yes to see where uninitialised values come from
==3348== ERROR SUMMARY: 784019 errors from 633 contexts (suppressed: 102548 from 5)
Segmentation fault

This example is highly artificial to produce a minimal example, but the same problem occurred on actual development code with camera captured Bayer12 images, which I was able to rule out. The example neatly demonstrates that something silly is happening because of threading, and only in the second thread! Also, the code runs just fine on x86_64, although that was linked against OpenCV 3.3.1. Was there a change affecting this behavior in that update?

OpenCV info from cv::getBuildInformation();

General configuration for OpenCV 3.3.0-dev =====================================
  Version control:               unknown

  Extra modules:
    Location (extra):            /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/contrib/modules
    Version control (extra):     unknown

  Platform:
    Timestamp:                   2018-05-25T12:35:45Z
    Host:                        Linux 4.4.0-127-generic x86_64
    Target:                      Linux aarch64
    CMake:                       3.8.2
    CMake generator:             Unix Makefiles
    CMake build tool:            /opt/yocto/tmp/hosttools/make
    Configuration:               Release

  CPU/HW features:
    Baseline:                    NEON FP16
      required:                  NEON
      disabled:                  VFPV3

  C/C++:
    Built as dynamic libs?:      YES
    C++11:                       YES
    C++ Compiler:                /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++  (ver 7.3.0)
    C++ flags (Release):         -I/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/git/include   --sysroot=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot  -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0=/usr/src/debug/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0 -fdebug-prefix-map=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot-native= -fdebug-prefix-map=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot=  -fvisibility-inlines-hidden  -I/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/git/include   --sysroot=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot   -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections    -fvisibility=hidden -fvisibility-inlines-hidden -DNDEBUG  -DNDEBUG
    C++ flags (Debug):           -I/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/git/include   --sysroot=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot  -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0=/usr/src/debug/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0 -fdebug-prefix-map=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot-native= -fdebug-prefix-map=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot=  -fvisibility-inlines-hidden  -I/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/git/include   --sysroot=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot   -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wundef -Winit-self -Wpointer-arith -Wshadow -Wsign-promo -Wuninitialized -Winit-self -Wno-narrowing -Wno-delete-non-virtual-dtor -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections    -fvisibility=hidden -fvisibility-inlines-hidden -g  -DDEBUG -D_DEBUG
    C Compiler:                  /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot-native/usr/bin/aarch64-poky-linux/aarch64-poky-linux-gcc
    C flags (Release):           -I/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/git/include   --sysroot=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot  -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0=/usr/src/debug/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0 -fdebug-prefix-map=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot-native= -fdebug-prefix-map=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot=   -I/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/git/include   --sysroot=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot   -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-narrowing -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections    -fvisibility=hidden -DNDEBUG  -DNDEBUG
    C flags (Debug):             -I/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/git/include   --sysroot=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot  -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0=/usr/src/debug/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0 -fdebug-prefix-map=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot-native= -fdebug-prefix-map=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot=   -I/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/git/include   --sysroot=/opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot   -fsigned-char -W -Wall -Werror=return-type -Werror=non-virtual-dtor -Werror=address -Werror=sequence-point -Wformat -Werror=format-security -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wundef -Winit-self -Wpointer-arith -Wshadow -Wuninitialized -Winit-self -Wno-narrowing -Wno-comment -fdiagnostics-show-option -pthread -fomit-frame-pointer -ffunction-sections    -fvisibility=hidden -g  -DDEBUG -D_DEBUG
    Linker flags (Release):      -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
    Linker flags (Debug):        -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed
    ccache:                      NO
    Precompiled headers:         NO
    Extra dependencies:          gtk-3 gdk-3 pangocairo-1.0 pango-1.0 atk-1.0 cairo-gobject cairo gdk_pixbuf-2.0 gio-2.0 gthread-2.0 /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot/usr/lib/libjpeg.so /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot/usr/lib/libwebp.so /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot/usr/lib/libpng.so /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot/usr/lib/libz.so /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot/usr/lib/libtiff.so gstbase-1.0 gstreamer-1.0 gobject-2.0 glib-2.0 gstvideo-1.0 gstapp-1.0 gstriff-1.0 gstpbutils-1.0 v4l1 v4l2 gphoto2 gphoto2_port exif dl m pthread rt /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot/usr/lib/libtbb.so
    3rdparty dependencies:

  OpenCV modules:
    To be built:                 core flann imgproc ml objdetect phase_unwrapping photo plot reg surface_matching video xphoto bgsegm face fuzzy img_hash imgcodecs shape tracking videoio xobjdetect highgui superres ts bioinspired dpm features2d line_descriptor saliency calib3d ccalib rgbd stereo structured_light videostab xfeatures2d ximgproc aruco optflow stitching python3
    Disabled:                    world contrib_world freetype text
    Disabled by dependency:      datasets
    Unavailable:                 cudaarithm cudabgsegm cudacodec cudafeatures2d cudafilters cudaimgproc cudalegacy cudaobjdetect cudaoptflow cudastereo cudawarping cudev java python2 viz cnn_3dobj cvv dnn_modern hdf matlab sfm

  GUI: 
    QT:                          NO
    GTK+ 3.x:                    YES (ver 3.22.17)
    GThread :                    YES (ver 2.52.3)
    GtkGlExt:                    NO
    OpenGL support:              NO
    VTK support:                 NO

  Media I/O: 
    ZLib:                        /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot/usr/lib/libz.so (ver 1.2.11)
    JPEG:                        /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot/usr/lib/libjpeg.so (ver )
    WEBP:                        /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot/usr/lib/libwebp.so (ver encoder: 0x020e)
    PNG:                         /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot/usr/lib/libpng.so (ver 1.6.31)
    TIFF:                        /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot/usr/lib/libtiff.so (ver 42 - 4.0.8)
    JPEG 2000:                   NO
    OpenEXR:                     build (ver 1.7.1)
    GDAL:                        NO
    GDCM:                        NO

  Video I/O:
    DC1394 1.x:                  NO
    DC1394 2.x:                  NO
    FFMPEG:                      NO
      avcodec:                   NO
      avformat:                  NO
      avutil:                    NO
      swscale:                   NO
      avresample:                NO
    GStreamer:                   
      base:                      YES (ver 1.12.2)
      video:                     YES (ver 1.12.2)
      app:                       YES (ver 1.12.2)
      riff:                      YES (ver 1.12.2)
      pbutils:                   YES (ver 1.12.2)
    OpenNI:                      NO
    OpenNI PrimeSensor Modules:  NO
    OpenNI2:                     NO
    PvAPI:                       NO
    GigEVisionSDK:               NO
    Aravis SDK:                  NO
    UniCap:                      NO
    UniCap ucil:                 NO
    V4L/V4L2:                    Using libv4l1 (ver 1.12.3) / libv4l2 (ver 1.12.3)
    XIMEA:                       NO
    Xine:                        NO
    Intel Media SDK:             NO
    gPhoto2:                     YES

  Parallel framework:            TBB (ver 2017.0 interface 9106)

  Trace:                         YES ()

  Other third-party libraries:
    Use Intel IPP:               NO
    Use Intel IPP IW:            NO
    Use VA:                      NO
    Use Intel VA-API/OpenCL:     NO
    Use Lapack:                  NO
    Use Eigen:                   YES (ver 3.2.8)
    Use Cuda:                    NO
    Use OpenCL:                  NO
    Use OpenVX:                  NO
    Use custom HAL:              YES (carotene (ver 0.0.1))

  Python 2:
    Interpreter:                 NO

  Python 3:
    Interpreter:                 /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot-native/usr/bin/python3-native/python3 (ver 3.5.3)
    Libraries:                   /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot/usr/lib/libpython3.5m.so (ver 3.5.3)
    numpy:                       /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot/usr/lib/python3.5/site-packages/numpy/core/include (ver undefined - cannot be probed because of the cross-compilation)
    packages path:               lib/python3.5/site-packages

  Python (for build):            /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/recipe-sysroot-native/usr/bin/python3-native/python3

  Java:
    ant:                         NO
    JNI:                         NO
    Java wrappers:               NO
    Java tests:                  NO

  Matlab:                        Matlab not found or implicitly disabled

  Documentation:
    Doxygen:                     NO

  Tests and samples:
    Tests:                       YES
    Performance tests:           YES
    C/C++ Examples:              YES

  Install path:                  /usr

  cvconfig.h is in:              /opt/yocto/tmp/work/aarch64-poky-linux/opencv/3.3+gitAUTOINC+87c27a074d_2a9d1b22ed_a62e20676a_34e4206aef_fccf7cd6a4-r0/build
-----------------------------------------------------------------