]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commitdiff
gcc: unify cleanup of include-fixed, apply to cross-canadian
authorDenys Dmytriyenko <denys@konsulko.com>
Mon, 22 Jul 2024 05:34:59 +0000 (01:34 -0400)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sat, 3 Aug 2024 06:55:32 +0000 (07:55 +0100)
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>
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 1b183d6fc19974a7aa9e0dd4f69eb15d6dfb8704..bbe91ad0f9b11c2bfbee85eab21bfb57bedcb7f9 100644 (file)
@@ -175,6 +175,8 @@ do_install () {
                        done
                done
        done
+
+       cleanup_installed_include_fixed
 }
 
 ELFUTILS = "nativesdk-elfutils"
index 68e33c735827cee2966e19e5532c393d3b6032f1..f85ccd5c23d6ad0379393c424c7407d62aca888f 100644 (file)
@@ -110,7 +110,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 c847838ec7aefd9f2ea0e13fbc8aaf2017ebb5bc..6b47c10413a1a073ea6e84f5e69da13ee16af22b 100644 (file)
@@ -193,37 +193,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