Hi, I have an app which includes omp.h from gomp, it used to find it without adding any -I for that (with just -fopenmp to enable openmp).
Now the header file is included in RSS: lib32-recipe-sysroot/usr/lib/arm-oemllib32-linux-gnueabi/9.2.0/include/omp.h but no longer found in default search dirs. Is this expected or should gcc be adjusted to search for it automatically? Looking at the default search paths I see: ignoring nonexistent directory "BUILD/work/machine-oemllib32-linux-gnueabi/lib32-component/2.0.0-76-r7/recipe-sysroot-native/usr/bin/arm-oemllib32-linux-gnueabi/../../lib/arm-oemllib32-linux-gnueabi/gcc/arm-oemllib32-linux-gnueabi/9.2.0/../../../../../arm-oemllib32-linux-gnueabi/include" ignoring nonexistent directory "/not/exist/usr/include/c++/9.2.0" ignoring nonexistent directory "/not/exist/usr/include/c++/9.2.0/arm-oemllib32-linux-gnueabi" ignoring nonexistent directory "/not/exist/usr/include/c++/9.2.0/backward" ignoring duplicate directory "BUILD/work/machine-oemllib32-linux-gnueabi/lib32-component/2.0.0-76-r7/recipe-sysroot-native/usr/bin/arm-oemllib32-linux-gnueabi/../../lib/arm-oemllib32-linux-gnueabi/gcc/../../../lib/arm-oemllib32-linux-gnueabi/gcc/arm-oemllib32-linux-gnueabi/9.2.0/include" ignoring nonexistent directory "/not/exist/usr/lib/gcc/arm-oemllib32-linux-gnueabi/9.2.0/include" ignoring nonexistent directory "/not/exist/usr/local/include" ignoring duplicate directory "BUILD/work/machine-oemllib32-linux-gnueabi/lib32-component/2.0.0-76-r7/recipe-sysroot-native/usr/bin/arm-oemllib32-linux-gnueabi/../../lib/arm-oemllib32-linux-gnueabi/gcc/../../../lib/arm-oemllib32-linux-gnueabi/gcc/arm-oemllib32-linux-gnueabi/9.2.0/include-fixed" ignoring nonexistent directory "BUILD/work/machine-oemllib32-linux-gnueabi/lib32-component/2.0.0-76-r7/recipe-sysroot-native/usr/bin/arm-oemllib32-linux-gnueabi/../../lib/arm-oemllib32-linux-gnueabi/gcc/../../../lib/arm-oemllib32-linux-gnueabi/gcc/arm-oemllib32-linux-gnueabi/9.2.0/../../../../../arm-oemllib32-linux-gnueabi/include" ignoring nonexistent directory "/not/exist/usr/include" #include "..." search starts here: #include <...> search starts here: BUILD/work/machine-oemllib32-linux-gnueabi/lib32-component/2.0.0-76-r7/recipe-sysroot-native/usr/bin/arm-oemllib32-linux-gnueabi/../../lib/arm-oemllib32-linux-gnueabi/gcc/arm-oemllib32-linux-gnueabi/9.2.0/include BUILD/work/machine-oemllib32-linux-gnueabi/lib32-component/2.0.0-76-r7/recipe-sysroot-native/usr/bin/arm-oemllib32-linux-gnueabi/../../lib/arm-oemllib32-linux-gnueabi/gcc/arm-oemllib32-linux-gnueabi/9.2.0/include-fixed End of search list. On Tue, Aug 13, 2019 at 5:29 PM Khem Raj <[email protected]> wrote: > OE does not use the traditional /usr/lib/gcc prefix to store gcc-runtime > it basically is moved into libdir, however some newer files were > installed by newer versions of gcc especially libgomp ( omp.h openacc.h ) > into gcclibdir, so we have content in both directories, this confuses > other tools which are trying to guess the gcc installation and its > runtime location, since now we have two directories, the tools either > choose one or other and we get inconsistent behavior, e.g. clang for > aarch64 uses /usr/lib but same clang for riscv64 chose /usr/lib/gcc > > This change ensures that OE ends up with single valid location for gcc > runtime files > > Move more common bits into common inc file > > Signed-off-by: Khem Raj <[email protected]> > --- > v2: Divert packaging to use new path in whole recipe > > meta/recipes-devtools/gcc/gcc-runtime.inc | 18 +++++++++++++++--- > meta/recipes-devtools/gcc/gcc-runtime_8.3.bb | 10 ---------- > meta/recipes-devtools/gcc/gcc-runtime_9.1.bb | 10 ---------- > 3 files changed, 15 insertions(+), 23 deletions(-) > > diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc > b/meta/recipes-devtools/gcc/gcc-runtime.inc > index a5c2600d7f..22c1d78dd1 100644 > --- a/meta/recipes-devtools/gcc/gcc-runtime.inc > +++ b/meta/recipes-devtools/gcc/gcc-runtime.inc > @@ -17,6 +17,12 @@ EXTRA_OECONF_PATHS = "\ > EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu" > EXTRA_OECONF_append = " --cache-file=${B}/config.cache" > > +# Disable ifuncs for libatomic on arm conflicts -march/-mcpu > +EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no " > + > +# Building with thumb enabled on armv6t fails > +ARM_INSTRUCTION_SET_armv6 = "arm" > + > RUNTIMELIBITM = "libitm" > RUNTIMELIBITM_arc = "" > RUNTIMELIBITM_mipsarch = "" > @@ -77,6 +83,11 @@ do_install () { > cd ${B}/${TARGET_SYS}/$d/ > oe_runmake 'DESTDIR=${D}' > MULTIBUILDTOP=${B}/${TARGET_SYS}/$d/ install > done > + if [ -d ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include ]; then > + install -d ${D}${libdir}/${TARGET_SYS}/${BINV}/include > + mv ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/* > ${D}${libdir}/${TARGET_SYS}/${BINV}/include > + rmdir --ignore-fail-on-non-empty -p > ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include > + fi > rm -rf ${D}${infodir}/libgomp.info ${D}${infodir}/dir > rm -rf ${D}${infodir}/libitm.info ${D}${infodir}/dir > rm -rf ${D}${infodir}/libquadmath.info ${D}${infodir}/dir > @@ -205,7 +216,7 @@ FILES_libssp-dev = "\ > ${libdir}/libssp*.so \ > ${libdir}/libssp*_nonshared.a \ > ${libdir}/libssp*.la \ > - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/ssp \ > + ${libdir}/${TARGET_SYS}/${BINV}/include/ssp \ > " > SUMMARY_libssp-dev = "GNU stack smashing protection library - development > files" > FILES_libssp-staticdev = "${libdir}/libssp*.a" > @@ -214,7 +225,7 @@ SUMMARY_libssp-staticdev = "GNU stack smashing > protection library - static devel > FILES_libquadmath = "${libdir}/libquadmath*.so.*" > SUMMARY_libquadmath = "GNU quad-precision math library" > FILES_libquadmath-dev = "\ > - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/quadmath* \ > + ${libdir}/${TARGET_SYS}/${BINV}/include/quadmath* \ > ${libdir}/libquadmath*.so \ > ${libdir}/libquadmath.la \ > " > @@ -239,7 +250,8 @@ FILES_libgomp-dev = "\ > ${libdir}/libgomp*${SOLIBSDEV} \ > ${libdir}/libgomp*.la \ > ${libdir}/libgomp.spec \ > - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/omp.h \ > + ${libdir}/${TARGET_SYS}/${BINV}/include/omp.h \ > + ${libdir}/${TARGET_SYS}/${BINV}/include/openacc.h \ > " > SUMMARY_libgomp-dev = "GNU OpenMP parallel programming library - > development files" > FILES_libgomp-staticdev = "${libdir}/libgomp*.a" > diff --git a/meta/recipes-devtools/gcc/gcc-runtime_8.3.bb > b/meta/recipes-devtools/gcc/gcc-runtime_8.3.bb > index a1c7a76d0b..dd430b57eb 100644 > --- a/meta/recipes-devtools/gcc/gcc-runtime_8.3.bb > +++ b/meta/recipes-devtools/gcc/gcc-runtime_8.3.bb > @@ -1,12 +1,2 @@ > require recipes-devtools/gcc/gcc-${PV}.inc > require gcc-runtime.inc > - > -# Disable ifuncs for libatomic on arm conflicts -march/-mcpu > -EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no " > - > -FILES_libgomp-dev += "\ > - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/openacc.h \ > -" > - > -# Building with thumb enabled on armv6t fails > -ARM_INSTRUCTION_SET_armv6 = "arm" > diff --git a/meta/recipes-devtools/gcc/gcc-runtime_9.1.bb > b/meta/recipes-devtools/gcc/gcc-runtime_9.1.bb > index a1c7a76d0b..dd430b57eb 100644 > --- a/meta/recipes-devtools/gcc/gcc-runtime_9.1.bb > +++ b/meta/recipes-devtools/gcc/gcc-runtime_9.1.bb > @@ -1,12 +1,2 @@ > require recipes-devtools/gcc/gcc-${PV}.inc > require gcc-runtime.inc > - > -# Disable ifuncs for libatomic on arm conflicts -march/-mcpu > -EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no " > - > -FILES_libgomp-dev += "\ > - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/openacc.h \ > -" > - > -# Building with thumb enabled on armv6t fails > -ARM_INSTRUCTION_SET_armv6 = "arm" > -- > 2.22.0 > > -- > _______________________________________________ > Openembedded-core mailing list > [email protected] > http://lists.openembedded.org/mailman/listinfo/openembedded-core >
-- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
