Hello community, here is the log from the commit of package gcc8 for openSUSE:Factory checked in at 2019-06-04 12:11:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gcc8 (Old) and /work/SRC/openSUSE:Factory/.gcc8.new.5148 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gcc8" Tue Jun 4 12:11:37 2019 rev:15 rq:706664 version:8.3.1+r271793 Changes: -------- --- /work/SRC/openSUSE:Factory/gcc8/cross-aarch64-gcc8.changes 2019-03-10 09:28:39.732276072 +0100 +++ /work/SRC/openSUSE:Factory/.gcc8.new.5148/cross-aarch64-gcc8.changes 2019-06-04 12:11:41.067834665 +0200 @@ -1,0 +2,35 @@ +Fri May 31 08:12:20 UTC 2019 - [email protected] + +- Update to gcc-8-branch head (r271793). + +------------------------------------------------------------------- +Thu May 30 12:37:32 UTC 2019 - Martin Liška <[email protected]> + +- Strip -flto from $optflags. + +------------------------------------------------------------------- +Fri May 3 08:39:53 UTC 2019 - [email protected] + +- Update to gcc-8-branch head (r270841). + * Includes gcc8-pr89752.patch. + +------------------------------------------------------------------- +Mon Mar 25 11:12:03 UTC 2019 - [email protected] + +- Add gcc8-pr89752.patch fixing an ICE compiling tensorflow on + aarch64 [bsc#1129389]. +- Change URLs to use https. + +------------------------------------------------------------------- +Tue Mar 5 08:28:21 UTC 2019 - [email protected] + +- Update to gcc-8-branch head (r269383). + * Includes fix for PR89505. [bsc#1127857] + +------------------------------------------------------------------- +Wed Feb 27 12:06:48 UTC 2019 - [email protected] + +- Add gcc8-reproducible-builds-buildid-for-checksum.patch to make + builds without profiling reproducible. + +------------------------------------------------------------------- @@ -5 +40 @@ - * Includes GCC 8.3 release. + * Includes GCC 8.3 release. [bsc#1127260] cross-arm-gcc8.changes: same change cross-arm-none-gcc8-bootstrap.changes: same change cross-arm-none-gcc8.changes: same change cross-avr-gcc8-bootstrap.changes: same change cross-avr-gcc8.changes: same change cross-epiphany-gcc8-bootstrap.changes: same change cross-epiphany-gcc8.changes: same change cross-hppa-gcc8.changes: same change cross-i386-gcc8.changes: same change cross-m68k-gcc8.changes: same change cross-mips-gcc8.changes: same change cross-nvptx-gcc8.changes: same change cross-ppc64-gcc8.changes: same change cross-ppc64le-gcc8.changes: same change cross-riscv64-elf-gcc8-bootstrap.changes: same change cross-riscv64-elf-gcc8.changes: same change cross-riscv64-gcc8.changes: same change cross-rx-gcc8-bootstrap.changes: same change cross-rx-gcc8.changes: same change cross-s390x-gcc8.changes: same change cross-sparc-gcc8.changes: same change cross-sparc64-gcc8.changes: same change cross-x86_64-gcc8.changes: same change gcc8-testresults.changes: same change gcc8.changes: same change Old: ---- gcc-8.3.1+r269200.tar.xz New: ---- gcc-8.3.1+r271793.tar.xz gcc8-reproducible-builds-buildid-for-checksum.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cross-aarch64-gcc8.spec ++++++ --- /var/tmp/diff_new_pack.USr5ND/_old 2019-06-04 12:12:25.759820028 +0200 +++ /var/tmp/diff_new_pack.USr5ND/_new 2019-06-04 12:12:25.763820027 +0200 @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -172,8 +172,8 @@ %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 -Url: http://gcc.gnu.org/ -Version: 8.3.1+r269200 +URL: https://gcc.gnu.org/ +Version: 8.3.1+r271793 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/+/-/') @@ -197,6 +197,7 @@ Patch17: riscv-builtin-eh-return.patch Patch18: gcc8-pr87642.patch Patch19: gcc8-reproducible-builds.patch +Patch20: gcc8-reproducible-builds-buildid-for-checksum.patch # A set of patches from the RH srpm Patch51: gcc41-ppc32-retaddr.patch # Some patches taken from Debian @@ -275,6 +276,7 @@ %patch17 -p1 %patch18 %patch19 +%patch20 %patch51 %patch60 %patch61 @@ -282,6 +284,7 @@ #test patching end %build +%define _lto_cflags %{nil} # Avoid rebuilding of generated files contrib/gcc_update --touch @@ -397,7 +400,7 @@ %else --disable-plugin \ %endif - --with-bugurl="http://bugs.opensuse.org/" \ + --with-bugurl="https://bugs.opensuse.org/" \ --with-pkgversion="SUSE Linux" \ --with-slibdir=/%{_lib} \ --with-system-zlib \ cross-arm-gcc8.spec: same change cross-arm-none-gcc8-bootstrap.spec: same change cross-arm-none-gcc8.spec: same change cross-avr-gcc8-bootstrap.spec: same change cross-avr-gcc8.spec: same change cross-epiphany-gcc8-bootstrap.spec: same change cross-epiphany-gcc8.spec: same change cross-hppa-gcc8.spec: same change cross-i386-gcc8.spec: same change cross-m68k-gcc8.spec: same change cross-mips-gcc8.spec: same change cross-nvptx-gcc8.spec: same change cross-ppc64-gcc8.spec: same change cross-ppc64le-gcc8.spec: same change cross-riscv64-elf-gcc8-bootstrap.spec: same change cross-riscv64-elf-gcc8.spec: same change cross-riscv64-gcc8.spec: same change cross-rx-gcc8-bootstrap.spec: same change cross-rx-gcc8.spec: same change cross-s390x-gcc8.spec: same change cross-sparc-gcc8.spec: same change cross-sparc64-gcc8.spec: same change cross-x86_64-gcc8.spec: same change gcc8-testresults.spec: same change ++++++ gcc8.spec ++++++ --- /var/tmp/diff_new_pack.USr5ND/_old 2019-06-04 12:12:26.395819820 +0200 +++ /var/tmp/diff_new_pack.USr5ND/_new 2019-06-04 12:12:26.395819820 +0200 @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -231,8 +231,8 @@ %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 -Url: http://gcc.gnu.org/ -Version: 8.3.1+r269200 +URL: https://gcc.gnu.org/ +Version: 8.3.1+r271793 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/+/-/') @@ -295,6 +295,7 @@ Patch17: riscv-builtin-eh-return.patch Patch18: gcc8-pr87642.patch Patch19: gcc8-reproducible-builds.patch +Patch20: gcc8-reproducible-builds-buildid-for-checksum.patch # A set of patches from the RH srpm Patch51: gcc41-ppc32-retaddr.patch # Some patches taken from Debian @@ -650,7 +651,7 @@ %package info Summary: Documentation for the GNU compiler collection -License: GFDL-1.2 +License: GFDL-1.2-only Group: Documentation/Other PreReq: %{install_info_prereq} %if 0%{?suse_version} >= 1120 @@ -988,7 +989,7 @@ %package -n libquadmath%{libquadmath_sover}%{libquadmath_suffix} Summary: The GNU Fortran Compiler Quadmath Runtime Library -License: LGPL-2.1 +License: LGPL-2.1-only Group: Development/Languages/Fortran Provides: libquadmath%{libquadmath_sover} = %{version}-%{release} # Only one package may provide this - allows multiple gcc versions @@ -1005,7 +1006,7 @@ %postun -n libquadmath%{libquadmath_sover}%{libquadmath_suffix} -p /sbin/ldconfig %package -n libquadmath%{libquadmath_sover}%{libquadmath_suffix}-32bit Summary: The GNU Fortran Compiler Quadmath Runtime Library -License: LGPL-2.1 +License: LGPL-2.1-only Group: Development/Languages/Fortran Provides: libquadmath%{libquadmath_sover}-32bit = %{version}-%{release} # Only one package may provide this - allows multiple gcc versions @@ -1022,7 +1023,7 @@ %postun -n libquadmath%{libquadmath_sover}%{libquadmath_suffix}-32bit -p /sbin/ldconfig %package -n libquadmath%{libquadmath_sover}%{libquadmath_suffix}-64bit Summary: The GNU Fortran Compiler Quadmath Runtime Library -License: LGPL-2.1 +License: LGPL-2.1-only Group: Development/Languages/Fortran Provides: libquadmath%{libquadmath_sover}-64bit = %{version}-%{release} # Only one package may provide this - allows multiple gcc versions @@ -1692,6 +1693,7 @@ %patch17 -p1 %patch18 %patch19 +%patch20 %patch51 %patch60 %patch61 @@ -1699,6 +1701,7 @@ #test patching end %build +%define _lto_cflags %{nil} # Avoid rebuilding of generated files contrib/gcc_update --touch @@ -1814,7 +1817,7 @@ %else --disable-plugin \ %endif - --with-bugurl="http://bugs.opensuse.org/" \ + --with-bugurl="https://bugs.opensuse.org/" \ --with-pkgversion="SUSE Linux" \ --with-slibdir=/%{_lib} \ --with-system-zlib \ ++++++ gcc-8.3.1+r269200.tar.xz -> gcc-8.3.1+r271793.tar.xz ++++++ /work/SRC/openSUSE:Factory/gcc8/gcc-8.3.1+r269200.tar.xz /work/SRC/openSUSE:Factory/.gcc8.new.5148/gcc-8.3.1+r271793.tar.xz differ: char 27, line 1 ++++++ gcc.spec.in ++++++ --- /var/tmp/diff_new_pack.USr5ND/_old 2019-06-04 12:12:26.591819756 +0200 +++ /var/tmp/diff_new_pack.USr5ND/_new 2019-06-04 12:12:26.591819756 +0200 @@ -235,8 +235,8 @@ # COMMON-BEGIN %define biarch_targets x86_64 s390x powerpc64 powerpc sparc sparc64 -URL: http://gcc.gnu.org/ -Version: 8.3.1+r269200 +URL: https://gcc.gnu.org/ +Version: 8.3.1+r271793 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/+/-/') @@ -300,6 +300,7 @@ Patch17: riscv-builtin-eh-return.patch Patch18: gcc8-pr87642.patch Patch19: gcc8-reproducible-builds.patch +Patch20: gcc8-reproducible-builds-buildid-for-checksum.patch # A set of patches from the RH srpm Patch51: gcc41-ppc32-retaddr.patch # Some patches taken from Debian @@ -1031,6 +1032,7 @@ %patch17 -p1 %patch18 %patch19 +%patch20 %patch51 %patch60 %patch61 @@ -1038,6 +1040,7 @@ #test patching end %build +%define _lto_cflags %{nil} # Avoid rebuilding of generated files contrib/gcc_update --touch @@ -1153,7 +1156,7 @@ %else --disable-plugin \ %endif - --with-bugurl="http://bugs.opensuse.org/" \ + --with-bugurl="https://bugs.opensuse.org/" \ --with-pkgversion="SUSE Linux" \ --with-slibdir=/%{_lib} \ --with-system-zlib \ ++++++ gcc8-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) @@ -45,10 +45,6 @@ enum { MATCH_SIZE = ARRAY_SIZE (pch_matching) }; -/* The value of the checksum in the dummy compiler that is actually - checksummed. That compiler should never be run. */ -static const char no_checksum[16] = { 0 }; - /* Information about flags and suchlike that affect PCH validity. Before this structure is read, both an initial 8-character identification @@ -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 @@ -111,8 +167,6 @@ pch_init (void) pch_file); pch_outfile = f; - gcc_assert (memcmp (executable_checksum, no_checksum, 16) != 0); - memset (&v, '\0', sizeof (v)); v.debug_info_type = write_symbols; { @@ -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); @@ -212,8 +269,6 @@ c_common_valid_pch (cpp_reader *pfile, c /* Perform a quick test of whether this is a valid precompiled header for the current language. */ - gcc_assert (memcmp (executable_checksum, no_checksum, 16) != 0); - sizeread = read (fd, ident, IDENT_LENGTH + 16); if (sizeread == -1) fatal_error (input_location, "can%'t read %s: %m", name); @@ -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; }
