{"old": "/home/jenkins/agent/workspace/multiarch/src-openeuler/x86-64/gcc-14/old_rpms/", "new": "/home/jenkins/agent/workspace/multiarch/src-openeuler/x86-64/gcc-14/new_rpms/", "compare_result": "not pass", "compare_details": {"same": {"same_details": {"old": [], "new": []}, "same_num": 0}, "diff": {"diff_details": {}, "diff_num": 0}, "less": {"less_details": {"gcc-toolset-14-libasan": {"Name": "gcc-toolset-14-libasan-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libquadmath-devel": {"Name": "gcc-toolset-14-libquadmath-devel-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libstdc++": {"Name": "gcc-toolset-14-libstdc++-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libgccjit-devel": {"Name": "gcc-toolset-14-libgccjit-devel-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libquadmath-static": {"Name": "gcc-toolset-14-libquadmath-static-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libubsan": {"Name": "gcc-toolset-14-libubsan-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-gcc": {"Name": "gcc-toolset-14-gcc-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libitm": {"Name": "gcc-toolset-14-libitm-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libquadmath": {"Name": "gcc-toolset-14-libquadmath-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libgfortran-static": {"Name": "gcc-toolset-14-libgfortran-static-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libgcc": {"Name": "gcc-toolset-14-libgcc-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-gcc-c++": {"Name": "gcc-toolset-14-gcc-c++-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libubsan-static": {"Name": "gcc-toolset-14-libubsan-static-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-gcc-gdb-plugin": {"Name": "gcc-toolset-14-gcc-gdb-plugin-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libgfortran": {"Name": "gcc-toolset-14-libgfortran-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libstdc++-static": {"Name": "gcc-toolset-14-libstdc++-static-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-liblsan-static": {"Name": "gcc-toolset-14-liblsan-static-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libtsan-static": {"Name": "gcc-toolset-14-libtsan-static-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-cpp": {"Name": "gcc-toolset-14-cpp-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libgccjit": {"Name": "gcc-toolset-14-libgccjit-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libstdc++-devel": {"Name": "gcc-toolset-14-libstdc++-devel-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libtsan": {"Name": "gcc-toolset-14-libtsan-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libitm-static": {"Name": "gcc-toolset-14-libitm-static-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libgomp": {"Name": "gcc-toolset-14-libgomp-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-gcc-plugin-devel": {"Name": "gcc-toolset-14-gcc-plugin-devel-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-liblsan": {"Name": "gcc-toolset-14-liblsan-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libitm-devel": {"Name": "gcc-toolset-14-libitm-devel-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libasan-static": {"Name": "gcc-toolset-14-libasan-static-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-gcc-gfortran": {"Name": "gcc-toolset-14-gcc-gfortran-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libhwasan": {"Name": "gcc-toolset-14-libhwasan-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libatomic-static": {"Name": "gcc-toolset-14-libatomic-static-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libatomic": {"Name": "gcc-toolset-14-libatomic-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}, "gcc-toolset-14-libhwasan-static": {"Name": "gcc-toolset-14-libhwasan-static-14.3.1-48.oe2609.x86_64.rpm", "RPM Level": "level4", "Obsoletes": "no", "Provides": "no"}}, "less_num": 33}, "more": {"more_details": {"libstdc++-static": {"Name": "libstdc++-static-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "libgfortran-static": {"Name": "libgfortran-static-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "libtsan-static": {"Name": "libtsan-static-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "gcc-plugin-devel": {"Name": "gcc-plugin-devel-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level3"}, "cpp": {"Name": "cpp-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "liblsan-static": {"Name": "liblsan-static-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "libgomp": {"Name": "libgomp-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level0"}, "libitm": {"Name": "libitm-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level0"}, "libitm-devel": {"Name": "libitm-devel-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "gcc-objc": {"Name": "gcc-objc-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "libasan": {"Name": "libasan-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level0"}, "libatomic": {"Name": "libatomic-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level0"}, "libtsan": {"Name": "libtsan-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level0"}, "libquadmath-devel": {"Name": "libquadmath-devel-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "libubsan": {"Name": "libubsan-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "gcc-c++": {"Name": "gcc-c++-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "gcc-gfortran": {"Name": "gcc-gfortran-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "libstdc++-devel": {"Name": "libstdc++-devel-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "gcc-gdb-plugin": {"Name": "gcc-gdb-plugin-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "libitm-static": {"Name": "libitm-static-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "libstdc++": {"Name": "libstdc++-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level0"}, "libgcc": {"Name": "libgcc-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level0"}, "libasan-static": {"Name": "libasan-static-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "libhwasan": {"Name": "libhwasan-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "libhwasan-static": {"Name": "libhwasan-static-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "libubsan-static": {"Name": "libubsan-static-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "libgfortran": {"Name": "libgfortran-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level0"}, "libquadmath": {"Name": "libquadmath-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "gcc": {"Name": "gcc-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level0"}, "libobjc": {"Name": "libobjc-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level0"}, "libgccjit": {"Name": "libgccjit-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "libatomic-static": {"Name": "libatomic-static-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "liblsan": {"Name": "liblsan-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "libgccjit-devel": {"Name": "libgccjit-devel-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "libquadmath-static": {"Name": "libquadmath-static-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}, "gcc-objc++": {"Name": "gcc-objc++-14.3.1-49.oe2609.x86_64.rpm", "RPM Level": "level4"}}, "more_num": 36}}, "pr_link": "https://gitcode.com/src-openeuler/gcc-14/pull/69", "pr_changelog": "* Tue Sep 08 2026 Eustace <eusteuc@outlook.com> - 14.3.1-49\n- Promote as system compiler\n\n    + -fipa-alignment-propagation carries a local variable's known alignment\n      along the call graph; -fipa-localize-array demotes a global calloced\n      pointer used inside one function to a local value; -fipa-array-dse\n      removes or narrows a callee's writes to a caller's array when the length\n      parameter's range proves them redundant.  All default off, need -O3\n    + These passes add instances of ccp, cd_dce, early_vrp and forwprop, which\n      renumbers those dump names.  180 upstream tests are renamed with them,\n      and -fdisable-tree-evrp becomes -fdisable-tree-evrp1, as it already is\n      on openEuler's gcc-12\n    + Validated on aarch64: tree-ssa 8236 passes, vect 9779, struct-reorg 586,\n      the openeuler suites 471, 29 and 46, nothing red\n    + The CFGO bundle now names these three options, which it had carried as\n      comments while the passes were missing\n    + -fipa-struct-dfc compresses structure fields whose values are read from\n      an input file and turn out to need fewer bits, cloning the function into\n      compressed and uncompressed paths with a runtime bounds check between\n      them; -fipa-struct-dfc-bitfield and -fipa-struct-dfc-shadow select the\n      bitfield and shadow variants.  All three default off, C only, need -O3\n      and -flto or -fwhole-program\n    + 58 of the patch's 81 hunks rewrite existing struct-reorg code, static\n      field compression included.  Measured: the family's own suite goes from\n      532 passes and 20 xfails to 586 and 24, with the twenty unchanged\n    + Pipeline descriptions, tuning models and core definitions for three HiSilicon\n      cores this tree was missing, and the two features hip12's definition had lost\n    + The optimization stack carried so far runs Patch1141 to Patch1167.  Not\n      carried, each with the measurement behind the decision recorded: the cmlt\n      generation patch, the ccmp extension, the maxmin family, the SME test\n      adaptations, the split-complex pass, the transposed SLP pass\n    + Validated on aarch64: the openeuler test suites pass with no failures,\n      unresolved tests or unexpected passes; upstream vect, tree-ssa, aarch64 and\n      the torture execute suite show no regression\n    + PR target/124629: the core table and the architecture table stringified the\n      same identifier differently, so the lookup could never match and the option\n      was silently dropped\n    + -fcfgo-profile-use turns on a bundle of openEuler optimisations alongside\n      profile use; -fcfgo-csprofile-* instruments a second time after inlining so\n      counts carry call context; -foeaware-policy emits a section a runtime tuner\n      reads.  All default off\n    + branch_prob, init_node_map, coverage_finish and the rest of the coverage\n      reading path take an extra argument for context-sensitive PGO.  All inside\n      cc1, cc1plus and f951; none of them a published ABI\n    + Two fixes to the option handlers, both carried from openEuler's gcc-12.  The\n      bare -fcfgo-profile-generate and -fcfgo-profile-use forms fell into the case\n      that requires a directory argument and called xstrdup on a null pointer.  And\n      neither bare form rejects negation, so the value was taken from the case the\n      two spellings share: -fno-cfgo-profile-use turned the whole bundle on, and\n      -fno-cfgo-profile-generate instrumented the translation unit it was asked not\n      to instrument\n    + The bundle no longer enables -fselective-scheduling.  openEuler's gcc-12\n      removed it after measuring wrong code from the option combined with\n      profile instrumentation: a whole statement silently eliminated, no crash\n      and no diagnostic.  Pass it explicitly if you want it\n    + -fif-split splits an OR condition that compares a variable against a constant\n      and clones the branch body so constant propagation can see it.  Default off,\n      needs -O3\n    + --param vect-swap-operands, --param addr-expand-for-alias-check and\n      --param vect-register-size-check ride along, all off by default\n    + Runs the SLP vectorizer a second time after reassociation.  Default off\n    + -ftree-slp-transpose-vectorize, which shared this option's source patch,\n      is not carried: a build-time ICE was reported against it with no\n      reproducer available\n    + --param ifcvt-allow-register-renaming lets RTL if-conversion rename registers\n      that would otherwise block the transformation, in two levels;\n      -fifcvt-allow-complicated-cmps admits complicated compares.  Both default off\n    + Removes a scanning loop whose only remaining use is asking whether it\n      advanced at all.  Default off\n    + Recognises std::find over contiguous 64-bit integer ranges and rewrites it to\n      an SVE routine in libgcc.  Default off, needs SVE\n    + -fipa-struct-reorg=[0-6] selects field reordering, dead field elimination,\n      pointer compression and semi-relayout; -fipa-struct-sfc and its bitfield and\n      shadow variants add static field compression.  Tuned by\n      --param struct-reorg-cold-struct-ratio, --param compressed-pointer-size and\n      --param semi-relayout-level.  Default off, C only, needs -O3 and -flto or\n      -fwhole-program\n    + Finds indirect memory accesses in loops and inserts prefetches, with\n      --param ipa-prefetch-distance-factor and --param ipa-prefetch-locality\n      controlling distance and locality.  Brings -fipa-ic, the interprocedural\n      analysis of indirect calls it depends on.  Default off, needs -O3 and\n      -flto or -fwhole-program\n    + The copied address chain still dereferences, so the extrapolated address is\n      read before the program reaches it.  Each speculative access is guarded:\n      array forms that cannot be bounded are rejected, the original and the\n      extrapolated address are compared masked to --param ipa-prefetch-pagesize\n      and the access is skipped when they land on different pages, an array index\n      is bounded, and the resulting branches are wired into the CFG\n    + Three upstream fixes the first inventory missed are carried: a prefetch\n      sequence is no longer inserted after a control statement, an induction\n      variable of reference type gets POINTER_PLUS_EXPR, and the page check\n      accepts a reference-typed address\n    + Offers SVE vector modes as additional candidates when vectorising loops.\n      Default off, needs SVE\n    + Recognises table-driven CRC32 loops and replaces them with the AArch64 CRC\n      instructions.  Default off, needs -O3 and a target with CRC32\n    + The strict-overflow CHREC multiplication folding it enabled is built into\n      gcc-14 and always active.  Same treatment as the option above\n    + The non-loop alias disambiguation it enabled is built into gcc-14 and always\n      active.  The positive form now errors with that explanation instead of\n      \"unrecognized command-line option\"; the negative form stays silent\n    + -ficp and -ficp-speculatively promote indirect calls to direct ones.  Default\n      off, needs -flto or -fwhole-program\n    + Matches unsigned add and subtract overflow even where the target has no\n      instruction for it.  Default off\n    + -fif-conversion-gimple converts conditional jumps to branchless equivalents\n      during the gimple passes.  Default off.  One pattern from the original\n      produced wrong code and is not carried\n    + -fcrypto-accel-aes recognises the AES round structure in generic code and\n      emits the AArch64 crypto instructions.  Default off\n    + Discriminator support and the MCF algorithm on the AutoFDO path, memory leak\n      fixes, and a correction to how PMU sampling sets numerator and denominator\n    + -fauto-bolt and -fbolt-use emit function and branch information for the BOLT\n      binary optimiser and run it after linkage, through a linker plugin.  Both\n      default off\n    + The plugin is behind a build switch: bolt-plugin builds only on aarch64 and\n      only with --enable-bolt, so one bcond drives both the configure option and\n      the file entry.  Default off; rpmbuild --with bolt turns both on.  Without\n      the plugin, -fauto-bolt and -fbolt-use fail at link time\n    + %prep gives bolt-plugin/configure its executable bit back, which git records\n      and patch(1) cannot carry\n    + Rewrites qualifying byte-compare loops to compare eight bytes at a time.\n      Default off, needs -O3\n    + Treats built-ins that cannot loop, throw or exit - today only\n      __builtin_prefetch - as certain to return, so partial redundancy elimination\n      can hoist loads across them.  Default off; IPA prefetch depends on it\n    + libgomp is built with -moutline-atomics on aarch64 Linux, which measures\n      better under multi-threaded workloads.  The default for user code is\n      unchanged\n    + Pipeline description and cost model for the tsv110 core\n    + Instrumentation variables stop using thread-local storage, which the kernel\n      does not provide.  Default off\n    + Recognises 64-bit to 128-bit widening multiplication idioms on AArch64.\n      Default off\n    + The retired -fmerge-mull spelling now errors with a pointer to it\n    + The pass runs ahead of pass_sink_code.  Anchored after it, a high half\n      stored on only one path was sunk into the block that consumes it and no\n      longer matched, and the rewrite fell back to a plain 64-bit multiply\n    + -fsimdmath declares the vector variants of the math functions mathliblib\n      provides and links it; -ffp-model=[normal|fast|precise|except|strict] selects\n      a floating-point contract; -mdaz-ftz decides whether crtfastmath.o is linked.\n      All three default off\n    + The retired spellings -fftz and -fp-model= now error with a pointer to their\n      replacement instead of being silently unrecognized\n    + simdmath.h and simdmath_f.h are named in the file lists.  This spec\n      enumerates every header, so an unlisted one is installed and then dropped"}