gcc: unify cleanup of include-fixed, apply to cross-canadian

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

(From OE-Core rev: 621e0ac9308cc163fb767a27d63fff6570896b92)

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>
This commit is contained in:
Denys Dmytriyenko 2025-03-20 17:21:07 +01:00 committed by Steve Sakoman
parent 157b779e76
commit 25a23bd2d5
4 changed files with 8 additions and 31 deletions

View 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
}

View File

@ -174,6 +174,8 @@ do_install () {
done
done
done
cleanup_installed_include_fixed
}
ELFUTILS = "nativesdk-elfutils"

View 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

View 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