Hello community, here is the log from the commit of package gcc9 for openSUSE:Factory checked in at 2019-06-26 16:03:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gcc9 (Old) and /work/SRC/openSUSE:Factory/.gcc9.new.4615 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gcc9" Wed Jun 26 16:03:42 2019 rev:3 rq:709115 version:9.1.1+r272147 Changes: -------- --- /work/SRC/openSUSE:Factory/gcc9/cross-aarch64-gcc9.changes 2019-05-25 13:20:05.584339726 +0200 +++ /work/SRC/openSUSE:Factory/.gcc9.new.4615/cross-aarch64-gcc9.changes 2019-06-26 16:03:45.823606448 +0200 @@ -1,0 +2,23 @@ +Tue Jun 11 08:33:28 UTC 2019 - rguent...@suse.com + +- Update to gcc-9-branch head (r272147). + * Pulls fix for random debug info differences when compiling D code. + [gcc#90778] + +------------------------------------------------------------------- +Thu Jun 6 08:14:15 UTC 2019 - rguent...@suse.com + +- Update to gcc-9-branch head (r271995). + * installs workaround for broken lapack C interfaces +- Drop gcc9-spectrev1.patch, add gcc9-reproducible-builds.patch + and gcc9-reproducible-builds-buildid-for-checksum.patch moving + reproducible build improvements over from GCC 8 package. +- Split out libstdc++ pretty-printers into a separate package + supplementing gdb and the installed runtime. [bsc#1135254] + +------------------------------------------------------------------- +Mon May 27 07:33:17 UTC 2019 - rguent...@suse.com + +- Update to gcc-9-branch head (r271643). + +------------------------------------------------------------------- cross-arm-gcc9.changes: same change cross-arm-none-gcc9-bootstrap.changes: same change cross-arm-none-gcc9.changes: same change cross-avr-gcc9-bootstrap.changes: same change cross-avr-gcc9.changes: same change cross-epiphany-gcc9-bootstrap.changes: same change cross-epiphany-gcc9.changes: same change cross-hppa-gcc9.changes: same change cross-i386-gcc9.changes: same change cross-m68k-gcc9.changes: same change cross-mips-gcc9.changes: same change cross-nvptx-gcc9.changes: same change cross-ppc64-gcc9.changes: same change cross-ppc64le-gcc9.changes: same change cross-riscv64-elf-gcc9-bootstrap.changes: same change cross-riscv64-elf-gcc9.changes: same change cross-riscv64-gcc9.changes: same change cross-rx-gcc9-bootstrap.changes: same change cross-rx-gcc9.changes: same change cross-s390x-gcc9.changes: same change cross-sparc-gcc9.changes: same change cross-sparc64-gcc9.changes: same change cross-x86_64-gcc9.changes: same change gcc9-testresults.changes: same change gcc9.changes: same change Old: ---- gcc-9.1.1+r271393.tar.xz gcc9-spectrev1.patch New: ---- gcc-9.1.1+r272147.tar.xz gcc9-reproducible-builds-buildid-for-checksum.patch gcc9-reproducible-builds.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cross-aarch64-gcc9.spec ++++++ --- /var/tmp/diff_new_pack.DpNrjL/_old 2019-06-26 16:03:51.303614201 +0200 +++ /var/tmp/diff_new_pack.DpNrjL/_new 2019-06-26 16:03:51.307614207 +0200 @@ -173,7 +173,7 @@ %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 9.1.1+r271393 +Version: 9.1.1+r272147 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -192,7 +192,8 @@ Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch Patch11: gcc7-remove-Wexpansion-to-defined-from-Wextra.patch Patch15: gcc7-avoid-fixinc-error.diff -Patch16: gcc9-spectrev1.patch +Patch16: gcc9-reproducible-builds.patch +Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch # A set of patches from the RH srpm Patch51: gcc41-ppc32-retaddr.patch # Some patches taken from Debian @@ -266,7 +267,8 @@ %endif %patch11 %patch15 -%patch16 -p1 +%patch16 +%patch17 %patch51 %patch60 %patch61 cross-arm-gcc9.spec: same change cross-arm-none-gcc9-bootstrap.spec: same change cross-arm-none-gcc9.spec: same change cross-avr-gcc9-bootstrap.spec: same change cross-avr-gcc9.spec: same change cross-epiphany-gcc9-bootstrap.spec: same change cross-epiphany-gcc9.spec: same change cross-hppa-gcc9.spec: same change cross-i386-gcc9.spec: same change cross-m68k-gcc9.spec: same change cross-mips-gcc9.spec: same change cross-nvptx-gcc9.spec: same change cross-ppc64-gcc9.spec: same change cross-ppc64le-gcc9.spec: same change cross-riscv64-elf-gcc9-bootstrap.spec: same change cross-riscv64-elf-gcc9.spec: same change cross-riscv64-gcc9.spec: same change cross-rx-gcc9-bootstrap.spec: same change cross-rx-gcc9.spec: same change cross-s390x-gcc9.spec: same change cross-sparc-gcc9.spec: same change cross-sparc64-gcc9.spec: same change cross-x86_64-gcc9.spec: same change gcc9-testresults.spec: same change ++++++ gcc9.spec ++++++ --- /var/tmp/diff_new_pack.DpNrjL/_old 2019-06-26 16:03:51.915615067 +0200 +++ /var/tmp/diff_new_pack.DpNrjL/_new 2019-06-26 16:03:51.919615073 +0200 @@ -242,7 +242,7 @@ %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 9.1.1+r271393 +Version: 9.1.1+r272147 Release: 0 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -296,7 +296,8 @@ Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch Patch11: gcc7-remove-Wexpansion-to-defined-from-Wextra.patch Patch15: gcc7-avoid-fixinc-error.diff -Patch16: gcc9-spectrev1.patch +Patch16: gcc9-reproducible-builds.patch +Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch # A set of patches from the RH srpm Patch51: gcc41-ppc32-retaddr.patch # Some patches taken from Debian @@ -441,6 +442,10 @@ %ifarch ia64 Requires: libunwind-devel %endif +# Fallback for non-existing Supplements support +%if %{suse_version} < 1500 +Requires: libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix} = %{version}-%{release} +%endif %description -n libstdc++%{libstdcxx_sover}-devel%{libdevel_suffix} This package contains all the headers and libraries of the standard C++ @@ -454,6 +459,10 @@ %ifarch ia64 Requires: libunwind-devel %endif +# Fallback for non-existing Supplements support +%if %{suse_version} < 1500 +Requires: libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix}-32bit = %{version}-%{release} +%endif %description -n libstdc++%{libstdcxx_sover}-devel%{libdevel_suffix}-32bit This package contains all the headers and libraries of the standard C++ @@ -467,11 +476,58 @@ %ifarch ia64 Requires: libunwind-devel %endif +# Fallback for non-existing Supplements support +%if %{suse_version} < 1500 +Requires: libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix}-64bit = %{version}-%{release} +%endif %description -n libstdc++%{libstdcxx_sover}-devel%{libdevel_suffix}-64bit This package contains all the headers and libraries of the standard C++ library. It is needed for compiling C++ code. +%package -n libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix} +Summary: GDB pretty printers for the C++ standard library +License: GPL-3.0-or-later +Group: Development/Languages/C and C++ +Requires: libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix} = %{version}-%{release} +# packageand() does not work with versioned specifications so the fallback +# is a Requires from libstdc++-devel to preserve previous behavior. +%if %{suse_version} >= 1500 +Supplements: (gdb and libstdc++%{libstdcxx_sover} = %{version}-%{release}) +%endif + +%description -n libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix} +This package contains pretty printers for the C++ standard library usable +from GDB. +%package -n libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix}-32bit +Summary: GDB pretty printers for the C++ standard library +License: GPL-3.0-or-later +Group: Development/Languages/C and C++ +Requires: libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix} = %{version}-%{release} +# packageand() does not work with versioned specifications so the fallback +# is a Requires from libstdc++-devel to preserve previous behavior. +%if %{suse_version} >= 1500 +Supplements: (gdb and libstdc++%{libstdcxx_sover}-32bit = %{version}-%{release}) +%endif + +%description -n libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix}-32bit +This package contains pretty printers for the C++ standard library usable +from GDB. +%package -n libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix}-64bit +Summary: GDB pretty printers for the C++ standard library +License: GPL-3.0-or-later +Group: Development/Languages/C and C++ +Requires: libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix} = %{version}-%{release} +# packageand() does not work with versioned specifications so the fallback +# is a Requires from libstdc++-devel to preserve previous behavior. +%if %{suse_version} >= 1500 +Supplements: (gdb and libstdc++%{libstdcxx_sover}-64bit = %{version}-%{release}) +%endif + +%description -n libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix}-64bit +This package contains pretty printers for the C++ standard library usable +from GDB. + %package -n libgcc_s%{libgcc_s}%{libgcc_s_suffix} Summary: C compiler runtime library @@ -1712,7 +1768,8 @@ %endif %patch11 %patch15 -%patch16 -p1 +%patch16 +%patch17 %patch51 %patch60 %patch61 @@ -2716,6 +2773,9 @@ %versmainlib libstdc++.so %versmainlib libsupc++.a %{_prefix}/include/c++ + +%files -n libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix} +%defattr(-,root,root) %dir %{_datadir}/gdb %dir %{_datadir}/gdb/auto-load %dir %{_datadir}/gdb/auto-load%{_prefix} @@ -2730,6 +2790,9 @@ %versbiarchlib libstdc++fs.a %versbiarchlib libstdc++.so %versbiarchlib libsupc++.a + +%files -n libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix}%{separate_biarch_suffix} +%defattr(-,root,root) %dir %{_datadir}/gdb/auto-load/%{mainlibdirbi} %{_datadir}/gdb/auto-load/%{mainlibdirbi}/libstdc++.so.*-gdb.py %endif ++++++ _constraints ++++++ --- /var/tmp/diff_new_pack.DpNrjL/_old 2019-06-26 16:03:51.991615175 +0200 +++ /var/tmp/diff_new_pack.DpNrjL/_new 2019-06-26 16:03:51.991615175 +0200 @@ -1,25 +1,30 @@ <constraints> <hardware> <disk> - <size unit="G">16</size> + <size unit="G">22</size> </disk> - <physicalmemory> - <size unit="G">4</size> - </physicalmemory> + <memory> + <size unit="G">8</size> + </memory> <processors>4</processors> </hardware> <overwrite> <conditions> <arch>x86_64</arch> <arch>ppc64le</arch> - <arch>s390x</arch> <arch>aarch64</arch> + <package>gcc9</package> + <package>gcc9-testresults</package> </conditions> <hardware> + <disk> + <size unit="G">30</size> + </disk> <memory> - <size unit="G">8</size> + <size unit="G">9</size> </memory> <processors>8</processors> + <jobs>8</jobs> </hardware> </overwrite> </constraints> ++++++ gcc-9.1.1+r271393.tar.xz -> gcc-9.1.1+r272147.tar.xz ++++++ /work/SRC/openSUSE:Factory/gcc9/gcc-9.1.1+r271393.tar.xz /work/SRC/openSUSE:Factory/.gcc9.new.4615/gcc-9.1.1+r272147.tar.xz differ: char 27, line 1 ++++++ gcc.spec.in ++++++ --- /var/tmp/diff_new_pack.DpNrjL/_old 2019-06-26 16:03:52.167615423 +0200 +++ /var/tmp/diff_new_pack.DpNrjL/_new 2019-06-26 16:03:52.171615429 +0200 @@ -246,7 +246,7 @@ %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 URL: https://gcc.gnu.org/ -Version: 9.1.1+r271393 +Version: 9.1.1+r272147 Release: 1 %define gcc_dir_version %(echo %version | sed 's/+.*//' | cut -d '.' -f 1) %define gcc_snapshot_revision %(echo %version | sed 's/[3-9]\.[0-9]\.[0-6]//' | sed 's/+/-/') @@ -301,7 +301,8 @@ Patch9: gcc48-remove-mpfr-2.4.0-requirement.patch Patch11: gcc7-remove-Wexpansion-to-defined-from-Wextra.patch Patch15: gcc7-avoid-fixinc-error.diff -Patch16: gcc9-spectrev1.patch +Patch16: gcc9-reproducible-builds.patch +Patch17: gcc9-reproducible-builds-buildid-for-checksum.patch # A set of patches from the RH srpm Patch51: gcc41-ppc32-retaddr.patch # Some patches taken from Debian @@ -429,12 +430,33 @@ %ifarch ia64 Requires: libunwind-devel %endif +# Fallback for non-existing Supplements support +%if %{suse_version} < 1500 +Requires: libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix}@variant@ = %{version}-%{release} +%endif %description -n libstdc++%{libstdcxx_sover}-devel%{libdevel_suffix}@variant@ This package contains all the headers and libraries of the standard C++ library. It is needed for compiling C++ code. # PACKAGE-END +# PACKAGE-BEGIN +%package -n libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix}@variant@ +Summary: GDB pretty printers for the C++ standard library +License: GPL-3.0-or-later +Group: Development/Languages/C and C++ +Requires: libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix} = %{version}-%{release} +# packageand() does not work with versioned specifications so the fallback +# is a Requires from libstdc++-devel to preserve previous behavior. +%if %{suse_version} >= 1500 +Supplements: (gdb and libstdc++%{libstdcxx_sover}@variant@ = %{version}-%{release}) +%endif + +%description -n libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix}@variant@ +This package contains pretty printers for the C++ standard library usable +from GDB. +# PACKAGE-END + # PACKAGE-BEGIN %package -n libgcc_s%{libgcc_s}%{libgcc_s_suffix}@variant@ @@ -1033,7 +1055,8 @@ %endif %patch11 %patch15 -%patch16 -p1 +%patch16 +%patch17 %patch51 %patch60 %patch61 @@ -2044,6 +2067,9 @@ %versmainlib libstdc++.so %versmainlib libsupc++.a %{_prefix}/include/c++ + +%files -n libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix} +%defattr(-,root,root) %dir %{_datadir}/gdb %dir %{_datadir}/gdb/auto-load %dir %{_datadir}/gdb/auto-load%{_prefix} @@ -2058,6 +2084,9 @@ %versbiarchlib libstdc++fs.a %versbiarchlib libstdc++.so %versbiarchlib libsupc++.a + +%files -n libstdc++%{libstdcxx_sover}-pp%{libdevel_suffix}%{separate_biarch_suffix} +%defattr(-,root,root) %dir %{_datadir}/gdb/auto-load/%{mainlibdirbi} %{_datadir}/gdb/auto-load/%{mainlibdirbi}/libstdc++.so.*-gdb.py %endif ++++++ gcc9-reproducible-builds-buildid-for-checksum.patch ++++++ Use the binaries build-id as checksum for PCH purposes. Index: gcc/c-family/c-pch.c =================================================================== --- gcc/c-family/c-pch.c (revision 269204) +++ gcc/c-family/c-pch.c (working copy) @@ -69,6 +65,66 @@ static FILE *pch_outfile; static const char *get_ident (void); +#if _GNU_SOURCE +#include <link.h> + +#define ALIGN(val, align) (((val) + (align) - 1) & ~((align) - 1)) + +static int +get_build_id_1 (struct dl_phdr_info *info, size_t, void *data) +{ + for (unsigned i = 0; i < info->dlpi_phnum; ++i) + { + if (info->dlpi_phdr[i].p_type != PT_NOTE) + continue; + ElfW(Nhdr) *nhdr + = (ElfW(Nhdr) *)(info->dlpi_addr + info->dlpi_phdr[i].p_vaddr); + ptrdiff_t size = info->dlpi_phdr[i].p_filesz; + ptrdiff_t align = info->dlpi_phdr[i].p_align; + if (align != 8) + align = 4; + while (size >= (ptrdiff_t)sizeof (ElfW(Nhdr))) + { + if (nhdr->n_type == NT_GNU_BUILD_ID + && nhdr->n_namesz == 4 + && strncmp ((char *)nhdr + + sizeof (ElfW(Nhdr)), + "GNU", 4) == 0 + && nhdr->n_descsz >= 16) + { + memcpy (data, + (char *)nhdr + + ALIGN (sizeof (ElfW(Nhdr)) + + nhdr->n_namesz, align), 16); + return 1; + } + size_t offset = (ALIGN (sizeof (ElfW(Nhdr)) + + nhdr->n_namesz, align) + + ALIGN(nhdr->n_descsz, align)); + nhdr = (ElfW(Nhdr) *)((char *)nhdr + offset); + size -= offset; + } + } + + return 0; +} + +static const unsigned char * +get_build_id () +{ + static unsigned char build_id[16]; + if (!dl_iterate_phdr (get_build_id_1, build_id)) + return NULL; + return build_id; +} +#else +static const unsigned char * +get_build_id () +{ + return NULL; +} +#endif + /* Compute an appropriate 8-byte magic number for the PCH file, so that utilities like file(1) can identify it, and so that GCC can quickly ignore non-PCH files and PCH files that are of a completely different @@ -126,8 +180,11 @@ pch_init (void) v.pch_init = &pch_init; target_validity = targetm.get_pch_validity (&v.target_data_length); + const unsigned char *chksum = get_build_id (); + if (!chksum) + chksum = executable_checksum; if (fwrite (partial_pch, IDENT_LENGTH, 1, f) != 1 - || fwrite (executable_checksum, 16, 1, f) != 1 + || fwrite (chksum, 16, 1, f) != 1 || fwrite (&v, sizeof (v), 1, f) != 1 || fwrite (target_validity, v.target_data_length, 1, f) != 1) fatal_error (input_location, "can%'t write to %s: %m", pch_file); @@ -245,7 +300,10 @@ c_common_valid_pch (cpp_reader *pfile, c } return 2; } - if (memcmp (ident + IDENT_LENGTH, executable_checksum, 16) != 0) + const unsigned char *chksum = get_build_id (); + if (!chksum) + chksum = executable_checksum; + if (memcmp (ident + IDENT_LENGTH, chksum, 16) != 0) { if (cpp_get_options (pfile)->warn_invalid_pch) cpp_error (pfile, CPP_DL_WARNING, Index: gcc/genchecksum.c =================================================================== --- gcc/genchecksum.c (revision 269204) +++ gcc/genchecksum.c (working copy) @@ -113,8 +113,13 @@ main (int argc, char ** argv) puts ("#include \"config.h\""); puts ("#include \"system.h\""); fputs ("EXPORTED_CONST unsigned char executable_checksum[16] = { ", stdout); +#if _GNU_SOURCE + for (i = 0; i < 16; i++) + printf ("0x%02x%s", 0, i == 15 ? " };\n" : ", "); +#else for (i = 0; i < 16; i++) printf ("0x%02x%s", result[i], i == 15 ? " };\n" : ", "); +#endif return 0; } ++++++ gcc9-reproducible-builds.patch ++++++ Avoid leaking current data on generated file for Ada. Index: gcc/ada/gcc-interface/Makefile.in =================================================================== --- gcc/ada/gcc-interface/Makefile.in (revision 268977) +++ gcc/ada/gcc-interface/Makefile.in (working copy) @@ -2407,6 +2407,7 @@ $(RTSDIR)/s-oscons.ads: ../stamp-gnatlib $(OSCONS_CPP) ; \ $(OSCONS_EXTRACT) ; \ ../bldtools/oscons/xoscons s-oscons) + touch -r $(fsrcpfx)ada/gsocket.h $@ gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../stamp-gnatlib2-$(RTSDIR) $(RTSDIR)/s-oscons.ads test -f $(RTSDIR)/s-oscons.ads || exit 1