diff -u gcc-5-5.5.0/debian/changelog gcc-5-5.5.0/debian/changelog --- gcc-5-5.5.0/debian/changelog +++ gcc-5-5.5.0/debian/changelog @@ -1,9 +1,30 @@ -gcc-5 (5.5.0-11ubuntu1~14.04.york0.1) trusty; urgency=medium +gcc-5 (5.5.0-12ubuntu1~14.04) trusty; urgency=medium - * Revert gcj - * lower debhelper dpkg BDs + * PPA upload. - -- Jonathon Fernyhough Thu, 29 Mar 2018 12:56:12 +0100 + -- Matthias Klose Tue, 24 Apr 2018 11:37:38 +0200 + +gcc-5 (5.5.0-12ubuntu1) bionic; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Wed, 11 Apr 2018 22:17:07 +0200 + +gcc-5 (5.5.0-12) unstable; urgency=medium + + * Don't install i586 symlinks anymore for i386 builds in sid. + * Build a native compiler with a cross directory layout using the + FORCE_CROSS_LAYOUT environment variable. + * Fix zlib-dev dependencies for the libphobos cross multilib packages. + * Fix dependency generation for libatomic and libquadmath cross packages. + * Fix some lintian warnings. + * Link libasan, liblsan, libubsan always with --no-as-needed. LP: #1762683. + * libgnat{vsn,prj}-dev-cross-*: Don't depend on the gnat compiler. + * Use --push-state --as-needed and --pop-state instead of --as-needed and + --no-as-needed for linking libgcc. + + -- Matthias Klose Wed, 11 Apr 2018 22:11:34 +0200 gcc-5 (5.5.0-11ubuntu1) bionic; urgency=medium diff -u gcc-5-5.5.0/debian/control gcc-5-5.5.0/debian/control --- gcc-5-5.5.0/debian/control +++ gcc-5-5.5.0/debian/control @@ -4,23 +4,23 @@ Maintainer: Ubuntu Core developers XSBC-Original-Maintainer: Debian GCC Maintainers Uploaders: Matthias Klose -Standards-Version: 4.1.3 -Build-Depends: debhelper (>= 9), dpkg-dev (>= 1.17), - g++-multilib [amd64 armel armhf i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32] , g++-5 [arm64] , +Standards-Version: 4.1.4 +Build-Depends: debhelper (>= 9), dpkg-dev (>= 1.16.0~ubuntu4), + g++-multilib [amd64 armel armhf i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32], g++-5 [arm64], libc6.1-dev (>= 2.13-0ubuntu6) [alpha ia64] | libc0.3-dev (>= 2.13-0ubuntu6) [hurd-i386] | libc0.1-dev (>= 2.13-0ubuntu6) [kfreebsd-i386 kfreebsd-amd64] | libc6-dev (>= 2.13-0ubuntu6), libc6-dev (>= 2.13-31) [armel armhf], libc6-dev-amd64 [i386 x32], libc6-dev-sparc64 [sparc], libc6-dev-sparc [sparc64], libc6-dev-s390 [s390x], libc6-dev-s390x [s390], libc6-dev-i386 [amd64 x32], libc6-dev-powerpc [ppc64], libc6-dev-ppc64 [powerpc], libc0.1-dev-i386 [kfreebsd-amd64], lib32gcc1 [amd64 ppc64 kfreebsd-amd64 mipsn32 mipsn32el mips64 mips64el s390x sparc64 x32], libn32gcc1 [mips mipsel mips64 mips64el], lib64gcc1 [i386 mips mipsel mipsn32 mipsn32el powerpc sparc s390 x32], libc6-dev-mips64 [mips mipsel mipsn32 mipsn32el], libc6-dev-mipsn32 [mips mipsel mips64 mips64el], libc6-dev-mips32 [mipsn32 mipsn32el mips64 mips64el], libc6-dev-x32 [amd64 i386], libx32gcc1 [amd64 i386], libc6-dev-armhf [armel], libhfgcc1 [armel], libc6-dev-armel [armhf], libsfgcc1 [armhf], libc6.1-dbg [alpha ia64] | libc0.3-dbg [hurd-i386] | libc0.1-dbg [kfreebsd-i386 kfreebsd-amd64] | libc6-dbg, kfreebsd-kernel-headers (>= 0.84) [kfreebsd-any], linux-libc-dev [m68k], m4, libtool, autoconf2.64, gcc-6-base, libunwind7-dev (>= 0.98.5-6) [ia64], libatomic-ops-dev [ia64], autogen, gawk, lzma, xz-utils, patchutils, - zlib1g-dev, systemtap-sdt-dev [linux-any kfreebsd-any hurd-any], - binutils:native (>= 2.22) | binutils-multiarch:native (>= 2.22), binutils-hppa64-linux-gnu:native (>= 2.22) [hppa amd64 i386 x32], + zlib1g-dev, + binutils (>= 2.22) | binutils-multiarch (>= 2.22), binutils-hppa64 (>= 2.22) [hppa], gperf (>= 3.0.1), bison (>= 1:2.3), flex, gettext, - gdb:native, + gdb, texinfo (>= 4.3), locales, sharutils, - procps, zlib1g-dev, libantlr-java, python:native, libffi-dev, fastjar, libmagic-dev, libecj-java (>= 3.3.0-2), zip, libasound2-dev [ !hurd-any !kfreebsd-any], libxtst-dev, libxt-dev, libgtk2.0-dev (>= 2.4.4-2), libart-2.0-dev, libcairo2-dev, libgraphite2-dev, gnat-5:native [!m32r !sh3 !sh3eb !sh4eb !powerpcspe !mips64 !x32], g++-5:native, netbase, + procps, zlib1g-dev, libantlr-java, python, libffi-dev, fastjar, libmagic-dev, libecj-java (>= 3.3.0-2), zip, libasound2-dev [ !hurd-any !kfreebsd-any], libxtst-dev, libxt-dev, libgtk2.0-dev (>= 2.4.4-2), libart-2.0-dev, libcairo2-dev, libgraphite2-dev, gnat-5 [!m32r !sh3 !sh3eb !sh4eb !powerpcspe !mips64 !x32], g++-5, netbase, libisl-dev, libmpc-dev (>= 1.0), libmpfr-dev (>= 3.0.0-9~), libgmp-dev (>= 2:5.0.1~), dejagnu [!m68k !kfreebsd-amd64 !kfreebsd-i386 !kfreebsd-alpha], coreutils (>= 2.26) | realpath (>= 1.9.12), chrpath, lsb-release, quilt, - g++-5-alpha-linux-gnu [alpha] , gobjc-5-alpha-linux-gnu [alpha] , gfortran-5-alpha-linux-gnu [alpha] , gcj-5-alpha-linux-gnu [alpha] , gdc-5-alpha-linux-gnu [alpha] , gccgo-5-alpha-linux-gnu [alpha] , gnat-5-alpha-linux-gnu [alpha] , g++-5-x86-64-linux-gnu [amd64] , gobjc-5-x86-64-linux-gnu [amd64] , gfortran-5-x86-64-linux-gnu [amd64] , gcj-5-x86-64-linux-gnu [amd64] , gdc-5-x86-64-linux-gnu [amd64] , gccgo-5-x86-64-linux-gnu [amd64] , gnat-5-x86-64-linux-gnu [amd64] , g++-5-arm-linux-gnueabi [armel] , gobjc-5-arm-linux-gnueabi [armel] , gfortran-5-arm-linux-gnueabi [armel] , gcj-5-arm-linux-gnueabi [armel] , gdc-5-arm-linux-gnueabi [armel] , gccgo-5-arm-linux-gnueabi [armel] , gnat-5-arm-linux-gnueabi [armel] , g++-5-arm-linux-gnueabihf [armhf] , gobjc-5-arm-linux-gnueabihf [armhf] , gfortran-5-arm-linux-gnueabihf [armhf] , gcj-5-arm-linux-gnueabihf [armhf] , gdc-5-arm-linux-gnueabihf [armhf] , gccgo-5-arm-linux-gnueabihf [armhf] , gnat-5-arm-linux-gnueabihf [armhf] , g++-5-aarch64-linux-gnu [arm64] , gobjc-5-aarch64-linux-gnu [arm64] , gfortran-5-aarch64-linux-gnu [arm64] , gcj-5-aarch64-linux-gnu [arm64] , gdc-5-aarch64-linux-gnu [arm64] , gccgo-5-aarch64-linux-gnu [arm64] , gnat-5-aarch64-linux-gnu [arm64] , g++-5-i686-linux-gnu [i386] , gobjc-5-i686-linux-gnu [i386] , gfortran-5-i686-linux-gnu [i386] , gcj-5-i686-linux-gnu [i386] , gdc-5-i686-linux-gnu [i386] , gccgo-5-i686-linux-gnu [i386] , gnat-5-i686-linux-gnu [i386] , g++-5-mips-linux-gnu [mips] , gobjc-5-mips-linux-gnu [mips] , gfortran-5-mips-linux-gnu [mips] , gcj-5-mips-linux-gnu [mips] , gdc-5-mips-linux-gnu [mips] , gccgo-5-mips-linux-gnu [mips] , gnat-5-mips-linux-gnu [mips] , g++-5-mipsel-linux-gnu [mipsel] , gobjc-5-mipsel-linux-gnu [mipsel] , gfortran-5-mipsel-linux-gnu [mipsel] , gcj-5-mipsel-linux-gnu [mipsel] , gdc-5-mipsel-linux-gnu [mipsel] , gccgo-5-mipsel-linux-gnu [mipsel] , gnat-5-mipsel-linux-gnu [mipsel] , g++-5-mips64-linux-gnuabi64 [mips64] , gobjc-5-mips64-linux-gnuabi64 [mips64] , gfortran-5-mips64-linux-gnuabi64 [mips64] , gcj-5-mips64-linux-gnuabi64 [mips64] , gdc-5-mips64-linux-gnuabi64 [mips64] , gccgo-5-mips64-linux-gnuabi64 [mips64] , g++-5-mips64el-linux-gnuabi64 [mips64el] , gobjc-5-mips64el-linux-gnuabi64 [mips64el] , gfortran-5-mips64el-linux-gnuabi64 [mips64el] , gcj-5-mips64el-linux-gnuabi64 [mips64el] , gdc-5-mips64el-linux-gnuabi64 [mips64el] , gccgo-5-mips64el-linux-gnuabi64 [mips64el] , gnat-5-mips64el-linux-gnuabi64 [mips64el] , g++-5-powerpc-linux-gnu [powerpc] , gobjc-5-powerpc-linux-gnu [powerpc] , gfortran-5-powerpc-linux-gnu [powerpc] , gcj-5-powerpc-linux-gnu [powerpc] , gdc-5-powerpc-linux-gnu [powerpc] , gccgo-5-powerpc-linux-gnu [powerpc] , gnat-5-powerpc-linux-gnu [powerpc] , g++-5-powerpc64-linux-gnu [ppc64] , gobjc-5-powerpc64-linux-gnu [ppc64] , gfortran-5-powerpc64-linux-gnu [ppc64] , gcj-5-powerpc64-linux-gnu [ppc64] , gdc-5-powerpc64-linux-gnu [ppc64] , gccgo-5-powerpc64-linux-gnu [ppc64] , gnat-5-powerpc64-linux-gnu [ppc64] , g++-5-powerpc64le-linux-gnu [ppc64el] , gobjc-5-powerpc64le-linux-gnu [ppc64el] , gfortran-5-powerpc64le-linux-gnu [ppc64el] , gcj-5-powerpc64le-linux-gnu [ppc64el] , gdc-5-powerpc64le-linux-gnu [ppc64el] , gccgo-5-powerpc64le-linux-gnu [ppc64el] , gnat-5-powerpc64le-linux-gnu [ppc64el] , g++-5-m68k-linux-gnu [m68k] , gobjc-5-m68k-linux-gnu [m68k] , gfortran-5-m68k-linux-gnu [m68k] , gcj-5-m68k-linux-gnu [m68k] , gdc-5-m68k-linux-gnu [m68k] , g++-5-sh4-linux-gnu [sh4] , gobjc-5-sh4-linux-gnu [sh4] , gfortran-5-sh4-linux-gnu [sh4] , gcj-5-sh4-linux-gnu [sh4] , g++-5-sparc64-linux-gnu [sparc64] , gobjc-5-sparc64-linux-gnu [sparc64] , gfortran-5-sparc64-linux-gnu [sparc64] , gcj-5-sparc64-linux-gnu [sparc64] , gdc-5-sparc64-linux-gnu [sparc64] , gccgo-5-sparc64-linux-gnu [sparc64] , g++-5-s390x-linux-gnu [s390x] , gobjc-5-s390x-linux-gnu [s390x] , gfortran-5-s390x-linux-gnu [s390x] , gcj-5-s390x-linux-gnu [s390x] , gdc-5-s390x-linux-gnu [s390x] , gccgo-5-s390x-linux-gnu [s390x] , gnat-5-s390x-linux-gnu [s390x] , g++-5-x86-64-linux-gnux32 [x32] , gobjc-5-x86-64-linux-gnux32 [x32] , gfortran-5-x86-64-linux-gnux32 [x32] , gcj-5-x86-64-linux-gnux32 [x32] , gdc-5-x86-64-linux-gnux32 [x32] , gccgo-5-x86-64-linux-gnux32 [x32] , + bash, Build-Depends-Indep: doxygen (>= 1.7.2), graphviz (>= 2.2), ghostscript, texlive-latex-base, xsltproc, libxml2-utils, docbook-xsl-ns, Homepage: http://gcc.gnu.org/ Vcs-Browser: http://svn.debian.org/viewsvn/gcccvs/branches/sid/gcc-5/ diff -u gcc-5-5.5.0/debian/control.m4 gcc-5-5.5.0/debian/control.m4 --- gcc-5-5.5.0/debian/control.m4 +++ gcc-5-5.5.0/debian/control.m4 @@ -56,7 +56,7 @@ ', `dnl Uploaders: Matthias Klose ')dnl SRCNAME -Standards-Version: 4.1.3 +Standards-Version: 4.1.4 ifdef(`TARGET',`dnl cross Build-Depends: DEBHELPER_BUILD_DEP DPKG_BUILD_DEP LIBC_BUILD_DEP, LIBC_BIARCH_BUILD_DEP @@ -4936,7 +4936,7 @@ Section: libdevel Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') Priority: optional -Depends: BASELDEP, gnat`'PV`'TS (ifdef(`TARGET',`>= ${gnat:SoftVersion}',`= ${gnat:Version}')), +Depends: BASELDEP, ifdef(`TARGET',`', `gnat`'PV`'TS (ifdef(`TARGET',`>= ${gnat:SoftVersion}',`= ${gnat:Version}')),') libgnatvsn`'GNAT_V`'LS (= ${gnat:Version}), ${misc:Depends} Conflicts: libgnatvsn-dev (<< `'GNAT_V), libgnatvsn4.1-dev, libgnatvsn4.3-dev, libgnatvsn4.4-dev, @@ -4996,7 +4996,7 @@ Section: libdevel Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') Priority: optional -Depends: BASELDEP, gnat`'PV`'TS (ifdef(`TARGET',`>= ${gnat:SoftVersion}',`= ${gnat:Version}')), +Depends: BASELDEP, ifdef(`TARGET',`', `gnat`'PV`'TS (ifdef(`TARGET',`>= ${gnat:SoftVersion}',`= ${gnat:Version}')),') libgnatprj`'GNAT_V`'LS (= ${gnat:Version}), libgnatvsn`'GNAT_V-dev`'LS (= ${gnat:Version}), ${misc:Depends} Conflicts: libgnatprj-dev (<< `'GNAT_V), @@ -5170,7 +5170,7 @@ Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') Section: libdevel Priority: optional -Depends: BASELDEP, libdevdep(gcc`'PV-dev,64), lib64z1-dev, ${shlibs:Depends}, ${misc:Depends} +Depends: BASELDEP, libdevdep(gcc`'PV-dev,64), ifdef(`TARGET',`',`lib64z1-dev,') ${shlibs:Depends}, ${misc:Depends} BUILT_USING`'dnl Description: Phobos D standard library (64bit development files) This is the Phobos standard library that comes with the D2 compiler. @@ -5181,7 +5181,7 @@ Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') Section: libdevel Priority: optional -Depends: BASELDEP, libdevdep(gcc`'PV-dev,32), lib32z1-dev, ${shlibs:Depends}, ${misc:Depends} +Depends: BASELDEP, libdevdep(gcc`'PV-dev,32), ifdef(`TARGET',`',`lib32z1-dev,') ${shlibs:Depends}, ${misc:Depends} BUILT_USING`'dnl Description: Phobos D standard library (64bit development files) This is the Phobos standard library that comes with the D2 compiler. @@ -5193,7 +5193,7 @@ Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') Section: libdevel Priority: optional -Depends: BASELDEP, libdevdep(gcc`'PV-dev,n32), libn32z1-dev, ${shlibs:Depends}, ${misc:Depends} +Depends: BASELDEP, libdevdep(gcc`'PV-dev,n32), ifdef(`TARGET',`',`libn32z1-dev,') ${shlibs:Depends}, ${misc:Depends} BUILT_USING`'dnl Description: Phobos D standard library (n32 development files) This is the Phobos standard library that comes with the D2 compiler. @@ -5206,7 +5206,7 @@ Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') Section: libdevel Priority: optional -Depends: BASELDEP, libdevdep(gcc`'PV-dev,x32), ${dep:libx32z}, ${shlibs:Depends}, ${misc:Depends} +Depends: BASELDEP, libdevdep(gcc`'PV-dev,x32), ifdef(`TARGET',`',`${dep:libx32z},') ${shlibs:Depends}, ${misc:Depends} BUILT_USING`'dnl Description: Phobos D standard library (x32 development files) This is the Phobos standard library that comes with the D2 compiler. diff -u gcc-5-5.5.0/debian/patches/gcc-as-needed.diff gcc-5-5.5.0/debian/patches/gcc-as-needed.diff --- gcc-5-5.5.0/debian/patches/gcc-as-needed.diff +++ gcc-5-5.5.0/debian/patches/gcc-as-needed.diff @@ -1,9 +1,25 @@ # DP: On linux targets pass --as-needed by default to the linker, but always # DP: link the sanitizer libraries with --no-as-needed. +Index: b/src/gcc/gcc.c +=================================================================== --- a/src/gcc/gcc.c +++ b/src/gcc/gcc.c -@@ -568,8 +568,11 @@ proper position among the other output f +@@ -550,8 +550,11 @@ proper position among the other output f + #ifdef LIBASAN_EARLY_SPEC + #define LIBASAN_SPEC STATIC_LIBASAN_LIBS + #elif defined(HAVE_LD_STATIC_DYNAMIC) +-#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION \ +- "} -lasan %{static-libasan:" LD_DYNAMIC_OPTION "}" \ ++#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \ ++ " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " -lasan " \ ++ " %{static-libasan:" LD_DYNAMIC_OPTION "}" \ ++ " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ + STATIC_LIBASAN_LIBS + #else + #define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS +@@ -568,8 +571,11 @@ proper position among the other output f #ifdef LIBTSAN_EARLY_SPEC #define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS #elif defined(HAVE_LD_STATIC_DYNAMIC) @@ -17,9 +33,39 @@ STATIC_LIBTSAN_LIBS #else #define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS +@@ -586,8 +592,11 @@ proper position among the other output f + #ifdef LIBLSAN_EARLY_SPEC + #define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS + #elif defined(HAVE_LD_STATIC_DYNAMIC) +-#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION \ +- "} -llsan %{static-liblsan:" LD_DYNAMIC_OPTION "}" \ ++#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \ ++ " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " -llsan " \ ++ " %{static-liblsan:" LD_DYNAMIC_OPTION "}" \ ++ " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ + STATIC_LIBLSAN_LIBS + #else + #define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS +@@ -602,8 +611,11 @@ proper position among the other output f + #define STATIC_LIBUBSAN_LIBS \ + " %{static-libubsan:%:include(libsanitizer.spec)%(link_libubsan)}" + #ifdef HAVE_LD_STATIC_DYNAMIC +-#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION \ +- "} -lubsan %{static-libubsan:" LD_DYNAMIC_OPTION "}" \ ++#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \ ++ " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " -lubsan " \ ++ " %{static-libubsan:" LD_DYNAMIC_OPTION "}" \ ++ " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ + STATIC_LIBUBSAN_LIBS + #else + #define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS +Index: b/src/gcc/config/gnu-user.h +=================================================================== --- a/src/gcc/config/gnu-user.h +++ b/src/gcc/config/gnu-user.h -@@ -124,13 +124,13 @@ +@@ -124,13 +124,13 @@ see the files COPYING3 and COPYING.RUNTI #define LIBASAN_EARLY_SPEC "%{!shared:libasan_preinit%O%s} " \ "%{static-libasan:%{!shared:" \ LD_STATIC_OPTION " --whole-archive -lasan --no-whole-archive " \ @@ -183,26 +228,0 @@ -Index: b/src/libjava/Makefile.am -=================================================================== ---- a/src/libjava/Makefile.am -+++ b/src/libjava/Makefile.am -@@ -628,7 +628,7 @@ libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $( - rm .libs/libgcj_bc.so; \ - mv .libs/libgcj_bc.so.1.0.0 .libs/libgcj_bc.so; \ - $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \ -- -o .libs/libgcj_bc.so.1.0.0 -lgcj || exit; \ -+ -o .libs/libgcj_bc.so.1.0.0 -Wl,--no-as-needed -lgcj || exit; \ - rm .libs/libgcj_bc.so.1; \ - $(LN_S) libgcj_bc.so.1.0.0 .libs/libgcj_bc.so.1 - -Index: b/src/libjava/Makefile.in -=================================================================== ---- a/src/libjava/Makefile.in -+++ b/src/libjava/Makefile.in -@@ -10600,7 +10600,7 @@ libgcj_bc.la: $(libgcj_bc_la_OBJECTS) $( - rm .libs/libgcj_bc.so; \ - mv .libs/libgcj_bc.so.1.0.0 .libs/libgcj_bc.so; \ - $(libgcj_bc_dummy_LINK) -xc /dev/null -Wl,-soname,libgcj_bc.so.1 \ -- -o .libs/libgcj_bc.so.1.0.0 -lgcj || exit; \ -+ -o .libs/libgcj_bc.so.1.0.0 -Wl,--no-as-needed -lgcj || exit; \ - rm .libs/libgcj_bc.so.1; \ - $(LN_S) libgcj_bc.so.1.0.0 .libs/libgcj_bc.so.1 - diff -u gcc-5-5.5.0/debian/rules.conf gcc-5-5.5.0/debian/rules.conf --- gcc-5-5.5.0/debian/rules.conf +++ gcc-5-5.5.0/debian/rules.conf @@ -390,6 +390,9 @@ ifneq (,$(filter $(distrelease),jessie stretch sid experimental)) ISL_BUILD_DEP = libisl-dev (>= 0.14), endif +ifneq (,$(filter $(distrelease),buster sid experimental bionic)) + ISL_BUILD_DEP = libisl-0.18-dev, +endif ifneq (,$(filter $(distrelease),lenny etch squeeze wheezy dapper hardy jaunty karmic lucid maverick natty oneiric precise quantal raring)) MPC_BUILD_DEP = libmpc-dev, @@ -472,6 +475,9 @@ endif JAVA_BUILD_DEP := zlib1g-dev, libantlr-java, python$(NT), libffi-dev, +ifeq (,$(filter $(distrelease),squeeze wheezy jessie stretch precise trusty xenial yakkety zesty artful)) + JAVA_BUILD_DEP := zlib1g-dev, # required for gdc? +endif ifeq ($(PKGSOURCE),gcj-$(BASE_VERSION)) bd_java_archs = @@ -550,6 +556,9 @@ else gnat_build_dep := gnat$(NT) [$(ada_no_archs)] endif +ifneq (,$(filter $(DEB_STAGE),stage1 stage2)) + gnat_build_dep := +endif ifeq ($(PKGSOURCE),gcc-$(BASE_VERSION)) ifneq ($(with_separate_gnat),yes) diff -u gcc-5-5.5.0/debian/rules.d/binary-ada.mk gcc-5-5.5.0/debian/rules.d/binary-ada.mk --- gcc-5-5.5.0/debian/rules.d/binary-ada.mk +++ gcc-5-5.5.0/debian/rules.d/binary-ada.mk @@ -130,6 +130,7 @@ $(cross_shlibdeps) dh_shlibdeps -p$(p_lgnat) \ $(call shlibdirs_to_search, \ $(subst gnat-$(GNAT_SONAME),gcc$(GCC_SONAME),$(p_lgnat)) \ + $(subst gnat-$(GNAT_SONAME),atomic$(ATOMIC_SONAME),$(p_lgnat)) \ ,) \ $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) $(call cross_mangle_substvars,$(p_lgnat)) @@ -179,6 +180,7 @@ $(cross_shlibdeps) dh_shlibdeps -p$(p_lgnatvsn) \ $(call shlibdirs_to_search, \ $(subst gnatvsn$(GNAT_SONAME),gcc$(GCC_SONAME),$(p_lgnatvsn)) \ + $(subst gnatvsn$(GNAT_SONAME),atomic$(ATOMIC_SONAME),$(p_lgnatvsn)) \ $(subst gnatvsn$(GNAT_SONAME),gnat-$(GNAT_SONAME),$(p_lgnatvsn)) \ ,) \ $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) diff -u gcc-5-5.5.0/debian/rules.d/binary-fortran.mk gcc-5-5.5.0/debian/rules.d/binary-fortran.mk --- gcc-5-5.5.0/debian/rules.d/binary-fortran.mk +++ gcc-5-5.5.0/debian/rules.d/binary-fortran.mk @@ -105,7 +105,8 @@ $(call shlibdirs_to_search, \ $(subst gfortran$(FORTRAN_SONAME),gcc$(GCC_SONAME),$(p_l)) \ $(subst gfortran$(FORTRAN_SONAME),gcc$(QUADMATH_SONAME),$(p_l)) \ - ,$(2)) + ,$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) $(call cross_mangle_substvars,$(p_l)) echo $(p_l) $(p_d) >> debian/$(lib_binaries) diff -u gcc-5-5.5.0/debian/rules.d/binary-gcc.mk gcc-5-5.5.0/debian/rules.d/binary-gcc.mk --- gcc-5-5.5.0/debian/rules.d/binary-gcc.mk +++ gcc-5-5.5.0/debian/rules.d/binary-gcc.mk @@ -159,6 +159,7 @@ cp -p debian/README.ssp $(d_gcc)/$(docdir)/$(p_xbase)/ cp -p debian/NEWS.gcc $(d_gcc)/$(docdir)/$(p_xbase)/NEWS cp -p debian/NEWS.html $(d_gcc)/$(docdir)/$(p_xbase)/NEWS.html + cp -p debian/gcc.css $(d_gcc)/$(docdir)/$(p_xbase)/gcc.css cp -p $(srcdir)/ChangeLog $(d_gcc)/$(docdir)/$(p_xbase)/changelog cp -p $(srcdir)/gcc/ChangeLog \ $(d_gcc)/$(docdir)/$(p_xbase)/gcc/changelog diff -u gcc-5-5.5.0/debian/rules.d/binary-libmpx.mk gcc-5-5.5.0/debian/rules.d/binary-libmpx.mk --- gcc-5-5.5.0/debian/rules.d/binary-libmpx.mk +++ gcc-5-5.5.0/debian/rules.d/binary-libmpx.mk @@ -41,7 +41,11 @@ ln -sf libmpx.symbols debian/$(p_l).symbols $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) $(call cross_mangle_shlibs,$(p_l)) - $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) + $(ignshld)DIRNAME=$(subst n,,$(2)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ + $(call shlibdirs_to_search, \ + $(subst mpx$(MPX_SONAME),gcc$(GCC_SONAME),$(p_l)) \ + ,$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) $(call cross_mangle_substvars,$(p_l)) echo $(p_l) $(p_d) >> debian/$(lib_binaries) diff -u gcc-5-5.5.0/debian/rules.d/binary-libquadmath.mk gcc-5-5.5.0/debian/rules.d/binary-libquadmath.mk --- gcc-5-5.5.0/debian/rules.d/binary-libquadmath.mk +++ gcc-5-5.5.0/debian/rules.d/binary-libquadmath.mk @@ -35,7 +35,8 @@ $(cross_makeshlibs) dh_makeshlibs $(ldconfig_arg) -p$(p_l) $(call cross_mangle_shlibs,$(p_l)) $(cross_shlibdeps) dh_shlibdeps -p$(p_l) \ - $(call shlibdirs_to_search,,$(2)) + $(call shlibdirs_to_search,,$(2)) \ + $(if $(filter yes, $(with_common_libs)),,-- -Ldebian/shlibs.common$(2)) $(call cross_mangle_substvars,$(p_l)) echo $(p_l) $(p_d) >> debian/$(lib_binaries) diff -u gcc-5-5.5.0/debian/rules.defs gcc-5-5.5.0/debian/rules.defs --- gcc-5-5.5.0/debian/rules.defs +++ gcc-5-5.5.0/debian/rules.defs @@ -157,7 +157,7 @@ endif endif else - ifneq (,$(filter $(distrelease),stretch sid)) + ifneq (,$(filter $(distrelease),stretch)) DEB_TARGET_GNU_TYPE := $(subst i586,i686,$(DEB_TARGET_GNU_TYPE)) i586_symlinks = $(if $(findstring i686,$(DEB_TARGET_GNU_TYPE)),yes) endif @@ -192,6 +192,10 @@ # cross compiler, sets WITH_SYSROOT on it's own DEB_CROSS = yes build_type = build-cross + else ifeq ($(FORCE_CROSS_LAYOUT),yes) + # a native build with a cross layout + DEB_CROSS = yes + build_type = build-cross else # native build # first ones are wheezy and maverick @@ -790,6 +794,10 @@ with_java := disabled for rtlibs stage endif +ifeq (,$(filter $(distrelease),squeeze wheezy jessie stretch precise trusty xenial yakkety zesty artful)) + with_java := disabled for recent distro releases +endif + ifneq (,$(findstring gccgo, $(PKGSOURCE))) with_java := endif @@ -1496,7 +1504,7 @@ with_check := disabled for $(DEB_HOST_ARCH), testsuite timeouts with expect endif endif -#with_check := disabled for this upload +with_check := disabled for this upload # not a dependency on all archs, but if available, use it for the testsuite ifneq (,$(wildcard /usr/bin/localedef)) diff -u gcc-5-5.5.0/debian/rules.parameters gcc-5-5.5.0/debian/rules.parameters --- gcc-5-5.5.0/debian/rules.parameters +++ gcc-5-5.5.0/debian/rules.parameters @@ -2,14 +2,14 @@ GCC_VERSION := 5.5.0 NEXT_GCC_VERSION := 5.5.1 BASE_VERSION := 5 -SOURCE_VERSION := 5.5.0-11ubuntu1 -DEB_VERSION := 5.5.0-11ubuntu1 -DEB_EVERSION := 1:5.5.0-11ubuntu1 -DEB_GDC_VERSION := 5.5.0-11ubuntu1 +SOURCE_VERSION := 5.5.0-12ubuntu1~16.04 +DEB_VERSION := 5.5.0-12ubuntu1~16.04 +DEB_EVERSION := 1:5.5.0-12ubuntu1~16.04 +DEB_GDC_VERSION := 5.5.0-12ubuntu1~16.04 DEB_SOVERSION := 5 DEB_SOEVERSION := 1:5 DEB_LIBGCC_SOVERSION := -DEB_LIBGCC_VERSION := 1:5.5.0-11ubuntu1 +DEB_LIBGCC_VERSION := 1:5.5.0-12ubuntu1~16.04 DEB_STDCXX_SOVERSION := 5 DEB_GCJ_SOVERSION := 5 PKG_GCJ_EXT := 16 diff -u gcc-5-5.5.0/debian/rules.patch gcc-5-5.5.0/debian/rules.patch --- gcc-5-5.5.0/debian/rules.patch +++ gcc-5-5.5.0/debian/rules.patch @@ -131,6 +131,7 @@ 0008-x86-Add-V-register-operand-modifier \ 0009-x86-Disallow-mindirect-branch-mfunction-return-with- \ gcc-spectre-s390 \ + gcc-force-cross-layout \ ifneq ($(GFDL_INVARIANT_FREE),yes) debian_patches += \ @@ -155,6 +156,10 @@ # TODO: update ... # libjava-rpath \ +ifeq (,$(filter $(distrelease),trusty stretch jessie wheezy)) + debian_patches += gcc-as-needed-push-pop +endif + ifeq (,$(filter $(distrelease),lenny squeeze wheezy dapper trusty xenial artful)) debian_patches += gcc-hppa-caller-copies-ABI endif @@ -356,6 +361,9 @@ ifneq (,$(filter $(derivative),Ubuntu)) ifeq (,$(filter $(distrelease),dapper hardy intrepid jaunty karmic lucid maverick)) debian_patches += gcc-as-needed + ifeq (,$(filter $(distrelease),dapper hardy intrepid jaunty karmic lucid maverick precise trusty utopic vivid wily xenial yakkety)) + debian_patches += gcc-as-needed-gold + endif endif else # Debian #debian_patches += gcc-as-needed diff -u gcc-5-5.5.0/debian/rules2 gcc-5-5.5.0/debian/rules2 --- gcc-5-5.5.0/debian/rules2 +++ gcc-5-5.5.0/debian/rules2 @@ -216,6 +216,7 @@ --disable-libquadmath \ --disable-libsanitizer \ --disable-threads \ + --disable-bootstrap \ --libexecdir=/$(libexecdir) \ --libdir=/$(PF)/$(configured_libdir) \ $(if $(with_build_sysroot),--with-build-sysroot=$(with_build_sysroot)) \ @@ -2432,9 +2433,13 @@ # apparently this changed with newer dpkg versions (1.18.7?) ... echo 'libgcc_s $(GCC_SONAME) $(p_lgcc)' > debian/shlibs.common echo 'libstdc++ $(CXX_SONAME) $(p_lib)' >> debian/shlibs.common + echo 'libquadmath $(QUADMATH_SONAME) libquadmath$(QUADMATH_SONAME)$(cross_lib_arch)' >> debian/shlibs.common + echo 'libatomic $(ATOMIC_SONAME) libatomic$(ATOMIC_SONAME)$(cross_lib_arch)' >> debian/shlibs.common $(foreach ml,32 64 n32 x32 hf sf, \ echo 'libgcc_s $(GCC_SONAME) $(subst lib,lib$(ml),$(p_lgcc))' > debian/shlibs.common$(ml); \ echo 'libstdc++ $(CXX_SONAME) $(subst lib,lib$(ml),$(p_lib))' >> debian/shlibs.common$(ml); \ + echo 'libquadmath $(QUADMATH_SONAME) lib$(ml)quadmath$(QUADMATH_SONAME)$(cross_lib_arch)' >> debian/shlibs.common$(ml); \ + echo 'libatomic $(ATOMIC_SONAME) lib$(ml)atomic$(ATOMIC_SONAME)$(cross_lib_arch)' >> debian/shlibs.common$(ml); \ ) endif only in patch2: unchanged: --- gcc-5-5.5.0.orig/debian/patches/gcc-as-needed-gold.diff +++ gcc-5-5.5.0/debian/patches/gcc-as-needed-gold.diff @@ -0,0 +1,58 @@ +# DP: Use --push-state/--pop-state for gold as well when linking libtsan. + +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -551,10 +551,10 @@ proper position among the other output f + #define LIBASAN_SPEC STATIC_LIBASAN_LIBS + #elif defined(HAVE_LD_STATIC_DYNAMIC) + #define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \ +- " %{!static-libasan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " %{!static-libasan:--push-state --no-as-needed}" \ + " -lasan " \ + " %{static-libasan:" LD_DYNAMIC_OPTION "}" \ +- " %{!static-libasan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ ++ " %{!static-libasan:--pop-state}" \ + STATIC_LIBASAN_LIBS + #else + #define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS +@@ -572,10 +572,10 @@ proper position among the other output f + #define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS + #elif defined(HAVE_LD_STATIC_DYNAMIC) + #define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \ +- " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " %{!static-libtsan:--push-state --no-as-needed}" \ + " -ltsan " \ + " %{static-libtsan:" LD_DYNAMIC_OPTION "}" \ +- " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ ++ " %{!static-libtsan:--pop-state}" \ + STATIC_LIBTSAN_LIBS + #else + #define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS +@@ -593,10 +593,10 @@ proper position among the other output f + #define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS + #elif defined(HAVE_LD_STATIC_DYNAMIC) + #define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \ +- " %{!static-liblsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " %{!static-liblsan:--push-state --no-as-needed}" \ + " -llsan " \ + " %{static-liblsan:" LD_DYNAMIC_OPTION "}" \ +- " %{!static-liblsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ ++ " %{!static-liblsan:--pop-state}" \ + STATIC_LIBLSAN_LIBS + #else + #define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS +@@ -612,10 +612,10 @@ proper position among the other output f + " %{static-libubsan:%:include(libsanitizer.spec)%(link_libubsan)}" + #ifdef HAVE_LD_STATIC_DYNAMIC + #define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \ +- " %{!static-libubsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " %{!static-libubsan:--push-state --no-as-needed}" \ + " -lubsan " \ + " %{static-libubsan:" LD_DYNAMIC_OPTION "}" \ +- " %{!static-libubsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ ++ " %{!static-libubsan:--pop-state}" \ + STATIC_LIBUBSAN_LIBS + #else + #define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS only in patch2: unchanged: --- gcc-5-5.5.0.orig/debian/patches/gcc-as-needed-push-pop.diff +++ gcc-5-5.5.0/debian/patches/gcc-as-needed-push-pop.diff @@ -0,0 +1,43 @@ +From: Jakub Jelinek +Subject: [PATCH] Use --push-state --as-needed and --pop-state instead of --as-needed and --no-as-needed for libgcc + +As discussed, using --as-needed and --no-as-needed is dangerous, because +it results in --no-as-needed even for libraries after -lgcc_s, even when the +default is --as-needed or --as-needed has been specified earlier on the +command line. + +If the linker supports --push-state/--pop-state, we should IMHO use it. + +2018-04-11 Jakub Jelinek + + * configure.ac (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Use + --push-state --as-needed and --pop-state instead of --as-needed and + --no-as-needed if ld supports it. + * configure: Regenerated. + +Index: b/src/gcc/configure.ac +=================================================================== +--- a/src/gcc/configure.ac ++++ b/src/gcc/configure.ac +@@ -5371,11 +5371,21 @@ if test $in_tree_ld = yes ; then + if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \ + && test $in_tree_ld_is_elf = yes; then + gcc_cv_ld_as_needed=yes ++ if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 28; then ++ gcc_cv_ld_as_needed_option='--push-state --as-needed' ++ gcc_cv_ld_no_as_needed_option='--pop-state' ++ fi + fi + elif test x$gcc_cv_ld != x; then + # Check if linker supports --as-needed and --no-as-needed options + if $gcc_cv_ld --help 2>/dev/null | grep as-needed > /dev/null; then + gcc_cv_ld_as_needed=yes ++ if $gcc_cv_ld --help 2>&1 | grep push-state > /dev/null; then ++ if $gcc_cv_ld --help 2>&1 | grep pop-state > /dev/null; then ++ gcc_cv_ld_as_needed_option='--push-state --as-needed' ++ gcc_cv_ld_no_as_needed_option='--pop-state' ++ fi ++ fi + else + case "$target" in + # Solaris 2 ld always supports -z ignore/-z record. only in patch2: unchanged: --- gcc-5-5.5.0.orig/debian/patches/gcc-force-cross-layout.diff +++ gcc-5-5.5.0/debian/patches/gcc-force-cross-layout.diff @@ -0,0 +1,54 @@ +# DP: Add FORCE_CROSS_LAYOUT env var to force a cross directory layout. + +Index: b/src/configure.ac +=================================================================== +--- a/src/configure.ac ++++ b/src/configure.ac +@@ -3110,7 +3110,7 @@ target_configargs="$target_configargs ${ + # native. However, it would be better to use other mechanisms to make the + # sorts of decisions they want to make on this basis. Please consider + # this option to be deprecated. FIXME. +-if test x${is_cross_compiler} = xyes ; then ++if test x${is_cross_compiler} = xyes || test x${FORCE_CROSS_LAYOUT} = xyes; then + target_configargs="--with-cross-host=${host_noncanonical} ${target_configargs}" + fi + +Index: b/src/gcc/configure.ac +=================================================================== +--- a/src/gcc/configure.ac ++++ b/src/gcc/configure.ac +@@ -1987,7 +1987,7 @@ else + build_system_header_dir='$(CROSS_SYSTEM_HEADER_DIR)' + fi + +-if test x$host != x$target ++if test x$host != x$target || test x$FORCE_CROSS_LAYOUT = xyes + then + CROSS="-DCROSS_DIRECTORY_STRUCTURE" + ALL=all.cross +@@ -2026,7 +2026,7 @@ elif test "x$TARGET_SYSTEM_ROOT" != x; t + SYSTEM_HEADER_DIR=$build_system_header_dir + fi + +-if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then ++if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x || test x$FORCE_CROSS_LAYOUT = xyes; then + if test "x$with_headers" != x; then + target_header_dir=$with_headers + elif test "x$with_sysroot" = x; then +@@ -6036,14 +6036,14 @@ AC_SUBST_FILE(language_hooks) + + # Echo link setup. + if test x${build} = x${host} ; then +- if test x${host} = x${target} ; then ++ if test x${host} = x${target} && test x$FORCE_CROSS_LAYOUT != xyes ; then + echo "Links are now set up to build a native compiler for ${target}." 1>&2 + else + echo "Links are now set up to build a cross-compiler" 1>&2 + echo " from ${host} to ${target}." 1>&2 + fi + else +- if test x${host} = x${target} ; then ++ if test x${host} = x${target} && test x$FORCE_CROSS_LAYOUT != xyes ; then + echo "Links are now set up to build (on ${build}) a native compiler" 1>&2 + echo " for ${target}." 1>&2 + else