]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/commitdiff
gcc: unify cleanup of include-fixed, apply to cross-canadian
authorDenys Dmytriyenko <denys@konsulko.com>
Thu, 20 Mar 2025 16:21:07 +0000 (17:21 +0100)
committerSteve Sakoman <steve@sakoman.com>
Thu, 20 Mar 2025 16:34:43 +0000 (09:34 -0700)
Since target and cross variants were already doing similar cleanup
of include-fixed headers, as those aren't used, unify the code and
also apply the same to cross-canadian variant.

Some of those header files get processed with a tool that leaves
absolute buildpaths inside the file's commented section, causing
QA errors. Since those aren't used, let's remove them.

This may be a temporary solution until the tool itself gets fixed
to not embed absolute buildpaths in the header files:
https://lists.openembedded.org/g/openembedded-core/topic/107268307

Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
meta/recipes-devtools/gcc/gcc-common.inc
meta/recipes-devtools/gcc/gcc-cross-canadian.inc
meta/recipes-devtools/gcc/gcc-cross.inc
meta/recipes-devtools/gcc/gcc-target.inc

index 7f5cc109e63bea2f8c4661992329f4ee6b0ae0d7..01de93cc3c402742e873593a4d108eef1e5baec8 100644 (file)
@@ -138,3 +138,7 @@ remove_sysroot_paths_from_checksum_options () {
        sed -i "s@${DEBUG_PREFIX_MAP}@@g" ${B}/gcc/checksum-options
        sed -i "s@$stagingdir@$replacement@g" ${B}/gcc/checksum-options
 }
+
+cleanup_installed_include_fixed () {
+       find ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include-fixed -type f -not -name "README" -not -name limits.h -not -name syslimits.h | xargs rm -f
+}
index adcaef2b0f87d923195b52603fcbbaa3fff3c115..69ca18bf6e04b41c44d0bc45d996740c54731485 100644 (file)
@@ -174,6 +174,8 @@ do_install () {
                        done
                done
        done
+
+       cleanup_installed_include_fixed
 }
 
 ELFUTILS = "nativesdk-elfutils"
index 1dbb6dc42baf929f1bb7b9ae7f5c8871ee068de2..9c8cc94c3ac2a8c1fc5789464f1ce03f70b71880 100644 (file)
@@ -108,7 +108,7 @@ do_install () {
        cp ${S}/libquadmath/quadmath.h ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/
        cp ${S}/libquadmath/quadmath_weak.h ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include/
 
-       find ${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include-fixed -type f -not -name "README" -not -name limits.h -not -name syslimits.h | xargs rm -f
+       cleanup_installed_include_fixed
 
        # install LTO linker plugins where binutils tools can find it
        install -d ${D}${libdir}/bfd-plugins
index f51d94cd65216f7b61e54aca76a8487ded06c912..08141f32e63656c166c72e2e452f82e1b59e9b0c 100644 (file)
@@ -206,37 +206,8 @@ do_install () {
        install -d ${D}${libdir}/bfd-plugins
        ln -sf ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/liblto_plugin.so ${D}${libdir}/bfd-plugins/liblto_plugin.so
        chown -R root:root ${D}
-}
 
-do_install:append () {
-        #
-        # Thefixinc.sh script, run on the gcc's compile phase, looks into sysroot header
-        # files and places the modified files into
-        # {D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include-fixed folder. This makes the
-        # build not deterministic. The following code prunes all those headers
-        # except those under include-fixed/linux, *limits.h and README, yielding
-        # the same include-fixed folders no matter what sysroot
-
-        include_fixed="${D}${libdir}/gcc/${TARGET_SYS}/${BINV}/include-fixed"
-        for f in $(find ${include_fixed} -type f); do
-                case $f in
-                */include-fixed/linux/*)
-                    continue
-                    ;;
-                */include-fixed/*limits.h)
-                    continue
-                    ;;
-                */include-fixed/README)
-                    continue
-                    ;;
-                *)
-                    # remove file and directory if empty
-                    bbdebug 2 "Pruning $f"
-                    rm $f
-                    find $(dirname $f) -maxdepth 0 -empty -exec rmdir {} \;
-                    ;;
-                esac
-        done
+       cleanup_installed_include_fixed
 }
 
 # Installing /usr/lib/gcc/* means we'd have two copies, one from gcc-cross