diff options
author | jmbills <jason.m.bills@intel.com> | 2021-10-04 22:42:48 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-04 22:42:48 +0300 |
commit | 0c9e31989c615598b5d042ffab385606660c93c0 (patch) | |
tree | 8019999b0ca042482e5193d6cabc06220c71d776 /poky/meta/recipes-devtools/gcc | |
parent | 04cd92067d2481643df5010cb39b2134b648cf4d (diff) | |
parent | ffe6d597d9e3d4407cf8062b5d6505a80ce08f41 (diff) | |
download | openbmc-0c9e31989c615598b5d042ffab385606660c93c0.tar.xz |
Update
Diffstat (limited to 'poky/meta/recipes-devtools/gcc')
28 files changed, 304 insertions, 779 deletions
diff --git a/poky/meta/recipes-devtools/gcc/gcc-11.1.inc b/poky/meta/recipes-devtools/gcc/gcc-11.2.inc index c21242af5..9fd30f52a 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-11.1.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-11.2.inc @@ -2,11 +2,11 @@ require gcc-common.inc # Third digit in PV should be incremented after a minor release -PV = "11.1.0" +PV = "11.2.0" # BINV should be incremented to a revision after a minor gcc release -BINV = "11.1.1" +BINV = "11.2.0" FILESEXTRAPATHS =. "${FILE_DIRNAME}/gcc:${FILE_DIRNAME}/gcc/backport:" @@ -27,7 +27,6 @@ LIC_FILES_CHKSUM = "\ #BASEURI ?= "https://github.com/gcc-mirror/gcc/archive/${RELEASE}.zip;downloadfilename=gcc-${PV}-${RELEASE}.zip" BASEURI ?= "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.xz \ - http://downloads.yoctoproject.org/mirror/sources/gcc-11.1.0-9ee61d2b51df012c659359873637cc2162ecccf3.patch;apply=yes;name=backports \ " SRC_URI = "\ ${BASEURI} \ @@ -68,13 +67,9 @@ SRC_URI = "\ file://0035-gentypes-genmodes-Do-not-use-__LINE__-for-maintainin.patch \ file://0036-mingw32-Enable-operation_not_supported.patch \ file://0037-libatomic-Do-not-enforce-march-on-aarch64.patch \ - file://0001-libstdc-Fix-installation-of-python-hooks-PR-99453.patch \ - file://0038-arc-Update-64bit-move-split-patterns.patch \ - file://0039-arc-Fix-u-maddhisi-patterns.patch \ - file://0040-arc-Update-doloop_end-patterns.patch \ + file://0041-apply-debug-prefix-maps-before-checksumming-DIEs.patch \ " -SRC_URI[sha256sum] = "4c4a6fb8a8396059241c2e674b85b351c26a5d678274007f076957afa1cc9ddf" -SRC_URI[backports.sha256sum] = "69274bebd6c069a13443d4af61070e854740a639ec4d66eedf3e80070363587b" +SRC_URI[sha256sum] = "d08edc536b54c372a1010ff6619dd274c0f1603aa49212ba20f7aa2cda36fa8b" S = "${TMPDIR}/work-shared/gcc-${PV}-${PR}/gcc-${PV}" @@ -87,7 +82,7 @@ FORTRAN = "" JAVA = "" SSP ?= "--disable-libssp" -SSP_mingw32 = "--enable-libssp" +SSP:mingw32 = "--enable-libssp" EXTRA_OECONF_BASE = "\ ${SSP} \ diff --git a/poky/meta/recipes-devtools/gcc/gcc-common.inc b/poky/meta/recipes-devtools/gcc/gcc-common.inc index 629fa26df..74190644e 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-common.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-common.inc @@ -12,7 +12,7 @@ inherit autotools gettext texinfo BPN = "gcc" COMPILERDEP = "virtual/${MLPREFIX}${TARGET_PREFIX}gcc:do_gcc_stash_builddir" -COMPILERDEP_class-nativesdk = "virtual/${TARGET_PREFIX}gcc-crosssdk:do_gcc_stash_builddir" +COMPILERDEP:class-nativesdk = "virtual/${TARGET_PREFIX}gcc-crosssdk:do_gcc_stash_builddir" python extract_stashed_builddir () { src = d.expand("${COMPONENTS_DIR}/${BUILD_ARCH}/gcc-stashed-builddir-${TARGET_SYS}") @@ -83,7 +83,7 @@ def get_tune_parameters(tune, d): get_tune_parameters[vardepsexclude] = "AVAILTUNES TUNE_CCARGS OVERRIDES TUNE_FEATURES BASE_LIB BASELIB TUNE_ARCH ABIEXTENSION TARGET_FPU TUNE_PKGARCH PACKAGE_EXTRA_ARCHS" -DEBIANNAME_${MLPREFIX}libgcc = "libgcc1" +DEBIANNAME:${MLPREFIX}libgcc = "libgcc1" MIRRORS =+ "\ ${GNU_MIRROR}/gcc ftp://gcc.gnu.org/pub/gcc/releases/ \n \ diff --git a/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc b/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc index dc7f458b2..e4cdb73f0 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-configure-common.inc @@ -45,27 +45,27 @@ EXTRA_OECONF = "\ # glibc version is a minimum controlling whether features are enabled. # Doesn't need to track glibc exactly -EXTRA_OECONF_append_libc-glibc = " --with-glibc-version=2.28 " +EXTRA_OECONF:append:libc-glibc = " --with-glibc-version=2.28 " # Set this here since GCC configure won't auto-detect and enable # initfini-arry when cross compiling. -EXTRA_OECONF_append = " --enable-initfini-array" +EXTRA_OECONF:append = " --enable-initfini-array" export gcc_cv_collect2_libs = 'none required' # We need to set gcc_cv_collect2_libs else there is cross-compilation badness # in the config.log files (which might not get generated until do_compile # hence being missed by the insane do_configure check). -EXTRA_OECONF_append_linux = " --enable-__cxa_atexit" +EXTRA_OECONF:append:linux = " --enable-__cxa_atexit" -EXTRA_OECONF_append_mips64 = " --with-abi=64 --with-arch-64=mips64 --with-tune-64=mips64" -EXTRA_OECONF_append_mips64el = " --with-abi=64 --with-arch-64=mips64 --with-tune-64=mips64" -EXTRA_OECONF_append_mips64n32 = " --with-abi=64 --with-arch-64=mips64 --with-tune-64=mips64" -EXTRA_OECONF_append_mips64eln32 = " --with-abi=64 --with-arch-64=mips64 --with-tune-64=mips64" -EXTRA_OECONF_append_mipsisa32r6el = " --with-abi=32 --with-arch=mips32r6" -EXTRA_OECONF_append_mipsisa32r6 = " --with-abi=32 --with-arch=mips32r6" -EXTRA_OECONF_append_mipsisa64r6el = " --with-abi=64 --with-arch-64=mips64r6" -EXTRA_OECONF_append_mipsisa64r6 = " --with-abi=64 --with-arch-64=mips64r6" +EXTRA_OECONF:append:mips64 = " --with-abi=64 --with-arch-64=mips64 --with-tune-64=mips64" +EXTRA_OECONF:append:mips64el = " --with-abi=64 --with-arch-64=mips64 --with-tune-64=mips64" +EXTRA_OECONF:append:mips64n32 = " --with-abi=64 --with-arch-64=mips64 --with-tune-64=mips64" +EXTRA_OECONF:append:mips64eln32 = " --with-abi=64 --with-arch-64=mips64 --with-tune-64=mips64" +EXTRA_OECONF:append:mipsisa32r6el = " --with-abi=32 --with-arch=mips32r6" +EXTRA_OECONF:append:mipsisa32r6 = " --with-abi=32 --with-arch=mips32r6" +EXTRA_OECONF:append:mipsisa64r6el = " --with-abi=64 --with-arch-64=mips64r6" +EXTRA_OECONF:append:mipsisa64r6 = " --with-abi=64 --with-arch-64=mips64r6" EXTRA_OECONF_GCC_FLOAT ??= "" CPPFLAGS = "" @@ -74,7 +74,7 @@ SYSTEMHEADERS = "${target_includedir}" SYSTEMLIBS = "${target_base_libdir}/" SYSTEMLIBS1 = "${target_libdir}/" -do_configure_prepend () { +do_configure:prepend () { # teach gcc to find correct target includedir when checking libc ssp support mkdir -p ${B}/gcc echo "NATIVE_SYSTEM_HEADER_DIR = ${SYSTEMHEADERS}" > ${B}/gcc/t-oe diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc index 1872faee1..495dd9070 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian.inc @@ -65,7 +65,7 @@ do_compile () { PACKAGES = "${PN}-dbg ${PN} ${PN}-doc" -FILES_${PN} = "\ +FILES:${PN} = "\ ${exec_prefix}/bin/* \ ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/* \ ${gcclibdir}/${TARGET_SYS}/${BINV}/*.o \ @@ -81,9 +81,9 @@ FILES_${PN} = "\ ${prefix}/${TARGET_SYS}/lib/* \ ${prefix}/${TARGET_SYS}${target_includedir}/* \ " -INSANE_SKIP_${PN} += "dev-so" +INSANE_SKIP:${PN} += "dev-so" -FILES_${PN}-doc = "\ +FILES:${PN}-doc = "\ ${infodir} \ ${mandir} \ ${gcclibdir}/${TARGET_SYS}/${BINV}/include/README \ @@ -173,16 +173,16 @@ do_install () { ELFUTILS = "nativesdk-elfutils" DEPENDS += "nativesdk-gmp nativesdk-mpfr nativesdk-libmpc ${ELFUTILS} nativesdk-zlib" -RDEPENDS_${PN} += "nativesdk-mpfr nativesdk-libmpc ${ELFUTILS}" +RDEPENDS:${PN} += "nativesdk-mpfr nativesdk-libmpc ${ELFUTILS}" SYSTEMHEADERS = "${target_includedir}/" SYSTEMLIBS = "${target_base_libdir}/" SYSTEMLIBS1 = "${target_libdir}/" EXTRA_OECONF += "--enable-poison-system-directories" -EXTRA_OECONF_remove_elf = "--with-sysroot=/not/exist" -EXTRA_OECONF_remove_eabi = "--with-sysroot=/not/exist" -EXTRA_OECONF_append_elf = " --without-headers --with-newlib" -EXTRA_OECONF_append_eabi = " --without-headers --with-newlib" +EXTRA_OECONF:remove:elf = "--with-sysroot=/not/exist" +EXTRA_OECONF:remove:eabi = "--with-sysroot=/not/exist" +EXTRA_OECONF:append:elf = " --without-headers --with-newlib" +EXTRA_OECONF:append:eabi = " --without-headers --with-newlib" # gcc 4.7 needs -isystem export ARCH_FLAGS_FOR_TARGET = "--sysroot=${STAGING_DIR_TARGET} -isystem=${target_includedir}" diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_11.1.bb b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_11.2.bb index bf53c5cd7..bf53c5cd7 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_11.1.bb +++ b/poky/meta/recipes-devtools/gcc/gcc-cross-canadian_11.2.bb diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross.inc b/poky/meta/recipes-devtools/gcc/gcc-cross.inc index dca4036ab..3ffa1f0c4 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-cross.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-cross.inc @@ -22,7 +22,7 @@ require gcc-configure-common.inc LINKER_HASH_STYLE ?= "sysv" EXTRA_OECONF += "--enable-poison-system-directories=error" -EXTRA_OECONF_append_sh4 = " \ +EXTRA_OECONF:append:sh4 = " \ --with-multilib-list= \ --enable-incomplete-targets \ " @@ -31,9 +31,9 @@ EXTRA_OECONF += "\ --with-system-zlib \ " -EXTRA_OECONF_append_libc-baremetal = " --without-headers" -EXTRA_OECONF_remove_libc-baremetal = "--enable-threads=posix" -EXTRA_OECONF_remove_libc-newlib = "--enable-threads=posix" +EXTRA_OECONF:append:libc-baremetal = " --without-headers" +EXTRA_OECONF:remove:libc-baremetal = "--enable-threads=posix" +EXTRA_OECONF:remove:libc-newlib = "--enable-threads=posix" EXTRA_OECONF_PATHS = "\ --with-gxx-include-dir=/not/exist${target_includedir}/c++/${BINV} \ @@ -44,7 +44,7 @@ EXTRA_OECONF_PATHS = "\ ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_DIR_TARGET}${target_includedir}" -do_configure_prepend () { +do_configure:prepend () { install -d ${RECIPE_SYSROOT}${target_includedir} touch ${RECIPE_SYSROOT}${target_includedir}/limits.h } diff --git a/poky/meta/recipes-devtools/gcc/gcc-cross_11.1.bb b/poky/meta/recipes-devtools/gcc/gcc-cross_11.2.bb index b43cca0c5..b43cca0c5 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-cross_11.1.bb +++ b/poky/meta/recipes-devtools/gcc/gcc-cross_11.2.bb diff --git a/poky/meta/recipes-devtools/gcc/gcc-crosssdk_11.1.bb b/poky/meta/recipes-devtools/gcc/gcc-crosssdk_11.2.bb index 40a6c4fef..40a6c4fef 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-crosssdk_11.1.bb +++ b/poky/meta/recipes-devtools/gcc/gcc-crosssdk_11.2.bb diff --git a/poky/meta/recipes-devtools/gcc/gcc-multilib-config.inc b/poky/meta/recipes-devtools/gcc/gcc-multilib-config.inc index 31b8619be..26bfed950 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-multilib-config.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-multilib-config.inc @@ -31,7 +31,9 @@ python gcc_multilib_setup() { '%s/*/linux64.h' % src_conf_dir, '%s/aarch64/t-aarch64' % src_conf_dir, '%s/aarch64/aarch64.h' % src_conf_dir, + '%s/aarch64/aarch64-linux.h' % src_conf_dir, '%s/aarch64/aarch64-cores.def' % src_conf_dir, + '%s/arm/linux-eabi.h' % src_conf_dir, '%s/*/linux.h' % src_conf_dir, '%s/linux.h' % src_conf_dir) @@ -102,6 +104,8 @@ python gcc_multilib_setup() { r'\1' + wrap_libdir(libdir64) + r'\3'), (r'^(#define\s*GLIBC_DYNAMIC_LINKER64\s*\"\S+\"\s*)(\S+)(\s*\"\S+\"\s*)(\S+)(\s*\".*\")$', r'\1' + wrap_libdir(libdir64) + r'\3' + wrap_libdir(libdir64) + r'\5'), + (r'^(#define\s*GLIBC_DYNAMIC_LINKER\b\s*)(\S+)(\s*\".*\")$', + r'\1' + wrap_libdir(libdir32) + r'\3'), (r'^(#define\s*GLIBC_DYNAMIC_LINKERX32\s*)(\S+)(\s*\".*\")$', r'\1' + wrap_libdir(libdirx32) + r'\3'), (r'^(#define\s*GLIBC_DYNAMIC_LINKERN32\s*)(\S+)(\s*\".*\")$', @@ -112,8 +116,18 @@ python gcc_multilib_setup() { r'\1' + wrap_libdir(libdir64) + r'\3'), (r'^(#define\s*UCLIBC_DYNAMIC_LINKERN32\s*)(\S+)(\s*\".*\")$', r'\1' + wrap_libdir(libdirn32) + r'\3'), + (r'^(#define\s*UCLIBC_DYNAMIC_LINKERX32\s*)(\S+)(\s*\".*\")$', + r'\1' + wrap_libdir(libdirx32) + r'\3'), (r'^(#define\s*UCLIBC_DYNAMIC_LINKER\b\s*)(\S+)(\s*\".*\")$', r'\1' + wrap_libdir(libdir32) + r'\3'), + (r'^(#define\s*MUSL_DYNAMIC_LINKER32\s*)(\S+)(\s*\".*\")$', + r'\1' + wrap_libdir(libdir32) + r'\3'), + (r'^(#define\s*MUSL_DYNAMIC_LINKER64\s*)(\S+)(\s*\".*\")$', + r'\1' + wrap_libdir(libdir64) + r'\3'), + (r'^(#define\s*MUSL_DYNAMIC_LINKERX32\s*)(\S+)(\s*\".*\")$', + r'\1' + wrap_libdir(libdirx32) + r'\3'), + (r'^(#define\s*MUSL_DYNAMIC_LINKER\b\s*)(\S+)(\s*\".*\")$', + r'\1' + wrap_libdir(libdir32) + r'\3'), ] for (i, line) in enumerate(filelines): @@ -138,15 +152,15 @@ python gcc_multilib_setup() { } gcc_header_config_files = { - 'x86_64' : ['gcc/config/i386/linux64.h'], - 'i586' : ['gcc/config/i386/linux64.h'], - 'i686' : ['gcc/config/i386/linux64.h'], - 'mips' : ['gcc/config/mips/linux.h', 'gcc/config/mips/linux64.h'], - 'mips64' : ['gcc/config/mips/linux.h', 'gcc/config/mips/linux64.h'], - 'powerpc' : ['gcc/config/rs6000/linux64.h'], - 'powerpc64' : ['gcc/config/rs6000/linux64.h'], - 'aarch64' : ['gcc/config/aarch64/aarch64.h'], - 'arm' : ['gcc/config/aarch64/aarch64.h'], + 'x86_64' : ['gcc/config/linux.h', 'gcc/config/i386/linux.h', 'gcc/config/i386/linux64.h'], + 'i586' : ['gcc/config/linux.h', 'gcc/config/i386/linux.h', 'gcc/config/i386/linux64.h'], + 'i686' : ['gcc/config/linux.h', 'gcc/config/i386/linux64.h'], + 'mips' : ['gcc/config/linux.h', 'gcc/config/mips/linux.h', 'gcc/config/mips/linux64.h'], + 'mips64' : ['gcc/config/linux.h', 'gcc/config/mips/linux.h', 'gcc/config/mips/linux64.h'], + 'powerpc' : ['gcc/config/linux.h', 'gcc/config/rs6000/linux64.h'], + 'powerpc64' : ['gcc/config/linux.h', 'gcc/config/rs6000/linux64.h'], + 'aarch64' : ['gcc/config/linux.h', 'gcc/config/aarch64/aarch64-linux.h', 'gcc/config/arm/linux-eabi.h'], + 'arm' : ['gcc/config/linux.h', 'gcc/config/aarch64/aarch64-linux.h', 'gcc/config/arm/linux-eabi.h'], } libdir32 = 'SYSTEMLIBS_DIR' @@ -170,7 +184,7 @@ python gcc_multilib_setup() { header_config_files = gcc_header_config_files[target_arch] ml_list = ['DEFAULTTUNE_MULTILIB_ORIGINAL' if mlprefix else 'DEFAULTTUNE'] - mltunes = [('DEFAULTTUNE_virtclass-multilib-%s' % ml) for ml in multilibs] + mltunes = [('DEFAULTTUNE:virtclass-multilib-%s' % ml) for ml in multilibs] if mlprefix: mlindex = 0 for ml in multilibs: diff --git a/poky/meta/recipes-devtools/gcc/gcc-runtime.inc b/poky/meta/recipes-devtools/gcc/gcc-runtime.inc index 59d9a2468..4839a6687 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-runtime.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-runtime.inc @@ -6,7 +6,7 @@ SUMMARY = "Runtime libraries from GCC" # All gcc-runtime packages are now covered by the runtime exception. LICENSE = "GPL-3.0-with-GCC-exception" -CXXFLAGS_remove = "-fvisibility-inlines-hidden" +CXXFLAGS:remove = "-fvisibility-inlines-hidden" EXTRA_OECONF_PATHS = "\ --with-gxx-include-dir=${includedir}/c++/${BINV} \ @@ -14,37 +14,37 @@ EXTRA_OECONF_PATHS = "\ --with-build-sysroot=${STAGING_DIR_TARGET} \ " -EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu" -EXTRA_OECONF_append = " --cache-file=${B}/config.cache" -EXTRA_OECONF_append_libc-newlib = " --with-newlib" +EXTRA_OECONF:append:linuxstdbase = " --enable-clocale=gnu" +EXTRA_OECONF:append = " --cache-file=${B}/config.cache" +EXTRA_OECONF:append:libc-newlib = " --with-newlib" # Disable ifuncs for libatomic on arm conflicts -march/-mcpu -EXTRA_OECONF_append_arm = " libat_cv_have_ifunc=no " -EXTRA_OECONF_append_armeb = " libat_cv_have_ifunc=no " +EXTRA_OECONF:append:arm = " libat_cv_have_ifunc=no " +EXTRA_OECONF:append:armeb = " libat_cv_have_ifunc=no " -DISABLE_STATIC_class-nativesdk ?= "" +DISABLE_STATIC:class-nativesdk ?= "" # Newlib does not support symbol versioning on libsdtcc++ -SYMVERS_CONF_libc-newlib = "" +SYMVERS_CONF:libc-newlib = "" # Building with thumb enabled on armv6t fails -ARM_INSTRUCTION_SET_armv6 = "arm" +ARM_INSTRUCTION_SET:armv6 = "arm" RUNTIMELIBITM = "libitm" -RUNTIMELIBITM_arc = "" -RUNTIMELIBITM_mipsarch = "" -RUNTIMELIBITM_nios2 = "" -RUNTIMELIBITM_microblaze = "" -RUNTIMELIBITM_riscv32 = "" -RUNTIMELIBITM_riscv64 = "" +RUNTIMELIBITM:arc = "" +RUNTIMELIBITM:mipsarch = "" +RUNTIMELIBITM:nios2 = "" +RUNTIMELIBITM:microblaze = "" +RUNTIMELIBITM:riscv32 = "" +RUNTIMELIBITM:riscv64 = "" RUNTIMELIBSSP ?= "" -RUNTIMELIBSSP_mingw32 ?= "libssp" +RUNTIMELIBSSP:mingw32 ?= "libssp" RUNTIMETARGET = "${RUNTIMELIBSSP} libstdc++-v3 libgomp libatomic ${RUNTIMELIBITM} \ ${@bb.utils.contains_any('FORTRAN', [',fortran',',f77'], 'libquadmath', '', d)} \ " # Only build libstdc++ for newlib -RUNTIMETARGET_libc-newlib = "libstdc++-v3" +RUNTIMETARGET:libc-newlib = "libstdc++-v3" # libiberty # libgfortran needs separate recipe due to libquadmath dependency @@ -52,7 +52,7 @@ RUNTIMETARGET_libc-newlib = "libstdc++-v3" # Relative path to be repaced into debug info REL_S = "/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}" -DEBUG_PREFIX_MAP_class-target = " \ +DEBUG_PREFIX_MAP:class-target = " \ -fdebug-prefix-map=${WORKDIR}/recipe-sysroot= \ -fdebug-prefix-map=${WORKDIR}/recipe-sysroot-native= \ -fdebug-prefix-map=${S}=${REL_S} \ @@ -109,7 +109,7 @@ do_install () { fi } -do_install_append_class-target () { +do_install:append:class-target () { if [ "${TARGET_OS}" = "linux-gnuspe" ]; then ln -s ${TARGET_SYS} ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux fi @@ -186,67 +186,67 @@ PACKAGES = "\ libitm-staticdev \ " # The base package doesn't exist, so we clear the recommends. -RRECOMMENDS_${PN}-dbg = "" +RRECOMMENDS:${PN}-dbg = "" # include python debugging scripts -FILES_${PN}-dbg += "\ +FILES:${PN}-dbg += "\ ${libdir}/libstdc++.*-gdb.py \ ${datadir}/gcc-${BINV}/python/libstdcxx \ " -FILES_libg2c = "${target_libdir}/libg2c.so.*" -SUMMARY_libg2c = "Companion runtime library for g77" -FILES_libg2c-dev = "\ +FILES:libg2c = "${target_libdir}/libg2c.so.*" +SUMMARY:libg2c = "Companion runtime library for g77" +FILES:libg2c-dev = "\ ${libdir}/libg2c.so \ ${libdir}/libg2c.a \ ${libdir}/libfrtbegin.a \ " -SUMMARY_libg2c-dev = "Companion runtime library for g77 - development files" +SUMMARY:libg2c-dev = "Companion runtime library for g77 - development files" -FILES_libstdc++ = "${libdir}/libstdc++.so.*" -SUMMARY_libstdc++ = "GNU standard C++ library" -FILES_libstdc++-dev = "\ +FILES:libstdc++ = "${libdir}/libstdc++.so.*" +SUMMARY:libstdc++ = "GNU standard C++ library" +FILES:libstdc++-dev = "\ ${includedir}/c++/ \ ${libdir}/libstdc++.so \ ${libdir}/libstdc++*.la \ ${libdir}/libsupc++.la \ " -SUMMARY_libstdc++-dev = "GNU standard C++ library - development files" -FILES_libstdc++-staticdev = "\ +SUMMARY:libstdc++-dev = "GNU standard C++ library - development files" +FILES:libstdc++-staticdev = "\ ${libdir}/libstdc++*.a \ ${libdir}/libsupc++.a \ " -SUMMARY_libstdc++-staticdev = "GNU standard C++ library - static development files" +SUMMARY:libstdc++-staticdev = "GNU standard C++ library - static development files" -FILES_libstdc++-precompile-dev = "${includedir}/c++/${TARGET_SYS}/bits/*.gch" -SUMMARY_libstdc++-precompile-dev = "GNU standard C++ library - precompiled header files" +FILES:libstdc++-precompile-dev = "${includedir}/c++/${TARGET_SYS}/bits/*.gch" +SUMMARY:libstdc++-precompile-dev = "GNU standard C++ library - precompiled header files" -FILES_libssp = "${libdir}/libssp.so.*" -SUMMARY_libssp = "GNU stack smashing protection library" -FILES_libssp-dev = "\ +FILES:libssp = "${libdir}/libssp.so.*" +SUMMARY:libssp = "GNU stack smashing protection library" +FILES:libssp-dev = "\ ${libdir}/libssp*.so \ ${libdir}/libssp*_nonshared.a \ ${libdir}/libssp*.la \ ${libdir}/${TARGET_SYS}/${BINV}/include/ssp \ " -SUMMARY_libssp-dev = "GNU stack smashing protection library - development files" -FILES_libssp-staticdev = "${libdir}/libssp*.a" -SUMMARY_libssp-staticdev = "GNU stack smashing protection library - static development files" +SUMMARY:libssp-dev = "GNU stack smashing protection library - development files" +FILES:libssp-staticdev = "${libdir}/libssp*.a" +SUMMARY:libssp-staticdev = "GNU stack smashing protection library - static development files" -FILES_libquadmath = "${libdir}/libquadmath*.so.*" -SUMMARY_libquadmath = "GNU quad-precision math library" -FILES_libquadmath-dev = "\ +FILES:libquadmath = "${libdir}/libquadmath*.so.*" +SUMMARY:libquadmath = "GNU quad-precision math library" +FILES:libquadmath-dev = "\ ${libdir}/${TARGET_SYS}/${BINV}/include/quadmath* \ ${libdir}/libquadmath*.so \ ${libdir}/libquadmath.la \ " -SUMMARY_libquadmath-dev = "GNU quad-precision math library - development files" -FILES_libquadmath-staticdev = "${libdir}/libquadmath.a" -SUMMARY_libquadmath-staticdev = "GNU quad-precision math library - static development files" +SUMMARY:libquadmath-dev = "GNU quad-precision math library - development files" +FILES:libquadmath-staticdev = "${libdir}/libquadmath.a" +SUMMARY:libquadmath-staticdev = "GNU quad-precision math library - static development files" -FILES_libgomp = "${libdir}/libgomp*${SOLIBS}" -SUMMARY_libgomp = "GNU OpenMP parallel programming library" -FILES_libgomp-dev = "\ +FILES:libgomp = "${libdir}/libgomp*${SOLIBS}" +SUMMARY:libgomp = "GNU OpenMP parallel programming library" +FILES:libgomp-dev = "\ ${libdir}/libgomp*${SOLIBSDEV} \ ${libdir}/libgomp*.la \ ${libdir}/libgomp.spec \ @@ -254,34 +254,34 @@ FILES_libgomp-dev = "\ ${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" -SUMMARY_libgomp-staticdev = "GNU OpenMP parallel programming library - static development files" +SUMMARY:libgomp-dev = "GNU OpenMP parallel programming library - development files" +FILES:libgomp-staticdev = "${libdir}/libgomp*.a" +SUMMARY:libgomp-staticdev = "GNU OpenMP parallel programming library - static development files" -FILES_libatomic = "${libdir}/libatomic.so.*" -SUMMARY_libatomic = "GNU C++11 atomics support library" -FILES_libatomic-dev = "\ +FILES:libatomic = "${libdir}/libatomic.so.*" +SUMMARY:libatomic = "GNU C++11 atomics support library" +FILES:libatomic-dev = "\ ${libdir}/libatomic.so \ ${libdir}/libatomic.la \ " -SUMMARY_libatomic-dev = "GNU C++11 atomics support library - development files" -FILES_libatomic-staticdev = "${libdir}/libatomic.a" -SUMMARY_libatomic-staticdev = "GNU C++11 atomics support library - static development files" +SUMMARY:libatomic-dev = "GNU C++11 atomics support library - development files" +FILES:libatomic-staticdev = "${libdir}/libatomic.a" +SUMMARY:libatomic-staticdev = "GNU C++11 atomics support library - static development files" -FILES_libitm = "${libdir}/libitm.so.*" -SUMMARY_libitm = "GNU transactional memory support library" -FILES_libitm-dev = "\ +FILES:libitm = "${libdir}/libitm.so.*" +SUMMARY:libitm = "GNU transactional memory support library" +FILES:libitm-dev = "\ ${libdir}/libitm.so \ ${libdir}/libitm.la \ ${libdir}/libitm.spec \ " -SUMMARY_libitm-dev = "GNU transactional memory support library - development files" -FILES_libitm-staticdev = "${libdir}/libitm.a" -SUMMARY_libitm-staticdev = "GNU transactional memory support library - static development files" +SUMMARY:libitm-dev = "GNU transactional memory support library - development files" +FILES:libitm-staticdev = "${libdir}/libitm.a" +SUMMARY:libitm-staticdev = "GNU transactional memory support library - static development files" require gcc-testsuite.inc -EXTRA_OEMAKE_prepend_task-check = "${PARALLEL_MAKE} " +EXTRA_OEMAKE:prepend:task-check = "${PARALLEL_MAKE} " MAKE_CHECK_TARGETS ??= "check-gcc ${@" ".join("check-target-" + i for i in d.getVar("RUNTIMETARGET").split())}" # prettyprinters and xmethods require gdb tooling diff --git a/poky/meta/recipes-devtools/gcc/gcc-runtime_11.1.bb b/poky/meta/recipes-devtools/gcc/gcc-runtime_11.2.bb index dd430b57e..dd430b57e 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-runtime_11.1.bb +++ b/poky/meta/recipes-devtools/gcc/gcc-runtime_11.2.bb diff --git a/poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc b/poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc index 59e91daae..9881afa83 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-sanitizers.inc @@ -47,11 +47,11 @@ do_install () { } INHIBIT_DEFAULT_DEPS = "1" -ALLOW_EMPTY_${PN} = "1" +ALLOW_EMPTY:${PN} = "1" DEPENDS = "virtual/crypt gcc-runtime virtual/${TARGET_PREFIX}gcc" # used to fix ../../../../../../../../../work-shared/gcc-8.3.0-r0/gcc-8.3.0/libsanitizer/libbacktrace/../../libbacktrace/elf.c:772:21: error: 'st.st_mode' may be used uninitialized in this function [-Werror=maybe-uninitialized] -DEBUG_OPTIMIZATION_append = " -Wno-error" +DEBUG_OPTIMIZATION:append = " -Wno-error" BBCLASSEXTEND = "nativesdk" @@ -60,19 +60,19 @@ PACKAGES += "libasan libubsan liblsan libtsan" PACKAGES += "libasan-dev libubsan-dev liblsan-dev libtsan-dev" PACKAGES += "libasan-staticdev libubsan-staticdev liblsan-staticdev libtsan-staticdev" -RDEPENDS_libasan += "libstdc++" -RDEPENDS_libubsan += "libstdc++" -RDEPENDS_liblsan += "libstdc++" -RDEPENDS_libtsan += "libstdc++" -RDEPENDS_libasan-dev += "${PN}" -RDEPENDS_libubsan-dev += "${PN}" -RDEPENDS_liblsan-dev += "${PN}" -RDEPENDS_libtsan-dev += "${PN}" -RRECOMMENDS_${PN} += "libasan libubsan" -RRECOMMENDS_${PN}_append_x86 = " liblsan" -RRECOMMENDS_${PN}_append_x86-64 = " liblsan libtsan" -RRECOMMENDS_${PN}_append_powerpc64 = " liblsan libtsan" -RRECOMMENDS_${PN}_append_aarch64 = " liblsan libtsan" +RDEPENDS:libasan += "libstdc++" +RDEPENDS:libubsan += "libstdc++" +RDEPENDS:liblsan += "libstdc++" +RDEPENDS:libtsan += "libstdc++" +RDEPENDS:libasan-dev += "${PN}" +RDEPENDS:libubsan-dev += "${PN}" +RDEPENDS:liblsan-dev += "${PN}" +RDEPENDS:libtsan-dev += "${PN}" +RRECOMMENDS:${PN} += "libasan libubsan" +RRECOMMENDS:${PN}:append:x86 = " liblsan" +RRECOMMENDS:${PN}:append:x86-64 = " liblsan libtsan" +RRECOMMENDS:${PN}:append:powerpc64 = " liblsan libtsan" +RRECOMMENDS:${PN}:append:aarch64 = " liblsan libtsan" do_package_write_ipk[depends] += "virtual/${MLPREFIX}${TARGET_PREFIX}compilerlibs:do_packagedata" do_package_write_deb[depends] += "virtual/${MLPREFIX}${TARGET_PREFIX}compilerlibs:do_packagedata" @@ -81,40 +81,40 @@ do_package_write_rpm[depends] += "virtual/${MLPREFIX}${TARGET_PREFIX}compilerlib # Only x86, powerpc, sparc, s390, arm, and aarch64 are supported COMPATIBLE_HOST = '(x86_64|i.86|powerpc|sparc|s390|arm|aarch64).*-linux' # musl is currently broken entirely -COMPATIBLE_HOST_libc-musl = 'null' +COMPATIBLE_HOST:libc-musl = 'null' -FILES_libasan += "${libdir}/libasan.so.* ${libdir}/libhwasan.so.*" -FILES_libasan-dev += "\ +FILES:libasan += "${libdir}/libasan.so.* ${libdir}/libhwasan.so.*" +FILES:libasan-dev += "\ ${libdir}/libasan_preinit.o \ ${libdir}/libasan.so \ ${libdir}/libhwasan.so \ ${libdir}/libasan.la \ " -FILES_libasan-staticdev += "${libdir}/libasan.a \ +FILES:libasan-staticdev += "${libdir}/libasan.a \ ${libdir}/libhwasan.a \ " -FILES_libubsan += "${libdir}/libubsan.so.*" -FILES_libubsan-dev += "\ +FILES:libubsan += "${libdir}/libubsan.so.*" +FILES:libubsan-dev += "\ ${libdir}/libubsan.so \ ${libdir}/libubsan.la \ " -FILES_libubsan-staticdev += "${libdir}/libubsan.a" +FILES:libubsan-staticdev += "${libdir}/libubsan.a" -FILES_liblsan += "${libdir}/liblsan.so.*" -FILES_liblsan-dev += "\ +FILES:liblsan += "${libdir}/liblsan.so.*" +FILES:liblsan-dev += "\ ${libdir}/liblsan.so \ ${libdir}/liblsan.la \ ${libdir}/liblsan_preinit.o \ " -FILES_liblsan-staticdev += "${libdir}/liblsan.a" +FILES:liblsan-staticdev += "${libdir}/liblsan.a" -FILES_libtsan += "${libdir}/libtsan.so.*" -FILES_libtsan-dev += "\ +FILES:libtsan += "${libdir}/libtsan.so.*" +FILES:libtsan-dev += "\ ${libdir}/libtsan.so \ ${libdir}/libtsan.la \ ${libdir}/libtsan_*.o \ " -FILES_libtsan-staticdev += "${libdir}/libtsan.a" +FILES:libtsan-staticdev += "${libdir}/libtsan.a" -FILES_${PN} = "${libdir}/*.spec ${libdir}/${TARGET_SYS}/${BINV}/include/sanitizer/*.h" +FILES:${PN} = "${libdir}/*.spec ${libdir}/${TARGET_SYS}/${BINV}/include/sanitizer/*.h" diff --git a/poky/meta/recipes-devtools/gcc/gcc-sanitizers_11.1.bb b/poky/meta/recipes-devtools/gcc/gcc-sanitizers_11.2.bb index f3c705811..8bda2ccad 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-sanitizers_11.1.bb +++ b/poky/meta/recipes-devtools/gcc/gcc-sanitizers_11.2.bb @@ -3,5 +3,5 @@ require gcc-sanitizers.inc # Building with thumb enabled on armv4t armv5t fails with # sanitizer_linux.s:5749: Error: lo register required -- `ldr ip,[sp],#8' -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET:armv4 = "arm" +ARM_INSTRUCTION_SET:armv5 = "arm" diff --git a/poky/meta/recipes-devtools/gcc/gcc-source_11.1.bb b/poky/meta/recipes-devtools/gcc/gcc-source_11.2.bb index b890fa33e..b890fa33e 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-source_11.1.bb +++ b/poky/meta/recipes-devtools/gcc/gcc-source_11.2.bb diff --git a/poky/meta/recipes-devtools/gcc/gcc-target.inc b/poky/meta/recipes-devtools/gcc/gcc-target.inc index 0ee3e83d4..bf55e692e 100644 --- a/poky/meta/recipes-devtools/gcc/gcc-target.inc +++ b/poky/meta/recipes-devtools/gcc/gcc-target.inc @@ -5,7 +5,7 @@ EXTRA_OECONF_PATHS = "\ --with-build-sysroot=${STAGING_DIR_TARGET} \ " -EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu" +EXTRA_OECONF:append:linuxstdbase = " --enable-clocale=gnu" # Configure gcc running on the target to default to an architecture which will # be compatible with that of gcc-runtime (which is cross compiled to be target @@ -15,11 +15,11 @@ EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu" ARMFPARCHEXT ?= "" -EXTRA_OECONF_append_armv6_class-target = " --with-arch=armv6${ARMFPARCHEXT}" -EXTRA_OECONF_append_armv7a_class-target = " --with-arch=armv7-a${ARMFPARCHEXT}" -EXTRA_OECONF_append_armv7ve_class-target = " --with-arch=armv7ve${ARMFPARCHEXT}" -EXTRA_OECONF_append_arc_class-target = " --with-cpu=${TUNE_PKGARCH}" -EXTRA_OECONF_append_x86-64_class-target = " --with-arch=native" +EXTRA_OECONF:append:armv6:class-target = " --with-arch=armv6${ARMFPARCHEXT}" +EXTRA_OECONF:append:armv7a:class-target = " --with-arch=armv7-a${ARMFPARCHEXT}" +EXTRA_OECONF:append:armv7ve:class-target = " --with-arch=armv7ve${ARMFPARCHEXT}" +EXTRA_OECONF:append:arc:class-target = " --with-cpu=${TUNE_PKGARCH}" +EXTRA_OECONF:append:x86-64:class-target = " --with-arch=native" # libcc1 requres gcc_cv_objdump when cross build, but gcc_cv_objdump is # set in subdir gcc, so subdir libcc1 can't use it, export it here to @@ -40,7 +40,7 @@ PACKAGES = "\ ${PN}-dbg \ " -FILES_${PN} = "\ +FILES:${PN} = "\ ${bindir}/${TARGET_PREFIX}gcc* \ ${bindir}/${TARGET_PREFIX}lto* \ ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/collect2* \ @@ -56,85 +56,85 @@ FILES_${PN} = "\ ${gcclibdir}/${TARGET_SYS}/${BINV}/include-fixed \ ${libdir}/bfd-plugins/*.so \ " -INSANE_SKIP_${PN} += "dev-so" -RRECOMMENDS_${PN} += "\ +INSANE_SKIP:${PN} += "dev-so" +RRECOMMENDS:${PN} += "\ libssp \ libssp-dev \ " -RDEPENDS_${PN} += "cpp" +RDEPENDS:${PN} += "cpp" -FILES_${PN}-dev = "\ +FILES:${PN}-dev = "\ ${gcclibdir}/${TARGET_SYS}/${BINV}/lib*${SOLIBSDEV} \ ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/lib*${SOLIBSDEV} \ ${gcclibdir}/${TARGET_SYS}/${BINV}/plugin/include/ \ ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/plugin/gengtype \ ${gcclibdir}/${TARGET_SYS}/${BINV}/plugin/gtype.state \ " -FILES_${PN}-symlinks = "\ +FILES:${PN}-symlinks = "\ ${bindir}/cc \ ${bindir}/gcc \ ${bindir}/gccbug \ " -FILES_${PN}-plugins = "\ +FILES:${PN}-plugins = "\ ${gcclibdir}/${TARGET_SYS}/${BINV}/plugin \ " -ALLOW_EMPTY_${PN}-plugins = "1" +ALLOW_EMPTY:${PN}-plugins = "1" -FILES_g77 = "\ +FILES:g77 = "\ ${bindir}/${TARGET_PREFIX}g77 \ ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/f771 \ " -FILES_g77-symlinks = "\ +FILES:g77-symlinks = "\ ${bindir}/g77 \ ${bindir}/f77 \ " -RRECOMMENDS_g77 = "\ +RRECOMMENDS:g77 = "\ libg2c \ libg2c-dev \ " -FILES_gfortran = "\ +FILES:gfortran = "\ ${bindir}/${TARGET_PREFIX}gfortran \ ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/f951 \ " -RRECOMMENDS_gfortran = "\ +RRECOMMENDS:gfortran = "\ libquadmath \ libquadmath-dev \ " -FILES_gfortran-symlinks = "\ +FILES:gfortran-symlinks = "\ ${bindir}/gfortran \ ${bindir}/f95" -FILES_cpp = "\ +FILES:cpp = "\ ${bindir}/${TARGET_PREFIX}cpp* \ ${base_libdir}/cpp \ ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/cc1" -FILES_cpp-symlinks = "${bindir}/cpp" +FILES:cpp-symlinks = "${bindir}/cpp" -FILES_gcov = "${bindir}/${TARGET_PREFIX}gcov* \ +FILES:gcov = "${bindir}/${TARGET_PREFIX}gcov* \ ${bindir}/${TARGET_PREFIX}gcov-tool* \ " -FILES_gcov-symlinks = "${bindir}/gcov \ +FILES:gcov-symlinks = "${bindir}/gcov \ ${bindir}/gcov-tool \ " -FILES_g++ = "\ +FILES:g++ = "\ ${bindir}/${TARGET_PREFIX}g++* \ ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/cc1plus \ " -FILES_g++-symlinks = "\ +FILES:g++-symlinks = "\ ${bindir}/c++ \ ${bindir}/g++ \ " -RRECOMMENDS_g++ = "\ +RRECOMMENDS:g++ = "\ libstdc++ \ libstdc++-dev \ libatomic \ libatomic-dev \ " -FILES_${PN}-doc = "\ +FILES:${PN}-doc = "\ ${infodir} \ ${mandir} \ ${gcclibdir}/${TARGET_SYS}/${BINV}/include/README \ @@ -221,7 +221,7 @@ do_install () { chown -R root:root ${D} } -do_install_append () { +do_install:append () { # # Thefixinc.sh script, run on the gcc's compile phase, looks into sysroot header # files and places the modified files into diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-libstdc-Fix-installation-of-python-hooks-PR-99453.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-libstdc-Fix-installation-of-python-hooks-PR-99453.patch deleted file mode 100644 index d82f533cb..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc/0001-libstdc-Fix-installation-of-python-hooks-PR-99453.patch +++ /dev/null @@ -1,57 +0,0 @@ -Upstream-Status: Backport -Signed-off-by: Ross Burton <ross.burton@arm.com> - -From ad4c21f0f59b52357019148ec94d767aa2acd8f2 Mon Sep 17 00:00:00 2001 -From: Jonathan Wakely <jwakely@redhat.com> -Date: Tue, 1 Jun 2021 11:00:16 +0100 -Subject: [PATCH] libstdc++: Fix installation of python hooks [PR 99453] - -When no shared library is installed, the new code to determine the name -of the -gdb.py file yields an empty string. Use the name of the static -library in that case. - -libstdc++-v3/ChangeLog: - - PR libstdc++/99453 - * python/Makefile.am: Use archive name for printer hook if no - dynamic library name is available. - * python/Makefile.in: Regenerate. - -(cherry picked from commit 9f7bc160b4a0f27dce248d1226e3ae7104b0e67b) ---- - libstdc++-v3/python/Makefile.am | 4 ++++ - libstdc++-v3/python/Makefile.in | 4 ++++ - 2 files changed, 8 insertions(+) - -diff --git a/libstdc++-v3/python/Makefile.am b/libstdc++-v3/python/Makefile.am -index 0c2b207b86e..8efefa5725c 100644 ---- a/libstdc++-v3/python/Makefile.am -+++ b/libstdc++-v3/python/Makefile.am -@@ -48,5 +48,9 @@ install-data-local: gdb.py - ## the correct name. - @libname=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \ - $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \ -+ if [ -z "$$libname" ]; then \ -+ libname=`sed -ne "/^old_library=/{s/.*='//;s/'$$//;s/ .*//;p;}" \ -+ $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \ -+ fi; \ - echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \ - $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py -diff --git a/libstdc++-v3/python/Makefile.in b/libstdc++-v3/python/Makefile.in -index 2efe0b96a19..9904a9197de 100644 ---- a/libstdc++-v3/python/Makefile.in -+++ b/libstdc++-v3/python/Makefile.in -@@ -609,6 +609,10 @@ install-data-local: gdb.py - @$(mkdir_p) $(DESTDIR)$(toolexeclibdir) - @libname=`sed -ne "/^library_names=/{s/.*='//;s/'$$//;s/ .*//;p;}" \ - $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \ -+ if [ -z "$$libname" ]; then \ -+ libname=`sed -ne "/^old_library=/{s/.*='//;s/'$$//;s/ .*//;p;}" \ -+ $(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \ -+ fi; \ - echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \ - $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py - --- -2.25.1 - diff --git a/poky/meta/recipes-devtools/gcc/gcc/0038-arc-Update-64bit-move-split-patterns.patch b/poky/meta/recipes-devtools/gcc/gcc/0038-arc-Update-64bit-move-split-patterns.patch deleted file mode 100644 index 37fe95d71..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc/0038-arc-Update-64bit-move-split-patterns.patch +++ /dev/null @@ -1,290 +0,0 @@ -From 0061fabeb9393c362601486105202cfe837a5a68 Mon Sep 17 00:00:00 2001 -From: Claudiu Zissulescu <claziss@synopsys.com> -Date: Wed, 9 Jun 2021 12:12:57 +0300 -Subject: [PATCH] arc: Update 64bit move split patterns. - -ARCv2HS can use a limited number of instructions to implement 64bit -moves. The VADD2 is used as a 64bit move, the LDD/STD are 64 bit loads -and stores. All those instructions are not baseline, hence we need to -provide alternatives when they are not available or cannot be generate -due to instruction restriction. - -This patch is cleaning up those move patterns, and updates splits -instruction lengths. - -This is a backport from mainline gcc. - -gcc/ -2021-06-09 Claudiu Zissulescu <claziss@synopsys.com> - - * config/arc/arc-protos.h (arc_split_move_p): New prototype. - * config/arc/arc.c (arc_split_move_p): New function. - (arc_split_move): Clean up. - * config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p. - (movdf_insn): Likewise. - * config/arc/simdext.md (mov<VWH>_insn): Likewise. - -Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=0061fabeb9393c362601486105202cfe837a5a68] - -Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com> -(cherry picked from commit c0ba7a8af5366c37241f20e8be41e362f7260389) -Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> ---- - gcc/config/arc/arc-protos.h | 1 + - gcc/config/arc/arc.c | 44 ++++++++++++---------- - gcc/config/arc/arc.md | 91 +++++++++------------------------------------ - gcc/config/arc/simdext.md | 38 ++++--------------- - 4 files changed, 52 insertions(+), 122 deletions(-) - -diff --git a/gcc/config/arc/arc-protos.h b/gcc/config/arc/arc-protos.h -index 1f56a0d82e4..62d7e45d29d 100644 ---- a/gcc/config/arc/arc-protos.h -+++ b/gcc/config/arc/arc-protos.h -@@ -50,6 +50,7 @@ extern void arc_split_ior (rtx *); - extern bool arc_check_mov_const (HOST_WIDE_INT ); - extern bool arc_split_mov_const (rtx *); - extern bool arc_can_use_return_insn (void); -+extern bool arc_split_move_p (rtx *); - #endif /* RTX_CODE */ - - extern bool arc_ccfsm_branch_deleted_p (void); -diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c -index 3201c3fefd7..db541bc11f5 100644 ---- a/gcc/config/arc/arc.c -+++ b/gcc/config/arc/arc.c -@@ -10129,6 +10129,31 @@ arc_process_double_reg_moves (rtx *operands) - return true; - } - -+ -+/* Check if we need to split a 64bit move. We do not need to split it if we can -+ use vadd2 or ldd/std instructions. */ -+ -+bool -+arc_split_move_p (rtx *operands) -+{ -+ machine_mode mode = GET_MODE (operands[0]); -+ -+ if (TARGET_LL64 -+ && ((memory_operand (operands[0], mode) -+ && (even_register_operand (operands[1], mode) -+ || satisfies_constraint_Cm3 (operands[1]))) -+ || (memory_operand (operands[1], mode) -+ && even_register_operand (operands[0], mode)))) -+ return false; -+ -+ if (TARGET_PLUS_QMACW -+ && even_register_operand (operands[0], mode) -+ && even_register_operand (operands[1], mode)) -+ return false; -+ -+ return true; -+} -+ - /* operands 0..1 are the operands of a 64 bit move instruction. - split it into two moves with operands 2/3 and 4/5. */ - -@@ -10146,25 +10171,6 @@ arc_split_move (rtx *operands) - return; - } - -- if (TARGET_LL64 -- && ((memory_operand (operands[0], mode) -- && (even_register_operand (operands[1], mode) -- || satisfies_constraint_Cm3 (operands[1]))) -- || (memory_operand (operands[1], mode) -- && even_register_operand (operands[0], mode)))) -- { -- emit_move_insn (operands[0], operands[1]); -- return; -- } -- -- if (TARGET_PLUS_QMACW -- && even_register_operand (operands[0], mode) -- && even_register_operand (operands[1], mode)) -- { -- emit_move_insn (operands[0], operands[1]); -- return; -- } -- - if (TARGET_PLUS_QMACW - && GET_CODE (operands[1]) == CONST_VECTOR) - { -diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md -index 7a52551eef5..91a838a38e4 100644 ---- a/gcc/config/arc/arc.md -+++ b/gcc/config/arc/arc.md -@@ -1329,47 +1329,20 @@ core_3, archs4x, archs4xd, archs4xd_slow" - "register_operand (operands[0], DImode) - || register_operand (operands[1], DImode) - || (satisfies_constraint_Cm3 (operands[1]) -- && memory_operand (operands[0], DImode))" -- "* --{ -- switch (which_alternative) -- { -- default: -- return \"#\"; -- -- case 0: -- if (TARGET_PLUS_QMACW -- && even_register_operand (operands[0], DImode) -- && even_register_operand (operands[1], DImode)) -- return \"vadd2%?\\t%0,%1,0\"; -- return \"#\"; -- -- case 2: -- if (TARGET_LL64 -- && memory_operand (operands[1], DImode) -- && even_register_operand (operands[0], DImode)) -- return \"ldd%U1%V1 %0,%1%&\"; -- return \"#\"; -- -- case 3: -- if (TARGET_LL64 -- && memory_operand (operands[0], DImode) -- && (even_register_operand (operands[1], DImode) -- || satisfies_constraint_Cm3 (operands[1]))) -- return \"std%U0%V0 %1,%0\"; -- return \"#\"; -- } --}" -- "&& reload_completed" -+ && memory_operand (operands[0], DImode))" -+ "@ -+ vadd2\\t%0,%1,0 -+ # -+ ldd%U1%V1\\t%0,%1 -+ std%U0%V0\\t%1,%0" -+ "&& reload_completed && arc_split_move_p (operands)" - [(const_int 0)] - { - arc_split_move (operands); - DONE; - } - [(set_attr "type" "move,move,load,store") -- ;; ??? The ld/st values could be 4 if it's [reg,bignum]. -- (set_attr "length" "8,16,*,*")]) -- -+ (set_attr "length" "8,16,16,16")]) - - ;; Floating point move insns. - -@@ -1408,50 +1381,22 @@ core_3, archs4x, archs4xd, archs4xd_slow" - (define_insn_and_split "*movdf_insn" - [(set (match_operand:DF 0 "move_dest_operand" "=D,r,r,r,r,m") - (match_operand:DF 1 "move_double_src_operand" "r,D,r,E,m,r"))] -- "register_operand (operands[0], DFmode) -- || register_operand (operands[1], DFmode)" -- "* --{ -- switch (which_alternative) -- { -- default: -- return \"#\"; -- -- case 2: -- if (TARGET_PLUS_QMACW -- && even_register_operand (operands[0], DFmode) -- && even_register_operand (operands[1], DFmode)) -- return \"vadd2%?\\t%0,%1,0\"; -- return \"#\"; -- -- case 4: -- if (TARGET_LL64 -- && ((even_register_operand (operands[0], DFmode) -- && memory_operand (operands[1], DFmode)) -- || (memory_operand (operands[0], DFmode) -- && even_register_operand (operands[1], DFmode)))) -- return \"ldd%U1%V1 %0,%1%&\"; -- return \"#\"; -- -- case 5: -- if (TARGET_LL64 -- && ((even_register_operand (operands[0], DFmode) -- && memory_operand (operands[1], DFmode)) -- || (memory_operand (operands[0], DFmode) -- && even_register_operand (operands[1], DFmode)))) -- return \"std%U0%V0 %1,%0\"; -- return \"#\"; -- } --}" -- "reload_completed" -+ "(register_operand (operands[0], DFmode) -+ || register_operand (operands[1], DFmode))" -+ "@ -+ # -+ # -+ vadd2\\t%0,%1,0 -+ # -+ ldd%U1%V1\\t%0,%1 -+ std%U0%V0\\t%1,%0" -+ "&& reload_completed && arc_split_move_p (operands)" - [(const_int 0)] - { - arc_split_move (operands); - DONE; - } - [(set_attr "type" "move,move,move,move,load,store") -- (set_attr "predicable" "no,no,no,yes,no,no") -- ;; ??? The ld/st values could be 16 if it's [reg,bignum]. - (set_attr "length" "4,16,8,16,16,16")]) - - (define_insn_and_split "*movdf_insn_nolrsr" -diff --git a/gcc/config/arc/simdext.md b/gcc/config/arc/simdext.md -index f0900757452..36f41a5c3d0 100644 ---- a/gcc/config/arc/simdext.md -+++ b/gcc/config/arc/simdext.md -@@ -1402,41 +1402,19 @@ - (match_operand:VWH 1 "general_operand" "i,r,m,r"))] - "(register_operand (operands[0], <MODE>mode) - || register_operand (operands[1], <MODE>mode))" -- "* --{ -- switch (which_alternative) -- { -- default: -- return \"#\"; -- -- case 1: -- if (TARGET_PLUS_QMACW -- && even_register_operand (operands[0], <MODE>mode) -- && even_register_operand (operands[1], <MODE>mode)) -- return \"vadd2%?\\t%0,%1,0\"; -- return \"#\"; -- -- case 2: -- if (TARGET_LL64) -- return \"ldd%U1%V1 %0,%1\"; -- return \"#\"; -- -- case 3: -- if (TARGET_LL64) -- return \"std%U0%V0 %1,%0\"; -- return \"#\"; -- } --}" -- "reload_completed" -+ "@ -+ # -+ vadd2\\t%0,%1,0 -+ ldd%U1%V1\\t%0,%1 -+ std%U0%V0\\t%1,%0" -+ "&& reload_completed && arc_split_move_p (operands)" - [(const_int 0)] - { - arc_split_move (operands); - DONE; - } -- [(set_attr "type" "move,multi,load,store") -- (set_attr "predicable" "no,no,no,no") -- (set_attr "iscompact" "false,false,false,false") -- ]) -+ [(set_attr "type" "move,move,load,store") -+ (set_attr "length" "16,8,16,16")]) - - (define_expand "movmisalign<mode>" - [(set (match_operand:VWH 0 "general_operand" "") --- -2.16.2 - diff --git a/poky/meta/recipes-devtools/gcc/gcc/0039-arc-Fix-u-maddhisi-patterns.patch b/poky/meta/recipes-devtools/gcc/gcc/0039-arc-Fix-u-maddhisi-patterns.patch deleted file mode 100644 index 9c5a2b8b3..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc/0039-arc-Fix-u-maddhisi-patterns.patch +++ /dev/null @@ -1,127 +0,0 @@ -From 4186b7e93be73f8d68dc0fcc00a4cc8cc83e99a8 Mon Sep 17 00:00:00 2001 -From: Claudiu Zissulescu <claziss@synopsys.com> -Date: Wed, 9 Jun 2021 12:12:57 +0300 -Subject: [PATCH] arc: Fix (u)maddhisi patterns - -Rework the (u)maddhisi4 patterns and use VMAC2H(U) instruction instead -of the 64bit MAC(U) instruction. -This fixes the next execute.exp failures: - arith-rand-ll.c -O2 execution test - arith-rand-ll.c -O3 execution test - pr78726.c -O2 execution test - pr78726.c -O3 execution test - -gcc/ -2021-06-09 Claudiu Zissulescu <claziss@synopsys.com> - - * config/arc/arc.md (maddhisi4): Use VMAC2H instruction. - (machi): New pattern. - (umaddhisi4): Use VMAC2HU instruction. - (umachi): New pattern. - -Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=4186b7e93be73f8d68dc0fcc00a4cc8cc83e99a8] - -Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com> -(cherry picked from commit dd4778a59b4693777c732075021375e19eee6a76) -Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> ---- - gcc/config/arc/arc.md | 66 ++++++++++++++++++++++++++++++++------------------- - 1 file changed, 41 insertions(+), 25 deletions(-) - -diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md -index 91a838a38e4..2a7e087ff72 100644 ---- a/gcc/config/arc/arc.md -+++ b/gcc/config/arc/arc.md -@@ -6053,48 +6053,64 @@ core_3, archs4x, archs4xd, archs4xd_slow" - - ;; MAC and DMPY instructions - --; Use MAC instruction to emulate 16bit mac. -+; Use VMAC2H(U) instruction to emulate scalar 16bit mac. - (define_expand "maddhisi4" - [(match_operand:SI 0 "register_operand" "") - (match_operand:HI 1 "register_operand" "") - (match_operand:HI 2 "extend_operand" "") - (match_operand:SI 3 "register_operand" "")] -- "TARGET_PLUS_DMPY" -+ "TARGET_PLUS_MACD" - "{ -- rtx acc_reg = gen_rtx_REG (DImode, ACC_REG_FIRST); -- rtx tmp1 = gen_reg_rtx (SImode); -- rtx tmp2 = gen_reg_rtx (SImode); -- rtx accl = gen_lowpart (SImode, acc_reg); -- -- emit_move_insn (accl, operands[3]); -- emit_insn (gen_rtx_SET (tmp1, gen_rtx_SIGN_EXTEND (SImode, operands[1]))); -- emit_insn (gen_rtx_SET (tmp2, gen_rtx_SIGN_EXTEND (SImode, operands[2]))); -- emit_insn (gen_mac (tmp1, tmp2)); -- emit_move_insn (operands[0], accl); -+ rtx acc_reg = gen_rtx_REG (SImode, ACC_REG_FIRST); -+ -+ emit_move_insn (acc_reg, operands[3]); -+ emit_insn (gen_machi (operands[1], operands[2])); -+ emit_move_insn (operands[0], acc_reg); - DONE; - }") - --; The same for the unsigned variant, but using MACU instruction. -+(define_insn "machi" -+ [(set (reg:SI ARCV2_ACC) -+ (plus:SI -+ (mult:SI (sign_extend:SI (match_operand:HI 0 "register_operand" "%r")) -+ (sign_extend:SI (match_operand:HI 1 "register_operand" "r"))) -+ (reg:SI ARCV2_ACC)))] -+ "TARGET_PLUS_MACD" -+ "vmac2h\\t0,%0,%1" -+ [(set_attr "length" "4") -+ (set_attr "type" "multi") -+ (set_attr "predicable" "no") -+ (set_attr "cond" "nocond")]) -+ -+; The same for the unsigned variant, but using VMAC2HU instruction. - (define_expand "umaddhisi4" - [(match_operand:SI 0 "register_operand" "") - (match_operand:HI 1 "register_operand" "") -- (match_operand:HI 2 "extend_operand" "") -+ (match_operand:HI 2 "register_operand" "") - (match_operand:SI 3 "register_operand" "")] -- "TARGET_PLUS_DMPY" -+ "TARGET_PLUS_MACD" - "{ -- rtx acc_reg = gen_rtx_REG (DImode, ACC_REG_FIRST); -- rtx tmp1 = gen_reg_rtx (SImode); -- rtx tmp2 = gen_reg_rtx (SImode); -- rtx accl = gen_lowpart (SImode, acc_reg); -- -- emit_move_insn (accl, operands[3]); -- emit_insn (gen_rtx_SET (tmp1, gen_rtx_ZERO_EXTEND (SImode, operands[1]))); -- emit_insn (gen_rtx_SET (tmp2, gen_rtx_ZERO_EXTEND (SImode, operands[2]))); -- emit_insn (gen_macu (tmp1, tmp2)); -- emit_move_insn (operands[0], accl); -+ rtx acc_reg = gen_rtx_REG (SImode, ACC_REG_FIRST); -+ -+ emit_move_insn (acc_reg, operands[3]); -+ emit_insn (gen_umachi (operands[1], operands[2])); -+ emit_move_insn (operands[0], acc_reg); - DONE; - }") - -+(define_insn "umachi" -+ [(set (reg:SI ARCV2_ACC) -+ (plus:SI -+ (mult:SI (zero_extend:SI (match_operand:HI 0 "register_operand" "%r")) -+ (zero_extend:SI (match_operand:HI 1 "register_operand" "r"))) -+ (reg:SI ARCV2_ACC)))] -+ "TARGET_PLUS_MACD" -+ "vmac2hu\\t0,%0,%1" -+ [(set_attr "length" "4") -+ (set_attr "type" "multi") -+ (set_attr "predicable" "no") -+ (set_attr "cond" "nocond")]) -+ - (define_expand "maddsidi4" - [(match_operand:DI 0 "register_operand" "") - (match_operand:SI 1 "register_operand" "") --- -2.16.2 - diff --git a/poky/meta/recipes-devtools/gcc/gcc/0040-arc-Update-doloop_end-patterns.patch b/poky/meta/recipes-devtools/gcc/gcc/0040-arc-Update-doloop_end-patterns.patch deleted file mode 100644 index 5f0bf8df8..000000000 --- a/poky/meta/recipes-devtools/gcc/gcc/0040-arc-Update-doloop_end-patterns.patch +++ /dev/null @@ -1,105 +0,0 @@ -From 5a9b6a004f89fdd95b0470e1324dc4dee8c41d24 Mon Sep 17 00:00:00 2001 -From: Claudiu Zissulescu <claziss@synopsys.com> -Date: Wed, 9 Jun 2021 12:12:57 +0300 -Subject: [PATCH] arc: Update doloop_end patterns - -ARC processor can use LP instruction to implement zero overlay loops. -The current inplementation doesn't handle the unlikely situation when -the loop iterator is located in memory. Refurbish the loop_end insn -pattern into a define_insn_and_split pattern. - -gcc/ -2021-07-09 Claudiu Zissulescu <claziss@synopsys.com> - - * config/arc/arc.md (loop_end): Change it to - define_insn_and_split. - -Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=5a9b6a004f89fdd95b0470e1324dc4dee8c41d24] - -Signed-off-by: Claudiu Zissulescu <claziss@synopsys.com> -(cherry picked from commit 174e75a210753b68de0f2c398a13ace0f512e35b) -Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> ---- - gcc/config/arc/arc.md | 46 ++++++++++++++++++++-------------------------- - 1 file changed, 20 insertions(+), 26 deletions(-) - -diff --git a/gcc/config/arc/arc.md b/gcc/config/arc/arc.md -index 2a7e087ff72..d704044c13f 100644 ---- a/gcc/config/arc/arc.md -+++ b/gcc/config/arc/arc.md -@@ -4986,7 +4986,7 @@ core_3, archs4x, archs4xd, archs4xd_slow" - (define_expand "doloop_end" - [(parallel [(set (pc) - (if_then_else -- (ne (match_operand 0 "" "") -+ (ne (match_operand 0 "nonimmediate_operand") - (const_int 1)) - (label_ref (match_operand 1 "" "")) - (pc))) -@@ -5012,44 +5012,38 @@ core_3, archs4x, archs4xd, archs4xd_slow" - - ;; if by any chance the lp_count is not used, then use an 'r' - ;; register, instead of going to memory. --(define_insn "loop_end" -- [(set (pc) -- (if_then_else (ne (match_operand:SI 2 "nonimmediate_operand" "0,m") -- (const_int 1)) -- (label_ref (match_operand 1 "" "")) -- (pc))) -- (set (match_operand:SI 0 "nonimmediate_operand" "=r,m") -- (plus (match_dup 2) (const_int -1))) -- (unspec [(const_int 0)] UNSPEC_ARC_LP) -- (clobber (match_scratch:SI 3 "=X,&r"))] -- "" -- "; ZOL_END, begins @%l1" -- [(set_attr "length" "0") -- (set_attr "predicable" "no") -- (set_attr "type" "loop_end")]) -- - ;; split pattern for the very slim chance when the loop register is - ;; memory. --(define_split -+(define_insn_and_split "loop_end" - [(set (pc) -- (if_then_else (ne (match_operand:SI 0 "memory_operand") -+ (if_then_else (ne (match_operand:SI 0 "nonimmediate_operand" "+r,!m") - (const_int 1)) -- (label_ref (match_operand 1 "")) -+ (label_ref (match_operand 1 "" "")) - (pc))) - (set (match_dup 0) (plus (match_dup 0) (const_int -1))) - (unspec [(const_int 0)] UNSPEC_ARC_LP) -- (clobber (match_scratch:SI 2))] -- "memory_operand (operands[0], SImode)" -+ (clobber (match_scratch:SI 2 "=X,&r"))] -+ "" -+ "@ -+ ; ZOL_END, begins @%l1 -+ #" -+ "reload_completed && memory_operand (operands[0], Pmode)" - [(set (match_dup 2) (match_dup 0)) -- (set (match_dup 2) (plus:SI (match_dup 2) (const_int -1))) -+ (parallel -+ [(set (reg:CC_ZN CC_REG) -+ (compare:CC_ZN (plus:SI (match_dup 2) (const_int -1)) -+ (const_int 0))) -+ (set (match_dup 2) (plus:SI (match_dup 2) (const_int -1)))]) - (set (match_dup 0) (match_dup 2)) -- (set (reg:CC CC_REG) (compare:CC (match_dup 2) (const_int 0))) - (set (pc) -- (if_then_else (ne (reg:CC CC_REG) -+ (if_then_else (ne (reg:CC_ZN CC_REG) - (const_int 0)) - (label_ref (match_dup 1)) - (pc)))] -- "") -+ "" -+ [(set_attr "length" "0,24") -+ (set_attr "predicable" "no") -+ (set_attr "type" "loop_end")]) - - (define_insn "loop_fail" - [(set (reg:SI LP_COUNT) --- -2.16.2 - diff --git a/poky/meta/recipes-devtools/gcc/gcc/0041-apply-debug-prefix-maps-before-checksumming-DIEs.patch b/poky/meta/recipes-devtools/gcc/gcc/0041-apply-debug-prefix-maps-before-checksumming-DIEs.patch new file mode 100644 index 000000000..c8dcd74b9 --- /dev/null +++ b/poky/meta/recipes-devtools/gcc/gcc/0041-apply-debug-prefix-maps-before-checksumming-DIEs.patch @@ -0,0 +1,95 @@ +From 7cc2df084b7977653a9b59cbc34a9ad500ae619c Mon Sep 17 00:00:00 2001 +From: Richard Biener <rguenther@suse.de> +Date: Tue, 20 Jul 2021 11:00:33 +0200 +Subject: [PATCH] debug/101473 - apply debug prefix maps before checksumming DIEs + +The following makes sure to apply the debug prefix maps to filenames +before checksumming DIEs to create the global symbol for the CU DIE +used by LTO to link the late debug to the early debug. This avoids +binary differences (in said symbol) when compiling with toolchains +installed under a different path and that compensated with appropriate +-fdebug-prefix-map options. + +The easiest and most scalable way is to record both the unmapped +and the remapped filename in the dwarf_file_data so the remapping +process takes place at a single point and only once (otherwise it +creates GC garbage at each point doing that). + +2021-07-20 Richard Biener <rguenther@suse.de> + + PR debug/101473 + * dwarf2out.h (dwarf_file_data): Add key member. + * dwarf2out.c (dwarf_file_hasher::equal): Compare key. + (dwarf_file_hasher::hash): Hash key. + (lookup_filename): Remap the filename and store it in the + filename member of dwarf_file_data when creating a new + dwarf_file_data. + (file_name_acquire): Do not remap the filename again. + (maybe_emit_file): Likewise. + +[YOCTO #14481] + +Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=7cc2df084b7977653a9b59cbc34a9ad500ae619c] + +The upstream patch was modified to compensate for the definition of +"struct dwarf_file_data" being in dwarf2out.c rather than dwarf2out.h in +this version of gcc. + +Signed-off-by: Tony Battersby <tonyb@cybernetics.com> +--- +diff -urpN a/gcc/dwarf2out.c b/gcc/dwarf2out.c +--- a/gcc/dwarf2out.c 2021-04-27 06:00:13.000000000 -0400 ++++ b/gcc/dwarf2out.c 2021-07-23 16:40:06.141886167 -0400 +@@ -1283,6 +1283,7 @@ dwarf2out_switch_text_section (void) + + /* Data about a single source file. */ + struct GTY((for_user)) dwarf_file_data { ++ const char * key; + const char * filename; + int emitted_number; + }; +@@ -12334,7 +12335,7 @@ file_name_acquire (dwarf_file_data **slo + + fi = fnad->files + fnad->used_files++; + +- f = remap_debug_filename (d->filename); ++ f = d->filename; + + /* Skip all leading "./". */ + while (f[0] == '.' && IS_DIR_SEPARATOR (f[1])) +@@ -27231,13 +27232,13 @@ dwarf2out_ignore_block (const_tree block + bool + dwarf_file_hasher::equal (dwarf_file_data *p1, const char *p2) + { +- return filename_cmp (p1->filename, p2) == 0; ++ return filename_cmp (p1->key, p2) == 0; + } + + hashval_t + dwarf_file_hasher::hash (dwarf_file_data *p) + { +- return htab_hash_string (p->filename); ++ return htab_hash_string (p->key); + } + + /* Lookup FILE_NAME (in the list of filenames that we know about here in +@@ -27267,7 +27268,8 @@ lookup_filename (const char *file_name) + return *slot; + + created = ggc_alloc<dwarf_file_data> (); +- created->filename = file_name; ++ created->key = file_name; ++ created->filename = remap_debug_filename (file_name); + created->emitted_number = 0; + *slot = created; + return created; +@@ -27293,8 +27295,7 @@ maybe_emit_file (struct dwarf_file_data + if (output_asm_line_debug_info ()) + { + fprintf (asm_out_file, "\t.file %u ", fd->emitted_number); +- output_quoted_string (asm_out_file, +- remap_debug_filename (fd->filename)); ++ output_quoted_string (asm_out_file, fd->filename); + fputc ('\n', asm_out_file); + } + } diff --git a/poky/meta/recipes-devtools/gcc/gcc_11.1.bb b/poky/meta/recipes-devtools/gcc/gcc_11.2.bb index 7d9359058..255fe552b 100644 --- a/poky/meta/recipes-devtools/gcc/gcc_11.1.bb +++ b/poky/meta/recipes-devtools/gcc/gcc_11.2.bb @@ -4,11 +4,11 @@ require gcc-target.inc # Building with thumb enabled on armv4t armv5t fails with # | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7438:(.text.unlikely+0x2fa): relocation truncated to fit: R_ARM_THM_CALL against symbol `fancy_abort(char const*, int, char const*)' defined in .glue_7 section in linker stubs # | gcc-4.8.1-r0/gcc-4.8.1/gcc/cp/decl.c:7442:(.text.unlikely+0x318): additional relocation overflows omitted from the output -ARM_INSTRUCTION_SET_armv4 = "arm" -ARM_INSTRUCTION_SET_armv5 = "arm" +ARM_INSTRUCTION_SET:armv4 = "arm" +ARM_INSTRUCTION_SET:armv5 = "arm" -ARMFPARCHEXT_armv6 = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}" -ARMFPARCHEXT_armv7a = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}" -ARMFPARCHEXT_armv7ve = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}" +ARMFPARCHEXT:armv6 = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}" +ARMFPARCHEXT:armv7a = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}" +ARMFPARCHEXT:armv7ve = "${@'+fp' if d.getVar('TARGET_FPU') == 'hard' else ''}" BBCLASSEXTEND = "nativesdk" diff --git a/poky/meta/recipes-devtools/gcc/libgcc-common.inc b/poky/meta/recipes-devtools/gcc/libgcc-common.inc index d959566c3..d48dc8b82 100644 --- a/poky/meta/recipes-devtools/gcc/libgcc-common.inc +++ b/poky/meta/recipes-devtools/gcc/libgcc-common.inc @@ -44,16 +44,16 @@ do_install () { rm -rf ${D}${libdir}/${TARGET_SYS}/${BINV}/include } -do_install_append_libc-baremetal () { +do_install:append:libc-baremetal () { rmdir ${D}${base_libdir} } -do_install_append_libc-newlib () { +do_install:append:libc-newlib () { rmdir ${D}${base_libdir} } # No rpm package is actually created but -dev depends on it, avoid dnf error -RDEPENDS_${PN}-dev_libc-baremetal = "" -RDEPENDS_${PN}-dev_libc-newlib = "" +RDEPENDS:${PN}-dev:libc-baremetal = "" +RDEPENDS:${PN}-dev:libc-newlib = "" BBCLASSEXTEND = "nativesdk" @@ -98,9 +98,9 @@ fakeroot python do_multilib_install() { for ml in multilibs.split(): - tune = d.getVar('DEFAULTTUNE_virtclass-multilib-' + ml) + tune = d.getVar('DEFAULTTUNE:virtclass-multilib-' + ml) if not tune: - bb.warn('DEFAULTTUNE_virtclass-multilib-%s is not defined. Skipping...' % ml) + bb.warn('DEFAULTTUNE:virtclass-multilib-%s is not defined. Skipping...' % ml) continue tune_parameters = get_tune_parameters(tune, d) diff --git a/poky/meta/recipes-devtools/gcc/libgcc-initial.inc b/poky/meta/recipes-devtools/gcc/libgcc-initial.inc index 06bf224f7..8251e3c28 100644 --- a/poky/meta/recipes-devtools/gcc/libgcc-initial.inc +++ b/poky/meta/recipes-devtools/gcc/libgcc-initial.inc @@ -42,17 +42,17 @@ inherit nopackages # We really only want this built by things that need it, not any recrdeptask deltask do_build -do_configure_prepend () { +do_configure:prepend () { install -d ${STAGING_INCDIR} touch ${STAGING_INCDIR}/limits.h sed -i -e 's#INHIBIT_LIBC_CFLAGS =.*#INHIBIT_LIBC_CFLAGS = -Dinhibit_libc#' ${B}/gcc/libgcc.mvars sed -i -e 's#inhibit_libc = false#inhibit_libc = true#' ${B}/gcc/Makefile } -do_configure_append () { +do_configure:append () { sed -i -e 's#thread_header = .*#thread_header = gthr-single.h#' ${B}/${BPN}/Makefile } -do_install_append () { +do_install:append () { ln -s libgcc.a ${D}${libdir}/${TARGET_SYS}/${BINV}/libgcc_eh.a } diff --git a/poky/meta/recipes-devtools/gcc/libgcc-initial_11.1.bb b/poky/meta/recipes-devtools/gcc/libgcc-initial_11.2.bb index 0c698c26e..a259082b4 100644 --- a/poky/meta/recipes-devtools/gcc/libgcc-initial_11.1.bb +++ b/poky/meta/recipes-devtools/gcc/libgcc-initial_11.2.bb @@ -2,4 +2,4 @@ require recipes-devtools/gcc/gcc-${PV}.inc require libgcc-initial.inc # Building with thumb enabled on armv6t fails -ARM_INSTRUCTION_SET_armv6 = "arm" +ARM_INSTRUCTION_SET:armv6 = "arm" diff --git a/poky/meta/recipes-devtools/gcc/libgcc.inc b/poky/meta/recipes-devtools/gcc/libgcc.inc index 6d48ec980..84a2d930d 100644 --- a/poky/meta/recipes-devtools/gcc/libgcc.inc +++ b/poky/meta/recipes-devtools/gcc/libgcc.inc @@ -2,7 +2,7 @@ require libgcc-common.inc DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++ virtual/${MLPREFIX}libc" -do_install_append_class-target () { +do_install:append:class-target () { if [ "${TCLIBC}" != "glibc" ]; then case "${TARGET_OS}" in "linux-musl" | "linux-*spe") extra_target_os="linux";; @@ -32,12 +32,12 @@ PACKAGES = "\ # All libgcc source is marked with the exception. # -LICENSE_${PN} = "GPL-3.0-with-GCC-exception" -LICENSE_${PN}-dev = "GPL-3.0-with-GCC-exception" -LICENSE_${PN}-dbg = "GPL-3.0-with-GCC-exception" +LICENSE:${PN} = "GPL-3.0-with-GCC-exception" +LICENSE:${PN}-dev = "GPL-3.0-with-GCC-exception" +LICENSE:${PN}-dbg = "GPL-3.0-with-GCC-exception" -FILES_${PN}-dev = "\ +FILES:${PN}-dev = "\ ${base_libdir}/libgcc*.so \ ${@oe.utils.conditional('BASETARGET_SYS', '${TARGET_SYS}', '', '${libdir}/${BASETARGET_SYS}', d)} \ ${libdir}/${TARGET_SYS}/${BINV}* \ @@ -49,5 +49,5 @@ do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_packagedata" do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_packagedata" do_package_write_rpm[depends] += "virtual/${MLPREFIX}libc:do_packagedata" -INSANE_SKIP_${PN}-dev = "staticdev" +INSANE_SKIP:${PN}-dev = "staticdev" diff --git a/poky/meta/recipes-devtools/gcc/libgcc_11.1.bb b/poky/meta/recipes-devtools/gcc/libgcc_11.2.bb index ea210a113..f88963b0a 100644 --- a/poky/meta/recipes-devtools/gcc/libgcc_11.1.bb +++ b/poky/meta/recipes-devtools/gcc/libgcc_11.2.bb @@ -2,4 +2,4 @@ require recipes-devtools/gcc/gcc-${PV}.inc require libgcc.inc # Building with thumb enabled on armv6t fails -ARM_INSTRUCTION_SET_armv6 = "arm" +ARM_INSTRUCTION_SET:armv6 = "arm" diff --git a/poky/meta/recipes-devtools/gcc/libgfortran.inc b/poky/meta/recipes-devtools/gcc/libgfortran.inc index 7543585e6..344ec5e21 100644 --- a/poky/meta/recipes-devtools/gcc/libgfortran.inc +++ b/poky/meta/recipes-devtools/gcc/libgfortran.inc @@ -54,12 +54,12 @@ PACKAGES = "\ libgfortran-staticdev \ " -LICENSE_${PN} = "GPL-3.0-with-GCC-exception" -LICENSE_${PN}-dev = "GPL-3.0-with-GCC-exception" -LICENSE_${PN}-dbg = "GPL-3.0-with-GCC-exception" +LICENSE:${PN} = "GPL-3.0-with-GCC-exception" +LICENSE:${PN}-dev = "GPL-3.0-with-GCC-exception" +LICENSE:${PN}-dbg = "GPL-3.0-with-GCC-exception" -FILES_${PN} = "${libdir}/libgfortran.so.*" -FILES_${PN}-dev = "\ +FILES:${PN} = "${libdir}/libgfortran.so.*" +FILES:${PN}-dev = "\ ${libdir}/libgfortran*.so \ ${libdir}/libgfortran.spec \ ${libdir}/libgfortran.la \ @@ -68,9 +68,9 @@ FILES_${PN}-dev = "\ ${libdir}/gcc/${TARGET_SYS}/${BINV}/finclude/ \ ${libdir}/gcc/${TARGET_SYS}/${BINV}/include/ \ " -FILES_${PN}-staticdev = "${libdir}/libgfortran.a" +FILES:${PN}-staticdev = "${libdir}/libgfortran.a" -INSANE_SKIP_${MLPREFIX}libgfortran-dev = "staticdev" +INSANE_SKIP:${MLPREFIX}libgfortran-dev = "staticdev" do_package_write_ipk[depends] += "virtual/${MLPREFIX}libc:do_packagedata" do_package_write_deb[depends] += "virtual/${MLPREFIX}libc:do_packagedata" diff --git a/poky/meta/recipes-devtools/gcc/libgfortran_11.1.bb b/poky/meta/recipes-devtools/gcc/libgfortran_11.2.bb index 71dd8b4bd..71dd8b4bd 100644 --- a/poky/meta/recipes-devtools/gcc/libgfortran_11.1.bb +++ b/poky/meta/recipes-devtools/gcc/libgfortran_11.2.bb |