Building with OpenMP support in OE fails on #include <omp.h>
Here's the problem, running in a devshell:
# echo '#include <omp.h>' > /tmp/compileme.c
# $CC -c -fopenmp /tmp/compileme.c
/tmp/compileme.c:1:17: fatal error: omp.h: No such file or directory
#include <omp.h>
^
compilation terminated.The #pragma's and linking of OpenMP work just fine, it's just the inclusion of omp.h that appears to fail.
What I was actually trying to do is to activate OpenMP in OpenCV to get decent performance on a multicore ARM system. But this is holding me back now.
Looking in the sysroots reveals that the include file is actually there:
$ find tmp-glibc/sysroots/topic-miami-florida-med-xc7z030 -name omp.h tmp-glibc/sysroots/topic-miami-florida-med-xc7z030/usr/lib/gcc/arm-oe-linux-gnueabi/4.9.1/include/omp.h
Maybe something missing in the OE compiler options for the compiler?
Met vriendelijke groet / kind regards,
Mike Looijmans
System Expert
TOPIC Embedded Systems Eindhovenseweg 32-C, NL-5683 KH Best Postbus 440, NL-5680 AK Best
Telefoon: (+31) (0) 499 33 69 79
Telefax: (+31) (0) 499 33 69 70
E-mail: [email protected]
Website: www.topic.nl
Please consider the environment before printing this e-mail
Topic zoekt gedreven (embedded) software specialisten!
http://topic.nl/vacatures/topic-zoekt-software-engineers/
Hi Mike,
Quoted 17 lines · On Monday 02 March 2015 15:54:04 Mike Looijmans wrote:
Here's the problem, running in a devshell:
# echo '#include <omp.h>' > /tmp/compileme.c # $CC -c -fopenmp /tmp/compileme.c /tmp/compileme.c:1:17: fatal error: omp.h: No such file or directory #include <omp.h> ^ compilation terminated.The #pragma's and linking of OpenMP work just fine, it's just the inclusion of
omp.hthat appears to fail.What I was actually trying to do is to activate OpenMP in OpenCV to get decent performance on a multicore ARM system. But this is holding me back now.
Quoted 5 lines
Looking in the sysroots reveals that the include file is actually there:
$ find tmp-glibc/sysroots/topic-miami-florida-med-xc7z030 -name omp.h tmp-glibc/sysroots/topic-miami-florida-med-xc7z030/usr/lib/gcc/arm-oe-linux- gnueabi/4.9.1/include/omp.h
Funnily enough this is an issue I fixed a few weeks ago - here's the bug which contains a link to the fix:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=7141
Cheers,
Paul
Signature · 2 lines
Paul Eggleton Intel Open Source Technology Centre
Quoted 22 lines · Paul Eggleton
Hi Mike,
Quoted 19 lines · On Monday 02 March 2015 15:54:04 Mike Looijmans wrote:
Here's the problem, running in a devshell:
# echo '#include <omp.h>' > /tmp/compileme.c # $CC -c -fopenmp /tmp/compileme.c /tmp/compileme.c:1:17: fatal error: omp.h: No such file or directory #include <omp.h> ^ compilation terminated.The #pragma's and linking of OpenMP work just fine, it's just the inclusion of
omp.hthat appears to fail.What I was actually trying to do is to activate OpenMP in OpenCV to get decent performance on a multicore ARM system. But this is holding me back now.
Looking in the sysroots reveals that the include file is actually there:
Quoted 8 lines
Quoted 3 lines
$ find tmp-glibc/sysroots/topic-miami-florida-med-xc7z030 -name omp.h tmp-glibc/sysroots/topic-miami-florida-med-xc7z030/usr/lib/gcc/arm-oe-linux- gnueabi/4.9.1/include/omp.hFunnily enough this is an issue I fixed a few weeks ago - here's the bug which contains a link to the fix:
Ah okay, I'll upgrade to current master and retest.
If it works, I'll post the patch to make opencv build with openmp.
Signature · 1 line
Mike Looijmans
Quoted 27 lines · Mike Looijmans
Quoted 26 lines · Paul Eggleton
Hi Mike,
Quoted 22 lines · On Monday 02 March 2015 15:54:04 Mike Looijmans wrote:
Here's the problem, running in a devshell:
# echo '#include <omp.h>' > /tmp/compileme.c # $CC -c -fopenmp /tmp/compileme.c /tmp/compileme.c:1:17: fatal error: omp.h: No such file or directory #include <omp.h> ^ compilation terminated.The #pragma's and linking of OpenMP work just fine, it's just the inclusion of
omp.hthat appears to fail.What I was actually trying to do is to activate OpenMP in OpenCV to get decent performance on a multicore ARM system. But this is holding me back now.
Looking in the sysroots reveals that the include file is actually there:
$ find tmp-glibc/sysroots/topic-miami-florida-med-xc7z030 -name omp.h tmp-glibc/sysroots/topic-miami-florida-med-xc7z030/usr/lib/gcc/arm-oe-linux- gnueabi/4.9.1/include/omp.h
Quoted 8 lines
Quoted 4 lines
Funnily enough this is an issue I fixed a few weeks ago - here's the bug which contains a link to the fix:
Ah okay, I'll upgrade to current master and retest.
If it works, I'll post the patch to make opencv build with openmp.
Hmm, OpenCV now builds fine with OpenMP support for my dual-core ARM system, I can also see that it now links to libgomp, but apparently it doesn't actually use any OpenMP threading, as none of the filters I've tried ever uses more than one thread to process the image data. So I guess actually activating OpenMP is just a pointless waste. But for those willing to try, just add this line to the opencv recipe:
EXTRA_OECMAKE += "-DWITH_OPENMP=ON"
Met vriendelijke groet / kind regards,
Mike Looijmans
System Expert
TOPIC Embedded Systems Eindhovenseweg 32-C, NL-5683 KH Best Postbus 440, NL-5680 AK Best
Telefoon: (+31) (0) 499 33 69 79
Telefax: (+31) (0) 499 33 69 70
E-mail: [email protected]
Website: www.topic.nl
Please consider the environment before printing this e-mail
Topic zoekt gedreven (embedded) software specialisten!
http://topic.nl/vacatures/topic-zoekt-software-engineers/