On Fri, Aug 16, 2019 at 5:00 AM Martin Jansa <[email protected]> wrote: > > 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? >
It should have adjusted automatically but these headers are searhed relative to its own install and not sysroot reelative so it might have to be addressed. Does it work with normal ( non-multilib ) case ? > 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
