gcc-runtime: Move content from gcclibdir into libdir
PATCH 1/1 gcc-runtime: Move content from gcclibdir into libdir
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
--- meta/recipes-devtools/gcc/gcc-runtime.inc | 5 +++++ meta/recipes-devtools/gcc/gcc-runtime_8.3.bb | 3 ++- meta/recipes-devtools/gcc/gcc-runtime_9.1.bb | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-)
meta/recipes-devtools/gcc/gcc-runtime.inc +5 -0
@@ -77,6 +77,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
meta/recipes-devtools/gcc/gcc-runtime_8.3.bb +2 -1
@@ -5,7 +5,8 @@ require gcc-runtime.inc EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no " FILES_libgomp-dev += "\ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/openacc.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/omp.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/openacc.h \ " # Building with thumb enabled on armv6t fails
meta/recipes-devtools/gcc/gcc-runtime_9.1.bb +2 -1
@@ -5,7 +5,8 @@ require gcc-runtime.inc EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no " FILES_libgomp-dev += "\ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/openacc.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/omp.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/openacc.h \ " # Building with thumb enabled on armv6t fails
Signature · 1 line
2.22.0
Quoted 15 lines · Khem Raj
OE does not use the traditional
/usr/lib/gccprefix to store gcc- runtime
it basically is moved into libdir, however some newer files were installed by newer versions of gcc especially libgomp (omp.hopenacc.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/libbut same clang for riscv64 chose/usr/lib/gccThis change ensures that OE ends up with single valid location for gcc
runtime files
Quoted 6 lines
Signed-off-by Khem Raj <[email protected]>--- meta/recipes-devtools/gcc/gcc-runtime.inc | 5 +++++ meta/recipes-devtools/gcc/gcc-runtime_8.3.bb | 3 ++- meta/recipes-devtools/gcc/gcc-runtime_9.1.bb | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-)
This appears to break mingw:
https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/925
Cheers,
Richard
Quoted 53 lines
meta/recipes-devtools/gcc/gcc-runtime.inc +0
-0@@ -77,6 +77,11 @@ do_install () { cd ${B}/${TARGET_SYS}/$d/ oe_runmake 'DESTDIR=${D}'MULTIBUILDTOP=${B}/${TARGET_SYS}/$d/ install
meta/recipes-devtools/gcc/gcc-runtime.inc +3
-0done + 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
meta/recipes-devtools/gcc/gcc-runtime.inc +1
-0+ rmdir --ignore-fail-on-non-empty -p${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include
meta/recipes-devtools/gcc/gcc-runtime.inc +1
-0+ 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}/dirmeta/recipes-devtools/gcc/gcc-runtime_8.3.bb +2
-1@@ -5,7 +5,8 @@ require gcc-runtime.inc EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no " FILES_libgomp-dev += "\ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/openacc.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/omp.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/openacc.h \ " # Building with thumb enabled on armv6t failsmeta/recipes-devtools/gcc/gcc-runtime_9.1.bb +2
-1@@ -5,7 +5,8 @@ require gcc-runtime.inc EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no " FILES_libgomp-dev += "\ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/openacc.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/omp.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/openacc.h \ " # Building with thumb enabled on armv6t failsSignature · 1 line
2.22.0
Quoted 24 lines · Richard Purdie
Quoted 15 lines · Khem Raj
OE does not use the traditional
/usr/lib/gccprefix to store gcc- runtime
it basically is moved into libdir, however some newer files were installed by newer versions of gcc especially libgomp (omp.hopenacc.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/libbut same clang for riscv64 chose/usr/lib/gccThis change ensures that OE ends up with single valid location for gcc
runtime filesQuoted 6 lines
Signed-off-by Khem Raj <[email protected]>--- meta/recipes-devtools/gcc/gcc-runtime.inc | 5 +++++ meta/recipes-devtools/gcc/gcc-runtime_8.3.bb | 3 ++- meta/recipes-devtools/gcc/gcc-runtime_9.1.bb | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-)
Quoted 4 lines
This appears to break mingw:
https://autobuilder.yoctoproject.org/typhoon/#/builders/89/builds/925
seems virtual:nativesdk:/home/pokybuild/yocto-worker/meta-mingw/build/meta/recipes-devtools/gcc/gcc-runtime_9.1.bb:do_package
but I cant see which files can you help
Quoted 59 lines
Cheers,
Richard
Quoted 53 lines
meta/recipes-devtools/gcc/gcc-runtime.inc +0
-0@@ -77,6 +77,11 @@ do_install () { cd ${B}/${TARGET_SYS}/$d/ oe_runmake 'DESTDIR=${D}'MULTIBUILDTOP=${B}/${TARGET_SYS}/$d/ install
donemeta/recipes-devtools/gcc/gcc-runtime.inc +3
-0+ 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}/includemeta/recipes-devtools/gcc/gcc-runtime.inc +1
-0+ 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}/dirmeta/recipes-devtools/gcc/gcc-runtime_8.3.bb +2
-1@@ -5,7 +5,8 @@ require gcc-runtime.inc EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no " FILES_libgomp-dev += "\ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/openacc.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/omp.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/openacc.h \ " # Building with thumb enabled on armv6t failsmeta/recipes-devtools/gcc/gcc-runtime_9.1.bb +2
-2@@ -5,7 +5,8 @@ require gcc-runtime.inc EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no " FILES_libgomp-dev += "\ - ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/openacc.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/omp.h \ + ${libdir}/${TARGET_SYS}/${BINV}/include/openacc.h \ " # Building with thumb enabled on armv6t fails --2.22.0
Quoted 33 lines · Khem Raj
Quoted 31 lines · Richard Purdie
Quoted 21 lines · Khem Raj
OE does not use the traditional
/usr/lib/gccprefix to store gcc- runtime
it basically is moved into libdir, however some newer files were installed by newer versions of gcc especially libgomp (omp.hopenacc.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/libbut same clang for riscv64 chose/usr/lib/gccThis change ensures that OE ends up with single valid location for
gcc
runtime filesQuoted 6 lines
Signed-off-by Khem Raj <[email protected]>--- meta/recipes-devtools/gcc/gcc-runtime.inc | 5 +++++ meta/recipes-devtools/gcc/gcc-runtime_8.3.bb | 3 ++- meta/recipes-devtools/gcc/gcc-runtime_9.1.bb | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-)This appears to break mingw:
Quoted 7 lines
seems virtual:nativesdk:/home/pokybuild/yocto-worker/meta-
mingw/build/meta/recipes-devtools/gcc/gcc-runtime_9.1.bb:do_packagebut I cant see which files can you help
They're in the 1b and 2b logs, e.g.:
https://autobuilder.yoctoproject.org/typhoon/api/v2/logs/731185/raw
Cheers,
Richard