diff --git a/.devtoolset-10-gcc.metadata b/.devtoolset-10-gcc.metadata index b9d25af..a50018e 100644 --- a/.devtoolset-10-gcc.metadata +++ b/.devtoolset-10-gcc.metadata @@ -1,5 +1,5 @@ 7f4348418dc3efefd357b32a2b5c8010211ab284 SOURCES/doxygen-1.8.0.src.tar.gz -19a2803c35999e08af82cdbfc7e7502ad2fe7b59 SOURCES/gcc-10.2.1-20200804.tar.xz +e979e18ac6aa7ea338d442e4ab01db4051dd1d0f SOURCES/gcc-10.2.1-20210130.tar.xz db38c7b67f8eea9f2e5b8a48d219165b2fdab11f SOURCES/gmp-6.1.0.tar.bz2 c5a2b201bf05229647e73203c0bf2d9679d4d21f SOURCES/isl-0.16.1.tar.bz2 b8be66396c726fdc36ebb0f692ed8a8cca3bcc66 SOURCES/mpc-1.0.3.tar.gz diff --git a/.gitignore b/.gitignore index 726ed57..39491be 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ SOURCES/doxygen-1.8.0.src.tar.gz -SOURCES/gcc-10.2.1-20200804.tar.xz +SOURCES/gcc-10.2.1-20210130.tar.xz SOURCES/gmp-6.1.0.tar.bz2 SOURCES/isl-0.16.1.tar.bz2 SOURCES/mpc-1.0.3.tar.gz diff --git a/SOURCES/0008-Support-type-promotion-in-calls-to-intrinsics.patch b/SOURCES/0008-Support-type-promotion-in-calls-to-intrinsics.patch index fd9ba21..614c5cf 100644 --- a/SOURCES/0008-Support-type-promotion-in-calls-to-intrinsics.patch +++ b/SOURCES/0008-Support-type-promotion-in-calls-to-intrinsics.patch @@ -335,7 +335,7 @@ index 0a6b4263e22..aceef2aa180 100644 +fdec-promotion +Fortran Var(flag_dec_promotion) -+Add support for type promotion in intrinsic arguments ++Add support for type promotion in intrinsic arguments. + fdec-structure Fortran Var(flag_dec_structure) diff --git a/SOURCES/0009-Add-the-SEQUENCE-attribute-by-default-if-it-s-not.patch b/SOURCES/0009-Add-the-SEQUENCE-attribute-by-default-if-it-s-not.patch index a613f8a..192de6f 100644 --- a/SOURCES/0009-Add-the-SEQUENCE-attribute-by-default-if-it-s-not.patch +++ b/SOURCES/0009-Add-the-SEQUENCE-attribute-by-default-if-it-s-not.patch @@ -23,11 +23,11 @@ index aceef2aa180..ca2c0e17350 100644 +++ b/gcc/fortran/lang.opt @@ -505,6 +505,10 @@ fdec-promotion Fortran Var(flag_dec_promotion) - Add support for type promotion in intrinsic arguments + Add support for type promotion in intrinsic arguments. +fdec-sequence +Fortran Var(flag_dec_sequence) -+Add the SEQUENCE attribute by default if it's not present ++Add the SEQUENCE attribute by default if it's not present. + fdec-structure Fortran Var(flag_dec_structure) diff --git a/SOURCES/gcc10-SIZE_MAX.patch b/SOURCES/gcc10-SIZE_MAX.patch new file mode 100644 index 0000000..67be908 --- /dev/null +++ b/SOURCES/gcc10-SIZE_MAX.patch @@ -0,0 +1,25 @@ +commit b051aa35005b1089ab0ceba93568f388b9132b92 +Author: Eric Botcazou +Date: Sun Jan 31 23:23:31 2021 +0100 + + Add missing definition of SIZE_MAX + + If the stdint.h system file follows the ISO C99 specification, it might + not define SIZE_MAX in C++ by default, so provide a local fallback. + + gcc/ + * system.h (SIZE_MAX): Define if not already defined. + +--- gcc/system.h ++++ gcc/system.h +@@ -528,6 +528,10 @@ extern void *realloc (void *, size_t); + #include + #endif + ++#ifndef SIZE_MAX ++# define SIZE_MAX INTTYPE_MAXIMUM (size_t) ++#endif ++ + #ifdef __cplusplus + extern "C" { + #endif diff --git a/SOURCES/gcc10-alt-compat-test.patch b/SOURCES/gcc10-alt-compat-test.patch index 3907d55..c5e627a 100644 --- a/SOURCES/gcc10-alt-compat-test.patch +++ b/SOURCES/gcc10-alt-compat-test.patch @@ -8,7 +8,7 @@ + features &= ~FEATURE_VECTOR; memset (e, 0, sizeof (e)); r = generate_random (); - if ((r & 7) == 0) + if ((r & 7) == 0 && !cxx14_vs_cxx17) --- gcc/testsuite/g++.dg/compat/compat.exp.jj 2011-01-03 06:50:42.000000000 -0500 +++ gcc/testsuite/g++.dg/compat/compat.exp 2011-02-18 06:30:54.248200398 -0500 @@ -116,7 +116,12 @@ if [info exists ALT_CXX_UNDER_TEST] then diff --git a/SOURCES/gcc10-libstdc++-compat.patch b/SOURCES/gcc10-libstdc++-compat.patch index 49e2378..7e848c8 100644 --- a/SOURCES/gcc10-libstdc++-compat.patch +++ b/SOURCES/gcc10-libstdc++-compat.patch @@ -9627,7 +9627,7 @@ } // namespace --- libstdc++-v3/src/nonshared17/cow-fs_ops.cc.jj 2020-05-27 15:11:04.993304421 +0200 +++ libstdc++-v3/src/nonshared17/cow-fs_ops.cc 2020-05-27 16:17:24.072120461 +0200 -@@ -0,0 +1,58 @@ +@@ -0,0 +1,60 @@ +// Copyright (C) 2019-2020 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free @@ -9666,6 +9666,8 @@ +asm (".hidden _ZSt14__copy_move_a1ILb1EPNSt10filesystem4pathES1_EN9__gnu_cxx11__enable_ifIXsrSt23__is_random_access_iterIT0_NSt15iterator_traitsIS6_E17iterator_categoryEE7__valueESt15_Deque_iteratorIT1_RSC_PSC_EE6__typeES6_S6_SF_"); +asm (".hidden _ZSt23__copy_move_backward_a1ILb1EPNSt10filesystem4pathES1_EN9__gnu_cxx11__enable_ifIXsrSt23__is_random_access_iterIT0_NSt15iterator_traitsIS6_E17iterator_categoryEE7__valueESt15_Deque_iteratorIT1_RSC_PSC_EE6__typeES6_S6_SF_"); +asm (".hidden _ZSt8_DestroyISt15_Deque_iteratorINSt10filesystem4pathERS2_PS2_EEvT_S6_"); ++asm (".hidden _ZNSsC1ISaIcEEEPKcRKS0_"); ++asm (".hidden _ZNSsC2ISaIcEEEPKcRKS0_"); +#ifndef __i386__ +asm (".hidden _ZNSt11_Deque_baseINSt10filesystem4pathESaIS1_EE17_M_initialize_mapEm"); +asm (".hidden _ZNSt5dequeINSt10filesystem4pathESaIS1_EE13_M_insert_auxINS1_8iteratorEEEvSt15_Deque_iteratorIS1_RS1_PS1_ET_SA_m"); @@ -9688,7 +9690,7 @@ +#endif --- libstdc++-v3/src/nonshared17/cow-fs_path.cc.jj 2020-05-27 15:11:04.994304406 +0200 +++ libstdc++-v3/src/nonshared17/cow-fs_path.cc 2020-05-27 16:18:15.273367217 +0200 -@@ -0,0 +1,86 @@ +@@ -0,0 +1,89 @@ +// Copyright (C) 2019-2020 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free @@ -9775,6 +9777,9 @@ +#ifdef __i386__ +asm (".hidden _ZSt16__do_str_codecvtISbIwSt11char_traitsIwESaIwEEcSt7codecvtIwc11__mbstate_tES5_MS6_KFNSt12codecvt_base6resultERS5_PKcSB_RSB_PwSD_RSD_EEbPKT0_SJ_RT_RKT1_RT2_RjT3_"); +#endif ++asm (".hidden _ZNSsC1ISaIcEEEPKcRKS0_"); ++asm (".hidden _ZNSsC2ISaIcEEEPKcRKS0_"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem16filesystem_error5_ImplESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev"); --- libstdc++-v3/src/nonshared17/memory_resource.cc.jj 2020-05-27 15:11:04.996304376 +0200 +++ libstdc++-v3/src/nonshared17/memory_resource.cc 2020-05-27 16:21:24.634581462 +0200 @@ -0,0 +1,66 @@ @@ -9846,7 +9851,7 @@ +#endif --- libstdc++-v3/src/nonshared17/fs_dir.cc.jj 2020-05-27 15:11:04.994304406 +0200 +++ libstdc++-v3/src/nonshared17/fs_dir.cc 2020-05-27 16:19:06.255617202 +0200 -@@ -0,0 +1,90 @@ +@@ -0,0 +1,92 @@ +// Copyright (C) 2019-2020 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free @@ -9928,7 +9933,9 @@ +asm (".hidden _ZTSSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx114_DirESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE"); +asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE"); +asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx114_DirESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1128recursive_directory_iterator10_Dir_stackESaIS3_ELN9__gnu_cxx12_Lock_policyE2EED2Ev"); +asm (".hidden _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx114_DirESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev"); +#ifndef __i386__ +asm (".hidden _ZNSt5dequeINSt10filesystem7__cxx114_DirESaIS2_EE17_M_reallocate_mapEmb"); +#endif @@ -9966,7 +9973,7 @@ +#include "fs_path.cc" --- libstdc++-v3/src/nonshared17/cow-fs_dir.cc.jj 2020-05-27 15:11:04.993304421 +0200 +++ libstdc++-v3/src/nonshared17/cow-fs_dir.cc 2020-05-27 16:16:29.824918505 +0200 -@@ -0,0 +1,88 @@ +@@ -0,0 +1,92 @@ +// Copyright (C) 2019-2020 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free @@ -10047,6 +10054,10 @@ +asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt10filesystem28recursive_directory_iterator10_Dir_stackESaIS2_ELN9__gnu_cxx12_Lock_policyE2EE"); +asm (".hidden _ZTVSt23_Sp_counted_ptr_inplaceINSt10filesystem4_DirESaIS1_ELN9__gnu_cxx12_Lock_policyE2EE"); +asm (".hidden _ZZNSt19_Sp_make_shared_tag5_S_tiEvE5__tag"); ++asm (".hidden _ZNSsC1ISaIcEEEPKcRKS0_"); ++asm (".hidden _ZNSsC2ISaIcEEEPKcRKS0_"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem28recursive_directory_iterator10_Dir_stackESaIS2_ELN9__gnu_cxx12_Lock_policyE2EED2Ev"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem4_DirESaIS1_ELN9__gnu_cxx12_Lock_policyE2EED2Ev"); +#ifndef __i386__ +asm (".hidden _ZNSt5dequeINSt10filesystem4_DirESaIS1_EE17_M_reallocate_mapEmb"); +#endif @@ -10190,7 +10201,7 @@ + $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ --- libstdc++-v3/src/nonshared17/fs_path.cc.jj 2020-05-27 15:11:04.995304391 +0200 +++ libstdc++-v3/src/nonshared17/fs_path.cc 2020-05-27 16:20:43.631184679 +0200 -@@ -0,0 +1,84 @@ +@@ -0,0 +1,85 @@ +// Copyright (C) 2019-2020 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free @@ -10244,6 +10255,7 @@ +asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE14_M_get_deleterERKSt9type_info"); +asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EED0Ev"); +asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EED1Ev"); ++asm (".hidden _ZNSt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EED2Ev"); +asm (".hidden _ZTISt11_Mutex_baseILN9__gnu_cxx12_Lock_policyE2EE"); +asm (".hidden _ZTISt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE"); +asm (".hidden _ZTISt23_Sp_counted_ptr_inplaceINSt10filesystem7__cxx1116filesystem_error5_ImplESaIS3_ELN9__gnu_cxx12_Lock_policyE2EE"); @@ -11898,8 +11910,8 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF --#line 12062 "configure" -+#line 12064 "configure" +-#line 12064 "configure" ++#line 12066 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11907,8 +11919,8 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF --#line 12168 "configure" -+#line 12170 "configure" +-#line 12170 "configure" ++#line 12172 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11916,8 +11928,8 @@ # Fake what AC_TRY_COMPILE does. cat > conftest.$ac_ext << EOF --#line 15860 "configure" -+#line 15862 "configure" +-#line 15862 "configure" ++#line 15864 "configure" int main() { typedef bool atomic_type; @@ -11925,8 +11937,8 @@ rm -f conftest* cat > conftest.$ac_ext << EOF --#line 15895 "configure" -+#line 15897 "configure" +-#line 15897 "configure" ++#line 15899 "configure" int main() { typedef short atomic_type; @@ -11934,8 +11946,8 @@ rm -f conftest* cat > conftest.$ac_ext << EOF --#line 15930 "configure" -+#line 15932 "configure" +-#line 15932 "configure" ++#line 15934 "configure" int main() { // NB: _Atomic_word not necessarily int. @@ -11943,8 +11955,8 @@ rm -f conftest* cat > conftest.$ac_ext << EOF --#line 15966 "configure" -+#line 15968 "configure" +-#line 15968 "configure" ++#line 15970 "configure" int main() { typedef long long atomic_type; @@ -11952,8 +11964,8 @@ # unnecessary for this test. cat > conftest.$ac_ext << EOF --#line 16119 "configure" -+#line 16121 "configure" +-#line 16121 "configure" ++#line 16123 "configure" int main() { _Decimal32 d1; @@ -11961,8 +11973,8 @@ # unnecessary for this test. cat > conftest.$ac_ext << EOF --#line 16161 "configure" -+#line 16163 "configure" +-#line 16163 "configure" ++#line 16165 "configure" template struct same { typedef T2 type; }; @@ -11970,8 +11982,8 @@ rm -f conftest* cat > conftest.$ac_ext << EOF --#line 16195 "configure" -+#line 16197 "configure" +-#line 16197 "configure" ++#line 16199 "configure" template struct same { typedef T2 type; }; diff --git a/SOURCES/gcc10-pr96385.patch b/SOURCES/gcc10-pr96385.patch deleted file mode 100644 index 22fe68e..0000000 --- a/SOURCES/gcc10-pr96385.patch +++ /dev/null @@ -1,22 +0,0 @@ -2020-08-03 Richard Biener - - PR lto/96385 -libiberty/ - * simple-object-elf.c - (simple_object_elf_copy_lto_debug_sections): Localize global - UNDEFs and reuse the prevailing name. - ---- libiberty/simple-object-elf.c -+++ libiberty/simple-object-elf.c -@@ -1467,6 +1467,11 @@ simple_object_elf_copy_lto_debug_sections (simple_object_read *sobj, - && st_shndx < shnum - && pfnret[st_shndx - 1] == -1) - discard = 1; -+ /* We also need to remove global UNDEFs which can -+ cause link fails later. */ -+ else if (st_shndx == SHN_UNDEF -+ && ELF_ST_BIND (*st_info) == STB_GLOBAL) -+ discard = 1; - - if (discard) - { diff --git a/SOURCES/gcc10-pr97524.patch b/SOURCES/gcc10-pr97524.patch new file mode 100644 index 0000000..7321899 --- /dev/null +++ b/SOURCES/gcc10-pr97524.patch @@ -0,0 +1,53 @@ +commit 6fade5a6044b7102758f4ca66c8715ebc12a6306 +Author: Martin Liska +Date: Thu Oct 22 14:07:29 2020 +0200 + + LTO: check that make command works + + gcc/ChangeLog: + + PR lto/97524 + * lto-wrapper.c (make_exists): New function. + (run_gcc): Use it to check that make is present and working + for parallel execution. + +--- gcc/lto-wrapper.c ++++ gcc/lto-wrapper.c +@@ -1321,6 +1321,26 @@ jobserver_active_p (void) + && is_valid_fd (wfd)); + } + ++/* Test that a make command is present and working, return true if so. */ ++ ++static bool ++make_exists (void) ++{ ++ const char *make = "make"; ++ char **make_argv = buildargv (getenv ("MAKE")); ++ if (make_argv) ++ make = make_argv[0]; ++ const char *make_args[] = {make, "--version", NULL}; ++ ++ int exit_status = 0; ++ int err = 0; ++ const char *errmsg ++ = pex_one (PEX_SEARCH, make_args[0], CONST_CAST (char **, make_args), ++ "make", NULL, NULL, &exit_status, &err); ++ freeargv (make_argv); ++ return errmsg == NULL && exit_status == 0 && err == 0; ++} ++ + /* Execute gcc. ARGC is the number of arguments. ARGV contains the arguments. */ + + static void +@@ -1541,6 +1561,10 @@ run_gcc (unsigned argc, char *argv[]) + jobserver = 1; + } + ++ /* We need make working for a parallel execution. */ ++ if (parallel && !make_exists ()) ++ parallel = 0; ++ + if (linker_output) + { + char *output_dir, *base, *name; diff --git a/SOURCES/libgomp_nonshared.c b/SOURCES/libgomp_nonshared.c index 4380a7d..8d1bccf 100644 --- a/SOURCES/libgomp_nonshared.c +++ b/SOURCES/libgomp_nonshared.c @@ -42,6 +42,22 @@ extern void GOMP_parallel_loop_runtime (void (*)(void *), void *, unsigned); extern bool GOMP_loop_ull_runtime_start (bool, ull, ull, ull, ull *, ull *); extern bool GOMP_loop_ull_runtime_next (ull *, ull *); +extern bool GOMP_loop_dynamic_next (long *, long *); +extern bool GOMP_loop_dynamic_start (long, long, long, long, long *, long *); +extern bool GOMP_loop_guided_next (long *, long *); +extern bool GOMP_loop_guided_start (long, long, long, long, long *, long *); +extern bool GOMP_loop_ull_dynamic_next (ull *, ull *); +extern bool GOMP_loop_ull_dynamic_start (bool, ull, ull, ull, ull, ull *, + ull *); +extern bool GOMP_loop_ull_guided_next (ull *, ull *); +extern bool GOMP_loop_ull_guided_start (bool, ull, ull, ull, ull, ull *, + ull *); +extern void GOMP_parallel_loop_dynamic (void (*)(void *), void *, + unsigned, long, long, long, long, + unsigned); +extern void GOMP_parallel_loop_guided (void (*)(void *), void *, + unsigned, long, long, long, long, + unsigned); #define alias(x, y) __typeof (x) y __attribute__((alias (#x))) #pragma GCC visibility push(hidden) @@ -91,4 +107,82 @@ GOMP_loop_ull_nonmonotonic_runtime_next (ull *istart, ull *iend) alias (GOMP_loop_ull_nonmonotonic_runtime_next, GOMP_loop_ull_maybe_nonmonotonic_runtime_next); +bool +GOMP_loop_nonmonotonic_dynamic_next (long *istart, long *iend) +{ + return GOMP_loop_dynamic_next (istart, iend); +} + +bool +GOMP_loop_nonmonotonic_dynamic_start (long start, long end, long incr, + long chunk_size, long *istart, + long *iend) +{ + return GOMP_loop_dynamic_start (start, end, incr, chunk_size, istart, iend); +} + +bool +GOMP_loop_nonmonotonic_guided_next (long *istart, long *iend) +{ + return GOMP_loop_guided_next (istart, iend); +} + +bool +GOMP_loop_nonmonotonic_guided_start (long start, long end, long incr, + long chunk_size, long *istart, long *iend) +{ + return GOMP_loop_guided_start (start, end, incr, chunk_size, istart, iend); +} + +bool +GOMP_loop_ull_nonmonotonic_dynamic_next (ull *istart, ull *iend) +{ + return GOMP_loop_ull_dynamic_next (istart, iend); +} + +bool +GOMP_loop_ull_nonmonotonic_dynamic_start (bool up, ull start, + ull end, ull incr, + ull chunk_size, + ull *istart, ull *iend) +{ + return GOMP_loop_ull_dynamic_start (up, start, end, incr, chunk_size, istart, + iend); +} + +bool +GOMP_loop_ull_nonmonotonic_guided_next (ull *istart, ull *iend) +{ + return GOMP_loop_ull_guided_next (istart, iend); +} + +bool +GOMP_loop_ull_nonmonotonic_guided_start (bool up, ull start, ull end, + ull incr, ull chunk_size, + ull *istart, ull *iend) +{ + return GOMP_loop_ull_guided_start (up, start, end, incr, chunk_size, istart, + iend); +} + +void +GOMP_parallel_loop_nonmonotonic_dynamic (void (*fn) (void *), void *data, + unsigned num_threads, long start, + long end, long incr, long chunk_size, + unsigned flags) +{ + GOMP_parallel_loop_dynamic (fn, data, num_threads, start, end, incr, + chunk_size, flags); +} + +void +GOMP_parallel_loop_nonmonotonic_guided (void (*fn) (void *), void *data, + unsigned num_threads, long start, + long end, long incr, long chunk_size, + unsigned flags) +{ + GOMP_parallel_loop_guided (fn, data, num_threads, start, end, incr, + chunk_size, flags); +} + #pragma GCC visibility pop diff --git a/SPECS/gcc.spec b/SPECS/gcc.spec index 2846373..216570d 100644 --- a/SPECS/gcc.spec +++ b/SPECS/gcc.spec @@ -2,13 +2,13 @@ %{?scl:%global __strip %%{_scl_root}/usr/bin/strip} %{?scl:%global __objdump %%{_scl_root}/usr/bin/objdump} %{?scl:%scl_package gcc} -%global DATE 20200804 -%global gitrev 08d83635c2ab388f6139db6965e600b296ad85e6 +%global DATE 20210130 +%global gitrev 966e4575ccd8b618811b4871e44c31bb2d11a82a %global gcc_version 10.2.1 %global gcc_major 10 # 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 2 +%global gcc_release 11 %global mpc_version 1.0.3 %global isl_version 0.16.1 %global mpfr_version 3.1.4 @@ -158,6 +158,7 @@ URL: http://gcc.gnu.org # Need binutils which support -plugin # Need binutils which support .loc view >= 2.30 # Need binutils which support --generate-missing-build-notes=yes >= 2.31 +BuildRequires: procps-ng BuildRequires: binutils >= 2.19.51.0.14-33 # While gcc doesn't include statically linked binaries, during testing # -static is used several times. @@ -172,7 +173,7 @@ BuildRequires: texinfo, texinfo-tex, /usr/bin/pod2man #BuildRequires: systemtap-sdt-devel >= 1.3 #BuildRequires: gmp-devel >= 4.1.2-8, mpfr-devel >= 2.2.1, libmpc-devel >= 0.8.1 #BuildRequires: python3-devel, /usr/bin/python -BuildRequires: gcc, gcc-c++ +BuildRequires: gcc, gcc-c++, make # For VTA guality testing BuildRequires: gdb # Make sure pthread.h doesn't contain __thread tokens @@ -244,6 +245,8 @@ BuildRequires: dblatex, texlive-collection-latex, docbook5-style-xsl %endif Requires: libgcc >= 4.1.2-43 Requires: libgomp >= 4.4.4-13 +# lto-wrapper invokes make +Requires: make %{?scl:Requires:%scl_runtime} AutoReq: true Provides: bundled(libiberty) @@ -304,7 +307,8 @@ Patch10: gcc10-rh1574936.patch Patch11: gcc10-d-shared-libphobos.patch Patch12: gcc10-pr94540.patch Patch13: gcc10-pr96383.patch -Patch14: gcc10-pr96385.patch +Patch14: gcc10-pr97524.patch +Patch15: gcc10-SIZE_MAX.patch Patch1000: gcc10-libstdc++-compat.patch Patch1001: gcc10-alt-compat-test.patch @@ -649,7 +653,8 @@ This package contains Leak Sanitizer static runtime library. %patch11 -p0 -b .d-shared-libphobos~ %patch12 -p0 -b .pr94540~ %patch13 -p0 -b .pr96383~ -%patch14 -p0 -b .pr96385~ +%patch14 -p0 -b .pr97524~ +%patch15 -p0 -b .SIZE_MAX~ %patch1000 -p0 -b .libstdc++-compat~ %ifarch %{ix86} x86_64 @@ -730,6 +735,8 @@ rm -f libgomp/testsuite/libgomp.c/target-32.c rm -f libgomp/testsuite/libgomp.c/target-33.c rm -f libgomp/testsuite/libgomp.c/target-34.c rm -rf libgomp/testsuite/libgomp.oacc* +rm -rf libgomp/testsuite/libgomp.hsa.c* +rm -rf libgomp/testsuite/libgomp.graphite* %endif %build @@ -1276,6 +1283,8 @@ GROUP ( /lib/libgcc_s.so.1 libgcc.a )' > $FULLPATH/32/libgcc_s.so mv -f %{buildroot}%{_prefix}/%{_lib}/libgomp.spec $FULLPATH/ cp -a %{gcc_target_platform}/libstdc++-v3/src/.libs/libstdc++_nonshared%{nonsharedver}.a \ $FULLLPATH/libstdc++_nonshared.a +cp -a %{gcc_target_platform}/libgfortran/.libs/libgfortran_nonshared80.a \ + $FULLLPATH/libgfortran_nonshared.a %if 0%{?rhel} <= 7 # Build libgomp_nonshared.a with the system RHEL 7 compiler. Use -O2 to @@ -1332,7 +1341,7 @@ echo '/* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ %{oformat} -INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libgfortran.so.5 )' > libgfortran.so +INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/%{_lib}/libgfortran.so.5 -lgfortran_nonshared )' > libgfortran.so %if %{build_libquadmath} rm -f libquadmath.so echo '/* GNU ld script */ @@ -1432,7 +1441,7 @@ echo '/* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ %{oformat2} -INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libgfortran.so.5 )' > 64/libgfortran.so +INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libgfortran.so.5 -lgfortran_nonshared )' > 64/libgfortran.so echo '/* GNU ld script */ %{oformat2} INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib64/libgomp.so.1 )' > 64/libgomp.so @@ -1532,7 +1541,7 @@ echo '/* GNU ld script Use the shared library, but some functions are only in the static library, so try that secondarily. */ %{oformat2} -INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libgfortran.so.5 )' > 32/libgfortran.so +INPUT ( %{?scl:%{_root_prefix}}%{!?scl:%{_prefix}}/lib/libgfortran.so.5 -lgfortran_nonshared )' > 32/libgfortran.so %if 0%{?rhel} <= 7 echo '/* GNU ld script @@ -1604,6 +1613,8 @@ ln -sf ../lib32/libstdc++_nonshared.a 32/libstdc++_nonshared.a ln -sf lib64/libstdc++_nonshared.a libstdc++_nonshared.a %endif %if 0%{?rhel} <= 7 +ln -sf ../lib32/libgfortran_nonshared.a 32/libgfortran_nonshared.a +ln -sf lib64/libgfortran_nonshared.a libgfortran_nonshared.a ln -sf lib64/libgomp_nonshared.a libgomp_nonshared.a %endif %if %{build_libquadmath} @@ -1635,6 +1646,9 @@ ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major %if 0%{?rhel} <= 8 ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libstdc++_nonshared.a 32/libstdc++_nonshared.a %endif +%if 0%{?rhel} <= 7 +ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libgfortran_nonshared.a 32/libgfortran_nonshared.a +%endif %if %{build_libquadmath} ln -sf ../../../%{multilib_32_arch}-%{_vendor}-%{_target_os}%{?_gnu}/%{gcc_major}/libquadmath.a 32/libquadmath.a %endif @@ -1672,6 +1686,7 @@ for f in `find $adirs -maxdepth 1 -a \ -o -name libcc1.a \ -o -name libstdc++_nonshared.a \ -o -name libgomp_nonshared.a \ + -o -name libgfortran_nonshared.a \ -o -name libsupc++.a \ -o -name libstdc++.a -o -name libcaf_single.a \ -o -name libstdc++fs.a \) -a -type f`; do @@ -1830,6 +1845,10 @@ ln -s ../../libexec/gcc/%{gcc_target_platform}/%{gcc_major}/liblto_plugin.so \ %check cd obj-%{gcc_target_platform} +%ifarch ppc ppc64 ppc64le +while :; do sleep 15m; ps -ejHf; done & +%endif + %{?scl:PATH=%{_bindir}${PATH:+:${PATH}}} %if 0%{?rhel} <= 8 # Test against the system libstdc++.so.6 + libstdc++_nonshared.a combo @@ -2431,6 +2450,7 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libcaf_single.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran_nonshared.a %ifarch sparcv9 ppc %dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64 %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/64/libcaf_single.a @@ -2443,8 +2463,13 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libcaf_single.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran.so +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/libgfortran_nonshared.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/32/finclude %endif +%ifarch ppc64 +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64 +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/lib64/libgfortran_nonshared.a +%endif %doc rpm.doc/gfortran/* %if %{build_libquadmath} @@ -2467,6 +2492,11 @@ fi %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.a %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libquadmath.so %endif +%dir %{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major} +%ifarch %{ix86} +# Need it for -m32. +%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_major}/libgfortran_nonshared.a +%endif %doc rpm.doc/libquadmath/ChangeLog* %endif @@ -2626,6 +2656,27 @@ fi %doc rpm.doc/changelogs/libcc1/ChangeLog* %changelog +* Thu Mar 18 2021 Marek Polacek 10.2.1-11.1 +- update libgomp_nonshared.c with new symbols + +* Tue Feb 16 2021 Marek Polacek 10.2.1-11 +- update from Fedora gcc 10.2.1-11 +- apply gcc10-SIZE_MAX.patch + +* Tue Feb 16 2021 Marek Polacek 10.2.1-10.4 +- package 32/libgfortran_nonshared.a (#1927579) + +* Mon Feb 15 2021 Marek Polacek 10.2.1-10.3 +- actually use libgfortran_nonshared.a (#1927579) + +* Mon Jan 25 2021 Marek Polacek 10.2.1-10.2 +- require make +- apply PR97524 fix (#1896092) + +* Tue Jan 19 2021 Marek Polacek 10.2.1-10.1 +- update from Fedora gcc 10.2.1-10 (#1872051) +- drop gcc10-pr96385.patch + * Mon Aug 17 2020 Marek Polacek 10.2.1-2.1 - re-enable Fortran patches (#1860413)