Compare commits
6 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3048d135fb | ||
|
|
3e4d87c0f2 | ||
|
|
9fa1f12ab1 | ||
|
|
7f18366e68 | ||
|
|
554f2cd027 | ||
|
|
f3ed673218 |
6 changed files with 185 additions and 177 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -114,3 +114,7 @@
|
|||
/gcc-13.2.1-20231011.tar.xz
|
||||
/gcc-13.2.1-20231113.tar.xz
|
||||
/gcc-13.2.1-20231205.tar.xz
|
||||
/gcc-13.2.1-20240316.tar.xz
|
||||
/gcc-13.3.1-20240522.tar.xz
|
||||
/gcc-13.3.1-20240611.tar.xz
|
||||
/gcc-13.3.1-20240913.tar.xz
|
||||
|
|
|
|||
152
gcc.spec
152
gcc.spec
|
|
@ -1,10 +1,10 @@
|
|||
%global DATE 20231205
|
||||
%global gitrev f783814ad6a04ae5ef44595216596a2b75eda15b
|
||||
%global gcc_version 13.2.1
|
||||
%global DATE 20240913
|
||||
%global gitrev 2fcca36eb1d34066437939cf1b54810a75dd553f
|
||||
%global gcc_version 13.3.1
|
||||
%global gcc_major 13
|
||||
# Note, gcc_release must be integer, if you want to add suffixes to
|
||||
# %%{release}, append them after %%{gcc_release} on Release: line.
|
||||
%global gcc_release 6
|
||||
%global gcc_release 3
|
||||
%global nvptx_tools_gitrev aa3404ad5a496cda5d79a50bedb1344fd63e8763
|
||||
%global newlib_cygwin_gitrev 9e09d6ed83cce4777a5950412647ccc603040409
|
||||
%global _unpackaged_files_terminate_build 0
|
||||
|
|
@ -286,7 +286,6 @@ Patch8: gcc13-no-add-needed.patch
|
|||
Patch9: gcc13-Wno-format-security.patch
|
||||
Patch10: gcc13-rh1574936.patch
|
||||
Patch11: gcc13-d-shared-libphobos.patch
|
||||
Patch12: gcc13-pr110792.patch
|
||||
|
||||
Patch50: isl-rh2155127.patch
|
||||
|
||||
|
|
@ -864,7 +863,6 @@ so that there cannot be any synchronization problems.
|
|||
%patch -P10 -p0 -b .rh1574936~
|
||||
%endif
|
||||
%patch -P11 -p0 -b .d-shared-libphobos~
|
||||
%patch -P12 -p0 -b .pr110792~
|
||||
|
||||
%patch -P50 -p0 -b .rh2155127~
|
||||
touch -r isl-0.24/m4/ax_prog_cxx_for_build.m4 isl-0.24/m4/ax_prog_cc_for_build.m4
|
||||
|
|
@ -1308,7 +1306,8 @@ CC="`$ANNOBIN_FLAGS --build-cc`" CXX="`$ANNOBIN_FLAGS --build-cxx`" \
|
|||
CFLAGS="$ANNOBIN_CFLAGS1 $ANNOBIN_CFLAGS2 $ANNOBIN_LDFLAGS" \
|
||||
CXXFLAGS="$ANNOBIN_CFLAGS1 `$ANNOBIN_FLAGS --build-includes` $ANNOBIN_CFLAGS2 $ANNOBIN_LDFLAGS" \
|
||||
./configure --with-gcc-plugin-dir=%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/plugin \
|
||||
--without-annocheck --without-tests --without-docs --disable-rpath --without-debuginfod
|
||||
--without-annocheck --without-tests --without-docs --disable-rpath --without-debuginfod \
|
||||
--without-clang-plugin --without-llvm-plugin
|
||||
make
|
||||
cd ../..
|
||||
%endif
|
||||
|
|
@ -3459,6 +3458,145 @@ end
|
|||
%endif
|
||||
|
||||
%changelog
|
||||
* Fri Sep 13 2024 Jakub Jelinek <jakub@redhat.com> 13.3.1-3
|
||||
- update from releases/gcc-13 branch
|
||||
- PRs c/115290, c++/113063, c++/115511, c++/116289, c++/116449,
|
||||
driver/115440, fortran/83865, fortran/84006, fortran/98534,
|
||||
fortran/100027, fortran/103115, fortran/103312, fortran/108889,
|
||||
fortran/113363, ipa/115277, ipa/116410, jit/115442, libstdc++/114770,
|
||||
libstdc++/114958, libstdc++/115247, libstdc++/115308,
|
||||
libstdc++/115454, libstdc++/115522, libstdc++/115575,
|
||||
libstdc++/115585, libstdc++/115668, libstdc++/115807,
|
||||
libstdc++/116070, lto/116614, middle-end/115527, middle-end/115836,
|
||||
rtl-optimization/115049, rtl-optimization/115565, target/87376,
|
||||
target/88236, target/97367, target/98762, target/103100,
|
||||
target/105090, target/106069, target/111343, target/113384,
|
||||
target/113780, target/114603, target/114607, target/114759,
|
||||
target/114846, target/115253, target/115355, target/115360,
|
||||
target/115389, target/115457, target/115475, target/115526,
|
||||
target/115611, target/115618, target/115691, target/115726,
|
||||
target/115752, target/115872, target/115988, target/116043,
|
||||
target/116189, target/116287, target/116407, target/116512,
|
||||
target/116617, testsuite/116061, tree-optimization/113281,
|
||||
tree-optimization/115843, tree-optimization/116034
|
||||
|
||||
* Tue Jun 11 2024 Jakub Jelinek <jakub@redhat.com> 13.3.1-2
|
||||
- update from releases/gcc-13 branch
|
||||
- PRs ada/114398, ada/114708, c/114493, c++/111529, c++/113598,
|
||||
fortran/110415, fortran/114827, fortran/115150, libstdc++/114940,
|
||||
libstdc++/115269, middle-end/108789, rtl-optimization/114902,
|
||||
rtl-optimization/115092, target/113281, target/113719, target/115297,
|
||||
target/115317, target/115324, tree-optimization/115192,
|
||||
tree-optimization/115307, tree-optimization/115337
|
||||
|
||||
* Wed May 22 2024 Jakub Jelinek <jakub@redhat.com> 13.3.1-1
|
||||
- update from releases/gcc-13 branch
|
||||
- GCC 13.3 release
|
||||
- PRs analyzer/104042, analyzer/108171, analyzer/109251, analyzer/109577,
|
||||
analyzer/110014, analyzer/110112, analyzer/110700, analyzer/110882,
|
||||
analyzer/111289, analyzer/112790, analyzer/112889, analyzer/112969,
|
||||
analyzer/113253, analyzer/113333, analyzer/114408, analyzer/114473,
|
||||
bootstrap/106472, bootstrap/114369, c/112571, c/114780, c++/89224,
|
||||
c++/97990, c++/100667, c++/103825, c++/110006, c++/111284, c++/112769,
|
||||
c++/113141, c++/113966, c++/114303, c++/114377, c++/114537,
|
||||
c++/114561, c++/114562, c++/114572, c++/114580, c++/114634,
|
||||
c++/114691, c++/114709, debug/112718, driver/111700, fortran/36337,
|
||||
fortran/50410, fortran/55978, fortran/89462, fortran/93678,
|
||||
fortran/95374, fortran/101135, fortran/102003, fortran/103707,
|
||||
fortran/103715, fortran/103716, fortran/104352, fortran/106987,
|
||||
fortran/106999, fortran/107426, fortran/110987, fortran/112407,
|
||||
fortran/113799, fortran/113866, fortran/113885, fortran/113956,
|
||||
fortran/114001, fortran/114474, fortran/114535, fortran/114739,
|
||||
fortran/114825, fortran/115039, gcov-profile/114115,
|
||||
gcov-profile/114715, ipa/92606, ipa/108007, ipa/111571, ipa/112616,
|
||||
ipa/113359, ipa/113907, ipa/113964, jit/110466, libgcc/111731,
|
||||
libquadmath/114533, libstdc++/66146, libstdc++/93672,
|
||||
libstdc++/104606, libstdc++/107800, libstdc++/108976,
|
||||
libstdc++/110050, libstdc++/110054, libstdc++/113841,
|
||||
libstdc++/114147, libstdc++/114316, libstdc++/114359,
|
||||
libstdc++/114367, libstdc++/114401, libstdc++/114750,
|
||||
libstdc++/114803, libstdc++/114863, libstdc++/115063, lto/114655,
|
||||
middle-end/110027, middle-end/111151, middle-end/111632,
|
||||
middle-end/111683, middle-end/112684, middle-end/112732,
|
||||
middle-end/113396, middle-end/113622, middle-end/114070,
|
||||
middle-end/114348, middle-end/114552, middle-end/114599,
|
||||
middle-end/114734, middle-end/114753, middle-end/114907,
|
||||
rtl-optimization/54052, rtl-optimization/114415,
|
||||
rtl-optimization/114768, rtl-optimization/114924, sanitizer/97696,
|
||||
sanitizer/114687, sanitizer/114743, sanitizer/114956,
|
||||
sanitizer/115172, target/88309, target/101865, target/105522,
|
||||
target/110621, target/111234, target/111600, target/111610,
|
||||
target/111822, target/112397, target/113095, target/113233,
|
||||
target/113950, target/114049, target/114130, target/114160,
|
||||
target/114172, target/114175, target/114272, target/114747,
|
||||
target/114752, target/114794, target/114837, target/114848,
|
||||
target/114981, testsuite/111066, testsuite/112297, testsuite/114034,
|
||||
testsuite/114036, testsuite/114662, tree-optimization/91838,
|
||||
tree-optimization/109925, tree-optimization/110838,
|
||||
tree-optimization/111009, tree-optimization/111268,
|
||||
tree-optimization/111407, tree-optimization/111736,
|
||||
tree-optimization/111882, tree-optimization/112281,
|
||||
tree-optimization/112303, tree-optimization/112793,
|
||||
tree-optimization/112961, tree-optimization/112991,
|
||||
tree-optimization/113552, tree-optimization/113630,
|
||||
tree-optimization/113670, tree-optimization/113831,
|
||||
tree-optimization/113910, tree-optimization/114027,
|
||||
tree-optimization/114115, tree-optimization/114121,
|
||||
tree-optimization/114203, tree-optimization/114231,
|
||||
tree-optimization/114246, tree-optimization/114375,
|
||||
tree-optimization/114396, tree-optimization/114485,
|
||||
tree-optimization/114566, tree-optimization/114672,
|
||||
tree-optimization/114733, tree-optimization/114736,
|
||||
tree-optimization/114749, tree-optimization/114787,
|
||||
tree-optimization/114799, tree-optimization/114876,
|
||||
tree-optimization/114965, tree-optimization/115143,
|
||||
tree-optimization/115152, tree-optimization/115154
|
||||
- add --without-clang-plugin --without-llvm-plugin to annobin configure
|
||||
options
|
||||
|
||||
* Sat Mar 16 2024 Jakub Jelinek <jakub@redhat.com> 13.2.1-7
|
||||
- update from releases/gcc-13 branch
|
||||
- PRs ada/112781, ada/113893, ada/113979, c++/95226, c++/99493, c++/103185,
|
||||
c++/104634, c++/107291, c++/109359, c++/109876, c++/109899,
|
||||
c++/110084, c++/110106, c++/111286, c++/112410, c++/112437,
|
||||
c++/112439, c++/112795, c++/113088, c++/113242, c++/113347,
|
||||
c++/113529, c++/113545, c++/113612, c++/113638, c++/113674,
|
||||
c/113262, c/114007, d/112285, d/112290, d/113125, d/113758,
|
||||
d/114171, driver/114314, fortran/67277, fortran/93762,
|
||||
fortran/97592, fortran/100651, fortran/100988, fortran/104819,
|
||||
fortran/104908, fortran/110826, fortran/114012, fortran/114024,
|
||||
libfortran/105437, libfortran/105473, libfortran/110651,
|
||||
libfortran/111022, libfortran/114304, libgcc/113850, libgomp/113192,
|
||||
libstdc++/90276, libstdc++/99117, libstdc++/107466,
|
||||
libstdc++/110133, libstdc++/110167, libstdc++/111826,
|
||||
libstdc++/111948, libstdc++/112467, libstdc++/112473,
|
||||
libstdc++/112477, libstdc++/112480, libstdc++/112832,
|
||||
libstdc++/113200, libstdc++/113241, libstdc++/113250,
|
||||
libstdc++/113258, libstdc++/113294, libstdc++/113450,
|
||||
libstdc++/113500, libstdc++/113512, libstdc++/113960,
|
||||
libstdc++/114152, middle-end/90348, middle-end/95351,
|
||||
middle-end/107385, middle-end/110115, middle-end/110176,
|
||||
middle-end/110754, middle-end/111422, middle-end/112733,
|
||||
middle-end/113907, middle-end/113921, middle-end/114136,
|
||||
other/109668, preprocessor/105608, rtl-optimization/110079,
|
||||
rtl-optimization/112758, rtl-optimization/113140,
|
||||
rtl-optimization/113656, rtl-optimization/114211, sanitizer/111736,
|
||||
sanitizer/112709, sanitizer/112727, target/101737, target/105523,
|
||||
target/107201, target/108120, target/108174, target/111677,
|
||||
target/112299, target/112330, target/112759, target/112787,
|
||||
target/112816, target/112837, target/112845, target/112891,
|
||||
target/112952, target/113122, target/113156, target/113601,
|
||||
target/113824, target/113927, target/114098, target/114184,
|
||||
target/114310, target/114339, testsuite/106879, testsuite/108321,
|
||||
testsuite/113175, testsuite/113366, testsuite/114343,
|
||||
tree-optimization/109804, tree-optimization/110221,
|
||||
tree-optimization/110422, tree-optimization/112495,
|
||||
tree-optimization/112505, tree-optimization/112618,
|
||||
tree-optimization/113012, tree-optimization/113013,
|
||||
tree-optimization/113372, tree-optimization/113603,
|
||||
tree-optimization/113896, tree-optimization/113993,
|
||||
tree-optimization/114041, tree-optimization/114090
|
||||
|
||||
* Tue Dec 5 2023 Jakub Jelinek <jakub@redhat.com> 13.2.1-6
|
||||
- update from releases/gcc-13 branch
|
||||
- PRs c++/33799, c++/102191, c++/111703, c++/112269, c++/112301, c++/112633,
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<a class="link" href="https://www.fsf.org" target="_top">FSF
|
||||
</a>
|
||||
</p><p>
|
||||
+ Release 13.2.1
|
||||
+ Release 13.3.1
|
||||
+ </p><p>
|
||||
Permission is granted to copy, distribute and/or modify this
|
||||
document under the terms of the GNU Free Documentation
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
</p><p>
|
||||
- The API documentation, rendered into HTML, can be viewed online
|
||||
+ The API documentation, rendered into HTML, can be viewed locally
|
||||
+ <a class="link" href="api/index.html" target="_top">for the 13.2.1 release</a>,
|
||||
+ <a class="link" href="api/index.html" target="_top">for the 13.3.1 release</a>,
|
||||
+ online
|
||||
<a class="link" href="http://gcc.gnu.org/onlinedocs/" target="_top">for each GCC release</a>
|
||||
and
|
||||
|
|
|
|||
|
|
@ -1,163 +0,0 @@
|
|||
PR target/110792: Early clobber issues with rot32di2_doubleword on i386.
|
||||
|
||||
This patch is a conservative fix for PR target/110792, a wrong-code
|
||||
regression affecting doubleword rotations by BITS_PER_WORD, which
|
||||
effectively swaps the highpart and lowpart words, when the source to be
|
||||
rotated resides in memory. The issue is that if the register used to
|
||||
hold the lowpart of the destination is mentioned in the address of
|
||||
the memory operand, the current define_insn_and_split unintentionally
|
||||
clobbers it before reading the highpart.
|
||||
|
||||
Hence, for the testcase, the incorrectly generated code looks like:
|
||||
|
||||
salq $4, %rdi // calculate address
|
||||
movq WHIRL_S+8(%rdi), %rdi // accidentally clobber addr
|
||||
movq WHIRL_S(%rdi), %rbp // load (wrong) lowpart
|
||||
|
||||
Traditionally, the textbook way to fix this would be to add an
|
||||
explicit early clobber to the instruction's constraints.
|
||||
|
||||
(define_insn_and_split "<insn>32di2_doubleword"
|
||||
- [(set (match_operand:DI 0 "register_operand" "=r,r,r")
|
||||
+ [(set (match_operand:DI 0 "register_operand" "=r,r,&r")
|
||||
(any_rotate:DI (match_operand:DI 1 "nonimmediate_operand" "0,r,o")
|
||||
(const_int 32)))]
|
||||
|
||||
but unfortunately this currently generates significantly worse code,
|
||||
due to a strange choice of reloads (effectively memcpy), which ends up
|
||||
looking like:
|
||||
|
||||
salq $4, %rdi // calculate address
|
||||
movdqa WHIRL_S(%rdi), %xmm0 // load the double word in SSE reg.
|
||||
movaps %xmm0, -16(%rsp) // store the SSE reg back to the stack
|
||||
movq -8(%rsp), %rdi // load highpart
|
||||
movq -16(%rsp), %rbp // load lowpart
|
||||
|
||||
Note that reload's "&" doesn't distinguish between the memory being
|
||||
early clobbered, vs the registers used in an addressing mode being
|
||||
early clobbered.
|
||||
|
||||
The fix proposed in this patch is to remove the third alternative, that
|
||||
allowed offsetable memory as an operand, forcing reload to place the
|
||||
operand into a register before the rotation. This results in:
|
||||
|
||||
salq $4, %rdi
|
||||
movq WHIRL_S(%rdi), %rax
|
||||
movq WHIRL_S+8(%rdi), %rdi
|
||||
movq %rax, %rbp
|
||||
|
||||
I believe there's a more advanced solution, by swapping the order of
|
||||
the loads (if first destination register is mentioned in the address),
|
||||
or inserting a lea insn (if both destination registers are mentioned
|
||||
in the address), but this fix is a minimal "safe" solution, that
|
||||
should hopefully be suitable for backporting.
|
||||
|
||||
2023-08-06 Roger Sayle <roger@nextmovesoftware.com>
|
||||
|
||||
gcc/testsuite/ChangeLog
|
||||
PR target/110792
|
||||
* gcc.target/i386/pr110792.c: Remove dg-final scan-assembler-not.
|
||||
|
||||
2023-08-03 Roger Sayle <roger@nextmovesoftware.com>
|
||||
|
||||
gcc/ChangeLog
|
||||
PR target/110792
|
||||
* config/i386/i386.md (<any_rotate>ti3): For rotations by 64 bits
|
||||
place operand in a register before gen_<insn>64ti2_doubleword.
|
||||
(<any_rotate>di3): Likewise, for rotations by 32 bits, place
|
||||
operand in a register before gen_<insn>32di2_doubleword.
|
||||
(<any_rotate>32di2_doubleword): Constrain operand to be in register.
|
||||
(<any_rotate>64ti2_doubleword): Likewise.
|
||||
|
||||
gcc/testsuite/ChangeLog
|
||||
PR target/110792
|
||||
* g++.target/i386/pr110792.C: New 32-bit C++ test case.
|
||||
* gcc.target/i386/pr110792.c: New 64-bit C test case.
|
||||
|
||||
--- gcc/config/i386/i386.md
|
||||
+++ gcc/config/i386/i386.md
|
||||
@@ -15341,7 +15341,10 @@ (define_expand "<insn>ti3"
|
||||
emit_insn (gen_ix86_<insn>ti3_doubleword
|
||||
(operands[0], operands[1], operands[2]));
|
||||
else if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 64)
|
||||
- emit_insn (gen_<insn>64ti2_doubleword (operands[0], operands[1]));
|
||||
+ {
|
||||
+ operands[1] = force_reg (TImode, operands[1]);
|
||||
+ emit_insn (gen_<insn>64ti2_doubleword (operands[0], operands[1]));
|
||||
+ }
|
||||
else
|
||||
{
|
||||
rtx amount = force_reg (QImode, operands[2]);
|
||||
@@ -15376,7 +15379,10 @@ (define_expand "<insn>di3"
|
||||
emit_insn (gen_ix86_<insn>di3_doubleword
|
||||
(operands[0], operands[1], operands[2]));
|
||||
else if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 32)
|
||||
- emit_insn (gen_<insn>32di2_doubleword (operands[0], operands[1]));
|
||||
+ {
|
||||
+ operands[1] = force_reg (DImode, operands[1]);
|
||||
+ emit_insn (gen_<insn>32di2_doubleword (operands[0], operands[1]));
|
||||
+ }
|
||||
else
|
||||
FAIL;
|
||||
|
||||
@@ -15544,8 +15550,8 @@ (define_insn_and_split "ix86_rotr<dwi>3_doubleword"
|
||||
})
|
||||
|
||||
(define_insn_and_split "<insn>32di2_doubleword"
|
||||
- [(set (match_operand:DI 0 "register_operand" "=r,r,r")
|
||||
- (any_rotate:DI (match_operand:DI 1 "nonimmediate_operand" "0,r,o")
|
||||
+ [(set (match_operand:DI 0 "register_operand" "=r,r")
|
||||
+ (any_rotate:DI (match_operand:DI 1 "register_operand" "0,r")
|
||||
(const_int 32)))]
|
||||
"!TARGET_64BIT"
|
||||
"#"
|
||||
@@ -15562,8 +15568,8 @@ (define_insn_and_split "<insn>32di2_doubleword"
|
||||
})
|
||||
|
||||
(define_insn_and_split "<insn>64ti2_doubleword"
|
||||
- [(set (match_operand:TI 0 "register_operand" "=r,r,r")
|
||||
- (any_rotate:TI (match_operand:TI 1 "nonimmediate_operand" "0,r,o")
|
||||
+ [(set (match_operand:TI 0 "register_operand" "=r,r")
|
||||
+ (any_rotate:TI (match_operand:TI 1 "register_operand" "0,r")
|
||||
(const_int 64)))]
|
||||
"TARGET_64BIT"
|
||||
"#"
|
||||
--- gcc/testsuite/g++.target/i386/pr110792.C
|
||||
+++ gcc/testsuite/g++.target/i386/pr110792.C
|
||||
@@ -0,0 +1,16 @@
|
||||
+/* { dg-do compile { target ia32 } } */
|
||||
+/* { dg-options "-O2" } */
|
||||
+
|
||||
+template <int ROT, typename T>
|
||||
+inline T rotr(T input)
|
||||
+{
|
||||
+ return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT)));
|
||||
+}
|
||||
+
|
||||
+unsigned long long WHIRL_S[256] = {0x18186018C07830D8};
|
||||
+unsigned long long whirl(unsigned char x0)
|
||||
+{
|
||||
+ const unsigned long long s4 = WHIRL_S[x0&0xFF];
|
||||
+ return rotr<32>(s4);
|
||||
+}
|
||||
+/* { dg-final { scan-assembler-not "movl\tWHIRL_S\\+4\\(,%eax,8\\), %eax" } } */
|
||||
--- gcc/testsuite/gcc.target/i386/pr110792.c
|
||||
+++ gcc/testsuite/gcc.target/i386/pr110792.c
|
||||
@@ -0,0 +1,17 @@
|
||||
+/* { dg-do compile { target int128 } } */
|
||||
+/* { dg-options "-O2" } */
|
||||
+
|
||||
+static inline unsigned __int128 rotr(unsigned __int128 input)
|
||||
+{
|
||||
+ return ((input >> 64) | (input << (64)));
|
||||
+}
|
||||
+
|
||||
+unsigned __int128 WHIRL_S[256] = {((__int128)0x18186018C07830D8) << 64 |0x18186018C07830D8};
|
||||
+unsigned __int128 whirl(unsigned char x0)
|
||||
+{
|
||||
+ register int t __asm("rdi") = x0&0xFF;
|
||||
+ const unsigned __int128 s4 = WHIRL_S[t];
|
||||
+ register unsigned __int128 tt __asm("rdi") = rotr(s4);
|
||||
+ asm("":::"memory");
|
||||
+ return tt;
|
||||
+}
|
||||
2
sources
2
sources
|
|
@ -1,4 +1,4 @@
|
|||
SHA512 (gcc-13.2.1-20231205.tar.xz) = f132a2d35d6ea0b0d82043870f1c9f60dda119e63df6833b16d20e2c93e2978f62698d4cc72a6e2eefbaeded0683107de9ebeb93923b96c57dcd612504aa6a1b
|
||||
SHA512 (gcc-13.3.1-20240913.tar.xz) = adc6c54e8ddffbc59d55a144b5ef27ad84a3664af24907029eadbe379397a3b64600a42a16802e94f9329d52ec974ee5edc778d174f23cb9f8eead372d121fa7
|
||||
SHA512 (isl-0.24.tar.bz2) = aab3bddbda96b801d0f56d2869f943157aad52a6f6e6a61745edd740234c635c38231af20bc3f1a08d416a5e973a90e18249078ed8e4ae2f1d5de57658738e95
|
||||
SHA512 (newlib-cygwin-9e09d6ed83cce4777a5950412647ccc603040409.tar.xz) = bef3fa04f7b1a915fc1356ebed114698b5cc835e9fa04b0becff05a9efc76c59fb376482990873d222d7acdcfee3c4f30f5a4cb7f3be1f291f1fa5f1c7a9d983
|
||||
SHA512 (nvptx-tools-aa3404ad5a496cda5d79a50bedb1344fd63e8763.tar.xz) = 33a024326426375533cb5dd9b68b2508f37540be418d2506bfa19a5f5866485e9af150469064e9059b68136ad8cb080b3b12e7eb5c6b7d1288cf6bfb3f6bb5d0
|
||||
|
|
|
|||
|
|
@ -1,7 +1,36 @@
|
|||
#!/bin/sh
|
||||
[ -d gcc-dir.tmp ] && echo gcc-dir.tmp already exists && exit 1
|
||||
git clone --depth 1 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
|
||||
git --git-dir=gcc-dir.tmp/.git fetch --depth 1 origin $1
|
||||
if [ "$#" -eq 0 ]; then
|
||||
echo "Usage: ./update-gcc.sh gcc/redhat/heads/gcc-NN-branch_commit_hash [git_reference_dir_to_speed_up]"
|
||||
exit 1
|
||||
fi
|
||||
export LC_ALL=C
|
||||
if ! [ -f gcc.spec ]; then echo Must be run in the directory with gcc.spec file.; exit 1; fi
|
||||
if [ -d gcc-dir.tmp ]; then echo gcc-dir.tmp already exists.; exit 1; fi
|
||||
v=`sed -n 's/^%global gcc_version //p' gcc.spec`
|
||||
p=`sed -n 's/^%global gitrev //p' gcc.spec`
|
||||
h=$1
|
||||
if [ "$#" -ge 2 ]; then
|
||||
git clone --dissociate --reference $2 git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
|
||||
else
|
||||
git clone git://gcc.gnu.org/git/gcc.git gcc-dir.tmp
|
||||
fi
|
||||
git --git-dir=gcc-dir.tmp/.git fetch origin $h
|
||||
d=`date --iso | sed 's/-//g'`
|
||||
git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-13.2.1-$d/ $1 | xz -9e > gcc-13.2.1-$d.tar.xz
|
||||
cd gcc-dir.tmp
|
||||
git diff $p..$h > P1
|
||||
git log --format=%B `git log --format='%ae %H' $p..$h | awk '/^gccadmin@gcc.gnu.org/{print $2;exit 0}'`..$h > P2
|
||||
diff -up /dev/null P2 >> P1
|
||||
sed -n 's,^+[[:blank:]]\+PR \([a-z0-9+-]\+/[0-9]\+\)$,\1,p' P1 | sed 's/ - .*$//;s/[: ;.]//g' | LC_ALL=C sort -u -t / -k 1,1 -k 2,2n > P3
|
||||
> P4
|
||||
for i in `cat P3`; do if grep -F $i ../gcc.spec >/dev/null; then echo $i already recorded.; else echo $i >> P4; fi; done
|
||||
case "$v" in
|
||||
*.0.*) echo "- update from trunk" > P5;;
|
||||
*) echo "- update from releases/gcc-`echo $v | sed 's/\..*$//'` branch" > P5;;
|
||||
esac
|
||||
echo `cat P4` | sed 's/ /, /g' | fold -w 71 -s | sed '1s/^/ - PRs /;2,$s/^/ /;s/, $/,/' >> P5
|
||||
echo >> P5
|
||||
cd ..
|
||||
sed -i -e '/^%global gitrev /s/ [0-9a-f]\+$/ '$h'/;/^%global DATE /s/ [0-9]\+$/ '$d'/;/^%changelog$/r gcc-dir.tmp/P5' gcc.spec
|
||||
git --git-dir=gcc-dir.tmp/.git archive --prefix=gcc-$v-$d/ $h | xz -9e > gcc-$v-$d.tar.xz
|
||||
rm -rf gcc-dir.tmp
|
||||
fedpkg new-sources gcc-$v-$d.tar.xz `sed 's/SHA512 (\(.*\)) = [0-9a-f]\+$/\1/' sources | grep -v '^gcc-'`
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue