From 96014af2d80730ac3dbb26e45861dda7abc4ca2a Mon Sep 17 00:00:00 2001 From: Peter Michael Green Date: Sat, 19 Aug 2017 00:45:20 +0100 Subject: [PATCH] gcc-7 (7.1.0-13+rpi1) buster-staging; urgency=medium * Disable testsuite. [dgit import package gcc-7 7.1.0-13+rpi1] --- debian/NEWS.gcc | 865 + debian/NEWS.html | 1286 + debian/README.Bugs.m4 | 333 + debian/README.C++ | 35 + debian/README.Debian | 45 + debian/README.cross | 144 + debian/README.gnat | 35 + debian/README.libstdc++-baseline.in | 2 + debian/README.maintainers | 190 + debian/README.snapshot | 36 + debian/README.source | 16 + debian/README.ssp | 28 + debian/TODO | 46 + debian/acats-killer.sh | 62 + debian/ada/confirm_debian_bugs.py | 980 + debian/ada/debian_packaging.mk | 91 + debian/bin-wrapper.in | 11 + debian/changelog | 13758 +++ debian/compat | 1 + debian/control | 2445 + debian/control.m4 | 5520 + debian/copyright | 1404 + debian/copyright.in | 1404 + debian/cpp-BV-CRB.preinst.in | 11 + debian/cpp-BV-doc.doc-base.cpp | 16 + debian/cpp-BV-doc.doc-base.cppint | 17 + debian/dh_doclink | 12 + debian/dh_rmemptydirs | 10 + debian/dummy-man.1 | 29 + debian/dummy.texi | 1 + debian/fixincludes.in | 8 + debian/g++-BV-CRB.preinst.in | 11 + debian/gcc-BV-CRB.preinst.in | 12 + debian/gcc-BV-doc.doc-base.gcc | 14 + debian/gcc-BV-doc.doc-base.gccint | 17 + debian/gcc-BV-doc.doc-base.gomp | 15 + debian/gcc-BV-doc.doc-base.itm | 16 + debian/gcc-BV-doc.doc-base.qmath | 14 + debian/gcc-BV-hppa64-linux-gnu.overrides | 2 + debian/gcc-BV-multilib.overrides | 1 + debian/gcc-BV-source.overrides | 5 + debian/gcc-XX-BV.1 | 17 + debian/gcc-dummy.texi | 41 + debian/gcc-snapshot.overrides | 10 + debian/gcc-snapshot.prerm | 5 + debian/gccgo-BV-doc.doc-base | 17 + debian/gen-libstdc-breaks.sh | 178 + debian/gfortran-BV-CRB.preinst.in | 11 + debian/gfortran-BV-doc.doc-base | 14 + debian/gnat-BV-doc.doc-base.rm | 16 + debian/gnat-BV-doc.doc-base.style | 16 + debian/gnat-BV-doc.doc-base.ug | 16 + debian/gnat.1 | 43 + .../go-relocation-test-gcc620-sparc64.obj.uue | 136 + debian/lib32asan4.overrides | 2 + debian/lib32asan4.symbols | 3 + debian/lib32gccLC.postinst | 12 + debian/lib32gphobos68.lintian-overrides | 2 + debian/lib32stdc++6.symbols.amd64 | 14 + debian/lib32stdc++6.symbols.kfreebsd-amd64 | 7 + debian/lib32stdc++6.symbols.ppc64 | 9 + debian/lib32stdc++6.symbols.s390x | 558 + debian/lib32stdc++6.symbols.sparc64 | 9 + debian/lib32stdc++CXX.postinst | 12 + debian/lib64asan4.overrides | 2 + debian/lib64asan4.symbols | 3 + debian/lib64gccLC.postinst | 12 + debian/lib64gphobos68.lintian-overrides | 2 + debian/lib64stdc++6.symbols.i386 | 40 + debian/lib64stdc++6.symbols.powerpc | 11 + debian/lib64stdc++6.symbols.s390 | 12 + debian/lib64stdc++6.symbols.sparc | 11 + debian/lib64stdc++CXX.postinst | 12 + debian/libasan.symbols.16 | 38 + debian/libasan.symbols.32 | 14 + debian/libasan.symbols.64 | 15 + debian/libasan.symbols.common | 1669 + debian/libasan4.symbols | 21 + debian/libatomic.symbols | 4 + debian/libcc1-0.symbols | 62 + debian/libcilkrts.symbols | 4 + debian/libgcc.symbols | 26 + debian/libgcc.symbols.aeabi | 69 + debian/libgcc2.symbols.m68k | 162 + debian/libgcc4.symbols.hppa | 96 + debian/libgccLC.postinst | 12 + debian/libgccjit0.symbols | 8 + debian/libgfortran.symbols | 4 + debian/libgnat-7.overrides | 1 + debian/libgomp.symbols | 18 + debian/libgphobos.symbols | 12 + debian/libgphobos.symbols.32 | 10380 ++ debian/libgphobos.symbols.64 | 10427 ++ debian/libgphobos.symbols.arm32 | 10380 ++ debian/libgphobos.symbols.rt32 | 3326 + debian/libgphobos.symbols.rt64 | 3347 + debian/libgphobos.symbols.rtarm32 | 3329 + debian/libhsail-rt.symbols | 153 + debian/libitm.symbols | 3 + debian/liblsan0.symbols | 133 + debian/libmpx.symbols | 5 + debian/libobjc.symbols | 9 + debian/libobjc.symbols.common | 205 + debian/libobjc.symbols.gc | 522 + debian/libquadmath.symbols | 3 + debian/libstdc++-BV-doc.doc-base | 13 + debian/libstdc++-BV-doc.overrides | 11 + debian/libstdc++-breaks.Debian | 91 + debian/libstdc++-breaks.Ubuntu | 73 + debian/libstdc++6.symbols.128bit | 46 + debian/libstdc++6.symbols.32bit | 612 + debian/libstdc++6.symbols.32bit.cxx11 | 333 + debian/libstdc++6.symbols.32bit.hurd | 536 + debian/libstdc++6.symbols.64bit | 624 + debian/libstdc++6.symbols.64bit.cxx11 | 333 + debian/libstdc++6.symbols.alpha | 56 + debian/libstdc++6.symbols.amd64 | 16 + debian/libstdc++6.symbols.arm | 6 + debian/libstdc++6.symbols.arm64 | 10 + debian/libstdc++6.symbols.armel | 13 + debian/libstdc++6.symbols.armhf | 20 + debian/libstdc++6.symbols.common | 3470 + debian/libstdc++6.symbols.common.cxx11 | 884 + debian/libstdc++6.symbols.excprop | 18 + debian/libstdc++6.symbols.float128 | 7 + debian/libstdc++6.symbols.glibcxxmath | 22 + debian/libstdc++6.symbols.hppa | 9 + debian/libstdc++6.symbols.hurd-i386 | 6 + debian/libstdc++6.symbols.i386 | 14 + debian/libstdc++6.symbols.ia64 | 53 + debian/libstdc++6.symbols.kfreebsd-amd64 | 9 + debian/libstdc++6.symbols.kfreebsd-i386 | 7 + debian/libstdc++6.symbols.ldbl.32bit | 284 + debian/libstdc++6.symbols.ldbl.32bit.s390 | 284 + debian/libstdc++6.symbols.ldbl.64bit | 284 + debian/libstdc++6.symbols.m68k | 6 + debian/libstdc++6.symbols.mips | 7 + debian/libstdc++6.symbols.mips64 | 7 + debian/libstdc++6.symbols.mips64el | 10 + debian/libstdc++6.symbols.mipsel | 8 + debian/libstdc++6.symbols.money.f128 | 10 + debian/libstdc++6.symbols.money.ldbl | 9 + debian/libstdc++6.symbols.not-armel | 24 + debian/libstdc++6.symbols.powerpc | 9 + debian/libstdc++6.symbols.powerpcspe | 8 + debian/libstdc++6.symbols.ppc64 | 11 + debian/libstdc++6.symbols.ppc64el | 11 + debian/libstdc++6.symbols.s390 | 558 + debian/libstdc++6.symbols.s390x | 13 + debian/libstdc++6.symbols.sh4 | 8 + debian/libstdc++6.symbols.sparc | 9 + debian/libstdc++6.symbols.sparc64 | 11 + debian/libstdc++6.symbols.x32 | 27 + debian/libstdc++CXX.postinst | 18 + debian/libstdc++CXX.prerm | 13 + debian/libtsan0.symbols | 1806 + debian/libubsan0.symbols | 117 + debian/libvtv0.symbols | 68 + debian/libx32asan4.overrides | 2 + debian/libx32asan4.symbols | 4 + debian/libx32gphobos68.lintian-overrides | 2 + debian/libx32stdc++6.symbols | 27 + debian/locale-gen | 50 + debian/logwatch.sh | 104 + debian/patches/PR55947-revert.diff | 350 + debian/patches/ada-749574.diff | 114 + debian/patches/ada-acats.diff | 175 + debian/patches/ada-arm.diff | 18 + debian/patches/ada-armel-libatomic.diff | 33 + .../ada-changes-in-autogen-output.diff | 1603 + debian/patches/ada-drop-termio-h.diff | 40 + debian/patches/ada-gcc-name.diff | 117 + debian/patches/ada-gnattools-cross.diff | 274 + debian/patches/ada-kfreebsd.diff | 100 + .../ada-lib-info-source-date-epoch.diff | 144 + debian/patches/ada-libgnatvsn.diff | 279 + .../ada-library-project-files-soname.diff | 88 + debian/patches/ada-link-lib.diff | 161 + debian/patches/ada-link-shlib.diff | 97 + debian/patches/ada-nobiarch-check.diff | 21 + debian/patches/ada-sjlj.diff | 501 + debian/patches/ada-symbolic-tracebacks.diff | 401 + debian/patches/ada-tools-move-ldflags.diff | 40 + debian/patches/alpha-ieee-doc.diff | 24 + debian/patches/alpha-ieee.diff | 21 + debian/patches/alpha-no-ev4-directive.diff | 32 + debian/patches/arm-multilib-defaults.diff | 92 + debian/patches/arm-multilib-soft-cross.diff | 27 + debian/patches/arm-multilib-soft-float.diff | 26 + debian/patches/arm-multilib-soft.diff | 27 + debian/patches/arm-multilib-softfp-cross.diff | 27 + debian/patches/arm-multilib-softfp.diff | 27 + debian/patches/bind_now_when_pie.diff | 23 + .../patches/bootstrap-no-unneeded-libs.diff | 30 + debian/patches/canonical-cpppath.diff | 36 + debian/patches/config-ml.diff | 54 + debian/patches/cross-biarch.diff | 82 + debian/patches/cross-fixes.diff | 81 + debian/patches/cross-install-location.diff | 378 + debian/patches/cross-no-locale-include.diff | 17 + debian/patches/disable-gdc-tests.diff | 19 + debian/patches/g++-multiarch-incdir.diff | 119 + debian/patches/gcc-as-needed-gold.diff | 17 + debian/patches/gcc-as-needed.diff | 183 + debian/patches/gcc-auto-build.diff | 15 + debian/patches/gcc-d-lang.diff | 251 + .../patches/gcc-default-format-security.diff | 39 + .../patches/gcc-default-fortify-source.diff | 42 + debian/patches/gcc-default-relro.diff | 45 + debian/patches/gcc-default-ssp-strong.diff | 59 + debian/patches/gcc-default-ssp.diff | 214 + .../gcc-driver-extra-langs-linaro.diff | 22 + debian/patches/gcc-driver-extra-langs.diff | 22 + debian/patches/gcc-foffload-default.diff | 125 + debian/patches/gcc-fuse-ld-lld-doc.diff | 17 + debian/patches/gcc-fuse-ld-lld.diff | 83 + debian/patches/gcc-gfdl-build.diff | 39 + debian/patches/gcc-hash-style-both.diff | 167 + debian/patches/gcc-hash-style-gnu.diff | 169 + debian/patches/gcc-ice-apport.diff | 24 + debian/patches/gcc-ice-dump.diff | 41 + debian/patches/gcc-linaro-doc.diff | 71 + debian/patches/gcc-linaro-no-macros.diff | 92 + debian/patches/gcc-linaro-revert-r249596.diff | 38 + debian/patches/gcc-linaro.diff | 4235 + debian/patches/gcc-multiarch.diff | 254 + debian/patches/gcc-multilib-multiarch.diff | 126 + debian/patches/gcc-target-include-asm.diff | 15 + debian/patches/gcc-textdomain.diff | 96 + debian/patches/gdc-7-doc.diff | 106 + debian/patches/gdc-7.diff | 139 + debian/patches/gdc-cross-biarch.diff | 13 + .../patches/gdc-cross-install-location.diff | 28 + debian/patches/gdc-driver-nophobos.diff | 28 + debian/patches/gdc-frontend-posix.diff | 15 + debian/patches/gdc-libphobos-build.diff | 950 + debian/patches/gdc-multiarch.diff | 17 + debian/patches/gdc-profiledbuild.diff | 21 + debian/patches/gdc-sparc-fix.diff | 12 + debian/patches/gdc-texinfo.diff | 55 + debian/patches/gdc-updates.diff | 30 + debian/patches/gdc-versym-cpu.diff | 379 + debian/patches/gdc-versym-os.diff | 409 + debian/patches/go-testsuite.diff | 21 + debian/patches/gotools-configury.diff | 19 + debian/patches/hurd-changes.diff | 20 + .../ignore-pie-specs-when-not-enabled.diff | 56 + debian/patches/kfreebsd-unwind.diff | 48 + debian/patches/libasan-sparc.diff | 163 + debian/patches/libcilkrts-targets.diff | 21 + debian/patches/libffi-mips.diff | 703 + debian/patches/libffi-pax.diff | 161 + debian/patches/libffi-race-condition.diff | 33 + debian/patches/libffi-ro-eh_frame_sect.diff | 15 + debian/patches/libgo-revert-timeout-exp.diff | 12 + debian/patches/libgo-s390x-default-isa.diff | 11 + debian/patches/libgo-setcontext-config.diff | 21 + debian/patches/libgo-testsuite.diff | 38 + .../patches/libgomp-kfreebsd-testsuite.diff | 16 + debian/patches/libgomp-omp_h-multilib.diff | 28 + debian/patches/libitm-no-fortify-source.diff | 19 + debian/patches/libjit-ldflags.diff | 13 + debian/patches/libphobos-zlib.diff | 74 + debian/patches/libstdc++-doclink.diff | 75 + debian/patches/libstdc++-man-3cxx.diff | 67 + debian/patches/libstdc++-no-testsuite.diff | 12 + debian/patches/libstdc++-nothumb-check.diff | 38 + debian/patches/libstdc++-pic.diff | 95 + debian/patches/libstdc++-test-installed.diff | 78 + debian/patches/linaro-issue2575.diff | 16 + debian/patches/note-gnu-stack.diff | 139 + debian/patches/powerpc_nofprs.diff | 75 + debian/patches/powerpc_remove_many.diff | 32 + debian/patches/pr39491.diff | 132 + debian/patches/pr47818.diff | 26 + debian/patches/pr66368.diff | 26 + debian/patches/pr67590.diff | 38 + debian/patches/pr67899.diff | 31 + debian/patches/pr81723.diff | 204 + debian/patches/rename-info-files.diff | 710 + debian/patches/skip-bootstrap-multilib.diff | 49 + .../sparc64-biarch-long-double-128.diff | 35 + debian/patches/svn-doc-updates.diff | 6 + debian/patches/svn-updates.diff | 97602 ++++++++++++++++ debian/patches/sys-auxv-header.diff | 46 + debian/patches/testsuite-glibc-warnings.diff | 29 + .../patches/testsuite-hardening-format.diff | 356 + .../testsuite-hardening-printf-types.diff | 667 + .../patches/testsuite-hardening-updates.diff | 144 + debian/porting.html | 30 + debian/reduce-test-diff.awk | 33 + debian/rules | 83 + debian/rules.conf | 1330 + debian/rules.d/binary-ada.mk | 337 + debian/rules.d/binary-base.mk | 75 + debian/rules.d/binary-brig.mk | 73 + debian/rules.d/binary-cpp.mk | 79 + debian/rules.d/binary-cxx.mk | 79 + debian/rules.d/binary-d.mk | 264 + debian/rules.d/binary-fixincl.mk | 42 + debian/rules.d/binary-fortran.mk | 267 + debian/rules.d/binary-gcc.mk | 363 + debian/rules.d/binary-go.mk | 329 + debian/rules.d/binary-hppa64.mk | 32 + debian/rules.d/binary-libasan.mk | 76 + debian/rules.d/binary-libatomic.mk | 68 + debian/rules.d/binary-libcc1.mk | 31 + debian/rules.d/binary-libcilkrts.mk | 76 + debian/rules.d/binary-libgcc.mk | 379 + debian/rules.d/binary-libgccjit.mk | 89 + debian/rules.d/binary-libgomp.mk | 68 + debian/rules.d/binary-libhsail.mk | 133 + debian/rules.d/binary-libitm.mk | 68 + debian/rules.d/binary-liblsan.mk | 76 + debian/rules.d/binary-libmpx.mk | 78 + debian/rules.d/binary-libobjc.mk | 161 + debian/rules.d/binary-libquadmath.mk | 68 + debian/rules.d/binary-libssp.mk | 155 + debian/rules.d/binary-libstdcxx.mk | 527 + debian/rules.d/binary-libtsan.mk | 80 + debian/rules.d/binary-libubsan.mk | 76 + debian/rules.d/binary-libvtv.mk | 76 + debian/rules.d/binary-neon.mk | 47 + debian/rules.d/binary-nof.mk | 51 + debian/rules.d/binary-nvptx.mk | 82 + debian/rules.d/binary-objc.mk | 67 + debian/rules.d/binary-objcxx.mk | 60 + debian/rules.d/binary-snapshot.mk | 160 + debian/rules.d/binary-softfloat.mk | 31 + debian/rules.d/binary-source.mk | 53 + debian/rules.defs | 1981 + debian/rules.parameters | 42 + debian/rules.patch | 363 + debian/rules.sonames | 91 + debian/rules.source | 15 + debian/rules.unpack | 208 + debian/rules2 | 2473 + debian/runcheck.sh | 23 + debian/source.lintian-overrides | 4 + debian/source/format | 1 + debian/source/lintian-overrides | 6 + debian/watch | 3 + 342 files changed, 213842 insertions(+) create mode 100644 debian/NEWS.gcc create mode 100644 debian/NEWS.html create mode 100644 debian/README.Bugs.m4 create mode 100644 debian/README.C++ create mode 100644 debian/README.Debian create mode 100644 debian/README.cross create mode 100644 debian/README.gnat create mode 100644 debian/README.libstdc++-baseline.in create mode 100644 debian/README.maintainers create mode 100644 debian/README.snapshot create mode 100644 debian/README.source create mode 100644 debian/README.ssp create mode 100644 debian/TODO create mode 100644 debian/acats-killer.sh create mode 100644 debian/ada/confirm_debian_bugs.py create mode 100644 debian/ada/debian_packaging.mk create mode 100644 debian/bin-wrapper.in create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/control.m4 create mode 100644 debian/copyright create mode 100644 debian/copyright.in create mode 100644 debian/cpp-BV-CRB.preinst.in create mode 100644 debian/cpp-BV-doc.doc-base.cpp create mode 100644 debian/cpp-BV-doc.doc-base.cppint create mode 100644 debian/dh_doclink create mode 100644 debian/dh_rmemptydirs create mode 100644 debian/dummy-man.1 create mode 100644 debian/dummy.texi create mode 100644 debian/fixincludes.in create mode 100644 debian/g++-BV-CRB.preinst.in create mode 100644 debian/gcc-BV-CRB.preinst.in create mode 100644 debian/gcc-BV-doc.doc-base.gcc create mode 100644 debian/gcc-BV-doc.doc-base.gccint create mode 100644 debian/gcc-BV-doc.doc-base.gomp create mode 100644 debian/gcc-BV-doc.doc-base.itm create mode 100644 debian/gcc-BV-doc.doc-base.qmath create mode 100644 debian/gcc-BV-hppa64-linux-gnu.overrides create mode 100644 debian/gcc-BV-multilib.overrides create mode 100644 debian/gcc-BV-source.overrides create mode 100644 debian/gcc-XX-BV.1 create mode 100644 debian/gcc-dummy.texi create mode 100644 debian/gcc-snapshot.overrides create mode 100644 debian/gcc-snapshot.prerm create mode 100644 debian/gccgo-BV-doc.doc-base create mode 100644 debian/gen-libstdc-breaks.sh create mode 100644 debian/gfortran-BV-CRB.preinst.in create mode 100644 debian/gfortran-BV-doc.doc-base create mode 100644 debian/gnat-BV-doc.doc-base.rm create mode 100644 debian/gnat-BV-doc.doc-base.style create mode 100644 debian/gnat-BV-doc.doc-base.ug create mode 100644 debian/gnat.1 create mode 100644 debian/go-relocation-test-gcc620-sparc64.obj.uue create mode 100644 debian/lib32asan4.overrides create mode 100644 debian/lib32asan4.symbols create mode 100644 debian/lib32gccLC.postinst create mode 100644 debian/lib32gphobos68.lintian-overrides create mode 100644 debian/lib32stdc++6.symbols.amd64 create mode 100644 debian/lib32stdc++6.symbols.kfreebsd-amd64 create mode 100644 debian/lib32stdc++6.symbols.ppc64 create mode 100644 debian/lib32stdc++6.symbols.s390x create mode 100644 debian/lib32stdc++6.symbols.sparc64 create mode 100644 debian/lib32stdc++CXX.postinst create mode 100644 debian/lib64asan4.overrides create mode 100644 debian/lib64asan4.symbols create mode 100644 debian/lib64gccLC.postinst create mode 100644 debian/lib64gphobos68.lintian-overrides create mode 100644 debian/lib64stdc++6.symbols.i386 create mode 100644 debian/lib64stdc++6.symbols.powerpc create mode 100644 debian/lib64stdc++6.symbols.s390 create mode 100644 debian/lib64stdc++6.symbols.sparc create mode 100644 debian/lib64stdc++CXX.postinst create mode 100644 debian/libasan.symbols.16 create mode 100644 debian/libasan.symbols.32 create mode 100644 debian/libasan.symbols.64 create mode 100644 debian/libasan.symbols.common create mode 100644 debian/libasan4.symbols create mode 100644 debian/libatomic.symbols create mode 100644 debian/libcc1-0.symbols create mode 100644 debian/libcilkrts.symbols create mode 100644 debian/libgcc.symbols create mode 100644 debian/libgcc.symbols.aeabi create mode 100644 debian/libgcc2.symbols.m68k create mode 100644 debian/libgcc4.symbols.hppa create mode 100644 debian/libgccLC.postinst create mode 100644 debian/libgccjit0.symbols create mode 100644 debian/libgfortran.symbols create mode 100644 debian/libgnat-7.overrides create mode 100644 debian/libgomp.symbols create mode 100644 debian/libgphobos.symbols create mode 100644 debian/libgphobos.symbols.32 create mode 100644 debian/libgphobos.symbols.64 create mode 100644 debian/libgphobos.symbols.arm32 create mode 100644 debian/libgphobos.symbols.rt32 create mode 100644 debian/libgphobos.symbols.rt64 create mode 100644 debian/libgphobos.symbols.rtarm32 create mode 100644 debian/libhsail-rt.symbols create mode 100644 debian/libitm.symbols create mode 100644 debian/liblsan0.symbols create mode 100644 debian/libmpx.symbols create mode 100644 debian/libobjc.symbols create mode 100644 debian/libobjc.symbols.common create mode 100644 debian/libobjc.symbols.gc create mode 100644 debian/libquadmath.symbols create mode 100644 debian/libstdc++-BV-doc.doc-base create mode 100644 debian/libstdc++-BV-doc.overrides create mode 100644 debian/libstdc++-breaks.Debian create mode 100644 debian/libstdc++-breaks.Ubuntu create mode 100644 debian/libstdc++6.symbols.128bit create mode 100644 debian/libstdc++6.symbols.32bit create mode 100644 debian/libstdc++6.symbols.32bit.cxx11 create mode 100644 debian/libstdc++6.symbols.32bit.hurd create mode 100644 debian/libstdc++6.symbols.64bit create mode 100644 debian/libstdc++6.symbols.64bit.cxx11 create mode 100644 debian/libstdc++6.symbols.alpha create mode 100644 debian/libstdc++6.symbols.amd64 create mode 100644 debian/libstdc++6.symbols.arm create mode 100644 debian/libstdc++6.symbols.arm64 create mode 100644 debian/libstdc++6.symbols.armel create mode 100644 debian/libstdc++6.symbols.armhf create mode 100644 debian/libstdc++6.symbols.common create mode 100644 debian/libstdc++6.symbols.common.cxx11 create mode 100644 debian/libstdc++6.symbols.excprop create mode 100644 debian/libstdc++6.symbols.float128 create mode 100644 debian/libstdc++6.symbols.glibcxxmath create mode 100644 debian/libstdc++6.symbols.hppa create mode 100644 debian/libstdc++6.symbols.hurd-i386 create mode 100644 debian/libstdc++6.symbols.i386 create mode 100644 debian/libstdc++6.symbols.ia64 create mode 100644 debian/libstdc++6.symbols.kfreebsd-amd64 create mode 100644 debian/libstdc++6.symbols.kfreebsd-i386 create mode 100644 debian/libstdc++6.symbols.ldbl.32bit create mode 100644 debian/libstdc++6.symbols.ldbl.32bit.s390 create mode 100644 debian/libstdc++6.symbols.ldbl.64bit create mode 100644 debian/libstdc++6.symbols.m68k create mode 100644 debian/libstdc++6.symbols.mips create mode 100644 debian/libstdc++6.symbols.mips64 create mode 100644 debian/libstdc++6.symbols.mips64el create mode 100644 debian/libstdc++6.symbols.mipsel create mode 100644 debian/libstdc++6.symbols.money.f128 create mode 100644 debian/libstdc++6.symbols.money.ldbl create mode 100644 debian/libstdc++6.symbols.not-armel create mode 100644 debian/libstdc++6.symbols.powerpc create mode 100644 debian/libstdc++6.symbols.powerpcspe create mode 100644 debian/libstdc++6.symbols.ppc64 create mode 100644 debian/libstdc++6.symbols.ppc64el create mode 100644 debian/libstdc++6.symbols.s390 create mode 100644 debian/libstdc++6.symbols.s390x create mode 100644 debian/libstdc++6.symbols.sh4 create mode 100644 debian/libstdc++6.symbols.sparc create mode 100644 debian/libstdc++6.symbols.sparc64 create mode 100644 debian/libstdc++6.symbols.x32 create mode 100644 debian/libstdc++CXX.postinst create mode 100644 debian/libstdc++CXX.prerm create mode 100644 debian/libtsan0.symbols create mode 100644 debian/libubsan0.symbols create mode 100644 debian/libvtv0.symbols create mode 100644 debian/libx32asan4.overrides create mode 100644 debian/libx32asan4.symbols create mode 100644 debian/libx32gphobos68.lintian-overrides create mode 100644 debian/libx32stdc++6.symbols create mode 100644 debian/locale-gen create mode 100644 debian/logwatch.sh create mode 100644 debian/patches/PR55947-revert.diff create mode 100644 debian/patches/ada-749574.diff create mode 100644 debian/patches/ada-acats.diff create mode 100644 debian/patches/ada-arm.diff create mode 100644 debian/patches/ada-armel-libatomic.diff create mode 100644 debian/patches/ada-changes-in-autogen-output.diff create mode 100644 debian/patches/ada-drop-termio-h.diff create mode 100644 debian/patches/ada-gcc-name.diff create mode 100644 debian/patches/ada-gnattools-cross.diff create mode 100644 debian/patches/ada-kfreebsd.diff create mode 100644 debian/patches/ada-lib-info-source-date-epoch.diff create mode 100644 debian/patches/ada-libgnatvsn.diff create mode 100644 debian/patches/ada-library-project-files-soname.diff create mode 100644 debian/patches/ada-link-lib.diff create mode 100644 debian/patches/ada-link-shlib.diff create mode 100644 debian/patches/ada-nobiarch-check.diff create mode 100644 debian/patches/ada-sjlj.diff create mode 100644 debian/patches/ada-symbolic-tracebacks.diff create mode 100644 debian/patches/ada-tools-move-ldflags.diff create mode 100644 debian/patches/alpha-ieee-doc.diff create mode 100644 debian/patches/alpha-ieee.diff create mode 100644 debian/patches/alpha-no-ev4-directive.diff create mode 100644 debian/patches/arm-multilib-defaults.diff create mode 100644 debian/patches/arm-multilib-soft-cross.diff create mode 100644 debian/patches/arm-multilib-soft-float.diff create mode 100644 debian/patches/arm-multilib-soft.diff create mode 100644 debian/patches/arm-multilib-softfp-cross.diff create mode 100644 debian/patches/arm-multilib-softfp.diff create mode 100644 debian/patches/bind_now_when_pie.diff create mode 100644 debian/patches/bootstrap-no-unneeded-libs.diff create mode 100644 debian/patches/canonical-cpppath.diff create mode 100644 debian/patches/config-ml.diff create mode 100644 debian/patches/cross-biarch.diff create mode 100644 debian/patches/cross-fixes.diff create mode 100644 debian/patches/cross-install-location.diff create mode 100644 debian/patches/cross-no-locale-include.diff create mode 100644 debian/patches/disable-gdc-tests.diff create mode 100644 debian/patches/g++-multiarch-incdir.diff create mode 100644 debian/patches/gcc-as-needed-gold.diff create mode 100644 debian/patches/gcc-as-needed.diff create mode 100644 debian/patches/gcc-auto-build.diff create mode 100644 debian/patches/gcc-d-lang.diff create mode 100644 debian/patches/gcc-default-format-security.diff create mode 100644 debian/patches/gcc-default-fortify-source.diff create mode 100644 debian/patches/gcc-default-relro.diff create mode 100644 debian/patches/gcc-default-ssp-strong.diff create mode 100644 debian/patches/gcc-default-ssp.diff create mode 100644 debian/patches/gcc-driver-extra-langs-linaro.diff create mode 100644 debian/patches/gcc-driver-extra-langs.diff create mode 100644 debian/patches/gcc-foffload-default.diff create mode 100644 debian/patches/gcc-fuse-ld-lld-doc.diff create mode 100644 debian/patches/gcc-fuse-ld-lld.diff create mode 100644 debian/patches/gcc-gfdl-build.diff create mode 100644 debian/patches/gcc-hash-style-both.diff create mode 100644 debian/patches/gcc-hash-style-gnu.diff create mode 100644 debian/patches/gcc-ice-apport.diff create mode 100644 debian/patches/gcc-ice-dump.diff create mode 100644 debian/patches/gcc-linaro-doc.diff create mode 100644 debian/patches/gcc-linaro-no-macros.diff create mode 100644 debian/patches/gcc-linaro-revert-r249596.diff create mode 100644 debian/patches/gcc-linaro.diff create mode 100644 debian/patches/gcc-multiarch.diff create mode 100644 debian/patches/gcc-multilib-multiarch.diff create mode 100644 debian/patches/gcc-target-include-asm.diff create mode 100644 debian/patches/gcc-textdomain.diff create mode 100644 debian/patches/gdc-7-doc.diff create mode 100644 debian/patches/gdc-7.diff create mode 100644 debian/patches/gdc-cross-biarch.diff create mode 100644 debian/patches/gdc-cross-install-location.diff create mode 100644 debian/patches/gdc-driver-nophobos.diff create mode 100644 debian/patches/gdc-frontend-posix.diff create mode 100644 debian/patches/gdc-libphobos-build.diff create mode 100644 debian/patches/gdc-multiarch.diff create mode 100644 debian/patches/gdc-profiledbuild.diff create mode 100644 debian/patches/gdc-sparc-fix.diff create mode 100644 debian/patches/gdc-texinfo.diff create mode 100644 debian/patches/gdc-updates.diff create mode 100644 debian/patches/gdc-versym-cpu.diff create mode 100644 debian/patches/gdc-versym-os.diff create mode 100644 debian/patches/go-testsuite.diff create mode 100644 debian/patches/gotools-configury.diff create mode 100644 debian/patches/hurd-changes.diff create mode 100644 debian/patches/ignore-pie-specs-when-not-enabled.diff create mode 100644 debian/patches/kfreebsd-unwind.diff create mode 100644 debian/patches/libasan-sparc.diff create mode 100644 debian/patches/libcilkrts-targets.diff create mode 100644 debian/patches/libffi-mips.diff create mode 100644 debian/patches/libffi-pax.diff create mode 100644 debian/patches/libffi-race-condition.diff create mode 100644 debian/patches/libffi-ro-eh_frame_sect.diff create mode 100644 debian/patches/libgo-revert-timeout-exp.diff create mode 100644 debian/patches/libgo-s390x-default-isa.diff create mode 100644 debian/patches/libgo-setcontext-config.diff create mode 100644 debian/patches/libgo-testsuite.diff create mode 100644 debian/patches/libgomp-kfreebsd-testsuite.diff create mode 100644 debian/patches/libgomp-omp_h-multilib.diff create mode 100644 debian/patches/libitm-no-fortify-source.diff create mode 100644 debian/patches/libjit-ldflags.diff create mode 100644 debian/patches/libphobos-zlib.diff create mode 100644 debian/patches/libstdc++-doclink.diff create mode 100644 debian/patches/libstdc++-man-3cxx.diff create mode 100644 debian/patches/libstdc++-no-testsuite.diff create mode 100644 debian/patches/libstdc++-nothumb-check.diff create mode 100644 debian/patches/libstdc++-pic.diff create mode 100644 debian/patches/libstdc++-test-installed.diff create mode 100644 debian/patches/linaro-issue2575.diff create mode 100644 debian/patches/note-gnu-stack.diff create mode 100644 debian/patches/powerpc_nofprs.diff create mode 100644 debian/patches/powerpc_remove_many.diff create mode 100644 debian/patches/pr39491.diff create mode 100644 debian/patches/pr47818.diff create mode 100644 debian/patches/pr66368.diff create mode 100644 debian/patches/pr67590.diff create mode 100644 debian/patches/pr67899.diff create mode 100644 debian/patches/pr81723.diff create mode 100644 debian/patches/rename-info-files.diff create mode 100644 debian/patches/skip-bootstrap-multilib.diff create mode 100644 debian/patches/sparc64-biarch-long-double-128.diff create mode 100644 debian/patches/svn-doc-updates.diff create mode 100644 debian/patches/svn-updates.diff create mode 100644 debian/patches/sys-auxv-header.diff create mode 100644 debian/patches/testsuite-glibc-warnings.diff create mode 100644 debian/patches/testsuite-hardening-format.diff create mode 100644 debian/patches/testsuite-hardening-printf-types.diff create mode 100644 debian/patches/testsuite-hardening-updates.diff create mode 100644 debian/porting.html create mode 100644 debian/reduce-test-diff.awk create mode 100755 debian/rules create mode 100644 debian/rules.conf create mode 100644 debian/rules.d/binary-ada.mk create mode 100644 debian/rules.d/binary-base.mk create mode 100644 debian/rules.d/binary-brig.mk create mode 100644 debian/rules.d/binary-cpp.mk create mode 100644 debian/rules.d/binary-cxx.mk create mode 100644 debian/rules.d/binary-d.mk create mode 100644 debian/rules.d/binary-fixincl.mk create mode 100644 debian/rules.d/binary-fortran.mk create mode 100644 debian/rules.d/binary-gcc.mk create mode 100644 debian/rules.d/binary-go.mk create mode 100644 debian/rules.d/binary-hppa64.mk create mode 100644 debian/rules.d/binary-libasan.mk create mode 100644 debian/rules.d/binary-libatomic.mk create mode 100644 debian/rules.d/binary-libcc1.mk create mode 100644 debian/rules.d/binary-libcilkrts.mk create mode 100644 debian/rules.d/binary-libgcc.mk create mode 100644 debian/rules.d/binary-libgccjit.mk create mode 100644 debian/rules.d/binary-libgomp.mk create mode 100644 debian/rules.d/binary-libhsail.mk create mode 100644 debian/rules.d/binary-libitm.mk create mode 100644 debian/rules.d/binary-liblsan.mk create mode 100644 debian/rules.d/binary-libmpx.mk create mode 100644 debian/rules.d/binary-libobjc.mk create mode 100644 debian/rules.d/binary-libquadmath.mk create mode 100644 debian/rules.d/binary-libssp.mk create mode 100644 debian/rules.d/binary-libstdcxx.mk create mode 100644 debian/rules.d/binary-libtsan.mk create mode 100644 debian/rules.d/binary-libubsan.mk create mode 100644 debian/rules.d/binary-libvtv.mk create mode 100644 debian/rules.d/binary-neon.mk create mode 100644 debian/rules.d/binary-nof.mk create mode 100644 debian/rules.d/binary-nvptx.mk create mode 100644 debian/rules.d/binary-objc.mk create mode 100644 debian/rules.d/binary-objcxx.mk create mode 100644 debian/rules.d/binary-snapshot.mk create mode 100644 debian/rules.d/binary-softfloat.mk create mode 100644 debian/rules.d/binary-source.mk create mode 100644 debian/rules.defs create mode 100644 debian/rules.parameters create mode 100644 debian/rules.patch create mode 100644 debian/rules.sonames create mode 100644 debian/rules.source create mode 100644 debian/rules.unpack create mode 100644 debian/rules2 create mode 100644 debian/runcheck.sh create mode 100644 debian/source.lintian-overrides create mode 100644 debian/source/format create mode 100644 debian/source/lintian-overrides create mode 100644 debian/watch diff --git a/debian/NEWS.gcc b/debian/NEWS.gcc new file mode 100644 index 0000000..24ef62a --- /dev/null +++ b/debian/NEWS.gcc @@ -0,0 +1,865 @@ +This file contains information about GCC releases which has been generated +automatically from the online release notes. It covers releases of GCC +(and the former EGCS project) since EGCS 1.0, on the line of development +that led to GCC 3. For information on GCC 2.8.1 and older releases of GCC 2, +see ONEWS. + +====================================================================== +http://gcc.gnu.org/gcc-7/index.html + + GCC 7 Release Series + Changes, New Features, and Fixes + + This page is a brief summary of some of the huge number of improvements + in GCC 7. For more information, see the "Porting to GCC 7" page and the + full GCC documentation. + +Caveats + + * GCC now uses LRA (a new local register allocator) by default for new + targets. + * The non-standard C++0x type traits has_trivial_default_constructor, + has_trivial_copy_constructor and has_trivial_copy_assign have been + removed. + * The libstdc++ Profile Mode has been deprecated and will be removed in a + future version. + * The Cilk+ extensions to the C and C++ languages have been deprecated. + +General Optimizer Improvements + + * GCC 7 can determine the return value or range of return values of some + calls to the sprintf family of functions and make it available to other + optimization passes. Some calls to the snprintf function with a zero size + argument can be folded into constants. This optimization is included in + -O1 and can be selectively controlled by the -fprintf-return-value option. + * A new store merging pass has been added. It merges constant stores to + adjacent memory locations into fewer, wider, stores. It is enabled by the + -fstore-merging option and at the -O2 optimization level or higher (and + -Os). + * A new code hoisting optimization has been added to the partial redundancy + elimination pass. It attempts to move evaluation of expressions executed + on all paths to the function exit as early as possible, which helps + primarily for code size, but can be useful for speed of generated code as + well. It is enabled by the -fcode-hoisting option and at the -O2 + optimization level or higher (and -Os). + * A new interprocedural bitwise constant propagation optimization has been + added, which propagates knowledge about which bits of variables are known + to be zero (including pointer alignment information) across the call + graph. It is enabled by the -fipa-bit-cp option if -fipa-cp is enabled as + well, and is enabled at the -O2 optimization level and higher (and -Os). + This optimization supersedes interprocedural alignment propagation of GCC + 6, and therefore the option -fipa-cp-alignment is now deprecated and + ignored. + * A new interprocedural value range propagation optimization has been + added, which propagates integral ranges that variable values can be + proven to be within across the call graph. It is enabled by the -fipa-vrp + option and at the -O2 optimization level and higher (and -Os). + * A new loop splitting optimization pass has been added. It splits certain + loops if they contain a condition that is always true on one side of the + iteration space and always false on the other into two loops where each + of the new two loops iterates just on one of the sides of the iteration + space and the condition does not need to be checked inside of the loop. + It is enabled by the -fsplit-loops option and at the -O3 optimization + level or higher. + * The shrink-wrapping optimization can now separate portions of prologues + and epilogues to improve performance if some of the work done + traditionally by prologues and epilogues is not needed on certain paths. + This is controlled by the -fshrink-wrap-separate option, enabled by + default. It requires target support, which is currently only implemented + in the PowerPC and AArch64 ports. + * AddressSanitizer gained a new sanitization option, -fsanitize-address- + use-after-scope, which enables sanitization of variables whose address is + taken and used after a scope where the variable is defined: + + int + main (int argc, char **argv) + { + char *ptr; + { + char my_char; + ptr = &my_char; + } + + *ptr = 123; + return *ptr; + } + + ==28882==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7fffb8dba990 at pc 0x0000004006d5 bp 0x7fffb8dba960 sp 0x7fffb8dba958 + WRITE of size 1 at 0x7fffb8dba990 thread T0 + #0 0x4006d4 in main /tmp/use-after-scope-1.c:10 + #1 0x7f9c71943290 in __libc_start_main (/lib64/libc.so.6+0x20290) + #2 0x400739 in _start (/tmp/a.out+0x400739) + + Address 0x7fffb8dba990 is located in stack of thread T0 at offset 32 in frame + #0 0x40067f in main /tmp/use-after-scope-1.c:3 + + This frame has 1 object(s): + [32, 33) 'my_char' <== Memory access at offset 32 is inside this variable + + The option is enabled by default with -fsanitize=address and disabled by + default with -fsanitize=kernel-address. Compared to the LLVM compiler, + where the option already exists, the implementation in the GCC compiler + has couple of improvements and advantages: + o A complex usage of gotos and case labels are properly handled and + should not report any false positive or false negatives. + o C++ temporaries are sanitized. + o Sanitization can handle invalid memory stores that are optimized + out by the LLVM compiler when using an optimization level. + * The -fsanitize=signed-integer-overflow suboption of the UndefinedBehavior + Sanitizer now diagnoses arithmetic overflows even on arithmetic + operations with generic vectors. + * Version 5 of the DWARF debugging information standard is supported + through the -gdwarf-5 option. The DWARF version 4 debugging information + remains the default until debugging information consumers are adjusted. + +New Languages and Language specific improvements + + OpenACC support in C, C++, and Fortran continues to be maintained and +improved. See the OpenACC and Offloading wiki pages for further information. + +Ada + * On mainstream native platforms, Ada programs no longer require the stack + to be made executable in order to run properly. + +BRIG (HSAIL) + +Support for processing BRIG 1.0 files was added in this release. BRIG is a +binary format for HSAIL (Heterogeneous System Architecture Intermediate +Language). The BRIG frontend can be used for implementing HSAIL "finalizers" +(compilation of HSAIL to a native ISA) for gcc-supported targets. An +implementation of an HSAIL runtime library, libhsail-rt is also included. + +C family + + * New command-line options have been added for the C and C++ compilers: + o -Wimplicit-fallthrough warns when a switch case falls through. This + warning has five different levels. The compiler is able to parse a + wide range of fallthrough comments, depending on the level. It also + handles control-flow statements, such as ifs. It's possible to + suppres the warning by either adding a fallthrough comment, or by + using a null statement: __attribute__ ((fallthrough)); (C, C++), or + [[fallthrough]]; (C++17), or [[gnu::fallthrough]]; (C++11/C++14). + This warning is enabled by -Wextra. + o -Wpointer-compare warns when a pointer is compared with a zero + character constant. Such code is now invalid in C++11 and GCC + rejects it. This warning is enabled by default. + o -Wduplicated-branches warns when an if-else has identical branches. + o -Wrestrict warns when an argument passed to a restrict-qualified + parameter aliases with another argument. + o -Wmemset-elt-size warns for memset calls, when the first argument + references an array, and the third argument is a number equal to + the number of elements of the array, but not the size of the array. + This warning is enabled by -Wall. + o -Wint-in-bool-context warns about suspicious uses of integer values + where boolean values are expected. This warning is enabled by - + Wall. + o -Wswitch-unreachable warns when a switch statement has statements + between the controlling expression and the first case label which + will never be executed. This warning is enabled by default. + o -Wexpansion-to-defined warns when defined is used outside #if. This + warning is enabled by -Wextra or -Wpedantic. + o -Wregister warns about uses of the register storage specifier. In + C++17 this keyword has been removed and for C++17 this is a + pedantic warning enabled by default. The warning is not emitted for + the GNU Explicit Register Variables extension. + o -Wvla-larger-than=N warns about unbounded uses of variable-length + arrays, and about bounded uses of variable-length arrays whose + bound can be larger than N bytes. + o -Wduplicate-decl-specifier warns when a declaration has duplicate + const, volatile, restrict or _Atomic specifier. This warning is + enabled by -Wall. + * GCC 6's C and C++ frontends were able to offer suggestions for misspelled + field names: + spellcheck-fields.cc:52:13: error: 'struct s' has no member named 'colour'; did you mean 'color'? + return ptr->colour; + ^~~~~~ + GCC 7 greatly expands the scope of these suggestions. Firstly, it adds + fix-it hints to such suggestions: + spellcheck-fields.cc:52:13: error: 'struct s' has no member named 'colour'; did you mean 'color'? + return ptr->colour; + ^~~~~~ + color + The suggestions now cover many other things, such as misspelled function + names: + spellcheck-identifiers.c:11:3: warning: implicit declaration of function 'gtk_widget_showall'; did you mean + 'gtk_widget_show_all'? [-Wimplicit-function-declaration] + gtk_widget_showall (w); + ^~~~~~~~~~~~~~~~~~ + gtk_widget_show_all + misspelled macro names and enum values: + spellcheck-identifiers.cc:85:11: error: 'MAX_ITEM' undeclared here (not in a function); did you mean 'MAX_ITEMS'? + int array[MAX_ITEM]; + ^~~~~~~~ + MAX_ITEMS + misspelled type names: + spellcheck-typenames.c:7:14: error: unknown type name 'singed'; did you mean 'signed'? + void test (singed char e); + ^~~~~~ + signed + and, in the C frontend, named initializers: + test.c:7:20: error: 'struct s' has no member named 'colour'; did you mean 'color'? + struct s test = { .colour = 3 }; + ^~~~~~ + color + * The preprocessor can now offer suggestions for misspelled directives, + e.g.: + test.c:5:2: error:invalid preprocessing directive #endfi; did you mean #endif? + #endfi + ^~~~~ + endif + * Warnings about format strings now underline the pertinent part of the + string, and can offer suggested fixes. In some cases, the pertinent + argument is underlined. + test.c:51:29: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'int' [-Wformat=] + printf ("foo: %d bar: %s baz: %d", 100, i + j, 102); + ~^ ~~~~~ + %d + * The new -Wdangling-else command-line option has been split out of + -Wparentheses and warns about dangling else. + * The -Wshadow warning has been split into three variants. -Wshadow=global + warns for any shadowing. This is the default when using -Wshadow without + any argument. -Wshadow=local only warns for a local variable shadowing + another local variable or parameter. -Wshadow=compatible-local only warns + for a local variable shadowing another local variable or parameter whose + type is compatible (in C++ compatible means that the type of the + shadowing variable can be converted to that of the shadowed variable). + The following example shows the different kinds of shadow warnings: + + enum operation { add, count }; + struct container { int nr; }; + + int + container_count (struct container c, int count) + { + int r = 0; + for (int count = 0; count > 0; count--) + { + struct container count = c; + r += count.nr; + } + return r; + } + + -Wshadow=compatible-local will warn for the parameter being shadowed with + the same type: + warn-test.c:8:12: warning: declaration of 'count' shadows a parameter [-Wshadow=compatible-local] + for (int count = 0; count > 0; count--) + ^~~~~ + warn-test.c:5:42: note: shadowed declaration is here + container_count (struct container c, int count) + ^~~~~ + -Wshadow=local will warn for the above and for the shadowed declaration + with incompatible type: + warn-test.c:10:24: warning: declaration of 'count' shadows a previous local [-Wshadow=local] + struct container count = c; + ^~~~~ + warn-test.c:8:12: note: shadowed declaration is here + for (int count = 0; count > 0; count--) + ^~~~~ + -Wshadow=global will warn for all of the above and the shadowing of the + global declaration: + warn-test.c:5:42: warning: declaration of 'count' shadows a global declaration [-Wshadow] + container_count (struct container c, int count) + ^~~~~ + warn-test.c:1:23: note: shadowed declaration is here + enum operation { add, count }; + ^~~~~ + * GCC 7 contains a number of enhancements that help detect buffer overflow + and other forms of invalid memory accesses. + o The -Walloc-size-larger-than=size option detects calls to standard + and user-defined memory allocation functions decorated with + attribute alloc_size whose argument exceeds the specified size + (PTRDIFF_MAX by default). The option also detects arithmetic + overflow in the computation of the size in two-argument allocation + functions like calloc where the total size is the product of the + two arguments. Since calls with an excessive size cannot succeed + they are typically the result of programming errors. Such bugs have + been known to be the source of security vulnerabilities and a + target of exploits. -Walloc-size-larger-than=PTRDIFF_MAX is + included in -Wall. + For example, the following call to malloc incorrectly tries to + avoid passing a negative argument to the function and instead ends + up unconditionally invoking it with an argument less than or equal + to zero. Since after conversion to the type of the argument of the + function (size_t) a negative argument results in a value in excess + of the maximum PTRDIFF_MAX the call is diagnosed. + + void* f (int n) + { + return malloc (n > 0 ? 0 : n); + } + + warning: argument 1 range [2147483648, 4294967295] exceeds maximum object size 2147483647 [-Walloc-size-larger-than=] + + o The -Walloc-zero option detects calls to standard and user-defined + memory allocation functions decorated with attribute alloc_size + with a zero argument. -Walloc-zero is not included in either -Wall + or -Wextra and must be explicitly enabled. + o The -Walloca option detects all calls to the alloca function in the + program. -Walloca is not included in either -Wall or -Wextra and + must be explicitly enabled. + o The -Walloca-larger-than=size option detects calls to the alloca + function whose argument either may exceed the specified size, or + that is not known to be sufficiently constrained to avoid exceeding + it. -Walloca-larger-than is not included in either -Wall or -Wextra + and must be explicitly enabled. + For example, compiling the following snippet with -Walloca-larger- + than=1024 results in a warning because even though the code appears + to call alloca only with sizes of 1kb and less, since n is signed, + a negative value would result in a call to the function well in + excess of the limit. + + void f (int n) + { + char *d; + if (n < 1025) + d = alloca (n); + else + d = malloc (n); + … + } + + warning: argument to 'alloca may be too large due to conversion from 'int' to 'long unsigned int' [-Walloca-larger-than=] + + In contrast, a call to alloca that isn't bounded at all such as in + the following function will elicit the warning below regardless of + the size argument to the option. + + void f (size_t n) + { + char *d = alloca (n); + ... + } + + warning: unbounded use of 'alloca' [-Walloca-larger-than=] + + o The -Wformat-overflow=level option detects certain and likely + buffer overflow in calls to the sprintf family of formatted output + functions. Although the option is enabled even without optimization + it works best with -O2 and higher. + For example, in the following snippet the call to sprintf is + diagnosed because even though its output has been constrained using + the modulo operation it could result in as many as three bytes if + mday were negative. The solution is to either allocate a larger + buffer or make sure the argument is not negative, for example by + changing mday's type to unsigned or by making the type of the + second operand of the modulo expression unsigned: 100U. + + void* f (int mday) + { + char *buf = malloc (3); + sprintf (buf, "%02i", mday % 100); + return buf; + } + + warning: 'sprintf may write a terminating nul past the end of the destination [-Wformat-overflow=] + note: 'sprintf' output between 3 and 4 bytes into a destination of size 3 + + o The -Wformat-truncation=level option detects certain and likely + output truncation in calls to the snprintf family of formatted + output functions. -Wformat-truncation=1 is included in -Wall and + enabled without optimization but works best with -O2 and higher. + For example, the following function attempts to format an integer + between 0 and 255 in hexadecimal, including the 0x prefix, into a + buffer of four charactars. But since the function must always + terminate output by the null character ('\0') such a buffer is only + big enough to fit just one digit plus the prefix. Therefore the + snprintf call is diagnosed. To avoid the warning either use a + bigger buffer or handle the function's return value which indicates + whether or not its output has been truncated. + + void f (unsigned x) + { + char d[4]; + snprintf (d, sizeof d, "%#02x", x & 0xff); + … + } + + warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=] + note: 'snprintf' output between 3 and 5 bytes into a destination of size 4 + + o The -Wnonnull option has been enhanced to detect a broader set of + cases of passing null pointers to functions that expect a non-null + argument (those decorated with attribute nonnull). By taking + advantage of optimizations the option can detect many more cases of + the problem than in prior GCC versions. + o The -Wstringop-overflow=type option detects buffer overflow in + calls to string handling functions like memcpy and strcpy. The + option relies on Object_Size_Checking and has an effect similar to + defining the _FORTIFY_SOURCE macro. -Wstringop-overflow=2 is + enabled by default. + For example, in the following snippet, because the call to strncat + specifies a maximum that allows the function to write past the end + of the destination, it is diagnosed. To correct the problem and + avoid the overflow the function should be called with a size of at + most sizeof d - strlen(d) - 1. + + void f (const char *fname) + { + char d[8]; + strncpy (d, "/tmp/", sizeof d); + strncat (d, fname, sizeof d); + ... + } + + warning: specified bound 8 equals the size of the destination [-Wstringop-overflow=] + + * The header provided by GCC defines macros such as INT_WIDTH + for the width in bits of integer types, if + __STDC_WANT_IEC_60559_BFP_EXT__ is defined before the header is included. + The header defines such macros as SIZE_WIDTH and INTMAX_WIDTH + for the width of some standard typedef names for integer types, again if + __STDC_WANT_IEC_60559_BFP_EXT__ is defined before the header is included; + note that GCC's implementation of this header is only used for + freestanding compilations, not hosted compilations, on most systems. + These macros come from ISO/IEC TS 18661-1:2014. + * The header provided by GCC defines the macro CR_DECIMAL_DIG, + from ISO/IEC TS 18661-1:2014, if __STDC_WANT_IEC_60559_BFP_EXT__ is + defined before the header is included. This represents the number of + decimal digits for which conversions between decimal character strings + and binary formats, in both directions, are correctly rounded, and + currently has the value of UINTMAX_MAX on all systems, reflecting that + GCC's compile-time conversions are correctly rounded for any number of + digits. + * New __builtin_add_overflow_p, __builtin_sub_overflow_p, + __builtin_mul_overflow_p built-in functions have been added. These work + similarly to their siblings without the _p suffix, but do not actually + store the result of the arithmetics anywhere, just return whether the + operation would overflow. Calls to these built-ins with integer constant + arguments evaluate to integer constants expressions. + For example, in the following, c is assigned the result of a * b only if + the multiplication does not overflow, otherwise it is assigned the value + zero. The multiplication is performed at compile-time and without + triggering a -Woverflow warning. + + enum { + a = 12345678, + b = 87654321, + c = __builtin_mul_overflow_p (a, b, a) ? 0 : a * b + }; + +C + + * The C front end now supports type names _FloatN for floating-point types + with IEEE interchange formats and _FloatNx for floating-point types with + IEEE extended formats. These type names come from ISO/IEC TS 18661-3: + 2015. + The set of types supported depends on the target for which GCC is + configured. Most targets support _Float32, _Float32x and _Float64. + _Float128 is supported on targets where IEEE binary128 encoding was + already supported as long double or __float128. _Float64x is supported on + targets where a type with either binary128 or Intel extended precision + format is available. + Constants with these types are supported using suffixes fN, FN, fNx and + FNx (e.g., 1.2f128 or 2.3F64x). Macros such as FLT128_MAX are defined in + if __STDC_WANT_IEC_60559_TYPES_EXT__ is defined before it is + included. + These new types are always distinct from each other and from float, + double and long double, even if they have the same encoding. Complex + types such as _Complex _Float128 are also supported. + Type-generic built-in functions such as __builtin_isinf support the new + types, and the following type-specific built-in functions have versions + (suffixed fN or fNx) for the new types: __builtin_copysign, + __builtin_fabs, __builtin_huge_val, __builtin_inf, __builtin_nan, + __builtin_nans. + * Compilation with -fopenmp is now compatible with the C11 _Atomic keyword. + +C++ + + * The C++ front end has experimental support for all of the current C++17 + draft with the -std=c++1z or -std=gnu++1z flags, including if constexpr, + class template argument deduction, auto template parameters, and + structured bindings. For a full list of new features, see the_C++_status + page. + * C++17 support for new of over-aligned types can be enabled in other modes + with the -faligned-new flag. + * The C++17 evaluation order requirements can be selected in other modes + with the -fstrong-eval-order flag, or disabled in C++17 mode with -fno- + strong-eval-order. + * The default semantics of inherited constructors has changed in all modes, + following P0136. Essentially, overload resolution happens as if calling + the inherited constructor directly, and the compiler fills in + construction of the other bases and members as needed. Most uses should + not need any changes. The old behavior can be restored with -fno-new- + inheriting-ctors, or -fabi-version less than 11. + * The resolution of DR 150 on matching of template template parameters, + allowing default template arguments to make a template match a parameter, + is currently enabled by default in C++17 mode only. The default can be + overridden with -f{no-,}new-ttp-matching. + * The C++ front end will now provide fix-it hints for some missing + semicolons, allowing for automatic fixes by IDEs: + + test.cc:4:11: error: expected ';' after class definition + class a {} + ^ + ; + * -Waligned-new has been added to the C++ front end. It warns about new of + type with extended alignment without -faligned-new. + +Runtime Library (libstdc++) + + * The type of exception thrown by iostreams, std::ios_base::failure, now + uses the cxx11_ABI. + * Experimental support for C++17, including the following new features: + o std::string_view; + o std::any, std::optional, and std::variant; + o std::invoke, std::is_invocable, std::is_nothrow_invocable, and + invoke_result; + o std::is_swappable, and std::is_nothrow_swappable; + o std::apply, and std::make_from_tuple; + o std::void_t, std::bool_constant, std::conjunction, std:: + disjunction, and std::negation; + o Variable templates for type traits; + o Mathematical Special Functions; + o std::chrono::floor, std::chrono::ceil, std::chrono::round, and + std::chrono::abs; + o std::clamp, std::gcd, std::lcm, 3-dimensional std::hypot; + o std::scoped_lock, std::shared_mutex, std::atomic:: + is_always_lock_free; + o std::sample, std::default_searcher, std::boyer_moore_searcher and + std::boyer_moore_horspool_searcher; + o Extraction and re-insertion of map and set nodes, try_emplace + members for maps, and functions for accessing containers std::size, + std::empty, and std::data; + o std::shared_ptr support for arrays, std::shared_ptr::weak_type, + std::enable_shared_from_this::weak_from_this(), and std:: + owner_less; + o std::byte; + o std::as_const, std::not_fn, std::has_unique_object_representations, + constexpr std::addressof. + Thanks to Daniel Krügler, Tim Shen, Edward Smith-Rowland, and Ville + Voutilainen for work on the C++17 support. + * A new power-of-two rehashing policy for use with the _Hashtable + internals, thanks to François Dumont. + +Fortran + + * Support for a number of extensions for compatibility with legacy code + with new flags: + o -fdec-structure Support for DEC STRUCTURE and UNION + o -fdec-intrinsic-ints Support for new integer intrinsics with B/I/J/ + K prefixes such as BABS, JIAND... + o -fdec-math Support for additional math intrinsics, including COTAN + and degree-valued trigonometric functions such as TAND, ASIND... + o -fdec Enable the -fdec-* family of extensions. + * New flag -finit-derived to allow default initialization of derived-type + variables. + * Improved DO loops with step equal to 1 or -1, generates faster code + without a loop preheader. A new warning, -Wundefined-do-loop, warns when + a loop iterates either to HUGE(i) (with step equal to 1), or to -HUGE(i) + (with step equal to -1). Invalid behavior can be caught at run time with + -fcheck=do enabled: + + program test + implicit none + integer(1) :: i + do i = -HUGE(i)+10, -HUGE(i)-1, -1 + print *, i + end do + end program test + + At line 8 of file do_check_12.f90 + Fortran runtime error: Loop iterates infinitely + + * Version 4.5 of the OpenMP_specification is now partially supported also + in the Fortran compiler; the largest missing item is structure element + mapping. + * User-defined derived-type input/output (UDTIO) is added. + * Derived type coarrays with allocable and pointer components is partially + supported. + * Non-constant stop codes and error stop codes (Fortran 2015 feature). + * Derived types with allocatable components of recursive type. + * Intrinsic assignment to polymorphic variables. + * Improved submodule support. + * Improved diagnostics (polymorphic results in pure functions). + +Go + + * GCC 7 provides a complete implementation of the Go 1.8.1 user packages. + * Compared to the Go 1.8.1 toolchain, the garbage collector is more + conservative and less concurrent. + * Escape analysis is available for experimental use via the -fgo-optimize- + allocs option. The -fgo-debug-escape prints information useful for + debugging escape analysis choices. + +Java (GCJ) + +The GCC Java frontend and associated libjava runtime library have been removed +from GCC. + +libgccjit + +The libgccjit API gained support for marking calls as requiring tail-call +optimization via a new entrypoint: gcc_jit_rvalue_set_bool_require_tail_call. +libgccjit performs numerous checks at the API boundary, but if these succeed, +it previously ignored errors and other diagnostics emitted within the core of +GCC, and treated the compile of a gcc_jit_context as having succeeded. As of +GCC 7 it now ensures that if any diagnostics are emitted, they are visible from +the libgccjit API, and that the the context is flagged as having failed. + +New Targets and Target Specific Improvements + +AArch64 + + * The ARMv8.3-A architecture is now supported. It can be used by specifying + the -march=armv8.3-a option. + * The option -msign-return-address= is supported to enable return address + protection using ARMv8.3-A Pointer Authentication Extensions. For more + information on the arguments accepted by this option, please refer to + AArch64-Options. + * The ARMv8.2-A architecture and the ARMv8.2-A 16-bit Floating-Point + Extensions are now supported. They can be used by specifying the - + march=armv8.2-a or -march=armv8.2-a+fp16 options. The 16-bit Floating- + Point Extensions introduce new half-precision data processing floating- + point instructions. + * Support has been added for the following processors (GCC identifiers in + parentheses): ARM Cortex-A73 (cortex-a73), Broadcom Vulcan (vulcan), + Cavium ThunderX CN81xx (thunderxt81), Cavium ThunderX CN83xx + (thunderxt83), Cavium ThunderX CN88xx (thunderxt88), Cavium ThunderX + CN88xx pass 1.x (thunderxt88p1), Cavium ThunderX 2 CN99xx (thunderx2t99), + Qualcomm Falkor (falkor). The GCC identifiers can be used as arguments to + the -mcpu or -mtune options, for example: -mcpu=cortex-a73 or - + mtune=vulcan or as arguments to the equivalent target attributes and + pragmas. + +ARC + + * Add support for ARC HS and ARC EM processors. + * Add support for ARC EM variation found in Intel QuarkSE SoCs. + * Add support for NPS400 ARC700 based CPUs. + * Thread Local Storage is now supported by ARC CPUs. + * Fix errors for ARC600 when using 32x16 multiplier option. + * Fix PIE for ARC CPUs. + * New CPU templates are supported via multilib. + +ARM + + * Support for the ARMv5 and ARMv5E architectures has been deprecated (which + have no known implementations) and will be removed in a future GCC + release. Note that ARMv5T, ARMv5TE and ARMv5TEJ architectures remain + supported. The values armv5 and armv5e of -march are thus deprecated. + * The ARMv8.2-A architecture and the ARMv8.2-A 16-bit Floating-Point + Extensions are now supported. They can be used by specifying the - + march=armv8.2-a or -march=armv8.2-a+fp16 options. The 16-bit Floating- + Point Extensions introduce new half-precision data processing floating- + point instructions. + * The ARMv8-M architecture is now supported in its two architecture + profiles: ARMv8-M Baseline and ARMv8-M Mainline with its DSP and + Floating-Point Extensions. They can be used by specifying the - + march=armv8-m.base, armv8-m.main or armv8-m.main+dsp options. + * Support has been added for the following processors (GCC identifiers in + parentheses): ARM Cortex-A73 (cortex-a73), ARM Cortex-M23 (cortex-m23) + and ARM Cortex-M33 (cortex-m33). The GCC identifiers can be used as + arguments to the -mcpu or -mtune options, for example: -mcpu=cortex-a73 + or -mtune=cortex-m33. + * A new command-line option -mpure-code has been added. It does not allow + constant data to be placed in code sections. This option is only + available when generating non-pic code for ARMv7-M targets. + * Support for the ACLE Coprocessor Intrinsics has been added. This enables + the generation of coprocessor instructions through the use of intrinsics + such as cdp, ldc, and others. + * The configure option --with-multilib-list now accepts the value rmprofile + to build multilib libraries for a range of embedded targets. See our + installation_instructions for details. + +AVR + + * On the reduced Tiny cores, the progmem variable_attribute is now properly + supported. Respective read-only variables are located in flash memory in + section .progmem.data. No special code is needed to access such + variables; the compiler automatically adds an offset of 0x4000 to all + addresses, which is needed to access variables in flash memory. As + opposed to ordinary cores where it is sufficient to specify the progmem + attribute with definitions, on the reduced Tiny cores the attribute also + has to be specified with (external) declarations: + + extern const int array[] __attribute__((__progmem__)); + + int get_value2 (void) + { + /* Access via addresses array + 0x4004 and array + 0x4005. */ + return array[2]; + } + + const int* get_address (unsigned idx) + { + /* Returns array + 0x4000 + 2 * idx. */ + return &array[idx]; + } + + * A new command-line option -Wmisspelled-isr has been added. It turns off — + or turns into errors — warnings that are reported for interrupt service + routines (ISRs) which don't follow AVR-LibC's naming convention of + prefixing ISR names with __vector. + * __builtin_avr_nops(n) is a new built-in_function that inserts n NOP + instructions into the instruction stream. n must be a value known at + compile time. + +IA-32/x86-64 + + * Support for the AVX-512 Fused Multiply Accumulation Packed Single + precision (4FMAPS), AVX-512 Vector Neural Network Instructions Word + variable precision (4VNNIW), AVX-512 Vector Population Count (VPOPCNTDQ) + and Software Guard Extensions (SGX) ISA extensions has been added. + +NVPTX + + * OpenMP target regions can now be offloaded to NVidia PTX GPGPUs. See the + Offloading_Wiki on how to configure it. + +PowerPC / PowerPC64 / RS6000 + + * The PowerPC port now uses LRA by default. + * GCC now diagnoses inline assembly that clobbers register r2. This has + always been invalid code, and is no longer quietly tolerated. + * The PowerPC port's support for ISA 3.0 (-mcpu=power9) has been enhanced + to generate more of the new instructions by default, and to provide more + built-in functions to generate code for other new instructions. + * The configuration option --enable-gnu-indirect-function is now enabled by + default on PowerPC GNU/Linux builds. + * The PowerPC port will now allow 64-bit and 32-bit integer types to be + allocated to the VSX vector registers (ISA 2.06 and above). In addition, + on ISA 3.0, 16-bit and 8-bit integer types can be allocated in the vector + registers. Previously, only 64-bit integer types were allowed in the + traditional floating point registers. + * New options -mstack-protector-guard=global, -mstack-protector-guard=tls, + -mstack-protector-guard-reg=, and -mstack-protector-guard-offset= change + how the stack protector gets the value to use as canary. + +RISC-V + + * Support for the RISC-V instruction set has been added. + +SPARC + + * The SPARC port now uses LRA by default. + * Support for the new Subtract-Extended-with-Carry instruction available in + SPARC M7 (Niagara 7) has been added. + +Operating Systems + +AIX + + * Visibility support has been enabled for AIX 7.1 and above. + +Fuchsia + + * Support has been added for the Fuchsia_OS. + +RTEMS + + * The ABI changes on ARM so that no short enums are used by default. + +Other significant improvements + + * -fverbose-asm previously emitted information on the meanings of assembly + expressions. This has been extended so that it now also prints comments + showing the source lines that correspond to the assembly, making it + easier to read the generated assembly (especially with larger functions). + For example, given this C source file: + + int test (int n) + { + int i; + int total = 0; + + for (i = 0; i < n; i++) + total += i * i; + return total; + } + + -fverbose-asm now gives output similar to this for the function body + (when compiling for x86_64, with -Os): + + .text + .globl test + .type test, @@function + test: + .LFB0: + .cfi_startproc + # example.c:4: int total = 0; + xorl %eax, %eax # + # example.c:6: for (i = 0; i < n; i++) + xorl %edx, %edx # i + .L2: + # example.c:6: for (i = 0; i < n; i++) + cmpl %edi, %edx # n, i + jge .L5 #, + # example.c:7: total += i * i; + movl %edx, %ecx # i, tmp92 + imull %edx, %ecx # i, tmp92 + # example.c:6: for (i = 0; i < n; i++) + incl %edx # i + # example.c:7: total += i * i; + addl %ecx, %eax # tmp92, + jmp .L2 # + .L5: + # example.c:10: } + ret + .cfi_endproc + + * Two new options have been added for printing fix-it hints: + o -fdiagnostics-parseable-fixits allows for fix-it hints to be + emitted in a machine-readable form, suitable for consumption by + IDEs. For example, given: + + spellcheck-fields.cc:52:13: error: 'struct s' has no member named 'colour'; did you mean 'color'? + return ptr->colour; + ^~~~~~ + color + it will emit: + fix-it:"spellcheck-fields.cc":{52:13-52:19}:"color" + o -fdiagnostics-generate-patch will print a patch in "unified" format + after any diagnostics are printed, showing the result of applying + all fix-it hints. For the above example it would emit: + --- spellcheck-fields.cc + +++ spellcheck-fields.cc + @@ -49,5 +49,5 @@ + + color get_color(struct s *ptr) + { + - return ptr->colour; + + return ptr->color; + } + * The gcc and g++ driver programs will now provide suggestions for + misspelled arguments to command-line options. + $ gcc -c test.c -ftls-model=global-dinamic + gcc: error: unknown TLS model 'global-dinamic' + gcc: note: valid arguments to '-ftls-model=' are: global- + dynamic initial-exec local-dynamic local-exec; did you mean + 'global-dynamic'? + * The compiler will now provide suggestions for misspelled parameters. + $ gcc -c test.c --param max-early-inliner-iteration=3 + cc1: error: invalid --param name 'max-early-inliner-iteration'; + did you mean 'max-early-inliner-iterations'? + * Profile-guided optimization (PGO) instrumentation, as well as test + coverage (GCOV), can newly instrument constructors (functions marks with + __attribute__((constructor))), destructors and C++ constructors (and + destructors) of classes that are used as a type of a global variable. + * A new option -fprofile-update=atomic prevents creation of corrupted + profiles created during instrumentation run (-fprofile=generate) of an + application. Downside of the option is a speed penalty. Providing - + pthread on command line would result in selection of atomic profile + updating (when supports by a target). + * GCC's already extensive testsuite has gained some new capabilities, to + further improve the reliability of the compiler: + o GCC now has has an internal unit testing API and a suite of tests + for programmatic self-testing of subsystems. + o GCC's C frontend has been extended so that it can parse dumps of + GCC's internal representations, allowing for DejaGnu tests that + more directly exercise specific optimization passes. This covers + both the GIMPLE_representation (for testing higher-level + optimizations) and the RTL_representation, allowing for more direct + testing of lower-level details, such as register allocation and + instruction selection. + + For questions related to the use of GCC, please consult these web + pages and the GCC_manuals. If that fails, the gcc-help@gcc.gnu.org + mailing list might help. Comments on these web pages and the + development of GCC are welcome on our developer list at + gcc@gcc.gnu.org. All of our_lists have public archives. + +Copyright (C) Free Software Foundation, Inc. Verbatim copying and +distribution of this entire article is permitted in any medium, +provided this notice is preserved. These pages are maintained by the +GCC team. Last modified 2017-05-01. diff --git a/debian/NEWS.html b/debian/NEWS.html new file mode 100644 index 0000000..24af53b --- /dev/null +++ b/debian/NEWS.html @@ -0,0 +1,1286 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +GCC 7 Release Series — Changes, New Features, and Fixes +- GNU Project - Free Software Foundation (FSF) + + + + + + + + + +

GCC 7 Release Series
Changes, New Features, and Fixes

+ +

+This page is a brief summary of some of the huge number of improvements in GCC 7. +For more information, see the +Porting to GCC 7 page and the +full GCC documentation. +

+ + +

Disclaimer: GCC 7 has not been released yet, so this document is +a work-in-progress.

+ + +

Caveats

+
    +
  • GCC now uses LRA (a + new local register allocator) by default for new targets.
  • + +
  • The non-standard C++0x type traits + has_trivial_default_constructor, + has_trivial_copy_constructor and + has_trivial_copy_assign have been removed.
  • +
  • The libstdc++ + Profile + Mode has been deprecated and will be removed in a future version. +
  • + +
  • The Cilk+ extensions to the C and C++ languages have been deprecated.
  • +
+ + +

General Optimizer Improvements

+
    +
  • GCC 7 can determine the return value or range of return values of + some calls to the sprintf family of functions and make + it available to other optimization passes. Some calls to the + snprintf function with a zero size argument can be folded + into constants. This optimization is included in -O1 + and can be selectively controlled by the + -fprintf-return-value option.
  • +
  • A new store merging pass has been added. It merges constant stores to + adjacent memory locations into fewer, wider, stores. + It is enabled by the -fstore-merging option and at the + -O2 optimization level or higher (and -Os).
  • + +
  • A new code hoisting optimization has been added to the partial + redundancy elimination pass. It attempts to move evaluation of + expressions executed on all paths to the function exit as early as + possible, which helps primarily for code size, but can be useful for + speed of generated code as well. It is enabled by the + -fcode-hoisting option and at the -O2 + optimization level or higher (and -Os).
  • + +
  • A new interprocedural bitwise constant propagation optimization + has been added, which propagates knowledge about which bits of variables + are known to be zero (including pointer alignment information) across + the call graph. It is enabled by the -fipa-bit-cp + option if -fipa-cp is enabled as well, and is enabled + at the -O2 optimization level and higher (and + -Os). This optimization supersedes interprocedural + alignment propagation of GCC 6, and therefore the + option -fipa-cp-alignment is now deprecated and + ignored.
  • + +
  • A new interprocedural value range propagation optimization has been + added, which propagates integral ranges that variable values can be proven + to be within across the call graph. It is enabled by the + -fipa-vrp option and at the -O2 optimization + level and higher (and -Os).
  • + +
  • A new loop splitting optimization pass has been added. It splits + certain loops if they contain a condition that is always true on one + side of the iteration space and always false on the other into two + loops where each of the new two loops iterates just on one of the sides + of the iteration space and the condition does not need to be checked + inside of the loop. It is enabled by the -fsplit-loops + option and at the -O3 optimization level or higher.
  • + +
  • The shrink-wrapping optimization can now separate portions of + prologues and epilogues to improve performance if some of the + work done traditionally by prologues and epilogues is not needed + on certain paths. This is controlled by the + -fshrink-wrap-separate option, enabled by default. + It requires target support, which is currently only implemented in the + PowerPC and AArch64 ports.
  • + +
  • AddressSanitizer gained a new sanitization option, -fsanitize-address-use-after-scope, + which enables sanitization of variables whose address is taken and used after a scope where the + variable is defined: +
    +int
    +main (int argc, char **argv)
    +{
    +  char *ptr;
    +    {
    +      char my_char;
    +      ptr = &my_char;
    +    }
    +
    +  *ptr = 123;
    +  return *ptr;
    +}
    +
    +==28882==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7fffb8dba990 at pc 0x0000004006d5 bp 0x7fffb8dba960 sp 0x7fffb8dba958
    +WRITE of size 1 at 0x7fffb8dba990 thread T0
    +    #0 0x4006d4 in main /tmp/use-after-scope-1.c:10
    +    #1 0x7f9c71943290 in __libc_start_main (/lib64/libc.so.6+0x20290)
    +    #2 0x400739 in _start (/tmp/a.out+0x400739)
    +
    +Address 0x7fffb8dba990 is located in stack of thread T0 at offset 32 in frame
    +    #0 0x40067f in main /tmp/use-after-scope-1.c:3
    +
    +  This frame has 1 object(s):
    +    [32, 33) 'my_char' <== Memory access at offset 32 is inside this variable
    +  
    + + The option is enabled by default with -fsanitize=address and disabled + by default with -fsanitize=kernel-address. + Compared to the LLVM compiler, where the option already exists, + the implementation in the GCC compiler has couple of improvements and advantages: +
      +
    • A complex usage of gotos and case labels are properly handled and should not + report any false positive or false negatives. +
    • +
    • C++ temporaries are sanitized.
    • +
    • Sanitization can handle invalid memory stores that are optimized out + by the LLVM compiler when using an optimization level.
    • +
    + +
  • + +
  • The -fsanitize=signed-integer-overflow suboption of the + UndefinedBehavior Sanitizer now diagnoses arithmetic overflows even on + arithmetic operations with generic vectors.
  • + +
  • Version 5 of the DWARF debugging + information standard is supported through the -gdwarf-5 + option. The DWARF version 4 debugging information remains the + default until debugging information consumers are adjusted.
  • + +
+ + +

New Languages and Language specific improvements

+ + OpenACC support in C, C++, and Fortran continues to be maintained and + improved. + See the OpenACC + and Offloading wiki pages + for further information. + + +

Ada

+
    +
  • On mainstream native platforms, Ada programs no longer require the stack + to be made executable in order to run properly.
  • +
+ +

BRIG (HSAIL)

+ +

Support for processing BRIG 1.0 files was added in this release. +BRIG is a binary format for HSAIL (Heterogeneous System Architecture +Intermediate Language). The BRIG frontend can be used for implementing +HSAIL "finalizers" (compilation of HSAIL to a native ISA) for gcc-supported +targets. An implementation of an HSAIL runtime library, libhsail-rt is +also included.

+ +

C family

+
    +
  • New command-line options have been added for the C and C++ compilers: +
      +
    • -Wimplicit-fallthrough warns when a switch case falls + through. This warning has five different levels. The compiler is + able to parse a wide range of fallthrough comments, depending on + the level. It also handles control-flow statements, such as ifs. + It's possible to suppres the warning by either adding a fallthrough + comment, or by using a null statement: __attribute__ + ((fallthrough)); (C, C++), or [[fallthrough]]; + (C++17), or [[gnu::fallthrough]]; (C++11/C++14). + This warning is enabled by -Wextra.
    • +
    • -Wpointer-compare warns when a pointer is compared with + a zero character constant. Such code is now invalid in C++11 and + GCC rejects it. This warning is enabled by default.
    • +
    • -Wduplicated-branches warns when an if-else has identical + branches.
    • +
    • -Wrestrict warns when an argument passed to a + restrict-qualified parameter aliases with another + argument.
    • +
    • -Wmemset-elt-size warns for memset calls, + when the first argument references an array, and the third argument is + a number equal to the number of elements of the array, but not the size + of the array. This warning is enabled by -Wall.
    • +
    • -Wint-in-bool-context warns about suspicious uses of + integer values where boolean values are expected. This warning is + enabled by -Wall.
    • +
    • -Wswitch-unreachable warns when a switch + statement has statements between the controlling expression and the + first case label which will never be executed. This warning is enabled + by default.
    • +
    • -Wexpansion-to-defined warns when defined is + used outside #if. This warning is enabled by + -Wextra or -Wpedantic.
    • +
    • -Wregister warns about uses of the register + storage specifier. In C++17 this keyword has been removed and for C++17 + this is a pedantic warning enabled by default. The warning is not + emitted for the GNU Explicit Register Variables extension.
    • +
    • -Wvla-larger-than=N warns about unbounded uses of + variable-length arrays, and about bounded uses of variable-length + arrays whose bound can be larger than N bytes.
    • +
    • -Wduplicate-decl-specifier warns when a declaration + has duplicate const, volatile, + restrict or _Atomic specifier. This warning + is enabled by -Wall.
    • +
    +
  • +
  • GCC 6's C and C++ frontends were able to offer suggestions for + misspelled field names: +
    +spellcheck-fields.cc:52:13: error: 'struct s' has no member named 'colour'; did you mean 'color'?
    +   return ptr->colour;
    +               ^~~~~~
    +
    + GCC 7 greatly expands the scope of these suggestions. Firstly, it + adds fix-it hints to such suggestions: +
    +spellcheck-fields.cc:52:13: error: 'struct s' has no member named 'colour'; did you mean 'color'?
    +   return ptr->colour;
    +               ^~~~~~
    +               color
    +
    + The suggestions now cover many other things, such as misspelled + function names: +
    +spellcheck-identifiers.c:11:3: warning: implicit declaration of function 'gtk_widget_showall'; did you mean 'gtk_widget_show_all'? [-Wimplicit-function-declaration]
    +   gtk_widget_showall (w);
    +   ^~~~~~~~~~~~~~~~~~
    +   gtk_widget_show_all
    +
    + misspelled macro names and enum values: +
    +spellcheck-identifiers.cc:85:11: error: 'MAX_ITEM' undeclared here (not in a function); did you mean 'MAX_ITEMS'?
    + int array[MAX_ITEM];
    +           ^~~~~~~~
    +           MAX_ITEMS
    +
    + misspelled type names: +
    +spellcheck-typenames.c:7:14: error: unknown type name 'singed'; did you mean 'signed'?
    + void test (singed char e);
    +            ^~~~~~
    +            signed
    +
    + and, in the C frontend, named initializers: +
    +test.c:7:20: error: 'struct s' has no member named 'colour'; did you mean 'color'?
    + struct s test = { .colour = 3 };
    +                    ^~~~~~
    +                    color
    +
  • +
  • The preprocessor can now offer suggestions for misspelled + directives, e.g.: +
    +test.c:5:2: error:invalid preprocessing directive #endfi; did you mean #endif?
    + #endfi
    +  ^~~~~
    +  endif
    +
  • +
  • Warnings about format strings now underline the pertinent part of + the string, and can offer suggested fixes. In some cases, the + pertinent argument is underlined. +
    +test.c:51:29: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'int' [-Wformat=]
    +   printf ("foo: %d  bar: %s baz: %d", 100, i + j, 102);
    +                          ~^                ~~~~~
    +                          %d
    +
  • + +
  • The new -Wdangling-else command-line option has been split +out of -Wparentheses and warns about dangling else.
  • +
  • The -Wshadow warning has been split into three +variants. -Wshadow=global warns for any shadowing. This +is the default when using -Wshadow without any +argument. -Wshadow=local only warns for a local variable +shadowing another local variable or +parameter. -Wshadow=compatible-local only warns for a +local variable shadowing another local variable or parameter whose +type is compatible (in C++ compatible means that the type of the +shadowing variable can be converted to that of the shadowed variable).

    + +

    The following example shows the different kinds of shadow +warnings:

    + +
    +enum operation { add, count };
    +struct container { int nr; };
    +
    +int
    +container_count (struct container c, int count)
    +{
    +  int r = 0;
    +  for (int count = 0; count > 0; count--)
    +    {
    +      struct container count = c;
    +      r += count.nr;
    +    }
    +  return r;
    +}
    + +

    -Wshadow=compatible-local will warn for the parameter being +shadowed with the same type:

    + +
    +warn-test.c:8:12: warning: declaration of 'count' shadows a parameter [-Wshadow=compatible-local]
    +   for (int count = 0; count > 0; count--)
    +            ^~~~~
    +warn-test.c:5:42: note: shadowed declaration is here
    + container_count (struct container c, int count)
    +                                          ^~~~~
    + +

    -Wshadow=local will warn for the above and for the shadowed +declaration with incompatible type:

    + +
    +warn-test.c:10:24: warning: declaration of 'count' shadows a previous local [-Wshadow=local]
    +       struct container count = c;
    +                        ^~~~~
    +warn-test.c:8:12: note: shadowed declaration is here
    +   for (int count = 0; count > 0; count--)
    +            ^~~~~
    + +

    -Wshadow=global will warn for all of the above and the shadowing +of the global declaration:

    + +
    +warn-test.c:5:42: warning: declaration of 'count' shadows a global declaration [-Wshadow]
    + container_count (struct container c, int count)
    +                                          ^~~~~
    +warn-test.c:1:23: note: shadowed declaration is here
    + enum operation { add, count };
    +                       ^~~~~
    +
  • +
  • GCC 7 contains a number of enhancements that help detect buffer overflow + and other forms of invalid memory accesses. +
      +
    • The -Walloc-size-larger-than=size option + detects calls to standard and user-defined memory allocation + functions decorated with attribute alloc_size whose + argument exceeds the specified size + (PTRDIFF_MAX by default). The option also detects + arithmetic overflow in the computation of the size in two-argument + allocation functions like calloc where the total size + is the product of the two arguments. Since calls with an excessive + size cannot succeed they are typically the result of programming + errors. Such bugs have been known to be the source of + security vulnerabilities and a target of exploits. + -Walloc-size-larger-than=PTRDIFF_MAX is included + in -Wall.

      +

      For example, the following call to malloc incorrectly + tries to avoid passing a negative argument to the function and + instead ends up unconditionally invoking it with an argument less + than or equal to zero. Since after conversion to the type of + the argument of the function (size_t) a negative + argument results in a value in excess of the maximum + PTRDIFF_MAX the call is diagnosed.

      +
      +void* f (int n)
      +{
      +  return malloc (n > 0 ? 0 : n);
      +}
      +
      +warning: argument 1 range [2147483648, 4294967295] exceeds maximum object size 2147483647 [-Walloc-size-larger-than=]
    • +
    • The -Walloc-zero option detects calls to standard + and user-defined memory allocation functions decorated with attribute + alloc_size with a zero argument. -Walloc-zero + is not included in either -Wall or -Wextra + and must be explicitly enabled.
    • +
    • The -Walloca option detects all calls to the + alloca function in the program. -Walloca + is not included in either -Wall or -Wextra + and must be explicitly enabled.
    • +
    • The -Walloca-larger-than=size option detects + calls to the alloca function whose argument either may + exceed the specified size, or that is not known + to be sufficiently constrained to avoid exceeding it. + -Walloca-larger-than is not included in either + -Wall or -Wextra and must be explicitly + enabled.

      +

      For example, compiling the following snippet with + -Walloca-larger-than=1024 results in a warning because + even though the code appears to call alloca only with + sizes of 1kb and less, since n is signed, a negative + value would result in a call to the function well in excess of + the limit.

      +
      +void f (int n)
      +{
      +  char *d;
      +  if (n < 1025)
      +    d = alloca (n);
      +  else
      +    d = malloc (n);
      +  …
      +}
      +
      +warning: argument to 'alloca may be too large due to conversion from 'int' to 'long unsigned int' [-Walloca-larger-than=]
      +

      In contrast, a call to alloca that isn't bounded at all + such as in the following function will elicit the warning below + regardless of the size argument to the option.

      +
      +void f (size_t n)
      +{
      +  char *d = alloca (n);
      +  …
      +}
      +
      +warning: unbounded use of 'alloca' [-Walloca-larger-than=]
    • +
    • The -Wformat-overflow=level option detects + certain and likely buffer overflow in calls to the sprintf + family of formatted output functions. Although the option is enabled + even without optimization it works best with -O2 and + higher.

      +

      For example, in the following snippet the call to + sprintf is diagnosed because even though its + output has been constrained using the modulo operation it could + result in as many as three bytes if mday were negative. + The solution is to either allocate a larger buffer or make sure + the argument is not negative, for example by changing + mday's type to unsigned or by making + the type of the second operand of the modulo expression + unsigned: 100U.

      +
      +void* f (int mday)
      +{
      +  char *buf = malloc (3);
      +  sprintf (buf, "%02i", mday % 100);
      +  return buf;
      +}
      +
      +warning: 'sprintf may write a terminating nul past the end of the destination [-Wformat-overflow=]
      +note: 'sprintf' output between 3 and 4 bytes into a destination of size 3
    • +
    • The -Wformat-truncation=level option detects + certain and likely output truncation in calls to the + snprintf family of formatted output functions. + -Wformat-truncation=1 is included in -Wall + and enabled without optimization but works best with -O2 + and higher.

      +

      For example, the following function attempts to format an integer + between 0 and 255 in hexadecimal, including the 0x + prefix, into a buffer of four charactars. But since the function + must always terminate output by the null character ('\0') + such a buffer is only big enough to fit just one digit plus the prefix. + Therefore the snprintf call is diagnosed. To avoid + the warning either use a bigger buffer or handle the function's + return value which indicates whether or not its output has + been truncated.

      +
      +void f (unsigned x)
      +{
      +  char d[4];
      +  snprintf (d, sizeof d, "%#02x", x & 0xff);
      +  …
      +}
      +
      +warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
      +note: 'snprintf' output between 3 and 5 bytes into a destination of size 4
    • +
    • The -Wnonnull option has been enhanced to detect + a broader set of cases of passing null pointers to functions that + expect a non-null argument (those decorated with attribute + nonnull). By taking advantage of optimizations the + option can detect many more cases of the problem than in prior GCC + versions.
    • +
    • The -Wstringop-overflow=type option detects + buffer overflow in calls to string handling functions like + memcpy and strcpy. The option relies on + + Object Size Checking and has an effect similar to defining + the _FORTIFY_SOURCE macro. + -Wstringop-overflow=2 is enabled by default.

      +

      For example, in the following snippet, because the call to + strncat specifies a maximum that allows the function to + write past the end of the destination, it is diagnosed. To correct + the problem and avoid the overflow the function should be called + with a size of at most sizeof d - strlen(d) - 1.

      +
      +void f (const char *fname)
      +{
      +  char d[8];
      +  strncpy (d, "/tmp/", sizeof d);
      +  strncat (d, fname, sizeof d);
      +  …
      +}
      +
      +warning: specified bound 8 equals the size of the destination [-Wstringop-overflow=]
      +
    • +
    +
  • +
  • The <limits.h> header provided by GCC defines + macros such as INT_WIDTH for the width in bits of + integer types, if __STDC_WANT_IEC_60559_BFP_EXT__ is + defined before the header is included. + The <stdint.h> header defines such macros + as SIZE_WIDTH and INTMAX_WIDTH for the + width of some standard typedef names for integer types, + again if __STDC_WANT_IEC_60559_BFP_EXT__ is defined + before the header is included; note that GCC's implementation of + this header is only used for freestanding compilations, not hosted + compilations, on most systems. These macros come from ISO/IEC TS + 18661-1:2014.
  • +
  • The <float.h> header provided by GCC defines + the macro CR_DECIMAL_DIG, from ISO/IEC TS 18661-1:2014, + if __STDC_WANT_IEC_60559_BFP_EXT__ is defined before + the header is included. This represents the number of decimal + digits for which conversions between decimal character strings and + binary formats, in both directions, are correctly rounded, and + currently has the value of UINTMAX_MAX on all systems, + reflecting that GCC's compile-time conversions are correctly rounded + for any number of digits.
  • +
  • New __builtin_add_overflow_p, + __builtin_sub_overflow_p, + __builtin_mul_overflow_p built-in functions have been added. + These work similarly to their siblings without the + _p suffix, but do not actually store the result of the + arithmetics anywhere, just return whether the operation would overflow. + Calls to these built-ins with integer constant arguments evaluate to + integer constants expressions.

    +

    For example, in the following, c is assigned the result + of a * b only if the multiplication does not overflow, + otherwise it is assigned the value zero. The multiplication is + performed at compile-time and without triggering + a -Woverflow warning.

    +
    enum {
    +  a = 12345678,
    +  b = 87654321,
    +  c = __builtin_mul_overflow_p (a, b, a) ? 0 : a * b
    +};
  • + +
+ +

C

+
    +
  • The C front end now supports type + names _FloatN for floating-point types with IEEE + interchange formats and _FloatNx for + floating-point types with IEEE extended formats. These type names + come from ISO/IEC TS 18661-3:2015.

    +

    The set of types supported depends on the target for which GCC is + configured. Most targets + support _Float32, _Float32x + and _Float64. _Float128 is supported on + targets where IEEE binary128 encoding was already supported + as long double + or __float128. _Float64x is supported on + targets where a type with either binary128 or Intel extended + precision format is available.

    +

    Constants with these types are supported using + suffixes fN, FN, + fNx and FNx + (e.g., 1.2f128 or 2.3F64x). Macros such + as FLT128_MAX are defined + in <float.h> + if __STDC_WANT_IEC_60559_TYPES_EXT__ is defined before + it is included.

    +

    These new types are always distinct from each other and + from float, double and long + double, even if they have the same encoding. Complex types + such as _Complex _Float128 are also supported.

    +

    Type-generic built-in functions such + as __builtin_isinf support the new types, and the + following type-specific built-in functions have versions + (suffixed fN or fNx) for the + new + types: __builtin_copysign, __builtin_fabs, __builtin_huge_val, __builtin_inf, __builtin_nan, __builtin_nans.

  • +
  • Compilation with -fopenmp is now compatible with the + C11 _Atomic keyword.
  • +
+ +

C++

+
    +
  • The C++ front end has experimental support for all of the current C++17 + draft with the -std=c++1z or -std=gnu++1z flags, + including if constexpr, class template argument + deduction, auto template parameters, and structured bindings. + For a full list of new features, + see the C++ + status page.
  • +
  • C++17 support for new of over-aligned types can be enabled + in other modes with the -faligned-new flag.
  • +
  • The C++17 evaluation order requirements can be selected in other modes + with the -fstrong-eval-order flag, or disabled in C++17 mode + with -fno-strong-eval-order.
  • +
  • The default semantics of inherited constructors has changed in all modes, + following P0136. Essentially, + overload resolution happens as if calling the inherited constructor + directly, and the compiler fills in construction of the other bases and + members as needed. Most uses should not need any changes. The old + behavior can be restored with -fno-new-inheriting-ctors, + or -fabi-version less than 11.
  • +
  • The resolution of DR 150 on matching of template template parameters, + allowing default template arguments to make a template match a parameter, + is currently enabled by default in C++17 mode only. The default can be + overridden with -f{no-,}new-ttp-matching.
  • +
  • The C++ front end will now provide fix-it hints for some missing + semicolons, allowing for automatic fixes by IDEs: +
    +test.cc:4:11: error: expected ';' after class definition
    + class a {} 
    +           ^
    +           ;
    +
  • +
  • -Waligned-new has been added to the C++ front end. It warns + about new of type with extended alignment without + -faligned-new.
  • +
+ +

Runtime Library (libstdc++)

+
    +
  • + The type of exception thrown by iostreams, + std::ios_base::failure, now uses the + cxx11 + ABI. +
  • +
  • Experimental support for C++17, including the following new features: +
      +
    • + std::string_view; +
    • +
    • + std::any, std::optional, + and std::variant; +
    • +
    • + std::invoke, std::is_invocable, + std::is_nothrow_invocable, and invoke_result; +
    • +
    • + std::is_swappable, + and std::is_nothrow_swappable; +
    • +
    • + std::apply, + and std::make_from_tuple; +
    • +
    • + std::void_t, std::bool_constant, + std::conjunction, std::disjunction, + and std::negation; +
    • +
    • Variable templates for type traits;
    • +
    • Mathematical Special Functions;
    • +
    • + std::chrono::floor, std::chrono::ceil, + std::chrono::round, and std::chrono::abs; +
    • +
    • + std::clamp, std::gcd, std::lcm, + 3-dimensional std::hypot; +
    • +
    • + std::scoped_lock, std::shared_mutex, + std::atomic<T>::is_always_lock_free; +
    • +
    • + std::sample, std::default_searcher, + std::boyer_moore_searcher and + std::boyer_moore_horspool_searcher; +
    • +
    • + Extraction and re-insertion of map and set nodes, try_emplace + members for maps, and functions for accessing containers + std::size, std::empty, and + std::data; +
    • +
    • + std::shared_ptr support for arrays, + std::shared_ptr<T>::weak_type, + std::enable_shared_from_this<T>::weak_from_this(), + and std::owner_less<void>; +
    • +
    • std::byte;
    • +
    • std::as_const, std::not_fn, + std::has_unique_object_representations, + constexpr std::addressof. +
    • +
    + Thanks to Daniel Krügler, Tim Shen, Edward Smith-Rowland, and Ville Voutilainen for + work on the C++17 support. +
  • +
  • + A new power-of-two rehashing policy for use with the + _Hashtable internals, thanks to François Dumont. +
  • +
+ +

Fortran

+
    + +
  • + Support for a number of extensions for compatibility with legacy code + with new flags: +
      +
    • + -fdec-structure + Support for DEC STRUCTURE and UNION +
    • +
    • + -fdec-intrinsic-ints + Support for new integer intrinsics with B/I/J/K prefixes such as + BABS, JIAND... +
    • +
    • + -fdec-math + Support for additional math intrinsics, including COTAN and + degree-valued trigonometric functions such as TAND, + ASIND... +
    • +
    • + -fdec + Enable the -fdec-* family of extensions. +
    • +
    +
  • + +
  • + New flag -finit-derived to allow default initialization of + derived-type variables. +
  • + +
  • + Improved DO loops with step equal to 1 or -1, generates faster + code without a loop preheader. A new warning, -Wundefined-do-loop, + warns when a loop iterates either to HUGE(i) (with step equal + to 1), or to -HUGE(i) (with step equal to -1). Invalid behavior + can be caught at run time with -fcheck=do enabled: +
    +program test
    +  implicit none
    +  integer(1) :: i
    +  do i = -HUGE(i)+10, -HUGE(i)-1, -1
    +    print *, i
    +  end do
    +end program test
    +
    +At line 8 of file do_check_12.f90
    +Fortran runtime error: Loop iterates infinitely
    +
  • +
  • Version 4.5 of the OpenMP specification is now partially supported also in the + Fortran compiler; the largest missing item is structure element + mapping.
  • + +
  • User-defined derived-type input/output (UDTIO) is added.
  • + +
  • Derived type coarrays with allocable and pointer components + is partially supported.
  • + +
  • Non-constant stop codes and error stop codes (Fortran 2015 feature).
  • + +
  • Derived types with allocatable components of recursive type.
  • + +
  • Intrinsic assignment to polymorphic variables.
  • + +
  • Improved submodule support.
  • + +
  • Improved diagnostics (polymorphic results in pure functions).
  • +
+ +

Go

+
    +
  • GCC 7 provides a complete implementation of the Go 1.8.1 + user packages.
  • + +
  • Compared to the Go 1.8.1 toolchain, the garbage collector is more + conservative and less concurrent.
  • + +
  • Escape analysis is available for experimental use via + the -fgo-optimize-allocs option. + The -fgo-debug-escape prints information useful for + debugging escape analysis choices.
  • + +
+ +

Java (GCJ)

+ +

The GCC Java frontend and associated libjava runtime library have been +removed from GCC.

+ + +

libgccjit

+ +

The libgccjit API gained support for marking calls as requiring +tail-call optimization via a new entrypoint: +gcc_jit_rvalue_set_bool_require_tail_call.

+ +

libgccjit performs numerous checks at the API boundary, but +if these succeed, it previously ignored errors and other diagnostics emitted +within the core of GCC, and treated the compile of a gcc_jit_context +as having succeeded. As of GCC 7 it now ensures that if any diagnostics are +emitted, they are visible from the libgccjit API, and that the the context is +flagged as having failed.

+ + +

New Targets and Target Specific Improvements

+ +

AArch64

+
    +
  • + The ARMv8.3-A architecture is now supported. It can be used by + specifying the -march=armv8.3-a option. +
  • +
  • + The option -msign-return-address= is supported to enable + return address protection using ARMv8.3-A Pointer Authentication + Extensions. For more information on the arguments accepted by this + option, please refer to + + AArch64-Options. +
  • +
  • + The ARMv8.2-A architecture and the ARMv8.2-A 16-bit Floating-Point + Extensions are now supported. They can be used by specifying the + -march=armv8.2-a or -march=armv8.2-a+fp16 + options. + The 16-bit Floating-Point Extensions introduce new half-precision data + processing floating-point instructions. +
  • +
  • + Support has been added for the following processors + (GCC identifiers in parentheses): + ARM Cortex-A73 (cortex-a73), + Broadcom Vulcan (vulcan), + Cavium ThunderX CN81xx (thunderxt81), + Cavium ThunderX CN83xx (thunderxt83), + Cavium ThunderX CN88xx (thunderxt88), + Cavium ThunderX CN88xx pass 1.x (thunderxt88p1), + Cavium ThunderX 2 CN99xx (thunderx2t99), + Qualcomm Falkor (falkor). + The GCC identifiers can be used + as arguments to the -mcpu or -mtune options, + for example: -mcpu=cortex-a73 or + -mtune=vulcan or as arguments to the equivalent target + attributes and pragmas. +
  • +
+ +

ARC

+
    +
  • + Add support for ARC HS and ARC EM processors. +
  • +
  • + Add support for ARC EM variation found in Intel QuarkSE SoCs. +
  • +
  • + Add support for NPS400 ARC700 based CPUs. +
  • +
  • + Thread Local Storage is now supported by ARC CPUs. +
  • +
  • + Fix errors for ARC600 when using 32x16 multiplier option. +
  • +
  • + Fix PIE for ARC CPUs. +
  • +
  • + New CPU templates are supported via multilib. +
  • +
+ +

ARM

+
    +
  • + Support for the ARMv5 and ARMv5E architectures has been deprecated + (which have no known implementations) and will be removed in a future + GCC release. Note that ARMv5T, ARMv5TE and ARMv5TEJ architectures + remain supported. + The values armv5 and armv5e of + -march are thus deprecated. +
  • +
  • + The ARMv8.2-A architecture and the ARMv8.2-A 16-bit Floating-Point + Extensions are now supported. They can be used by specifying the + -march=armv8.2-a or -march=armv8.2-a+fp16 + options. + The 16-bit Floating-Point Extensions introduce new half-precision data + processing floating-point instructions. +
  • +
  • + The ARMv8-M architecture is now supported in its two architecture + profiles: ARMv8-M Baseline and ARMv8-M Mainline with its DSP and + Floating-Point Extensions. They can be used by specifying the + -march=armv8-m.base, armv8-m.main or + armv8-m.main+dsp options. +
  • +
  • + Support has been added for the following processors + (GCC identifiers in parentheses): ARM Cortex-A73 + (cortex-a73), ARM Cortex-M23 (cortex-m23) and + ARM Cortex-M33 (cortex-m33). + The GCC identifiers can be used + as arguments to the -mcpu or -mtune options, + for example: -mcpu=cortex-a73 or + -mtune=cortex-m33. +
  • +
  • + A new command-line option -mpure-code has been added. + It does not allow constant data to be placed in code sections. + This option is only available when generating non-pic code for ARMv7-M + targets. +
  • +
  • + Support for the ACLE Coprocessor Intrinsics has been added. This enables + the generation of coprocessor instructions through the use of intrinsics + such as cdp, ldc, and others. +
  • +
  • + The configure option --with-multilib-list now accepts the + value rmprofile to build multilib libraries for a range of + embedded targets. See our + installation + instructions for details. +
  • +
+ +

AVR

+
    +
  • On the reduced Tiny cores, the progmem + variable + attribute + is now properly supported. Respective read-only variables are located + in flash memory in section .progmem.data. No special + code is needed to access such variables; the compiler automatically + adds an offset of 0x4000 to all addresses, which is needed + to access variables in flash memory. As opposed to ordinary cores + where it is sufficient to specify the progmem attribute + with definitions, on the reduced Tiny cores the attribute also has to + be specified with (external) declarations: +
    +extern const int array[] __attribute__((__progmem__));
    +
    +int get_value2 (void)
    +{
    +  /* Access via addresses array + 0x4004 and array + 0x4005. */
    +  return array[2];
    +}
    +
    +const int* get_address (unsigned idx)
    +{
    +  /* Returns array + 0x4000 + 2 * idx. */
    +  return &array[idx];
    +}
  • +
  • A new command-line option -Wmisspelled-isr has been added. + It turns off — or turns into errors — + warnings that are reported for interrupt service routines (ISRs) + which don't follow AVR-LibC's naming convention of prefixing + ISR names with __vector.
  • +
  • __builtin_avr_nops(n) is a new + built-in + function + that inserts n NOP instructions into + the instruction stream. n must be a value known at + compile time.
  • +
+ + + +

IA-32/x86-64

+
    +
  • Support for the AVX-512 Fused Multiply Accumulation Packed Single precision + (4FMAPS), AVX-512 Vector Neural Network Instructions Word variable precision + (4VNNIW), AVX-512 Vector Population Count (VPOPCNTDQ) and Software + Guard Extensions (SGX) ISA extensions has been added.
  • +
+ + + + + + + + + +

NVPTX

+
    +
  • OpenMP target regions can now be offloaded to NVidia PTX GPGPUs. + See the Offloading Wiki + on how to configure it.
  • +
+ +

PowerPC / PowerPC64 / RS6000

+
    +
  • The PowerPC port now uses LRA by default.
  • +
  • GCC now diagnoses inline assembly that clobbers register r2. + This has always been invalid code, and is no longer quietly + tolerated.
  • +
  • The PowerPC port's support for ISA 3.0 (-mcpu=power9) + has been enhanced to generate more of the new instructions by default, and + to provide more built-in functions to generate code for other new + instructions.
  • +
  • The configuration option --enable-gnu-indirect-function + is now enabled by default on PowerPC GNU/Linux builds.
  • +
  • The PowerPC port will now allow 64-bit and 32-bit integer types to be + allocated to the VSX vector registers (ISA 2.06 and above). In addition, + on ISA 3.0, 16-bit and 8-bit integer types can be allocated in the vector + registers. Previously, only 64-bit integer types were allowed in the + traditional floating point registers.
  • +
  • New options -mstack-protector-guard=global, + -mstack-protector-guard=tls, + -mstack-protector-guard-reg=, and + -mstack-protector-guard-offset= change how the stack + protector gets the value to use as canary.
  • +
+ + + +

RISC-V

+
    +
  • Support for the RISC-V instruction set has been added.
  • +
+ + + + + +

SPARC

+
    +
  • The SPARC port now uses LRA by default.
  • +
  • Support for the new Subtract-Extended-with-Carry instruction + available in SPARC M7 (Niagara 7) has been added.
  • +
+ + +

Operating Systems

+ +

AIX

+
    +
  • Visibility support has been enabled for AIX 7.1 and above.
  • +
+ +

Fuchsia

+
    +
  • Support has been added for the + Fuchsia OS.
  • +
+ + + + + + + +

RTEMS

+
    +
  • The ABI changes on ARM so that no short enums are used by default.
  • +
+ + + + + + + + + + + +

Other significant improvements

+
    +
  • -fverbose-asm previously emitted information on the + meanings of assembly expressions. This has been extended so that + it now also prints comments showing the source lines that correspond + to the assembly, making it easier to read the generated assembly + (especially with larger functions). + For example, given this C source file: +
    +int test (int n)
    +{
    +  int i;
    +  int total = 0;
    +
    +  for (i = 0; i < n; i++)
    +    total += i * i;
    +  return total;
    +}
    +
    + -fverbose-asm now gives output similar to this for + the function body (when compiling for x86_64, with + -Os): +
    +       .text
    +       .globl  test
    +       .type   test, @@function
    +test:
    +.LFB0:
    +       .cfi_startproc
    +# example.c:4:   int total = 0;
    +       xorl    %eax, %eax      # <retval>
    +# example.c:6:   for (i = 0; i < n; i++)
    +       xorl    %edx, %edx      # i
    +.L2:
    +# example.c:6:   for (i = 0; i < n; i++)
    +       cmpl    %edi, %edx      # n, i
    +       jge     .L5     #,
    +# example.c:7:     total += i * i;
    +       movl    %edx, %ecx      # i, tmp92
    +       imull   %edx, %ecx      # i, tmp92
    +# example.c:6:   for (i = 0; i < n; i++)
    +       incl    %edx    # i
    +# example.c:7:     total += i * i;
    +       addl    %ecx, %eax      # tmp92, <retval>
    +       jmp     .L2     #
    +.L5:
    +# example.c:10: }
    +       ret
    +       .cfi_endproc
    +
  • +
  • Two new options have been added for + printing fix-it hints: +
      +
    • -fdiagnostics-parseable-fixits + allows for fix-it hints to be emitted in a machine-readable + form, suitable for consumption by IDEs. For example, given: +
      +spellcheck-fields.cc:52:13: error: 'struct s' has no member named 'colour'; did you mean 'color'?
      +   return ptr->colour;
      +               ^~~~~~
      +               color
      +
      +it will emit: +
      +fix-it:"spellcheck-fields.cc":{52:13-52:19}:"color"
      +
    • +
    • -fdiagnostics-generate-patch will print + a patch in "unified" format after any diagnostics are printed, + showing the result of applying all fix-it hints. For the above + example it would emit: +
      +--- spellcheck-fields.cc
      ++++ spellcheck-fields.cc
      +@@ -49,5 +49,5 @@
      +
      + color get_color(struct s *ptr)
      + {
      +-  return ptr->colour;
      ++  return ptr->color;
      + }
      +
  • +
  • The gcc and g++ driver programs will now + provide suggestions for misspelled arguments to command-line options. +
    +$ gcc -c test.c -ftls-model=global-dinamic
    +gcc: error: unknown TLS model 'global-dinamic'
    +gcc: note: valid arguments to '-ftls-model=' are: global-dynamic initial-exec local-dynamic local-exec; did you mean 'global-dynamic'?
    +
  • +
  • The compiler will now provide suggestions for misspelled parameters. +
    +$ gcc -c test.c --param max-early-inliner-iteration=3 
    +cc1: error: invalid --param name 'max-early-inliner-iteration'; did you mean 'max-early-inliner-iterations'?
    +
  • + +
  • Profile-guided optimization (PGO) instrumentation, as well as test coverage (GCOV), + can newly instrument constructors (functions marks with __attribute__((constructor))), + destructors and C++ constructors (and destructors) of classes that are used + as a type of a global variable. +
  • +
  • A new option -fprofile-update=atomic prevents creation of corrupted + profiles created during instrumentation run (-fprofile=generate) + of an application. Downside of the option is a speed penalty. Providing + -pthread on command line would result in selection of atomic + profile updating (when supports by a target). +
  • +
  • +

    GCC's already extensive testsuite has gained some new + capabilities, to further improve the reliability of the compiler:

    +
      +
    • GCC now has has an internal unit testing API and a suite of tests + for programmatic self-testing of subsystems.
    • +
    • GCC's C frontend has been extended so that it can parse dumps of + GCC's internal representations, allowing for DejaGnu tests + that more directly exercise specific optimization passes. This + covers both the + + GIMPLE representation (for testing higher-level + optimizations) and the + + RTL representation, allowing for more direct testing of + lower-level details, such as register allocation and instruction + selection.
    • +
    +
  • +
+ + + + + + + + + + + + + + + + diff --git a/debian/README.Bugs.m4 b/debian/README.Bugs.m4 new file mode 100644 index 0000000..a2d1606 --- /dev/null +++ b/debian/README.Bugs.m4 @@ -0,0 +1,333 @@ +Reporting Bugs in the GNU Compiler Collection for DIST +======================================================== + +Before reporting a bug, please +------------------------------ + +- Check that the behaviour really is a bug. Have a look into some + ANSI standards document. + +- Check the list of well known bugs: http://gcc.gnu.org/bugs.html#known + +- Try to reproduce the bug with a current GCC development snapshot. You + usually can get a recent development snapshot from the gcc-snapshot +ifelse(DIST,`Debian',`dnl + package in the unstable (or experimental) distribution. + + See: http://packages.debian.org/gcc-snapshot +', DIST, `Ubuntu',`dnl + package in the current development distribution. + + See: http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-snapshot/ +')dnl + +- Try to find out if the bug is a regression (an older GCC version does + not show the bug). + +- Check if the bug is already reported in the bug tracking systems. + +ifelse(DIST,`Debian',`dnl + Debian: http://bugs.debian.org/debian-gcc@lists.debian.org +', DIST, `Ubuntu',`dnl + Ubuntu: https://bugs.launchpad.net/~ubuntu-toolchain/+packagebugs + Debian: http://bugs.debian.org/debian-gcc@lists.debian.org +')dnl + Upstream: http://gcc.gnu.org/bugzilla/ + + +Where to report a bug +--------------------- + +ifelse(DIST,`Debian',`dnl +Please report bugs found in the packaging of GCC to the Debian bug tracking +system. See http://www.debian.org/Bugs/ for instructions (or use the +reportbug script). +', DIST, `Ubuntu',`dnl +Please report bugs found in the packaging of GCC to Launchpad. See below +how issues should be reported. +')dnl + +DIST's current policy is to closely follow the upstream development and +only apply a minimal set of patches (which are summarized in the README.Debian +document). + +ifelse(DIST,`Debian',`dnl +If you think you have found an upstream bug, you did check the section +above ("Before reporting a bug") and are able to provide a complete bug +report (see below "How to report a bug"), then you may help the Debian +GCC package maintainers, if you report the bug upstream and then submit +a bug report to the Debian BTS and tell us the upstream report number. +This way you are able to follow the upstream bug handling as well. If in +doubt, report the bug to the Debian BTS (but read "How to report a bug" +below). +', DIST, `Ubuntu',`dnl +If you think you have found an upstream bug, you did check the section +above ("Before reporting a bug") and are able to provide a complete bug +report (see below "How to report a bug"), then you may help the Ubuntu +GCC package maintainers, if you report the bug upstream and then submit +a bug report to Launchpad and tell us the upstream report number. +This way you are able to follow the upstream bug handling as well. If in +doubt, report the bug to Launchpad (but read "How to report a bug" below). + +Report the issue to https://bugs.launchpad.net/ubuntu/+source/SRCNAME. +')dnl + + +How to report a bug +------------------- + +There are complete instructions in the gcc info manual (found in the +gcc-doc package), section Bugs. + +The manual can be read using `M-x info' in Emacs, or if the GNU info +program is installed on your system by `info --node "(gcc)Bugs"'. Or see +the file BUGS included with the gcc source code. + +Online bug reporting instructions can be found at + + http://gcc.gnu.org/bugs.html + +[Some paragraphs taken from the above URL] + +The main purpose of a bug report is to enable us to fix the bug. The +most important prerequisite for this is that the report must be +complete and self-contained, which we explain in detail below. + +Before you report a bug, please check the list of well-known bugs and, +if possible in any way, try a current development snapshot. + +Summarized bug reporting instructions +------------------------------------- + +What we need + +Please include in your bug report all of the following items, the +first three of which can be obtained from the output of gcc -v: + + * the exact version of GCC; + * the system type; + * the options given when GCC was configured/built; + * the complete command line that triggers the bug; + * the compiler output (error messages, warnings, etc.); and + * the preprocessed file (*.i*) that triggers the bug, generated by + adding -save-temps to the complete compilation command, or, in + the case of a bug report for the GNAT front end, a complete set + of source files (see below). + +What we do not want + + * A source file that #includes header files that are left out + of the bug report (see above) + * That source file and a collection of header files. + * An attached archive (tar, zip, shar, whatever) containing all + (or some :-) of the above. + * A code snippet that won't cause the compiler to produce the + exact output mentioned in the bug report (e.g., a snippet with + just a few lines around the one that apparently triggers the + bug, with some pieces replaced with ellipses or comments for + extra obfuscation :-) + * The location (URL) of the package that failed to build (we won't + download it, anyway, since you've already given us what we need + to duplicate the bug, haven't you? :-) + * An error that occurs only some of the times a certain file is + compiled, such that retrying a sufficient number of times + results in a successful compilation; this is a symptom of a + hardware problem, not of a compiler bug (sorry) + * E-mail messages that complement previous, incomplete bug + reports. Post a new, self-contained, full bug report instead, if + possible as a follow-up to the original bug report + * Assembly files (*.s) produced by the compiler, or any binary files, + such as object files, executables, core files, or precompiled + header files + * Duplicate bug reports, or reports of bugs already fixed in the + development tree, especially those that have already been + reported as fixed last week :-) + * Bugs in the assembler, the linker or the C library. These are + separate projects, with separate mailing lists and different bug + reporting procedures + * Bugs in releases or snapshots of GCC not issued by the GNU + Project. Report them to whoever provided you with the release + * Questions about the correctness or the expected behavior of + certain constructs that are not GCC extensions. Ask them in + forums dedicated to the discussion of the programming language + + +Known Bugs and Non-Bugs +----------------------- + +[Please see /usr/share/doc/gcc/FAQ or http://gcc.gnu.org/faq.html first] + + +C++ exceptions don't work with C libraries +------------------------------------------ + +[Taken from the closed bug report #22769] C++ exceptions don't work +with C libraries, if the C code wasn't designed to be thrown through. +A solution could be to translate all C libraries with -fexceptions. +Mostly trying to throw an exception in a callback function (qsort, +Tcl command callbacks, etc ...). Example: + + #include + #include + + class A {}; + + static + int SortCondition(void const*, void const*) + { + printf("throwing 'sortcondition' exception\n"); + throw A(); + } + + int main(int argc, char *argv[]) + { + int list[2]; + + try { + SortCondition(NULL,NULL); + } catch (A) { + printf("caught test-sortcondition exception\n"); + } + try { + qsort(&list, sizeof(list)/sizeof(list[0]),sizeof(list[0]), + &SortCondition); + } catch (A) { + printf("caught real-sortcondition exception\n"); + } + return 0; +} + +Andrew Macleod responded: + +When compiled with the table driven exception handling, exception can only +be thrown through functions which have been compiled with the table driven EH. +If a function isn't compiled that way, then we do not have the frame +unwinding information required to restore the registers when unwinding. + +I believe the setjmp/longjmp mechanism will throw through things like this, +but its produces much messier code. (-fsjlj-exceptions) + +The C compiler does support exceptions, you just have to turn them on +with -fexceptions. + +Your main options are to: + a) Don't use callbacks, or at least don't throw through them. + b) Get the source and compile the library with -fexceptions (You have to + explicitly turn on exceptions in the C compiler) + c) always use -fsjlj-exceptions (boo, bad choice :-) + + +g++: "undefined reference" to static const array in class +--------------------------------------------------------- + +The following code compiles under GNU C++ 2.7.2 with correct results, +but produces the same linker error with GNU C++ 2.95.2. +Alexandre Oliva responded: + +All of them are correct. A static data member *must* be defined +outside the class body even if it is initialized within the class +body, but no diagnostic is required if the definition is missing. It +turns out that some releases do emit references to the missing symbol, +while others optimize it away. + +#include + +class Test +{ + public: + Test(const char *q); + protected: + static const unsigned char Jam_signature[4] = "JAM"; +}; + +Test::Test(const char *q) +{ + if (memcmp(q, Jam_signature, sizeof(Jam_signature)) != 0) + cerr << "Hello world!\n"; +} + +int main(void) +{ + Test::Test("JAM"); + return 0; +} + +g++: g++ causes passing non const ptr to ptr to a func with const arg + to cause an error (not a bug) +--------------------------------------------------------------------- + +Example: + +#include +void test(const char **b){ + printf ("%s\n",*b); +} +int main(void){ + char *test1="aoeu"; + test(&test1); +} + +make const +g++ const.cc -o const +const.cc: In function `int main()': +const.cc:7: passing `char **' as argument 1 of `test(const char **)' adds cv-quals without intervening `const' +make: *** [const] Error 1 + +Answer from "Martin v. Loewis" : + +> ok... maybe I missed something.. I haven't really kept up with the latest in +> C++ news. But I've never heard anything even remotly close to passing a non +> const var into a const arg being an error before. + +Thanks for your bug report. This is a not a bug in the compiler, but +in your code. The standard, in 4.4/4, puts it that way + +# A conversion can add cv-qualifiers at levels other than the first in +# multi-level pointers, subject to the following rules: +# Two pointer types T1 and T2 are similar if there exists a type T and +# integer n > 0 such that: +# T1 is cv(1,0) pointer to cv(1,1) pointer to ... cv(1,n-1) +# pointer to cv(1,n) T +# and +# T2 is cv(2,0) pointer to cv(2,1) pointer to ... cv(2,n-1) +# pointer to cv(2,n) T +# where each cv(i,j) is const, volatile, const volatile, or +# nothing. The n-tuple of cv-qualifiers after the first in a pointer +# type, e.g., cv(1,1) , cv(1,2) , ... , cv(1,n) in the pointer type +# T1, is called the cv-qualification signature of the pointer type. An +# expression of type T1 can be converted to type T2 if and only if the +# following conditions are satisfied: +# - the pointer types are similar. +# - for every j > 0, if const is in cv(1,j) then const is in cv(2,j) , +# and similarly for volatile. +# - if the cv(1,j) and cv(2,j) are different, then const is in every +# cv(2,k) for 0 < k < j. + +It is the last rule that your code violates. The standard gives then +the following example as a rationale: + +# [Note: if a program could assign a pointer of type T** to a pointer +# of type const T** (that is, if line //1 below was allowed), a +# program could inadvertently modify a const object (as it is done on +# line //2). For example, +# int main() { +# const char c = 'c'; +# char* pc; +# const char** pcc = &pc; //1: not allowed +# *pcc = &c; +# *pc = 'C'; //2: modifies a const object +# } +# - end note] + +If you question this line of reasoning, please discuss it in one of +the public C++ fora first, eg. comp.lang.c++.moderated, or +comp.std.c++. + + +cpp removes blank lines +----------------------- + +With the new cpp, you need to add -traditional to the "cpp -P" args, else +blank lines get removed. + +[EDIT ME: scan Debian bug reports and write some nice summaries ...] diff --git a/debian/README.C++ b/debian/README.C++ new file mode 100644 index 0000000..8cc40f8 --- /dev/null +++ b/debian/README.C++ @@ -0,0 +1,35 @@ +libstdc++ is an implementation of the Standard C++ Library, including the +Standard Template Library (i.e. as specified by ANSI and ISO). + +Some notes on porting applications from libstdc++-2.90 (or earlier versions) +to libstdc++-v3 can be found in the libstdc++6-4.3-doc package. After the +installation of the package, look at: + + file:///usr/share/doc/gcc-4.3-base/libstdc++/html/17_intro/porting-howto.html + +On Debian GNU/Linux you find additional documentation in the +libstdc++6-4.3-doc package. After installing these packages, +point your browser to + + file:///usr/share/doc/libstdc++6-4.3-doc/libstdc++/html/index.html + +Other documentation can be found: + + http://www.sgi.com/tech/stl/ + +with a good, recent, book on C++. + +A great deal of useful C++ documentation can be found in the C++ FAQ-Lite, +maintained by Marshall Cline . It can be found at the +mirror sites linked from the following URL (this was last updated on +2010/09/11): + + http://www.parashift.com/c++-faq/ + +or use some search engin site to find it, e.g.: + + http://www.google.com/search?q=c%2B%2B+faq+lite + +Be careful not to use outdated mirors. + +Please send updates to this list as bug report for the g++ package. diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 0000000..b2275d4 --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,45 @@ + The Debian GNU Compiler Collection setup + ======================================== + +Please see the README.Debian in /usr/share/doc/gcc, contained in the +gcc package for a description of the setup of the different compiler +versions. + +For general discussion about the Debian toolchain (GCC, glibc, binutils) +please use the mailing list debian-toolchain@lists.debian.org; for GCC +specific things, please use debian-gcc@lists.debian.org. When in doubt +use the debian-toolchain ML. + + +Maintainers of these packages +----------------------------- + +Matthias Klose +Ludovic Brenta (gnat) +Iain Buclaw (gdc) +Aurelien Jarno (mips*-linux) +Aurelien Jarno (s390X*-linux) + +The following ports lack maintenance in Debian: powerpc, ppc64, +sparc, sparc64 (unmentioned ports are usually handled by the Debian +porters). + +Former and/or inactive maintainers of these packages +---------------------------------------------------- + +Falk Hueffner (alpha-linux) +Ray Dassen +Jeff Bailey (hurd-i386) +Joel Baker (netbsd-i386) +Randolph Chung (ia64-linux) +Philip Blundell (arm-linux) +Ben Collins (sparc-linux) +Dan Jacobowitz (powerpc-linux) +Thiemo Seufer (mips*-linux) +Matt Taggart (hppa-linux) +Gerhard Tonn (s390-linux) +Roman Zippel (m68k-linux) +Arthur Loiret (gdc) + +=============================================================================== + diff --git a/debian/README.cross b/debian/README.cross new file mode 100644 index 0000000..a91829e --- /dev/null +++ b/debian/README.cross @@ -0,0 +1,144 @@ +Building cross-compiler Debian packages +--------------------------------------- + +It is possible to build C and C++ cross compilers and support libraries +from gcc-4.0 source package. This document describes how to do so. +Cross-compiler build support is not perfect yet, please send fixes +and improvements to debian-gcc@lists.debian.org and +debian-embedded@lists.debian.org + +Before you start, you should probably check available pre-built +cross-toolchain debs. Available at http://www.emdebian.org + +Old patches could be reached at + http://zigzag.lvk.cs.msu.su/~nikita/debian/ + +If they are no longer there, you may check EmDebian web site at + http://www.emdebian.org/ +or ask debian-embedded@lists.debian.org for newer location. + +Please check http://bugs.debian.org/391445 if you are about building +gcc-4.3 or above. + +Most of them has been merged with gcc debian sources. + +0. What's wrong with toolchain-source approach + +Package toolchain-source contains sources for binutils and gcc, as well as +some support scripts to build cross-compiler packages. They seem to work. + +However, there is one fundamental problem with this approach. +Gcc package is actively maintained and frequently updated. These updates +do contain bug fixes and improvements, especially for non-x86 architectures. +Cross-compilers built using toolchain-source will not get those fixes unless +toolchain-source package is updated after each binutils and gcc update. +The later is not hapenning in real life. For example, toolchain-source +was upgraded from gcc-3.2 to gcc-3.3 half a year later than gcc-3.3 became +Debian default compiler. + +Keeping toolchain-source package up-to-date requires lots of work, and seems +to be a waste of time. It is much better to build cross-compilers directly +from gcc source package. + + +1. What is needed to build a cross-compiler from gcc-4.3 source + +1.1. dpkg-cross package + +Dpkg-cross package contains several tools to manage cross-compile environment. + +It can convert native debian library and lib-dev packages for the target +architecture to binary-all packages that keep libraries and headers under +/usr/$(TARGET)/. + +Also it contains helper tools for cross-compiling debian packages. Some of +these tools are used while building libgcc1 and libstdc++ library packages. +The resulting library packages follow the same convensions as library packages +converted by dpkg-cross. + +Currently, at least version 1.18 of dpkg-cross is needed for cross-gcc +package build. Version 1.32 of dpkg-cross is needed in order to build gcc-4.3. + +1.2. cross-binutils for the target + +You need cross-binutils for your target to build cross-compiler. +Binutils-multiarch package will not work because it does not provide cross- +assemblers. + +If you don't want to use pre-built cross-binutils packages, you may build +your own from binutils debian source package, using patches posted to +bug #231707. Please use the latest of patch versions available there. + +Alternatively, you may use toolchain-source package to build cross-binutils +(but in this case you will probably also want to use toolchain-source +to build cross-compiler itself). However, multilib'ed cross-compilers may +not build or work with these binutils. + +1.3. libc for target + +You also need libc library and development packages for the target +architecture installed. + +To get those, download linux-kernel-headers, libc6, and libc6-dev binary +debs for your target, convert those using dpkg-cross -b, and install +resulting -arch-cross debs. Consult dpkg-cross manual page for more +information. + +Building with/for alternative libc's is not supported yet (but this is in +TODO). + +Note that if you plan to use your cross-toolchain to develop kernel drivers +or similar low-level things, you will probably also need kernel headers +for the exact kernel version that your target hardware uses. + + +2. Building cross-compiler packages + +Get gcc-4.3 source package. + +Unpack it using dpkg-source -x, and cd to the package directory. + +Set GCC_TARGET environment variable to the target architectire name. Note +that currently you should use debian architecture name (i.e 'powerpc' or 'arm'), +not GNU system type (i.e. 'powerpc-linux' or 'arm-linux'). Setting GCC_TARGET +to GNU system type will cause cross-compiler build to fail. + +Instead of setting GCC_TARGET, target architecture name may be put into +debian/target file. If both GCC_TARGET is defined and debian/target file +exists, GCC_TARGET is used. + +Run debian/rules control. This will change debian/control file, +adjusting build-depends. By default, the packages will not depend on the +system -base package. A variable DEB_CROSS_INDEPENDENT has been merged with DEB_CROSS variable. + +You can then build with either + +$ GCC_TARGET=[arch] dpkg-buildpackage -rfakeroot + +3. Using crosshurd + +Jeff Bailey suggests alternate way to setup +environment to build cross-compiler, using 'crosshurd' package. +Crosshurd is like debootstrap but cross-arch, and works on the Hurd, +Linux and FreeBSD. (The name is historical). + +If you setup your environment with crosshurd, you will need to fix symlinks +in lib and usr/lib to be relative instead of absolute. For example: + +lrwxrwxrwx 1 root root 20 2004-05-06 23:02 libcom_err.so -> /lib/libcom_err.so.2 + +Needs to be changed to: + +lrwxrwxrwx 1 root root 20 2004-05-06 23:02 libcom_err.so -> ../../lib/libcom_err.so.2 + +Also, if you choose this method, set the environment variable 'with_sysroot' +to point to the ABSOLUTE PATH where the crosshurd was done. + +Note however that build-depends of cross-gcc and dependencies in generated +libgcc1 and libstdc++ packages assume that you use dpkg-cross to set up +your environment, and may be wrong or incomplete if you use alternate methods. +But probably you don't care. + +-- +Nikita V. Youshchenko - Jun 2004 +Hector Oron Martinez - Oct 2006 diff --git a/debian/README.gnat b/debian/README.gnat new file mode 100644 index 0000000..f352ce6 --- /dev/null +++ b/debian/README.gnat @@ -0,0 +1,35 @@ +If you want to develop Ada programs and libraries on Debian, please +read the Debian Policy for Ada: + +http://people.debian.org/~lbrenta/debian-ada-policy.html + +The default Ada compiler is and always will be the package `gnat'. +Debian contains many programs and libraries compiled with it, which +are all ABI-compatible. + +Starting with gnat-4.2, Debian provides both zero-cost and +setjump/longjump versions of the run-time library. The zero-cost +exception handling mechanism is the default as it provides the best +performance. The setjump/longjump exception handling mechanism is new +and only provided as a static library. It is necessary to use this +exception handling mechanism in distributed (annex E) programs. If +you wish to use the new sjlj library: + +1) call gnatmake with --RTS=sjlj +2) call gnatbind with -static + +Do NOT link your programs with libgnat-4.2.so, because it uses the ZCX +mechanism. + + +This package also includes small tools covering specific needs. + +* When linking objects compiled from both Ada and C sources, you need + to use compatible versions of the Ada and C compilers. The + /usr/bin/gnatgcc symbolic link targets a version of the C compiler + compatible with the default Ada compiler, and may differ from the + default C compiler /usr/bin/gcc. + +* When packaging Ada sources for Debian, you may want to read the + /usr/share/ada/debian_packaging.mk Makefile snippet and/or include + it from debian/rules in order to set sensible defaults. diff --git a/debian/README.libstdc++-baseline.in b/debian/README.libstdc++-baseline.in new file mode 100644 index 0000000..e771c16 --- /dev/null +++ b/debian/README.libstdc++-baseline.in @@ -0,0 +1,2 @@ +The libstdc++ baseline file is a list of symbols exported by the +libstdc++ library. diff --git a/debian/README.maintainers b/debian/README.maintainers new file mode 100644 index 0000000..9240455 --- /dev/null +++ b/debian/README.maintainers @@ -0,0 +1,190 @@ +-*- Outline -*- + +Read this file if you are a Debian Developer or would like to become +one, or if you would like to create your own binary packages of GCC. + +* Overview + +From the GCC sources, Debian currently builds 3 source packages and +almost 100 binary packages, using a single set of build scripts. The +3 source packages are: + +gcc-x.y: C, C++, Fortran, Objective-C and Objective-C++, plus many + common libraries like libssp and libgcc. +gnat-x.y: Ada. + +The way we do this is quite peculiar, so listen up :) + +When we build from the gcc-x.y source package, we produce, among many +others, a gcc-x.y-source binary package that contains the pristine +upstream tarball and some Debian-specific patches. Any user can then +install this package on their Debian system, and will have the full +souces in /usr/src/gcc-x.y/gcc-.tar.bz2, along with the +Makefile snippets that unpack and patch them. + +The intended use for this package is twofold: (a) allow users to build +their own cross-compilers, and (b) build the other packages like +gnat-x.y. + +- gcc-x.y requires only a C compiler to build and produces C, C++, + Fortran, Go and Objective-C compilers and libraries. It also + produces the binary package gcc-x.y-source containing all the + sources and patches in a tarball. + +- gnat-x.y build-depends on gcc-x.y-source and an Ada compiler. It + does not even have an .orig.tar.bz2 package; it is a Debian native + package. + +The benefits of this split are many: + +- bootstrapping a subset of languages is much faster than + bootstrapping all languages and libraries (which can take a full + week on slow architectures like mips or arm) + +- the language maintainers don't have to wait for each other + +- for new ports, the absence of a port of, say, gnat-x.y does not + block the porting of gcc-x.y. + +gcc-x.y-source is also intended for interested users to build +cross-compiler packages. Debian cannot provide all possible +cross-compiler packages (i.e. all possible host, target, language and +library combinations), so instead tries to facilitate building them. + +* The build sequence + +As for all other Debian packages, you build GCC by calling +debian/rules. + +The first thing debian/rules does it to look at the top-most entry in +debian/changelog: this tells it which source package it is building. +For example, if the first entry in debian/changelog reads: + +gnat-6 (6.2.0-1) unstable; urgency=low + + * Upload as gnat-6. + + -- Ludovic Brenta Tue, 26 Jun 2007 00:26:42 +0200 + +then, debian/rules will build only the gnat binary packages. + +The second step is to build debian/control from debian/control.m4 and +a complex set of rules specified in debian/rules.conf. The resulting +control file contains only the binary packages to be built. + +The third step is to select which patches to apply (this is done in +debian/rules.defs), and then to apply the selected patches (see +debian/rules.patch). The result of this step is a generated +debian/patches/series file for use by quilt. + +The fourth step is to unpack the GCC source tarball. This tarball is +either in the build directory (when building gcc-x.y), or in +/usr/src/gcc-x.y/gcc-x.y.z.tar.xz (when building the other source +packages). + +The fifth step is to apply all patches to the unpacked sources with +quilt. + +The sixth step is to create a "build" directory, cd into it, call +../src/configure, and bootstrap the compiler and libraries selected. +This is in debian/rules2. + +The seventh step is to call "make install" in the build directory: +this installs the compiler and libraries into debian/tmp +(i.e. debian/tmp/usr/bin/gcc, etc.) + +The eighth step is to run the GCC test suite. This actually takes at +least as much time as bootstrapping, and you can disable it by setting +WITHOUT_CHECK to "yes" in the environment. + +The ninth step is to build the binary packages, i.e. the .debs. This +is done by a set of language- and architecture-dependent Makefile +snippets in the debian/rules.d/ directory, which move files from the +debian/tmp tree to the debian/ trees. + +* Making your own packages + +In this example, we will build our own gnat-x.y package. + +1) Install gcc-x.y-source, which contains the real sources: + +# aptitude install gcc-x.y-source + +2) Create a build directory: + +$ mkdir gnat-x.y-x.y.z; cd gnat-x.y-x.y.z + +3) Checkout from Subversion: + +$ svn checkout svn://svn.debian.org/gcccvs/branches/sid/gcc-x.y/debian + +4) Edit the debian/changelog file, adding a new entry at the top that + starts with "gnat-x.y". + +5) Generate the debian/control file, adjusted for gnat: + +$ debian/rules control + +8) Build: + +$ dpkg-buildpackage + +* Hints + +You need a powerful machine to build GCC. The larger, the better. +The build scripts take advantage of as many CPU threads as are +available in your box (for example: 2 threads on a dual-core amd64; 4 +threads on a dual-core POWER5; 32 threads on an 8-core UltraSPARC T1, +etc.). + +If you have 2 GB or more of physical RAM, you can achieve maximum +performance by building in a tmpfs, like this: + +1) as root, create the new tmpfs: + +# mount -t tmpfs -o size=1280m none /home/lbrenta/src/debian/ram + +By default, the tmpfs will be limited to half your physical RAM. The +beauty of it is that it only consumes as much physical RAM as +necessary to hold the files in it; deleting files frees up RAM. + +2) As your regular user, create the working directory in the tmpfs + +$ cp --archive ~/src/debian/gcc-x.y-x.y.z ~/src/debian/ram + +3) Build in there. On my dual-core, 2 GHz amd64, it takes 34 minutes + to build gnat, and the tmpfs takes 992 MiB of physical RAM but + exceeds 1 GiB during the build. + +Note that the build process uses a lot of temporary files. Your $TEMP +directory should therefore also be in a ram disk. You can achieve +that either by mounting it as tmpfs, or by setting TEMP to point to +~/src/debian/ram. + +Also note that each thread in your processor(s) will run a compiler in +it and use up RAM. Therefore your physical memory should be: + +Physical_RAM >= 1.2 + 0.4 * Threads (in GiB) + +(this is an estimate; your mileage may vary). If you have less +physical RAM than recommended, reduce the number of threads allocated +to the build process, or do not use a tmpfs to build. + +* Patching GCC + +Debian applies a large number of patches to GCC as part of the build +process. It uses quilt but the necessary debian/patches/series is not +part of the packaging scripts; instead, "debian/rules patch" generates +this file by looking at debian/control (which is itself generated!), +debian/changelog and other files. Then it applies all the patches. +At this point, you can use quilt as usual: + +$ cd ~/src/debian/gcc-x.y +$ export QUILT_PATCHES=$PWD/debian/patches +$ quilt series + +If you add new patches, remember to add them to the version control +system too. + +-- +Ludovic Brenta, 2012-04-02. diff --git a/debian/README.snapshot b/debian/README.snapshot new file mode 100644 index 0000000..3e5be69 --- /dev/null +++ b/debian/README.snapshot @@ -0,0 +1,36 @@ +Debian gcc-snapshot package +=========================== + +This package contains a recent development SNAPSHOT of all files +contained in the GNU Compiler Collection (GCC). + +DO NOT USE THIS SNAPSHOT FOR BUILDING DEBIAN PACKAGES! + +This package will NEVER hit the testing distribution. It's used for +tracking gcc bugs submitted to the Debian BTS in recent development +versions of gcc. + +To use this snapshot, you should set the following environment variables: + + LD_LIBRARY_PATH=/usr/lib/gcc-snapshot/lib:$LD_LIBRARY_PATH + PATH=/usr/lib/gcc-snapshot/bin:$PATH + +You might also like to use a shell script to wrap up this +funcationality, e.g. + +place in /usr/local/bin/gcc-snapshot and chmod +x it + +----------- snip ---------- +#! /bin/sh +LD_LIBRARY_PATH=/usr/lib/gcc-snapshot/lib:$LD_LIBRARY_PATH +PATH=/usr/lib/gcc-snapshot/bin:$PATH +gcc "$@" +----------- snip ---------- + +Make the same for g++, g77, cpp, ... + +Don't forget the quotes around the $@ or gcc will not parse it's +command line correctly! + +Unset these variables before building Debian packages destined for an +upload to ftp-master.debian.org. diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..4eceda6 --- /dev/null +++ b/debian/README.source @@ -0,0 +1,16 @@ +Patches applied to the Debian version of GCC +-------------------------------------------- + +Debian specific patches can be found in the debian/patches directory. +Quilt is used as the patch system. See /usr/share/doc/quilt/README.source +for details about quilt. + +Patches are applied by calling `debian/rules patch'. The `series' +file is constructed on the fly based on the files found in the to +debian/rules.patch "debian_patches" variable, configure scripts are +regenerated in the `patch' target. The gcc source is unpacked under +src/ this needs to be reflected in the patch header. + +The source packages gdc-x.y and gnat-x.y do not contain copies of the +source code but build-depend on the appropriate gcc-x.y-source package +instead. diff --git a/debian/README.ssp b/debian/README.ssp new file mode 100644 index 0000000..9facca7 --- /dev/null +++ b/debian/README.ssp @@ -0,0 +1,28 @@ +Stack smashing protection is a feature of GCC that enables a program to +detect buffer overflows and immediately terminate execution, rather than +continuing execution with corrupt internal data structures. It uses +"canaries" and local variable reordering to reduce the likelihood of +stack corruption through buffer overflows. + +Options that affect stack smashing protection: + +-fstack-protector + Enables protection for functions that are vulnerable to stack + smashing, such as those that call alloca() or use pointers. + +-fstack-protector-all + Enables protection for all functions. + +-Wstack-protector + Warns about functions that will not be protected. Only active when + -fstack-protector has been used. + +Applications built with stack smashing protection should link with the +ssp library by using the option "-lssp" for systems with glibc-2.3.x or +older; glibc-2.4 and newer versions provide this functionality in libc. + +The Debian architectures alpha, hppa, ia64, m68k, mips, mipsel do not +have support for stack smashing protection. + +More documentation can be found at the project's website: +http://researchweb.watson.ibm.com/trl/projects/security/ssp/ diff --git a/debian/TODO b/debian/TODO new file mode 100644 index 0000000..4ce4b0b --- /dev/null +++ b/debian/TODO @@ -0,0 +1,46 @@ +(It is recommended to edit this file with emacs' todoo mode) +Last updated: 2008-05-02 + +* General + +- Clean up the sprawl of debian/rules. I'm sure there are neater + ways to do some of it; perhaps split it up into some more files? + Partly done. + +- Make debian/rules control build the control file without unpacking + the sources or applying patches. Currently, it unpacks the sources, + patches them, creates the control file, and a subsequent + dpkg-buildpackage deletes the sources, re-unpacks them, and + re-patches them. + +- Reorganise debian/rules.defs to decide which packages to build in a + more straightforward and less error-prone fashion: (1) start with + all languages; override the list of languages depending on the name + of the source package (gcc-4.3, gnat-4.3, gdc-4.3). (2) + filter the list of languages depending on the target platform; (3) + depending on the languages to build, decide on which libraries to + build. + +o [Ludovic Brenta] Ada + +- Done: Link the gnat tools with libgnat.so, instead of statically. + +- Done: Build libgnatvsn containing parts of the compiler (version + string, etc.) under GNAT-Modified GPL. Link the gnat tools with it. + +- Done: Build libgnatprj containing parts of the compiler (the project + manager) under pure GPL. Link the gnat tools with it. + +- Done: Build both the zero-cost and setjump/longjump exceptions + versions of libgnat. In particular, gnat-glade (distributed systems) + works best with SJLJ. + +- Done: Re-enable running the test suite. + +- Add support for building cross-compilers. + +- Add support for multilib (not yet supported upstream). + +* Fortran + +- gfortran man page generation diff --git a/debian/acats-killer.sh b/debian/acats-killer.sh new file mode 100644 index 0000000..29a2550 --- /dev/null +++ b/debian/acats-killer.sh @@ -0,0 +1,62 @@ +#! /bin/sh + +# on ia64 systems, the acats hangs in unaligned memory accesses. +# kill these testcases. + +pidfile=acats-killer.pid + +usage() +{ + echo >&2 "usage: `basename $0` [-p ] " + exit 1 +} + +while [ $# -gt 0 ]; do + case $1 in + -p) + pidfile=$2 + shift + shift + ;; + -*) + usage + ;; + *) + break + esac +done + +[ $# -eq 2 ] || usage + +logfile=$1 +stopfile=$2 +interval=30 + +echo $$ > $pidfile + +while true; do + if [ -f "$stopfile" ]; then + echo "`basename $0`: finished." + rm -f $pidfile + exit 0 + fi + sleep $interval + if [ ! -f "$logfile" ]; then + continue + fi + pids=$(ps aux | awk '/testsuite\/ada\/acats\/tests/ { print $2 }') + if [ -n "$pids" ]; then + sleep $interval + pids2=$(ps aux | awk '/testsuite\/ada\/acats\/tests/ { print $2 }') + if [ "$pids" = "$pids2" ]; then + #echo kill: $pids + kill $pids + sleep 1 + pids2=$(ps aux | awk '/testsuite\/ada\/acats\/tests/ { print $2 }') + if [ "$pids" = "$pids2" ]; then + #echo kill -9: $pids + kill -9 $pids + fi + fi + fi +done diff --git a/debian/ada/confirm_debian_bugs.py b/debian/ada/confirm_debian_bugs.py new file mode 100644 index 0000000..3c15a57 --- /dev/null +++ b/debian/ada/confirm_debian_bugs.py @@ -0,0 +1,980 @@ +#!/usr/bin/python2 + +# Helper when migrating bugs from a gnat version to another. + +from __future__ import print_function +import os.path +import re +import shutil +import subprocess +import tempfile + +os.environ ['LC_ALL'] = 'C' + +# If True, "reassign" -> "found" and "retitle" -> "fixed". +# Once the bug tracking system is informed, please update this boolean. +same_gcc_base_version = True + +# The current version. +new_version = "7" + +for line in subprocess.check_output (("dpkg", "--status", "gnat-" + new_version)).split ("\n"): + if line.startswith ("Version: "): + deb_version = line [len ("Version: "):] + break +# Will cause an error later if deb_version is not defined. + +# Each bug has its own subdirectory in WORKSPACE. +# Every bug subdir is removed if the bug is confirmed, +# and WORKSPACE is removed if empty. +workspace = tempfile.mkdtemp (suffix = "-gnat-" + deb_version + "-bugs") + +def attempt_to_reproduce (bug, make, sources): + tmp_dir = os.path.join (workspace, "bug{}".format (bug)) + os.mkdir (tmp_dir) + + for (name, contents) in sources: + with open (os.path.join (tmp_dir, name), "w") as f: + f.write (contents) + + path = os.path.join (tmp_dir, "stderr.log") + with open (path, "w") as e: + status = subprocess.call (make, stderr=e, cwd=tmp_dir) + with open (path, "r") as e: + stderr = e.read () + return tmp_dir, status, stderr + +def reassign_and_remove_dir (bug, tmp_dir): + if same_gcc_base_version: + print ("found {} {}".format (bug, deb_version)) + else: + print ("reassign {} {} {}".format (bug, "gnat-" + new_version, deb_version)) + shutil.rmtree (tmp_dir) + +def report (bug, message, output): + print ("# {}: {}.".format (bug, message)) + for line in output.split ("\n"): + print ("# " + line) + +def report_and_retitle (bug, message, output): + report (bug, message, output) + if same_gcc_base_version: + print ("fixed {} {}".format (bug, deb_version)) + else: + print ("retitle {} [Fixed in {}] ".format (bug, new_version)) + +def check_compiles_but_should_not (bug, make, sources): + tmp_dir, status, stderr = attempt_to_reproduce (bug, make, sources) + if status == 0: + reassign_and_remove_dir (bug, tmp_dir) + else: + report_and_retitle (bug, "now fails to compile (bug is fixed?)", stderr) + +def check_reports_an_error_but_should_not (bug, make, sources, regex): + tmp_dir, status, stderr = attempt_to_reproduce (bug, make, sources) + if status == 0: + report_and_retitle (bug, "now compiles (bug is fixed?)", stderr) + elif re.search (regex, stderr): + reassign_and_remove_dir (bug, tmp_dir) + else: + report (bug, "still fails to compile, but with a new stderr", stderr) + +def check_reports_error_but_forgets_one (bug, make, sources, regex): + tmp_dir, status, stderr = attempt_to_reproduce (bug, make, sources) + if status == 0: + report (bug, "now compiles (?)", stderr); + elif re.search (regex, stderr): + report_and_retitle (bug, "now reports the error (bug is fixed ?)", stderr) + else: + reassign_and_remove_dir (bug, tmp_dir) + +def check_produces_a_faulty_executable (bug, make, sources, regex, trigger): + tmp_dir, status, stderr = attempt_to_reproduce (bug, make, sources) + if status != 0: + report (bug, "cannot compile the trigger anymore", stderr) + else: + output = subprocess.check_output ((os.path.join (tmp_dir, trigger),), cwd=tmp_dir) + if re.search (regex, output): + reassign_and_remove_dir (bug, tmp_dir) + else: + report_and_retitle (bug, "output of the trigger changed (bug fixed?)", output) + +###################################################################### + +check_reports_an_error_but_should_not ( + bug = 244936, + make = ("gnatmake", "p"), + regex = 'p\.ads:3:25: "foo" is hidden within declaration of instance', + sources = ( + ("foo.ads", """generic +procedure foo; +"""), + ("foo.adb", """procedure foo is +begin + null; +end foo; +"""), ("p.ads", """with foo; +package p is + procedure FOO is new foo; -- OK +end p; +"""))) + +check_compiles_but_should_not ( + bug = 244970, + make = ("gnatmake", "pak5"), + sources = ( + ("pak1.ads", """generic +package pak1 is +end pak1; +"""), + ("pak1-pak2.ads", """generic +package pak1.pak2 is +end pak1.pak2; +"""), + ("pak5.ads", """with pak1.pak2; +generic + with package new_pak2 is new pak1.pak2; -- ERROR: illegal use of pak1 +package pak5 is +end pak5; +"""))) + +check_reports_an_error_but_should_not ( + bug = 246187, + make = ("gnatmake", "test_43"), + regex = "Error detected at system.ads:156:5", + sources = ( + ("test_43.ads", """package Test_43 is + type T1 is private; + +private + + type T2 is record + a: T1; + end record; + type T2_Ptr is access T2; + + type T1 is record + n: T2_Ptr := new T2; + end record; + +end Test_43; +"""),)) + +check_compiles_but_should_not ( + bug = 247013, + make = ("gnatmake", "test_53"), + sources = ( + ("test_53.ads", """generic + type T1 is private; +package Test_53 is + type T2 (x: integer) is new T1; -- ERROR: x not used +end Test_53; +"""),)) + +check_compiles_but_should_not ( + bug = 247017, + make = ("gnatmake", "test_59"), + sources = ( + ("test_59.adb", """procedure Test_59 is + + generic + type T1 (<>) is private; + procedure p1(x: out T1); + + procedure p1 (x: out T1) is + b: boolean := x'constrained; --ERROR: not a discriminated type + begin + null; + end p1; + +begin + null; +end Test_59; +"""),)) + +check_compiles_but_should_not ( + bug = 247018, + make = ("gnatmake", "test_60"), + sources = ( + ("pak1.ads", """package pak1 is + generic + package pak2 is + end pak2; +end pak1; +"""), + ("test_60.ads", """with pak1; +package Test_60 is + package PAK1 is new pak1.pak2; --ERROR: illegal reference to pak1 +end Test_60; +"""))) + +check_compiles_but_should_not ( + bug = 247019, + make = ("gnatmake", "test_61"), + sources = ( + ("test_61.adb", """procedure Test_61 is + procedure p1; + + generic + package pak1 is + procedure p2 renames p1; + end pak1; + + package new_pak1 is new pak1; + procedure p1 renames new_pak1.p2; --ERROR: circular renames +begin + p1; +end Test_61; +"""),)) + +check_produces_a_faulty_executable ( + bug = 247569, + make = ("gnatmake", "test_75"), + trigger = "test_75", + regex = "failed: wrong p1 called", + sources = ( + ("test_75.adb", """with text_io; +procedure Test_75 is + generic + package pak1 is + type T1 is null record; + end pak1; + + generic + with package A is new pak1(<>); + with package B is new pak1(<>); + package pak2 is + procedure p1(x: B.T1); + procedure p1(x: A.T1); + end pak2; + + package body pak2 is + + procedure p1(x: B.T1) is + begin + text_io.put_line("failed: wrong p1 called"); + end p1; + + procedure p1(x: A.T1) is + begin + text_io.put_line("passed"); + end p1; + + x: A.T1; + begin + p1(x); + end pak2; + + package new_pak1 is new pak1; + package new_pak2 is new pak2(new_pak1, new_pak1); -- (1) + +begin + null; +end Test_75; +"""),)) + +check_compiles_but_should_not ( + bug = 247570, + make = ("gnatmake", "test_76"), + sources = ( + ("test_76.adb", """procedure Test_76 is + + generic + procedure p1; + + pragma Convention (Ada, p1); + + procedure p1 is + begin + null; + end p1; + + procedure new_p1 is new p1; + pragma Convention (Ada, new_p1); --ERROR: new_p1 already frozen + +begin + null; +end Test_76; +"""),)) + +check_produces_a_faulty_executable ( + bug = 247571, + make = ("gnatmake", "test_77"), + trigger = "test_77", + regex = "failed: wrong p1 called", + sources = ( + ("pak.ads", """package pak is + procedure p1; + procedure p1(x: integer); + pragma export(ada, p1); +end pak; +"""), + ("pak.adb", """with text_io; use text_io; +package body pak is + procedure p1 is + begin + put_line("passed"); + end; + + procedure p1(x: integer) is + begin + put_line("failed: wrong p1 called"); + end; +end pak; +"""), + ("test_77.adb", """with pak; +procedure Test_77 is + procedure p1; + pragma import(ada, p1); +begin + p1; +end Test_77; +"""))) + +check_compiles_but_should_not ( + bug = 248166, + make = ("gnatmake", "test_82"), + sources = ( + ("test_82.adb", """procedure Test_82 is + package pak1 is + type T1 is tagged null record; + end pak1; + + package body pak1 is + -- type T1 is tagged null record; -- line 7 + + function "=" (x, y : T1'class) return boolean is -- line 9 + begin + return true; + end "="; + + procedure proc (x, y : T1'class) is + b : boolean; + begin + b := x = y; --ERROR: ambiguous "=" + end proc; + + end pak1; + +begin + null; +end Test_82; +"""),)) + +check_compiles_but_should_not ( + bug = 248168, + make = ("gnatmake", "test_84"), + sources = ( + ("test_84.adb", """procedure Test_84 is + package pak1 is + type T1 is abstract tagged null record; + procedure p1(x: in out T1) is abstract; + end pak1; + + type T2 is new pak1.T1 with null record; + + protected type T3 is + end T3; + + protected body T3 is + end T3; + + procedure p1(x: in out T2) is --ERROR: declared after body of T3 + begin + null; + end p1; + +begin + null; +end Test_84; +"""),)) + +check_compiles_but_should_not ( + bug = 248678, + make = ("gnatmake", "test_80"), + sources = ( + ("test_80.ads", """package Test_80 is + generic + type T1(<>) is private; + with function "=" (Left, Right : T1) return Boolean is <>; + package pak1 is + end pak1; + + package pak2 is + type T2 is abstract tagged null record; + package new_pak1 is new pak1 (T2'Class); --ERROR: no matching "=" + end pak2; +end Test_80; +"""),)) + +check_compiles_but_should_not ( + bug = 248680, + make = ("gnatmake", "test_90"), + sources = ( + ("test_90.adb", """procedure Test_90 is + type T1 is tagged null record; + + procedure p1 (x : access T1) is + b: boolean; + y: aliased T1; + begin + B := Y'Access = X; -- ERROR: no matching "=" +-- B := X = Y'Access; -- line 11: error detected + end p1; + +begin + null; +end Test_90; +"""),)) + +check_compiles_but_should_not ( + bug = 248681, + make = ("gnatmake", "test_91"), + sources = ( + ("test_91.adb", """-- RM 8.5.4(5) +-- ...the convention of the renamed subprogram shall not be +-- Intrinsic. +with unchecked_deallocation; +procedure Test_91 is + generic -- when non generic, we get the expected error + package pak1 is + type int_ptr is access integer; + procedure free(x: in out int_ptr); + end pak1; + + package body pak1 is + procedure deallocate is new + unchecked_deallocation(integer, int_ptr); + procedure free(x: in out int_ptr) renames + deallocate; --ERROR: renaming as body can't rename intrinsic + end pak1; +begin + null; +end Test_91; +"""),)) + +check_compiles_but_should_not ( + bug = 248682, + make = ("gnatmake", "main"), + sources = ( + ("main.adb", """-- RM 6.3.1(9) +-- The default calling convention is Intrinsic for ... an attribute +-- that is a subprogram; + +-- RM 8.5.4(5) +-- ...the convention of the renamed subprogram shall not be +-- Intrinsic. +procedure main is + package pak1 is + function f1(x: integer'base) return integer'base; + end pak1; + + package body pak1 is + function f1(x: integer'base) return integer'base renames + integer'succ; --ERROR: renaming as body can't rename intrinsic + end pak1; +begin + null; +end; +"""),)) + +check_reports_an_error_but_should_not ( + bug = 253737, + make = ("gnatmake", "test_4"), + regex = 'test_4.ads:.:01: "pak2" not declared in "pak1"', + sources = ( + ("parent.ads", """generic +package parent is +end parent; +"""), + ("parent-pak2.ads", """generic +package parent.pak2 is +end parent.pak2; +"""), + ("parent-pak2-pak3.ads", """generic +package parent.pak2.pak3 is +end parent.pak2.pak3; +"""), + ("parent-pak2-pak4.ads", """with parent.pak2.pak3; +generic +package parent.pak2.pak4 is + package pak3 is new parent.pak2.pak3; +end parent.pak2.pak4; +"""), + ("pak1.ads", """with parent; +package pak1 is new parent; +"""), + ("pak6.ads", """with parent.pak2; +with pak1; +package pak6 is new pak1.pak2; +"""), + ("test_4.ads", """with parent.pak2.pak4; +with pak6; +package Test_4 is new pak6.pak4; +"""))) + +check_compiles_but_should_not ( + bug = 269948, + make = ("gnatmake", "test_119"), + sources = ( + ("test_119.ads", """-- RM 3.9.3/11 A generic actual subprogram shall not be an abstract +-- subprogram. works OK if unrelated line (A) is commented out. +package Test_119 is + generic + with function "=" (X, Y : integer) return Boolean is <>; -- Removing this allows GCC to detect the problem. + package pak1 is + function "=" (X, Y: float) return Boolean is abstract; + generic + with function Equal (X, Y : float) return Boolean is "="; --ERROR: + package pak2 is + end pak2; + end pak1; + + package new_pak1 is new pak1; + package new_pak2 is new new_pak1.pak2; +end Test_119; +"""),)) + +check_compiles_but_should_not ( + bug = 269951, + make = ("gnatmake", "test_118"), + sources = ( + ("pak1.ads", """generic +package pak1 is +end pak1; +"""), + ("pak1-foo.ads", """generic +package pak1.foo is +end pak1.foo; +"""), + ("test_118.ads", """with pak1.foo; +package Test_118 is + package pak3 is + foo: integer; + end pak3; + use pak3; + + package new_pak1 is new pak1; + use new_pak1; + + x: integer := foo; -- ERROR: foo hidden by use clauses +end Test_118; +"""),)) + +# As long as 24:14 is detected, it inhibits detection of 25:21. +check_reports_error_but_forgets_one ( + bug = 276224, + make = ("gnatmake", "test_121"), + regex = "test_121\.adb:25:21: dynamically tagged expression not allowed", + sources = ( + ("test_121.adb", """-- If the expected type for an expression or name is some specific +-- tagged type, then the expression or name shall not be dynamically +-- tagged unless it is a controlling operand in a call on a +-- dispatching operation. +procedure Test_121 is + package pak1 is + type T1 is tagged null record; + function f1 (x1: T1) return T1; + end pak1; + + package body pak1 is + function f1 (x1: T1) return T1 is + begin + return x1; + end; + end pak1; + use pak1; + + type T2 is record + a1: T1; + end record; + + z0: T1'class := T1'(null record); + z1: T1 := f1(z0); -- ERROR: gnat correctly rejects + z2: T2 := (a1 => f1(z0)); -- ERROR: gnat mistakenly allows +begin + null; +end Test_121; +"""),)) + +check_reports_an_error_but_should_not ( + bug = 276227, + make = ("gnatmake", "test_124"), + regex = 'test_124\.ads:6:35: size for "T_arr_constrained" too small, minimum allowed is 256', + sources = ( + ("test_124.ads", """package Test_124 is + type T is range 1 .. 32; + type T_arr_unconstrained is array (T range <>) of boolean; + type T_arr_constrained is new T_arr_unconstrained (T); + pragma pack (T_arr_unconstrained); + for T_arr_constrained'size use 32; +end Test_124; +"""),)) + +check_reports_an_error_but_should_not ( + bug = 278687, + make = ("gnatmake", "test_127"), + regex = 'test_127\.adb:1.:21: expected type "T2" defined at line .', + sources = ( + ("test_127.ads", """-- The second parameter of T2'Class'Read is of type T2'Class, +-- which should match an object of type T3, which is derived +-- from T2. +package test_127 is + pragma elaborate_body; +end test_127; +"""), + ("test_127.adb", """with ada.streams; +package body test_127 is + type T1 is access all ada.streams.root_stream_type'class; + type T2 is tagged null record; + type T3 is new T2 with null record; + + x: T1; + y: T3; +begin + T2'class'read(x, y); +end test_127; +"""))) + +check_compiles_but_should_not ( + bug = 278831, + make = ("gnatmake", "test_128"), + sources = ( + ("test_128.ads", """package Test_128 is + package inner is + private + type T1; + end inner; + type T1_ptr is access inner.T1; -- line 9 ERROR: gnat mistakenly accepts +end Test_128; +"""), + ("test_128.adb", """package body test_128 is + package body inner is + type T1 is new Integer; + end inner; +end Test_128; +"""))) + +# Note that we also check the absence of the next inhibited message. +check_reports_an_error_but_should_not ( + bug = 279893, + make = ("gnatmake", "test_129"), + regex = """^gcc-[0-9.]+ -c test_129\.ads +test_129\.ads:1.:49: designated type of actual does not match that of formal "T2" +test_129\.ads:1.:49: instantiation abandoned +gnatmake: "test_129\.ads" compilation error$""", + sources = ( + ("pak1.ads", """-- legal instantiation rejected; illegal instantiation accepted +-- adapted from John Woodruff c.l.a. post + +generic + type T1 is private; +package pak1 is + subtype T3 is T1; +end pak1; +"""), + ("pak2.ads", """with pak1; +generic + type T2 is private; +package pak2 is + package the_pak1 is new pak1 (T1 => T2); +end pak2; +"""), + ("pak2-pak3.ads", """generic + type T2 is access the_pak1.T3; +package pak2.pak3 is +end pak2.pak3; +"""), + ("test_129.ads", """with pak1; +with pak2.pak3; +package Test_129 is + + type T4 is null record; + type T5 is null record; + subtype T3 is T5; -- line 9: triggers the bug at line 16 + + type T4_ptr is access T4; + type T5_ptr is access T5; + + package new_pak2 is new pak2 (T2 => T4); + package new_pak3a is new new_pak2.pak3(T2 => T4_ptr); -- line 15: Legal + package new_pak3b is new new_pak2.pak3(T2 => T5_ptr); -- line 16: Illegal +end Test_129; +"""))) + +print ("# Please ignore the gnatlink message.") +check_reports_an_error_but_should_not ( + bug = 280939, + make = ("gnatmake", "test_130"), + regex = "test_130\.adb:\(\.text\+0x5\): undefined reference to \`p2\'", + sources = ( + ("pak1.ads", """-- RM 10.1.5(4) "the pragma shall have an argument that is a name +-- denoting that declaration." +-- RM 8.1(16) "The children of a parent library unit are inside the +-- parent's declarative region." + +package pak1 is + pragma Pure; +end pak1; +"""), + ("pak1-p2.ads", """procedure pak1.p2; +pragma Pure (p2); -- ERROR: need expanded name +pragma Import (ada, p2); -- ERROR: need expanded name +pragma Inline (p2); -- ERROR: need expanded name +"""), + ("test_130.adb", """with Pak1.P2; +procedure Test_130 is +begin + Pak1.P2; +end Test_130; +"""))) + +check_compiles_but_should_not ( + bug = 283833, + make = ("gnatmake", "test_132"), + sources = ( + ("pak1.ads", """-- RM 8.5.4(5) the convention of the renamed subprogram shall not +-- be Intrinsic, if the renaming-as-body completes that declaration +-- after the subprogram it declares is frozen. + +-- RM 13.14(3) the end of the declaration of a library package +-- causes freezing of each entity declared within it. + +-- RM 6.3.1(7) the default calling convention is Intrinsic for +-- any other implicitly declared subprogram unless it is a +-- dispatching operation of a tagged type. + +package pak1 is + type T1 is null record; + procedure p1 (x1: T1); + type T2 is new T1; +end pak1; +"""), + ("pak1.adb", """package body Pak1 is + procedure P1 (X1 : T1) is begin null; end P1; +end Pak1; +"""), + ("test_132.ads", """with pak1; +package Test_132 is + procedure p2 (x2: pak1.T2); +end Test_132; +"""), + ("test_132.adb", """package body Test_132 is + procedure p2 (x2: pak1.T2) renames pak1.p1; --ERROR: can't rename intrinsic +end Test_132; +"""))) + +check_compiles_but_should_not ( + bug = 283835, + make = ("gnatmake", "test_133"), + sources = ( + ("test_133.ads", """package Test_133 is + package pak1 is + type T1 is null record; + end pak1; + + package pak2 is + subtype boolean is standard.boolean; + function "=" (x, y: pak1.T1) return boolean; + end pak2; + + use pak1, pak2; + + x1: pak1.T1; + b1: boolean := x1 /= x1; -- ERROR: ambigous (gnat misses) + -- b2: boolean := x1 = x1; -- ERROR: ambigous +end Test_133; +"""), + ("test_133.adb", """package body test_133 is + package body pak2 is + function "=" (x, y: pak1.T1) return boolean is + begin + return true; + end "="; + end pak2; +end test_133; +"""))) + +check_compiles_but_should_not ( + bug = 416979, + make = ("gnatmake", "pak1"), + sources = ( + ("pak1.ads", """package pak1 is + -- RM 7.3(13), 4.9.1(1) + -- check that discriminants statically match + type T1(x1: integer) is tagged null record; + x2: integer := 2; + x3: constant integer := x2; + type T2 is new T1 (x2) with private; + type T3 is new T1 (x3) with private; +private + type T2 is new T1 (x2) with null record; --ERROR: nonstatic discriminant + type T3 is new T1 (x3) with null record; --ERROR: nonstatic discriminant +end pak1; +"""),)) + +# Once the bug box disappears, check the executable. +# check_produces_a_faulty_executable ( +check_reports_an_error_but_should_not ( + bug = 427108, + make = ("gnatmake", "test1"), + regex = "Program_Error exp_disp.adb:7840 explicit raise", + sources = ( + ("test1.adb", """-- "For the execution of a call on an inherited subprogram, +-- a call on the corresponding primitive subprogram of the +-- parent or progenitor type is performed; the normal conversion +-- of each actual parameter to the subtype of the corresponding +-- formal parameter (see 6.4.1) performs any necessary type +-- conversion as well." + +with Text_IO; use Text_IO; +procedure Test1 is + package Pak1 is + type T1 is tagged null record; + function Eq(X, Y: T1) return Boolean renames "="; + end Pak1; + + package Pak2 is + type T2 is new Pak1.T1 with record + F1: Integer; + end record; + end Pak2; + + Z1: Pak2.T2 := (F1 => 1); + Z2: Pak2.T2 := (F1 => 2); +begin + if Pak2.Eq(Z1, Z2) = Pak1.Eq(Pak1.T1(Z1), Pak1.T1(Z2)) + then Put_Line("PASSED"); + else Put_Line("FAILED"); + end if; +end Test1; +"""),)) + +check_reports_an_error_but_should_not ( + bug = 660698, + make = ("gnatmake", "proc.adb"), + regex = 'proc\.adb:17:28: there is no applicable operator "And" for type "Standard\.Integer"', + sources = ( + ("proc.adb", """procedure Proc is + package P1 is + type T is new Integer; + function "and" (L, R : in Integer) return T; + end P1; + package body P1 is + function "and" (L, R : in Integer) return T is + pragma Unreferenced (L, R); + begin + return 0; + end "and"; + end P1; + use type P1.T; + package P2 is + use P1; + end P2; + G : P1.T := Integer'(1) and Integer'(2); +begin + null; +end Proc; +"""), )) + +check_produces_a_faulty_executable ( + bug = 737225, + make = ("gnatmake", "round_decimal"), + trigger = "round_decimal", + regex = "Bug reproduced.", + sources = ( + ("round_decimal.adb", """with Ada.Text_IO; + +procedure Round_Decimal is + + -- OJBECTIVE: + -- Check that 'Round of a decimal fixed point type does round + -- away from zero if the operand is of a decimal fixed point + -- type with a smaller delta. + + Unexpected_Compiler_Bug : exception; + + type Milli is delta 0.001 digits 9; + type Centi is delta 0.01 digits 9; + + function Rounded (Value : Milli) return Centi; + -- Value, rounded using Centi'Round + + function Rounded (Value : Milli) return Centi is + begin + return Centi'Round (Value); + end Rounded; + +begin + -- Operands used directly: + if not (Milli'Round (0.999) = Milli'(0.999) + and + Centi'Round (0.999) = Centi'(1.0) + and + Centi'Round (Milli'(0.999)) = Centi'(1.0)) + then + raise Unexpected_Compiler_Bug; + end if; + if Rounded (Milli'(0.999)) /= Centi'(1.0) then + Ada.Text_IO.Put_Line ("Bug reproduced."); + end if; +end Round_Decimal; +"""),)) + +# Even if an error is reported, the problem with the atomic variable +# should be checked. +check_reports_an_error_but_should_not ( + bug = 643663, + make = ("gnatmake", "test"), + regex = 'test\.adb:4:25: no value supplied for component "Reserved"', + sources = ( + ("pkg.ads", """package Pkg is + type Byte is mod 2**8; + type Reserved_24 is mod 2**24; + + type Data_Record is + record + Data : Byte; + Reserved : Reserved_24; + end record; + + for Data_Record use + record + Data at 0 range 0 .. 7; + Reserved at 0 range 8 .. 31; + end record; + + for Data_Record'Size use 32; + for Data_Record'Alignment use 4; + + Data_Register : Data_Record; + pragma Atomic (Data_Register); +end Pkg; +"""), ("test.adb", """with Pkg; +procedure Test is +begin + Pkg.Data_Register := ( + Data => 255, + others => <> -- expected error: no value supplied for component "Reserved" + ); +end Test; +"""))) + +check_produces_a_faulty_executable ( + bug = 864969, + make = ("gnatmake", "main"), + trigger = "main", + regex = "ZZund", + sources = ( + ("main.adb", """with Ada.Locales, Ada.Text_IO; +procedure Main is +begin + Ada.Text_IO.Put_Line (String (Ada.Locales.Country) + & String (Ada.Locales.Language)); +end Main; +"""),)) + +try: + os.rmdir (workspace) +except: + print ("Some unconfirmed, not removing directory {}.".format (workspace)) diff --git a/debian/ada/debian_packaging.mk b/debian/ada/debian_packaging.mk new file mode 100644 index 0000000..b0329b4 --- /dev/null +++ b/debian/ada/debian_packaging.mk @@ -0,0 +1,91 @@ +# Common settings for Ada Debian packaging. +# +# Copyright (C) 2012-2014 Nicolas Boulenguez +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# dpkg-dev (>= 1.16.1) provides /usr/share/dpkg/default.mk (or the +# more specific buildflags.mk) to set standard variables like +# DEB_HOST_MULTIARCH, CFLAGS, LDFLAGS...) according to the build +# environment (DEB_BUILD_OPTIONS...) and the policy (hardening +# flags...). +# You must include it before this file. +ifeq (,$(findstring /usr/share/dpkg/buildflags.mk,$(MAKEFILE_LIST))) + $(error Please include /usr/share/dpkg/default.mk (or the more specific \ + buildflags.mk) before $(lastword $(MAKEFILE_LIST))) +endif + +# Ada is not in dpkg-dev flag list. We add a sensible default here. + +# Format checking is meaningless for Ada sources. +ADAFLAGS := $(filter-out -Wformat -Werror=format-security, $(CFLAGS)) + +ifdef DPKG_EXPORT_BUILDFLAGS + export ADAFLAGS +endif + +# Avoid dpkg-shlibdeps warning about depending on a library from which +# no symbol is used, see http://wiki.debian.org/ToolChain/DSOLinking. +# Gnatmake users must upgrade to >= 4.6.4-1 to circumvent #680292. +LDFLAGS += -Wl,--as-needed + +# Warn during build time if undefined symbols. +LDFLAGS += -Wl,-z,defs + +ifdef DPKG_EXPORT_BUILDFLAGS + export LDFLAGS +endif + +###################################################################### +# C compiler version + +# GCC binaries must be compatible with GNAT at the binary level, use +# the same version. This setting is mandatory for every upstream C +# compilation ("export CC" is enough for dh_auto_configure with a +# normal ./configure). + +CC := gnatgcc + +###################################################################### +# Options for gprbuild/gnatmake. + +# Let Make delegate parallelism to gnatmake/gprbuild. +.NOTPARALLEL: + +# Use all processors unless parallel=n is set in DEB_BUILD_OPTIONS. +# http://www.debian.org/doc/debian-policy/ch-source.html#s-debianrules-options +BUILDER_JOBS := $(filter parallel=%,$(DEB_BUILD_OPTIONS)) +ifneq (,$(BUILDER_JOBS)) + BUILDER_JOBS := $(subst parallel=,,$(BUILDER_JOBS)) +else + BUILDER_JOBS := $(shell getconf _NPROCESSORS_ONLN) +endif +BUILDER_OPTIONS += -j$(BUILDER_JOBS) + +BUILDER_OPTIONS += -R +# Avoid lintian warning about setting an explicit library runpath. +# http://wiki.debian.org/RpathIssue + +BUILDER_OPTIONS += -v +# Make exact command lines available for automatic log checkers. + +BUILDER_OPTIONS += -eS +# Tell gnatmake to echo commands to stdout instead of stderr, avoiding +# buildds thinking it is inactive and killing it. +# -eS is the default on gprbuild. + +# You may be interested in +# -s recompile if compilation switches have changed +# (bad default because of interactions between -amxs and standard library) +# -we handle warnings as errors +# -vP2 verbose when parsing projects. diff --git a/debian/bin-wrapper.in b/debian/bin-wrapper.in new file mode 100644 index 0000000..f8ca63b --- /dev/null +++ b/debian/bin-wrapper.in @@ -0,0 +1,11 @@ +#! /bin/sh + +# some build tools are linked with a new libstdc++ and fail to run +# when building libstdc++. + +if [ -n "$LD_LIBRARY_PATH" ]; then + ma=$(dpkg-architecture -qDEB_BUILD_MULTIARCH) + export LD_LIBRARY_PATH="/lib/$ma:/usr/lib/$ma:/lib:/usr/lib:$LD_LIBRARY_PATH" +fi + +exec /usr/bin/$(basename $0) "$@" diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..df97a4a --- /dev/null +++ b/debian/changelog @@ -0,0 +1,13758 @@ +gcc-7 (7.1.0-13+rpi1) buster-staging; urgency=medium + + * Disable testsuite. + + -- Peter Michael Green Fri, 18 Aug 2017 23:45:20 +0000 + +gcc-7 (7.1.0-13) unstable; urgency=medium + + * GCC 7.2 release candidate 2. + * Don't build the gc enabled libobjc for cross compilers. Closes: #870895. + * Configure cross-build-native builds with --program-prefix (Adrian + Glaubitz). Closes: #871034. + * Update build dependencies for powerpcspe. Closes: #868186. + * Fix PR tree-optimization/81723, taken from the trunk. Closes: #853345. + + -- Matthias Klose Tue, 08 Aug 2017 11:12:56 -0400 + +gcc-7 (7.1.0-12) unstable; urgency=medium + + * GCC 7.2 release candidate 1. + * Update to SVN 20170803 (r250853) from the gcc-7-branch. + + -- Matthias Klose Thu, 03 Aug 2017 09:20:48 -0400 + +gcc-7 (7.1.0-11) unstable; urgency=medium + + * Update to SVN 20170731 (r250749) from the gcc-7-branch. + + [ Matthias Klose ] + * Update sanitizer symbols for ppc64 and sparc64. + + [ Nicolas Boulenguez ] + * Only build gnatvsn as a native library. + + -- Matthias Klose Mon, 24 Jul 2017 13:41:34 +0200 + +gcc-7 (7.1.0-10) unstable; urgency=medium + + * Update to SVN 20170722 (r250453) from the gcc-7-branch. + + [ Nicolas Boulenguez ] + * libgnatvsn: embed xutil rident for version 2017 of asis package. + + [ Matthias Klose ] + * Fix gnat cross build on m68k (Adrian Glaubitz). Closes: #862927. + * Enable gnat cross build on m68k. Closes: #868365. + * Update the Linaro support to the 7-2017.07 snapshot. + * Stop ignoring symbol mismatches for runtime libraries. + + [ Aurelien Jarno ] + * libgo-s390x-default-isa.diff: do not build libgo with -march=z196, + use the default ISA instead. + + -- Matthias Klose Sat, 22 Jul 2017 15:06:36 +0200 + +gcc-7 (7.1.0-9) unstable; urgency=medium + + * Update to SVN 20170705 (r250006) from the gcc-7-branch. + + [ Matthias Klose ] + * gcc-linaro-revert-r49596.diff: fix build for the linaro branch. + * Don't configure powerpc with --enable-default-pie, fails to build. + See #856224, PR target/81295. + + [ Nicolas Boulenguez ] + * ada-gcc-name.diff: unpatch gnatchop. Addresses: #856274. + * Link libgnat with libatomic on armel. Closes: #861734. + * libgnat-dev: use multiarch paths in project and to install .ali files. + * Build Ada on armel, kfreebsd-*, hurd-i386; #86173[457] are closed. + + -- Matthias Klose Wed, 05 Jul 2017 19:21:55 +0200 + +gcc-7 (7.1.0-8) unstable; urgency=medium + + * Update to SVN 20170629 (r249793) from the gcc-7-branch. + + [ Matthias Klose ] + * Move the liblto_plugin from the cpp to the gcc package. + * libstdc++6: Add more Breaks to smoothen upgrades from jessie to stretch. + Addresses: #863845, #863745. + * Don't provide libobjc_gc symlinks for the libobjc multilib packages. + * Configure with --enable-default-pie on ppc64 (Adrian Glaubitz) and + powerpc (Mathieu Malaterre). Addresses: #856224. + + [ Nicolas Boulenguez ] + * Update ada/confirm_debian_bugs.py for gcc-7. + * Drop ada-driver-check.diff, the problem is unreproducible. + * Stop symlinking gcc-7-7 -> gcc-7. See #856274 and #814977. + * gnatmake: compile once even with SOURCE_DATE_EPOCH. Closes: #866029. + + -- Matthias Klose Thu, 29 Jun 2017 17:36:03 +0200 + +gcc-7 (7.1.0-7) unstable; urgency=medium + + * Update to SVN 20170618 (r249347) from the gcc-7-branch. + + [ Matthias Klose ] + * Don't build libada with -O3 (ftbfs on ppc64el). + * Update sanitizer symbol files (Helmut Grohne). Closes: #864835. + + [ Aurelien Jarno ] + * Remove proposed patch for PR65618, the issue has been fixed upstream + another way. + + [ Nicolas Boulenguez ] + * Ada: link system.ads to system-freebsd.ads on hurd and *freebsd + system-freebsd-x86.ads does not exist anymore. Closes: #861735, #861737. + * Ada: prevent parallel gnatmake invokations for gnattools. Closes: #857831. + * Drop generated and obsolete debian/source.lintian-overrides. + * Drop debian/relink, never executed and redundant with ada patches. + * Ada: Drop dpkg-buildflags usage in patches. Closes: #863289. + * ada: Drop references to obsolete termio-h.diff. Closes: #845159. + * ada-749574.diff: replace work-around with fix and forward it. + * ada-kfreebsd.diff: reduce a lot thanks to Ada2012 syntax. + * ada-link-lib.diff: remove dubious parts. + + -- Matthias Klose Sun, 18 Jun 2017 15:31:39 +0200 + +gcc-7 (7.1.0-6) experimental; urgency=medium + + * Update to SVN 20170522 (r248347) from the gcc-7-branch. + - Fix PR libstdc++/80796, PR libstdc++/80478, PR libstdc++/80761, + PR target/80799 (x86), PR ada/80784, PR fortran/78659, PR fortran/80752, + PR libgfortran/80727. + + [ Matthias Klose ] + * Re-add unwind support on kfreebsd-amd64 (James Clarke). + * Work around #814977 (gnat calling gcc-7-7) by providing a gcc-7-7 + symlink. + * Fix gnat build dependencies on x32. + * Build gnat on mips64 and powerpcspe. + * Update the Linaro support to the 7-2017.05 snapshot. + * Fix libmpx dependency generation for cross builds. + * Build again gnat cross compilers on 32bit archs targeting 64bit targets. + + [ Nicolas Boulenguez ] + * Remove ada-gnattools-noparallel patch, apparently fixed. Closes: #857831. + * Reduce diff with upstream in ada-gnattools-cross patch. + * debian/rules2: Simplify build flags transmission. + * Append build flags from dpkg during Ada target builds. + + -- Matthias Klose Mon, 22 May 2017 12:43:09 -0700 + +gcc-7 (7.1.0-5) experimental; urgency=medium + + * Update to SVN 20170514 (r248033) from the gcc-7-branch. + * Disable offload compilers for snapshot builds. + * Build libgo when not building common libs. + * Fix building libgfortran and libgphobos when building without common libs. + * Build gnat on x32. + + -- Matthias Klose Sun, 14 May 2017 08:50:34 -0700 + +gcc-7 (7.1.0-4) experimental; urgency=medium + + * Update to SVN 20170505 (r247630) from the gcc-7-branch. + * Add sh3 support to gcc-multiarch patch. Closes: #861760. + * Remove libquadmath/gdtoa license from debian/copyright (files removed). + * Fix gdc build on sh4 (sh5 support was removed upstream). + * Disable gnat on KFreeBSD (see #861737) and the Hurd (see #861735) for now. + * Disable running the testsuite on KFreeBSD and the Hurd, hanging on + the buildds. + + -- Matthias Klose Fri, 05 May 2017 11:27:27 +0200 + +gcc-7 (7.1.0-3) experimental; urgency=medium + + * Update to SVN 20170503 (r247549) from the gcc-7-branch. + * Fix gdc build on sparc. + * Update the gdc-cross-install-location patch for GCC 7. + * Bump libgphobos soname. + * dpkg-buildflags stopped fiddling around with spec files; remove + the code removing and warning about dpkg's specs. + * Don't build the native gnat on armel. See issue #861734. + + -- Matthias Klose Wed, 03 May 2017 16:51:15 +0200 + +gcc-7 (7.1.0-2) experimental; urgency=medium + + * Update the disable-gdc-tests patch for GCC 7.1. + + -- Matthias Klose Tue, 02 May 2017 18:35:14 +0200 + +gcc-7 (7.1.0-1) experimental; urgency=medium + + * GCC 7.1.0 release. + * Update NEWS.html and NEWS.gcc. + * Update gdc to the gdc-7 branch 20170502. + * Add multiarch bits for non-glibc architectures (musl, uclibc) (Helmut + Grohne). Closes: #861588. + * Fix dependency on gcc-base package for rtlibs stage build (Helmut Grohne). + Closes: #859938. + + -- Matthias Klose Tue, 02 May 2017 18:07:07 +0200 + +gcc-7 (7-20170407-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170407. + * Install gcov-dump and gcov-tool manual pages. + + -- Matthias Klose Fri, 07 Apr 2017 13:16:00 +0200 + +gcc-7 (7-20170316-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170316. + * Install the gcov-dump utility. + * Allow to use lld with -fuse-ld=ld.lld. + * Build gnattools sequentially (fails with parallel build). See #857831. + * Add profile to the autogen build dependency. + * Re-add the generated Makefile.in changes to the gdc-libphobos-build patch. + + -- Matthias Klose Thu, 16 Mar 2017 12:34:18 +0100 + +gcc-7 (7-20170314-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170314. + + [ Matthias Klose ] + * Bump binutils version requirement to 2.28. + * Fix libcc1.so symlink for cross compilers. Addresses: #856875. + * Fix base package name for rtlibs stage build (Helmut Grohne). + Closes: #857074. + * Update the cross-install-location patch (Helmut Grohne). Closes: #855565. + * Fix symlinks to man pages in the hppa64 package. Addresses: #857583. + * Don't ship the gnatgcc manpage symlink when building GFDL packages. + Addresses: #857384. + * Allow bootstrapping with libc headers installed in multiarch location. + (Helmut Grohne). Closes: #857535 + * gccbrig: Depend on hsail-tools. + + [ Nicolas Boulenguez ] + * Create the libgnatsvn packages again. Closes: #857606. + * Replace libgnat-BV.overrides with a fixed command. + * Install gnatvsn.gpr project into /u/s/gpr instead of + /u/s/ada/adainclude. Debian is migrating to GPRbuild's upstream layout. + * Avoid hardcoding the version in the ada-gcc-name patch. + * Reorganize Ada patches. See #857606 for details. + + -- Matthias Klose Tue, 14 Mar 2017 10:42:24 +0100 + +gcc-7 (7-20170302-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170302. + + [ Matthias Klose ] + * Update gdc to trunk 20170227. + * Update libcc1 symbols file. + * Bump binutils version requirement. + * Allow to disable brig in DEB_BUILD_OPTIONS. Closes: #856452. + * Build the nvptx offload compilers. + * Add the newlib copyright, used for the gcc-7-offload-nvptx package. + * Install the libcp1plugin. + * Fix the installation directory of the ada-sjlj includes and libraries. + + [ Nicolas Boulenguez ] + * Use SOURCE_DATE_EPOCH for reproducible ALI timestamps. Closes: #856042. + * Remove obsolete references to libgnatprj, but keep existing + references to libgnatvsn as it will be restored. Closes: #844367. + * Drop obsolete and unapplied ada-default-project-path.diff. + + -- Matthias Klose Thu, 02 Mar 2017 10:12:34 +0100 + +gcc-7 (7-20170226-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170226. + + -- Matthias Klose Sun, 26 Feb 2017 17:00:48 +0100 + +gcc-7 (7-20170221-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170221. + * Update gdc to trunk 20170221. + + [ Matthias Klose ] + * Fix some hppa64 related build issues. Addresses: #853023. + * Allow setting offload targets by OFFLOAD_TARGET_DEFAULT. + * Again, disable go on m68k. Closes: #853906. + * Configure with --enable-default-pie on sparc and sparc64 (James Clarke). + Addresses: #854090. + * Configure with --enable-default-pie on kfreebsd-* (Steven Chamberlain). + * Build gccbrig and the libhsail-rt library for i386. + * Configure staged builds with --disable-libmpx and --disable-libhsail-rt. + * Fix target architecture for sparc non-multilib builds (Adrian Glaubitz). + Addresses: #855197. + * Bump binutils version requirement. + + [ Aurelien Jarno ] + * Disable lxc1/sxc1 instruction on mips and mipsel. + * Disable madd4 instructions on mipsel, mips64el and mipsn32el. + + -- Matthias Klose Tue, 21 Feb 2017 14:54:12 +0100 + +gcc-7 (7-20170129-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170129. + * Fix removing the RUNPATH from the asan, tsan, ubsan, cilkrts, gfortran + and gphobos runtime libraries. + * Let the gnatgcc symlinks point to the versioned names. Addresses: #839209. + * Build the BRIG frontend on amd64. + * Install new intrinsics headers. Closes: #852551. + * libgo version bumped to 11. + * Package gccbrig and the libhsail-rt library. + + -- Matthias Klose Sun, 29 Jan 2017 13:51:35 +0100 + +gcc-7 (7-20170121-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170121. + * Configure --with-gcc-major-version-only, drop the gcc-base-version, + gccgo-version and gdc-base-version patches. + * Adjust the g++-multiarch-incdir patch for reverted upstream patch, + causing bootstrap regression (PR 78880). Closes: #852104. + + -- Matthias Klose Sat, 21 Jan 2017 21:57:22 +0100 + +gcc-7 (7-20170118-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20170118. + * Always configure sparc builds --with-cpu-32=ultrasparc (James Clarke). + * Enable gccgo on m68k (John Paul Adrian Glaubitz). Addresses: #850749. + * Install the unprefixed man pages for gcc-ar, -nm and ranlib. + Closes: #851698. + + -- Matthias Klose Wed, 18 Jan 2017 22:41:11 +0100 + +gcc-7 (7-20161230-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161230. + * Update gdc to trunk 20161229. Closes: #844704. + * Build the cilk runtime on armel, armhf, sparc and sparc64. + * Use --push-state/--pop-state for gold as well when linking libtsan. + * In GCC ICE dumps, prefix each line with the PID of the driver. + * Apply proposed patch for PR target/78748. + * Apply proposed patch for PR libstdc++/64735. + * Don't mark libphobos multilib packages as M-A: same. + * Configure libphobos builds with --with-target-system-zlib. + * Ignore dpkg's pie specs when pie is not enabled. Addresses: #848129. + * Drop m68k specific ada patches. Closes: #846872. + + -- Matthias Klose Fri, 30 Dec 2016 05:19:15 +0100 + +gcc-7 (7-20161201-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161201. + + * Install missing vecintrin.h header on s390x. + * Install missing avx512 intrinsics headers on x86*. Closes: #846075. + + -- Matthias Klose Thu, 01 Dec 2016 14:38:26 +0100 + +gcc-7 (7-20161125-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161125. + + [ Matthias Klose ] + * Update libgphobos symbol files. + * libphobos: Fix ARM32 multilib detection for system zlib. + * Update libgphobos symbols files for ARM32 targets. + * Build the GC enabled libobjc using the system libgc when available + * Mark libgphobos symbols changing with the file location (sic!) as optional. + * Add pkg-config to the build dependencies. + * Drop the work around for PR libstdc++/65913. + * gdc: Link with the shared libgphobos runtime by default. + * Fix PR middle-end/78501, proposed patch. + * Fix dependency generation for libgphobos multilib builds. + * Drop the ada-revert-pr63225 patch, only needed for libgnatvsn. + * Always apply the ada patches. + + [ YunQiang Su ] + * Update gnat patches for GCC 7, stop building libgnatvsn and libgnatprj. + Addresses: #844367. + + -- Matthias Klose Fri, 25 Nov 2016 12:41:07 +0100 + +gcc-7 (7-20161116-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161116. + * Build shared phobos runtime libraries (not yet enabled by default). + * Add symbols for libobjc_gc library. + + -- Matthias Klose Wed, 16 Nov 2016 19:16:39 +0100 + +gcc-7 (7-20161115-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161115. + * More symbol files updates. + * Update gdc to the trunk 20161113. + * Update conflicts with GCC 6 packages. Closes: #844296. + + -- Matthias Klose Tue, 15 Nov 2016 13:02:02 +0100 + +gcc-7 (7-20161112-1) experimental; urgency=medium + + * GCC 7 snapshot build, taken from the trunk 20161112. + * Remove gij/gcj packages, removed upstream. + * Don't build gdc and gnat for now. + + -- Matthias Klose Sat, 12 Nov 2016 11:17:17 +0100 + +gcc-6 (6.2.0-13) unstable; urgency=medium + + * Update to SVN 20161109 (r241998, 6.2.1) from the gcc-6-branch. + - Fix PR c/71115, PR target/78229 (closes: #843379), + PR tree-optimization/77768, PR c++/78039 (closes: #841316), + PR libgcc/78064, PR driver/78206. + * Fix using the gcc-6-source package (Stephen Kitt). Closes: #843476. + * Fix PR target/77822 (AArch64), taken from the trunk. Closes: #839249. + * Fix PR target/77822 (s390x), proposed patch. + * Update libiberty to the trunk 20161108. Addresses security issues: + CVE-2016-6131, CVE-2016-4493, CVE-2016-4492, CVE-2016-4490, + CVE-2016-4489, CVE-2016-4488, CVE-2016-4487, CVE-2016-2226. + + -- Matthias Klose Wed, 09 Nov 2016 20:42:53 +0100 + +gcc-6 (6.2.0-11) unstable; urgency=medium + + * Update to SVN 20161103 (r241817, 6.2.1) from the gcc-6-branch. + - Fix PR debug/77773, PR middle-end/72747, PR tree-optimization/78047, + PR tree-optimization/77879, PR tree-optimization/77839, + PR tree-optimization/77745, PR tree-optimization/77648, + PR target/78166 (PA), PR rtl-optimization/78038, PR middle-end/78128, + PR middle-end/71002, PR fortran/69544, PR fortran/78178, + PR fortran/71902, PR fortran/67219, PR fortran/71891, PR lto/78129, + PR libgfortran/78123. + * Fix symlinks for gcj manual pages. Closes: #842407. + * Fix ICE in tree_to_shwi, Linaro issue #2575. + + -- Matthias Klose Thu, 03 Nov 2016 14:10:24 +0100 + +gcc-6 (6.2.0-10) unstable; urgency=medium + + * Update to SVN 20161027 (r241619, 6.2.1) from the gcc-6-branch. + - Fix PR libstdc++/77288, PR libstdc++/77727, PR libstdc++/78052, + PR tree-optimization/77550, PR tree-optimization/77916, + PR fortran/71895, PR fortran/77763, PR fortran/61420, PR fortran/78013, + PR fortran/78021, PR fortran/72832, PR fortran/78092, PR fortran/78108, + PR target/78057 (x86), PR target/78037 (x86). + * Include go-relocation-test-gcc620-sparc64.obj.uue to fix libgo's + debug/elf TestDWARFRelocations test case (James Clarke). + * Reapply fix for PR c++/71912, apply proposed fix for PR c++/78039. + Closes: #841292. + * Don't install alternatives for go and gofmt. The preferred way to do that + is to install the golang-any package. + * For Debian builds, don't enable bind now by default when linking with pie + by default. + + -- Matthias Klose Thu, 27 Oct 2016 15:27:07 +0200 + +gcc-6 (6.2.0-9) unstable; urgency=medium + + * Regenerate the control file. + + -- Matthias Klose Thu, 20 Oct 2016 10:46:44 +0200 + +gcc-6 (6.2.0-8) unstable; urgency=medium + + * Update to SVN 20161019 (r241346, 6.2.1) from the gcc-6-branch. + - Fix PR libstdc++/77990, PR target/77991 (x86). + * Install arm_fp16.h header on arm* architectures for Linaro builds. + * Backport upstream revisions from trunk (James Clarke). Closes: #840574. + - r240457 (add getrandom for MIPS/SPARC) + - r241051 (fix getrandom on sparc64 and clone on sparc*) + - r241072 (make rawClone no_split_stack) + - r241084 (don't use pt_regs; unnecessary, and seemingly not defined by + the included headers on arm64) + - r241171 (sparc64 relocations, e1fc2925 in go master, now also in + gofrontend/gccgo) + * Revert fix for PR c++/71912, causing PR c++/78039. Addresses: #841292. + + -- Matthias Klose Wed, 19 Oct 2016 08:57:23 +0200 + +gcc-6 (6.2.0-7) unstable; urgency=medium + + * Update to SVN 20161018 (r241301, 6.2.1) from the gcc-6-branch. + - Fix PR libstdc++/77987, PR libstdc++/77322, PR libstdc++/72820, + PR libstdc++/77994, PR tree-optimization/77937, PR c++/71912, + PR tree-optimization/77937, PR tree-optimization/77943, + PR bootstrap/77995, PR fortran/77978, PR fortran/77915, PR fortran/77942. + + [ Matthias Klose ] + * Backport Mips go closure support, taken from libffi. Closes: #839132. + * Configure with --enable-default-pie and pass -z now when pie is enabled; + on amd64 arm64 armel armhf i386 mips mipsel mips64el ppc64el s390x. + Closes: #835148. + * Update the Linaro support to the 6-2016.10 snapshot. + + [ Aurelien Jarno ] + * Enable logwatch on mips64el. + + -- Matthias Klose Tue, 18 Oct 2016 13:53:00 +0200 + +gcc-6 (6.2.0-6) unstable; urgency=medium + + * Update to SVN 20161010 (r240906, 6.2.1) from the gcc-6-branch. + - Fix PR libstdc++/68323, PR libstdc++/77794, PR libstdc++/77795, + PR libstdc++/77801, PR libgcc/77519, PR target/77756 (x86), + PR target/77670 (PPC), PR rtl-optimization/71709, PR c++/77804, + PR fortran/41922, PR fortran/60774, PR fortran/61318, PR fortran/68566, + PR fortran/69514, PR fortran/69867, PR fortran/69962, PR fortran/70006, + PR fortran/71067, PR fortran/71730, PR fortran/71799, PR fortran/71859, + PR fortran/71862, PR fortran/77260, PR fortran/77351, PR fortran/77372, + PR fortran/77380, PR fortran/77391, PR fortran/77420, PR fortran/77429, + PR fortran/77460, PR fortran/77506, PR fortran/77507, PR fortran/77612, + PR fortran/77694, PR libgfortran/77707, PR libstdc++/70101, + PR libstdc++/77864, PR libstdc++/70564, PR target/77874 (x86), + PR target/77759 (sparc), PR fortran/77406, PR fortran/58991, + PR fortran/58992. + * Really fix gij installation on hppa. Closes: #838111. + * Install alternatives for go and gofmt. Closes: #840190. + + -- Matthias Klose Mon, 10 Oct 2016 05:20:07 +0200 + +gcc-6 (6.2.0-5) unstable; urgency=medium + + * Update to SVN 20160927 (r240553, 6.2.1) from the gcc-6-branch. + - Fix PR sanitizer/77396, PR libstdc++/77645, PR libstdc++/77645, + PR target/77326 (AVR), PR target/77349 (PPC), PR middle-end/77594, + PR sanitizer/68260, PR fortran/77516, PR target/69255 (x86), + PR c++/77553, PR c++/77539, PR fortran/77500, PR c/77450, + PR middle-end/77436, PR tree-optimization/77514, PR middle-end/77544, + PR tree-optimization/77514, PR middle-end/77605, PR middle-end/77679, + PR tree-optimization/77621, PR target/77621 (x86), PR c++/71979. + * Fix gij installation on hppa. Closes: #838111. + * Fix PR rtl-optimization/71709, taken from the trunk. LP: #1628207. + * Apply workaround for PR libstdc++/77686. Addresses: #838438. + + -- Matthias Klose Wed, 28 Sep 2016 15:53:28 +0200 + +gcc-6 (6.2.0-4) unstable; urgency=medium + + * Update to SVN 20160914 (r240133, 6.2.1) from the gcc-6-branch. + - Fix PR rtl-optimization/77452, PR c++/77427. + * gcj: Depend on the ecj1 standalone binary. + * Configure native builds using --with-program-prefix. + * Fix ICE in gdc symbol mangling (Iain Buclaw). LP: #1620681. + * Backport from libffi trunk (Stefan Bühler): + - Always check for PaX MPROTECT on linux, make EMUTRAMP experimental. + - dlmmap_locked always needs locking as it always modifies execsize. + + -- Matthias Klose Thu, 15 Sep 2016 19:22:35 +0200 + +gcc-6 (6.2.0-3) unstable; urgency=medium + + * Update to SVN 20160901 (r239944, 6.2.1) from the gcc-6-branch. + - Fix PR fortran/71014, PR libstdc++/77395, PR tree-optimization/72866, + PR debug/77363, PR middle-end/77377, PR middle-end/77259, + PR target/71910 (cygwin), PR target/77281 (ARM), + PR tree-optimization/71077, PR tree-optimization/68542, PR fortran/77352, + PR fortran/77374, PR fortran/71014, PR fortran/69281. + * Fix setting the stage1 C++ compiler. + * gdc: Always link with -ldl when linking with -lgphobos. + Closes: #835255, #835757. + * Fix building D code with external C++ references. + + -- Matthias Klose Sun, 04 Sep 2016 12:38:47 +0200 + +gcc-6 (6.2.0-2) unstable; urgency=medium + + * Update to SVN 20160830 (r239868, 6.2.1) from the gcc-6-branch. + - Fix PR libstdc++/77334, PR tree-optimization/76783, + PR tree-optimization/72851, PR target/72867 (x86), PR middle-end/71700, + PR target/77403 (x86), PR target/77270 (x86), PR target/77270 (x86), + PR lto/70955, PR target/72863 (PPC), PR tree-optimization/76490, + PR fortran/77358. + * Call default_file_start from s390_asm_file_start, taken from the trunk. + * Update multiarch patches for mips* r6 (YunQiang Su). + * Fix install location of D header files for cross builds (YunQiang Su). + Closes: #835847. + * Fix PR c++/77379, taken from the trunk. + * Update the Linaro support to the 6-2016.08 snapshot. + + -- Matthias Klose Wed, 31 Aug 2016 12:28:38 +0200 + +gcc-6 (6.2.0-1) unstable; urgency=medium + + * GCC 6.2 release. + * Update gdc to the gdc-6 branch 20160822. + + -- Matthias Klose Mon, 22 Aug 2016 14:15:21 +0200 + +gcc-6 (6.1.1-12) unstable; urgency=medium + + * GCC 6.2 release candidate 1. + * Update to SVN 20160815 (r239482, 6.1.1) from the gcc-6-branch. + Fix PR target/71869 (PPC), PR target/72805 (x86), PR target/70677 (AVR), + PR c++/72415, PR sanitizer/71042, PR libstdc++/71964, PR libstdc++/70940, + PR c/67410, PR c/72816, PR driver/72765, PR debug/71906, + PR tree-optimization/73434, PR tree-optimization/72824, PR target/76342, + PR target/72843, PR c/71512, PR tree-optimization/71083, PR target/72819, + PR target/72853, PR tree-optimization/72824, PR ipa/71981, PR ipa/68273, + PR tree-optimization/71881, PR target/72802, PR target/72802, + PR rtl-optimization/71976, PR c++/71972, PR c++/72868, PR c++/73456, + PR c++/72800, PR c++/68724, PR debug/71906, PR fortran/71936, + PR fortran/72698, PR fortran/70524, PR fortran/71795, PR libgfortran/71123, + PR libgfortran/73142. + + [ Matthias Klose ] + * Fix running the libjava testsuite. + * Revert fix for PR target/55947, causing PR libstdc++/72813. LP: #1610220. + * Update the Linaro support to the 6-2016.07 snapshot. + + [ Aurelien Jarno ] + * Replace proposed fix for PR ipa/68273 by the corresponding patch taken + from trunk. + + -- Matthias Klose Mon, 15 Aug 2016 17:51:10 +0200 + +gcc-6 (6.1.1-11) unstable; urgency=medium + + * Update to SVN 20160802 (r238981, 6.1.1) from the gcc-6-branch. + - Fix PR target/72767 (AVR), PR target/71151 (AVR), PR c/7652, + PR target/71216 (PPC), PR target/72103 (PPC), PR c++/72457, PR c++/71576, + PR c++/71833, PR fortran/71883. + + [ Nicolas Boulenguez ] + * debian/ada/confirm_debian_bugs.py: Update for GCC 6. Closes: #832799. + + [ Matthias Klose ] + * Backport AArch64 Vulcan cost models (Dann Frazier). LP: #1603587. + + -- Matthias Klose Wed, 03 Aug 2016 21:53:37 +0200 + +gcc-6 (6.1.1-10) unstable; urgency=medium + + * Update to SVN 20160724 (r238695, 6.1.1) from the gcc-6-branch. + - Fix PR libstdc++/71856, PR libstdc++/71320, PR c++/71214, + PR sanitizer/71953, PR fortran/71688, PR rtl-optimization/71916, + PR debug/71855, PR middle-end/71874, PR target/71493 (PPC), + PR rtl-optimization/71634, PR target/71733 (PPC), PR ipa/71624, + PR target/71805 (PPC), PR target/70098 (PPC), PR target/71763 (PPC), + PR middle-end/71758, PR tree-optimization/71823, PR middle-end/71606, + PR tree-optimization/71518, PR target/71806 (PPC), PR target/71720 (PPC), + PR middle-end/64516, PR tree-optimization/71264, PR middle-end/71423, + PR tree-optimization/71521, PR tree-optimization/71452, PR target/50739, + PR tree-optimization/71522, PR c++/55922, PR c++/63151, PR c++/70709, + PR c++/70778, PR c++/71738, PR c++/71350, PR c++/71748, PR c++/52746, + PR c++/69223, PR c++/71630, PR c++/71913, PR c++/71728, PR c++/71941, + PR c++/70822, PR c++/70106, PR c++/67565, PR c++/67579, PR c++/71843, + PR c++/70781, PR c++/71896, PR c++/71092, PR c++/71117, PR c++/71495, + PR c++/71511, PR c++/71513, PR c++/71604, PR c++/54430, PR c++/71711, + PR c++/71814, PR c++/71718, PR c++/70824, PR c++/71909, PR c++/71835, + PR c++/71828, PR c++/71822, PR c++/71871, PR c++/70869, PR c++/71054, + PR fortran/71807, PR fortran/70842, PR fortran/71764, PR fortran/71623, + PR fortran/71783. + + [ Matthias Klose ] + * Build-depend on gnat-6 instead of gnat-5 on development distros. + + [ Aurelien Jarno ] + * Replace libjava-mips64el-proposed.diff by the corresponding patch + taken from trunk. + + -- Matthias Klose Sun, 24 Jul 2016 19:42:10 +0200 + +gcc-6 (6.1.1-9) unstable; urgency=medium + + * Update to SVN 20160705 (r237999, 6.1.1) from the gcc-6-branch. + - Fix PR fortran/71717, PR libstdc++/71313, PR c/71685, PR c++/71739, + PR target/71670 (PPC), PR middle-end/71626, PR target/71559 (x86), + PR target/71656 (PPC), PR target/71698 (PPC), PR driver/71651, + PR fortran/71687, PR fortran/71704, PR fortran/71705. + * Mark cross compilers as M-A: foreign. Addresses: #827136. + * On sparc64, configure with --with-cpu-32=ultrasparc, drop the + sparc-force-cpu patch. Closes: #809509. + + -- Matthias Klose Tue, 05 Jul 2016 11:19:50 +0200 + +gcc-6 (6.1.1-8) unstable; urgency=medium + + * Update to SVN 20160630 (r237878, 6.1.1) from the gcc-6-branch. + - Fix PR tree-optimization/71647, PR target/30417 (AVR), + PR target/71103 (AVR), PR tree-optimization/71588, PR middle-end/71581, + PR c++/71528, PR fortran/70673, PR middle-end/71693. + + [ Aurelien Jarno ] + * Apply proposed patch from Matthew Fortune to fix libjava on mips64el. + + [ Matthias Klose ] + * Add AArch64 Vulcan cpu support (Dann Frazier). LP: #1594452. + * gfortran: Suggest libcoarrays-dev. Closes: #827995. + * cpp: Breaks libmagics++-dev (<< 2.28.0-4). Closes: #825278. + * Optimize for mips32r2 for o32 (YunQiang Su). Closes: #827801. + + -- Matthias Klose Thu, 30 Jun 2016 14:12:55 +0200 + +gcc-6 (6.1.1-7) unstable; urgency=medium + + * Update to SVN 20160620 (r237590, 6.1.1) from the gcc-6-branch. + - Fix PR middle-end/71373, PR c/71381, PR libstdc++/71545, PR c/68657, + PR sanitizer/71498, PR middle-end/71529, PR target/71103 (AVR), + PR target/71554 (x86), PR middle-end/71494, PR c++/71448, + PR tree-optimization/71405, PR tree-optimization/71505, + PR target/71379 (s390), PR target/71186 (PPC), PR target/70915 (PPC), + PR c++/70572, PR c++/71516, PR c/71381. + * Fix libgnatprj build to avoid undefined symbols (YunQiang Su). + Closes: #826503. + * Add build support for tilegx (Helmut Grohne). Closes: #827578. + * Drop support for loongson 2f (YunQiang Su). Closes: #827554. + + -- Matthias Klose Mon, 20 Jun 2016 13:41:44 +0200 + +gcc-6 (6.1.1-6) unstable; urgency=medium + + * Update to SVN 20160609 (r237267, 6.1.1) from the gcc-6-branch. + - Fix PR target/71389 (x86), PR tree-optimization/71259, + PR target/70830 (ARM), PR target/67310 (x86), PR c++/71442, + PR c++/70847, PR c++/71330, PR c++/71393, PR fortran/69659. + * gdc: Fix linking the runtime library. Addresses: #826645. + * Fix building libgnatprj on powerpc, and on PIE enabled builds (YunQiang Su). + Closes: #826365. + + -- Matthias Klose Thu, 09 Jun 2016 18:19:42 +0200 + +gcc-6 (6.1.1-5) unstable; urgency=medium + + * Update to SVN 20160603 (r237075, 6.1.1) from the gcc-6-branch. + - Fix PR libstdc++/70762, PR libstdc++/69703, PR libstdc++/69703, + PR libstdc++/71038, PR libstdc++/71036, PR libstdc++/71037, + PR libstdc++/71005, PR libstdc++/71004, PR libstdc++/70609, PR c/71171, + PR middle-end/71279, PR c++/71147, PR c++/71257, + PR tree-optimization/70884, PR c++/71210, PR tree-optimization/71031, + PR c++/69872, PR c++/71257, PR c++/70344, PR c++/71184, PR fortran/66461, + PR fortran/71204, PR libffi/65567, PR c++/71349, PR target/71201, + PR middle-end/71371, PR debug/71057, PR target/71056 (ARM32), + PR tree-optimization/69068, PR middle-end/71002, PR bootstrap/71071, + PR c++/71372, PR c++/70972, PR c++/71166, PR c++/71227, PR c++/60095, + PR c++/69515, PR c++/69009, PR c++/71173, PR c++/70522, PR c++/70584, + PR c++/70735, PR c++/71306, PR c++/71349, PR c++/71105, PR c++/71147, + PR ada/71358, PR ada/71317, PR fortran/71156, PR middle-end/71387. + * Fix cross building libgnatprj on i386 targeting 64bit archs (YunQiang Su). + Closes: #823126. + * Detect hard float for non-linux or non-glibc arm-*-*eabihf builds (Helmut + Grohne). Closes: #823894. + * Update embedded timestamp setting patch, backported from the trunk. + * gccgo: Combine combine gccgo's ld() and ldShared() methods + in cmd/go (Michael Hudson-Doyle). LP: #1586872. + + -- Matthias Klose Fri, 03 Jun 2016 18:58:40 +0200 + +gcc-6 (6.1.1-4) unstable; urgency=medium + + * Update to SVN 20160519 (r236478, 6.1.1) from the gcc-6-branch. + - Fix PR sanitizer/71160, PR c++/70498, PR target/71161 (x86), + PR fortran/70856, PR c++/71100, PR target/71145 (alpha), PR c++/70466, + PR target/70860 (nvptx), PR target/70809 (AArch64), PR hsa/70857, + PR driver/68463, PR target/70947 (PPC), PR ipa/70760, PR middle-end/70931, + PR middle-end/70941, PR tree-optimization/71006, PR target/70830 (ARM), + PR fortran/69603, PR fortran/71047, PR fortran/56226, PR ipa/70646. + * libgnat{prj,svn}-dev: Don't recommend gnat when building cross compiler + packages. + + -- Matthias Klose Thu, 19 May 2016 18:40:49 +0200 + +gcc-6 (6.1.1-3) unstable; urgency=medium + + * Update to SVN 20160511 (r236071, 6.1.1) from the gcc-6-branch. + - Fix PR libstdc++/71049, PR middle-end/70877, PR tree-optimization/70876, + PR target/70963, PR tree-optimization/70916, PR debug/70935. + * Enable gdc for sh4. + + -- Matthias Klose Wed, 11 May 2016 22:35:33 +0200 + +gcc-6 (6.1.1-2) unstable; urgency=medium + + * Update to SVN 20160510 (r236071, 6.1.1) from the gcc-6-branch. + - Fix PR tree-optimization/70956, PR sanitizer/70875, PR sanitizer/70342, + PR ada/70969, PR ada/70900. + + [ Matthias Klose ] + * Call dh_makeshlibs with the --noscripts option when building a + cross compiler. + * Fix building cross gnat libs when not building the common libs. + * Fix building cross mips* multilibs when not building the common libs. + * Re-enable gnat build on some architectures for snapshot builds. + * Don't build gnat cross compilers on 32bit archs targeting 64bit targets. + Addresses: #823126. + * Avoid empty architecture lists in build dependencies. Closes: #823280. + * Tighten debhelper build dependency for cross build dependencies. + * Allow build dependencies for musl configurations (Helmut Grohne). + Closes: #823769. + * Fix dependency resolution for libraries not built anymore from + this source package. + + [ Samuel Thibault ] + * patches/ada-hurd.diff: Fix Get_Page_Size type. + + -- Matthias Klose Tue, 10 May 2016 13:34:49 +0200 + +gcc-6 (6.1.1-1) unstable; urgency=medium + + * GCC 6.1.0 release. + - Fix PR bootstrap/70704, PR tree-optimization/70780, PR libgfortran/70684, + PR middle-end/70626, PR java/70839, PR target/70858, PR ada/70759, + PR ada/70786, PR c++/70540, PR middle-end/70626. + * Update to SVN 20160430 (r235678, 6.1.1) from the gcc-6-branch. + - Fix PR middle-end/70680, PR target/70750 (x86), PR ipa/70785, + PR sanitizer/70712, PR target/70728 (x86). + - Don't encode the minor version in the gcj abi version. + + [ Aurelien Jarno ] + * Apply proposed patch for PR target/68273 (Wrong code on mips/mipsel due to + (invalid?) peeking at alignments in function_arg) on mips and mipsel. + + [ Matthias Klose ] + * Always configure with --enable-targets=powerpcle-linux on ppc64el. + * Stop building libcc1 and libgccjit0, when not building common libs. + * Rename libgccjit-5-dbg to libgccjit0-dbg. + * Fix libjava testsuite with dejagnu 1.6, taken from the trunk. + * Allow embedded timestamps by C/C++ macros to be set externally (Eduard + Sanou). + * Add missing libstdc++ symbol to symbols file. + * libstdc++-doc: Ignore warnings about formulas and long identifiers in + man pages. + * Default the 32bit x86 architectures to i686, keep i585 symlinks. + See https://lists.debian.org/debian-devel/2015/09/msg00589.html + * Build-depend on debhelper (>= 9) and dpkg-dev (>= 1.17.14). + * Update gdc to the gdc-6 branch 20160430. + + -- Matthias Klose Sat, 30 Apr 2016 13:31:12 +0200 + +gcc-6 (6.0.1-2) unstable; urgency=medium + + * GCC 6.1 release candidate 2. + - Fix PR c++/68206, PR c++/70522, PR middle-end/70747, PR target/64971, + PR c++/66543, PR tree-optimization/70725, PR tree-optimization/70726, + PR target/70674 (s390x), PR tree-optimization/70724, PR c++/70690, + PR c++/70505, PR target/70711 (ARM32), PR c++/70685, + PR target/70662 (x86). + * Update gdc to the trunk 20160423. + + -- Matthias Klose Sat, 23 Apr 2016 17:56:52 +0200 + +gcc-6 (6.0.1-1) experimental; urgency=medium + + * GCC 6.1 release candidate 1. + + [ Michael Hudson-Doyle ] + * cmd/go: deduplicate gccgo afiles by package path, not *Package. + LP: #1566552. + + -- Matthias Klose Fri, 15 Apr 2016 18:32:25 +0200 + +gcc-6 (6-20160405-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160405. + + -- Matthias Klose Tue, 05 Apr 2016 16:39:49 +0200 + +gcc-6 (6-20160319-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160319. + * Stop providing alternative for /usr/bin/go. (Michael Hudson-Doyle). + LP: #1555856. + * Disable gnat on powerpcspe. Closes: #816051. + + -- Matthias Klose Sat, 19 Mar 2016 11:54:57 +0100 + +gcc-6 (6-20160312-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160312. + * Update gdc to the trunk 20160306. + * Remove powerpcspe specific patch, integrated upstream. Addresses: #816048. + * When configured to link with --as-needed by default, always link the + sanitizer libraries with --no-as-needed. + + -- Matthias Klose Sat, 12 Mar 2016 10:21:28 +0100 + +gcc-6 (6-20160228-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160228. + + [ Matthias Klose ] + * libgo: Port syscall.SetsockoptUcred from golang (Michael Vogt). + + [ Svante Signell ] + * patches/ada-hurd.diff: Update. + + -- Matthias Klose Sun, 28 Feb 2016 13:28:41 +0100 + +gcc-6 (6-20160225-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160225. + * Update gdc to the trunk 20160224. + * Install missing architecture specific plugin header files. + * Fix PR target/69885, bootstrap error on m68k. + + -- Matthias Klose Thu, 25 Feb 2016 02:00:57 +0100 + +gcc-6 (6-20160220-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160220. + - Fix PR tree-optimization/68021. Closes: #812245. + - Fix PR ipa/69241. Closes: #812060. + - Fix PR libstdc++/56158. Closes: #789369. + * Update symbols files. + * libgccjit-6-doc: Really conflict with libgccjit-5-doc. Closes: #814527. + * Update conflict for gnat cross build packages. Closes: #810809. + * Disable the m68k gnat build, currently fails. See: #814221. + * Fix running the acats tests (Svante Signell): Addresses part of #814978. + + -- Matthias Klose Sat, 20 Feb 2016 16:58:47 +0100 + +gcc-6 (6-20160205-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160205. + - Fix PR tree-optimization/69320. Closes: #811921. + - Fix PR c++/68782. Closes: #812287. + - Fix PR tree-optimization/69328. Closes: #812247. + - Fix PR target/69421. Closes: #812246. + - Fix PR c++/69379. Closes: #812068. + - Fix PR lto/69393. Closes: #812062. + - Fix PR tree-optimization/69166. Closes: #812061. + * Update gdc to the trunk 20160205. + - Fix data corruption bug when passing around longdoubles. + Closes: #812080. + * Add more conflicts to GCC 5's debug and doc packages. Closes: #813081. + * Fix dependency generation for armel/armhf multilib cross targets. + * Fix libc dependency generation for multilib cross targets. + * Build libitm on alpha, s390x, sh4, sparc64. + + -- Matthias Klose Fri, 05 Feb 2016 18:08:37 +0100 + +gcc-6 (6-20160122-1) experimental; urgency=medium + + * Fix gnat build failure on KFreeBSD (Steven Chamberlain). Closes: #811372. + * Fix dependencies on target libraries which are not built anymore + from this source. + * Bump libmpx soname. Closes: #812084. + * Apply proposed patch for PR target/69129. Closes: #810081. + * Apply proposed patch for PR go/66904, pass linker flags from + "#cgo pkg-config:" directives (Michael Hudson). + * Configure with --enable-fix-cortex-a53-843419 on AArch64. + + -- Matthias Klose Fri, 22 Jan 2016 13:33:19 +0100 + +gcc-6 (6-20160117-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160117. + * Update gdc to the trunk 20160115. + * Update libgnatvsn/libgnatprj conflicts. Closes: #810809. + * Fix gnat build failures on the Hurd and KFreeBSD (Svante Signell). + Closes: #811063. + * Build libstdc++-6-doc with a fixed doxygen. Closes: #810717. + + -- Matthias Klose Sun, 17 Jan 2016 12:14:39 +0100 + +gcc-6 (6-20160109-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160109. + * Install new header file pkuintrin.h. Closes: #809807. + * Fix libcc1-0 dependency for cross compilers. + + -- Matthias Klose Sat, 09 Jan 2016 11:49:50 +0100 + +gcc-6 (6-20160103-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160101. + + -- Matthias Klose Sun, 03 Jan 2016 12:47:13 +0100 + +gcc-6 (6-20160101-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20160101. + * Build native gnat on sh4. Addresses: #809498. + + -- Matthias Klose Fri, 01 Jan 2016 21:18:38 +0100 + +gcc-6 (6-20151220-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20151220. + * Update libstdc++-dbg conflicts. Closes: #807885. + * Set target tools and build dependencies for cross builds. + * Relax gcj-6-{jre,jre-headless,jdk} dependencies on libgcj16. + * Fix cross build issues. + + -- Matthias Klose Sun, 20 Dec 2015 13:46:12 +0100 + +gcc-6 (6-20151213-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20151213. + * Update the ada-kfreebsd and ada-m68k patches. + * Fix cross-building without having the common cross libraries installed. + * Allow unstripped, non-optimized debug builds with setting DEB_BUILD_OPTIONS + including gccdebug. + * Remove obsolete libgccmath packaging support. + * Define SONAME macros whether the libraries are built or not. + + -- Matthias Klose Sun, 13 Dec 2015 16:04:56 +0100 + +gcc-6 (6-20151211-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from the trunk 20151211. + * Update gnat and gdc patches, re-enable gnat and gdc. + + -- Matthias Klose Fri, 11 Dec 2015 12:35:03 +0100 + +gcc-6 (6-20151210-1) experimental; urgency=medium + + * GCC 6 snapshot build, taken from 20151210. + + -- Matthias Klose Thu, 10 Dec 2015 22:09:13 +0100 + +gcc-5 (5.3.1-3) unstable; urgency=medium + + * Update to SVN 20151207 (r231361, 5.3.1) from the gcc-5-branch. + * Remove upstreamed chunks from the ada-kfreebsd patch. + + -- Matthias Klose Tue, 08 Dec 2015 02:10:51 +0100 + +gcc-5 (5.3.1-2) unstable; urgency=medium + + * Update to SVN 20151206 (r231339, 5.3.1) from the gcc-5-branch. + * Re-enable building gdc/libphobos, fixing the profiled build. + * Fix PR sanitizer/67899, build failure on sparc/sparc64. + + -- Matthias Klose Sun, 06 Dec 2015 19:15:46 +0100 + +gcc-5 (5.3.1-1) unstable; urgency=medium + + * Update to SVN 20151205 (r231314, 5.3.1) from the gcc-5-branch. + + -- Matthias Klose Sat, 05 Dec 2015 20:45:53 +0100 + +gcc-5 (5.3.0-3) unstable; urgency=medium + + * Update libgcc symbols file. + * Restore libgcc.symbols.aebi. + * Disabled profiled bootstraps for backports. + + -- Matthias Klose Sat, 05 Dec 2015 07:50:48 +0100 + +gcc-5 (5.3.0-1) experimental; urgency=medium + + * GCC 5.3 release. + - Fix PR libstdc++/65142 (CVE-2015-5276). + * Update gdc to the gcc-5 branch 20151130. + * Enable the profiled bootstrap on amd64, arm64, armel armhf, i386, powerpc, + ppc64, ppc64el, s390x, x32 (excluding builds from the Linaro branch). + * Move test summary into the gcc-test-results package. + * Simplify libatomic, libcilkrts, libgcc, libgfortran, libgomp, libitm, + libmpx, libquadmath symbols files using versioned symbol references. + Closes: #806784. + * Only build the hppa64 cross compiler when either building the native compiler, + or when cross building the native compiler. Closes: #806479. + * Configure staged build with --enable-linker-build-id. + + -- Matthias Klose Fri, 04 Dec 2015 12:01:04 +0100 + +gcc-5 (5.2.1-27) unstable; urgency=medium + + * Update to SVN 20151129 (r231053, 5.2.1) from the gcc-5-branch. + * Don't strip cc1plus when shipping with unstripped frontends. + * Relax libgnatvsn5-dev-*-cross and libgnatprj5-dev-*-cross dependencies + on gnat-5-*-linux-gnu. + * Fix setting the explicit libc dependency for cross builds. + * Don't build m4-nofpu multilibs on sh4, install the default multilib + into the standard location. + * Stop building gnat on mips64, see https://gcc.gnu.org/PR65337 (#806370). + * Update the patch for PR go/67508 and re-enable Go on sparc and sparc64. + * Fix gnat sparc/sparc64 architecture detection. + * Update libgcc and libstdc++ symbols files. + * Don't ship the gcov tools in the gcc-hppa64-linux-gnu package. + * Run the autoconf generation in parallel. + * Add --enable-default-pie option to GCC configure, taken from the trunk. + * Enable gnat for m68k cross builds. + * Link gnat tools, gnat libs and libgccjit with the defaults LDFLAGS. + * Skip non-default multilib and libstdc++-v3 debug builds in bootstrap builds. + * Ship an empty debian/rules.parameters in the gcc-5-source package. + + -- Matthias Klose Sun, 29 Nov 2015 23:48:58 +0100 + +gcc-5 (5.2.1-26) unstable; urgency=medium + + * Update to SVN 20151125 (r230897, 5.2.1) from the gcc-5-branch. + * Fix the rtlibs stage build. Closes: #806186. + * Fix packaging the cross libphobos package. + * Build the hppa64 cross compiler on x86 architectures. + * gcc-5-hppa64-linux-gnu: Stop providing unversioned tools using + alternatives. Build a gcc-hppa64-linux-gnu package instead. + * Split out a gcc-5-test-results package from g++-5, allowing a post + build analysis, and reducing the size of the g++-5 package. + + -- Matthias Klose Wed, 25 Nov 2015 20:33:08 +0100 + +gcc-5 (5.2.1-25) unstable; urgency=medium + + * Update to SVN 20151123 (r230734, 5.2.1) from the gcc-5-branch. + * Fix libgcc4-dbg dependency on libgcc4. Closes: #805839. + * Fix building epoch prefixed cross packages. + + -- Matthias Klose Mon, 23 Nov 2015 05:48:00 +0100 + +gcc-5 (5.2.1-24) unstable; urgency=medium + + * Update to SVN 20151121 (r230703, 5.2.1) from the gcc-5-branch. + * Fix PR libstdc++/56158, taken from the trunk. Closes: #804521. LP: #1514309. + * Don't try to build a gnat cross compiler when there is no gnat compiler + for the build architecture. + * Update gnat build dependencies for backports. + * Parallelize building documentation and parallelize the packaging step. + * Update the Linaro support to the 5-2015.11 snapshot. + + -- Matthias Klose Sat, 21 Nov 2015 11:22:16 +0100 + +gcc-5 (5.2.1-23) unstable; urgency=medium + + * Update to SVN 20151028 (r229478, 5.2.1) from the gcc-5-branch. + + [ Matthias Klose ] + * Update the Linaro support to the 5-2015.10 snapshot. + * gcj: On ppc64el, use the same jvm archdir name as for openjdk (ppc64le). + * gcj: Fix priority of java alternatives. Closes: #803055. + * gnat-5: Reintroduce the unversioned gnatgcc name. Closes: #802838. + + [ Aurelien Jarno ] + * Replace proposed patch for PR rtl-optimization/67736 by the one + committed on trunk. + + -- Matthias Klose Wed, 28 Oct 2015 10:36:54 +0100 + +gcc-5 (5.2.1-22) unstable; urgency=medium + + * Update to SVN 20151010 (r228681, 5.2.1) from the gcc-5-branch. + - Fix PR libstdc++/65913, PR libstdc++/67173, PR libstdc++/67747, + PR c/67730, PR middle-end/67563, PR lto/67699, PR tree-optimization/67821, + PR debug/58315. + + [ Matthias Klose ] + * Restore the work around for PR libstdc++/65913, still needed at least + for powerpc. + * Rename gcc-5-hppa64 to gcc-5-hppa64-linux-gnu, update (build) dependency + on binutils. Closes: #800563. + * Adjust setting DH_COMPAT for dh_movefiles with updated debhelper supporting + globbing of arguments. Closes: #800250. + * Build-depend on gnat-5 instead of gnat-4.9. + + [ Aurelien Jarno ] + * Do not Use --with-mips-plt on mips and mipsel. Closes: #799811. + + -- Matthias Klose Sat, 10 Oct 2015 22:17:09 +0200 + +gcc-5 (5.2.1-21) unstable; urgency=medium + + * Update to SVN 20151003 (r228449, 5.2.1) from the gcc-5-branch. + * Fix building gnat. Closes: #800781. + + -- Matthias Klose Sat, 03 Oct 2015 17:28:45 +0200 + +gcc-5 (5.2.1-20) unstable; urgency=medium + + * Update to SVN 20151002 (r228373, 5.2.1) from the gcc-5-branch. + * Fix packaging the ada cross library packages. + + -- Matthias Klose Fri, 02 Oct 2015 10:24:38 +0200 + +gcc-5 (5.2.1-19) unstable; urgency=medium + + * Update to SVN 20150930 (r228302, 5.2.1) from the gcc-5-branch. + - Fix PR ipa/66424. Closes: #800318. + + [ Matthias Klose ] + * Update the Linaro support to the 5-2015.09 snapshot. + * Fix PR libstdc++/67707, taken from the trunk. LP: #1499564. + * Ship libgcj.spec in gcj-5 instead of gcj-5-jdk. Closes: #800010. + * gcj-5: Suggest gcj-5-jdk. + * Fix base dependency for ada cross library packages. + * Add ${shlibs:Depends} for libgnatvsn and libgnatprj. + * Link lrealpath.o into libgnatprj. Closes: #800045. + * libgnat{svn,prj}-dev: For cross builds, move adainclude and adalib files + into the gcc libdir. + * Default to POWER8 on ppc64el. + * armv8: Fix slt lda missing conditional code (taken from the trunk). + * Fix lintian pre-depends-directly-on-multiarch-support warnings. + + [ Aurelien Jarno ] + * Apply proposed patch for PR rtl-optimization/67736 when building for + mips64 or mips64el. Closes: #800321. + + -- Matthias Klose Wed, 30 Sep 2015 20:36:50 +0200 + +gcc-5 (5.2.1-18) unstable; urgency=medium + + * Update to SVN 20150922 (r228023, 5.2.1) from the gcc-5-branch. + + [ Matthias Klose ] + * gcc-5-plugin-dev: Depend on libmpc-dev. Closes: #798997. + * Fix PR libstdc++/65913, taken from the trunk. Closes: #797577. + + [ YunQiang Su ] + * Build again the gnat-5-sjlj package. Closes: #798782. + * Fix gnat cross builds, and cross building gnat. + + -- Matthias Klose Tue, 22 Sep 2015 23:15:17 +0200 + +gcc-5 (5.2.1-17) unstable; urgency=medium + + * Update to SVN 20150911 (r227671, 5.2.1) from the gcc-5-branch. + - Fix PR c++/67369, ICE on valid code. LP: #1489173. + + [ Matthias Klose ] + * Build-depend on linux-libc-dev [m68k] for gcc and gcc-snapshot builds. + Closes: #796906. + * Don't ignore anymore bootstrap comparison failures on sh4. Closes: #796939. + * Fix stage1 cross build for KFreeBSD. Closes: #796901. + * libgo: Fix PR go/67508, rewrite lfstack packing/unpacking to look more + like that in Go (Michael Hudson). LP: #1472650. + * Fix PR target/67143 (AArch64), ICE on valid code. LP: #1481333. + + [ Aurelien Jarno ] + * Use --with-mips-plt on mips*. + * Build for R2 ISA on mips, mips64 and mips64el. + * Optimize for R2 ISA on mipsel. + * Only apply mips-fix-loongson2f-nop on mipsel. + + [ YunQiang Su ] + * Fix running the acats tests. Closes: #798531. + + -- Matthias Klose Fri, 11 Sep 2015 03:17:20 +0200 + +gcc-5 (5.2.1-16) unstable; urgency=medium + + * Update to SVN 20150903 (r227431, 5.2.1) from the gcc-5-branch. + - Backport the filesystem TS library. + * libstdc++-dev: Install libstdc++fs.a. + * Again, configure with --enable-targets=powerpcle-linux on ppc64el. + * Apply proposed patch for PR target/67211 (ppc64el). + * libgo-dev: Install libgolibbegin.a. + * Apply proposed patch for PR target/67280 (ARM). LP: #1482320. + + -- Matthias Klose Thu, 03 Sep 2015 12:16:15 +0200 + +gcc-5 (5.2.1-15) unstable; urgency=medium + + * Update to SVN 20150808 (r226731, 5.2.1) from the gcc-5-branch. + * Adjust libstdc++-breaks: Break libantlr-dev instead of antlr; + adjust libreoffice version (closes: #794203), drop xxsd break (see + #793289), remove cython breaks (closes: #794511), add breaks for + packages built using cython (chemps2, fiona, guiqwt, htseq, imposm, + pysph, pytaglib, python-scipy, python-sfml, rasterio). + * Ignore missing libstdc++ symbols on sparc64 (work around #792204). + + -- Matthias Klose Sat, 08 Aug 2015 11:18:24 +0200 + +gcc-5 (5.2.1-14) unstable; urgency=high + + * Fix libstdc++6 breaks. + + -- Matthias Klose Fri, 31 Jul 2015 04:12:08 +0200 + +gcc-5 (5.2.1-13) unstable; urgency=high + + * Upload to unstable (https://wiki.debian.org/GCC5). See also + https://lists.debian.org/debian-devel-announce/2015/07/msg00000.html + * Update to SVN 20150730 (r226411, 5.2.1) from the gcc-5-branch. + - Fix PR libstdc++/67015. Closes: #793784. + * Fix version macros in the plugin-header.h header. Closes: #793478. + * libstdc++6: Add breaks for issues tagged with gcc-pr66145. + * Add libcpprest2.4 to libstdc++6 breaks. Closes: #784655. + * Fix PR c++/66857, taken from the trunk. + * Ignore differences in gcc/real.o in the bootstrap build for + sh*-*linux-gnu targets. According to PR 67002, "A rare indeterminacy + of the register choice. Both codes are valid. It seems very hard to + find where has this indeterminacy come from". Suggested by Adrian + Glaubitz. + + -- Matthias Klose Thu, 30 Jul 2015 21:51:25 +0200 + +gcc-5 (5.2.1-12) experimental; urgency=medium + + * Update to SVN 20150723 (r226105, 5.2.1) from the gcc-5-branch. + * Fix PR libstdc++/66145, std::ios_base::failure objects thrown from + libstdc++.so using the gcc4-compatible ABI. + Just build src/c++11/functexcept.cc using the new ABI. It will break + code, which will be handled in the archive by adding Breaks for the + affected packages. Third party code using such code will need a rebuild. + * Remove the work around to build with -O1 on sh4. + + -- Matthias Klose Thu, 23 Jul 2015 14:18:44 +0200 + +gcc-5 (5.2.1-11) experimental; urgency=medium + + * Configure without --disable-libstdcxx-dual-abi. + * Configure with --with-default-libstdcxx-abi=c++11. + + -- Matthias Klose Fri, 17 Jul 2015 08:13:08 +0200 + +gcc-5 (5.2.1-1) experimental; urgency=medium + + * GCC 5.2 release. + * Update to SVN 20150716 (r225880, 5.2.1) from the gcc-5-branch. + * Require version 5.2 for the libstdc++6 cxx symbols. + * Ignore missing libstdc++ symbols on sparc64 (work around #792204). + * Go escape analysis: analyze multiple result type assertions (taken + from the trunk). + + -- Matthias Klose Thu, 16 Jul 2015 15:35:44 +0200 + +gcc-5 (5.1.1-14) unstable; urgency=medium + + * Update to SVN 20150711 (r225710, 5.1.1) from the gcc-5-branch. + + -- Matthias Klose Sat, 11 Jul 2015 11:57:19 +0200 + +gcc-5 (5.1.1-13) unstable; urgency=medium + + * Update to SVN 20150706 (r225471, 5.1.1) from the gcc-5-branch. + * Update libasan symbol files. + * Configure --with-fp-32=xx on all mips targets, setting MIPS O32 default + to FPXX (YunQiang Su). Closes: #789612. + * Update libgccjit symbol file. + * Add x32 symbols files for libgcc1 and libstdc++6. + * libgccjit0: Add breaks for python-gccjit and python3-gccjit. + + -- Matthias Klose Mon, 06 Jul 2015 19:55:08 +0200 + +gcc-5 (5.1.1-12) unstable; urgency=medium + + * Update to SVN 20150622 (r224724, 5.1.1) from the gcc-5-branch. + * Update symbols files for mips64 libatomic and libstdc++ (YunQiang Su). + Closes: #788990. + * Fix "empty-binary-package" lintian warnings. + + -- Matthias Klose Mon, 22 Jun 2015 14:37:49 +0200 + +gcc-5 (5.1.1-11) unstable; urgency=medium + + * Update to SVN 20150616 (r224519, 5.1.1) from the gcc-5-branch. + * gccgo: escape: Analyze binary expressions (taken from the trunk). + * Explicitly build with -Wl,--no-relax on alpha again. + * Build with -O1 on sh4 (try to work around PR target/66358). + + -- Matthias Klose Tue, 16 Jun 2015 16:11:59 +0200 + +gcc-5 (5.1.1-10) unstable; urgency=medium + + * Update to SVN 20150613 (r224454, 5.1.1) from the gcc-5-branch. + * Make removal of byte-compiled libstdc++ pretty printer files more + robust. Closes: #787630. + * Fix mips 32bit (o32) multilib builds (YunQiang Su). + * Build target libraries with -Wl,-z,relro. + * Build libstdc++6 when building the common libraries. + * Fix a bunch of lintian warnings. + + -- Matthias Klose Sat, 13 Jun 2015 12:59:17 +0200 + +gcc-5 (5.1.1-9) unstable; urgency=medium + + * Update to SVN 20150602 (r224029, 5.1.1) from the gcc-5-branch. + * Remove byte-compiled libstdc++ pretty printer files on upgrade. + Closes: #785939. + * Fix dangling libgccjit.so symlink. + * Fix base dependency for rtlibs stage builds. + * Fix build failure of the hppa64 cross compiler, introduced by the + gnat cross patches. Closes: #786692. + * Update README.source (Michael Vogt). + * libgo: syscall.Sendfile(): Apply proposed patch for PR go/66378. + (Michael Vogt). LP: #1460530. + * Set CC and CXX matching the same GCC version for the stage1 build. + * Work around PR go/66368, build libgo with -fno-stack-protector. + LP: #1454183. + + -- Matthias Klose Wed, 03 Jun 2015 00:49:41 +0200 + +gcc-5 (5.1.1-8) unstable; urgency=medium + + * Update to SVN 20150528 (r223816, 5.1.1) from the gcc-5-branch. + * Set the priorities of the *-dev-*-cross packages to extra. + * Prepare to change the base dependency for *-cross packages. + * Fix dependencies for stage1 and stage2 builds. + * Relax dependencies on binary indep *-dev-*-cross packages. + * Disable building gdc on sh4 (bootstrap comparison failure). + + -- Matthias Klose Thu, 28 May 2015 15:51:00 +0200 + +gcc-5 (5.1.1-7) unstable; urgency=medium + + * Update to SVN 20150522 (r223579, 5.1.1) from the gcc-5-branch. + * Add description for the ada-gnattools-cross patch (YunQiang Su). + * Provide a rtlibs stage to build a subset of target library packages. + * Make symbols file symlinking for cross builds more robust. + * Prefer gnatgcc-5 over gnatgcc when building native packages. + * Various fixes to build a gnat cross compiler: + - Fix dependencies of packages. + - Fix building libgnatprj and libgnatvsn (still needed to figure + out if these are target or host libraries). + * Fix building cross compilers with dpkg 1.18. + + -- Matthias Klose Fri, 22 May 2015 18:20:01 +0200 + +gcc-5 (5.1.1-6) unstable; urgency=medium + + * Update to SVN 20150519 (r223346, 5.1.1) from the gcc-5-branch. + * Don't build gdc-multilib on armel. + * Remove old CFLAGS/LDFLAGS settings to build gdc. + * Remove reference to .ico file in NEWS.html. + * Fix gcc's dependency on libcc1-0 for native builds. + * Fix stripping the rpath when cross-building cross compilers. + * Remove work arounds to build 64bit multilibs on 32bit targets, + now properly fixed upstream. + * Partially apply patches to build a gnat cross compiler (submitted + by YunQiang Su). + - gnatmake: Call the versioned gnatbind and gnatlink commands. + Closes: #782257. + - Allow libgnatprj and libgnatvsn to cross build. Addresses: #783372. + - New patch ada-gnattools-cross.diff (no documentation). + * Backport patch for gccgo: + - gccgo: If unary & does not escape, the var does not escape. + * Apply the backported patches for the go escape analysis. Need to + be enabled with -fgo-optimize-alloc (this option may go away again). + * Re-enable running the tests. + + -- Matthias Klose Tue, 19 May 2015 10:33:40 +0200 + +gcc-5 (5.1.1-5) unstable; urgency=medium + + * Update to SVN 20150507 (r222873, 5.1.1) from the gcc-5-branch. + * Fix 32bit libstdc++ symbols files for kfreebsd-amd64. + * libx32phobos-dev: Don't depend on libx32z-dev, when not available. + * Fix gotools configury. + * Configure with + --disable-libstdcxx-dual-abi --with-default-libstdcxx-abi=c++98 + While libstdc++ provides a dual ABI to support both the c++98 and c++11 + ABI, there is no committment on compatibility of the old experimental + c++11 ABI from GCC 4.9 and the stable c++11 ABI in GCC 5. + Closes: #784655. + + -- Matthias Klose Fri, 08 May 2015 18:48:49 +0200 + +gcc-5 (5.1.1-4) unstable; urgency=medium + + * Update to SVN 20150503 (r222751, 5.1.1) from the gcc-5-branch. + - Fix build failure on alpha. + * Fix applying the cross-biarch patch for stage1 builds. + * Fix libstdc++ symbols files for kfreebsd-amd64. + * Remove libn32phobos-5-dev from the control file. + * Really disable gnat on x32. + + -- Matthias Klose Sat, 02 May 2015 19:18:57 +0200 + +gcc-5 (5.1.1-3) unstable; urgency=high + + * Update to SVN 20150430 (r222660, 5.1.1) from the gcc-5-branch. + * Fix libstdc++ symbols files for kfreebsd-i386. + * PR libstdc++/62258, fix for std::uncaught_exception, taken from the trunk. + LP: #1439451. + * Backport patches for gccgo (not yet applied): + - Consider multi-result calls in escape analysis. + - Propagate escape info from closures to enclosed variables. + - Analyze function values and conversions. + - Use backend interface for stack allocation. + * More libstdc++ symbols updates for the Hurd and KFreeBSD. + * config-ml.in: Add D support. + * Update cross-biarch.diff to support D and Go. + * Apply the cross-biarch patch for every cross build. + + -- Matthias Klose Thu, 30 Apr 2015 15:42:05 +0200 + +gcc-5 (5.1.1-2) unstable; urgency=medium + + * Update to SVN 20150428 (r222550, 5.1.1) from the gcc-5-branch. + * Fix the gnat build dependency. + * Don't build go and gofmt for cross compilers. + + -- Matthias Klose Tue, 28 Apr 2015 23:57:14 +0200 + +gcc-5 (5.1.1-1) unstable; urgency=medium + + * GCC 5.1.0 release. + * Update to SVN 20150424 (r222416, 5.1.1) from the gcc-5-branch. + * Update NEWS files. + * Apply the ada-bootstrap-compare patch for snapshot builds as well. + * Update libasan, libgomp and libstdc++ symbols files. + * Don't ignore errors in dh_makeshlibs and dh_shlibdeps anymore, symbols + files should be uptodate now. + * Split out the sjlj build related things from the ada-acats patch into + a new ada-acats-sjlj patch. + * Don't build libx32phobos-5-dev when not building x32 multilibs. + * Fix standard C++ include directory for cross builds. Closes: #783241. + * Ignore bootstrap comparison failure on ia64. Filed upstream as + PR middle-end/65874. + * gccgo: Add (don't yet apply) a patch to implement escape analysis (taken + from the trunk). Turned off by default, enable with -fgo-optimize-alloc. + + -- Matthias Klose Fri, 24 Apr 2015 18:42:39 +0200 + +gcc-5 (5.1~rc1-1) experimental; urgency=medium + + * GCC 5.1 release candidate 1. + * Update to SVN 20150414 (r222066) from the gcc-5-branch. + * Update GDC to the gcc-5 branch, 20140414. + * Don't build libobjc, when not building the common libraries. + * Don't run the gccjit tests on KFreeBSD. Works around #782444:. + * Fix not building libs built by the next GCC version. + + -- Matthias Klose Tue, 14 Apr 2015 02:03:53 +0200 + +gcc-5 (5-20150410-1) experimental; urgency=medium + + * Update to SVN 20150410 + + [ Matthias Klose ] + * Fix /usr/include/c++/5.0.0 symlink. + * Re-enable building the D frontend. Closes: #782254. + * gccgo: Install libnetgo. + + [ Samuel Thibault ] + * Fix ada builds on the Hurd and KFreeBSD. Closes: #781424. + + -- Matthias Klose Sat, 11 Apr 2015 02:24:08 +0200 + +gcc-5 (5-20150404-1) experimental; urgency=medium + + * Update to SVN 20150404. + * Don't explicitly configure --with-gxx-include-dir and an absolute path, + so the toolchain remains relocatible. Instead, canonicalize the include + path names at runtime. + * Don't link libgnatprj using --no-allow-shlib-undefined on older releases. + * Don't build libmpx on older releases. + * Remove the work around to build libgccjit on arm64. + * Fix the libgccjit build using the just built compiler. + * Don't break other gcc, gcj, gnat -base packages for backports, only + needed for dist-upgrades. + * Don't add -gtoggle to STAGE3_CFLAGS (disabling the bootstrap comparison). + Instead, ignore the one differing file (gcc/ada/a-except.o) for now. + See #781457, PR ada/65618. + * Update libasan, libtsan, libgfortran and libstdc++ symbols files. + * Add symbols files for libmpx, libgccjit and libcc1. + + -- Matthias Klose Sat, 04 Apr 2015 21:53:45 +0200 + +gcc-5 (5-20150329-1) experimental; urgency=medium + + * Update to SVN 20150329. + * Fix building the gnat-5-doc package. + * Fix gnat build dependencies. + * Fix installation of the gnat upstream ChangeLog. Closes: #781451. + * Restore the bootstrap-debug.mk patch to the ada-mips patch + for debugging purposes. See #781457. + + -- Matthias Klose Sun, 29 Mar 2015 18:53:29 +0200 + +gcc-5 (5-20150327-1) experimental; urgency=medium + + * Update to SVN 20150327. + * Update libcc1 build support. + * Fix syntax in libstdc++ symbols file. Closes: #780991. + * Fix PR go/65417: Add support for PPC32 relocs to debug/elf. LP: #1431388. + * Fix PR go/65462: Fix go get dependencies. LP: #1432497. + * Limit the omp.h multilib fix to Linux. Closes: #778440. + * For ICEs, dump the preprocessed source file to stderr when in a + distro build environment. + * Remove the bootstrap-debug.mk patch from the ada-mips patch. + * gnat related work (partly based on #780640): + - Update patches for GCC 5. + - Build the gnat packages from the gcc-5 source package. + - Don't build a gnat-base package from the gcc-5 source. + - Stop building the gnat-5-sjlj package for now, patch needs an update. + - Fix the packaging when not building the gnat-5-sjlj package. + - Don't apply the ada-symbolic-tracebacks, patch needs an update. + - Fix the libgnatprj build, build with -DIN_GCC. + * Replace cloog/ppl build bits with isl build bits. + + -- Matthias Klose Fri, 27 Mar 2015 21:05:16 +0100 + +gcc-5 (5-20150321-1) experimental; urgency=medium + + * Update to SVN 20150321. + * Move the libcc1plugin from the gcc-5-plugin-dev package into the + gcc-5 package. + + -- Matthias Klose Sat, 21 Mar 2015 15:01:15 +0100 + +gcc-5 (5-20150316-1) experimental; urgency=medium + + * Update to SVN 20150316. + - Fix bootstrap failures on armel, armhh and arm64. + * Configure with --enable-checking=yes (instead of =release). + + -- Matthias Klose Tue, 17 Mar 2015 00:30:27 +0100 + +gcc-5 (5-20150314-1) experimental; urgency=medium + + * Update to SVN 20150314. + - libgo: Add arm64 to the pointer size map (Michael Hudson). + - libgo: Add ppc to the pointer size map. + - PR go/65404, enable cgo on arm64 and powerpc. LP: #1431032. + - Fix PR/tree-optimization 65418. Closes: #778163. + - Fix PR c++/65370. Closes: #778073. + * Enable libmpx builds on amd64 and i386. + * Update the gcc-multiarch patch for mips64 (YunQiang Su). + Closes: #776402, #780271. + * Remove pr52306 and pr52714 patches, applied upstream. Closes: #780468. + + -- Matthias Klose Sat, 14 Mar 2015 14:48:19 +0100 + +gcc-5 (5-20150307-1) experimental; urgency=medium + + * Update to SVN 20150307. + - Update gccgo to Go 1.4.2. + * Enable libsanitizer for AArch64 and POWERPC LE (asan, ubsan). + * Remove the support to build empty libsanitizer packages on powerpc + and ppc64; libsanitizer should be stable on these architectures. + * Fix libcc1.so symlink. Closes: #779341. + * Revert the fix for PR65150 on armel and armhf to restore bootstrap. + * Don't strip the libgo library, or some things won't work as documented, + like runtime.Callers. Still keep the -dbg packages and check if some + debug information can be stripped. + * gccgo-5: Install alternatives for go and gofmt. + + -- Matthias Klose Sat, 07 Mar 2015 12:20:59 +0100 + +gcc-5 (5-20150226-1) experimental; urgency=medium + + * Update to SVN 20150226. + - Fix PR c/65040 (closes: #778514), PR tree-optimization/65053 + (closes: #778070, #778071), PR c++/64898 (closes: #778472). + * Allow not to strip the compiler executables to be able to print backtraces + for ICEs. + * Fix gnat build on mips64el (James Cowgill). Addresses: #779191. + * Fix the hppa64 cross build (John David Anglin). Closes: #778658. + * Fix libstdc++ pretty printers for Python3. Closes: #778436. + + -- Matthias Klose Thu, 26 Feb 2015 08:18:23 +0100 + +gcc-5 (5-20150205-1) experimental; urgency=medium + + * Update to SVN 20150205. + * Update GDC for GCC 5. + * Build GDC multilib packages. + * Update cross-install-location.diff for gcc-5. Closes: #776100. + * Configure --with-default-libstdcxx-abi=c++11 for development, + --with-default-libstdcxx-abi=c++98 for backports. + * Apply proposed patch for PR target/64893 (AArch64), build using + 4.9 on AArch64 for now. + * Don't disable bootstrap mode for the jit build on arm64, gets + miscompiled. + * Allow one to build using gettext built with a newer GCC. + + -- Matthias Klose Thu, 05 Feb 2015 18:31:17 +0100 + +gcc-5 (5-20150127-1) experimental; urgency=medium + + * Update to SVN 20150127. + * More symbol file updates. + * Fix libbacktrace and libsanitizer multilib builds. + * Fix libssp builds on 64bit architectures. + * Update hardening testsuite patches for GCC 5. + + -- Matthias Klose Tue, 27 Jan 2015 14:10:30 +0100 + +gcc-5 (5-20150121-1) experimental; urgency=medium + + * GCC 5 (SVN trunk 20150121). + * Build new binary packages libcc1-0, libgccjit0, libgccjit-5-dev, + libgccjit-5-dbg, libgccjit-5-doc. + * Update symbols files (still incomplete). + + -- Matthias Klose Wed, 21 Jan 2015 21:02:05 +0100 + +gcc-4.9 (4.9.2-10) UNRELEASED; urgency=medium + + * Update to SVN 20150120 (r219885) from the gcc-4_9-branch. + - Fix PR libstdc++/64476, PR libstdc++/60966, PR libstdc++/64239, + PR libstdc++/64649, PR libstdc++/64584, PR libstdc++/64585, + PR libstdc++/64646, + PR middle-end/63704 (ice on valid), PR target/64513 (x86), + PR rtl-optimization/64286 (wrong code), PR tree-optimization/64563 (ice), + PR middle-end/64391 (ice on valid), PR c++/54442 (ice on valid), + PR target/64358 (rs6000, wrong code), PR target/63424 (AArch64, ice on + valid), PR target/64479 (SH), PR rtl-optimization/64536, PR target/64505 + (rs6000), PR target/61413 (ARM, wrong code), PR target/64507 (SH), + PR target/64409 (x32, ice on valid), PR c++/64487 (ice on valid), + PR c++/64352, PR c++/64251 (rejects valid), PR c++/64297 (ice on valid), + PR c++/64029 (ice on valid), PR c++/63657 (diagnostic), PR c++/38958 + (diagnostic), PR c++/63658 (rejects valid), PR ada/64492 (build), + PR fortran/64528 (ice on valid), PR fortran/63733 (wrong code), + PR fortran/56867 (wrong code), PR fortran/64244 (ice on valid). + * Update the Linaro support to the 4.9-2015.01 release. + + -- Matthias Klose Tue, 20 Jan 2015 12:45:13 +0100 + +gcc-4.9 (4.9.2-10) unstable; urgency=medium + + * Really add x32 multilib packages for i386 cross builds to the control file. + Closes: #773265. + * Use the final binutils 2.25 release. + * Tighten the gcc-4.9 dependency on libgcc-4.9-dev (YunQiang Su). + + -- Matthias Klose Thu, 25 Dec 2014 18:10:51 +0100 + +gcc-4.9 (4.9.2-9) unstable; urgency=medium + + * Update to SVN 20141220 (r218987) from the gcc-4_9-branch. + - Fix PR libstdc++/64302, PR libstdc++/64303, PR c++/60955, + PR rtl-optimization/64010 (wrong code), PR sanitizer/64265 (wrong code). + * Add x32 multilib packages for i386 cross builds to the control file. + Closes: #773265. + * Fix mips64el multilib cross builds. Closes: #772665. + * libphobos-4.x-dev: Stop providing libphobos-dev, now a real package. + + -- Matthias Klose Sat, 20 Dec 2014 07:47:15 +0100 + +gcc-4.9 (4.9.2-8) unstable; urgency=medium + + * Update to SVN 20141214 (r218721) from the gcc-4_9-branch. + - Fix PR tree-optimization/62021 (ice), PR middle-end/64225 (missed + optimization), PR libstdc++/64239, PR rtl-optimization/64037 (wrong + code), PR target/64200 (x86, ice), PR tree-optimization/64269 (ice). + * Don't build libphobos multilibs, there is no gdc-multilib build. + * Really disable the sanitizer libs on powerpc, ppc64 and ppc64el. + * Paste config.log files to stdout in case of build errors. + + -- Matthias Klose Sun, 14 Dec 2014 18:43:49 +0100 + +gcc-4.9 (4.9.2-7) unstable; urgency=medium + + * Update to SVN 20141210 (r218575) from the gcc-4_9-branch. + - Fix PR libstdc++/64203, PR target/55351 (SH), PR tree-optimization/61686, + PR bootstrap/64213. + - libgcc hppa backports. + * Fix cross builds with dpkg-architecture unconditionally exporting + target variables. For now specify the target architecture + in debian/target. This still needs to work with older dpkg versions, + so don't "simplify" the packaging. Closes: #768167. + + -- Matthias Klose Wed, 10 Dec 2014 13:32:42 +0100 + +gcc-4.9 (4.9.2-6) unstable; urgency=medium + + * Update to SVN 20141209 (r218510) from the gcc-4_9-branch. + - Fix PR libstdc++/63840, PR libstdc++/61947, PR libstdc++/64140, + PR target/50751 (SH), PR target/64108 (x86, ice), + PR rtl-optimization/64037 (wrong-code), PR c++/56493 (performance), + PR c/59708, PR ipa/64153, PR target/64167) (wrong code, + closes: #771974), PR target/59593 (ARM, wrong code), + PR middle-end/63762 (ARM. wrong code), PR target/63661 (x86, + wrong code), PR target/64113 (alpha, wrong code), PR c++/64191. + - Allow one to build with ISL 0.14. + + -- Matthias Klose Tue, 09 Dec 2014 11:00:08 +0100 + +gcc-4.9 (4.9.2-5) unstable; urgency=medium + + * Update to SVN 20141202 (r218271) from the gcc-4_9-branch. + - Fix PR middle-end/64111 (ice), PR ipa/63551 (wrong code). + PR libstdc++/64102 (closes: #770843), PR target/64115 (powerpc). + * Move libphobos2.a into the gcc_lib_dir. Closes: #771647. + * Fix typo in last powerpcspe patch. Closes: #771654. + + -- Matthias Klose Tue, 02 Dec 2014 17:42:07 +0100 + +gcc-4.9 (4.9.2-4) unstable; urgency=medium + + * Update to SVN 20141128 (r218142) from the gcc-4_9-branch. + -PR PR target/56846 (ARM), PR libstdc++/63497, + PR middle-end/63738 (wrong code), PR tree-optimization/62238 (ice), + PR tree-optimization/61927 (wrong code), + PR tree-optimization/63605 (wrong code), PR middle-end/63665 (wrong code), + PR fortran/63938 (OpenMP), PR middle-end/64067 (ice), + PR tree-optimization/63915 (wrong code), PR sanitizer/63913 (ice valid), + PR rtl-optimization/63659 (wrong code). + * Don't let stage1 multilib builds depend on the multilib libc-dev. + Closes: #771243. + * Fix an exception problem on powerpcspe (Roland Stigge). Closes: #771324. + * Remove unsupported with_deps_on_target_arch_pkgs configurations. + Closes: #760770, #766924, #770413. + + -- Matthias Klose Fri, 28 Nov 2014 15:26:23 +0100 + +gcc-4.9 (4.9.2-3) unstable; urgency=medium + + * Update to SVN 20141125 (r218048) from the gcc-4_9-branch. + - PR target/53976 (SH), PR target/63783 (SH), PR target/51244 (SH), + PR target/60111 (SH), PR target/63673 (ppc), + PR tree-optimization/61750 (ice), PR target/63947 (x86, wrong code), + PR tree-optimization/62167 (wrong code), PR c++/63849 (ice), + PR ada/47500. + + [ Aurelien Jarno ] + * Always configure sh4-linux with --with-multilib-list=m4,m4-nofpu, + even with multilib disabled, as it doesn't produce additional + libraries. + + [ Matthias Klose ] + * gcc-4.9-base: Add Breaks: gcc-4.7-base (<< 4.7.3). Closes: #770025. + + -- Matthias Klose Tue, 25 Nov 2014 17:04:19 +0100 + +gcc-4.9 (4.9.2-2) unstable; urgency=medium + + * Update to SVN 20141117 (r217768) from the gcc-4_9-branch. + - Fix PR rtl-optimization/63475, PR rtl-optimization/63483 (gfortran + aliasing fixes for alpha), PR target/63538 (x86), PR ipa/63838 (wrong + code), PR target/61535 (sparc), PR c++/63265 (diagnostic), PR ada/42978. + * Fix PR c/61553 (ice on illegal code), backported from the trunk. + Closes: #767668. + * Disable building the sanitizer libs on powerpc and ppc64. Not yet + completely ported, and causing kernel crashes running the tests. + * Update the Linaro support to the 4.9-2014.11 release. + + -- Matthias Klose Tue, 18 Nov 2014 00:34:01 +0100 + +gcc-4.9 (4.9.2-1) unstable; urgency=medium + + * GCC 4.9.2 release. + * Update GDC from the 4.9 branch. + + [ Matthias Klose ] + * Allow one to build the gcc-base package only. + + [Ludovic Brenta] + Merge from gnat-4.9 (4.9.1-4) unstable; urgency=low. + * debian/patches/ada-libgnatvsn.diff: compile the version.o of + libgnatvsn.{a,so} with -DBASEVER=$(FULLVER) to align it with the + change made in gcc-base-version.diff, which is compiled into gcc and + gnat1. Fixes: #759038. + * debian/patches/ada-revert-pr63225.diff: new; preserve the aliversion + compatibility of libgnatvsn4.9-dev with -3. + + Merge from gnat-4.9 (4.9.1-3) unstable; urgency=low + Merge from gnat-4.9 (4.9.1-2) unstable; urgency=low + + [Svante Signell] + * debian/patches/ada-hurd.diff: update and bring up to par with + ada-kfreebsd.diff. + + [Ludovic Brenta] + * Rebuild with newer dpkg. Fixes: #761248. + + Merge from gnat-4.9 (4.9.1-1) unstable; urgency=low + + * New upstream release. Build-depend on gcc-4.9-source (>= 4.9.1). + Fixes: #755490. + * debian/rules.d/binary-ada.mk: install the test-summary file in package + gnat-4.9 instead of gnat-4.9-base. test-summary is actually + architecture-dependent. This change reflects what happens in gcc-4.9 + and gcc-4.9-base as well. Fixes: #749869. + + Merge from gnat-4.9 (4.9.0-2) unstable; urgency=low + + * Lintian warnings: + * debian/control.m4 (gnat-4.9-base): Multi-Arch: same. + * debian/patches/ada-749574.diff: new. Fixes: #749574. + + -- Matthias Klose Tue, 04 Nov 2014 02:58:33 +0100 + +gcc-4.9 (4.9.1-19) unstable; urgency=medium + + * GCC 4.9.2 release candidate. + * Update to SVN 20141023 (r216594) from the gcc-4_9-branch. + * Install sanitizer header files. + * Apply patch for PR 60655, taken from the trunk. + * Fix typo in the libstdc++ HTML docs. Closes: #766498. + * Use doxygen's copy of jquery.js for the libstdc++ docs. Closes: #766499. + * Force self-contained cross builds. + * Don't build functionally non-equivalent cross compilers. + * Update the Linaro support to the 4.9-2014.10-1 release. + + -- Matthias Klose Fri, 24 Oct 2014 14:20:00 +0200 + +gcc-4.9 (4.9.1-18) unstable; urgency=medium + + * Update to SVN 20141018 (r216426) from the gcc-4_9-branch. + + [ Matthias Klose ] + * Update libstdc++ symbols file for powerpcspe (Roland Stigge). + Closes: #765078. + + -- Matthias Klose Sat, 18 Oct 2014 16:28:09 +0200 + +gcc-4.9 (4.9.1-17) unstable; urgency=medium + + * Update to SVN 20141015 (r216240) from the gcc-4_9-branch. + - Fix PR c++/63405 (ice) Closes: #761549. + - Fix PR ipa/61144 (wrong code). Closes: #748681. + + -- Matthias Klose Wed, 15 Oct 2014 10:29:23 +0200 + +gcc-4.9 (4.9.1-16) unstable; urgency=medium + + * Update to SVN 20140930 (r215717) from the gcc-4_9-branch. + * Don't suggest libvtv and binutils-gold. Closes: #761612. + + -- Matthias Klose Tue, 30 Sep 2014 11:37:48 +0200 + +gcc-4.9 (4.9.1-15) unstable; urgency=medium + + * Update to SVN 20140919 (r215401) from the gcc-4_9-branch. + + [ Matthias Klose ] + * Extend the fix for PR target/63190 (AArch64). Closes: #758964. + * Apply proposed fix for Linaro #331, LP: #1353729 (AArch64). + + [ Aurelien Jarno ] + * Default to mips64 ISA on mips64el, with tuning for mips64r2. + + -- Matthias Klose Fri, 19 Sep 2014 20:17:27 +0200 + +gcc-4.9 (4.9.1-14) unstable; urgency=medium + + * Update to SVN 20140912 (r215228) from the gcc-4_9-branch. + * Update the Linaro support to the 4.9-2014.09 release. + * Fix installation of the libstdc++ documentation. Closes: #760872. + + -- Matthias Klose Fri, 12 Sep 2014 19:15:23 +0200 + +gcc-4.9 (4.9.1-13) unstable; urgency=medium + + * Update to SVN 20140908 (r215008) from the gcc-4_9-branch. + * Enable cgo on AArch64 (Michael Hudson). LP: #1361940. + * Update the Linaro support from the Linaro/4.9 branch. + * Fix PR target/63190 (AArch64), taken from the trunk. Closes: #758964. + + -- Matthias Klose Mon, 08 Sep 2014 09:56:50 +0200 + +gcc-4.9 (4.9.1-12) unstable; urgency=medium + + [ Samuel Thibault ] + * boehm-gc: use anonymous mmap instead of brk also on hurd-*. + Closes: #753791. + + -- Matthias Klose Sun, 31 Aug 2014 18:40:46 +0200 + +gcc-4.9 (4.9.1-11) unstable; urgency=medium + + * Update to SVN 20140830 (r214759) from the gcc-4_9-branch. + * Update cross installation patches for the branch. + * Use the base version (4.9) when accessing files in gcc_lib_dir. + + -- Matthias Klose Sat, 30 Aug 2014 22:05:47 +0200 + +gcc-4.9 (4.9.1-10) unstable; urgency=medium + + * Update to SVN 20140830 (r214751) from the gcc-4_9-branch. + * Fix jni symlinks in /usr/lib/jvm. Closes: #759558. + * Update the Linaro support from the Linaro/4.9 branch. + - Fixes Aarch64 cross build on i386. + + -- Matthias Klose Sat, 30 Aug 2014 04:47:19 +0200 + +gcc-4.9 (4.9.1-9) unstable; urgency=medium + + * Update to SVN 20140824 (r214405) from the gcc-4_9-branch. + * Fix -dumpversion output to print the full version number. + Addresses: #759038. LP: #1360404. + Use the GCC base version for the D include dir name. + + -- Matthias Klose Sun, 24 Aug 2014 10:09:28 +0200 + +gcc-4.9 (4.9.1-8) unstable; urgency=medium + + * Update to SVN 20140820 (r214215) from the gcc-4_9-branch. + * Fix PR middle-end/61294, -Wmemset-transposed-args, taken from the trunk. + LP: #1352836. + * Update the Linaro support to 4.9-2014.08. + * Fix PR tree-optimization/59586, graphite segfault, taken from the trunk. + LP: #1227789. + * Fix multilib castrated cross builds on mips64el (YunQiang Su, Helmut + Grohne). Closes: #758408. + * Apply Proposed patch for PR target/62040 (AArch64). LP: #1351227. + Closes: #757738. + + -- Matthias Klose Wed, 20 Aug 2014 11:36:40 +0200 + +gcc-4.9 (4.9.1-7) unstable; urgency=medium + + * Build-depend on dpkg-dev (>= 1.17.11). + + -- Matthias Klose Thu, 14 Aug 2014 22:12:29 +0200 + +gcc-4.9 (4.9.1-6) unstable; urgency=medium + + * Update to SVN 20140813 (r213955) from the gcc-4_9-branch. + * Really fix the GFDL build on AArch64. Closes: #757153. + * Disable Ada for snapshot builds on kfreebsd-i386, kfreebsd-amd64. + Local patch needs an update and upstreaming. + * Apply the local ada-mips patch for snapshot builds too. + * Disable Ada for snapshot builds on mips, mipsel. Bootstrap comparision + failure. Local patch needs upstreaming. + * Disable Ada for snapshot builds on hurd-i386, build dependencies are + not installable. + * Don't build the sanitizer libs for sparc snapshot builds. + * Proposed backport for PR libstdc++/61841. Closes: #749290. + + -- Matthias Klose Thu, 14 Aug 2014 17:53:43 +0200 + +gcc-4.9 (4.9.1-5) unstable; urgency=medium + + * Update to SVN 20140808 (r213759) from the gcc-4_9-branch. + - Fix PR tree-optimization/61964. LP: #1347147. + * Fix libphobos cross build. + + -- Matthias Klose Fri, 08 Aug 2014 17:28:55 +0200 + +gcc-4.9 (4.9.1-4) unstable; urgency=high + + * Update to SVN 20140731 (r213317) from the gcc-4_9-branch. + - CVE-2014-5044, fix integer overflows in array allocation in libgfortran. + Closes: #756325. + * Build libphobos on armel and armhf. Closes: #755390. + * Fix java.security symlink. Closes: #756484. + + -- Matthias Klose Thu, 31 Jul 2014 10:15:27 +0200 + +gcc-4.9 (4.9.1-3) unstable; urgency=medium + + * Update to SVN 20140727 (r213100) from the gcc-4_9-branch. + * Fix the GFDL build on AArch64. + * Fix PR libobjc/61920, libobjc link failure on powerpc*. Closes: #756096. + + -- Matthias Klose Sun, 27 Jul 2014 15:25:24 +0200 + +gcc-4.9 (4.9.1-2) unstable; urgency=medium + + * Update to SVN 20140724 (r213031) from the gcc-4_9-branch. + + * Fix installing test logs and summaries. + * Warn about ppc ELFv2 ABI issues, which will change in GCC 4.10. + * Don't gzip the xz compressed testsuite logs and summaries. + * Build libphobos on armel and armhf. Closes: #755390. + * Update the Linaro support to the 4.9-2014.07 release. + + -- Matthias Klose Thu, 24 Jul 2014 23:59:49 +0200 + +gcc-4.9 (4.9.1-1) unstable; urgency=medium + + * GCC 4.9.1 release. + * Update GDC form the 4.9 branch (20140712). + + -- Matthias Klose Wed, 16 Jul 2014 17:15:14 +0200 + +gcc-4.9 (4.9.0-11) unstable; urgency=medium + + * GCC 4.9.1 release candidate 1. + * Update to SVN 20140712 (r212479) from the gcc-4_9-branch. + - Fix PR middle-end/61725. Closes: #754548. + + * Add libstdc++ symbols files for mips64 and mips64el (Yunqiang Su). + Closes: #745372. + * Set java_cpu to ppc64 on ppc64el. + * Build AArch64 from the Linaro 4.9-2014.06 release. + * Re-enable running the testsuite on KFreeBSD and the Hurd. + * Re-enable running the libstdc++ testsuite on arm*, mips* and hppa. + + -- Matthias Klose Sat, 12 Jul 2014 13:10:46 +0200 + +gcc-4.9 (4.9.0-10) unstable; urgency=medium + + * Update to SVN 20140704 (r212295) from the gcc-4_9-branch. + + * Explicitly set cpu_32 to ultrasparc for sparc64 builds. + * Fix --with-long-double-128 for sparc32 when defaulting to 64-bit. + * Ignore missing libstdc++ symbols on armel and hppa. The future and + exception_ptr implementation is incomplete. For more information see + https://gcc.gnu.org/ml/gcc/2014-07/msg00000.html. + + -- Matthias Klose Fri, 04 Jul 2014 15:55:09 +0200 + +gcc-4.9 (4.9.0-9) unstable; urgency=medium + + * Update to SVN 20140701 (r212192) from the gcc-4_9-branch. + * Update libstdc++ symbols files for ARM. + * Configure --with-cpu-32=ultrasparc on sparc64. + + -- Matthias Klose Tue, 01 Jul 2014 10:47:11 +0200 + +gcc-4.9 (4.9.0-8) unstable; urgency=medium + + * Update to SVN 20140624 (r211959) from the gcc-4_9-branch. + + * Don't ignore dpkg-shlibdeps errors for libstdc++6, left over from initial + 4.9 uploads. + * Update libgcc1 symbols for sh4. Closes: #751919. + * Stop building the libvtv packages. Not usable unless the build is + configured with --enable-vtable-verify, which comes with a performance + penalty just for the stubs in libstdc++. + * Update libstdc++ and libvtv symbols files for builds configured with + --enable-vtable-verify. + * Remove version requirement for dependency on make. Closes: #751891. + * Fix removal of python byte-code files in libstdc++6. Closes: #751435. + * Fix a segfault in the driver from calling free on non-malloc'd area. + * Drop versioned build dependency on gdb, and apply the pretty printer + patch for libstdc++ based on the release. + * Add support to build with isl-0.13. + + -- Matthias Klose Wed, 25 Jun 2014 20:08:09 +0200 + +gcc-4.9 (4.9.0-7) unstable; urgency=medium + + * Update to SVN 20140616 (r211699) from the gcc-4_9-branch. + + [ Matthias Klose ] + * Fix patch application for powerpcspe (Helmit Grohne). Closes: #751001. + + Update context for powerpc_remove_many. + + Drop gcc-powerpcspe-ldbl-fix applied upstream. + + [ Aurelien Jarno ] + * Fix PR c++/61336, taken from the trunk. + + -- Matthias Klose Mon, 16 Jun 2014 10:59:16 +0200 + +gcc-4.9 (4.9.0-6) unstable; urgency=medium + + * Update to SVN 20140608 (r211353) from the gcc-4_9-branch. + * Fix -Wno-format when -Wformat-security is the default (Steve Beattie). + LP: #1317305. + * Don't install the libstdc++ pretty printer file into the debug directory, + but into the gdb auto-load directory. + * Fix the removal of the libstdc++6 package, removing byte-compiled pretty + printer files and pycache directories. + * Fix PR c++/61046, taken from the trunk. LP: #1313102. + * Fix installation of gcc-{ar,nm,ranlib} man pages for snapshot builds. + Closes: #745906. + * Update patches for snapshot builds. + + -- Matthias Klose Sun, 08 Jun 2014 11:57:07 +0200 + +gcc-4.9 (4.9.0-5) unstable; urgency=medium + + * Update to SVN 20140527 (r210956) from the gcc-4_9-branch. + * Limit systemtap-sdt-dev build dependency to enumerated linux architectures. + * Build libitm on AArch64, patch taken from the trunk. + * Update the testsuite to allow more testcases to pass with hardening options + turned on (Steve Beattie). LP: #1317307. + * Revert the fix for PR rtl-optimization/60969, causing bootstrap failure + on ppc64el. + * Fix PR other/61257, check for working sys/sdt.h. + * Drop the libstdc++-arm-wno-abi patch, not needed anymore in 4.9. + + -- Matthias Klose Tue, 27 May 2014 08:58:07 +0200 + +gcc-4.9 (4.9.0-4) unstable; urgency=medium + + * Update to SVN 20140518 (r210592) from the gcc-4_9-branch. + * Update the local ada-libgnatprj patch for AArch64. Addresses: #748233. + * Update the libstdc++v-python3 patch. Closes: #748317, #738341, 747903. + * Build-depend on systemtap-sdt-dev, on every architecure, doesn't seem to hurt + on architectures where it is not supported. Closes: #748315. + * Update the gcc-default-format-security patch (Steve Beattie). LP: #1317305. + * Apply the proposed patch for PR c/57653. Closes: #734345. + + -- Matthias Klose Sun, 18 May 2014 23:29:43 +0200 + +gcc-4.9 (4.9.0-3) unstable; urgency=medium + + * Update to SVN 20140512 (r210323) from the gcc-4_9-branch. + + [ Matthias Klose ] + * Update build dependencies for ada enabled snapshot builds. + * Fix PR tree-optimization/60902, taken from the trunk. Closes: #746944. + * Ensure that the common libs (built from the next GCC version) are + available when building without common libs. + * Fix java.security symlink in libgcj15. Addresses: #746786. + * Move the libstdc++ gdb pretty printers into libstdc++6, install the + -gdb.py files into /usr/share/gdb/auto-load. + * Set the 'Multi-Arch: same' attribute for packages, cross built with + with_deps_on_target_arch_pkgs=yes (Helmit Grohne). Closes: #716795. + * Build the gcc-X.Y-base package with with_deps_on_target_arch_pkgs=yes + (Helmit Grohne). Addresses: #744782. + * Apply the proposed patches for PR driver/61106, PR driver/61126. + Closes: #747345. + + [ Aurelien Jarno ] + * Fix libasan1 symbols file for sparc and sparc64. + + -- Matthias Klose Tue, 13 May 2014 02:15:27 +0200 + +gcc-4.9 (4.9.0-2) unstable; urgency=medium + + * Update to SVN 20140503 (r210033) from the gcc-4_9-branch. + - Fix PR go/60931, garbage collector issue with non 4kB system page size. + LP: #1304754. + + [Matthias Klose] + * Fix libgcc-dev dependency on gcc, when not building libgcc. + * Fix gnat for snapshot builds on ppc64el. + * Update the libsanitizer build fix for sparc. + * Install only versioned gcc-ar gcc-nm gcc-ranlib binaries for the hppa64 + cross compiler. Install hppa64 alternatives. Addresses: #745967. + * Fix the as and ld symlinks for the hppa64 cross compiler. + * Add the gnat backport for AArch64. + * Update gnat patches not to use tabs and too long lines. + * libgnatvsn: Use CC and CXX passed from the toplevel makefile, drop gnat + build dependency on g++. Addresses: #746688. + + Merge from gnat-4.9 (4.9.0-1) unstable; urgency=low: + + [Ludovic Brenta] + * debian/patches/ada-hurd.diff: refresh for new upstream version that + restores POSIX compliance in System.OS_Interface.timespec. + * debian/patches/ada-kfreebsd.diff: make System.OS_Interface.To_Timespec + consistent with s-osinte-posix.adb. + [Nicolas Boulenguez] + * rules.conf (Build-Depends): mention gnat before gnat-x.y so that + buildds can bootstrap 4.9 in unstable. Fixes: #744724. + + -- Matthias Klose Sat, 03 May 2014 14:00:41 +0200 + +gcc-4.9 (4.9.0-1) unstable; urgency=medium + + * GCC 4.9.0 release. + * Update to SVN 20140423 (r209695) from the gcc-4_9-branch. + + [Matthias Klose] + * Fix PR target/59758 (sparc), libsanitizer build failure (proposed patch). + * Update gold architectures. + * Update NEWS files. + * Remove more mudflap left overs. Closes: #742606. + * Add new libraries src/libvtv and src/libcilkrts to + cross-ma-install-location.diff (Helmur Grohne). Closes: #745267. + * Let lib*gcc-dev depend on the corresponding libtsan packages. + * Build the liblsan packages (amd64 only). + * Install the libcilkrts spec file. + * Build the D frontend and libphobos from the gdc trunk. + + Merge from gnat-4.9 (4.9-20140411-1) unstable; urgency=medium + + [Nicolas Boulenguez] + * Revert g4.9-base to Architecture: all. Fixes: #743833. + * g4.9 Breaks/Replaces -base 4.6.4-2 and 4.9-20140330-1. Fixes: #743376. + + [Ludovic Brenta] + * debian/patches/ada-symbolic-tracebacks.diff: refresh. + + Merge from gnat-4.9 (4.9-20140406-1) experimental; urgency=low + + * debian/patches/ada-arm.diff: new. Improve support for ZCX on this + architecture. + * debian/patches/rules.patch: apply architecture- and Ada-specific + patches before Debian-specific patches. + * debian/patches/ada-link-lib.diff, + debian/patches/ada-libgnatvsn.diff, + debian/patches/ada-libgnatprj.diff: refresh for the new upstream + sources. + + Merge from gnat-4.9 (4.9-20140330-3) experimental; urgency=low + + [Nicolas Boulenguez] + * Install debian_packaging.mk to gnat-x.y, not -base. Fixes: #743375. + * rules.conf (Build-Depends): gnatgcc symlink provided by gnat-4.9 | + gnat-4.6 (>= 4.6.4-2) | gnat (>= 4.1 and << 4.6.1). + + Merge from gnat-4.9 (4.9-20140330-2) experimental; urgency=medium + + * Uploading to unstable was a mistake. Upload to experimental. + + Merge from gnat-4.9 (4.9-20140330-1) unstable; urgency=medium + + [Nicolas Boulenguez] + * patches/ada-ppc64.diff: replace undefined variable arch with + target_cpu; this overrides the patch proposed by Ulrich Weigand as + it is more correct; approved by Ludovic Brenta. Fixes: #742590. + * control.m4: Break/Replace: dh-ada-library 5.9. Fixes: #743219. + + Merge from gnat-4.9 (4.9-20140322-1) experimental; urgency=low + + [Nicolas Boulenguez] + * debian/control.m4: + (Suggests): suggest the correct version of ada-reference-manual. + (Vcs-Svn): specify the publicly accessible repository. + * Receive debian_packaging.mk from dh-ada-library (not library specific). + * Receive gnatgcc symlink from gnat (useful outside default compiler). + * debian/source/local-options: new. + + [Ludovic Brenta] + * debian/control.m4: conflict with gnat-4.7, gnat-4.8. + * debian/patches/ada-default-project-path.diff: when passed options such + as -m32 or -march, do not look for the RTS in + /usr/share/ada/adainclude but in + /usr/lib/gcc/$target_triplet/$version/{,rts-}$arch. Still look + for project files in /usr/share/ada/adainclude. + * debian/rules.d/binary-ada.mk, debian/rules.defs, debian/rules.patch: + Switch to ZCX by default on arm, armel, armhf; built SJLJ as the + package gnat-4.9-sjlj like on all other architectures. This is made + possible by the new upstream version. + * debian/patches/ada-hurd.diff (s-osinte-gnu.ads): change the type of + timespec.tv_nsec from long to time_t, for compatibility with + s-osinte-posix.adb, even though this violates POSIX. Better solution + to come from upstream. Fixes: #740286. + + -- Matthias Klose Wed, 23 Apr 2014 13:35:43 +0200 + +gcc-4.9 (4.9-20140411-2) unstable; urgency=medium + + * Disable running the testsuite on kfreebsd, hangs the buildds. + * Stop building the sanitizer libs on sparc, fails to build. No reaction + from the Debian port maintainers and upstream. See PR sanitize/59758. + + -- Matthias Klose Sat, 12 Apr 2014 15:42:34 +0200 + +gcc-4.9 (4.9-20140411-1) unstable; urgency=medium + + * GCC 4.9.0 release candidate 1. + * Configure for i586-linux-gnu on i386. + + -- Matthias Klose Fri, 11 Apr 2014 19:57:07 +0200 + +gcc-4.9 (4.9-20140406-1) experimental; urgency=medium + + [Matthias Klose] + * Include include and include-fixed header files into the stage1 + gcc-4.9 package. + * Explicitly configure with --disable-multilib on sparc64 when no + multilibs are requested (Helmut Grohne). Addresses: #743342. + * Drop mudflap from cross-install-location.diff since mudflap was removed + from gcc 4.9. Closes: #742606 + * Build gnat in ppc64el snapshot builds. + * Apply the ada-ppc64 patch for snapshot builds as well. + * Fix PR target/60609 (ARM), proposed patch (Charles Baylis). LP: #1295653. + * Include the gnu triplet prefixed gcov and gcc-{ar,nm,ranlib} binaries. + * Add replaces when upgrading from a standalone gccgo build. + + [Yunqiang Su] + * Lower default optimization for mips64/n32 to mips3/mips64(32). + Closes: #742617. + + -- Matthias Klose Sun, 06 Apr 2014 02:24:16 +0200 + +gcc-4.9 (4.9-20140330-1) experimental; urgency=medium + + * Package GCC 4.9 snapshot 20140330. + + [Matthias Klose] + * Update symbols files. + * debian/patches/ada-ppc64.diff: Fix for ppc64el (Ulrich Weigand). + * Fix cross building targeting x32 (Helmut Grohne). Addresses: #742539. + + [Ludovic Brenta] + * debian/control.m4 (Build-Depends), debian/rules.conf: remove + AUTOGEN_BUILD_DEP and hardcode autogen. It is called by + fixincludes/genfixes during bootstrap and also when building gnat-*, + not just when running checks on gcc-*. + + -- Matthias Klose Sun, 30 Mar 2014 09:46:29 +0100 + +gcc-4.9 (4.9-20140322-1) experimental; urgency=medium + + * Package GCC 4.9 snapshot 20140322. + - Fixes build error on the Hurd. Closes: #740153. + + [Matthias Klose] + * Re-apply lost patch for config.gcc for mips64el. Closes: #741543. + + Merge from gnat-4.9 (4.9-20140218-3) UNRELEASED; urgency=low + + [Nicolas Boulenguez] + * debian/control.m4: suggest the correct version of + ada-reference-manual. + + [Ludovic Brenta] + * debian/control.m4: conflict with gnat-4.7, gnat-4.8. + + Merge from gnat-4.9 (4.9-20140218-2) experimental; urgency=low + + * debian/patches/ada-hurd.diff (Makefile.in): match *86-pc-gnu but + not *86-linux-gnu, the target tripled used by GNU/Linux. + + Merge from gnat-4.9 (4.9-20140218-1) experimental; urgency=low + + [Ludovic Brenta] + * debian/patches/ada-symbolic-tracebacks.diff: refresh and fix compiler + warnings. + * debian/patches/ada-link-lib.diff (.../ada/gcc-interface/Make-lang.in): + do not try to install the gnattools, this is the job of + gnattools/Makefile.in. + * debian/patches/ada-ajlj.diff: specify EH_MECHANISM to sub-makes even + when making install-gnatlib. + + [Xavier Grave] + * debian/patches/ada-kfreebsd.diff: refresh. + * debian/rules.patch: re-enable the above. + + -- Matthias Klose Sat, 22 Mar 2014 14:19:43 +0100 + +gcc-4.9 (4.9-20140303-1) experimental; urgency=medium + + * Package GCC 4.9 snapshot 20140303. + + -- Matthias Klose Tue, 04 Mar 2014 02:13:20 +0100 + +gcc-4.9 (4.9-20140218-1) experimental; urgency=medium + + * Fix gij wrapper script on hppa. Closes: #739224. + + -- Matthias Klose Tue, 18 Feb 2014 23:59:31 +0100 + +gcc-4.9 (4.9-20140205-1) experimental; urgency=medium + + * Package GCC 4.9 snapshot 20140205. + * Install the libsanitizer spec file. + * Fix building standalone gccgo, including the libgcc packages. + * On AArch64, use "generic" target, if no other default. + + -- Matthias Klose Wed, 05 Feb 2014 12:53:52 +0100 + +gcc-4.9 (4.9-20140122-1) experimental; urgency=medium + + * Package GCC 4.9 snapshot 20140122. + * Update libstdc++ -dbg and -doc conflicts. + * Link libstdc++ tests requiring libpthread symbols with --no-as-needed. + * armhf: Fix ffi_call_VFP with no VFP arguments (Will Newton). + * Apply proposed patch for PR target/59799, allow passing arrays in + registers on AArch64 (Michael Hudson). + + -- Matthias Klose Wed, 22 Jan 2014 21:28:56 +0100 + +gcc-4.9 (4.9-20140116-1) experimental; urgency=medium + + * Package GCC 4.9 snapshot 20140116. + * Fix PR target/59588 (AArch64), backport proposed patch. LP: #1263576. + * Fix call frame information in ffi_closure_SYSV on AArch64. + + -- Matthias Klose Fri, 17 Jan 2014 00:31:19 +0100 + +gcc-4.9 (4.9-20140111-1) experimental; urgency=medium + + * Package GCC 4.9 snapshot 20140111. + * Update libstdc++ -dbg and -doc conflicts. Closes: #734913. + * Disable libcilkrts on KFreeBSD and the Hurd. See #734973. + + -- Matthias Klose Sat, 11 Jan 2014 13:11:16 +0100 + +gcc-4.9 (4.9-20140110-1) experimental; urgency=medium + + * Package GCC 4.9 snapshot 20140110. + + -- Matthias Klose Fri, 10 Jan 2014 18:03:07 +0100 + +gcc-4.9 (4.9-20140109-1) experimental; urgency=medium + + * Package GCC 4.9 snapshot. + + -- Matthias Klose Thu, 09 Jan 2014 18:57:46 +0100 + +gcc-4.8 (4.8.2-11) unstable; urgency=low + + * Update to SVN 20131230 (r206241) from the gcc-4_8-branch. + * Don't build x32 multilibs for wheezy backports. + * Set the goarch to arm64 for aarch64-linux-gnu. + * Fix statically linked gccgo binaries on AArch64 (Michael Hudson). + LP: #1261604. + * Merge accumulated Ada changes from gnat-4.8. + * Update gnat build dependencies when not built from a separate source. + * Default to -mieee on alpha again (Michael Cree). Closes: #733291. + * Prepare gnat package for cross builds. + + -- Matthias Klose Mon, 30 Dec 2013 08:52:29 +0100 + +gcc-4.8 (4.8.2-10) unstable; urgency=low + + * Update to SVN 20131213 (r205948) from the gcc-4_8-branch. + * Add missing commit in libjava for gcc-linaro. + + -- Matthias Klose Fri, 13 Dec 2013 01:01:47 +0100 + +gcc-4.8 (4.8.2-9) unstable; urgency=low + + * Update to SVN 20131212 (r205924) from the gcc-4_8-branch. + + [ Matthias Klose ] + * Fix libitm symbols files for ppc64. + * Update libatomic symbol file for arm64 and ppc64. + * libgcj-dev: Drop dependencies on gcj-jre-lib and gcj-jdk. + * Fix permissions of some override files. + * Let cross compilers conflict with gcc-multilib (providing + /usr/include/asm for the non-default multilib). + * Configure --with-long-double-128 on powerpcspe (Roland Stigge). + Closes: #731941. + * Update the Linaro support to the 4.8-2013.12 release. + * Update the ibm branch to 20131212. + + [ Aurelien Jarno ] + * patches/note-gnu-stack.diff: restore and rebase lost parts. + + -- Matthias Klose Thu, 12 Dec 2013 12:34:55 +0100 + +gcc-4.8 (4.8.2-8) unstable; urgency=medium + + * Update to SVN 20131203 (r205647) from the gcc-4_8-branch. + * Fix PR libgcc/57363, taken from the trunk. + + -- Matthias Klose Wed, 04 Dec 2013 01:21:10 +0100 + +gcc-4.8 (4.8.2-7) unstable; urgency=low + + * Update to SVN 20131129 (r205535) from the gcc-4_8-branch. + * Introduce aarch64 goarch. + * libgo: Backport fix for calling a function or method that takes or returns + an empty struct via reflection. + * go frontend: Backport fix for the generated hash functions of types that + are aliases for structures containing unexported fields. + * Skip Go testcase on AArch64 which hangs on the buildds. + * Fix freetype includes in libjava/classpath. + + -- Matthias Klose Fri, 29 Nov 2013 18:19:12 +0100 + +gcc-4.8 (4.8.2-6) unstable; urgency=low + + * Update to SVN 20131128 (r205478) from the gcc-4_8-branch. + + [ Matthias Klose ] + * gcc-4.8-base: Breaks gcc-4.4-base (<< 4.4.7). Closes: #729963. + * Update the gcc-as-needed patch for mips*. Closes: #722067. + * Use dpkg-vendor information for distribution specific settings. + Closes: #697805. + * Check for the sys/auxv.h header file. + * On AArch64, make the frame grow downwards, taken from the trunk. + Enable ssp on AArch64. + * Pass -fuse-ld=gold to gccgo on targets supporting split-stack. + + [ Aurelien Jarno ] + * Update README.Debian for s390 and s390x. + + [ Thorsten Glaser ] + * m68k-ada.diff: Add gcc-4.8.0-m68k-ada-pr48835-2.patch and + gcc-4.8.0-m68k-ada-pr51483.patch by Mikael Pettersson, to + fix more CC0-specific and m68k/Ada-specific problems. + * m68k-picflag.diff: New, backport from trunk, by Andreas Schwab, + to avoid relocation errors when linking big shared objects. + * pr58369.diff: New, backport from trunk, by Jeffrey A. Law, + to fix ICE while building boost 1.54 on m68k. + * pr52306.diff: Disables -fauto-inc-dec by default on m68k to + work around ICE when building C++ code (e.g. Qt-related). + + -- Matthias Klose Thu, 28 Nov 2013 10:29:09 +0100 + +gcc-4.8 (4.8.2-5) unstable; urgency=low + + * Update to SVN 20131115 (r204839) from the gcc-4_8-branch. + * Update the Linaro support to the 4.8-2013.11 release. + * Add missing replaces in libgcj14. Closes: #729022. + + -- Matthias Klose Sat, 16 Nov 2013 20:15:09 +0100 + +gcc-4.8 (4.8.2-4) unstable; urgency=low + + * Really fix disabling the gdc tests. + + -- Matthias Klose Wed, 13 Nov 2013 00:44:35 +0100 + +gcc-4.8 (4.8.2-3) unstable; urgency=low + + * Update to SVN 20131112 (r204704) from the gcc-4_8-branch. + * Don't ship java.security in both libgcj14 and gcj-4.8-headless. + Closes: #729022. + * Disable gdc tests on architectures without libphobos port. + + -- Matthias Klose Tue, 12 Nov 2013 18:08:44 +0100 + +gcc-4.8 (4.8.2-2) unstable; urgency=low + + * Update to SVN 20131107 (r204496) from the gcc-4_8-branch. + * Build ObjC, Obj-C++ and Go for AArch64. + * Fix some gcj symlinks. Closes: #726792, #728403. + * Stop building libmudflap (removed in GCC 4.9). + + -- Matthias Klose Thu, 07 Nov 2013 01:40:15 +0100 + +gcc-4.8 (4.8.2-1) unstable; urgency=low + + * GCC 4.8.2 release. + + * Update to SVN 20131017 (r203751) from the gcc-4_8-branch. + * Update the Linaro support to the 4.8-2013.10 release. + * Fix PR c++/57850, option -fdump-translation-unit not working. + * Don't run the testsuite on aarch64. + * Fix PR target/58578, wrong-code regression on ARM. LP: #1232017. + * [ARM] Fix bug in add patterns due to commutativity modifier, + backport from trunk. LP: #1234060. + * Build libatomic on AArch64. + * Fix dependency generation for the cross gcc-4.8 package. + * Make the libstdc++ pretty printers compatible with Python3, if + gdb is built with Python3 support. + * Fix loading of libstdc++ pretty printers. Closes: #701935. + * Don't let gcc-snapshot build-depend on gnat on AArch64. + + -- Matthias Klose Thu, 17 Oct 2013 14:37:55 +0200 + +gcc-4.8 (4.8.1-10) unstable; urgency=low + + * Update to SVN 20130904 (r202243) from the gcc-4_8-branch. + + [ Matthias Klose ] + * Don't rely on the most recent Debian release name for configuration + of the package. Addresses: #720263. Closes: #711824. + * Fix a cross build issue without DEB_* env vars set (Eleanor Chen). + Closes: #718614. + * Add packaging support for mips64(el) and mipsn32(el) including multilib + configurations (YunQiang Su). Addresses: #708143. + * Fix gcc dependencies for stage1 builds (YunQiang Su). Closes: #710240. + * Fix boehm-gc test failures with a linker defaulting to + --no-copy-dt-needed-entries. + * Fix libstdc++ and libjava test failures with a linker defaulting + to --as-needed. + * Mark the libjava/sourcelocation test as expected to fail on amd64 cpus. + * Fix some gcc and g++ test failures for a compiler with hardening + defaults enabled. + * Fix gcc-default-format-security.diff for GCC 4.8. + * Run the testsuite again on armel and armhf. + * Disable running the testsuite on mips. Fails on the buildds, preventing + migration to testing for three months. No feedback from the mips porters. + + [ Thorsten Glaser ] + * Merge several old m68k-specific patches from gcc-4.6 package: + - libffi-m68k: Rebased against gcc-4.8 and libffi 3.0.13-4. + - m68k-revert-pr45144: Needed for Ada. + - pr52714: Revert optimisation that breaks CC0 arch. + * Fix PR49847 (Mikael Pettersson). Closes: #711558. + * Use -fno-auto-inc-dec for PR52306 (Mikael Pettersson). + + -- Matthias Klose Wed, 04 Sep 2013 21:30:07 +0200 + +gcc-4.8 (4.8.1-9) unstable; urgency=low + + * Update to SVN 20130815 (r201764) from the gcc-4_8-branch. + * Enable gomp on AArch64. + * Update the Linaro support to the 4.8-2013.08 release. + + -- Matthias Klose Thu, 15 Aug 2013 10:47:38 +0200 + +gcc-4.8 (4.8.1-8) unstable; urgency=low + + * Fix PR rtl-optimization/57878, taken from the 4.8 branch. + * Fix PR target/57909 (ARM), Linaro only. + + -- Matthias Klose Mon, 22 Jul 2013 13:03:57 +0200 + +gcc-4.8 (4.8.1-7) unstable; urgency=low + + * Update to SVN 20130717 (r200995) from the gcc-4_8-branch. + - Go 1.1.1 updates. + * Define CPP_SPEC for aarch64. + * Don't include in libgcc/libgcc2.c, taken from the trunk. + Closes: #696267. + * boehm-gc: use mmap instead of brk also on kfreebsd-* (Petr Salinger). + Closes: #717024. + + -- Matthias Klose Thu, 18 Jul 2013 02:02:13 +0200 + +gcc-4.8 (4.8.1-6) unstable; urgency=low + + * Update to SVN 20130709 (r200810) from the gcc-4_8-branch. + + [ Aurelien Jarno ] + * Add 32-bit biarch packages on sparc64. + + [ Matthias Klose ] + * Fix multiarch include path for aarch64. + * Update the Linaro support to the 4.8-2013.07 release. + * Revert the proposed fix for PR target/57637 (ARM only). + * Let gfortran-4.8 provide gfortran-mod-10. Addresses #714730. + + [ Iain Buclaw ] + * Avoid compiler warnings redefining D builtin macros. + + -- Matthias Klose Tue, 09 Jul 2013 16:18:16 +0200 + +gcc-4.8 (4.8.1-5) unstable; urgency=low + + * Update to SVN 20130629 (r200565) from the gcc-4_8-branch. + + [ Aurelien Jarno ] + * Don't pass --with-mips-plt on mips/mipsel. + + [ Matthias Klose ] + * Fix documentation builds with texinfo-5.1. + * Update the ARM libsanitizer backport from the 4.8 Linaro branch. + * libphobos-4.8-dev provides libphobos-dev (Peter de Wachter). + * The gdc cross compiler doesn't depend on libphobos-4.8-dev. + * Work around libgo build failure on ia64. PR 57689. #714090. + * Apply proposed fix for PR target/57637 (ARM only). + + -- Matthias Klose Sat, 29 Jun 2013 14:59:45 +0200 + +gcc-4.8 (4.8.1-4) unstable; urgency=low + + * Update to SVN 20130619 (r200219) from the gcc-4_8-branch. + - Bump the libgo soname (change in type layout for functions that take + function arguments). + - Fix finding the liblto_plugin.so without x permissions set (see + PR driver/57651). Closes: #712704. + * Update maintainer list. + * Fall back to the binutils version of the binutils build dependency + if the binutils version used for the build cannot be determined. + * For ARM multilib builds, use libsf/libhf system directories to lookup + files for the non-default multilib (for now, only for the cross compilers). + * Split out a gcj-4.8 package, allow to build a gcj cross compiler. + * Allow one to cross build gcj. + * Don't include object.di in the D cross compiler, but depend on gdc instead. + * Allow one to cross build gdc. + * Pass --hash-style=gnu instead of --hash-style=both to the linker. + + -- Matthias Klose Wed, 19 Jun 2013 23:48:02 +0200 + +gcc-4.8 (4.8.1-3) unstable; urgency=low + + * Update to SVN 20130612 (r200018) from the gcc-4_8-branch. + + [ Matthias Klose ] + * Prepare gdc for cross builds, and multiarch installation. + * Prepare gnat to build out of the gcc-4.8 source package, not + building the gnat-4.8-base package anymore. + * Don't build a gcj cross compiler by default (not yet tested). + * Disable D on s390 (doesn't terminate the D testsuite). + * Build libphobos on x32. + * Fix build with DEB_BUILD_OPTIONS="nolang=d". + * Disable D for arm64. + * Update the Linaro support to the 4.8-2013.06 release. + * Fix cross building a native compiler. + * Work around dh_shlibdeps not working on target libraries (see #698881). + * Add build dependency on kfreebsd-kernel-headers (>= 0.84) [kfreebsd-any]. + * Add handling for unwind inside signal trampoline for kfreebsd (Petr + Salinger). Closes: #712016. + * Let gcc depend on the binutils upstream version it was built with. + Addresses #710142. + * Force a build using binutils 2.23.52 in unstable. + + [ Iain Buclaw ] + * Update gdc to 20130610. + * Build libphobos on kFreeBSD. + + -- Matthias Klose Wed, 12 Jun 2013 16:47:25 +0200 + +gcc-4.8 (4.8.1-2) unstable; urgency=low + + * Update to SVN 20130604 (r199596) from the gcc-4_8-branch. + * Force arm mode for libjava on armhf. + * Fix gdc build failure on kFreeBSD and the Hurd. + + -- Matthias Klose Tue, 04 Jun 2013 17:28:06 +0200 + +gcc-4.8 (4.8.1-1) unstable; urgency=low + + * GCC 4.8.1 release. + Support for C++11 ref-qualifiers has been added to GCC 4.8.1, making G++ + the first C++ compiler to implement all the major language features of + the C++11 standard. + * Update to SVN 20130603 (r199596) from the gcc-4_8-branch. + * Build java packages from this source package. Works aroud ftp-master's + overly strict interpretation of the Built-Using attribute. + * Build D and libphobos packages from this source package. + * Disable the non-default multilib test runs for libjava and gnat. + + -- Matthias Klose Mon, 03 Jun 2013 09:28:11 +0200 + +gcc-4.8 (4.8.0-9) unstable; urgency=low + + * Update to SVN 20130529 (r199410) from the gcc-4_8-branch. + * Drop build dependency on automake, not used anymore. + * Build with binutils from unstable (the 4.8.0-8 package was accidentally + built with binutils from experimental). Closes: #710142. + * Explicity configure with --disable-lib{atomic,quadmath,sanitizer} when + not building these libraries. Closes: #710224. + + -- Matthias Klose Wed, 29 May 2013 16:59:50 +0200 + +gcc-4.8 (4.8.0-8) unstable; urgency=medium + + * Update to SVN 20130527 (r199350) from the gcc-4_8-branch (4.8.1 rc2). + - Fix PR tree-optimization/57230 (closes: #707118). + + * Remove gdc-doc.diff. + * libgo: Overwrite the setcontext_clobbers_tls check on mips*, fails + on some buildds. + * Update the Linaro support to the 4.8-2013.05 release. + * Use the %I spec when building the object file for the gcj main function. + * Fix PR c++/57211, don't warn about unused parameters of defaulted + functions. Taken from the trunk. Closes: #705066. + * Update symbols files for powerpcspe (Roland Stigge). Closes: #709383. + * Build zh_TW.UTF-8 locale to fix libstdc++ test failures. + * Keep prev-* symlinks to fix plugin.exp test failures. + + -- Matthias Klose Mon, 27 May 2013 15:43:08 +0200 + +gcc-4.8 (4.8.0-7) unstable; urgency=medium + + * Update to SVN 20130512 (r198804) from the gcc-4_8-branch. + + [ Matthias Klose ] + * Revert the r195826 patch, backported for the 4.8 branch. + * Tighten build dependency on libmpc-dev to ensure using libmpc3. + * Re-add build dependency on locales. + * Enable multilib build for gdc. + * Add build-deps on libn32gcc1 and lib64gcc1 on mips/mipsel. + * Fix libgcc-dbg dependencies on hppa and m68k. Closes: #707745. + * Install host specific libstdc++ headers into the host include dir. + Closes: #707753. + * Enable Go for sparc64. + * Fix host specific c++ include dir on kfreebsd-amd64. Closes: #707957. + + [ Thorsten Glaser ] + * Regenerate m68k patches. Closes: #707766. + + [ Aurelien Jarno ] + * Fix libgcc1 symbols file for sparc64. + + -- Matthias Klose Sun, 12 May 2013 19:26:50 +0200 + +gcc-4.8 (4.8.0-6) unstable; urgency=low + + * Update to SVN 20130507 (r198699) from the gcc-4_8-branch. + + [ Samuel Thibault ] + * Backport r195826 to fix gdb build on hurd-i386. + + [ Matthias Klose ] + * Drop build dependency on locales for this upload. + + -- Matthias Klose Wed, 08 May 2013 01:17:15 +0200 + +gcc-4.8 (4.8.0-5) unstable; urgency=low + + * Update to SVN 20130506 (r198641) from the gcc-4_8-branch. + + [ Matthias Klose ] + * Stop building the spu cross compilers on powerpc and ppc64. + * Merge back changes from gnat-4.8 4.8.0-1~exp2. + + [Ludovic Brenta] + * debian/patches/ada-libgnatprj.diff: do not include indepsw.o in the + library, it is used only in the gnattools. + + -- Matthias Klose Mon, 06 May 2013 21:49:44 +0200 + +gcc-4.8 (4.8.0-4) experimental; urgency=low + + * Update to SVN 20130421 (r198115) from the gcc-4_8-branch. + * Ignore the return value for dh_shlibdeps for builds on precise/ARM. + * Use target specific names for libstdc++ baseline files. LP: #1168267. + * Update gcc-d-lang.diff for GDC port. + * Don't use extended libstdc++-doc build dependencies for older releases. + * In gnatlink, pass the options and libraries after objects to the + linker to avoid link failures with --as-needed. Addresses: #680292. + * Build gcj for aarch64-linux-gnu. + * Update the Linaro support to the 4.8-2013.04 release. + * Fix gdc build on architectures not providing libphobos. + + -- Matthias Klose Mon, 22 Apr 2013 01:36:19 +0200 + +gcc-4.8 (4.8.0-3) experimental; urgency=low + + * Update to SVN 20130411 (r197813) from the gcc-4_8-branch. + + [ Iain Buclaw ] + * Port GDC to GCC 4.8.0 release. + + -- Matthias Klose Thu, 11 Apr 2013 19:18:24 +0200 + +gcc-4.8 (4.8.0-2) experimental; urgency=low + + * Update to SVN 20130328 (r197185) from the gcc-4_8-branch. + * Update NEWS files. + * Apply proposed patch for PR c++/55951. Closes: #703945. + * Configure with --disable-libatomic for hppa64. Closes: #704020. + + -- Matthias Klose Thu, 28 Mar 2013 06:10:29 +0100 + +gcc-4.8 (4.8.0-1) experimental; urgency=low + + * GCC 4.8.0 release. + * Fix build failure on powerpcspe (Roland Stigge). Closes: #703074. + + -- Matthias Klose Fri, 22 Mar 2013 07:47:12 -0700 + +gcc-4.8 (4.8-20130318-1) experimental; urgency=low + + * GCC snapshot 20130318, taken from the trunk. + - Fix the build failures on ARM. + * Install the libasan_preinit.o files. Closes: #703229. + + -- Matthias Klose Mon, 18 Mar 2013 16:18:25 -0700 + +gcc-4.8 (4.8-20130315-1) experimental; urgency=low + + * GCC snapshot 20130315, taken from the trunk. + + -- Matthias Klose Fri, 15 Mar 2013 18:51:15 -0700 + +gcc-4.8 (4.8-20130308-1) experimental; urgency=low + + * GCC snapshot 20130308, taken from the trunk. + + -- Matthias Klose Fri, 08 Mar 2013 12:08:12 +0800 + +gcc-4.8 (4.8-20130222-1) experimental; urgency=low + + * GCC snapshot 20130222, taken from the trunk. + * Update libasan symbols files. + + -- Matthias Klose Sat, 23 Feb 2013 04:47:15 +0100 + +gcc-4.8 (4.8-20130217-1) experimental; urgency=low + + * GCC snapshot 20130217, taken from the trunk. + + * Update libasan symbols files. + * On alpha, link with --no-relax. Update libgcc1 symbols files (Michael + Cree). Closes: #699220. + + -- Matthias Klose Mon, 18 Feb 2013 03:12:31 +0100 + +gcc-4.8 (4.8-20130209-1) experimental; urgency=low + + * GCC snapshot 20130209, taken from the trunk. + + [ Matthias Klose ] + * Add a Build-Using attribute for each binary package, which can be + built from the gcc-4.7-source package (patch derived from a proposal by + Ansgar Burchardt). + - Use it for cross-compiler packages. + - Not yet used when building gcj, gdc or gnat using the gcc-source package. + These packages don't require an exact version of the gcc-source package, + but just a versions which is specified by the build dependencies. + * Fix dh_shlibdeps calls for the libgo packages. + * libstdc-doc: Depend on libjs-jquery. + * Update libstdc++ symbols files. + * Downgrade the priority of the non-default multilib libasan packages. + + [ Thibaut Girka ] + * Fix dh_shlibdeps and dh_gencontrol cross-build mangling for + libgfortran-dev packages. + + -- Matthias Klose Sat, 09 Feb 2013 17:00:06 +0100 + +gcc-4.8 (4.8-20130127-1) experimental; urgency=low + + * GCC snapshot 20130127, taken from the trunk. + + [ Matthias Klose ] + * Fix MULTILIB_OS_DIRNAME for the default multilib on x32. + + [ Thibaut Girka ] + * Fix installation path for libatomic and libsanitizer when building a + cross-compiler with with_deps_on_target_arch_pkgs. + * Fix regexp used to list patched autotools files. + + -- Matthias Klose Sun, 27 Jan 2013 21:02:34 +0100 + +gcc-4.8 (4.8-20130113-1) experimental; urgency=low + + * GCC snapshot 20130113, taken from the trunk. + * Always configure --with-system-zlib. + * Search library dependencies in the build-sysroot too. + * Don't complain about missing .substvars files when trying to mangle + these files. + * Add ARM multilib packages to the control file for staged cross builds. + * Fix ARM multilib shlibs dependency generation for cross builds. + * Don't call dh_shlibdeps for staged cross builds. These packages + are never shipped, and the information is irrelevant. + * Build the libasan and libtsan packages before libstdc++. + * Bump build dependencies on isl and cloog. + * Don't ship libiberty.a in gcc-4.8-hppa64. Closes: #659556. + + -- Matthias Klose Sun, 13 Jan 2013 16:42:33 +0100 + +gcc-4.8 (4.8-20130105-1) experimental; urgency=low + + * GCC snapshot 20130105, taken from the trunk. + * Keep the debug link for libstdc++6. Closes: #696854. + * Update libgfortran symbols file for the trunk. + * Fix libstdc++ symbols files for sparc 128bit symbols. + * Update libgcc and libstdc++ symbols files for s390. + * Keep the rt.jar symlink in the gcj-jre-headless package. + * Explicitly search multiarch and multilib system directories when + calling dh_shlibdeps. + * Let gjdoc accept -source 1.5|1.6|1.7. Addresses: #678945. + * Fix build configured with --enable-java-maintainer-mode. + * Don't ship .md5 files in the libstdc++-doc package. + + -- Matthias Klose Sat, 05 Jan 2013 13:47:51 +0100 + +gcc-4.8 (4.8-20130102-1) experimental; urgency=low + + * GCC snapshot 20130102, taken from the trunk. + + [ Matthias Klose ] + * Resolve libgo dependencies with the built runtime libraries. + * Fix g++-4.8-multilib dependencies. + + [ Thibaut Girka ] + * Prepare for optional dependencies on the packages built on the + target architecture. + * When using the above, + - use the same settings for gcc_lib_dir, sysroot, header and C++ header + locations as for the native build. + - install libraries into the multiarch directories. + - use cpp-4.x- instead of gcc-4.x-base to collect doc files. + + -- Matthias Klose Wed, 02 Jan 2013 14:51:59 +0100 + +gcc-4.8 (4.8-20121218-1) experimental; urgency=low + + * GCC snapshot 20121217, taken from the trunk. + * Fix dependency generation for asan and atomic multilibs. + * Fix libobjc-dbg dependencies on libgcc-dbg packages. + * Fix MULTIARCH_DIRNAME definition for powerpcspe (Roland Stigge). + Closes: #695661. + * Move .jar symlinks from the -jre-lib into the -jre-headless package. + + -- Matthias Klose Tue, 18 Dec 2012 16:44:42 +0100 + +gcc-4.8 (4.8-20121217-1) experimental; urgency=low + + * GCC snapshot 20121217, taken from the trunk. + * Fix package builds with the common libraries provided by a newer + gcc-X.Y package. + * Drop build-dependency on libelf. + * Drop the g++-multilib build dependency, use the built compiler to + check which multilib variants can be run. Provide an asm symlink for + the build. + * Stop configuring cross compilers --with-headers --with-libs. + * Always call dh_shlibdeps with -l, pointing to the correct dependency + packages. + * Fix cross build stage1 package installation, only including the target + files in the gcc package. + * Explicitly configure with --enable-multiarch when doing builds + supporting the multiarch layout. + * Only configure --with-sysroot, --with-build-sysroot when values are set. + * Revert: For stage1 builds, include gcc_lib_dir files in the gcc package. + * Allow multilib enabled stage1 and stage2 cross builds. + * Don't check glibc version to configure --with-long-double-128. + * Don't auto-detect multilib osdirnames. + * Don't set a LD_LIBRARY_PATH when calling dh_shlibdeps in cross builds. + * Allow building a gcj cross compiler. + * Pretend that wheezy has x32 support (sid is now known as wheezy :-/). + + -- Matthias Klose Mon, 17 Dec 2012 18:37:14 +0100 + +gcc-4.8 (4.8-20121211-1) experimental; urgency=low + + * GCC snapshot 20121211, taken from the trunk. + * Fix build failure on multilib configurations. + + -- Matthias Klose Tue, 11 Dec 2012 08:04:30 +0100 + +gcc-4.8 (4.8-20121210-1) experimental; urgency=low + + * GCC snapshot 20121210, taken from the trunk. + * For cross builds, don't use the multiarch location for the C++ headers. + * For cross builds, fix multilib inter package dependencies. + * For cross builds, fix libc6 dependencies for non-default multilib packages. + * Build libasan packages on powerpc, ppc64. + * Only run the libgo testsuite for flags configured in RUNTESTFLAGS. + * Remove the cross-includes patch, not needed anymore with --with-sysroot=/. + * For cross builds, install into /usr/lib/gcc-cross to avoid file conflicts + with the native compiler for the target architecture. + * For cross builds, don't add /usr/local/include to the standard include + path, however /usr/local/include/ is still on the path. + * For cross builds, provide symbols files based on the symbols files for + the native build. Not picked up by dh_makeshlibs yet. + * Drop the g++-multilib build dependency, use the built compiler to + check which multilib variants can be run. + * Fix spu cross build on powerpc/ppc64. + * Make libgcj packages Multi-Arch: same, append the Debian architecture + name to the gcj java home. + * Don't encode versioned build dependencies on binutils and dpkg-dev in + the control file (makes the package cross-buildable). + * Only include gengtype for native builds. Needs upstream changes. + See #645018. + * Fix cross build failure with --enable-libstdcxx-debug. + * Only install libbacktrace if it is built. + * When cross building the native compiler, configure --with-sysroot=/ + and without --without-isl. + + -- Matthias Klose Mon, 10 Dec 2012 14:40:14 +0100 + +gcc-4.8 (4.8-20121128-1) experimental; urgency=low + + [ Matthias Klose ] + * Update patches for GCC 4.8. + * Update debian/copyright for libatomic, libbacktrace, libsanitizer. + * Remove the soversion from the libstdc++*-dev packages. + * Build libatomic and libasan packages. + * Install the static libbacktrace library and header files. + * Update build-indep dependencies for building the libstdc++ docs. + * Fix build failure in libatomic with x32 multilibs, handle -mx32 like -m64. + * Apply proposed fix for PR fortran/55395, supposed to fix the build + failure on armhf and powerpc. + * For hardened builds, disable gcc-default-format-security for now, causing + build failure building the target libstdc++ library. + * Drop the gcc-no-add-needed patch, depend on binutils 2.22 instead. + * Fix gnat build failure on kfreebsd. + * Rename the gccgo info to gccgo-4.8 on installation. + * Install the libitm documentation (if built). + * Rename the gccgo info to gccgo-4.8 on installation, install into gccgo-4.8. + * Include libquadmath documentation in the gcc-4.8-doc package. + * Build libtsan packages. + * Add weak __aeabi symbols to the libgcc1 ARM symbol files. Closes: #677139. + * For stage1 builds, include gcc_lib_dir files in the gcc package. + * Point to gcc's README.Bugs when building gcj packages. Addresses: #623987. + + [ Thibaut Girka ] + * Fix libstdc++ multiarch include path for cross builds. + + -- Matthias Klose Sun, 28 Nov 2012 12:55:27 +0100 + +gcc-4.7 (4.7.2-12) experimental; urgency=low + + * Update to SVN 20121127 (r193840) from the gcc-4_7-branch. + - Fix PR middle-end/55331 (ice on valid), PR tree-optimization/54976 (ice + on valid), PR tree-optimization/54894 (ice on valid), + PR middle-end/54735 (ice on valid), PR c++/55446 (wrong code), + PR fortran/55314 (rejects valid). + + [ Matthias Klose ] + * Fix x32 multiarch name (x86_64-linux-gnux32). + * gcc-4.7-base: Add break to gcc-4.4-base (<< 4.4.7). Closes: #690172. + * Add weak __aeabi symbols to the libgcc1 ARM symbol files. Closes: #677139. + * For stage1 builds, include gcc_lib_dir files in the gcc package. + + [ Thibaut Girka ] + * Fix libstdc++ multiarch include path for cross builds. + + -- Matthias Klose Tue, 27 Nov 2012 11:02:10 +0100 + +gcc-4.7 (4.7.2-11) experimental; urgency=low + + * Update to SVN 20121124 (r193776) from the gcc-4_7-branch. + - Fix PR libgomp/55411, PR libstdc++/55413, PR middle-end/55142, + PR fortran/55352. + + * Update build-indep dependencies for building the libstdc++ docs. + * Drop the gcc-no-add-needed patch, depend on binutils 2.22 instead. + * Pass --hash-style=gnu instead of --hash-style=both. + * Link using --hash-style=gnu on arm64 by default. + * Split multiarch patches into local and upstreamed parts. + * Fix PR54974: Thumb literal pools don't handle PC rounding (Matthew + Gretton-Dann). LP: #1049614, #1065509. + * Rename the gccgo info to gccgo-4.7 on installation, install into gccgo-4.7. + * Include libquadmath documentation in the gcc-4.7-doc package. + * Don't pretend to understand .d files, no D frontend available for 4.7. + * Fix the multiarch c++ include path for multilib'd targets. LP: #1082344. + * Make explicit --{en,dis}able-multiarch options effecitive (Thorsten Glaser). + + -- Matthias Klose Sat, 24 Nov 2012 03:57:00 +0100 + +gcc-4.7 (4.7.2-10) experimental; urgency=low + + * Update to SVN 20121118 (r193598) from the gcc-4_7-branch. + - Fix PR target/54892 (ARM, LP: #1065122), PR rtl-optimization/54870, + PR rtl-optimization/53701, PR target/53975 (ia64), + PR tree-optimization/54902 (LP: #1065559), PR middle-end/54945, + PR target/55019 (ARM), PR c++/54984, PR target/55175, + PR tree-optimization/53708, PR tree-optimization/54985, + PR libstdc++/55169, PR libstdc++/55047, PR libstdc++/55123, + PR libstdc++/54075, PR libstdc++/28811, PR libstdc++/54482, + PR libstdc++/55028, PR libstdc++/55215, PR middle-end/55219, + PR tree-optimization/54986, PR target/55204, PR debug/54828, + PR tree-optimization/54877, PR c++/54988, PR other/52438, + PR fortran/54917, PR libstdc++/55320, PR libstdc++/53841. + + [ Matthias Klose ] + * Update the Linaro support to the 4.7-2012.11 release. + * Define MULTIARCH_DIRNAME for arm64 (Wookey). + * Let the lib*objc-dev packages depend on the lib*gcc-dev packages. + * Let the libstdc++-dev package depend on the libgcc-dev package. + * Drop the dependency of the libstdc++-dev package on g++, make + libstdc++-dev and libstdc++-pic Multi-Arch: same. Closes: #678623. + * Install override files before calling dh_fixperms. + * Backport the libffi arm64 port. + * Build libx32gcc-dev, libx32objc-dev and libx32gfortran-dev packages. + * Allow conditional building of the x32 multilibs. + * Fix libmudflap build failure for x32 multilibs. + * Fix dependency on glibc for triarch builds. + * Add build-{arch,indep} targets. + * Fix libquadmath x32 multilib builds on kernels which don't support x32. + * Fix location of x32 specific C++ header files. + * Turn on -D_FORTIFY_SOURCE=2 by default for C, C++, ObjC, ObjC++, + only if the optimization level is > 0. + * Keep the host alias when building multilib libraries which need to + be cross-built on some architectures/buildds. + * Update arm64 from the aarch64 branch 20121105. + * Fix PR other/54411, libiberty: objalloc_alloc integer overflows + (CVE-2012-3509). + * Use /usr/include//c++/4.x as the include directory + for host dependent c++ header files. + * Add alternative libelf-dev build dependency. Closes: #690952. + * Always build the aarch64-linux-gnu target from the Linaro branch. + * Add __gnu_* symbols to the libgcc1 symbols file for armel and armhf. + * For powerpcspe prevent floating point register handling when there + are none available (Roland Stigge). Closes: #693328. + * Don't apply hurd-pthread.diff for trunk builds, integrated + upstream (Samuel Thibault). Addresses: #692538. + * Again, suggest graphite runtime dependencies. + * Clean up libstdc++ man pages. Closes: #692445. + + [ Thibaut Girka ] + * Split out lib*gcc-dev packages. + * Split out lib*objc-dev packages. + * Split out lib*gfortran-dev packages. + + [ Daniel Schepler ] + * Add support for x32. Closes: #667005. + * New patch hjl-x32-gcc-4_7-branch.diff to incorporate changes from + that branch, including --with-abi=mx32 option. + * Split out lib*stdc++-dev packages. + + [ Marcin Juszkiewicz ] + * lib*-dev packages for cross builds are not Multi-Arch: same. LP: #1070694. + * Remove conflicts for armhf/armel cross packages. + + -- Matthias Klose Sun, 18 Nov 2012 17:54:15 +0100 + +gcc-4.7 (4.7.2-4) unstable; urgency=low + + * Fix PR c++/54858 (ice on valid), taken from the branch. + * Build again Go on armel and armhf. + + -- Matthias Klose Tue, 09 Oct 2012 12:00:59 +0200 + +gcc-4.7 (4.7.2-3) unstable; urgency=low + + * Revert the fix PR c/33763, and just disable the sorry message, + taken from the branch. Closes: #678589. LP: #1062343. + * Update libgo to 1.0.3. + * Go fixes: + - Fix a, b, c := b, a, 1 when a and b already exist. + - Fix some type reflection strings. + - Fix parse of (<- chan <- chan <- int)(x). + - Fix handling of omitted expression in switch. + - Better error for switch on non-comparable type. + * Fix PR debug/53135 (ice on valid), PR target/54703 (x86, wrong code), + PR c++/54777 (c++11, rejects valid), taken from the 4.7 branch. + * gcc-4.7-base: ensure smooth upgrades from squeeze by adding + Breaks: gcj-4.4-base (<< 4.4.6-9~), gnat-4.4-base (<< 4.4.6-3~) + as in gcc-4.4-base (multiarch patches re-worked in 4.6.1-8/4.4.6-9). + Fixes some squeeze->wheezy upgrade paths where apt chooses to hold back + gcc-4.4-base and keep gcj-4.4-base installed instead of upgrading + gcc-4.4-base and removing the obsolete gcj-4.4-base (Andreas Beckmann). + Closes: #677582. + * Add arm64 support, partly based on Wookey's patches (only applied for + arm64). Disabled for arm64 are ssp, gomp, mudflap, boehm-gc, Ada, ObjC, + Obj-C++ and Java). + + -- Matthias Klose Fri, 05 Oct 2012 20:00:30 +0200 + +gcc-4.7 (4.7.2-2) unstable; urgency=low + + * Fix PR tree-optimization/54563 (ice on valid), PR target/54564 (fma builtin + fix), PR c/54552 (ice on valid), PR lto/54312 (memory hog), PR c/54103 (ice + on valid), PR middle-end/54638 (memory corruption), taken from the 4.7 + branch. + * Go fixes, taken from the 4.7 branch. + * On ARM, don't warn anymore that 4.4 has changed the `va_list' mangling, + taken from the trunk. + * Mention the NEWS changes for all uploads. Closes: #688278. + + -- Matthias Klose Fri, 21 Sep 2012 11:58:10 +0200 + +gcc-4.7 (4.7.2-1) unstable; urgency=low + + * GCC 4.7.2 release. + * Issues addressed after the release candidate: + - PR c++/53661 (wrong warning), LTO backport from trunk, documentation fix. + * Update NEWS files. + + -- Matthias Klose Thu, 20 Sep 2012 12:19:07 +0200 + +gcc-4.7 (4.7.1-9) unstable; urgency=low + + * GCC 4.7.2 release candidate 1. + * Update to SVN 20120914 (r191306) from the gcc-4_7-branch. + - Fix PR libstdc++/54388, PR libstdc++/54172, PR libstdc++/54172, + PR debug/54534, PR target/54536 (AVR), PR middle-end/54515 (ice on valid), + PR c++/54506 (rejects valid), PR c++/54341 (ice on valid), + PR c++/54253 (ice on valid), PR c/54559 (closes: #687496), + PR gcov-profile/54487, PR c++/53839, PR c++/54511, PR c++/53836, + PR fortran/54556. + * Update the Linaro support to the 4.7-2012.09 release. + - Adds support for the NEON vext instruction when shuffling. + - Backports improvements to scheduling transfers between VFP and core + registers. + - Backports support for the UBFX instruction on certain bit extract idioms. + + -- Matthias Klose Fri, 14 Sep 2012 19:12:47 +0200 + +gcc-4.7 (4.7.1-8) unstable; urgency=low + + * Update to SVN 20120908 (r191092) from the gcc-4_7-branch. + - Fix PR libstdc++/54376, PR libstdc++/54297, PR libstdc++/54351, + PR libstdc++/54297, PR target/54461 (AVR), PR target/54476 (AVR), + PR target/54220 (AVR), PR fortran/54208 (rejects valid), + PR middle-end/53667 (wrong code), PR target/54252 (ARM, wrong code), + PR rtl-optimization/54455 (ice on valid), PR driver/54335 (docs), + PR tree-optimization/54498 (wrong code), PR target/45070 (wrong code), + PR tree-optimization/54494 (wrong code), PR target/54436 (x86), + PR c/54428 (ice on valid), PR c/54363 (ice on valid, closes: #684635), + PR rtl-optimization/54369 (mips, sparc, wrong code), PR middle-end/54146, + PR target/46254 (ice on valid), PR rtl-optimization/54088 (ice on valid), + PR target/54212 (ARM, wrong code), PR c++/54197 (wrong code), + PR lto/53572, PR tree-optimization/53922 (wrong code). + - Go fixes. + + [ Nobuhiro Iwamatsu ] + * Remove sh4-enable-ieee.diff, -mieee enabled by default. Closes: #685975. + + [ Matthias Klose ] + * Fix PR c++/54341, PR c++/54253, taken from the trunk. Closes: #685430. + * Update libitm package description. Closes: #686802. + + -- Matthias Klose Fri, 07 Sep 2012 22:16:55 +0200 + +gcc-4.7 (4.7.1-7) unstable; urgency=low + + * Update to SVN 20120814 (r190380) from the gcc-4_7-branch. + - Fix PR libstdc++/54036, PR target/53961 (x86), PR libstdc++/54185, + PR rtl-optimization/53942, PR rtl-optimization/54157. + + [ Thibaut Girka ] + * Fix cross compilers for 64bit architectures when using + DEB_CROSS_NO_BIARCH. + * Fix glibc dependency for multiarch enabled builds for architectures + with a different libc-dev package name. + + [ Aurelien Jarno ] + * powerpc64: Fix non-multilib builds. + + [ Matthias Klose ] + * Fix syntax error generating the control file for cross builds. + Closes: #682104. + * spu build: Move static libraries to version specific directories. + Closes: #680022. + * Don't run the libstdc++ tests on mipsel, times out on the buildds. + * Update the Linaro support to the 4.7-2012.08 release. + + -- Matthias Klose Tue, 14 Aug 2012 13:58:03 +0200 + +gcc-4.7 (4.7.1-6) unstable; urgency=low + + * Update to SVN 20120731 (r190015) from the gcc-4_7-branch. + - Fix PR libstdc++/54075, PR libstdc++/53270, PR libstdc++/53978, + PR target/33135 (SH), PR target/53877 (x86), PR rtl-optimization/52250, + PR middle-end/54017, PR target/54029, PR target/53961 (x86), + PR target/53110 (x86), PR rtl-optimization/53908, PR c++/54038, + PR c++/54026, PR c++/53995, PR c++/53989, PR c++/53549 (closes: #680931), + PR c++/53953. + + -- Matthias Klose Tue, 31 Jul 2012 20:00:56 +0200 + +gcc-4.7 (4.7.1-5) unstable; urgency=high + + * Update to SVN 20120713 (r189464) from the gcc-4_7-branch. + - Fix PR libstdc++/53657, PR c++/53733 (DR 1402), PR target/53811, + PR target/53853. + + -- Matthias Klose Fri, 13 Jul 2012 16:59:59 +0200 + +gcc-4.7 (4.7.1-4) unstable; urgency=medium + + * Update to SVN 20120709 (r189388) from the gcc-4_7-branch. + - Fix PR libstdc++/53872, PR libstdc++/53830, PR bootstrap/52947, + PR middle-end/52786, PR middle-end/50708, PR tree-optimization/53693, + PR middle-end/52621, PR middle-end/53433, PR fortran/53732, + PR libstdc++/53578, PR c++/53882 (closes: #680521), PR c++/53826. + * Update the Linaro support to the 4.7-2012.07 release. + * Fix build on pre-multiarch releases (based on a patch from Chip Salzenberg). + Closes: #680590. + + -- Matthias Klose Mon, 09 Jul 2012 18:58:47 +0200 + +gcc-4.7 (4.7.1-3) unstable; urgency=low + + * Update to SVN 20120703 (r189219) from the gcc-4_7-branch. + - Fix PR preprocessor/37215, PR middle-end/38474, PR target/53595 (AVR), + PR middle-end/53790, PR debug/53682, PR target/53759 (x86), + PR c++/53816, PR c++/53821, PR c++/51214, PR c++/53498, PR c++/53305, + PR c++/52988 (wrong code), PR c++/53202 (wrong code), PR c++/53594. + - The change for PR libstdc++/49561 was reverted. The std::list size is + now the same again in c++98 and c++11 mode. + * Revert the local std::list work around. + * Build using isl instead of ppl for snapshot builds. + + -- Matthias Klose Tue, 03 Jul 2012 15:07:14 +0200 + +gcc-4.7 (4.7.1-2) unstable; urgency=medium + + * Update to SVN 20120623 (r188906) from the gcc-4_7-branch. + - Fix PR rtl-optimization/53700 (closes: #677678), PR target/52908, + PR libstdc++/53270, PR libstdc++/53678, PR gcov-profile/53744, + PR c++/52637, PR middle-end/53470, PR c++/53651, PR c++/53137, + PR c++/53599, PR fortran/53691, PR fortran/53685, PR ada/53592. + * Update NEWS files for 4.7.1. + * Bump gcc/FULL-VERSION to 4.7.1. + * Update the Linaro support to the 4.7-2012.06 release. + * Restore std::list ABI compatibility in c++11 mode. The upstream behaviour + can be enabled defining __CXX0X_STD_LIST_ABI_INCOMPAT__. This work around + will be replaced with an upstream solution. + * Fix PR debug/53682, taken from the trunk. Closes: #677606. + * Use $(with_gccbase) and $(with_gccxbase) to determine whether to enable it + in the control file (Thibaut Girka). + * When building a cross-compiler, runtime libraries for the target + architecture may be cross-built. Tell debhelper/dpkg-dev those packages + are indeed for a foreign architecture (Thibaut Girka). + + -- Matthias Klose Sat, 23 Jun 2012 11:58:35 +0200 + +gcc-4.7 (4.7.1-1) unstable; urgency=low + + * GCC 4.7.1 release. + + -- Matthias Klose Fri, 15 Jun 2012 00:38:27 +0200 + +gcc-4.7 (4.7.0-13) unstable; urgency=low + + * Update to SVN 20120612 (r188457) from the gcc-4_7-branch. + - Fix PR c++/53602 (LP: #1007616). + + * Document the changed ssp-buffer-size default in Ubuntu 10.10 and + later (Kees Cook). LP: #990141. + * Fix PR c++/26155, ICE after error with namespace alias. LP: #321883. + * Fix PR c++/53599 (reverting the fix for PR c++/53137). + Closes: #676729. LP: #1010896. + * Fix manual page names for cross builds (Thibaut Girka). Closes: #675516. + * Remove dpkg-cross build dependency for cross builds (Thibaut Girka). + Closes: #675511. + + -- Matthias Klose Tue, 12 Jun 2012 15:47:57 +0200 + +gcc-4.7 (4.7.0-12) unstable; urgency=low + + * Update to SVN 20120606 (r188261) from the gcc-4_7-branch (release + candidate 1 or 4.7.1). + - Fix PR libstdc++/52007, PR c++/53524, PR target/53559, + PR middle-end/47530, PR middle-end/53471, PR middle-end/52979, + PR target/46261, PR tree-optimization/53550, PR middle-end/52080, + PR middle-end/52097, PR middle-end/48124, PR middle-end/53501, + PR target/52667, PR target/52642, PR middle-end/48493, PR c++/53524, + PR c++/52973, PR c++/52725, PR c++/53137, PR c++/53484, PR c++/53500, + PR c++/52905, PR fortran/53521. + - Go and libgo updates. + * Include README.Debian in README.Debian.. + * Fix PR c/33763, proposed patch from the issue. Closes: #672411. + * Fix build failure in libgo with hardening defaults. + + -- Matthias Klose Wed, 06 Jun 2012 13:22:27 +0200 + +gcc-4.7 (4.7.0-11) unstable; urgency=low + + * Update to SVN 20120530 (r188035) from the gcc-4_7-branch. + - Fix PR c++/53356, PR c++/53491, PR c++/53503, PR c++/53220, + PR middle-end/53501, PR rtl-optimization/53519, + PR tree-optimization/53516, PR tree-optimization/53438, + PR target/52999, PR middle-end/53008. + + [ Matthias Klose ] + * Build-depend on netbase when building Go. Closes: #674306. + + [ Marcin Juszkiewicz ] + * Use the multiarch default for staged builds. + + -- Matthias Klose Thu, 31 May 2012 08:25:08 +0800 + +gcc-4.7 (4.7.0-10) unstable; urgency=low + + * Update to SVN 20120528 (r187927) from the gcc-4_7-branch. + - Fix PR rtl-optimization/52528, PR lto/52178, PR target/53435, + PR ada/52362, PR target/53385, PR middle-end/53460, + PR tree-optimization/53465, PR target/53448, PR tree-optimization/53408, + PR ada/52362, PR fortran/53389. + * Fix warning building libiberty/md5.c. PR other/53285. Closes: #674830. + + -- Matthias Klose Mon, 28 May 2012 11:30:36 +0800 + +gcc-4.7 (4.7.0-9) unstable; urgency=low + + * Update to SVN 20120522 (r187756) from the gcc-4_7-branch. + - Fix PR bootstrap/53183, PR tree-optimization/53436, + PR tree-optimization/53366, PR tree-optimization/53409, + PR tree-optimization/53410, PR c/53418, PR target/53416, + PR middle-end/52584, PR debug/52727, PR tree-optimization/53364, + PR target/53358, PR rtl-optimization/52804, PR target/46098, + PR target/53256, PR c++/53209, PR c++/53301, PR ada/52494, + PR fortran/53310 + * Update the Linaro support to the 4.7-2012.05 release. + + -- Matthias Klose Tue, 22 May 2012 13:01:33 +0800 + +gcc-4.7 (4.7.0-8) unstable; urgency=low + + * Update to SVN 20120509 (r187339) from the gcc-4_7-branch. + - Fix PR libstdc++/53193, PR target/53272, PR tree-optimization/53239, + PR tree-optimization/53195, PR target/52999, PR target/53228, + PR tree-optimization/52633, PR tree-optimization/52870, PR target/48496, + PR target/53199, PR target/52684, PR lto/52605, PR plugins/53126, + PR debug/53174, PR target/53187, PR tree-optimization/53144, + PR c++/53186, PR fortran/53255, PR fortran/53111, PR fortran/52864. + - Fix plugin check in gcc-{ar,nm,ranlib}-4.7. + * Install man pages for gcc-{ar,nm,ranlib}-4.7. + + -- Matthias Klose Mon, 07 May 2012 21:56:42 +0200 + +gcc-4.7 (4.7.0-7) unstable; urgency=low + + * Update to SVN 20120502 (r187039) from the gcc-4_7-branch. + - Fix PR libstdc++/53115, PR tree-optimization/53163, + PR rtl-optimization/53160, PR middle-end/53136, PR fortran/53148. + - libgo fix for mips. + * Fix setting MULTILIB_DEFAULTS for ARM multilib builds. + * Build Go on mips. + * Revert: Don't build multilib gnat on armel and armhf. + * Fix multiarch patch for alpha (Michael Cree). Closes: #670571. + * Fix Go multilib packaging issue for mips and mipsel. + + -- Matthias Klose Wed, 02 May 2012 12:42:01 +0200 + +gcc-4.7 (4.7.0-6) unstable; urgency=low + + * Update to SVN 20120430 (r186964) from the gcc-4_7-branch. + - Fix PR target/53138. + * Build Go on ARM. + * Treat wheezy the same as sid in more places (Peter Green). + Addresses: #670821. + + -- Matthias Klose Mon, 30 Apr 2012 13:06:21 +0200 + +gcc-4.7 (4.7.0-5) unstable; urgency=medium + + * Update to SVN 20120428 (r186932) from the gcc-4_7-branch. + - Fix PR c/52880, PR target/53065, PR tree-optimization/53085, + PR c/51527, PR target/53120. + + [ Matthias Klose ] + * Don't build multilib gnat on armel and armhf. + * Don't try to run the libstdc++ testsuite if the C++ frontend isn't built. + * Install the unwind-arm-common.h header file. + * Fix ARM biarch package builds. + + [ Aurelien Jarno ] + * Reenable parallel builds on GNU/kFreeBSD. + * Fix libgcc building on MIPS N32/64. Closes: #669858. + * Add libn32gcc1 and lib64gcc1 symbols files on mips and mipsel. + + -- Matthias Klose Sat, 28 Apr 2012 11:59:36 +0200 + +gcc-4.7 (4.7.0-4) unstable; urgency=low + + * Update to SVN 20120424 (r186746) from the gcc-4_7-branch. + - Fix PR libstdc++/52924, PR libstdc++/52591, PR middle-end/52894, + PR testsuite/53046, PR libstdc++/53067, PR libstdc++/53027, + PR libstdc++/52839, PR bootstrap/52840, PR libstdc++/52689, + PR libstdc++/52699, PR libstdc++/52822, PR libstdc++/52942, + PR middle-end/53084, PR middle-end/52999, PR c/53060, + PR tree-optimizations/52891, PR target/53033, PR target/53020, + PR target/52932, PR middle-end/52939, PR tree-optimization/52969, + PR c/52862, PR target/52775, PR tree-optimization/52943, PR c++/53003, + PR c++/38543, PR c++/50830, PR c++/50303, PR c++/52292, PR c++/52380, + PR c++/52465, PR c++/52824, PR c++/52906. + + [ Matthias Klose ] + * Update the Linaro support to the 4.7-2012.04 release. + * Set the ARM hard-float linker path according to the consensus: + http://lists.linaro.org/pipermail/cross-distro/2012-April/000261.html + * Reenable the spu build on ppc64. Closes: #668272. + * Update and reenable the gcc-cloog-dl patch. + + [ Samuel Thibault ] + * ada-s-osinte-gnu.adb.diff, ada-s-osinte-gnu.ads.diff, + ada-s-taprop-gnu.adb.diff, gcc_ada_gcc-interface_Makefile.in.diff: + Add ada support for GNU/Hurd, thanks Svante Signell for the patches + and bootstrap! (Closes: #668426). + + -- Matthias Klose Tue, 24 Apr 2012 08:44:15 +0200 + +gcc-4.7 (4.7.0-3) unstable; urgency=low + + * Update to SVN 20120409 (r186249) from the gcc-4_7-branch. + - Fix PR libitm/52854, PR libstdc++/52476, PR target/52717, + PR tree-optimization/52406, PR c++/52596, PR c++/52796, + PR fortran/52893, PR fortran/52668. + + [ Matthias Klose ] + * Re-add missing dependency on libgcc in gcc-multilib. Closes: #667519. + * Add support for GNU locales for GNU/Hurd (Svante Signell). + Closes: #667662. + * Reenable the spu build on ppc64. Closes: #664617. + * Apply proposed patch for PR52894, stage1 bootstrap failure on hppa + (John David Anglin). Closes: #667969. + + [ Nobuhiro Iwamatsu ] + * Fix cross build targeting sh4. Closes: #663028. + * Enable -mieee by default on sh4. Closes: #665328. + + -- Matthias Klose Mon, 09 Apr 2012 22:24:14 +0200 + +gcc-4.7 (4.7.0-2) unstable; urgency=low + + * Update to SVN 20120403 (r186107) from the gcc-4_7-branch. + - Fix PR middle-end/52547, PR libstdc++/52540, PR libstdc++/52433, + PR target/52507, PR target/52505, PR target/52461, PR target/52508, + PR c/52682, PR target/52610, PR middle-end/52640, PR target/50310, + PR target/48596, PR target/48806, PR middle-end/52547, R target/52496, + PR rtl-optimization/52543, PR target/52461, PR target/52488, + PR target/52499, PR target/52148, PR target/52496, PR target/52484, + PR target/52506, PR target/52505, PR target/52461, PR other/52545, + PR c/52577, PR c++/52487, PR c++/52671, PR c++/52582, PR c++/52521, + PR fortran/52452, PR target/52737, PR target/52698, PR middle-end/52693, + PR middle-end/52691, PR middle-end/52750, PR target/52692, + PR middle-end/51893, PR target/52737, PR target/52736, PR middle-end/52720, + PR c++/52672, PR c++/52718, PR c++/52685, PR c++/52759, PR c++/52743, + PR c++/52746, PR libstdc++/52799, PR libgfortran/52758, + PR middle-end/52580, PR middle-end/52493, PR tree-optimization/52678, + PR tree-optimization/52701, PR tree-optimization/52754, + PR tree-optimization/52835. + + [ Matthias Klose ] + * Update NEWS files for 4.7. + * Include -print-multiarch option in gcc --help output. Closes: #656998. + * Don't build Go on MIPS. + * Update alpha-ieee.diff for 4.7. + * Update gcc-multiarch.diff for sh4 (untested). Closes: #665935. + * Update gcc-multiarch.diff for hppa (untested). Closes: #666162. + * Re-add build dependency on doxygen. + + [ Samuel Thibault ] + * debian/patches/ada-bug564232.diff: Enable on hurd too. + * debian/patches/ada-libgnatprj.diff: Add hurd configuration. + + -- Matthias Klose Tue, 03 Apr 2012 16:30:58 +0200 + +gcc-4.7 (4.7.0-1) unstable; urgency=low + + * GCC 4.7.0 release. + + -- Matthias Klose Fri, 23 Mar 2012 05:44:37 +0100 + +gcc-4.7 (4.7.0~rc2-1) experimental; urgency=low + + * GCC-4.7 release candidate 2 (r185376). + * libgo: Work around parse error of struct timex_ on ARM. + * Update libstdc++6 symbols files. + * Allow building Go from a separate source package. + * Don't configure with --enable-gnu-unique-object on kfreebsd and hurd. + * Include -print-multiarch option in gcc --help output. Closes: #656998. + * Disable Go on mips* (PR go/52586). + + -- Matthias Klose Wed, 14 Mar 2012 15:49:39 +0100 + +gcc-4.7 (4.7.0~rc1-2) experimental; urgency=low + + * Update to SVN 20120310 (r185183) from the gcc-4_6-branch. + * Always configure with --enable-gnu-unique-object. LP: #949805. + * Enable Go for ARM on releases with working getcontext/setcontext. + + -- Matthias Klose Sat, 10 Mar 2012 23:29:45 +0100 + +gcc-4.7 (4.7.0~rc1-1) experimental; urgency=low + + * GCC-4.7 release candidate 1 (r184777). + + [ Marcin Juszkiewicz ] + * Fix ARM sf/hf multilib dpkg-shlibdeps dependency generation. + + [ Matthias Klose ] + * PR go/52218, don't build Go on ARM, getcontext/setcontext exists, + but return ENOSYS. + * Fix multiarch build on ia64. + * Fix path calculation for the libstdc++ -gdb.py file when installed into + multiarch locations. Closes: #661385. LP: #908163. + * Disable Go on sparc (libgo getcontext/setcontext check failing). + + [ Thorsten Glaser ] + * Apply patch from Alan Hourihane to fix err_bad_abi testcase on m68k. + + [ Jonathan Nieder ] + * libstdc++6: Depends on libc (>= 2.11) for STB_GNU_UNIQUE support + (Eugene V. Lyubimkin). Closes: #584572. + * libstdc++6, libobjc2, libgfortran3, libmudflap0, libgomp1: Breaks + pre-multiarch gcc. Closes: #651550. + * libstdc++6: Lower priority from required to important. Closes: #661118. + + [Samuel Thibault] + * Remove local patch, integrated upstream. Closes: ##661859. + + -- Matthias Klose Fri, 02 Mar 2012 18:42:56 +0100 + +gcc-4.7 (4.7-20120210-1) experimental; urgency=low + + * GCC-4.7 snapshot build, taken from the trunk 20120210 (r184114). + * kbsd-gnu.diff: Remove, integrated upstream. + * Strip whitespace from with_libssp definition. Closes: #653255. + * Remove soft-float symbols from 64bit powerpc libgcc1 symbols files. + * Fix control file generation for cross packages. LP: #913734. + + -- Matthias Klose Fri, 10 Feb 2012 21:38:12 +0100 + +gcc-4.7 (4.7-20120205-1) experimental; urgency=low + + * GCC-4.7 snapshot build, taken from the trunk 20120205 (r183903). + * Enable Go on arm*, ia64, mips*, powerpc, s390*, sparc*. + * libgo: Fix ioctl macro extracton. + * Fix PR middle-end/52074, ICE in libgo on powerpc. + * Revert: * Install static libc++{98,11} libraries. + * Don't strip a `/' sysroot from the C++ include directories. + Closes: #658442. + + -- Matthias Klose Sun, 05 Feb 2012 09:16:03 +0100 + +gcc-4.7 (4.7-20120129-1) experimental; urgency=low + + * GCC-4.7 snapshot build, taken from the trunk 20120129 (r183674). + * Configure --with-sysroot for wheezy and sid. + * Install static libc++{98,11} libraries. + * Install libstdc++ gdb.py file into /usr/lib/debug. + * Just copy libstdc++convenience.a for the libstdc++_pic installation. + * Remove trailing dir separator from system root. + + -- Matthias Klose Sun, 29 Jan 2012 08:19:27 +0100 + +gcc-4.7 (4.7-20120121-1) experimental; urgency=low + + * GCC-4.7 snapshot build, taken from the trunk 20120121 (r183370). + + [ Matthias Klose ] + * Fix C++ include paths when configured --with-system-root. + + [ Marcin Juszkiewicz ] + * Fix control file generation for ARM multiarch cross builds. + + -- Matthias Klose Sat, 21 Jan 2012 20:24:29 +0100 + +gcc-4.7 (4.7-20120107-1) experimental; urgency=low + + * GCC-4.7 snapshot build, taken from the trunk 20120107 (r182981). + + * On armel/armhf, allow g*-multilib installation using the runtime + libraries of the corresponding multiarch architecture. + * Fix location of .jinfo files. Addresses: #654579. + * Replace Fortran 95 with Fortran in package descriptions. + + -- Matthias Klose Sat, 07 Jan 2012 21:24:56 +0100 + +gcc-4.7 (4.7-20111231-1) experimental; urgency=low + + * GCC-4.7 snapshot build, taken from the trunk 20111231 (r182754). + + [ Aurelien Jarno ] + * Re-enable parallel builds on kfreebsd-i386, as the problem from bug + #637236 only affects kfreebsd-amd64. + + [ Matthias Klose ] + * Fix generating libphobos dependency for gdc. Addresses: #653078. + * Link libmudflapth.so with -lpthread. + + -- Matthias Klose Sat, 31 Dec 2011 09:42:13 +0100 + +gcc-4.7 (4.7-20111222-1) experimental; urgency=low + + * Update to SVN 20111222 (r182617) from the trunk. + + [Matthias Klose] + * Remove obsolete ARM patch. + * Install loongson.h header. + * Update libgcc and libstdc++ symbols files. + + [Samuel Thibault] + * Update hurd patch for 4.7, fixing build failure. Closes: #652693. + + [Robert Millan] + * Update kbsd-gnu.diff for the trunk. + + -- Matthias Klose Thu, 22 Dec 2011 10:52:01 +0100 + +gcc-4.7 (4.7-20111217-2) experimental; urgency=low + + * Don't provide 4.6.x symlinks. + * Disable multilib for armhf. + * Fix spu installation. + + -- Matthias Klose Sun, 18 Dec 2011 17:22:10 +0100 + +gcc-4.7 (4.7-20111217-1) experimental; urgency=low + + * GCC-4.7 snapshot build. + - Including the GFDL documentation; will stay in experimental + until the 4.7.0 release sometime next year. + * Update patches for the trunk. + * Update symbols files. + * Build libitm packages. + + -- Matthias Klose Sat, 17 Dec 2011 23:19:46 +0100 + +gcc-4.6 (4.6.2-9) unstable; urgency=medium + + * Update to SVN 20111217 (r182430) from the gcc-4_6-branch. + - Fix PR c++/51331. + * Fix build dependencies for armel/armhf. + + -- Matthias Klose Sat, 17 Dec 2011 10:40:26 +0100 + +gcc-4.6 (4.6.2-8) unstable; urgency=low + + * Update to SVN 20111216 (r182407) from the gcc-4_6-branch. + - Fix PR tree-optimization/51485, PR tree-optimization/50569, PR c++/51248, + PR c++/51406, PR c++/51161, PR rtl-optimization/49720, PR fortran/50923, + PR fortran/51338, PR fortran/51550, PR fortran/47545, PR fortran/49050, + PR fortran/51075. + + [ Matthias Klose ] + * gdc-4.6: Provide -{gdc,gdmd}-4.6 symlinks. + + [Ludovic Brenta] + Merge from gnat-4.6 (4.6.2-2) unstable; urgency=low + [Євгеній Мещеряков] + * debian/patches/pr47818.diff: new. Fixes: #614402. + * debian/rules.patch: apply it. + + Merge from gnat-4.6 (4.6.2-1) unstable; urgency=low + [Ludovic Brenta] + * Suggest ada-reference-manual-{html,info,pdf,text} instead of just + ada-reference-manual which no longer exists. + * Do not suggest gnat-gdb, superseded by gdb. + * Downgrade libgnat{vsn,prj}4.6-dev to priority extra; they conflict + with their 4.4 counterparts and priority optional packages may not + conflict with one another, per Policy 2.5. + + -- Matthias Klose Fri, 16 Dec 2011 16:59:30 +0100 + +gcc-4.6 (4.6.2-7) unstable; urgency=medium + + * Update to SVN 20111210 (r182189) from the gcc-4_6-branch. + - Fix PR rtl-optimization/51469, PR tree-optimization/51466, + PR tree-optimization/50078, PR target/51408, PR fortran/51310, + PR fortran/51448. + + -- Matthias Klose Sat, 10 Dec 2011 20:12:33 +0100 + +gcc-4.6 (4.6.2-6) unstable; urgency=low + + * Update to SVN 20111208 (r182120) from the gcc-4_6-branch. + - Fix PR c++/51265, PR bootstrap/50888, PR target/51393 (ix86), + PR target/51002 (AVR), PR target/51345 (AVR), PR debug/48190, + PR fortran/50684, PR fortran/51218, PR target/50906 (closes: #650318), + PR tree-optimization/51315 (closes: #635126), PR tree-optimization/50622, + PR fortran/51435, PR debug/51410, PR c/51339, PR rtl-optimization/48721, + PR middle-end/51323 (LP: #897583), PR middle-end/50074, + PR middle-end/50074. + + [ Matthias Klose ] + * Run the libstdc++ testsuite on all architectures again. Closes: #622699. + * Apply proposed patch for PR target/50906 (powerpcspe only). Closes: #650318. + * Fix PR target/49030 (ARM), taken from Linaro. Closes: #633479. + * Fix PR target/50193 (ARM), taken from Linaro. Closes: #642127. + * Install the libstdc++.so-gdb.py file. LP: #883269. + * Fix PR c++/50114, backport from trunk. LP: #827806. + * Merge changes to allow gcc-snapshot cross builds, taken from Linaro. + * Update the Linaro support to the 4.6 branch. + + [ Marcin Juszkiewicz ] + * Fix issues with gcc-snapshot cross builds. + * Allow building Linaro binary packages in a single package. + * Apply hardening patches for cross builds when enabled for native builds. + + -- Matthias Klose Thu, 08 Dec 2011 17:14:35 +0100 + +gcc-4.6 (4.6.2-5) unstable; urgency=low + + * Update to SVN 20111121 (r181596) from the gcc-4_6-branch. + - Fix PR c++/50870, PR c++/50608, PR target/47997, PR target/48108, + PR target/45233, PR middle-end/51077, PR target/30282, PR c++/50608, + PR target/50979, PR target/4810, PR rtl-optimization/51187, + PR target/50493, PR target/49992, PR target/49641, PR c++/51150, + PR target/50678, PR libstdc++/51142, PR libstdc++/51133. + + [ Matthias Klose ] + * Use the default gcc as stage1 compiler for all architectures. + + [ Marcin Juszkiewicz ] + * debian/control.m4: Use BASEDEP in more places. + * Work around debhelper not calling the correct strip for cross builds. + * Drop dpkg-cross build dependency for cross builds. + + -- Matthias Klose Mon, 21 Nov 2011 22:26:49 +0100 + +gcc-4.6 (4.6.2-4) unstable; urgency=low + + * Update to SVN 20111103 (r180830) from the gcc-4_6-branch. + - Fix PR target/50691, PR c++/50901, PR target/50945, + PR rtl-optimization/47918, PR libstdc++/50880. + + * Configure the armel build by explicitly passing --with-arch=armv4t + --with-float=soft. + * libffi: Simplify PowerPC assembly and avoid CPU-specific string + instructions (Kyle Moffett). + * Fix MULTIARCH_DIRNAME on powerpcspe (Kyle Moffett). Closes: #647324. + + -- Matthias Klose Thu, 03 Nov 2011 12:03:41 -0400 + +gcc-4.6 (4.6.2-3) unstable; urgency=low + + * disable parallel builds on kfreebsd-* even if DEB_BUILD_OPTIONS + enables them (continued investigation for #637236). + + -- Ludovic Brenta Sat, 29 Oct 2011 00:42:46 +0200 + +gcc-4.6 (4.6.2-2) unstable; urgency=low + + * Update to SVN 20111028 (r180603) from the gcc-4_6-branch. + - Fix PR target/50875. + + * Fix gcj, gdc and gnat builds, broken by the stage1 cross-compiler + package dependency fixes. + * Update the Linaro support to the 4.6 branch. + * Fix gcc-4.6-hppa64 installation. Closes: #646805. + * For ARM hard float, set the dynamic linker to + /lib/arm-linux-gnueabihf/ld-linux.so.3. + * Don't use parallel builds on kfreebsd. + + -- Matthias Klose Fri, 28 Oct 2011 16:36:55 +0200 + +gcc-4.6 (4.6.2-1) unstable; urgency=low + + * GCC 4.6.2 release. + + * Fix libgcc installation into /usr/lib/gcc//4.6. Closes: #645021. + * Fix stage1 cross-compiler package dependencies (Kyle Moffett). + Closes: #644439. + + -- Matthias Klose Wed, 26 Oct 2011 13:10:44 +0200 + +gcc-4.6 (4.6.1-16) unstable; urgency=medium + + * Update to SVN 20111019 (r180208) from the gcc-4_6-branch. + - Fix PR target/49967 (ia64), PR tree-optimization/50189, PR fortran/50273, + PR tree-optimization/50700, PR c/50565 (closes: #642144), + PR target/49965 (sparc), PR middle-end/49801, PR c++/49216, + PR c++/49855, PR c++/49896, PR c++/44473, PR c++/50611, PR fortran/50659, + PR tree-optimization/50723, PR tree-optimization/50712, PR obj-c++/48275, + PR c++/50618, PR fortran/47023, PR fortran/50570, PR fortran/50718, + PR libobjc/49883, PR libobjc/50002, PR target/50350, PR middle-end/50386, + PR middle-end/50326, PR target/50737, PR c++/50787, PR c++/50531, + PR fortran/50016, PR target/50737. + + [ Matthias Klose ] + * Fix libjava installation into /usr/lib/gcc//4.6. + * Fix powerpc and ppc64 libffi builds (Kyle Moffett). + * Apply proposed patch for PR target/50350. Closes: #642313. + * Re-apply the fix for PR tree-optimization/49911 on ia64. + * Apply proposed patch for PR target/50106 (ARM). + + [Xavier Grave] + * debian/patches/address-clauses-timed-entry-calls.diff: new; backport + bug fix about address clauses and timed entry calls. + + [Ludovic Brenta] + * debian/patches/ada-kfreebsd-gnu.diff: new; provide dummy + implementations of some optional POSIX Threads functions missing in + GNU/kFreeBSD. Closes: #642128. + + -- Matthias Klose Thu, 20 Oct 2011 00:24:13 +0200 + +gcc-4.6 (4.6.1-15) unstable; urgency=low + + * Update to SVN 20111010 (r179753) from the gcc-4_6-branch. + - Fix PR target/50652. + * Update the Linaro support to the 4.6-2011.10-1 release. + * Fix gcc-spu installation. + * Restore symlink for subminor GCC version. Closes: #644849. + + -- Matthias Klose Mon, 10 Oct 2011 17:10:40 +0200 + +gcc-4.6 (4.6.1-14) unstable; urgency=low + + * Update to SVN 20111008 (r179710) from the gcc-4_6-branch. + - Fix PR inline-asm/50571, PR c++/46105, PR c++/50508, PR libstdc++/50529, + PR libstdc++/49559, PR c++/40831, PR fortran/48706, PR target/49049, + PR tree-optimization/49279, PR fortran/50585, PR fortran/50625, + PR libstdc++/48698. + + [ Matthias Klose ] + * Configure and build to install into /usr/lib/gcc//4.6. + Closes: #643891. + * libgcc1: Versioned break to gcc-4.3. + * Fix gcc-multiarch for i386-linux-gnu with disabled multilibs. + * libffi: Fix PowerPC soft-floating-point support (Kyle Moffett). + + [ Marcin Juszkiewicz ] + * Enable gcc-snapshot cross builds. + + [ Iain Buclaw ] + * Port gdc to GCC-4.6. + + [ Aurelien Jarno ] + * Backport fix for PR target/49696 from the trunk (Closes: #633443). + + -- Matthias Klose Sat, 08 Oct 2011 14:40:49 +0200 + +gcc-4.6 (4.6.1-13) unstable; urgency=low + + * Update to SVN 20110926 (r179207) from the gcc-4_6-branch. + - Fix PR tree-optimization/50472, PR tree-optimization/50413, + PR tree-optimization/50412, PR c++/20039, PR c++/42844, + PR libstdc++/50510, PR libstdc++/50509. + * Revert the fix for PR tree-optimization/49911, bootstrap error on ia64. + * libffi: Define FFI_MMAP_EXEC_WRIT on kfreebsd-* (Petr Salinger). + + -- Matthias Klose Mon, 26 Sep 2011 19:59:55 +0200 + +gcc-4.6 (4.6.1-12) unstable; urgency=low + + * Update to SVN 20110924 (r179140) from the gcc-4_6-branch. + - Fix PR target/50464, PR target/50341, PR middle-end/49886, + PR target/50091, PR c++/50491, PR c++/50442 (Closes: #642176). + + -- Matthias Klose Sat, 24 Sep 2011 10:39:32 +0200 + +gcc-4.6 (4.6.1-11) unstable; urgency=low + + * Update to SVN 20110917 (r178926) from the gcc-4_6-branch. + - Fix PR c++/50424, PR c++/48320, PR fortran/49479. + + [ Matthias Klose ] + * Update the Linaro support to the 4.6-2011.09-1 release. + + [ Aurelien Jarno ] + * gcc.c (for_each_path): Allocate memory for multiarch suffix. + + -- Matthias Klose Sat, 17 Sep 2011 10:53:36 +0200 + +gcc-4.6 (4.6.1-10) unstable; urgency=medium + + * Update to SVN 20110910 (r178746) from the gcc-4_6-branch. + - Fix PR middle-end/50266, PR tree-optimization/49911, + PR tree-optimization/49518, PR tree-optimization/49628, + PR tree-optimization/49628, PR target/50310, PR target/50289, + PR c++/50255, PR c++/50309, PR c++/49267, PR libffi/49594. + - Revert fix for PR middle-end/49886, causing PR middle-end/50295. + + -- Matthias Klose Sat, 10 Sep 2011 03:38:48 +0200 + +gcc-4.6 (4.6.1-9) unstable; urgency=low + + * Update to SVN 20110903 (r178501) from the gcc-4_6-branch. + - Fix PR target/50090, PR middle-end/50116, PR target/50202, PR c/50179, + PR c++/50157, PR fortran/50163, PR libfortran/50192, + PR middle-end/49886, PR tree-optimization/50178, PR c++/50207, + PR c++/50089, PR c++/50220, PR c++/50234, PR c++/50224, + PR libstdc++/50268. + + [ Matthias Klose ] + * Fix gcc --print-multilib-osdir for non-biarch architectures. + * Fix multiarch for non-biarch builds. Closes: #635860. + * Move the lto plugin to the cpp packge. Closes: #639531. + + [ Thorsten Glaser ] + * [m68k] Disable multilib. Closes: #639303. + + -- Matthias Klose Sat, 03 Sep 2011 20:11:50 +0200 + +gcc-4.6 (4.6.1-8) unstable; urgency=low + + * Update to SVN 20110824 (r178027) from the gcc-4_6-branch. + Fix PR fortran/49792, PR tree-optimization/48739, PR target/50092, + PR c++/50086, PR c++/50054, PR fortran/50050, PR fortran/50130, + PR fortran/50129, PR fortran/49792, PR fortran/50109, PR c++/50024, + PR c++/46862. + + * Properly disable multilib builds for selected libraries on armel and armhf. + * Update and re-enable the gcc-ice patch. + * Update and re-enable the gcc-cloog-dl patch. + * Fix [ARM] PR target/50090: aliases in libgcc.a with default visibility, + taken from the trunk. + * Re-work the multiarch patches. + * Break older gcj-4.6 and gnat-4.6 versions, changed gcc_lib_dir. + * Omit the target alias from the go libdir. + * Linaro updates from the 4.6-2011.07-stable branch. + * Revert: + - libjava: Build with the system libffi PIC library. + * For native builds, gcc -print-file-name now resolve . and .., + and removes the subminor version number. + + -- Matthias Klose Wed, 24 Aug 2011 10:22:42 +0200 + +gcc-4.6 (4.6.1-7) unstable; urgency=low + + * Update to SVN 20110816 (r177780) from the gcc-4_6-branch. + - Fix PR middle-end/49923. + + [ Matthias Klose ] + * gcc-4.6-multilib: Depend on biarch quadmath library. Closes: #637174. + * Don't hard-code build dependency on gcc-multilib. + * Build-depends on python when building java. + * Fix thinko in java::lang::Class::finalize (taken from the trunk). + * Add support for ARM 64bit sync intrinsics (David Gilbert). Only + enable for armv7 or better. + * libjava: Build with the system libffi PIC library. + * Disable gnat multilib builds on armel and armhf. + + Merge from gnat-4.6 (4.6.1-4) unstable; urgency=low + + [Ludovic Brenta] + * debian/patches/ada-symbolic-tracebacks.diff + (src/gcc/ada/gcc-interface/Makefile.in): pass -iquote instead of -I- + to gnatgcc; fixes FTBFS on i386 and closes: #637418. + + Merge from gnat-4.6 (4.6.1-3) unstable; urgency=low + + [Євгеній Мещеряков] + * debian/patches/ada-mips.diff: do not use the alternate stack on mips, + as on mipsel. Closes: #566234. + + [Ludovic Brenta] + * debian/patches/pr49940.diff: new; copy the definition of function + lwp_self from s-osinte-freebsd.ads to s-osinte-kfreebsd-gnu.ads. + Closes: #636291. + * debian/patches/pr49944.diff: new. Closes: #636692. + * debian/patches/pr49819.diff: drop, merged upstream. + + -- Matthias Klose Tue, 16 Aug 2011 13:11:25 +0200 + +gcc-4.6 (4.6.1-6) unstable; urgency=low + + * Update to SVN 20110807 (r177547) from the gcc-4_6-branch. + - Fix PR rtl-optimization/49799, PR debug/49871, PR target/47364, + PR target/49866, PR tree-optimization/49671, PR target/39386, + PR ada/4981, PR fortran/45586, PR fortran/49791, PR middle-end/49897, + PR middle-end/49898, PR target/49920, PR target/47908 (closes: #635919), + PR c++/43886, PR c++/49593, PR c++/49803, PR c++/49924, PR c++/49260, + PR fortran/49885, PR fortran/48876, PR libstdc++/49925, PR target/50001, + PR tree-optimization/49948, PR c++/48993, PR c++/49921, PR c++/49669, + PR c++/49988, PR fortran/49112. + + [ Aurelien Jarno ] + * Update patches/kbsd-gnu.diff for recent changes. Closes: #635195. + * Add s390x support. + + [ Marcin Juszkiewicz ] + * Fixes for multilib cross builds. LP: #816852, #819147. + + [ Matthias Klose ] + * Fix libgo installation for cross builds. + * Only apply arm-multilib when building for multilib. + + -- Matthias Klose Sun, 07 Aug 2011 18:20:00 +0200 + +gcc-4.6 (4.6.1-5) unstable; urgency=low + + * Update to SVN 20110723 (r176672) from the gcc-4_6-branch. + - Fix PR target/49541, PR tree-optimization/49768, PR middle-end/49675, + PR target/49746, PR middle-end/49732, PR tree-optimization/49725, + PR target/49723, PR target/49541, PR tree-opt/49309, PR c++/49785, + PR ada/48711, PR ada/46350, PR fortran/49648, PR testsuite/49753, + PR tree-optimization/49309, PR tree-optimization/45819, PR target/49600, + PR fortran/49708, PR libstdc++/49293. + * Update the Linaro support to the 4.6-2011.07-0 release. + - Fix PR target/49335. LP: #791327. + * Update gcc-multiarch: + - Add -print-multiarch option. + - Fix library path for non-default multilib(s). + - Handle `.' in MULTILIB_DIRNAMES. + * Add support to build multilib on armel and armhf, only enable it for + Ubuntu/oneiric. LP: #810360. + * cpp-4.6: Add empty multiarch directories for the non-default multilibs, + needed for relative lookups from startfile_prefixes. + * Fix PR c++/49756, backport from trunk. LP: #721378. + * libgcc1: Add breaks to gcc-4.1 and gcc-4.3. Closes: #634821. + * Configure for DEB_TARGET_MULTIARCH defaults. + + -- Matthias Klose Sat, 23 Jul 2011 08:15:50 +0200 + +gcc-4.6 (4.6.1-4) unstable; urgency=low + + * Update to SVN 20110714 (r176280) from the gcc-4_6-branch. + - Fix PR tree-optimization/49094, PR target/39633, PR c++/49672, + PR fortran/49698, PR fortran/49690, PR fortran/49562, PR libfortran/49296, + PR target/49487, PR tree-optimization/49651, PR ada/48711. + + [ Matthias Klose ] + * Build Go on alpha for gcc-snapshot builds. + * For multicore ARM, clear both caches, not just the dcache (proposed + patch by Andrew Haley). + * Fix for PR rtl-optimization/{48830,48808,48792}, taken from the trunk. + LP: #807573. + * Fix PR tree-optimization/49169, optimisations strip the Thumb/ARM mode bit + off function pointers (Richard Sandiford). LP: #721531. + + [ Marcin Juszkiewicz ] + * Define DEB_TARGET_MULTIARCH macro. + * debian/rules2: Macro and configuration consolidation. + + -- Matthias Klose Thu, 14 Jul 2011 19:38:49 +0200 + +gcc-4.6 (4.6.1-3) unstable; urgency=medium + + * Update to SVN 20110709 (r176108) from the gcc-4_6-branch. + - Fix PR target/49335, PR tree-optimization/49618, PR c++/49598, + PR fortran/49479, PR target/49621, PR target/46779, PR target/49660, + PR c/49644, PR debug/49522, PR debug/49522, PR middle-end/49640, + PR c++/48157, PR c/49644, PR fortran/48926. + - Apparently fixes a boost issue. Closes: #632938. + * Apply proposed patch for PR fortran/49690. Closes: #631204. + + * README.Debian: New section 'Former and/or inactive maintainers'. + + -- Matthias Klose Sun, 10 Jul 2011 00:04:34 +0200 + +gcc-4.6 (4.6.1-2) unstable; urgency=medium + + * Update to SVN 20110705 (r175840) from the gcc-4_6-branch. + - Fix PR target/47997, PR c++/49528, PR c++/49440, PR c++/49418, + PR target/44643, PR tree-optimization/49615, PR tree-optimization/49572, + PR target/34734, PR tree-optimization/49539, PR tree-optimizations/49516, + PR target/49089, PR rtl-optimization/49014, PR target/48273, + PR fortran/49466, PR libfortran/49296, PR libffi/46660, PR debug/49262, + PR rtl-optimization/49472, PR rtl-optimization/49619, PR fortran/49623, + PR fortran/49540. + + [Ludovic Brenta, Євгеній Мещеряков, Xavier Grave] + * Adjust patches to GCC 4.6. + * Remove patches merged upstream: + - debian/patches/ada-arm-eabi.diff + - debian/patches/ada-bug589164.diff + - debian/patches/ada-bug601133.diff + - debian/patches/ada-gnatvsn.diff + - debian/patches/ada-mips.diff + - debian/patches/ada-polyorb-dsa.diff + + [Ludovic Brenta] + * debian/patches/ada-acats.diff: set LD_LIBRARY_PATH, ADA_INCLUDE_PATH + and ADA_OBJECTS_PATH so that the GNAT testsuite runs. + * debian/patches/adalibgnat{vsn,prj}.diff, + debian/rules.d/binary-ada.mk: install libgnat{vsn,prj}.so.* in the correct + multiarch directory. + * debian/control.m4, debian/rules.d/binary-ada.mk: move the SJLJ version + of the Ada run-time library to a new package, gnat-4.6-sjlj. + * debian/control.m4 (libgnatvsn4.6, libgnatvsn4.6-dbg, libgnatprj4.6, + libgnatprj4.6-dbg): pre-depend on multiarch-support and add + Multi-Arch: same. + + [Nicolas Boulenguez] + * debian/rules.d/binary-ada.mk: add gnathtml to the package gnat-4.6. + * debian/gnat.1: remove the version number of GCC. Mention gnathtml. + + [ Matthias Klose ] + * Do not install the spu and hppa64 cross compilers into the multiarch path. + * Update the Linaro support to 20110704. + + [ Thorsten Glaser ] + * Apply changes from src:gcc-4.4 for m68k support. Closes: #632380. + - debian/rules.defs: Remove m68k from locale_no_cpus. + - debian/patches/gcc-multiarch.diff: Add m68k multiarch_mappings. + - debian/patches/pr43804.diff: Fix backported from SVN. + - debian/rules.patch: Add pr43804. + + -- Matthias Klose Tue, 05 Jul 2011 10:45:56 +0200 + +gcc-4.6 (4.6.1-1) unstable; urgency=low + + * GCC 4.6.1 release. + + [Ludovic Brenta] + * debian/patches/ada-gnatvsn.diff, + debian/patches/ada-polyorb-dsa.diff: remove backports, no longer + needed. + + [ Matthias Klose ] + * Fix plugin header installation. Closes: #631082. + * Stop passing -Wno-error=unused-but-set-parameter and + -Wno-error=unused-but-set-variable if -Werror is present. + This was a temporary workaround introduced in 4.6.0~rc1-2. Closes: #615157. + * gcc-4.6-spu: Install the lto plugin. Closes: #631772. + + -- Matthias Klose Mon, 27 Jun 2011 13:54:04 +0200 + +gcc-4.6 (4.6.0-14) unstable; urgency=low + + * Update to SVN 20110616 (r175102) from the gcc-4_6-branch. + - Fix PR debug/48459, PR fortran/49103, PR rtl-optimization/49390, + PR c++/49117, PR c++/49369, PR c++/49290, PR target/44618, + PR tree-optimization/49419 (closes: #630567). + * Update the Linaro support to the 4.6-2011.06-0 release. + + -- Matthias Klose Thu, 16 Jun 2011 16:10:33 +0200 + +gcc-4.6 (4.6.0-13) unstable; urgency=low + + * Update to SVN 20110611 (r174958) from the gcc-4_6-branch. + * Extend multiarch support for mips/mipsel. + * Fix control files for gcj multiarch builds. + * Update libstdc++ symbols files. + + -- Matthias Klose Sat, 11 Jun 2011 20:49:42 +0200 + +gcc-4.6 (4.6.0-12) unstable; urgency=medium + + * Update to SVN 20110608 (r174800) from the gcc-4_6-branch. + - PR target/49186, PR rtl-optimization/49235, PR tree-optimization/48702, + PR tree-optimization/49243, PR c++/49134, PR target/49238, + PR gcov-profile/49299, PR c++/48780, PR c++/49298, PR fortran/49268. + * Fix c++ biarch header installation on i386. LP: #793411. + * Enable multiarch. + * Add multiarch attributes for gnat and libgnat packages. + * Add multiarch attributes for libgcj* packages. + * Adjust build dependency on multiarch glibc. + + -- Matthias Klose Wed, 08 Jun 2011 11:26:52 +0200 + +gcc-4.6 (4.6.0-11) unstable; urgency=low + + * Update to SVN 20110604 (r174637) from the gcc-4_6-branch. + - Fix PR c++/49165, PR tree-optimization/49218, PR target/45263, + PR target/43700, PR target/43995, PR tree-optimization/49217, + PR c++/49223, PR c++/47049, PR c++/47277, PR c++/48284, PR c++/48657, + PR c++/49176, PR fortran/48955, PR tree-optimization/49038, + PR tree-optimization/49093, PR middle-end/48985, PR middle-end/48953, + PR c++/49276, PR fortran/49265, PR fortran/45786. + * Configure the hppa64 and spu cross builds with --enable-plugin. + + -- Matthias Klose Sat, 04 Jun 2011 16:12:27 +0200 + +gcc-4.6 (4.6.0-10) unstable; urgency=high + + * Update to SVN 20110526 (r174290) from the gcc-4_6-branch. + - Fix PR target/44643, PR c++/49165, PR tree-optimization/49161, + PR target/49128, PR tree-optimization/44897, PR target/49133, + PR c++/44994, PR c++/49156, PR c++/45401, PR c++/44311, PR c++/44311, + PR c++/45698, PR c++/46145, PR c++/46245, PR c++/46696, PR c++/47184, + PR c++/48935, PR c++/45418, PR c++/45080, PR c++/48292, PR c++/49136, + PR c++/49042, PR c++/48884, PR c++/49105, PR c++/47263, PR c++/47336, + PR c++/47544, PR c++/48617, PR c++/48424, PR libstdc++/49141, + PR libobjc/48177. + * Proposed fix for PR tree-optimization/48702, PR tree-optimization/49144. + Closes: #627795. + * Proposed fix for PR fortran/PR48955. + * Add some conditionals to build the package on older releases. + + -- Matthias Klose Thu, 26 May 2011 16:00:49 +0200 + +gcc-4.6 (4.6.0-9) unstable; urgency=low + + * Update to SVN 20110524 (r174102) from the gcc-4_6-branch. + - Fix PR lto/49123, PR debug/49032, PR c/49120, PR middle-end/48973, + PR target/49104, PR middle-end/49029, PR c++/48647, PR c++/48945, + PR c++/48780, PR c++/49066, PR libstdc++/49058, PR target/49104. + * Use gcc-4.4 as the bootstrap compiler for kfreebsd to work around + a bootstrap issue. + + -- Matthias Klose Tue, 24 May 2011 09:41:35 +0200 + +gcc-4.6 (4.6.0-8) unstable; urgency=low + + * Update to SVN 20110521 (r173994) from the gcc-4_6-branch. + - Fix PR target/48986, PR preprocessor/48677, PR tree-optimization/48975, + PR tree-optimization/48822, PR debug/48967, PR debug/48159, + PR target/48857, PR target/48495, PR tree-optimization/48837, + PR tree-optimization/48611, PR tree-optimization/48794, PR c++/48859, + PR c++/48574, PR fortran/48889, PR target/49002, PR lto/48207, + PR tree-optimization/49039, PR tree-optimization/49018, PR lto/48703, + PR tree-optimization/48172, PR tree-optimization/48172, PR c++/48873, + PR tree-optimization/49000, PR c++/48869, PR c++/49043, PR c++/49082, + PR c++/48948, PR c++/48745, PR c++/48736, PR bootstrap/49086, + PR tree-optimization/49079, PR tree-optimization/49073. + * Update the Linaro support to the 4.6-2011.05-0 release. + * pr45979.diff: Update to the version from the trunk. + + -- Matthias Klose Sat, 21 May 2011 12:19:10 +0200 + +gcc-4.6 (4.6.0-7) unstable; urgency=low + + * Update to SVN 20110507 (r173528) from the gcc-4_6-branch. + - Fix PR middle-end/48597, PR c++/48656, PR fortran/48112, + PR fortran/48279, PR fortran/48788, PR tree-optimization/48809, + PR target/48262, PR fortran/48462, PR fortran/48746, + PR fortran/48810, PR fortran/48800, PR libstdc++/48760, + PR libgfortran/48030, PR preprocessor/48192, PR lto/48846, + PR target/48723, PR fortran/48894, PR target/48900, PR target/48252, + PR c++/40975, PR target/48252, PR target/48774, PR c++/48838, + PR c++/48749, PR ada/48844, PR fortran/48720, PR libstdc++/48750, + PR c++/48909, PR c++/48911, PR c++/48446, PR c++/48089. + + * Fix issue with volatile bitfields vs. inline asm memory constraints, + taken from the trunk, apply for ARM only. Addresses: #625825. + + -- Matthias Klose Sat, 07 May 2011 14:54:51 +0200 + +gcc-4.6 (4.6.0-6) unstable; urgency=low + + * Update to SVN 20110428 (r173059) from the gcc-4_6-branch. + - Fix PR c/48685 (closes: #623161), PR tree-optimization/48717, PR c/48716, + PR c/48742, PR debug/48768, PR tree-optimization/48734, + PR tree-optimization/48731, PR other/48748, PR c++/42687, PR c++/48726, + PR c++/48707, PR fortran/48588, PR libstdc++/48521, PR c++/48046, + PR preprocessor/48740. + * Update the ibm/gcc-4_6-branch to 20110428. + * Use gcc-4.6 as bootstrap compiler on kfreebsd-*. + + -- Matthias Klose Thu, 28 Apr 2011 10:33:52 +0200 + +gcc-4.6 (4.6.0-5) unstable; urgency=low + + * Update to SVN 20110421 (r172845) from the gcc-4_6-branch. + - Fix PR target/48288, PR tree-optimization/48611, PR lto/48148, + PR lto/48492, PR fortran/47976, PR c++/48594, PR c++/48657, + PR c++/46304, PR target/48708, PR middle-end/48695. + + * Update the Linaro support to the 4.6-2011.04-0 release. + + -- Matthias Klose Thu, 21 Apr 2011 22:50:25 +0200 + +gcc-4.6 (4.6.0-4) unstable; urgency=medium + + * Update to SVN 20110419 (r172584) from the gcc-4_6-branch. + - Fix PR target/48678, PR middle-end/48661, PR tree-optimization/48616, + PR lto/48538, PR c++/48537, PR c++/48632, PR testsuite/48675, + PR libstdc++/48635, PR libfortran/47571. + + [ Aurelien Jarno ] + * Enable SSP on mips/mipsel. + + [ Matthias Klose ] + * (Build-)depend on binutils 2.21.51. + + -- Matthias Klose Tue, 19 Apr 2011 23:45:16 +0200 + +gcc-4.6 (4.6.0-3) unstable; urgency=high + + * Update to SVN 20110416 (r172584) from the gcc-4_6-branch. + - Fix PR rtl-optimization/48143, PR target/48142, PR target/48349, + PR debug/48253, PR fortran/48291, PR target/16292, PR c++/48280, + PR c++/48212, PR c++/48369, PR c++/48281, PR c++/48265, PR lto/48246, + PR libstdc++/48398, PR bootstrap/48431, PR tree-optimization/48377, + PR debug/48343, PR rtl-optimization/48144, PR debug/48466, PR c/48517, + PR middle-end/48335, PR c++/48450, PR target/47829, PR c++/48534, + PR c++/48523, PR libstdc++/48566, PR libstdc++/48541, PR target/48366, + PR libstdc++/48465, PR middle-end/48591, PR target/48605, + PR middle-end/48591, PR target/48090, PR tree-optimization/48195, + PR rtl-optimization/48549, PR c++/48594, PR c++/48570, PR c++/48574, + PR fortran/48360, PR fortran/48456, PR libstdc++/48631, + PR libstdc++/48635, PR libstdc++/48476. + + [ Matthias Klose ] + * libjava-jnipath.diff: Add /usr/lib//jni as jnipath too. + * Add mudflap support for varargs (patch taken from the trunk). + * gcc-4.6-plugin-dev: Install gtype.state. + * Bootstrap with gcc-4.4 -g -O2 on armel. + * Fix linker plugin configuration. Closes: #620661. + * Update the Linaro support for GCC-4.6. + * gcc-snapshot builds: + - Fix build with multiarch changes. + - Use gcc-snapshot as the bootstrap compiler on armel. + - Re-enable building java in the gcc-snapshot package. + * Build supporting multiarch on wheezy/sid. + * Adjust (build)-dependency to new libgmp-dev name. + + [ Marcin Juszkiewicz ] + * Configure stage1 cross builds with --disable-libquadmath. + + -- Matthias Klose Sat, 16 Apr 2011 17:02:30 +0200 + +gcc-4.6 (4.6.0-2) unstable; urgency=low + + * Update to SVN 20110329 (r171700) from the gcc-4_6-branch. + - Fix PR bootstrap/48135, PR target/47553, PR middle-end/48269, + PR tree-optimization/48228, PR middle-end/48134, PR middle-end/48031, + PR other/48179, PR other/48221, PR other/48234, PR target/48237, + PR debug/48204, PR c/42544, PR c/48197, PR rtl-optimization/48141, + PR rtl-optimization/48141, PR c++/48166, PR c++/48296, PR c++/48289, + PR c++/47999, PR c++/48313, Core 1232, Core 1148, PR c++/47504, + PR c++/47570, PR preprocessor/48248, PR c++/48319. + + [ Matthias Klose ] + * Update NEWS files. + * Configure the hppa64 cross build with --disable-libquadmath. + * Don't build armhf from the Linaro branch. + * Don't try to build Go on sh4. + + [ Marcin Juszkiewicz ] + * Fixes issues with staged cross builds. LP: #741855, #741853. + * Fix libdir setting for multiarch enabled cross builds. LP: #741846. + * Drop alternatives for cross builds. LP: #676454. + + -- Matthias Klose Tue, 29 Mar 2011 23:22:07 +0200 + +gcc-4.6 (4.6.0-1) unstable; urgency=low + + * GCC 4.6.0 release. + + * Build the gold LTO plugin for ppc64 (Hiroyuki Yamamoto). Closes: #618865. + * Fix PR target/48226, Allow Iterator::vector vector on powerpc with VSX, + taken from the trunk. + * Fix PR target/47487 ICE building libgo, taken from the trunk. + * Merge multiarch changes from the gcc-4.5 package. + * Apply proposed patch to reduce the overhead of dwarf2 location tracking. + Addresses: #618748. + + -- Matthias Klose Sat, 26 Mar 2011 03:03:21 +0100 + +gcc-4.6 (4.6.0~rc1-3) experimental; urgency=low + + * GCC 4.6.0 release candidate 2. + + -- Matthias Klose Tue, 22 Mar 2011 22:11:42 +0100 + +gcc-4.6 (4.6.0~rc1-2) experimental; urgency=low + + [ Loic Minier ] + * Rework config/vxworks-dummy.h installation snippet to test + DEB_TARGET_GNU_CPU against patterns close to the upstream ones (arm% mips% + sh% sparc%) as to also install this header on other ports targetting the + relevant upstream CPUs such as armhf. Add a comment pointing at the + upstream bug. + * Update __aeabi symbol handling to test whether DEB_TARGET_GNU_TYPE matches + arm-linux-gnueabi% instead of testing whether DEB_TARGET_ARCH equals + armel. Add a comment pointing at the Debian bug and indicating that this + is only useful for older dpkg-dev versions. + * debian/rules.def: fix "armel" entry to "arm" in list of + DEB_TARGET_ARCH_CPUs for Debian experimental GCC 4.5/4.6 libraries. + * debian/rules2: drop commented out GCC #42509 workaround as this was fixed + upstream in 4.4+. + * Change bogus DEB_TARGET_GNU_CPU test on armel and armhf to just test for + arm as ths is what the Debian arm, armel and armhf port use. + * Rework snippet setting armv7 on Debian armhf / Ubuntu to avoid + duplication, as a comment called out for. + * Use "arm" instead of armel/armhf in DEB_TARGET_GNU_CPU test when deciding + whether to enable profiledbootstrap. + * Set DEJAGNU_TIMEOUT=600 on Ubuntu armhf as well. + * Fix a couple more uses of armel or armhf against DEB_TARGET_GNU_CPU. + * Patched a couple of comments mentioning armel to also mention armhf. + * Add patch armhf-triplet-backport, support for arm-linux-*eabi* backported + from a patch sent on the upstream mailing-list. + + [ Matthias Klose ] + * Update libstdc++ symbols files. + * Update libgfortran symbols files. + + -- Matthias Klose Sun, 20 Mar 2011 13:53:48 +0100 + +gcc-4.6 (4.6.0~rc1-2) experimental; urgency=low + + * Update to SVN 20110320 (r171192) from the gcc-4_6-branch. + + [ Matthias Klose ] + * Update gcc-default-ssp* patches for the release candidate. + * Pass -Wno-error=unused-but-set-parameter if -Werror is present (temporary + for rebuild tests). + * Always configure --with-plugin-ld, always install liblto_plugin.so. + + [ Marcin Juszkiewicz ] + * Add conflicts with -4.5-*dev packages. Closes: #618450. + + [ Petr Salinger] + * Disable lock-2.c test on kfreebsd-*. Closes: #618988. + * Re-enable parallel builds on kfreebsd. + * Package lto_plugin for kfreebsd-* and Hurd. + + -- Matthias Klose Sun, 20 Mar 2011 13:53:48 +0100 + +gcc-4.6 (4.6.0~rc1-1) experimental; urgency=low + + * Build from the GCC 4.6.0 release candidate tarball. + + [ Matthias Klose ] + * Disable Go on powerpc. Closes: #615827. + * Fix lintian errors for the -plugin-dev package. + * Update kbsd-gnu.diff (Petr Salinger). Closes: #615826. + * Disable parallel builds on kfreebsd (Petr Salinger). + * Update gmp (build) dependencies. + * Update GFDL compliant builds. Closes: #609161. + * For GFDL compliant builds, build a dummy s-tm-texi without access + to the texinfo sources. + + [ Aurelien Jarno ] + * Import symbol files for kfreebsd-amd64, kfreebsd-i386, sh4 and + sparc64 from gcc-4.5. + + -- Matthias Klose Mon, 14 Mar 2011 19:01:08 +0100 + +gcc-4.6 (4.6-20110227-1) experimental; urgency=low + + [ Matthias Klose ] + * Update libquadmath symbols file. + * gcc-4.6-plugin-dev: Install gengtype. + + [ Sebastian Andrzej Siewior ] + * Remove -many on powerpcspe (__SPE__). + * Remove classic FPU opcodes from libgcc if target has no support for them + (powerpcspe). + + -- Matthias Klose Sun, 27 Feb 2011 22:33:45 +0100 + +gcc-4.6 (4.6-20110216-1) experimental; urgency=low + + * GCC snapshot, taken from the trunk. + * Pass --no-add-needed by default to the linker. See + http://wiki.debian.org/ToolChain/DSOLinking, section "Not resolving symbols + in indirect dependent shared libraries" for more information. + + -- Matthias Klose Wed, 16 Feb 2011 23:55:32 +0100 + +gcc-4.6 (4.6-20110125-1) experimental; urgency=low + + * debian/copyright: Add unicode copyright for + libjava/classpath/resource/gnu/java/locale/* files. Addresses: #609161. + + -- Matthias Klose Wed, 26 Jan 2011 03:42:10 +0100 + +gcc-4.6 (4.6-20110123-1) experimental; urgency=low + + * GCC snapshot, taken from the trunk. + * Don't run the libstdc++ testsuite on mipsel, times out on the buildd. + + [ Marcin Juszkiewicz ] + * Fix biarch/triarch cross builds. + - dpkg-shlibdeps failed to find libraries for 64 or n32 builds + - LD_LIBRARY_PATH for dpkg-shlibdeps lacked host dirs. + + -- Matthias Klose Sun, 23 Jan 2011 12:14:49 +0100 + +gcc-4.6 (4.6-20110116-1) experimental; urgency=low + + * GCC snapshot, taken from the trunk. + * Update patches for the trunk. + * Pass -Wno-error=unused-but-set-variable if -Werror is present (temporary + for rebuild tests). + * Work around PR libffi/47248, force a read only eh frame section. + + -- Matthias Klose Sun, 16 Jan 2011 23:28:28 +0100 + +gcc-4.6 (4.6-20110105-1) experimental; urgency=low + + [ Matthias Klose ] + * Rename and update libobjc symbols files. + * Update cloog/ppl build dependencies. + * Adjust libstdc++ configure and paths for stylesheets and dtds. + * Update copyright for libquadmath, libgo, gcc/go/gofrontend. + * Enable Go for more architectures. + * DP: libgo: Fix GOARCH for i386 biarch, add GOARCH for powerpc + + [ Kees Cook ] + * Update hardening patches for GCC-4.6. LP: #696990. + + -- Matthias Klose Wed, 05 Jan 2011 22:29:57 +0100 + +gcc-4.6 (4.6-20101220-1) maverick; urgency=low + + * GCC snapshot, taken from the trunk. + + -- Matthias Klose Tue, 21 Dec 2010 00:16:19 +0100 + +gcc-4.5 (4.5.2-7) unstable; urgency=low + + * Update to SVN 20110323 (r171351) from the gcc-4_5-branch. + - Fix PR c++/47125, PR fortran/47348, PR libstdc++/48114, + PR libfortran/48066, PR target/48171, PR target/47862. + PR preprocessor/48192. + + [ Steve Langasek ] + * Make dpkg-dev versioned build-dependency conditional on whether we want + to build for multiarch. + * Add a new patch, gcc-multiarch+biarch.diff, used only when building for + multiarch to set our multilib paths to the correct relative directories. + * debian/rules.defs: support turning on multiarch build by architecture; + but don't enable this yet, we still need to wait for dpkg-dev. + * When DEB_HOST_MULTIARCH is available (i.e., with the next dpkg upload), + use it as our multiarch path. + * debian/rules.d/binary-java.mk: jvm-exports path is /usr/lib/jvm-exports, + not $(libdir)/jvm-exports. + * OTOH, libgcj_bc *is* in $(libdir). + * the spu build is not a multiarch build; look in the correct + non-multiarch directory. + * debian/rules2: pass --libdir also for stageX builds, needed in order to + successfully build for multiarch. + * debian/rules2: $(usr_lib) for a cross-build should not include the + multiarch dir as part of the path. + * debian/patches/gcc-multiarch+biarch.diff: restore the original intent of + the patch, namely, that the multilib dir for the default variant is + always equal to libdir (the multiarch dir), and we walk up the tree + to find lib for the secondary variant. + * debian/patches/gcc-multiarch+biarch32.diff: apply the same multilib + directory rewriting for biarch paths with multiarch as we do without; + still needed in the near term. + * Put our list of patches in README.Debian.$(DEB_TARGET_ARCH) instead of + in README.Debian, so that the individual files are architecture-neutral + and play nicely with multiarch. LP: #737846. + * Add a comment at the bottom of README.Debian with a pointer to the new + file listing the patches. + + [ Loic Minier ] + * Rework config/vxworks-dummy.h installation snippet to test + DEB_TARGET_GNU_CPU against patterns close to the upstream ones (arm% mips% + sh% sparc%) as to also install this header on other ports targetting the + relevant upstream CPUs such as armhf. Add a comment pointing at the + upstream bug. + * Update __aeabi symbol handling to test whether DEB_TARGET_GNU_TYPE matches + arm-linux-gnueabi% instead of testing whether DEB_TARGET_ARCH equals + armel. Add a comment pointing at the Debian bug and indicating that this + is only useful for older dpkg-dev versions. + * debian/rules.def: fix "armel" entry to "arm" in list of + DEB_TARGET_ARCH_CPUs for Debian experimental GCC 4.5/4.6 libraries. + * debian/rules2: drop commented out GCC #42509 workaround as this was fixed + upstream in 4.4+. + * Change bogus DEB_TARGET_GNU_CPU test on armel and armhf to just test for + arm as ths is what the Debian arm, armel and armhf port use. + * Rework snippet setting armv7 on Debian armhf / Ubuntu to avoid + duplication, as a comment called out for. + * Use "arm" instead of armel/armhf in DEB_TARGET_GNU_CPU test when deciding + whether to enable profiledbootstrap. + * Set DEJAGNU_TIMEOUT=600 on Ubuntu armhf as well. + * Fix a couple more uses of armel or armhf against DEB_TARGET_GNU_CPU. + * Patched a couple of comments mentioning armel to also mention armhf. + * Add patch armhf-triplet-backport, support for arm-linux-*eabi* backported + from a patch sent on the upstream mailing-list. + + [ Matthias Klose ] + * Fix PR target/48226, Allow Iterator::vector vector on powerpc with VSX, + taken from the trunk. + * Fix PR preprocessor/48192, make conditional macros not defined for + #ifdef, proposed patch. + * Build the gold LTO plugin for ppc64 (Hiroyuki Yamamoto). Closes: #618864. + * Fix issue with volatile bitfields, default to -fstrict-volatile-bitfields + again on armel for Linaro builds. LP: #675347. + + -- Matthias Klose Wed, 23 Mar 2011 15:44:01 +0100 + +gcc-4.5 (4.5.2-6) unstable; urgency=low + + * Update to SVN 20110312 (r170895) from the gcc-4_5-branch. + - Fix PR tree-optimization/45967, PR tree-optimization/47278, + PR target/47862, PR c++/44629, PR c++/45651, PR c++/47289, PR c++/47705, + PR c++/47488, PR libgfortran/47778, PR c++/48029. + + [ Steve Langasek ] + * Make sure our libs Pre-Depend on 'multiarch-support' when building for + multiarch. + * debian/patches/gcc-multiarch*, debian/rules.patch: use i386 in the + multiarch path for amd64 / kfreebsd-amd64, not i486 or i686. This lets + us use a common set of paths on both Debian and Ubuntu, regardless of + the target default optimization level. + * debian/rules.conf: when building for multiarch, we need to be sure we + are building against a libc-dev that supports the corresponding paths. + (the referenced version number for this needs to be bumped once this is + officially in the archive.) + + [ Matthias Klose ] + * Don't run the libmudflap testsuite on hppa; times out on the buildd. + * Don't run the libstdc++ testsuite on mipsel; times out on the buildd. + * Post Linaro 4.5-2011.03-0 release changes (up to 20110313). + * Undefine LINK_EH_SPEC before redefining it to turn off warnings on + powerpc. + * Update gmp (build) dependencies. + + [ Aurelien Jarno ] + * Add symbol files on kfreebsd-i386. + * Add symbol files on kfreebsd-amd64. + * Add symbol files on sparc64. + * Add symbol files on sh4. + + -- Matthias Klose Sun, 13 Mar 2011 17:30:48 +0100 + +gcc-4.5 (4.5.2-5) unstable; urgency=low + + * Update to SVN 20110305 (r170696) from the gcc-4_5-branch. + - Fix PR target/43810, PR fortran/47886, PR tree-optimization/47615, + PR middle-end/47639, PR tree-optimization/47890, PR libfortran/47830, + PR tree-optimization/46723, PR target/45261, PR target/45808, + PR c++/46159, PR c++/47904, PR fortran/47886, PR libstdc++/47433, + PR target/42240, PR fortran/47878, PR libfortran/47694. + * Update the Linaro support to the 4.5-2011.03-0 release. + - Fix LP: #705689, LP: #695302, LP: #710652, LP: #710623, LP: #721021, + LP: #721021, LP: #709453. + + -- Matthias Klose Sun, 06 Mar 2011 02:58:01 +0100 + +gcc-4.5 (4.5.2-4) unstable; urgency=low + + * Update to SVN 20110222 (r170382) from the gcc-4_5-branch. + - Fix PR target/43653, PR fortran/47775, PR target/47840, + PR libfortran/47830. + + [ Matthias Klose ] + * Don't apply a patch twice. + * Build libgcc_s with -fno-stack-protector, when not building from the + Linaro branch. + * Backport proposed fix for PR tree-optimization/46723 from the trunk. + + [ Steve Langasek ] + * debian/control.m4: add missing Multi-Arch: same for libgcc4; make sure + Multi-Arch: same doesn't get set for libmudflap when building an + Architecture: all cross-compiler package. + * debian/rules2: use $libdir for libiberty.a. + * debian/patches/gcc-multiarch-*.diff: make sure we're using the same + set_multiarch_path definition for all variants. + + [ Sebastian Andrzej Siewior ] + * PR target/44364 + * Remove -many on powerpcspe (__SPE__) + * Remove classic FPU opcodes from libgcc if target has no support for them + (powerpcspe) + + -- Matthias Klose Wed, 23 Feb 2011 00:35:54 +0100 + +gcc-4.5 (4.5.2-3) experimental; urgency=low + + * Update to SVN 20110215 (r170181) from the gcc-4_5-branch. + - Fix PR rtl-optimization/44469, PR tree-optimization/47411, + PR bootstrap/44699, PR target/44392, PR fortran/47331, PR fortran/47448, + PR pch/14940, PR rtl-optimization/47166, PR target/47272, PR target/47580, + PR tree-optimization/47541, PR target/44606, PR boehm-gc/34544, + PR fortran/47569, PR libstdc++/47709, PR libstdc++/46914, PR libffi/46661. + * Update the Linaro support to the 4.5 2011.02-0 release. + * Pass --no-add-needed by default to the linker. See + http://wiki.debian.org/ToolChain/DSOLinking, section "Not resolving symbols + in indirect dependent shared libraries" for more information. + + -- Matthias Klose Wed, 16 Feb 2011 15:29:26 +0100 + +gcc-4.5 (4.5.2-2) experimental; urgency=low + + * Update to SVN 20110123 (r169142) from the gcc-4_5-branch. + - Fix PR target/46915, PR target/46729, PR libgcj/46774, PR target/47038, + PR target/46685, PR target/45447, PR tree-optimization/46758, + PR tree-optimization/45552, PR tree-optimization/43023, + PR middle-end/46734, PR fortran/45338, PR preprocessor/39213, + PR target/43309, PR fortran/46874, PR tree-optimization/47286, + PR tree-optimization/44592, PR target/47201, PR c/47150, PR target/46880, + PR middle-end/45852, PR tree-optimization/43655, PR debug/46893, + PR rtl-optimization/46804, PR rtl-optimization/46865, PR target/41082, + PR tree-optimization/46864, PR fortran/45777, PR tree-optimization/47365, + PR tree-optimization/47167, PR target/47318, PR target/46655, + PR fortran/47394, PR libstdc++/47354. + + [ Matthias Klose ] + * Update the Linaro support to the 4.5 2011.01-1 release. + * Don't build packages now built from the gcc-4.6 package for architectures + with a sucessful gcc-4.6 build. + + [ Kees Cook ] + * debian/patches/gcc-default-ssp.patch: do not ignore -fstack-protector-all + (LP: #691722). + + [ Marcin Juszkiewicz ] + * Fix biarch/triarch cross builds. + - dpkg-shlibdeps failed to find libraries for 64 or n32 builds + - LD_LIBRARY_PATH for dpkg-shlibdeps lacked host dirs. + + -- Matthias Klose Sun, 23 Jan 2011 11:54:52 +0100 + +gcc-4.5 (4.5.2-1) experimental; urgency=low + + * GCC 4.5.2 release. + + -- Matthias Klose Sat, 18 Dec 2010 14:14:38 +0100 + +gcc-4.5 (4.5.1-12) experimental; urgency=low + + * Update to SVN 20101129 (r167272) from the gcc-4_5-branch. + - Fix PR fortran/45742, PR tree-optimization/46498, PR target/45807, + PR target/44266, PR rtl-optimization/46315, PR tree-optimization/44545, + PR tree-optimization/46491, PR rtl-optimization/46571, PR target/31100, + PR c/46547, PR fortran/46638, PR tree-optimization/46675, PR debug/46258, + PR ada/40777. + + [ Matthias Klose ] + * Use lib instead of lib64 as the 64bit system dir on biarch + architectures defaulting to 64bit. Closes: #603597. + * Fix powerpc and s390 builds when biarch is disabled. + * Backport PR bootstrap/44768, miscompilation of dpkg on ARM + with -O2 (Chung-Lin Tang). LP: #674146. + * Update libgcc2 symbols file. Closes: #602099. + + [ Marcin Juszkiewicz ] + * Do not depend on target mpfr and zlib -dev packages for cross builds. + LP: #676027. + + [ Konstantinos Margaritis ] + * Add support for new target architecture `armhf'. Closes: #603948. + + -- Matthias Klose Mon, 22 Nov 2010 08:12:08 +0100 + +gcc-4.5 (4.5.1-11) experimental; urgency=low + + * Update to SVN 20101114 (r166728) from the gcc-4_5-branch. + - Fix PR fortran/45742. + * Don't hardcode debian/patches when referencing patches. Closes: #600502. + + -- Matthias Klose Sun, 14 Nov 2010 08:36:27 +0100 + +gcc-4.5 (4.5.1-10) experimental; urgency=low + + * Update to SVN 20101112 (r166653) from the gcc-4_5-branch. + - Fix PR rtl-optimization/44691, PR tree-optimization/46355, + PR tree-optimization/46177, PR c/44772, PR tree-optimization/46099, + PR middle-end/43690, PR tree-optimization/46165, PR middle-end/46419, + PR tree-optimization/46107, PR tree-optimization/45314, PR debug/45939, + PR rtl-optimization/46237, PR middle-end/44569, PR middle-end/44569, + PR tree-optimization/45902, PR target/46153, PR rtl-optimization/46226, + PR tree-optimization/46167, PR target/46098, PR target/45946, + PR fortran/42169, PR middle-end/46019, PR c/45969, PR c++/45894, + PR c++/46160, PR c++/45983, PR fortran/46152, PR fortran/46140, + PR libstdc++/45999, PR libgfortran/46373, PR libgfortran/46010, + PR fortran/46007, PR c++/46024. + * Update the Linaro support to the 4.5 2010.11 release. + * Update gcc-4.5 source dependencies. Closes: #600503. + * ARM: Fix Thumb-1 reload ICE with nested functions (Julian Brown), + taken from the trunk. + * Fix earlyclobbers on some arm.md DImode shifts (may miscompile "x >> 1"), + taken from the trunk. Closes: #600888. + + -- Matthias Klose Fri, 12 Nov 2010 18:34:47 +0100 + +gcc-4.5 (4.5.1-9) experimental; urgency=low + + * Update to SVN 20101014 (r165474) from the gcc-4_5-branch. + - Fix PR target/45820, PR tree-optimization/45854, PR target/45843, + PR target/43764, PR rtl-optimization/43358, PR bootstrap/44621, + PR libffi/45677, PR middle-end/45869, PR middle-end/45569, + PR tree-optimization/45752, PR fortran/45748, PR libstdc++/45403, + PR libstdc++/45924, PR libfortran/45710, PR bootstrap/44455, + PR java/43839, PR debug/45656, PR debug/44832, PR libstdc++/45711, + PR tree-optimization/45982. + + [ Matthias Klose ] + * Update the Linaro support to the 4.5 2010.10 release. + * Just try to build java on mips/mipsel (was disabled in 4.5.0-9, when + java was built from the same source package). Addresses: #599976. + * Remove the gpc packaging support. + * Fix libmudflap.so symlink. Addresses: #600161. + * Fix pch test failures with heap randomization on armel (PR pch/45979). + + [ Kees Cook ] + * Don't enable -fstack-protector with -ffreestanding. + + -- Matthias Klose Thu, 14 Oct 2010 19:17:41 +0200 + +gcc-4.5 (4.5.1-8) experimental; urgency=low + + * Update to SVN 20100925 (r164618) from the gcc-4_5-branch. + - Fix PR middle-end/44763, PR java/44095, PR target/35664, + PR rtl-optimization/41085, PR rtl-optimization/45051, + PR target/45694, PR middle-end/45678, PR middle-end/45678, + PR middle-end/45704, PR rtl-optimization/45728, PR libfortran/45532, + PR rtl-optimization/45695, PR rtl-optimization/42775, PR target/45726, + PR tree-optimization/45623, PR tree-optimization/45709, PR debug/43628, + PR tree-optimization/45709, PR rtl-optimization/45593, PR fortran/45081, + * Find 32bit system libraries on sparc64, s390x. + * Remove README.Debian from the source package to avoid confusion for + readers of the packaging. + * Don't include info files and man pages in hppa64 and spu builds. + Closes: #597435. + * Apply proposed patch for PR mudflap/24619 (instrumentation of dlopen) + (Brian M. Carlson) Closes: #507514. + + -- Matthias Klose Sat, 25 Sep 2010 14:11:39 +0200 + +gcc-4.5 (4.5.1-7) experimental; urgency=low + + * Update to SVN 20100914 (r164279) from the gcc-4_5-branch. + - Fix PR target/40959, PR middle-end/45567, PR debug/45660, + PR rtl-optimization/41087, PR rtl-optimization/44919, PR target/36502, + PR target/42313, PR target/44651. + * Add support to build from the Linaro 4.5 2010.09 release. + * gcc-4.5-plugin-dev: Install config/arm/arm-cores.def. + * Remove non-existing URL's in README.c++ (Osamu Aoki). Closes: #596406. + * Don't provide c++abi2-dev for g++ cross builds. + * Don't pass -mimplicit-it=thumb if -mthumb to as on ARM, rejected upstream. + + -- Matthias Klose Tue, 14 Sep 2010 12:52:34 +0200 + +gcc-4.5 (4.5.1-6) experimental; urgency=low + + * Update to SVN 20100909 (r164132) from the gcc-4_5-branch. + - Fix PR middle-end/45312, PR bootstrap/43847, PR middle-end/44554, + PR middle-end/40386, PR other/45443, PR c++/45200, PR c++/45293, + PR c++/45558, PR fortran/45595, PR fortran/45530, PR fortran/45489, + PR fortran/45019, PR libstdc++/45398. + + [ Matthias Klose ] + * Tighten binutils dependencies to 2.20.1-14. + + [ Marcin Juszkiewicz ] + * Fix the gcc-4.5-plugin-dev package name for cross builds. LP: #631474. + * Build the gcc-4.5-plugin-dev for stage1 cross builds. + * Fix priorities and sections for some cross packages. + + [ Al Viro ] + * Fix installation of libgcc_s.so as a linker script for biarch builds. + + [ Kees Cook ] + * Push glibc stack traces into stderr when building the package. + * debian/patches/gcc-default-ssp.patch: Lower ssp-buffer-size to 4. + + -- Matthias Klose Fri, 10 Sep 2010 21:25:37 +0200 + +gcc-4.5 (4.5.1-5) experimental; urgency=low + + * Always add dependencies on multilib library packages in *-multilib + packages. + * Fix installation of libgcc_s.so on architectures when libgcc_s.so is + a linker script, not a symlink (Steve Langasek). Closes: #595474. + * Remove the lib32gcc1 preinst script. Closes: #595495. + + -- Matthias Klose Sat, 04 Sep 2010 12:41:40 +0200 + +gcc-4.5 (4.5.1-4) experimental; urgency=low + + * Update to SVN 20100903 (r163833) from the gcc-4_5-branch. + - Fix PR target/45070, PR middle-end/45458, PR rtl-optimization/45353, + PR middle-end/45423, PR c/45079, PR tree-optimization/45393, + PR c++/44991, PR middle-end/45484, PR debug/45500, PR lto/45496. + + [ Matthias Klose ] + * Install config/vxworks-dummy.h in the gcc-4.5-plugin-dev package + on armel, mipsel and sparc64 too. + * Cleanup packaging files in gcc-source package. + * [ARM] Provide __builtin_expect() hints in linux-atomic.c (backport). + + [ Al Viro ] + * Fix builds with disabled biarch library packages. + * New variables {usr_lib,gcc_lib_dir,libgcc_dir}{,32,64,n32}, and switch + to using them in rules.d/*; as the result, most of the explicit pathnames + in there are gone _and_ we get uniformity across different flavours. + * New variables {usr_lib,gcc_lib_dir,libgcc_dir}{,32,64,n32}, and switch + to using them in rules.d/*; as the result, most of the explicit pathnames + in there are gone _and_ we get uniformity across different flavours. + * Merge bi-/tri-arch stuff in binary-gcc.mk. + * Merge rules for libgcc biarch variants. + * Merge rules for libstdc++ biarch variants. Fix n32 variant of + libstdc++-dbg removing _pic.a from the wrong place. + * Merge libgfortran rules. + * Merge rules for cxx-multi and objc-multi packages. + * Enable gcc-hppa64 in cross-gcc-to-hppa build. + + [ Marcin Juszkiewicz ] + * Create libgcc1 and gcc-*-base packages for stage2 cross builds. + LP: #628855. + + -- Matthias Klose Fri, 03 Sep 2010 18:09:40 +0200 + +gcc-4.5 (4.5.1-3) experimental; urgency=low + + * Update to SVN 20100829 (r163627) from the gcc-4_5-branch. + - Fix PR target/45327, PR middle-end/45292, PR fortran/45344, + PR target/41484, PR rtl-optimization/44858, PR rtl-optimization/45400, + PR tree-optimization/45260, PR c++/45315. + + [ Matthias Klose ] + * Don't run the libstdc++ testsuite on armel on the buildds. + * Integrate and extend bi/tri-arch cross builds patches. + * Fix dependencies for mips* triarch library packages depend on *both* lib64* + and libn32* packages. Closes: #594540. + * Tighten binutils dependencies to 2.20.1-13. + * Update LAST_UPDATED file when applying upstream updates. + + [ Al Viro ] + * Bi/tri-arch cross builds patches. + * Fix installation paths in bi/tri-arch libobjc and libmudflap packages. + * Merge rules for all flavours of libgomp, libmudflap, libobjc. + * Crossbuild fix for lib32gomp (use $(PFL)/lib32 instead of $(lib32)). + * gcc-4.5: libgcc_s.so.1 symlink creation on cross-builds. + * Enable gcc-multilib for cross-builds and fix what needs fixing. + * Enable g++-multilib for cross-builds, fix pathnames. + * Enable gobjc/gobjc++ multilib for cross-builds, fixes. + * Enable gfortran multilib for cross-builds, fix paths. + * Multilib dependency fixes for cross-builds. + + -- Matthias Klose Sun, 29 Aug 2010 18:24:37 +0200 + +gcc-4.5 (4.5.1-2) experimental; urgency=low + + * Update to SVN 20100818 (r163323) from the gcc-4_5-branch. + - Fix PR target/41089, PR tree-optimization/44914, PR c++/45112, + PR fortran/44929, PR middle-end/45262, PR debug/45259, PR debug/45055, + PR target/44805, PR middle-end/45034, PR tree-optimization/45109, + PR target/44942, PR fortran/31588, PR fortran/43954, PR fortran/44660, + PR fortran/42051, PR fortran/44064, PR fortran/45151, PR libstdc++/44963, + PR tree-optimization/45241, PR middle-end/44632 (closes: #585925), + PR libstdc++/45283, PR target/45296. + + [ Matthias Klose ] + * Allow overwriting of the PF macro used in the build from the environment + (Jim Heck). Closes: #588381. + * Fix libc-dbg build dependency for java enabled builds. Addresses: #591424. + * gcj: Align data in .rodata.jutf8.* sections, patch taken from the trunk. + * Configure with --enable-checking+release. LP: #612822. + * Add the complete packaging to the -source package. LP: #608650. + * Drop the gcc-ix86-asm-generic32.diff patch. + * Tighten (build-) dependency on cloog-ppl (>= 0.15.9-2). + * Apply proposed patch for PR middle-end/45292. + * Re-enable running the libstdc++ testsuite on armel and ia64 on the buildds. + + [ Steve Langasek ] + * s,/lib/,/$(libdir)/, throughout debian/rules*; a no-op in the current + case, but required for us to find the libraries when building for + multiarch + * Don't append multiarch paths to any multilib paths except for the default; + our biarch (multilib) builds need to remain independent of multiarch in + the near term, so we want to make sure we can find /usr/lib32 without + /usr/lib/i486-linux-gnu being available. + * debian/control.m4, debian/rules.conf: conditionally set packages to be + Multi-Arch: yes when MULTIARCH is defined. + + [ Marcin Juszkiewicz ] + * Allow building intermediate stages for cross builds. LP: #603497. + + -- Matthias Klose Wed, 18 Aug 2010 07:00:12 +0200 + +gcc-4.5 (4.5.1-1) experimental; urgency=low + + * GCC-4.5.1 release. + * Update to SVN 20100731 (r162781) from the gcc-4_5-branch. + - Fix PR tree-optimization/45052, PR target/43698. + * Apply proposed fixes for PR c++/45112, PR c/45079. + * Install config/vxworks-dummy.h in the gcc-4.5-plugin-dev package + on armel, mips, mipsel, sh4, sparc, sparc64. Closes: #590054. + * Link executables statically when `static' is passed in DEB_BUILD_OPTIONS + (Jim Heck). Closes: #590102. + * Stop building java packages from the gcc-4.5 source package. + + -- Matthias Klose Sat, 31 Jul 2010 16:30:20 +0200 + +gcc-4.5 (4.5.0-10) experimental; urgency=low + + * Update to SVN 20100725 (r162508) from the gcc-4_5-branch. + - Fix PR tree-optimization/45047, PR c++/43016, PR c++/45008. + * Disable building gcj/libjava on mips/mipsel (fails to link libgcj). + * Update libstdc++6 symbols files. + + -- Matthias Klose Sun, 25 Jul 2010 16:39:11 +0200 + +gcc-4.5 (4.5.0-9) experimental; urgency=low + + * Update to SVN 20100723 (r162448) from the gcc-4_5-branch (post + GCC-4.5.1 release candidate 1). + - Fix PR debug/45015, PR target/44942, PR tree-optimization/44900, + PR tree-optimization/44977, PR c++/44996, PR fortran/44929, + PR fortran/30668, PR fortran/31346, PR fortran/34260, + PR fortran/40011. + + [ Marcin Juszkiewicz ] + * Fix dependencies on cross library packages. + * Copy all debian/rules* files to the -source package. + + [ Matthias Klose ] + * Fix versioned build dependency on gcc-4.x-source package for cross builds. + LP: #609060. + * Set Vcs attributes in control file. + + -- Matthias Klose Fri, 23 Jul 2010 13:08:07 +0200 + +gcc-4.5 (4.5.0-8) experimental; urgency=low + + * Update to SVN 20100718 (r161892) from the gcc-4_5-branch. + - Fixes: PR target/44531, PR bootstrap/44820, PR target/44597, + PR target/44705, PR middle-end/44777, PR debug/44694, PR c++/44039, + PR tree-optimization/43801, PR target/44575, PR debug/44104, + PR middle-end/44671, PR middle-end/44686, PR tree-optimization/44357, + PR debug/44694, PR middle-end/43866, PR debug/42278, PR c++/44059, + PR tree-optimization/43905, PR middle-end/44133, PR tree-optimize/44063, + PR tree-optimization/44683, PR rtl-optimization/43332, PR debug/44610, + PR middle-end/44684, PR tree-optimization/44393, PR middle-end/44674, + PR c++/44628, PR c++/44587, PR fortran/44582, PR fortran/43841, + PR fortran/43843, PR libstdc++/44708, PR tree-optimization/44886, + PR target/43888, PR tree-optimization/44284, PR middle-end/44828, + PR middle-end/41355, PR c++/44703, PR ada/43731, PR fortran/44773, + PR fortran/44847. + + [ Marcin Juszkiewicz ] + * debian/rules2: Merge rules.d includes. + * Properly -name -dbg packages for cross builds. + * Various cross build fixes. + * Build libmudflap packages for cross builds. + * Fix generation of maintainer scripts for cross packages. + * Build a gcc-base package for cross builds. + + [ Kees Cook ] + * Fix additional libstdc++ testsuite failures for hardening defaults. + + [ Samuel Thibault ] + * Update hurd patch for 4.5, fixing build failure. Closes: #584819. + + [ Matthias Klose ] + * gcc-arm-implicit-it.diff: Only pass -mimplicit-it=thumb when in + thumb mode (Andrew Stubbs). + + -- Matthias Klose Sun, 18 Jul 2010 10:53:51 +0200 + +gcc-4.5 (4.5.0-7) experimental; urgency=low + + * Update to SVN 20100625 (r161383) from the gcc-4_5-branch. + - Fixes: PR bootstrap/44426, PR target/44546, PR target/44261, + PR target/43740, PR libstdc++/44630 (closes: #577458), + PR c++/44627 (LP: #503668), PR target/39690, PR target/44615, + PR fortran/44556, PR c/44555. + - Update libstdc++'s pretty printer for python2.6. Closes: #585202. + + [ Matthias Klose ] + * Fix libstdc++ symbols files for powerpc and sparc. + * Add maintainer scripts for cross packages. + + [ Samuel Thibault ] + * Update hurd patch for 4.5, fixing build failure. Closes: #584454, + #584819. + + [ Marcin Juszkiewicz ] + * Merge the rules.d/binary-*-cross.mk files into rules.d/binary-*.mk. + + -- Matthias Klose Fri, 25 Jun 2010 15:57:38 +0200 + +gcc-4.5 (4.5.0-6) experimental; urgency=low + + [ Matthias Klose ] + + * Update to SVN 20100617 (r161901) from the gcc-4_5-branch. Fixes: + PR target/44169, PR bootstrap/43170, PR objc/35996, PR objc++/32052, + PR objc++/23716, PR lto/44464, PR rtl-optimization/42461, PR fortran/44536, + PR tree-optimization/44258, PR tree-optimization/44423, PR target/44534, + PR bootstrap/44426, PR tree-optimization/44508, PR tree-optimization/44507, + PR lto/42776, PR target/44481, PR debug/41371, PR bootstrap/37304, + PR target/44067, PR debug/41371, PR debug/41371, PR target/44075, + PR c++/44366, PR c++/44401, PR fortran/44347, PR fortran/44430, + PR lto/42776, PR libstdc++/44487, PR other/43838, PR libgcj/44216. + * debian/patches/cross-fixes.diff: Update for 4.5 (Marcin Juszkiewicz). + * debian/patches/libstdc++-pic.diff: Fix installation for cross builds. + * Fix PR bootstrap/43847, --enable-plugin for cross builds. + * Export long double versions of "C" math library for arm-linux-gnueabi, + m68k-linux-gnu (ColdFire), mips*-linux-gnu (o32 ABI), sh*-linux-gnu + (not 32 bit). Merge the libstdc++-*-ldbl-compat.diff patches. + * Merge binary-libgcc.mk packaging changes into binary-libgcc-cross.mk + (Loic Minier). + * Update libgcc and libstdc++ symbols files. + + [ Aurelien Jarno ] + + * libstdc++-mips-ldbl-compat.diff: On MIPS provide the long double + versions of "C" math functions in libstdc++ as we need to keep the + ABI. Closes: #584610. + + -- Matthias Klose Thu, 17 Jun 2010 14:56:14 +0200 + +gcc-4.5 (4.5.0-5) experimental; urgency=low + + * Update to SVN 20100602 (r160097) from the gcc-4_5-branch. Fixes: + PR target/44338, PR middle-end/44337, PR tree-optimization/44182, + PR target/44161, PR c++/44358, PR fortran/44360, PR lto/44385. + * Fix PR target/44261, taken from the trunk. Closes: #582787. + * Fix passing the expanded -iplugindir option. + * Disable broken profiled bootstrap on alpha. + * On ix86, pass -mtune=generic32 in 32bit mode to the assembler, when + configured for i586-linux-gnu or i686-linux-gnu. + + -- Matthias Klose Thu, 03 Jun 2010 00:44:37 +0200 + +gcc-4.5 (4.5.0-4) experimental; urgency=low + + * Update to SVN 20100527 (r160047) from the gcc-4_5-branch. Fixes: + PR rtl-optimization/44164, PR middle-end/44069, PR target/44199, + PR lto/44196, PR target/43733, PR target/44245, PR target/43869, + PR debug/44223, PR tree-optimization/44038, PR tree-optimization/43949, + PR debug/44205, PR debug/44178, PR bootstrap/43870, PR target/44202, + PR target/44074, PR lto/43455, PR lto/42653, PR lto/42425, PR lto/43080, + PR lto/43946, PR c++/43382, PR c++/41510, PR c++/44193, PR c++/44157, + PR c++/44158, PR lto/44256, PR libstdc++/44190, PR lto/44312, + PR target/43636, PR target/43726, PR c++/43555PR libstdc++/40497. + + [ Matthias Klose ] + + * Enable multilibs again on powerpcspe. Closes: #579780. + * Fix setting CC for REVERSE_CROSS build (host == target,host != build). + Closes: #579779. + * Fix setting biarch_cpu macro. + * Don't bother with un-normalized paths in .la files, just remove them. + * debian/locale-gen: Update locales needed for the libstdc++-v3 testsuite. + * If libstdc++6 is built from newer gcc-4.x source, run the libstdc++-v3 + testsuite against the installed lib too. + * Configure with --enable-secureplt on powerpcspe. + + [ Aurelien Jarno ] + + * Fix $(distrelease) on non-official archives. Fix powerpcspe, sh4 and + sparc64 builds. + + -- Matthias Klose Sun, 30 May 2010 12:52:02 +0200 + +gcc-4.5 (4.5.0-3) experimental; urgency=low + + * Update to SVN 20100519 (r159556) from the gcc-4_5-branch. Fixes: + PR c++/43704, PR fortran/43339, PR middle-end/43337, PR target/43635, + PR tree-optimization/43783, PR tree-optimization/43796, PR middle-end/43570, + PR libgomp/43706, PR libgomp/43569, PR middle-end/43835, PR c/43893, + PR tree-optimization/43572, PR tree-optimization/43845, PR libgcj/40860, + PR target/43744, PR debug/43370, PR c++/43880, PR middle-end/43671, + PR debug/43972, PR target/43921, PR c++/38064, PR c++/43953, + PR fortran/43985, PR fortran/43592, PR fortran/40539, PR c++/43787, + PR middle-end/44085, PR middle-end/44071, PR middle-end/43812, + PR debug/44028, PR rtl-optimization/44012, PR target/44046, + PR documentation/44016, PR fortran/44036, PR fortran/40728, + PR libstdc++/44014, PR lto/44184, PR bootstrap/42347, PR middle-end/44102, + PR c++/44127, PR debug/44136, PR target/44088, PR tree-optimization/44124, + PR fortran/43591, PR fortran/44135, PR libstdc++/43259. + + [ Matthias Klose ] + * Revert gcj-arm-no-merge-exidx-entries patch, fixed by PR libgcj/40860. + * Don't run the libstdc++-v3 testsuite on the ia64 buildds. Timeouts. + * Backport two libjava fixes from the trunk to run josm with gcj. + * Ubuntu only: + - Pass --hash-style=gnu instead of --hash-style=both to the linker. + * Preliminary architecture port for powerpcspe (Kyle Moffett). + Closes: #579780. + * Update configury to be able to target i686 instead of i486 on i386. + + [ Aurelien Jarno] + * Don't link with --hash-style=both on mips/mipsel as GNU hash is not + compatible with the MIPS ABI. + * Default to -mplt on mips(el), -march=mips2 and -mtune=mips32 on 32-bit + mips(el), -march=mips3 and -mtune=mips64 on 64-bit mips(el). + + -- Matthias Klose Wed, 19 May 2010 09:48:20 +0200 + +gcc-4.5 (4.5.0-2) experimental; urgency=low + + * Update to SVN 20100419 from the gcc-4_5-branch. + - Fix PR tree-optimization/43627, c++/43641, PR c++/43621, PR c++/43611, + PR fortran/31538, PR fortran/30073, PR target/43662, + PR tree-optimization/43572, PR tree-optimization/43771. + * Install the linker plugin. + * Search the linker plugin as a readable, not an executable file. + * Link with --hash-style=both on mips/mipsel. + * On mips, pass -mfix-loongson2f-nop to as, if -mno-fix-loongson2f-nop + is not passed. + * Sequel to PR40521, fix -g to generate .eh_frame on ARM. + * On ARM, let gcj pass --no-merge-exidx-entries to the linker. + * Build-depend/depend on binutils snapshot. + * Update NEWS.html and NEWS.gcc. + + -- Matthias Klose Mon, 19 Apr 2010 15:22:55 +0200 + +gcc-4.5 (4.5.0-1) experimental; urgency=low + + * GCC 4.5.0 release. + * Always apply biarch patches. + * Build the lto-linker plugin again. Closes: #575448. + * Run the libstdc++v3 testsuite on armel again. + * Fix --enable-libstdcxx-time documentation, show configure result. + * On linux targets always pass --no-add-needed to the linker. + * Update the patch to search for plugins in a default plugin directory. + * Fix java installations in snapshot builds. + * Configure --with-plugin-ld=ld.gold. + * Linker selection: ld is used by default, to use the gold linker, + pass -fuse-linker-plugin (no other side effects if -flto/-fwhopr + is not passed). To force ld.bfd or ld.gold, pass -B/usr/lib/compat-ld + for ld.bfd or /usr/lib/gold-ld for ld.gold. + * Don't apply the gold-and-ld patch for now. + * Stop building the documentation for dfsg compliant builds. Closes: #571759. + + -- Matthias Klose Wed, 14 Apr 2010 13:29:20 +0200 + +gcc-4.5 (4.5-20100404-1) experimental; urgency=low + + * Update to SVN 20100404 from the trunk. + * Fix build failures building cross compilers configure --with-ld. + * lib32gcc1: Set priority to `extra'. + * Apply proposed patch to search for plugins in a default plugin directory. + * In snapshot builds, use for javac/ecj1 the jvm provided by the package. + * libstdc++-arm-ldbl-compat.diff: On ARM provide the long double versions + of "C" math functions in libstdc++; these are dropped when built + against glibc-2.11. + + -- Matthias Klose Sun, 04 Apr 2010 15:51:25 +0200 + +gcc-4.5 (4.5-20100321-1) experimental; urgency=low + + * Update to SVN 20100321 from the trunk. + * gcj-4.5-jre-headless: Stop providing java-virtual-machine. + * gcj-4.5-plugin-dev: Don't suggest mudflap packages. + * Apply proposed patch to enable both gold and ld in a single toolchain. + New option -fuse-ld=ld.bfd, -fuse-ld=gold. + + -- Matthias Klose Sun, 21 Mar 2010 11:45:48 +0100 + +gcc-4.5 (4.5-20100227-1) experimental; urgency=low + + * Update to SVN 20100227 from the trunk. + * Don't run the libstdc++-v3 testsuite on arm*-*-linux-gnueabi, when + defaulting to thumb mode (Timeouts on the Ubuntu buildd). + + -- Matthias Klose Sat, 27 Feb 2010 08:29:55 +0100 + +gcc-4.5 (4.5-20100222-1) experimental; urgency=low + + * Update to SVN 20100222 from the trunk. + - Install additional header files needed by plugins. Closes: #562881. + * gcc-4.5-plugin-dev: Should depend on libgmp3-dev. Closes: #566366. + * Update libstdc++6 symbols files. + + -- Matthias Klose Tue, 23 Feb 2010 02:16:22 +0100 + +gcc-4.5 (4.5-20100216-0ubuntu1~ppa1) lucid; urgency=low + + * Update to SVN 20100216 from the trunk. + * Don't call dh_makeshlibs with -V for shared libraries with + symbol files. + * Don't run the libstdc++-v3 testsuite in thumb mode on armel + to work around buildd timeout (see PR target/42509). + + -- Matthias Klose Wed, 17 Feb 2010 02:06:02 +0100 + +gcc-4.5 (4.5-20100204-1) experimental; urgency=low + + * Update to SVN 20100204 from the trunk. + + -- Matthias Klose Thu, 04 Feb 2010 19:44:19 +0100 + +gcc-4.5 (4.5-20100202-1) experimental; urgency=low + + * Update to SVN 20100202 from the trunk. + - gcc-stack_chk_fail-check.diff: Remove, applied upstream. + * Update libstdc++6 symbol files. + * Build gnat in snapshot builds on arm. + * Configure with --enable-checking=yes for snapshot builds, and for + 4.5 builds before the release. + * Temporary workaround: On arm-linux-gnueabi run the libstdc++v3 testsuite + with -Wno-abi. + * When building the hppa64 cross compiler, add $(builddir)/gcc to + LD_LIBRARY_PATH to find the just built libgcc6. Closes: #565862. + * On sh4-linux, use sh as java architecture name instead of sh4. + * On armel, build gnat-4.5 using gcc-snapshot. + * Revert the bump of the libgcc soversion on hppa (6 -> 4). + + -- Matthias Klose Tue, 02 Feb 2010 19:35:25 +0100 + +gcc-4.5 (4.5-20100107-1) experimental; urgency=low + + [ Matthias Klose ] + * Update to SVN 20100107 from the trunk. + * Revert the workaround for the alpha build (PR bootstrap/42511 is fixed). + * testsuite-hardening-format.diff: Add a fix for the libstdc++ testsuite. + * Build-depend again on autogen. + * Work around PR lto/41569 (installation bug when configured with + --enabled-gold). + * On armel run the testsuite both in arm and thumb mode, when the + distribution is supporthing tumb processors. + * Work around PR target/42509 (armel), not setting BOOT_CFLAGS, but + applying libcpp-arm-workaround.diff. + + [ Nobuhiro Iwamatsu ] + * Update gcc-multiarch patch for sh4. + + -- Matthias Klose Thu, 07 Jan 2010 16:34:57 +0100 + +gcc-4.5 (4.5-20100106-0ubuntu1) lucid; urgency=low + + * Update to SVN 20100106 from the trunk. + * gcj-4.5-jdk: Include /usr/lib/jvm-exports. + * Rename libgcc symbols file for hppa. + * On alpha and armel, set BOOT_CFLAGS to -g -O1 to work around bootstrap + failures (see PR target/42509 (armel) and PR bootstrap/42511 (alpha)). + * Base the source build-dependency on the package version instead of the + gcc version. + + -- Matthias Klose Wed, 06 Jan 2010 14:17:29 +0100 + +gcc-4.5 (4.5-20100103-1) experimental; urgency=low + + * Update to SVN 20100103 from the trunk. + + [ Samuel Thibault ] + * Update hurd patch for 4.5. Closes: #562802. + + [ Aurelien Jarno ] + * Remove patches/kbsd-gnu-ada.diff (merged upstream). + + [ Matthias Klose ] + * libgcj11: Move .so symlinks into gcj-4.5-jdk. Addresses: #563280. + * gcc-snapshot: On sparc64, use gcc-snapshot as bootstrap compiler. + * Don't use expect-tcl8.3 on hppa anymore. + * Merge gnat-4.4 changes back from 4.4.2-5. + * Bump libgcc soversion on hppa (4 -> 6). + * Default to v9a (ultrasparc) on sparc*-linux. + + -- Matthias Klose Sun, 03 Jan 2010 17:25:27 +0100 + +gcc-4.5 (4.5-20091226-1) experimental; urgency=low + + * Update to SVN 20091226 from the trunk. + * Fix powerpc spu installation. + * Enable multiarch for sh4. + * Fix libffi multilib test runs. + * Configure the hppa -> hppa64 cross compiler --with-system-zlib. + * gcc-4.5-hppa64: Don't ship info dir file. + * lib32stdc++6{,-dbg}: Add dependency on 32bit glibc. + + -- Matthias Klose Sat, 26 Dec 2009 15:38:23 +0100 + +gcc-4.5 (4.5-20091223-1) experimental; urgency=low + + * Update to SVN 20091223 from the trunk. + + [ Matthias Klose ] + * Update hardening patches for 4.5. + * Don't call install-info directly, depend on dpkg | install-info instead. + * Add conflicts with packages built from GCC 4.4 sources. + * On ARM, pass --hash-style=both to ld. + * Update libgfortran3 symbols file. + * Update libstdc++6 symbols file. + + [ Arthur Loiret ] + * debian/rules.conf (gen_no_archs): Handle multiple arm ports. + + -- Matthias Klose Wed, 23 Dec 2009 18:02:24 +0100 + +gcc-4.5 (4.5-20091220-1) experimental; urgency=low + + * Update to SVN 20091220 from the trunk. + - Remove patches applied upstream: arm-boehm-gc-locks.diff, + arm-gcc-gcse.diff, deb-protoize.diff, gcc-arm-thumb2-sched.diff, + gcc-atom-doc.diff, gcc-atom.diff, gcc-build-id.diff, + gcc-unwind-debug-hook.diff, gcj-use-atomic-builtins-doc.diff, + gcj-use-atomic-builtins.diff, libjava-atomic-builtins-eabi.diff, + libjava-nobiarch-check-snap.diff, lp432222.diff, pr25509-doc.diff, + pr25509.diff, pr39429.diff, pr40133.diff, pr40134.diff, rev146451.diff, + s390-biarch-snap.diff, sh4-scheduling.diff, sh4_atomic_update.diff. + - Update patches: gcc-multiarch.diff, gcc-textdomain.diff, + libjava-nobiarch-check.diff, libjava-subdir.diff, libstdc++-doclink.diff, + libstdc++-man-3cxx.diff, libstdc++-pic.diff, note-gnu-stack.diff, + rename-info-files.diff, s390-biarch.diff. + * Stop building the protoize package, removed from the GCC 4.5 sources. + * gcc-4.5: Install lto1, lto-wrapper, and new header files for intrinsics. + * libstdc++6-4.5-dbg: Install the python files for use with gdb. + * Build java packages from the gcc-4.5 source package. + + -- Matthias Klose Sun, 20 Dec 2009 10:56:56 +0100 + +gcc-4.4 (4.4.2-6) unstable; urgency=low + + * Update to SVN 20091220 from the gcc-4_4-branch (r155367). + Fix PR c++/42387, PR c++/41183. + + [ Matthias Klose ] + * Apply svn-doc-updates.diff for non DFSG builds. + * gcc-snapshot: + - Remove patches integrated upstream: pr40133.diff. Closes: #561550. + + [ Nobuhiro Iwamatsu ] + * Backport linux atomic ops changes for sh4 from the trunk. Closes: #561550. + * Backport from trunk: [SH] Not run scheduling before reload as default. + Closes: #561429. + + [ Arthur Loiret ] + * Apply spu patches independently of the hardening patches; fix build + failure on powerpc. + + -- Matthias Klose Sun, 20 Dec 2009 10:20:19 +0100 + +gcc-4.4 (4.4.2-5) unstable; urgency=low + + * Update to SVN 20091212 from the gcc-4_4-branch (r155122). + Revert the fix for PR libstdc++/42261, fix PR fortran/42268, + PR target/42263, PR target/42263, PR target/41196, PR target/41939, + PR rtl-optimization/41574. + + [ Matthias Klose ] + * Regenerate svn-updates.diff. + * Disable biarch testsuite runs for libffi (broken and unused). + * Support xz compression of source tarballs. + * Fix typo in PR libstdc++/40133 to do the link tests. + * gcc-snapshot: + - Remove patches integrated upstream: pr40134-snap.diff. + - Update s390-biarch.diff for trunk. + + [ Aurelien Jarno ] + * Add sparc64 support: disable multilib and install the libraries + in /lib. + + -- Matthias Klose Sun, 13 Dec 2009 10:28:19 +0100 + +gcc-4.4 (4.4.2-4) unstable; urgency=low + + * Update to SVN 20091210 from the gcc-4_4-branch (r155122), Fixes: + PR target/42165, PR target/42113, PR libgfortran/42090, + PR middle-end/42049, PR c++/42234, PR fortran/41278, PR libstdc++/42261, + PR libstdc++/42273 PR java/41991. + + [ Matthias Klose ] + * gcc-arm-thumb2-sched.diff: Don't restrict reloads to LO_REGS for Thumb-2. + * PR target/40134: Don't redefine LIB_SPEC on hppa. + * PR target/42263, fix wrong code bugs in SMP support on ARM, backport from + the trunk. + * Pass -mimplicit-it=thumb to as by default on ARM, when configured + --with-mode=thumb. + * Fix boehm-gc build on ARM --with-mode=thumb. + * ARM: Don't copy uncopyable instructions in gcse.c (backport from trunk). + * Build the spu cross compiler for powerpc from the cell-4_4-branch. + * gcj: add option -fuse-atomic-builtins (backport from the trunk). + + [ Arthur Loiret ] + * Make svn update interdiffs more readable. + + -- Matthias Klose Thu, 10 Dec 2009 04:29:36 +0100 + +gcc-4.4 (4.4.2-3) unstable; urgency=low + + * Update to SVN 20091118 from the gcc-4_4-branch (r154294). + Fix PR PR c++/9381, PR c++/21008, PR c++/35067, PR c++/36912, PR c++/37037, + PR c++/37093, PR c++/38699, PR c++/39786, c++/36959, PR c++/41754, + PR c++/41876, PR c++/41967, PR c++/41972, PR c++/41994, PR c++/42059, + PR c++/42061, + PR fortran/41772, PR fortran/41850, PR fortran/41909, + PR middle-end/40946, PR middle-end/41317, R tree-optimization/41643, + PR target/41900, PR rtl-optimization/41917, PR middle-end/41963, + PR middle-end/42029. + * Snapshot builds: + - Patch updates. + - Configure with --disable-browser-plugin. + * Configure with --disable-libstdcxx-pch on hppa. + * Backport armel patches form the trunk: + - Fix PR objc/41848 - workaround ObjC and -fsection-anchors. + - Enable scheduling for Thumb-2, including the fix for PR target/42031. + - Fix PR target/41939, EABI violation in accessing values below the stack. + + -- Matthias Klose Wed, 18 Nov 2009 08:37:18 -0600 + +gcc-4.4 (4.4.2-2) unstable; urgency=low + + * Update to SVN 20091031 from the gcc-4_4-branch (r153603). + - Fix PR debug/40521, PR target/40913, PR middle-end/22072, + PR target/41665, PR c++/38798, PR c++/40092, PR c++/37875, + PR c++/37204, PR fortran/41755, PR libstdc++/40654, PR libstdc++/40826, + PR target/41702, PR c/41842, PR target/41762, PR c++/40808, + PR fortran/41777, PR libstdc++/40852. + * Snapshot builds: + - Configure with --enable-plugin, disable the gcjwebplugin by a patch. + Addresses: #551200. + - Proposed patch for PR lto/41652, compile lto-plugin with + -D_FILE_OFFSET_BITS=64 + - Allow disabling the ada build via DEB_BUILD_OPTIONS nolang=ada. + * Fixes for reverse cross builds. + * On sparc default to v9 in 32bit mode. + * Fix __stack_chk_fail check for cross builds configured --with-headers. + * Apply some fixes for uClibc cross builds (Jonas Meyer, Hector Oron). + + -- Matthias Klose Sat, 31 Oct 2009 14:16:03 +0100 + +gcc-4.4 (4.4.2-1) unstable; urgency=low + + * GCC 4.4.2 release. + - Fixes PR target/26515, PR target/41680, PR rtl-optimization/41646, + PR c++/39863, PR c++/41038. + * Fix setting timeout for testsuite runs. + * gcj-4.4/gcc-snapshot: Drop build-dependency on libgconf2-dev, disabled + by default. + * gcj-4.4: Run the libffi testsuite as well. + * Add explicit build dependency on zlib1g-dev. + * Fix cross builds, add support for gomp and gfortran (only tested for + non-biarch targets). + * (Build-)depend on binutils-2.20. + * Fix up omp.h for multilibs (taken from Fedora). + + -- Matthias Klose Sun, 18 Oct 2009 02:31:32 +0200 + +gcc-4.4 (4.4.1-6) unstable; urgency=low + + * Snapshot builds: + - Add build dependency on libelfg0-dev (>= 0.8.12). + - Add build dependency on binutils-gold where available. + - Suggest binutils-gold; not perfect, it is required when using + -use-linker-plugin. + - Work around installation failure in the lto-plugin (PR lto/41569). + - Install java home symlinks in /usr/lib/jvm. + - Revert the dwarf2cfi_asm workaround, obsoleted by PR debug/40521. + * PR debug/40521: + - Apply patch for PR debug/40521, taken from the trunk. + - Revert the dwarf2cfi_asm workaround, obsoleted by PR debug/40521. + - Depend on binutils (>= 2.19.91.20091005). + * Update to SVN 20091005 from the gcc-4_4-branch (r152450). + - Fixes PR fortran/41479. + * In the test summary, add more information about package versions + used for the build. + + -- Matthias Klose Wed, 07 Oct 2009 02:12:56 +0200 + +gcc-4.4 (4.4.1-5) unstable; urgency=medium + + * Update to SVN 20091003 from the gcc-4_4-branch (r152174). + - Fixes PR target/22093, PR c/39779, PR libffi/40242, PR target/40473, + PR debug/40521, PR c/41049, PR debug/41065, PR ada/41100, + PR tree-optimization/41101, PR libgfortran/41328, PR libffi/41443, + PR fortran/41515. + * Updates for snapshot builds: + - Fix build dependency on automake for snapshot builds. + - Update patches pr40134-snap and libjava-nobiarch-check-snap. + * Fix lintian errors in libstdc++ packages and lintian warnings in the + source package. + * Add debian/README.source. + * Don't apply PR libstdc++/39491 for the trunk anymore. + * Install java home symlinks for snapshot builds in /usr/lib/jvm, + including javac. Depend on ecj. Addresses #536102. + * Fix build failure on armel with -mfloat-abi=softfp. + * Don't pessimize the code for newer armv6 and armv7 processors. + * libjava: Use atomic builtins For Linux ARM/EABI, backported from the + trunk. + * Proposed patch to fix wrong-code on powerpc (Alan Modra). LP: #432222. + * Link against -ldl instead of -lcloog -lppl. Exit with an error when using + the Graphite loop transformation infrastructure without having the + libcloog-ppl0 package installed (patch taken from Fedora). Packages + using these optimizations should build-depend on libcloog-ppl0. + gcc-4.4: Suggest the cloog runtime libraries. + * Install a hook _Unwind_DebugHook, called during unwinding. Intended as + a hook for a debugger to intercept exceptions. CFA is the CFA of the + target frame. HANDLER is the PC to which control will be transferred + (patch taken from Fedora). + + -- Matthias Klose Sat, 03 Oct 2009 13:33:05 +0100 + +gcc-4.4 (4.4.1-4) unstable; urgency=low + + * Update to SVN 20090911 from the gcc-4_4-branch (r151649). + - Fixes PR target/34412, PR middle-end/41094, PR target/40718, + PR fortran/41062, PR libstdc++/41005, PR target/41184, + PR bootstrap/41180, PR c++/41127, PR fortran/41258, + PR rtl-optimization/40861, PR target/41315, PR fortran/39876. + + [ Matthias Klose ] + * Avoid underscores in doc-base document id's to workaround a + dh_installdocs bug. + * Update file names for the Ada user's guide. + * Set Homepage attribute for packages. + * Update the patch for gnat on armel. + * gcj-4.4-jdk: Depend on libantlr-java. Addresses: #546062. + * Backport patch for PR tree-optimization/41101 from the trunk. + Closes: #541816. + * Update libstdc++6.symbols for symbols introduced with the fix + for PR libstdc++/41005. + * Apply proposed patches for PR libstdc++/40133 and PR target/40134. + Add symbols exception propagation support in libstdc++ on armel + to the libstdc++6 symbols. + + [ Ludovic Brenta] + Merge from gnat-4.4 (4.4.1-3) unstable; urgency=low + * debian/rules.defs, debian/rules.d/binary-ada.mk, debian/rules.patch: + better support for architectures that support only one exception + handling mechanism (SJLJ or ZCX). + + -- Matthias Klose Sat, 12 Sep 2009 03:18:17 +0200 + +gcc-4.4 (4.4.1-3) unstable; urgency=low + + * Update to SVN 20090822 from the gcc-4_4-branch (r151011). + - Fixes PR tree-optimization/41016, PR tree-optimization/41011, + PR tree-optimization/41008, PR tree-optimization/40991, + PR tree-optimization/40964, PR target/8603 (closes: #161432), + PR target/41019, PR target/41015, PR target/40957, PR target/40934, + PR rtl-optimization/41033, PR middle-end/41047, PR middle-end/41006, + PR fortran/41070, PR fortran/40995, PR fortran/40847, PR debug/40990, + PR debug/37801, PR c/41046, PR c/40948, PR c/40866, PR bootstrap/41018, + PR middle-end/41123,PR target/40971, PR c++/41131, PR fortran/41102, + PR libfortran/40962. + + [ Arthur Loiret ] + * Only use -fno-stack-protector when known to the stage1 compiler. + + [ Aurelien Jarno ] + * lib32* packages: remove the Pre-Depends: libc6-i386 (>= 2.9-18) and + upgrade the Conflicts: libc6-i386 from (<< 2.9-18) to (<< 2.9-22). + Closes: #537466. + * kbsd-gnu-ada.dpatch: add support for kfreebsd-amd64. + + [ Matthias Klose ] + * Build gnat on armel, the gnat-4.4 build still failing, gcc-snapshot + builds good enough to build itself. + * Merge enough of the gnat-4.4 changes back to allow a combined build + from the gcc-4.4 source. + * Build libgnatprj for armel. + * On armel build just one version of the ada run-time library. + * Update auto* build dependencies for snapshot builds. + * Apply proposed patch for PR target/40718. + + -- Matthias Klose Sun, 23 Aug 2009 11:50:38 +0200 + +gcc-4.4 (4.4.1-2) unstable; urgency=low + + [ Matthias Klose ] + * Update to SVN 20090808 from the gcc-4_4-branch (r150577). + - Fixes PR target/40832, PR rtl-optimization/40710, + PR tree-optimization/40321, PR build/40010, PR fortran/40727, + PR build/40010, PR rtl-optimization/40924, PR c/39902, + PR middle-end/40943, PR target/40577, PR c++/39987, PR debug/39706, + PR c++/40948, PR c++/40749, PR fortran/40851, PR fortran/40878, + PR target/40906. + * Bump GCC version required in dependencies to 4.4.1. + * Enable Ada for snapshot builds on all archs with a gnat package + available in the archive. + * Build-depend on binutils 2.19.51.20090805, needed at least for armel. + + [ Aurelien Jarno ] + * kbsd-gnu-ada.dpatch: new patch to fix build on GNU/kFreeBSD. + + -- Matthias Klose Sat, 08 Aug 2009 10:17:39 +0200 + +gcc-4.4 (4.4.1-1) unstable; urgency=low + + * GCC 4.4.1 release. + - Fixes PR target/39943, PR tree-optimization/40792, PR c++/40780, + PR middle-end/40747, PR libstdc++/40691, PR libfortran/40714, + PR tree-optimization/40813 (ICE in OpenJDK build on sparc). + * Apply proposed patch for PR target/39429, an ARM wrong-code error. + * Fix a typo in the arm back-end (proposed patch). + * Build-depend on libmpc-dev for snapshot builds. + * Fix build failure in cross builds (Hector Oron). Closes: #522597. + * Run the testsuite as part of the build target, not the install target. + + -- Matthias Klose Wed, 22 Jul 2009 13:24:39 +0200 + +gcc-4.4 (4.4.0-11) unstable; urgency=medium + + [ Matthias Klose ] + * Update to SVN 20090715 from the gcc-4_4-branch (r149690). + - Corresponds to the 4.4.1 release candidate. + - Fixes PR target/38900, PR debug/40666, PR middle-end/40669, + PR middle-end/40328, PR target/40587, PR middle-end/40585, + PR c++/40566, PR tree-optimization/40542, PR c/39902, + PR tree-optimization/40579, PR tree-optimization/40550, PR c++/40684, + PR c++/35828, PR c++/37816, PR c++/40639, PR c++/40633, PR c++/40619, + PR c++/40595, PR fortran/40440, PR fortran/40551, PR fortran/40638, + PR fortran/40443, PR libstdc++/40600, PR rtl-optimization/40667, PR c++/40740, + PR c++/36628, PR c++/37206, PR c++/40689, PR c++/40502, PR middle-end/40747. + * Backport of PR c/25509, new option -Wno-unused-result. LP: #305176. + * gcc-4.4: Depend on libgomp1, even if not building the libgomp1 package. + * Add proposed patches for PR libstdc++/40133, PR target/40134; don't apply + yet. + + [Emilio Pozuelo Monfort] + * Backport build-id support, configure with --enable-linker-build-id. + + -- Matthias Klose Tue, 14 Jul 2009 16:09:33 -0400 + +gcc-4.4 (4.4.0-10) unstable; urgency=low + + [ Arthur Loiret ] + * debian/rules.patch: Record the auto* calls to run them once only. + + [ Matthias Klose ] + * Update to SVN 20090627 from the gcc-4_4-branch (r149023). + - Fixes PR other/40024. + * Fix typo, adding blacklisted symbols to the libgcc1 symbols file on armel. + * On mips/mipsel use -O2 in STAGE1_CFLAGS until binutils is updated. + + -- Matthias Klose Sun, 28 Jun 2009 10:13:08 +0200 + +gcc-4.4 (4.4.0-9) unstable; urgency=high + + * Update to SVN 20090624 from the gcc-4_4-branch (r148821). + - Fix PR objc/28050 (LP: #362217), PR libstdc++/40297, PR c++/40342. + * Continue the well planned lib32 transition on amd64, adding pre-dependencies + on libc6-i386 (>= 2.9-18) on Debian. Closes: #533767. + * Enable SSP on arm and armel, run the testsuite with -fstack-protector. + LP: #375189. + * Fix spu fortran build in gcc-snapshot builds. + * Add missing symbols for 64bit libgfortran library. + * Update libstdc++ symbol files for sparc 64bit, adding symbols + for exception propagation support. + * Explicitely add __aeabi symbols to the libgcc1 symbols file on armel. + Closes: #533843. + + -- Matthias Klose Wed, 24 Jun 2009 23:46:02 +0200 + +gcc-4.4 (4.4.0-8) unstable; urgency=medium + + * Let all 32bit libs conflict with libc6-i386 (<< 2.9-17). Closes: #533767. + * Update to SVN 20090620 from the gcc-4_4-branch (r148747). + - Fixes PR fortran/39800, PR fortran/40402. + * Work around tar bug on kfreebsd unpacking java class file updates (#533356). + + -- Matthias Klose Sat, 20 Jun 2009 15:15:22 +0200 + +gcc-4.4 (4.4.0-7) unstable; urgency=medium + + * Update to SVN 20090618 from the gcc-4_4-branch (r148685). + - Fixes PR middle-end/40446, PR middle-end/40389, PR middle-end/40460, + PR fortran/40168, PR target/40470. + * On amd64, install 32bit libraries into /lib32 and /usr/lib32. + * lib32gcc1, lib32gomp1, lib32stdc++6: Conflict with libc6-i386 (= 2.9-15), + libc6-i386 (= 2.9-16). + * Handle serialver alternative in -jdk install scripts, not in -jre-headless. + + -- Matthias Klose Fri, 19 Jun 2009 01:36:00 +0200 + +gcc-4.4 (4.4.0-6) unstable; urgency=low + + [ Matthias Klose ] + * Update to SVN 20090612 from the gcc-4_4-branch (r148433). + - Fixes PR c++/38064, PR c++/40139, PR target/40017, PR target/40266, + PR bootstrap/40027, PR tree-optimization/40087, PR target/39856, + PR rtl-optimization/40105, PR target/39942, PR middle-end/40204, + PR debug/40109, PR tree-optimization/39999, PR libfortran/37754, + PR fortran/22423, PR libfortran/39667, PR libfortran/39782, + PR libfortran/38668, PR libfortran/39665, PR libfortran/39702, + PR libfortran/39709, PR libfortran/39665i, PR libgfortran/39664, + PR fortran/38654, PR libfortran/37754, PR libfortran/37754, + PR libfortran/25561, PR libfortran/37754, PR middle-end/40291, + PR target/40017, PR middle-end/40340, PR c++/40308, PR c++/40311, + PR c++/40306, PR c++/40307, PR c++/40370, PR c++/40372, PR c++/40373, + PR c++/40381, PR fortran/40019, PR fortran/39893. + * gcj-4.4-jdk: Depend on libecj-java-gcj instead of libecj-java. + * Let gjdoc --version use the Configuration class instead of + version.properties (Alexander Sack). LP: #385682. + * Preserve libgcc_s.so linker scripts. Closes: #532263. + + [Ludovic Brenta] + * debian/patches/ppc64-ada.dpatch, + debian/patches/ada-mips.dpatch, + debian/patches/ada-mipsel.dpatch: remove, merged upstream. + * debian/patches/*ada*.dpatch: + - rename to *.diff; + - remove the dpatch prologue shell script + - refresh with quilt -p ab and without time stamps + - adjust to GCC 4.4 + * debian/patches/ada-library-project-files-soname.diff, + debian/patches/ada-polyorb-dsa.diff, + debian/patches/pr39856.diff: new. + * debian/rules.patch: adjust accordingly. + * debian/rules.defs: re-enable Ada. + * debian/rules2: do a lean bootstrap when building Ada. + * debian/rules.d/binary-ada.mk: do not build gnatbl or gprmake anymore, + removed upstream. + + -- Matthias Klose Fri, 12 Jun 2009 18:34:13 +0200 + +gcc-4.4 (4.4.0-5) unstable; urgency=medium + + * Update to SVN 20090517 from the gcc-4_4-branch (r147630). + - Fixes PR tree-optimization/40062, PR middle-end/39986, + PR middle-end/40057, PR fortran/39879, PR libstdc++/40038, + PR middle-end/40035, PR target/37179, PR middle-end/39666, + PR tree-optimization/40074, PR fortran/40018, PR fortran/38863, + PR middle-end/40147, PR fortran/40018, PR target/40153. + + [ Matthias Klose ] + * Update libstdc++ symbols files. + * Update libgcc, libobjc, libstdc++ symbols files for armel. + * Fix version symlink in gcc_lib_dir. Closes: #527837. + * Fix symlinks for javac and header files in /usr/lib/jvm. + Closes: #528084. + * Don't build the stage1 compiler with -O with recent binutils (trunk). + * Revert doing link tests to check for the atomic builtins, disabling + exception propagation support in libstdc++ on armel. See PR40133, PR40134. + * On mips/mipsel don't run the java testsuite with -mabi=64. + * Default to armv4 for the gcc-snapshot package as well. Closes: #523936. + * Mention GCC trunk in the gcc-snapshot package description. Closes: #526309. + * Remove unneed '..' elements from symlinks in JAVA_HOME. + * Fix some lintian warnings for gcc-snapshot. + + [ Arthur Loiret ] + * Add missing dir separator to multiarch path. Closes: #527537. + + -- Matthias Klose Sun, 17 May 2009 11:15:52 +0200 + +gcc-4.4 (4.4.0-4) unstable; urgency=medium + + * Update to SVN 20090506 from the gcc-4_4-branch (r147161). + - Fixes PR rtl-optimization/39914, PR testsuite/39776, + PR tree-optimization/40022, PR libstdc++/39909. + + [ Matthias Klose ] + * gcc-4.4-source: Don't depend on gcc-4.4-base, depend on quilt + and patchutils. + * On armel, link the shared libstdc++ with both -lgcc_s and -lgcc. + * Update libgcc and libstdc++ symbol files for mips and mipsel. + * Update libstdc++ symbol files for armel and hppa, adding symbols + for exception propagation support. + * Add ARM EABI symbols to libstdc++ symbol files for armel. + * Add libobjc symbols file for armel. + * Fix PR libstdc++/40038, missing ceill/tanhl symbols in libstdc++. + + [ Aurelien Jarno ] + * Fix libc name for biarch packages on kfreebsd-amd64. + + -- Matthias Klose Wed, 06 May 2009 15:10:36 +0200 + +gcc-4.4 (4.4.0-3) unstable; urgency=low + + * libstdc++-doc: Install the man pages again. + * Fix build configuration for the GC enabled ObjC runtime library. + * Fix thinko in autotools_files, resulting in autoconf not run in + some cases. + * Do link tests to check for the atomic builtins, enables exception + propagation support in libstdc++ on armel and hppa. + + -- Matthias Klose Sun, 03 May 2009 23:38:56 +0200 + +gcc-4.4 (4.4.0-2) unstable; urgency=low + + [ Samuel Thibault ] + * Enable java build on the hurd. + + [ Matthias Klose ] + * libobjc2.symbols.armel: Remove, use the default one. + * Address PR libstdc++/39491, removing __signbitl from the libstdc++6 + symbols file on hppa. + * libstdc++6.symbols.armel: Fix error introduced with copy from the + arm symbols file. + * libstdc++6.symbols.*: Don't assume exception propagation support + enabled for all architectures (although it should on armel, hppa, + sparc). + * Disable the build of the ObjC garbage collection library on mips*, + working around a build failure. + + -- Matthias Klose Sat, 02 May 2009 14:22:35 +0200 + +gcc-4.4 (4.4.0-1) unstable; urgency=low + + [ Matthias Klose ] + * Update to SVN 20090429 from the gcc-4_4-branch (r146989). + * Configure java enabled builds with --enable-java-home. + * Integrate the bits previously found in java-gcj-compat. + * Rename the packages using the naming schema used for OpenJDK: + gcj-X.Y-{jre-headless,jre,jre-lib,jdk,source}. The packages + {gij,gcj,gappletviewer}-X.Y and libgcjN-{jar,source} are gone. + * Build the libgcj documentation with the just built gjdoc. + * Don't use profiled bootstrap when building the gcj source. + * Apply proposed patch for PR target/39856. + * Fix some lintian warnings. + * Don't include debug symbols for libstdc++.so.6, if the library is + built by a newer GCC version. + * Adjust hrefs to point to the local libstdc++ documentation. LP: #365414. + * Update libgcc, libgfortran, libobjc, libstdc++ symbol files. + * gcc-4.4: Include libssp_nonshared.a. + * For ix86, set the java architecture directory to i386. + + [ Samuel Thibault ] + * Update Hurd changes. + * Configure with --enable-clocale=gnu on hurd-i386. + * debian/patches/hurd-pthread.diff: Reapply. + + -- Matthias Klose Thu, 30 Apr 2009 00:30:20 +0200 + +gcc-4.4 (4.4.0-1~exp2) experimental; urgency=low + + * Update to SVN 20090423 from the gcc-4_4-branch. + + [ Aurelien Jarno ] + * kbsd-gnu.diff: remove parts merged upstream. + + [ Matthias Klose ] + * Remove conflicts/replaces for *-spu packages. + * Configure the spu cross compiler without --with-sysroot and + --enable-multiarch. + * Fix and reenable the gfortran-spu build. + * Work around build failures with missing libstdc++ baseline files. + * Install gjdoc man page. + * Fix java configuration with --enable-java-home and include symlinks + for JAVA_HOME in /usr/lib/jvm. + * Apply proposed fix for PR middle-end/39794. + * Install libstdc++ man pages with suffix .3cxx instead of .3. + Closes: #525244. + * lib*stdc++6-{dbg,doc}: Add conflicts to the corresponding 4.3 packages. + + -- Matthias Klose Thu, 23 Apr 2009 18:11:49 +0200 + +gcc-4.4 (4.4.0-1~exp1) experimental; urgency=low + + * Final GCC 4.4.0 release. + + * Don't build the Fortran SPU cross compiler, currently broken. + * spu cross build: Build without spucache and spumea64. + * Configure --with-arch-32=i486 on amd64, i386, and kfreebsd-{amd64,i386}, + --with-arch-32=i586 on hurd-i386, --with-cpu=atom on lpia. + * Build using profiled bootstrap. + * Remove the gcc-4.4-base.postinst. Addresses: #524708. + * Update debian/copyright: Include runtime library exception, remove + D and Phobas license. + * Apply proposed patch for PR libstdc++/39491, missing symbol in libstdc++ + on hppa. + * Remove unsused soft-fp functions in the 64bit libgcc on powerpc (PR39828). + * Update NEWS files for 4.4. + * Build again libgfortran for the non-default multilib configuration. + * Restore missing chunks in note-gnu-stack.diff, lost during the conversion + to quilt. + + -- Matthias Klose Wed, 22 Apr 2009 00:53:16 +0200 + +gcc-4.4 (4.4-20090418-1) experimental; urgency=low + + * Update to SVN 20090418 from the gcc-4_4-branch. + + [ Arthur Loiret ] + * Update patches: + - boehm-gc-nocheck, cross-include, libjava-rpath, link-libs: + Rebase on trunk. + - gcc-m68k-pch, libjava-debuginfo, libjava-loading-constraints: + Remove, merged in trunk. + - cell-branch, cell-branch-doc: Remove, there is no upstream cell 4.4 + branch yet. + - gdc-fix-build-kbsd-gnu, svn-gdc-updates, gpc-4.1, gpc-gcc-4.x, + gpc-names: Remove, gpc and gdc are not ported to GCC 4.4 yet. + - svn-class-updates, svn-doc-updates, svn-updates: Make empty. + - Refresh all others, and convert them all to quilt. + + * Build system improvements: + - Partial rewrite/refactor of rules files. + - Switch patch system to quilt. + - Autogenerate debian/copyright. + - Use the autoconf2.59 package. + + * multilib/multiarch support improvements: Closes: #369064, #484589. + - mips-triarch.diff: Replace with a newer version (approved upstream). + - s390-biarch.diff: Ditto. + - debian/rules2: Configure with --enable-targets=all on mips-linux, + mipsel-linux and s390-linux. + - gcc-multiarch.diff: New, add multiarch include directories and + libraries path to the system paths. + - debian/rules2: Configure with --enable-multiarch. Configure spu build + with --with-multiarch-defaults=spu-elf. + - multiarch-include.diff: Remove. + - debian/multiarch.inc: Ditto. + + * cross-compilers changes: + - Never build a separated -base package, don't symlink any doc dir. + - Build gobjc again. + + * Run the 64-bit tests with -mabi=64 instead of -m64 on mips/mipsel to + hopefully fix the massive failure. + * Always set $(distribution) to "Debian" on mips/mipsel, workarounds FTBFS + on those archs due to a kernel bug triggered by lsb_release call. + Adresses: #524416. + * debian/rules.patch: Only apply the ada-nobiarch-check patch when ada is + enabled. Remove gpc and gdc patches. + * debian/rules.unpack (install_autotools_stamp): Remove. + * debian/rules.defs (configure_dependencies): Remove autotools dependency. + * debian/rules.conf: Add a copyright-file target. + * debian/control.m4: Build-Depends on autoconf2.59 and patchutils. + Make gcc-4.4-source Depends on autoconf2.59. + Add myself to Uploaders. + * debian/rules.d/binary-source.mk: Don't build and install an embedded + copy or autoconf2.59 in gcc-4.4-source. + * debian/copyright.in: New. + + [ Matthias Klose ] + * Build gcj on hppa. + * Add support to build vfp optimized runtime libraries on armel. + * gcc-4.4-spu: Depend on newlib-spu. + * Fix sections of -dbg and java packages. + * gcc-default-ssp.dpatch: Set the default as well, when calling the + preprocessor. LP: #346126. + * Build-depend on quilt. + * Keep the copyright file in the archive. + * Remove conflict of the gcc-X.Y-source packages. + * Update removal of gfdl doc files for 4.4. + * Don't re-run the autotools (introduced with the switch to quilt). + * On arm and armel, install the arm_neon.h header. LP: #360819. + * When hardening options are turned on by default, patch the testsuite + to handle the hardening defaults (Kees Cook). + * Only run the patch target once. Avoids multiple autotool runs, but + doesn't reflect changes in the series file anymore. + * libgcj-doc: Fix documentation title. + * Fix gcj source build with recent build changes. + * Don't check for libraries in DEB_BUILD_OPTIONS/nolang. + * gappletviewer: Include missing binary. + + [ Aurelien Jarno ] + * Remove: patches/kbsd-gnu-ada.dpatch (merged upstream). + * kbsd-gnu.diff: add fix for stuff broken by upstream. + + -- Matthias Klose Mon, 20 Apr 2009 01:34:26 +0200 + +gcc-4.4 (4.4-20090317-1) experimental; urgency=low + + * Initial upload of GCC-4.4, based on trunk 20090317 (r144904). + + [Matthias Klose] + * Branch from the gcc-4.3 packaging. + * Remove *-trunk patches, update remaining patches for the trunk. + * Remove patches integrated upstream: libobjc-gc-link, libjava-file-support, + libjava-realloc-leak, libjava-armel-ldflags, libstdc++-symbols-hppa, + gcc-m68k-pch, libjava-extra-cflags, libjava-javah-bridge-tgts, + hppa-atomic-builtins, armel-atomic-builtins, libssp-gnu, libobjc-armel, + gfortran-armel-updates, sparc-biarch, libjava-xulrunner-1.9. + * Update patches for 4.4, mostly using the patches converted for quilt by + Arthur Loiret. + * debian/patches/libjava-soname.dpatch: Remove, unmodifed upstream library. + * debian/patches/gcc-driver-extra-langs.dpatch: Search Ada files in subdir. + * debian/rules.unpack, debian/rules.d/binary-source.mk: Update for included + autoconf tarball. + * debian/rules.d/binary-{gcc,java}.mk: Install new header files. + * debian/libgfortran3.symbols.common: Remove symbol not generated by + gfortran (__iso_c_binding_c_f_procpointer@GFORTRAN_1.0), PR38871. + * debian/rules.conf: Update for 4.4. + * Fix build dependencies and configure options for 4.4, which were applied + for snapshot builds only. + + [Arthur Loiret] + * Update patches from debian/patches: + - Remove backported fixes: + PR ada: pr10768.dpatch, pr15808.dpatch, pr15915.dpatch, pr16086.dpatch, + pr16087.dpatch, pr16098.dpatch, pr17985.dpatch, pr18680.dpatch, + pr22255.dpatch, pr22387.dpatch, pr28305.dpatch, pr28733.dpatch, + pr29015.dpatch, pr30740.dpatch, pr30827.dpatch pr33688.dpatch, + pr34466.dpatch, pr35050.dpatch, pr35792.dpatch. + PR target: pr27880.dpatch, pr28102.dpatch, pr30961.dpatch, + pr35965.dpatch, pr37661.dpatch. + PR libgcj: pr24170.dpatch, pr35020.dpatch. + PR gcov-profile: pr38292.dpatch. + PR other: pr28322.dpatch. + * debian/rules.patch: Update. + * debian/symbols/libgomp1.symbols.common: Add new symbols from OpenMP 3.0. + + -- Matthias Klose Tue, 17 Mar 2009 02:28:01 +0100 + +gcc-4.3 (4.3.3-5) unstable; urgency=low + + Merge from gnat-4.3 (4.3.3-1): + + [Petr Salinger] + * debian/patches/ada-libgnatprj.dpatch: enable support for GNU/kFreeBSD. + Fixes: #512277. + + [Ludovic Brenta] + * debian/patches/ada-acats.dpatch: attempt to fix ACATS tests (not entirely + successful yet). + * New upstream version. Fixes: #514565. + + [Matthias Klose] + * Update to SVN 20090301 from the gcc-4_3-branch. + - Fix PR c/35446, PR c++/38950, PR fortran/38852, PR fortran/39006, + PR c++/39225 (closes: #516727), PR c++/38950, PR target/38056, + PR target/39228, PR middle-end/36578, PR inline-asm/39058, + PR middle-end/37861. + * Don't provide the 4.3.2 symlink in gcc_lib_dir anymore. + * Require binutils-2.19.1. + + -- Matthias Klose Sun, 01 Mar 2009 14:18:09 +0100 + +gcc-4.3 (4.3.3-4) unstable; urgency=low + + * Fix Fix PR gcov-profile/38292 (wrong profile information), taken + from the trunk. + * Update to SVN 20090215 from the gcc-4_3-branch. + Fix PR c/35435, PR tree-optimization/39100, PR rtl-optimization/39076, + PR c/35433, PR tree-optimization/39041, PR target/38988, + PR middle-end/38969, PR c++/36897, PR c++/39054, PR c/39035, PR c/35434, + PR c/36432, PR target/38991, PR c/39084, PR target/39118. + * Reapply the fix for PR middle-end/38615. + * Include autoconf-2.59 sources into the source package, and install as + part of the gcc-4.3-source package. + * Explicitely use autoconf-1.9. + * Disable building the gcjwebplugin. + * Don't configure with --enable-cld on amd64 and i386. + + -- Matthias Klose Sun, 15 Feb 2009 23:40:09 +0100 + +gcc-4.3 (4.3.3-3) unstable; urgency=medium + + * Revert fix for PR middle-end/38615. Closes: #513420. + + -- Matthias Klose Thu, 29 Jan 2009 07:05:15 +0100 + +gcc-4.3 (4.3.3-2) unstable; urgency=low + + * Update to SVN 20090127 from the gcc-4_3-branch. + - Fix PR tree-optimization/38359. Closes: #492505. + - Fix PR tree-optimization/38932 (ice-on-valid-code), PR target/38931 + (ice-on-valid-code), PR rtl-optimization/38879 (wrong-code), + PR c++/23287 (rejects-valid), PR fortran/38907 (ice-on-valid-code), + PR fortran/38859 (wrong-code), PR fortran/38657 (rejects-valid), + PR fortran/38672 (ice-on-valid-code). + * Fix PR middle-end/38969, taken from the trunk. Closes: #513007. + + -- Matthias Klose Tue, 27 Jan 2009 23:42:45 +0100 + +gcc-4.3 (4.3.3-1) unstable; urgency=low + + * GCC-4.3.3 release (no changes compared to the 4.3.2-4 upload). + * Fix PR middle-end/38615 (wrong code, taken from the trunk). + + -- Matthias Klose Sat, 24 Jan 2009 14:43:09 +0100 + +gcc-4.3 (4.3.2-4) unstable; urgency=medium + + * Update to SVN 20090119 from the gcc-4_3-branch. + - Fix PR tree-optimization/36765 (wrong code). + * Remove patch for PR 34571, applied upstream (fix build failure on alpha). + * Apply proposed patch for PR middle-end/38902 (wrong code). + + -- Matthias Klose Tue, 20 Jan 2009 00:22:41 +0100 + +gcc-4.3 (4.3.2-3) unstable; urgency=low + + * Update to SVN 20090117 from the gcc-4_3-branch (4.3.3 release candidate). + - Fix PR target/34571, PR debug/7055, PR tree-optimization/37194, + PR tree-optimization/38529, PR fortran/38763, PR fortran/38765, + PR fortran/38669, PR fortran/38487, PR fortran/35681, PR fortran/38657, + PR c++/36019, PR c++/31488, PR c++/37646, PR c++/36334, PR c++/38357, + PR c++/31260, PR c++/38877, PR libstdc++/36801, PR libgcj/38396. + - debian/patches/libgcj-bc.dpatch: Remove, applied upstream. + * Fix PR middle-end/38616 (wrong code with -fstack-protector). + * Update backport for PR28322 (Gunther Nikl). + + -- Matthias Klose Sat, 17 Jan 2009 21:09:35 +0100 + +gcc-4.3 (4.3.2-2) unstable; urgency=low + + * Update to SVN 20090110 from the gcc-4_3-branch. + - Fix PR target/36654, PR tree-optimization/38752, PR fortran/38675, + PR fortran/37469, PR libstdc++/38000. + + -- Matthias Klose Sat, 10 Jan 2009 18:32:34 +0100 + +gcc-4.3 (4.3.2-2~exp5) experimental; urgency=low + + * Adjust build-dependencies for cross builds. Closes: #499998. + * Update to SVN 20081231 from the gcc-4_3-branch. + - Fix PR middle-end/38565, PR target/38062, PR bootstrap/38383, + PR target/38402, PR testsuite/35677, PR tree-optimization/38478, + PR target/38054, PR middle-end/29056, PR testsuite/28870, + PR target/38254. + - Fix PR libstdc++/37144, PR c++/37582, PR libstdc++/38080. + - Fix PR fortran/38602, PR fortran/38602, PR fortran/38487, + PR fortran/38113, PR fortran/35983, PR fortran/35937, PR testsuite/36889. + * Update the spu cross compiler from the cell-gcc-4_3-branch 20081217. + * debian/patches/libobjc-armel.dpatch: Don't define EH_USES. + * Apply the Atomic builtins patch for PARISC. + + -- Matthias Klose Thu, 18 Dec 2008 00:34:46 +0100 + +gcc-4.3 (4.3.2-2~exp4) experimental; urgency=low + + * Update to SVN 20081130 from the gcc-4_3-branch. + - Fix PR bootstrap/33304, PR middle-end/37807, PR middle-end/37809, + PR rtl-optimization/37489, PR target/35574, PR c/37924, + PR tree-optimization/37879, PR middle-end/37858, PR middle-end/37870, + PR target/38016, PR target/37939, PR rtl-optimization/37769, + PR target/37909, PR fortran/37597, PR fortran/35820, PR fortran/37445, + PR fortran/PR35769, PR fortran/37903, PR fortran/37749. + - Fix PR target/37640, PR tree-optimization/37868, PR bootstrap/33100, + PR other/38214, PR c++/37142, PR c++/35405, PR c++/37563, PR c++/38030, + PR c++/37932, PR c++/38007. + - Fix PR fortran/37836, PR fortran/38171, PR fortran/35681, + PR fortran/37792, PR fortran/37926, PR fortran/38033, PR fortran/36526. + - Fix PR target/38287. Closes: #506713. + * Atomic builtins using kernel helpers for PARISC and ARM Linux/EABI, taken + from the trunk. + + -- Matthias Klose Mon, 01 Dec 2008 01:29:51 +0100 + +gcc-4.3 (4.3.2-2~exp3) experimental; urgency=low + + * Update to SVN 20081117 from the gcc-4_3-branch. + * Add build dependencies on spu packages for snapshot builds. + * Add build dependency on libantlr-java for snapshot builds. + * Disable fortran on spu for snapshot builds. + * Add dependency on binutils-{hppa64,spu} for snapshot builds. + + -- Matthias Klose Mon, 17 Nov 2008 21:57:51 +0100 + +gcc-4.3 (4.3.2-2~exp2) experimental; urgency=low + + * Update to SVN 20081023 from the gcc-4_3-branch. + - General regression fixes: PR rtl-optimization/37882 (wrong code), + - Fortran regression fixes: PR fortran/37787, PR fortran/37723. + * Use gij-4.3 for builds in java maintainer mode. + * Don't run the testsuite with -fstack-protector for snapshot builds. + * Update the spu cross compiler from the cell-gcc-4_3-branch 20081023. + Don't disable multilibs, install additional components in the gcc-4.3-spu + package. + * Enable building the spu cross compiler for powerpc and ppc64 snapshot + builds. + * Apply proposed patch for PR tree-optimization/37868 (wrong code). + * Apply proposed patch to parallelize make check. + * For biarch builds, disable the gnat testsuite for the non-default + architecture (no biarch support in gnat yet). + + -- Matthias Klose Thu, 23 Oct 2008 22:06:38 +0200 + +gcc-4.3 (4.3.2-2~exp1) experimental; urgency=low + + * Update to SVN 20081017 from the gcc-4_3-branch. + - General regression fixes: PR rtl-optimization/37408 (wrong code), + PR tree-optimization/36630, PR tree-optimization/37102 (wrong code), + PR c/35437 (ice on invalid code), PR middle-end/37731 (wrong code), + PR target/37603 (wrong code, hppa), PR tree-optimization/35737 (ice on + valid code), PR middle-end/36575 (wrong code), PR c/37645 (ice on valid + code), PR tree-optimization/37539 (compile time hog), PR middle-end/37236 + (ice on invalid code), PR tree-optimization/36343 (wrong code), + PR rtl-optimization/37544 (wrong code), PR target/35620 (ice on valid + code), PR target/35713 (ice on valid code, wrong code), PR c/35712 (wrong + code), PR target/37466 (wrong code, AVR). + - C++ regression fixes: PR c++/37389 (LP: #252301), PR c++/37555 (ice on + invalid code). + - Fortran regression fixes: PR fortran/37199, PR fortran/36214, + PR fortran/35770, PR fortran/36454, PR fortran/36374, PR fortran/37274, + PR fortran/37583, PR fortran/36700, PR fortran/35945, PR fortran/37626, + PR fortran/37504, PR fortran/37580, PR fortran/37706, PR fortran/35680, + PR fortran/37794. + * Remove obsolete patches: ada-driver.dpatch, pr33148.dpatch. + * Fix naming of bridge targets in gjavah (wrong header generation). + * Fix PR target/37661, SPARC64 int-to-TFmode conversions. + * Include the complete test summaries in a binary package, to allow + regression checking from the previous build. + * Tighten inter-package dependencies to (>= 4.3.2-1). + * Drop the 4.3.1 symlink in gcc_lib_dir, add a 4.3.3 symlink to 4.3. + + -- Matthias Klose Fri, 17 Oct 2008 23:26:50 +0200 + +gcc-4.3 (4.3.2-1) unstable; urgency=medium + + [Matthias Klose] + * Final gcc-4.3.2 release (regression fixes). + - Remove the generated install docs from the tarball (GFDL licensed). + - C++ regression fixes: PR debug/37156. + - general regression fixes: PR debug/37156, PR target/37101. + - Java regression fixes: PR libgcj/8995. + * Update to SVN 20080905 from the gcc-4_3-branch. + - C++ regression fixes: PR c++/36741 (wrong diagnostic), + - general regression fixes: PR target/37184 (ice on valid code), + PR target/37191 (ice on valid code), PR target/37197 (ice on valid code), + PR middle-end/36817 (ice on valid code), PR middle-end/36548 (wrong code), + PR middle-end/37125 (wrong code), PR c/37261 (wrong diagnostic), + PR target/37168 (ice on valid code), PR middle-end/36449 (wrong code), + PR middle-end/37248 (missed optimization), PR target/36332 (wrong code). + - Fortran regression fixes: PR fortran/37193 (rejects valid code). + * Move symlinks in gcc_lib_dir from cpp-4.3 to gcc-4.3-base. Closes: #497369. + * Don't build-depend on autogen on architectures where it is not installable + (needed for the fixincludes testsuite only); don't build-depend on it for + source packages not running the fixincludes testsuite. + + [Ludovic Brenta] + * Add sdefault.ads to libgnatprj4.3-dev. Fixes: #492866. + * turn gnatvsn.gpr and gnatprj.gpr into proper library project files. + * Unconditionally build-depend on gnat when building gnat-4.3. + Fixes: #487564. + * (debian/rules.d/binary-ada.mk): Add a symlink libgnat.so to + /usr/lib/libgnat-4.3.so in the adalib directory. Fixes: #493814. + * (debian/patches/ada-sjlj.dpatch): remove dangling symlinks from all + adalib directories. + * debian/patches/ada-alpha.dpatch: remove, applied upstream. + + [Samuel Tardieu, Ludovic Brenta] + * debian/patches/pr16086.dpatch: new; backport from GCC 4.4. + Closes: #248172. + * debian/patches/pr35792.dpatch: new; backport from GCC 4.4. + * debian/patches/pr15808.dpatch (fixes: #246392), + debian/patches/pr30827.dpatch: new; backport from the trunk. + + -- Matthias Klose Fri, 05 Sep 2008 22:52:58 +0200 + +gcc-4.3 (4.3.1-9) unstable; urgency=low + + * Update to SVN 20080814 from the gcc-4_3-branch. + - C++/libstdc++ regression fixes: PR c++/36688, PR c++/37016, PR c++/36999, + PR c++/36405, PR c++/36767, PR c++/36852. + - general regression fixes: PR target/36613, PR rtl-optimization/36998, + PR middle-end/37042, PR middle-end/35432, PR target/35659, + PR middle-end/37026, PR middle-end/36691, PR tree-optimization/36991, + PR rtl-optimization/35542, PR bootstrap/35752, PR rtl-optimization/36419, + PR debug/36278, PR preprocessor/36649, PR rtl-optimization/36929, + PR tree-optimization/36830, PR c/35746, PR middle-end/37014, + PR middle-end/37103. + - Fortran regression fixes: PR fortran/36132. + - Java regression fixes: PR libgcj/31890. + - Fixes PR middle-end/37090. Closes: #494815. + + -- Matthias Klose Thu, 14 Aug 2008 18:02:52 +0000 + +gcc-4.3 (4.3.1-8) unstable; urgency=low + + * Undo Revert PR tree-optimization/36262 on i386 (PR 36917 is invalid). + + -- Matthias Klose Fri, 25 Jul 2008 21:47:52 +0200 + +gcc-4.3 (4.3.1-7) unstable; urgency=low + + * Update to SVN 20080722 from the gcc-4_3-branch. + - Fix PR middle-end/36811, infinite loop building with -O3. + - C++/libstdc++ regression fixes: PR c++/36407, PR c++/34963, + PR libstdc++/36832, PR libstdc++/36552, PR libstdc++/36729. + - Fortran regression fixes: PR fortran/36366, PR fortran/36824. + - general regression fixes: PR middle-end/36877, PR target/36780, + PR target/36827, PR rtl-optimization/35281, PR rtl-optimization/36753, + PR target/36827, PR target/36784, PR target/36782, PR middle-end/36369, + PR target/36780, PR target/35492, PR middle-end/36811, + PR rtl-optimization/36419, PR target/35802, PR target/36736, + PR target/34780. + * Revert PR tree-optimization/36262 on i386, causing miscompilation of + OpenJDK hotspot. + * gij/gcj: Don't remove alternatives on upgrade. Addresses: #479950. + + -- Matthias Klose Tue, 22 Jul 2008 23:55:54 +0200 + +gcc-4.3 (4.3.1-6) unstable; urgency=low + + * Start the logwatch script on alpha as well to avoid timeouts in + the testsuite. + + -- Matthias Klose Mon, 07 Jul 2008 11:31:58 +0200 + +gcc-4.3 (4.3.1-5) unstable; urgency=low + + * Update to SVN 20080705 from the gcc-4_3-branch. + - Fix PR target/36634, wrong-code on powerpc with -msecure-plt. + * Fix PR target/35965, PIC + -fstack-protector on arm/armel. Closes: #469517. + * Don't run the libjava testsuite with -mabi=n32. + * Update patch for PR other/28322, that unknown -Wno-* options do not + cause errors, but warnings instead. + * On m68k, add -fgnu89-inline when in gnu99 mode (requested by Michael + Casadeval for the m68k port). Closes: #489234. + + -- Matthias Klose Sun, 06 Jul 2008 01:39:30 +0200 + +gcc-4.3 (4.3.1-4) unstable; urgency=low + + * Revert: debian/patches/gcc-multilib64dir.dpatch: Remove obsolete patch. + * Remove obsolete multiarch-lib patch. + + -- Matthias Klose Mon, 30 Jun 2008 23:05:17 +0200 + +gcc-4.3 (4.3.1-3) unstable; urgency=medium + + [Arthur Loiret] + * debian/rules2: + - configure sh4-linux with --with-multilib-list=m4,m4-nofpu + and --with-cpu=sh4. + - configure sparc-linux with --enable-targets=all on snapshot builds + (change already in 4.3.1-1). + * debian/rules.patch: Don't apply sh4-multilib.dpatch. + + [Matthias Klose] + * Update to SVN 20080628 from the gcc-4_3-branch. + - Fix PR target/36533, wrong-code with incorrectly assumed aligned_operand. + Closes: #487115. + * debian/rules.defs: Remove hurd-i386 from ssp_no_archs (Samuel Thibault). + Closes: #483613. + * Do not create a /usr/lib/gcc//4.3.0 symlink. + * debian/patches/gcc-multilib64dir.dpatch: Remove obsolete patch. + * libjava/classpath: Set and use EXTRA_CFLAGS (taken from the trunk). + + -- Matthias Klose Sat, 28 Jun 2008 16:00:38 +0200 + +gcc-4.3 (4.3.1-2) unstable; urgency=low + + * Update to SVN 20080610 from the gcc-4_3-branch. + - config.gcc: Fix quoting for in the enable_cld test. + * Use GNU locales on hurd-i386 (Samuel Thibault). Closes: #485395. + * libstdc++-doc: Fix URL's for locally installed docs. Closes: #485133. + * libjava: On armel apply kludge to fix unwinder infinitely looping 'til + it runs out of memory. + * Adjust dependencies to require GCC 4.3.1. + + -- Matthias Klose Wed, 11 Jun 2008 00:35:38 +0200 + +gcc-4.3 (4.3.1-1) unstable; urgency=high + + [Samuel Tardieu, Ludovic Brenta] + * debian/patches/pr16087.dpatch: new. Fixes: #248173. + * Correct the patches from the previous upload. + + [Ludovic Brenta] + * debian/patches/ada-acats.dpatch: really run the just-built gnat, not the + bootstrap gnat. + * debian/rules2: when running the Ada test suite, do not run the multilib + tests as gnat does not support multilib yet. + * Run the ACATS testsuite again (patch it so it correctly finds gnatmake). + + [Thiemo Seufer] + * debian/patches/ada-libgnatprj.dpatch, + debian/patches/ada-mips{,el}.dpatch: complete support for mips and mipsel. + Fixes: #482433. + + [Matthias Klose] + * GCC-4.3.1 release. + * Do not include standard system paths in libgcj pkgconfig file. + * Suggest the correct libmudflap0-dbg package. + * Fix PR libjava/35020, taken from the trunk. + * Apply proposed patch for PR tree-optimization/36343. + * On hurd-i386 with -fstack-protector do not link with libssp_nonshared + (Samuel Thibault). Closes: #483613. + * Apply proposed patch for PR tree-optimization/34244. + * Remove debian-revision in symbols files. + * Fix installation of all biarch -multilib packages which are not triarch. + * Fix some lintian warnings. + * Include library symlinks in gobjc and gfortran multilib packages, when + not building the library packages. + * Fix sections in doc-base files. + * Don't apply the sparc-biarch patch when building the gcc-snapshot package. + * libjava: Add @file support for gjavah & gjar. + * Apply patch for PR rtl-optimization/36111, taken from the trunk. + + * Closing reports reported against gcc-4.0 and fixed in gcc-4.3: + - General + + Fix PR optimization/3511, inlined strlen() could be smarter. + Close: #86251. + - C + + Fix PR c/9072, Split of -Wconversion in two different flags. + Closes: #128950, #226952. + - C++/libstdc++ + + PR libstdc++/24660, implement versioning weak symbols in libstdc++. + Closes: #328421. + - Architecture specific: + - mips + + PR target/26560, unable to find a register to spill in class + 'FP_REGS'. Closes: #354439. + - sparc + + Fix PR rtl-optimization/23454, ICE in invert_exp_1. Closes: #340951. + * Closing reports reported against gcc-4.1 and fixed in gcc-4.2: + - General + + PR tree-optimization/30132, ICE in find_lattice_value. Closes: #400484. + + PR other/29534, ICE in "gcc -O -ftrapv" with decreasing array index. + Closes: #405065. + + Incorrect SSE2 code generation for vector initialization. + Closes: #406442. + + Fix segfault in cc1 due to infinite loop in error() when using -ftrapv. + Closes: #458072. + + Fix regression in code size with -Os compared to GCC-3.3. + Closes: #348298. + - C++ + + Fix initialization of global variables with non-constant initializer. + Closes: #446067. + + Fix ICE building muse. Closes: #429385. + * Closing reports reported against gcc-4.1 and fixed in gcc-4.3: + - C++ + + PR c++/28705, ICE: in type_dependent_expression_p. Closes: #406324. + + PR c++/7302, -Wnon-virtual-dtor should't complain of protected dtor. + Closes: #356316. + + PR c++/28316, PR c++/24791, PR c++/20133, ICE in instantiate_decl. + Closes: #327346, #355909. + - Fortran + + PR fortran/31639, ICE in gfc_conv_constant. Closes: #401496. + - Java + + Fix ICE using gcj with --coverage. Closes: #416326. + + PR libgcj/29869, LogManager class loading failure. Closes: #399251 + + PR swing/29547 setText (String) of JButton does not work + with HTML code. Closes: #392791. + + PR libgcj/29178, CharsetEncoder.canEncode() gives different results + than Sun version. Closes: #388596. + + PR java/8923, ICE when modifying a variable decleared "final static". + Closes: #351512. + + PR java/22507, segfault building Apache Cocoon. Closes: #318534. + + PR java/2499, class members should be inherited from implemented + interfaces. Closes: #225434. + + PR java/10581, ICE compiling freenet. Closes: #186922. + + PR libgcj/28340, gij ignores -Djava.security.manager. Closes: #421098. + + PR java/32846, build failure on GNU/Hurd. Closes: #408888. + + PR java/29194, fails to import package from project. Closes: #369873. + + PR libgcj/31700, -X options not recognised by JNI_CreateJavaVM. + Closes: #426742. + + java.util.Calendar.setTimeZone fails to set ZONE_OFFSET. + Closes: #433636. + - Architecture specific: + - alpha + + C++, fix segfault in constructor with -Os. Closes: #438436. + - hppa + + PR target/30131, ICE in propagate_one_insn. Closes: #397341. + - m32r + + PR target/28508, assembler error (operand out of range). + Closes: #417542. + - m68k + + PR target/34688, ICE in output_operand. Closes: #459429. + * Closing reports reported against gcc-4.2 and fixed in gcc-4.3: + - General + + PR tree-optimization/33826, wrong code generation for infinitely + recursive functions. Closes: #445536. + - C++ + + PR c++/24791, ICE on invalid instantiation of template's static member. + Closes: #446698. + + [Aurelien Jarno] + * Really apply arm-funroll-loops.dpatch on arm and armel. Closes: #476460. + + -- Matthias Klose Sat, 07 Jun 2008 23:16:21 +0200 + +gcc-4.3 (4.3.0-5) unstable; urgency=medium + + * Update to SVN 20080523 from the gcc-4_3-branch. + - Remove gcc-i386-emit-cld patch. + - On Debian amd64 and i386 configure with --enable-cld. + * Fix PR tree-optimization/36129, ICE with -fprofile-use. + * Add spu build dependencies independent of the architecture. + * Move arm -funroll-loops fix to arm-funroll-loops from + gfortran-armel-updates. Apply it on both arm and armel. + Closes: #476460. + * Use iceape-dev as a build dependency for Java enabled builds. + * Build the sru cross compiler from a separate source dir without applying + the hardening patches. + + -- Matthias Klose Fri, 23 May 2008 10:12:02 +0200 + +gcc-4.3 (4.3.0-4) unstable; urgency=low + + [ Aurelien Jarno ] + * Fix gnat-4.3 build on mips/mipsel. + * Update libgcc1 symbols for hurd-i386. + + [ Arthur Loiret ] + * Make gcc-4.3-spu Recommends newlib-spu. Closes: #476088 + * Build depend on spu build dependencies only when building + as gcc-4.x source package. + * Disable spu for snapshot builds. + * Support sh4 targets: + - sh4-multilib.dpatch: Add, fix multilib (m4/m4-nofpu) for sh4-linux + - multiarch-include.dpatch: Don't apply on sh4. + + [ Matthias Klose ] + * Stop building libffi packages. + * Update to SVN 20080501 from the gcc-4_3-branch. + - Fix PR target/35662, wrong gfortran code on mips/mipsel. Closes: #476427. + - Fixes mplayer build on powerpc. Closes: #475153. + * Stop building gij/gcj on alpha, arm and hppa. Closes: #459560. + * libstdc++6-4.3-doc: Fix file location in doc-base file. Closes: #476253. + * debian/patches/template.dpatch: Remove the `exit 0' line. + * Fix alternative names for amd64 cross builds. Addresses: #466422. + * debian/copyright: Update to GPLv3, remove the text of the GFDL + and reference the copy in common-licenses. + * Generate the locale data for the testsuite, if the locales package + is installed (not a dependency on all archs). + * Update libgcc2 symbols for m68k, libstdc++6 symbols for arm, m68k, mips + and mipsel. + * Do not include a symbols file for libobjc_gc.so. + * Add four more symbols to libgcj_bc, patch taken from the trunk. + * Adjust names of manual pages in the spu build on powerpc. + * ARM EABI (armel) updates (Andrew Jenner, Julian Brown): + - Add Objective-C support. + - Fortran support patches. + - Fix ICE in gfortran.dg/vector_subscript_1.f90 for -Os -mthumb reload. + * Build ObjC and Obj-C++ packages on armel. + * Reenable running the testsuite on m68k. + + [Samuel Tardieu, Ludovic Brenta] + * debian/patches/gnalasup_to_lapack.dpatch: new. + * debian/patches/pr34466.dpatch, + debian/patches/pr22255.dpatch, + debian/patches/pr33688.dpatch, + debian/patches/pr10768.dpatch, + debian/patches/pr28305.dpatch, + debian/patches/pr17985.dpatch (#278685) + debian/patches/pr15915.dpatch, + debian/patches/pr16098.dpatch, + debian/patches/pr18680.dpatch, + debian/patches/pr28733.dpatch, + debian/patches/pr22387.dpatch, + debian/patches/pr29015.dpatch: new; backport Ada bug fixes from GCC 4.4. + * debian/patches/rules.patch: apply them. + * debian/patches/pr35050.dpatch: update. + + [Andreas Jochens] + * debian/patches/ppc64-ada.dpatch: update, adding support for ppc64. + (#476868). + + [Ludovic Brenta] + * Apply ppc64-ada.dpatch whenever we build libgnat, not just on ppc64. + * debian/patches/pr28322.dpatch: never pass -Wno-overlength-strings to + the bootstrap compiler, as the patch breaks the detection of whether + the bootstrap compiler supports this option or not. + Fixes: #471192. Works around #471767. + * Merge Aurélien Jarno's mips patch. Fixes: #472854. + + [ Samuel Tardieu ] + * debian/patches/pr30740.dpatch: new Ada bug fix. + * debian/patches/pr35050.dpatch: new Ada bug fix. + + [ Xavier Grave ] + * debian/patches/ada-mips{,el}.dpatch: new; split mips/mipsel support + into new patches, out of ada-sjlj.dpatch. + * debian/rules.d/binary-ada.mk: fix the version number of libgnarl-4.3.a. + + [Roman Zippel] + * PR target/25343, fix gcc.dg/pch/pch for m68k. + + -- Matthias Klose Thu, 01 May 2008 21:08:09 +0200 + +gcc-4.3 (4.3.0-3) unstable; urgency=medium + + [ Matthias Klose ] + * Update to SVN 20080401 from the gcc-4_3-branch. + - Fix PR middle-end/35705 (hppa only). + * Update libstdc++6 symbols for hurd-i386. Closes: #472334. + * Update symbol files for libgomp (ppc64). + * Only apply the gcc-i386-emit-cld patch on amd64 and i386 architectures. + * Update libstdc++ baseline symbols for hppa. + * Install powerpc specific header files new in 4.3. + * gcc-4.3-hppa64: Don't include the install tools in the package. + + [ Aurelien Jarno ] + * Fix gobjc-4.3-multilib dependencies. Closes: #473455. + * Fix gnat-4.3 build on mips/mipsel. + * patches/ada-alpha.dpatch: new patch to fix gnat-4.3 build on alpha. + Closes: #472852. + * patches/config-ml.dpatch: also check for n32 multidir. + + [ Arthur Loiret ] + * Build-Depends on binutils (>= 2.18.1~cvs20080103-2) on mips and mipsel, + required for triarch. + * libstdc++-pic.dpatch: Update, don't fail anymore if shared lib is disabled. + + [ Andreas Jochens ] + * Fix build failures on ppc64. Closes: #472917. + - gcc-multilib64dir.dpatch: Remove "msoft-float" and "nof" from MULTILIB + variables. + - Removed ppc64-biarch.dpatch. + - Add debian/lib32gfortan3.symbols.ppc64. + + [ Arthur Loiret, Matthias Klose ] + * Build compilers for spu-elf target on powerpc and ppc64. + - Add gcc-4.3-spu, g++-4.3-spu and gfortran-4.3-spu packages. + - Partly based on the work in Ubuntu on the spu toolchain. + + -- Matthias Klose Tue, 01 Apr 2008 23:29:21 +0000 + +gcc-4.3 (4.3.0-2) unstable; urgency=low + + [Matthias Klose] + * Update to SVN 20080321 from the gcc-4_3-branch. + - Remove some broken code that attempts to enforce linker + constraints. Closes: #432541. + * Temporary fix, will be removed once a fixed kernel is available + in testing: Emit cld instruction when stringops are used (i386). + Do not expose the -mcld option until added upstream. Closes: #469567. + * Update NEWS files. + * libjava: Don't leak upon failed realloc (taken from the trunk). + * debian/rules2: The build is not yet prepared to take variables from + the environment; unexport and unset those. + + [Arthur Loiret/Aurelien Jarno] + * MIPS tri-arch support: + - mips-triarch.dpatch: new patch to default to o32 and follow the + glibc convention for n32 & 64 bit names. + - Rename $(biarch) and related vars into $(biarch64). + - Fix biarchsubdir to allow triarch. + - Add biarchn32 support. + - Add mips and mipsel to biarch64 and biarchn32 archs. + - Update binary rules for biarchn32 and libn32 targets. + - Fix multilib deps for triarch. + - control.m4: Add libn32 packages. + + -- Matthias Klose Sat, 22 Mar 2008 00:06:33 +0100 + +gcc-4.3 (4.3.0-1) unstable; urgency=low + + [Matthias Klose] + * GCC-4.3.0, final release. + * Update to SVN 20080309 from the gcc-4_3-branch. + * Build from a modified tarball, without GFDL documentation with + invariant sections and cover texts. + * debian/rules.unpack: Avoid make warnings. + * debian/rules.d/binary-cpp.mk: Add 4.3.0 symlink in gcclibdir. + * Stop building treelang (removed upstream). + * gcj-4.3: Hardcode libgcj-bc dependency, don't run dh_shlibdeps on ecj1. + + [Aurelien Jarno] + * Update libssp-gnu.dpatch and reenable it. + + -- Matthias Klose Sun, 09 Mar 2008 15:18:08 +0100 + +gcc-4.3 (4.3.0~rc2-1) unstable; urgency=medium + + * Update to SVN 20080301 from the gcc-4_3-branch. + * Include the biarch libobjc_gc library in the packages. + * Link libobjc_gc with libgcjgc_convenience.la. + * Add new symbols to libstdc++6 symbol files, remove the symbols for + support (reverted upstream for the 4.3 branch). + * Disable running the testsuite on m68k. + * Update PR other/28322, ignore only unknown -W* options. + + -- Matthias Klose Sat, 01 Mar 2008 15:09:16 +0100 + +gcc-4.3 (4.3-20080227-1) unstable; urgency=low + + [Matthias Klose] + * Update to SVN 20080227 from the gcc-4_3-branch. + * Fix PR other/28322, GCC new warnings and compatibility. + Addresses: #367657. + + [Hector Oron] + * Fix cross-compile builds. Closes: #467471. + + -- Matthias Klose Thu, 28 Feb 2008 00:30:38 +0100 + +gcc-4.3 (4.3-20080219-1) unstable; urgency=medium + + [Matthias Klose] + * Update to SVN 20080219 from the gcc-4_3-branch. + * Apply proposed patch for PR target/34571 (alpha). + * libgcj9-dev: Don't claim that the package contains the static + libraries. + * libjava-xulrunner1.9.dpatch: Add configure check for xulrunner-1.9. + Name the alternative xulrunner-1.9-javaplugin.so. + * libgcj-doc: Don't include the examples; these cannot be built + with the existing Makefile anyway. Addresses: #449608. + * Manpages for gc-analyze and grmic are GFDL. Don't include these when + building DFSG compliant packages. + * Fix build failure building amd64 cross-target libstdc++ packages + (Tim Bagot). Addresses: #464365. + * Fix typos in rename-info-files patch (Richard Guenther). + * Fix PR libgcj/24170. + + [Aurelien Jarno] + * kbsd-gnu-ada.dpatch: new patch to fix build on GNU/kFreeBSD. + + [Ludovic Brenta] + * debian/rules.defs: Temporarily disable the testsuite when building gnat. + * debian/patches/libffi-configure.dpatch: run autoconf in the top-level + directory, where we've changed configure.ac; not in src/gcc. + * debian/patches/ada-sjlj.dpatch: do not run autoconf since we don't + change configure.ac. + * debian/control.m4 (gnat-4.3-doc): conflict with gnat-4.[12]-doc. + Closes: #464801. + + -- Matthias Klose Tue, 19 Feb 2008 23:20:45 +0000 + +gcc-4.3 (4.3-20080202-1) unstable; urgency=low + + [ Matthias Klose ] + * Update to SVN 20080202 from the trunk. + - Fix PR c/35017, pedwarns about valid code. Closes: #450506. + - Fix PR target/35045, wrong code generation with -O3 on i386. + Closes: #463478. + * gcj-4.3: On armel depend on g++-4.3. + * Re-enable build of libobjc_gc, using the internal version of boehm-gc. + Closes: #212248. + + [Ludovic Brenta] + * debian/patches/ada-default-project-path.dpatch, + debian/patches/ada-gcc-name.dpatch, + debian/patches/ada-symbolic-tracebacks.dpatch, + debian/patches/ada-link-lib.dpatch, + debian/patches/ada-libgnatvsn.dpatch, + debian/patches/ada-libgnatprj.dpatch, + debian/patches/ada-sjlj.dpatch: adjust to GCC 4.3. + * debian/README.gnat, debian/TODO, + debian/rules.d/binary-ada.mk: merge from gnat-4.2. + * debian/README.maintainers: add instructions for patching GCC. + * debian/patches/ada-driver.dpatch: remove, no longer used. + * debian/patches/libffi-configure.dpatch: do not patch the top-level + configure anymore; instead, rerun autoconf. This allows removing the + patch cleanly. + * debian/rules2: use gnatgcc as the bootstrap compiler, not gcc-4.2. + + -- Matthias Klose Sat, 02 Feb 2008 19:58:48 +0100 + +gcc-4.3 (4.3-20080127-1) unstable; urgency=low + + [ Matthias Klose ] + * Update to SVN 20080126 from the trunk. + * Tighten build dependency on doxygen. + * Update libstdc++ patches to current svn. + * gij-4.3: Provide java*-runtime-headless instead of java*-runtime. + + [ Aurelien Jarno] + * debian/multiarch.inc: change mipsel64 into mips64el. + + -- Matthias Klose Sun, 27 Jan 2008 01:33:35 +0100 + +gcc-4.3 (4.3-20080116-1) unstable; urgency=medium + + * Update to SVN 20080116 from the trunk. + * Update debian/watch. + * Build libgomp documentation without building libgomp. Addresses: #460660. + * Handle lzma compressed tarballs. + * Fix dependency generation for the gcc-snapshot package: Addresses: #454667. + * Restore lost chunk in libjava-subdir.dpatch. + + -- Matthias Klose Wed, 16 Jan 2008 20:33:50 +0100 + +gcc-4.3 (4.3-20080112-1) unstable; urgency=low + + * Update to SVN 20080112 from the trunk. + * Tighten build-dependency on dpkg-dev (closes: #458894). + * Update symbol definitions for alpha. + * Build-depend on libmpfr-dev for all source packages. + + -- Matthias Klose Sun, 13 Jan 2008 00:40:28 +0100 + +gcc-4.3 (4.3-20080104-1) unstable; urgency=low + + * Update to SVN 20080104 from the trunk. + * Update symbol definitions for alpha, hppa, ia64, mips, mipsel, powerpc, + s390, sparc. + + -- Matthias Klose Fri, 04 Jan 2008 07:34:15 +0100 + +gcc-4.3 (4.3-20080102-1) unstable; urgency=low + + [ Matthias Klose ] + * Update to SVN 20080102 from the trunk. + - Fix 64bit biarch builds (addresses: #447443). + * debian/rules.d/binary-java.mk: Reorder packaging to get shlibs + dependencies right. + * Use lib instead of lib64 as multilibdir on amd64 and ppc64. + * Build the java plugin always using libxul-dev. + * Add libgcj_bc to the libgcj9-0 shlibs file. + * Add symbol files for libgcc1, lib32gcc1, lib64gcc1, libstdc++6, + lib32stdc++6, lib64stdc++6, libgomp1, lib32gomp1, lib64gomp1, libffi4, + lib32ffi4, lib64ffi4, libobjc2, lib32objc2, lib64objc2, libgfortran3, + lib32gfortran3, lib64gfortran3. + Adjust build dependencies on dpkg-dev and debhelper. + * Do not build the java packages from the gcc-4.3 source package. + + [ Aurelien Jarno ] + * Disable amd64-biarch patch on kfreebsd-amd64. + + -- Matthias Klose Wed, 02 Jan 2008 23:48:14 +0100 + +gcc-4.3 (4.3-20071124-1) experimental; urgency=low + + [ Matthias Klose ] + * Update to SVN 20071124 from the trunk. + * Fix dependencies of lib*gcc1-dbg packages. + * gcjwebplugin: Fix path of the gcj subdirectory. LP: #149792. + * gij-hppa: Call gij-4.2, not gij-4.1. Addresses: #446282. + * Don't run the testsuite on hppa when expect-tcl8.3 is not available. + * Fix libgcc1-dbg doc directory symlink. Closes: #447969. + + [ Aurelien Jarno ] + * Update kbsd-gnu patch. + * Remove kbsd-gnu-ada patch (merged upstream). + + -- Matthias Klose Sat, 24 Nov 2007 13:14:29 +0100 + +gcc-4.3 (4.3-20070930-1) experimental; urgency=low + + [Matthias Klose] + * Update to SVN 20070929 from the trunk. + * Update debian patches to the current trunk. + * Regenerate the control file. + * On powerpc-linux-gnu and i486-linux-gnu cross-compile the 64bit + multilib libraries to allow a sucessful build on 32bit kernels + (our buildds). Although we won't get 64bit test results this way ... + * Remove the build dependency on expect-tcl8.3. + * Fix MULTILIB_OSDIRNAMES for cross builds targeted for amd64 and ppc64. + * When -fstack-protector is the default (Ubuntu), do not enable + -fstack-protector when -nostdlib is specified. LP: #77865. + * Always set STAGE1_CFLAGS to -g -O2, only pass other settings + when configuring when required. + * Configure --with-bugurl, adjust the bug reporting instructions. + * gcc-4.3: Install new cpuid.h header. + * Fix installation of the s390 libstdc++ biarch headers. + * Install new bmmintrin.h, mmintrin-common.h headers. + * Build -dbg packages for libgcc, libgomp, libmudflap, libffi, libobjc, + libgfortran. + * Downgrade libmudflap-dev recommendation to a suggestion. Closes: #443929. + + [Riku Voipio] + * Configure armeabi with --disable-sjlj-exceptions. + * armel testsuite takes ages, adjust build accordingly. + + -- Matthias Klose Sun, 30 Sep 2007 12:06:02 +0200 + +gcc-4.3 (4.3-20070902-1) experimental; urgency=low + + * Upload to experimental. + + -- Matthias Klose Sun, 2 Sep 2007 20:51:16 +0200 + +gcc-4.3 (4.3-20070902-0ubuntu1) gutsy; urgency=low + + * Update to SVN 20070902 from the trunk. + * Fix the build logic for the Ubuntu i386 buildd; we can't build biarch. + * Only remove libgcj9's classmap db if no other libgcj9* library is + installed. + * A lot more updates for 4.3 packaging. + + -- Matthias Klose Sat, 01 Sep 2007 21:01:43 +0200 + +gcc-4.3 (4.3-20070901-0ubuntu1) gutsy; urgency=low + + * Update to SVN 20070901 from the trunk. + * First gcc-4.3 package build. + - Update patches for the *-linux-gnu builds. + - Update build files for 4.3. + * Add proposed patch for PR middle-end/33029. + * gcj-4.3: Install gc-analyze. + + -- Matthias Klose Sat, 1 Sep 2007 20:52:16 +0200 + +gcc-4.2 (4.2.2-7) unstable; urgency=low + + * Update to SVN 20080114 from the ubuntu/gcc-4_2-branch. + - Fix PR middle-end/34762. LP: #182412. + * Update debian/watch. Closes: #459259. Addresses: #459391, #459392. + * Build libgomp documentation without building libgomp. Closes: #460660. + * Restore gomp development files. Closes: #460736. + + -- Matthias Klose Mon, 14 Jan 2008 23:20:04 +0100 + +gcc-4.2 (4.2.2-6) unstable; urgency=low + + * Update to SVN 20080113 from the ubuntu/gcc-4_2-branch. + * Adjust build-dependency on debhelper, dpkg-dev. + * Fix gnat-4.2 build failure (addresses: #456867). + * Do not build packages built from the gcc-4.3 source. + + -- Matthias Klose Sun, 13 Jan 2008 13:48:49 +0100 + +gcc-4.2 (4.2.2-5) unstable; urgency=low + + [Matthias Klose] + * Update to SVN 20080102 from the ubuntu/gcc-4_2-branch. + - Fix PR middle-end/32889, ICE in delete_output_reload. + Closes: #444873, #445336, #451047. + - Fix PR target/34215, ICE in assign_386_stack_local. + Closes: #446714, #452451. + - Fix PR target/33848, reference to non-existent label at -O1 on + mips/mipsel. Closes: #441633. + * debian/rules.d/binary-java.mk: dpkg-shlibsdeps can't handle the dangling + symlink to libgcj_bc.so.1. Remove it temporarily. + * Add libgcj_bc to the libgcj8-1 shlibs file. + * Fix build failures for gnat-4.2, gpc-4.2, gdc-4.2 introduced by recent + gdc changes. + * Add symbol files for libgcc1, lib32gcc1, lib64gcc1, libstdc++6, + lib32stdc++6, lib64stdc++6, libgomp1, lib32gomp1, lib64gomp1, libffi4, + lib32ffi4, lib64ffi4, libobjc2, lib32objc2, lib64objc2. Adjust build + dependencies on dpkg-dev and debhelper. + Adjust build-dependency on dpkg-dev. + + [Arthur Loiret] + * Fix gdc-4.2 build failure. + * Update gdc to upstream SVN 20071124. + - d-bi-attrs: Support attributes on declarations in other modules. + - d-codegen.cc (IRState::attributes): Support constant declarations as + string arguments. + * Enable libphobos: + - gdc-4.2.dpatch: Fix ICEs. + - gdc-4.2-build.dpatch: Update, make it cleaner. + * Install libphobos in the private gcc lib dir. + * gdc-4.2.dpatch: Update from gdc-4.1.dpatch. + - gcc/tree-sra.c: Do not use SRA on structs with aliased fields created + for anonymous unions. + - gcc/predict.c: Add null-pointer check. + * debian/rules.defs: Disable phobos on hurd-i386. + - gdc-hurd-proc_maps.dpatch: Remove. + + -- Matthias Klose Wed, 02 Jan 2008 15:49:30 +0100 + +gcc-4.2 (4.2.2-4) unstable; urgency=low + + [Matthias Klose] + * Update to SVN 20071123 from the ubuntu/gcc-4_2-branch. + - Fix PR middle-end/34130, wrong code with some __builtin_abs expressions. + Closes: #452108. + * Don't run the testsuite on hppa when expect-tcl8.3 is not available. + * Fix libgcc1-dbg doc directory symlink. Closes: #447969. + * Use gcc-multilib as build-dependency instead of gcc-4.1-mulitlib. + * Support for fast-math on hurd-i386 (Michael Banck). Closes: #451520. + * Fix again profiling support on the Hurd (Thomas Schwinge). Closes: #434937. + + [Arthur Loiret] + * Merge gdc-4.1 patches and build infrastructure: + - gdc-4.2.dpatch: Add, setup gcc-4.2.x for D. + - gdc-4.2-build.dpatch: Add, update gdc builtins and driver objs. + - gdc-driver-zlib.dpatch: Add, use up-to-date system zlib. + - gdc-driver-defaultlib.dpatch: Add, add -defaultlib/-debuglib switches. + - gdc-driver-nophobos.dpatch: Add, disable libphobos when unsupported. + - gdc-libphobos-build.dpatch: Add, enable libphobos build when supported. + - gdc-fix-build.dpatch: Add, fix build on non-biarched 64bits targets. + - gdc-libphobos-std-format.dpatch: Add, replace assert when formating a + struct on non-x86_64 archs by a FormatError. + - gdc-arm-unwind_ptr.dpatch: Add, fix build on arm. + - gdc-mips-gcc-config.dpatch: Add, fix build on mips. + - gdc-hurd-proc_maps.dpatch: Add, fix build on hurd. + + -- Matthias Klose Sat, 24 Nov 2007 12:01:06 +0100 + +gcc-4.2 (4.2.2-3) unstable; urgency=low + + * Update to SVN 20071014 from the ubuntu/gcc-4_2-branch. + - Fix build failure in libjava on mips/mipsel. + * Make 4.2.2-2 a requirement for frontends built from separate sources. + Addresses: #446596. + + -- Matthias Klose Sun, 14 Oct 2007 14:13:00 +0200 + +gcc-4.2 (4.2.2-2) unstable; urgency=low + + * Update to SVN 20071011 from the ubuntu/gcc-4_2-branch. + - Fix PR middle-end/33448, ICE in create_tmp_var. Closes: #439687. + - Remove debian/patches/pr31899.dpatch, applied upstream. + - Remove debian/patches/pr33381.dpatch, applied upstream. + * gij-hppa: Call gij-4.2, not gij-4.1. Addresses: #446282. + + -- Matthias Klose Thu, 11 Oct 2007 23:41:52 +0200 + +gcc-4.2 (4.2.2-1) unstable; urgency=low + + * Update to SVN 20071008 from the ubuntu/gcc-4_2-branch, corresponding + to the GCC-4.2.2 release. + * Fix dependencies of lib*gcc1-dbg packages. Closes: #445190. + * Remove libjava-armeabi patch integrated upstream. + * gcjwebplugin: Fix path of the gcj subdirectory. LP: #149792. + * Apply proposed patch for PR debug/31899. Closes: #445268. + + * Add niagara2 optimization support (David Miller). + + -- Matthias Klose Mon, 08 Oct 2007 21:12:41 +0200 + +gcc-4.2 (4.2.1-6) unstable; urgency=high + + [Matthias Klose] + * Update to SVN 20070929 from the ubuntu/gcc-4_2-branch. + - Fix PR middle-end/33382, ICE (closes: #441481). + - Fix PR tree-optimization/28544 (4.2.1, closes: #380482). + - Fix PR libffi/28313, port to mips64 (closes: #358235). + * Fix PR tree-optimization/33099, PR tree-optimization/33381, + wrong code generation with VRP/SCEV. Closes: #440545, #443576. + * Update Hurd fixes (Samuel Thibault). + * When -fstack-protector is the default (Ubuntu), do not enable + -fstack-protector when -nostdlib is specified. LP: #77865. + * Add -g to BOOT_CFLAGS, set STAGE1_CFLAGS to -g -O, only pass + other settings when required. + * Fix installation of the s390 libstdc++ biarch headers. + * Allow the powerpc build on a 32bit machine (without running the + biarch testsuite). + * Build -dbg packages for libgcc, libgomp, libmudflap, libffi, libobjc, + libgfortran. + * Drop the build dependency on expect-tcl8.3 (the hppa testsuite seems + to complete sucessfully with the expect package). + * Downgrade libmudflap-dev recommendation to a suggestion. Closes: #443929. + + * Closing reports reported against gcc-4.1 and fixed in gcc-4.2: + - General + + PR rtl-optimization/21299, error in invalid asm statement. + Closes: #380121. + - C++ + + PR libstdc++/19664, libstdc++ headers have pop/push of the visibility + around the declarations (closes: #307207, #324290, #423547). + + PR c++/21581, functions in anonymous namespaces default to "hidden" + visibility (closes: #278310). + + PR c++/4882, specialization of inner template using outer template + argument (closes: #269513). + + PR c++/6634, wrong parsing of "long long double" (closes: #247112). + + PR c++/10891, code using dynamic_cast causes segfaults when -fno-rtti + is used (closes: #188943). + + PR libstdc++/14991, stream::attach(int fd) porting entry out-of-date. + Closes: #178561. + + PR libstdc++/31638, string usage leads to warning with -Wcast-align. + Closes: #382153. + + Fix memory hog seen with g++-4.1. Closes: #411234. + - Fortran + + PR fortran/29228, ICE in gfc_trans_deferred_array (closes: #387222). + + PR fortran/24285, allow dollars everywhere in format (closes: #324600). + + PR libfortran/28354, 0.99999 printed as 0. instead of 1. by + format(f3.0). Closes: #397671. + + Fix ICE in gfc_get_extern_function_decl (closes: #396292). + - Architecture specific: + - i386 + + Fix error with -m64 (unable to find a register to spill in class + 'DIREG'). Closes: #430049. + - mips + + Fix ICE in tsubst (closes: #422303). + - s390 + + Fix ICE (segmentation fault) building dcmtk (closes: #435736). + + [Roman Zippel] + * Update the m68k patches. + + [Riku Voipio] + * Configure armeabi with --disable-sjlj-exceptions. + * armel testsuite takes ages, adjust build accordingly. + + [Ludovic Brenta and Xavier Grave] + * Add a version of the Ada run-time library using the setjump/longjump + exception handling mechanism (static library only). Use with + gnatmake --RTS=sjlj. Particularly useful for distributed (Annex E) + programs. + * Restore building libgnatvsn-dev and libgnatprj-dev. + + -- Matthias Klose Sat, 29 Sep 2007 11:19:40 +0200 + +gcc-4.2 (4.2.1-5) unstable; urgency=low + + * Update to SVN 20070825 from the ubuntu/gcc-4_2-branch. + - Fix PR debug/32610, LP: #121911. + * Apply proposed patches: + - Improve debug info for packed arrays with constant bounds + (PR fortran/22244). + - Fix ICE in rtl_for_decl_init on const vector initializers + (PR debug/32914). + - Fix (neg (lt X 0)) optimization (PR rtl-optimization/33148). + - Fix libgcc.a(tramp.o) on ppc32. + - Fix redundant reg/mem stores/moves (PR target/30961). + * Update the -fdirectives-only backport. + * gappletviewer-4.2: Include the gcjwebplugin binary. LP: #131114. + * Update gpc patches and build support (not yet enabled). + * Fix gcc-snapshot hppa64 install target. + * Set the priority of the source package to optional. + * Remove .la files from the biarch libstdc++ debug packages, + conflict with the 3.4 package. Closes: #440490. + + [Arthur Loiret] + * Add build support for GDC. + + -- Matthias Klose Mon, 27 Aug 2007 01:39:32 +0200 + +gcc-4.2 (4.2.1-4) unstable; urgency=medium + + * gcc-4.2: Include missing std*.h header files. + + -- Matthias Klose Tue, 14 Aug 2007 11:14:35 +0200 + +gcc-4.2 (4.2.1-3) unstable; urgency=low + + * Update to SVN 20070812 from the ubuntu/gcc-4_2-branch. + * debian/rules.defs: Fix typo, run the checks in biarch mode too. + * libgcj8-awt: Loosen dependency on gcj-4.2-base. + * Build only needed multilib libraries when building as gcj or gnat. + * Always build biarch libgomp in biarch builds. + * debian/rules2: Adjust testsuite logs files for logwatch.sh. + * Include header files from $/gcc_lib_dir)/include-fixed. + * Backport from trunk: -fdirectives-only (when preprocessing, handle + directives, but do not expand macros). + * Report an ICE to apport (if apport is available and the environment + variable GCC_NOAPPORT is not set) + * Fix gcj build failure on the Hurd (Samuel Thibault). Closes: #437470. + + -- Matthias Klose Sun, 12 Aug 2007 21:11:00 +0200 + +gcc-4.2 (4.2.1-2) unstable; urgency=low + + [Matthias Klose] + * Update to SVN 20070804 from the ubuntu/gcc-4_2-branch (20070804): + - Merge gcc-4_2-branch SVN 20070804. + - Imported classpath CVS 20070727. + - Bump the libgcj soname, add conflict with java-gcj-compat (<< 1.0.76-4). + - Remove patches integrated in the branches: pr32862. + - Update patches: libjava-subdir, libjava-jar. + - Add regenerated class files: svn-class-updates. + + * Fix profiling support on the Hurd (Michael Casadeval). Closes: #434937. + * Fix build on kfreebsd-amd64 (Aurelien Jarno). Closes: #435053. + * Period of grace is over, run the testsuite on m68k-linux again. + * Update infrastructure for the gcc-source package (Bastian Blank). + * Update profiling on the Hurd (Samuel Thibault, Michael Casadevall). + Closes: #433539. + * debian/rules2: Allow DEB_BUILD_OPTIONS=parallel= to overwrite NJOBS. + * Allow lang=, nolang= in DEB_BUILD_OPTIONS; deprecating + WITHOUT_LANG, and WITHOUT_CHECK. + * debian/rules.defs, debian/rules.conf: Cache some often used macros. + + * Preliminary work: Enable Java for ARM EABI (Andrew Haley), build + libffi for armel. + * gcj: Don't build the browser plugin in gcc-snapshot builds to get + rid of the xulrunner dependency. + * gcjwebplugin: Register for more browsers (package currently not built). + * gij/boehm-gc: Use sysconf as fallback, if reading /proc/stat fails. + Closes: #422469. + * libjava: Avoid dependency on MAXHOSTNAMELEN (Samuel Thibault). + * gcj: On arm and armel, use the ecj1 binary built from the ecj package. + * gcj: Don't require javac without java maintainer mode, remove build + dependencies on gcj and ecj, add build dependency on libecj-java. + + -- Matthias Klose Sun, 05 Aug 2007 15:56:07 +0200 + +gcc-4.2 (4.2.1-1) unstable; urgency=medium + + [Ludovic Brenta] + * debian/patches/ada-symbolic-tracebacks.c: remove all trace of + the function convert_addresses from adaint.c. Fixes FTBFS on alpha, + s390 and possibly other platforms. Closes: #433633. + * debian/control.m4: list myself as uploader if the source package name + is gnat. Relax build-dependency on gnat-4.2-source. + * debian/control.m4, debian/rules.conf: Build-depend on libmpfr-dev only + if building Fortran. + + [Matthias Klose] + * debian/rules.conf: Fix breakage of Fortran build dependencies introduced + by merge of the Ada bits. + * Don't include the gccbug binary anymore in the gcc package; upstream bug + reports should be reported to the upstream bug tracker at + http://gcc.gnu.org/bugzilla. + * Don't build and test libjava for the biarch architecture. + * Install gappletviewer man page. Addresses: #423094. + * debian/patches/m68k-java.dpatch: Readd. + * gjar: support @ arguments. + * Update to SVN 20070726 from the ubuntu/gcc-4_2-branch. + - Fix mips/mipsel builds. + * libmudflap0: Fix update leaving an empty doc dir. Closes: #428306. + * arm/armel doesn't have ssp support. Closes: #433172. + * Update kbsd-gnu-ada patch (Aurelien Jarno): Addresses: #434754. + * gcj-4.2: Build depend on gcj-4.2 to build the classpath examples files + for the binary-indep target. + * Fix PR java/32862, bugs in EnumMap implementation. Addresses: #423160. + + [Arthur Loiret] + * Fix cross builds targeting x86_64. Closes: LP: #121834. + + -- Matthias Klose Thu, 26 Jul 2007 21:46:03 +0200 + +gcc-4.2 (4.2.1-0) unstable; urgency=low + + [Matthias Klose] + * Update to SVN 20070719 from the ubuntu/gcc-4_2-branch, corresponding + to the GCC-4.2.1 release. + - debian/patches/arm-gij.dpatch: Remove. Closes: #433714. + * Apply proposed patch for PR tree-optimization/32723. + * Tighten build dependency on libmpfr-dev. + * On ia64, apply proposed patch for PR target/27880. Closes: #433719. + + [Hector Oron] + * Fix cross and reverse-cross builds. Closes: #432356. + + -- Matthias Klose Thu, 19 Jul 2007 17:59:37 +0200 + +gnat-4.2 (4.2-20070712-1) unstable; urgency=low + + * debian/rules.d/binary-ada.mk, debian/control.m4: + disable building libgnatvsn-dev and libgnatprj-dev, as they conflict + with packages from gnat-4.1. Will reenable them for the transition to + gnat-4.2. + * Upload as gnat-4.2. Closes: #432525. + + -- Ludovic Brenta Sat, 14 Jul 2007 15:12:34 +0200 + +gcc-4.2 (4.2-20070712-1) unstable; urgency=high + + [Matthias Klose] + * Update to SVN 20070712 from the ubuntu/gcc-4_2-branch. + - 4.2.1 RC2, built from SVN. + - same as gcc-4_2-branch, plus backport of gcc/java, boehm-gc, libffi, + libjava, zlib from the trunk. + - debian/patches/arm-libffi.dpatch: Remove. + - Fixes ICE in update_equiv_regs. Closes: #432604. + * debian/control.m4: Restore build dependency on dejagnu. + * debian/patches/arm-gij.dpatch: Update. + * i386-biarch.dpatch: Update for the backport for PR target/31868. + Closes: #432599. + + -- Matthias Klose Fri, 13 Jul 2007 08:07:51 +0200 + +gcc-4.2 (4.2-20070707-1) unstable; urgency=low + + [Matthias Klose] + * Update to SVN 20070707 from the ubuntu/gcc-4_2-branch. + - debian/patches/libjava-soname.dpatch: Remove. + - debian/patches/disable-configure-run-check.dpatch: Update. + * Only suggest multilib packages on multilib architectures. + * Point ICE messages to the 4.2 docdir. + * Explicitely use fastjar to build gcj-4.1. Addresses: #416001. + * Configure with --enable-libgcj on m32r (Kazuhiro Inaoka). + * Include the hppa64 cross compiler on hppa snapshot builds. + * debian/patches/arm-libffi.dpatch: Update. + * libgcj-doc: Include the generated documentation. + * Fix building the libjava/classpath examples. + * Support reverse cross builds (Neil Williams). Closes: #431086. + + -- Matthias Klose Sat, 07 Jul 2007 10:59:26 +0200 + +gcc-4.2 (4.2-20070627-1) unstable; urgency=high + + [Matthias Klose] + * Update to SVN gcc-4_2-branch/20070626. + * Update to SVN trunk/20070626 (gcc/java, libjava, libffi, boehm-gc). + * On mips*-linux, always imply -lpthread for -pthread (Thiemo Seufer). + Addresses: #428741. + * Fix libstdc++ cross builds (Arthur Loiret). Closes: #430395. + * README.Debian: Point to debian-toolchain for general toolchain topics. + * Use the generated locales for the libstdc++ build to fix the setting + of the gnu locale model. Closes: #428926, #429660. + * For ix86 lpia targets, configure --with-tune=i586. + * Make build dependency on gcc-4.1-multilib architecture specific. + * Do not ignore bootstrap comparision failure on ia64. + + [Ludovic Brenta] + * ada-link-lib.dpatch: update to apply cleanly on GCC 4.2. + * ada-libgnat{vsn,prj}.dpatch: adjust to GCC 4.2. Reenable in rules.patch. + * rules.conf: do not build libgomp as part of gnat-4.2. + * rules.conf, control.m4: build-depend on libz-dev, lib32z-dev or + lib64-dev only when building Java. + * rules2, rules.defs: $(with_mudflap): remove, use $(with_libmudflap) only. + * config.m4, binary-ada.mk: tighten dependencies; no Ada package depends + on gcc-4.2-base anymore. + * TODO: rewrite. + * README.gnat: include in gnat-4.2-base. Remove outdated information. + * README.maintainers: new. Include in gnat-4.2-base. + + [Hector Oron] + * Merge DEB_CROSS_INDEPENDENT with DEB_CROSS. + * Disables libssp0 for arm and armel targets when cross compiling. + * Updates README.cross. + * Fixes linker mapping problem on binary-libstdcxx-cross.mk. Closes: #430688. + + -- Matthias Klose Wed, 27 Jun 2007 21:54:08 +0200 + +gcc-4.2 (4.2-20070609-1) unstable; urgency=low + + * Update to SVN gcc-4_2-branch/20070609. + - Remove patches integrated upstream: pr30052, hppa-caller-save-pic-tls. + * Update to SVN trunk/20070609 (gcc/java, libjava, libffi, boehm-gc). + - Remove patches integrated upstream: libjava-qt-peer, + classpath-config-guess. + * Do not build with --enable-java-maintainer-mode. + * debian/rules.patch: Comment out m68k-peephole, requires m68k-split_shift. + * Add target to apply patches up to a specific patch (Wouter Verhelst). + Closes: #424855. + * libstdc++6-4.2-*: Add conflicts with 4.1 packages. Closes: #419511. + * Apply proposed fix for PR target/28102. Closes: #426905. + * Fix build failure for cross compiler builds (Jiri Palecek). Closes: #393897. + * Update build macros for kfreebsd-amd64. Closes: #424693. + + -- Matthias Klose Sat, 9 Jun 2007 06:54:13 +0200 + +gcc-4.2 (4.2-20070528-1) unstable; urgency=low + + * Update to SVN gcc-4_2-branch/20070528. + * Add backport for PR middle-end/20218. + * Add proposed PTA solver backport, PR tree-optimization/30052. + * Add backport for PR target/31868. + * Reenable the testsuite for arm, mips, mipsel. + + -- Matthias Klose Mon, 28 May 2007 09:03:04 +0200 + +gcc-4.2 (4.2-20070525-1) unstable; urgency=low + + * Update to SVN gcc-4_2-branch/20070525. + * Update to SVN trunk/20070520 (gcc/java, libjava, libffi, boehm-gc). + * Do not explicitely configure for __cxa_atexit. + * libstdc++6-4.2-doc: Conflict with libstdc++6-4.1-doc. Closes: #424896. + * Update m68k patches: + - Remove patches applied upstream: m68k-jumptable, m68k-gc, + - Reenable patches: m68k-save_pic, m68k-dwarf, m68k-limit_reload, + m68k-prevent-qipush, m68k-peephole, m68k-return, m68k-sig-unwind, + m68k-align-code m68k-align-stack, m68k-symbolic-operand, + m68k-bitfield-offset. + - Update: m68k-return, m68k-secondary-addr-reload, m68k-notice-move + m68k-secondary-addr-reload, m68k-notice-move. + - TODO: m68k-split_shift, m68k-dwarf3, m68k-fpcompare. + * Update the kfreebsd and arm patches (Aurelien Jarno). Closes: #425011. + * Temporarily disable the testsuite on slow architectures to get the + package built soon. + + -- Matthias Klose Fri, 25 May 2007 07:14:36 +0200 + +gcc-4.2 (4.2-20070516-1) unstable; urgency=low + + * Update to SVN gcc-4_2-branch/20070516. + * Update to SVN trunk/20070516 (gcc/java, libjava, libffi, boehm-gc). + * Merge changes from gcc-4.1_4.1.2-7. + * Update NEWS files. + + -- Matthias Klose Wed, 16 May 2007 02:33:57 +0200 + +gcc-4.2 (4.2-20070502-1) unstable; urgency=low + + * Update to SVN gcc-4_2-branch/20070502. + - Remove pr11953 patch, integrated upstream. + * Update to SVN trunk/20070502 (gcc/java, libjava, libffi, boehm-gc). + * Adjust tetex/tex-live build dependency. + * Fix gobjc-4.2's, gobjc++-4.2's dependency on libobjc2. + * Tighten (build) dependency on binutils. Addresses: #421197. + * gfortran-4.2: Depend on libgfortran2, provide the libgfortran.so + symlink. Adresses: #421362. + * Build-depend on gcc-multilib [amd64 i386 powerpc ppc64 s390 sparc]. + * (Build-) depend on glibc (>= 2.5) for all architectures. + * Remove libssp packages from the control file. + + -- Matthias Klose Wed, 2 May 2007 18:46:57 +0200 + +gcc-4.2 (4.2-20070405-1) experimental; urgency=low + + * Update to SVN gcc-4_2-branch/20070405. + * Update to SVN trunk/20070405 (gcc/java, libjava, libffi, boehm-gc). + * gcc-4.2-hppa64: Don't depend on libc6-dev. + * Robustify setting of make's -j flag. Closes: #410919. + * gcc-snapshot: Use the install_snap_stamp target for installation. + + -- Matthias Klose Thu, 5 Apr 2007 23:56:35 +0200 + +gcc-4.2 (4.2-20070307-1) experimental; urgency=low + + * Update to SVN gcc-4_2-branch/20070307. + * Update to SVN trunk/20070307 (gcc/java, libjava, libffi, boehm-gc). + * Build gnat from separate sources. + * Merge changes from gcc-4.1-4.1.2-1. + * Install into /usr/lib/gcc//4.2, to ease upgrades + between subminor versions. + * Configure --with-gxx-include-dir=/usr/include/c++/4.2 + + -- Matthias Klose Thu, 8 Mar 2007 02:52:00 +0100 + +gcc-4.2 (4.2-20070210-1) experimental; urgency=low + + * Merge Java backport from Ubuntu: + - Update to SVN gcc-4_2-branch/20070210. + - Update to SVN trunk/20070210 (gcc/java, libjava). + - Backout trunk specific gcc/java changes. + - Build-depend on gcj-4.1 and ecj-bootstrap. + - gcj-4.2: Depend on ecj-bootstrap, recommend ecj-bootstrap-gcj. + - Merge libgcj8-awt-gtk back into libgcj8-awt; the Qt peers + are disabled by upstream again. + - Generate manual pages for the classpath tools from the classpath + documentation. + - Adopt packaging for the merged libjava. + - Update patches for the merged libjava: libjava-lib32-properties, + i386-biarch, reporting, libjava-soname, libjava-subdir, + libjava-lib32subdir. + - Remove obsolete patches: libjava-plugin-binary, libjava-ia32fix, + libstdc++-docfixes. + + * Set priority of development packages to optional. + * debian/libgcjGCJ.postrm: Don't fail on purge when directories + don't exist anymore. Closes: #406017. + * debian/patches/gcc-textdomain.dpatch: Update for 4.2. + * Generate and install libgomp docs into gcc-4.2-doc. + + -- Matthias Klose Sat, 10 Feb 2007 16:53:11 +0100 + +gcc-4.2 (4.2-20070105-1) experimental; urgency=low + + * Update to SVN 20070105. + * Add tetex-extra to Build-Depend-Indep (libstd++ doxygen docs), + fix doxygen build (libstdc++-docfixes.dpatch). + * Enable parallel build by default on SMP machines. + + -- Matthias Klose Fri, 5 Jan 2007 22:42:18 +0100 + +gcc-4.2 (4.2-20061217-1) experimental; urgency=low + + * Update to SVN 20061217. + * Merge changes from gcc-4.1_4.1.1-16 to gcc-4.1_4.1.1-21. + * Update patches to the current branch. + * Add multilib packages for gcc, g++, gobjc, gobjc++, gfortran. + * Link using --hash-style=gnu (alpha, amd64, ia64, i386, powerpc, ppc64, + s390, sparc). + + -- Matthias Klose Sun, 17 Dec 2006 15:54:54 +0100 + +gcc-4.2 (4.2-20061003-1) experimental; urgency=low + + * libgcj.postinst: Remove /var/lib/gcj-4.2 on package removal. + * Don't install backup files in the doc directory, only one gcc-4.1 + upgrade was broken. Closes: #389366. + * Merge gcc-biarch-generic.dpatch into i386-biarch.dpatch. + * Update link-libs.dpatch. + * Merge libgfortran2-dev into gfortran-4.2. + + -- Matthias Klose Tue, 3 Oct 2006 16:26:38 +0000 + +gcc-4.2 (4.2-20060923-1) experimental; urgency=low + + * Update to SVN 20060923. + * Remove patches applied upstream: kbsd-gnu-java, kbsd-gnu. + + -- Matthias Klose Sat, 23 Sep 2006 15:11:36 +0200 + +gcc-4.2 (4.2-20060905-1) experimental; urgency=low + + * Update to SVN 20060905. + * Merge changes from gcc-4.1 (4.1.1-10 - 4.1.1-12). + * Move gomp development files into gcc and gfortran. + * Build-depend on binutils (>= 2.17). + + -- Matthias Klose Tue, 5 Sep 2006 03:33:00 +0200 + +gcc-4.2 (4.2-20060818-1) experimental; urgency=low + + * Update to SVN 20060818. + - libjava-libgcjbc.dpatch: Remove, applied upstream. + * Merge changes from the Ubuntu gcj-4.2 package: + - libjava-soname.dpatch: Remove, applied upstream. + - libjava-native-libdir.dpatch: update. + - libffi-without-libgcj.dpatch: Remove, new libffi-configure to + enable --disable-libffi. + - Changes required for the classpath-0.92 update: + - New packages gappletviewer-4.2, gcjwebplugin-4.2. + - gij-4.2: Add keytool alternative. + - gcj-4.2: Add jarsigner alternative. + - libgcj8-dev: Remove conflicts with older libgcjX-dev packages. + - lib32gcj8: Populate the /usr/lib32/gcj-4.2 directory. + - libjava-library-path.dpatch: + - When running the i386 binaries on amd64, look in + /usr/lib32/gcj-x.y and /usr/lib32/jni instead. + - Add /usr/lib/jni to java.library.path. Adresses: #364820. + - Add more debugging symbols to libgcj8-dbg. Adresses: #383705. + - Fix and renable the biarch build for sparc. + * Disable gnat for alpha, fails to build. + * Configure without --enable-objc-gc, fails to build. + + -- Matthias Klose Sat, 19 Aug 2006 18:25:50 +0200 + +gcc-4.2 (4.2-20060709-1) experimental; urgency=low + + * Test build, SVN trunk 20060709. + * Merge libssp0-dev into gcc-4.1 (-fstack-protector is a common option). + * Rename libmudflap0-dev to libmudflap0-4.2-dev. + * Ignore compiler warnings when checking whether compiler driver understands + Ada fails. + * Merge changes from the gcc-4.1 package. + + -- Matthias Klose Sun, 9 Jul 2006 14:28:03 +0200 + +gcc-4.2 (4.2-20060617-1) experimental; urgency=low + + * Test build, SVN trunk 20060617. + + [Matthias Klose] + * Configure using --enable-objc-gc, using the internal boehm-gc. + * Build-depend on bison (>= 1:2.3). + * Build the QT based awt peer library, not yet the same functionality + as the GTK based peer library. + * Update libjava-* patches. + + [Ludovic Brenta] + * Do not provide the symbolic link /usr/bin/gnatgcc; this will now + be provided by package gnat from the source package gcc-defaults. + * debian/control.m4, debian/control (gnat): conflict with gnat (<< 4.1), + not all versions of gnat, since gcc-defaults will now provide gnat (= 4.1) + which depends on gnat-4.1. + + [Bastian Blank] + * Make it possible to overwrite arch per DEB_TARGET_ARCH and + DEB_TARGET_GNU_TYPE. + * Disable biarch only on request for cross builds. + * Use correct source directory for tarballs. + * Produce correct multiarch.inc for source builds. + + -- Matthias Klose Sat, 17 Jun 2006 19:02:01 +0200 + +gcc-4.2 (4.2-20060606-1) experimental; urgency=low + + * Test build, SVN trunk 20060606. + * Remove obsolete patches, update patches for 4.2. + * Update the biarch-include patches to work with mips-triarch. + * Disable Ada, not yet updated. + * New packages: libgomp*. + * Remove fastjar, not included upstream anymore. + + -- Matthias Klose Tue, 6 Jun 2006 10:52:28 +0200 + +gcc-4.1 (4.1.2-12) unstable; urgency=high + + * i386-biarch.dpatch: Update for the backport for PR target/31868. + Closes: #427185. + * m68k-libffi2.dpatch: Update. Closes: #425399. + + -- Matthias Klose Mon, 4 Jun 2007 23:53:23 +0200 + +gcc-4.1 (4.1.2-11) unstable; urgency=low + + * Update to SVN 20070601. + * Build the libmudflap0-dev package again. + * Don't build libffi, when the packages are not built. + + -- Matthias Klose Fri, 1 Jun 2007 23:55:22 +0200 + +gcc-4.1 (4.1.2-10) unstable; urgency=low + + * Regenerate the control file. + + -- Matthias Klose Wed, 30 May 2007 00:29:29 +0200 + +gcc-4.1 (4.1.2-9) unstable; urgency=low + + * Update to SVN 20070528. + * Don't build packages now built from the gcc-4.2 source (arm, m68k, + mips, mipsel). + * Add backport for PR middle-end/20218. + * Add backport for PR target/31868. + + -- Matthias Klose Tue, 29 May 2007 00:01:12 +0200 + +gcc-4.1 (4.1.2-8) unstable; urgency=low + + * Update to SVN 20070518. + * Don't build packages now built from the gcc-4.2 source. + + [ Aurelian Jarno ] + * Update libffi patch for ARM. Closes: #425011. + * arm-pr30486, arm-pr28516, arm-unbreak-eabi-armv4t: New. + * Disable FFI, Java, ObjC for armel. + + -- Matthias Klose Sun, 20 May 2007 10:31:24 +0200 + +gcc-4.1 (4.1.2-7) unstable; urgency=low + + * Update to SVN 20070514. + * Link using --hash-style=both on supported architectures. Addresses: #421790. + * On hppa, build ecjx as a native binary. + * note-gnu-stack.dpatch: Fix ARM comment marker (Daniel Jacobowitz). + Closes: #422978. + * Add build dependency on libxul-dev for *-freebsd. Closes: #422995. + * Update config.guess/config.sub and build gcjwebplugin on GNU/kFreeBSD + (Aurelian Jarno). Closes: #422995. + * Disable ssp on hurd-i386. Closes: #423757. + + -- Matthias Klose Mon, 14 May 2007 08:40:08 +0200 + +gcc-4.1 (4.1.2-6) unstable; urgency=low + + * Update libjava from the gcc-4.1 Fedora branch 20070504. + * gfortran-4.1: Fix the target of the libgfortran.so symlink. + Closes: #421362. + * Build-depend on gcc-multilib [amd64 i386 powerpc ppc64 s390 sparc]. + * Readd build dependency on binutils on arm. + * (Build-) depend on glibc (>= 2.5) for all architectures. + * Remove libssp packages from the control file. + * Fix wrong code generation on hppa when TLS variables are used. + Closes: #422421. + + -- Matthias Klose Sun, 6 May 2007 10:00:23 +0200 + +gcc-4.1 (4.1.2-5) unstable; urgency=low + + * Update to SVN 20070429. + * Update libjava from the gcc-4.1 Fedora branch 20070428. + * Update m68k patches: + - Remove pr25514, pr27736, applied upstream. + - Update m68k-java. + * Link using --hash-style=gnu/both. + * Tighten (build) dependency on binutils. Closes: #421197. + * gij-4.1: Add a conflict with java-gcj-compat (<< 1.0.69). + * gfortran-4.1: Depend on libgfortran1, provide the libgfortran.so + symlink. Closes: #421362. + * gcc-4.1, gcc-4.1-multilib: Fix compatibility symlinks. Closes: #421382. + * Temporarily remove build dependency on locales on arm, hppa, m68k, mipsel. + * Temporarily remove build dependency on binutils on arm. + * Fix FTBFS on GNU/kFreeBSD (Aurelian Jarno). Closes: #421423. + * gij-4.1 postinst: Create /var/lib/gcj-4.1. Closes: #421526. + + -- Matthias Klose Mon, 30 Apr 2007 08:13:32 +0200 + +gcc-4.1 (4.1.2-4) unstable; urgency=medium + + * Update to SVN 20070423. + - Remove pr11953, applied upstream. + - Fix ld version detection in libstdc++v3. + * Update libjava from the gcc-4.1 Fedora branch 20070423. + * Merge libgfortran1-dev into gfortran-4.1. + * Add multilib packages for gcc, g++, gobjc, gobjc++, gfortran. + * Don't link using --hash-style=gnu/both; loosen dependency on binutils. + * Don't revert the patch to fix PR c++/27227. + + -- Matthias Klose Mon, 23 Apr 2007 23:13:14 +0200 + +gcc-4.1 (4.1.2-3) experimental; urgency=low + + * Update to SVN 20070405. + * Update libjava from the gcc-4.1 Fedora branch 20070405. + * Robustify setting of make's -j flag. Closes: #414316. + * Only build the libssp packages, when building the common libraries. + * gcc-4.1-hppa64: Don't depend on libc6-dev. + + -- Matthias Klose Fri, 6 Apr 2007 00:28:29 +0200 + +gcc-4.1 (4.1.2-2) experimental; urgency=low + + * Update to SVN 20070306. + * Update libjava from the gcc-4.1 Fedora branch 20070306. + + [Matthias Klose] + * Don't install gij-wrapper anymore, directly register gij as a java + alternative. + * Don't install gcjh-wrapper anymore. + * Don't use exact versioned dependencies on gcj-base for libgcj and + libgcj-awt. + * Fix glibc build dependency for alpha. + * Support -ffast-math on hurd-i386 (Samuel Thibault). Closes: #413342. + * Update kfreebsd-amd64 patches (Aurelien Jarno). Closes: #406015. + * gij: Consistently use $(dbexecdir) to reference the gcj sub dir. + * Install into /usr/lib/gcc//4.1, to ease upgrades + between minor versions. + Add compatibility symlinks in /4.1.2 to build gnat-4.1 + and gcj-4.1 from separate sources. + + -- Matthias Klose Wed, 7 Mar 2007 03:51:47 +0100 + +gcc-4.1 (4.1.2-1) experimental; urgency=low + + [Matthias Klose] + * Update to gcc-4.1.2. + * Update libjava backport patches, split out boehm-gc-backport patch. + * Enable the cpu-default-generic patch (i386, amd64), backport from 4.2. + * Correct mfctl instruction syntax (hppa), backport from the trunk. + * Backport PR java/9861 (name mangling updates). + * gcc.c (main): Call expandargv (backport from 4.2). + * Apply gcc dwarf2 unwinding patches from the trunk. + * Apply backport for PR 20208 on amd64 i386 powerpc ppc64 sparc s390. + * Apply patches from the 4.1 branch for PR rtl-optimization/28772, + PR middle-end/30313, PR middle-end/30473, PR c++/30536, PR debug/30189, + PR fortran/30478, PR rtl-optimization/30787, PR tree-optimization/30823, + PR rtl-optimization/28173, PR ada/30684, bug in pointer dependency test, + PR rtl-optimization/30931, PR fortran/25392, PR fortran/30400, + PR libgfortran/30910, PR libgfortran/30918, PR fortran/29441, + PR target/30634. + * Update NEWS files. + * Include a backport of the ecj+generics java updates as + gcj-ecj-20070215.tar.bz2. Install it into the gcc-4.1-source package. + * Do not build fastjar anymore from this source. + * debian/control.m4: Move expect-tcl8.3 before dejagnu. + * Work around firefox/icewhatever dropping plugin dependencies on xpcom. + * Refactor naming of libgcj packages in the build files. + * Make libstdc++-doc's build dependencies depending on the source package. + * Do not build packages on architectures, which are already built by gcc-4.2. + + * Merge the gcj generics backport from Ubuntu: + + - Merge the Java bits (eclipse based compiler, 1.5 compatibility, + classpath generics) from the gcc-4.1 Fedora branch. + - Drop all previous patches from the classpath-0.93 merge, keep + the boehm-gc backport (splitted out as a separate patch). + - Add a gcj-ecj-generics.tar.bz2 tarball, containing gcc/java, libjava, + config/unwind_ipinfo.m4, taken from the Fedora branch. + - Drop the libjava-hppa, libjava-plugin-binary, pr29362, pr29805 patches + integrated in the backport. + - Update patches for the merge: reporting, libjava-subdir, i386-biarch, + classpath-tooldoc, pr26885 + - Add libjava-dropped, libjava-install; dropped chunks from the merge. + - Add pr9861-nojava mangling changes, non-java parts for PR 9861. + - Add gcc-expandv, expand `@' parameters on the commandline; backport + from the trunk. + - Disable the m68k-gc patch, needs update for the merge. + - Configure --with-java-home set for 1.5.0. + - Configure with --enable-java-maintainer-mode to build the header + and class files on the fly. + - Add build dependency on ecj-bootstrap, configure --with-ecj-jar. + - Build an empty libgcj-doc package; gjdoc currently cannot handle + generics. + - Apply gcc dwarf2 unwinding patches from the trunk, allowing the Events + testcase to pass. + - Tighten dependencies on shared libraries. + - Use /usr/lib/gcj-4-1-71 as private gcj subdir. + - Bump the libgcj soversion to 71, rename the libgcj7-0 package + to libgcj7-1, rename the libgcj7-awt package to libgcj7-1-awt. + - gij-4.1: Add and provide alternatives for gorbd, grmid, gserialver. + - gcj-4.1: Remove gcjh, gcjh-wrapper, gjnih. + - gcj-4.1: Add and provide alternatives for jar, javah, native2ascii, + tnameserv. + - gcj-4.1: Add dependency on ecj-bootstrap, recommend fastjar, + ecj-bootstrap-gcj. + - Add build dependency on ecj-bootstrap version providing the GCCMain + class. + - libgcj7-1: Recommend libgcj7-1-awt. + - Add build dependency on libmagic-dev. + - Build-depend on gcj-4.1; build our own ecj1 and gjdoc before + starting the build. + - Make ecj1 available when running the testsuite. + - Fix build failure on sparc-linux. + - Fix gjavah compatibility problems (PR cp-tools/3070[67]). + - Fixed driver issue source files (PR driver/30714). + - Add (rudimentary) manual pages for classpath tools. + + [Kevin Brown] + * debian/control.m4, debian/rules.d/binary-ada.mk: provide new packages + containing debugging symbols for Ada libraries: libgnat-4.1-dbg, + libgnatprj4.1-dbg, and libgnatvsn4.1-dbg. Adresses: #401385. + + -- Matthias Klose Sat, 3 Mar 2007 23:12:08 +0100 + +gcc-4.1 (4.1.1ds2-30) experimental; urgency=low + + * Update to SVN 20070106. + * Do not revert the fixes for PR 25878, PR 29138, PR 29408. + * Don't build the packages built by gcc-4.2 source. + * debian/patches/note-gnu-stack.dpatch: Add .note.GNU-stack sections + for gcc's crt files, libffi and boehm-gc. Taken from FC. Closes: #382741. + * Merge from Ubuntu: + - Backport g++ visibility patches from the FC gcc-4_1-branch. + - Update the long-double patches; require glibc-2.4 as a build dependency + on alpha, powerpc, sparc, s390. Bump the shlibs dependencies to + require 4.1.1-21. + - On powerpc-linux configure using --enable-secureplt. Closes: #382748. + - When using the cpu-default-generic patch, build for generic x86-64 + on amd64 and i386 biarch. + - Link using --hash-style=both (alpha, amd64, ia64, i386, powerpc, ppc64, + s390, sparc). + * gij-4.1: Recommends libgcj7-awt instead of suggesting it. Closes: #394917. + * Split the gcc-long-double patch into a code and doc part. + * Set priority of development packages to optional. + * Add support for kfreebsd-amd64 (Aurelian Jarno). Closes: #406015. + + -- Matthias Klose Sat, 6 Jan 2007 10:35:42 +0100 + +gcc-4.1 (4.1.1ds2-22) unstable; urgency=high + + * Enable -pthread for GNU/Hurd (Michael Banck). Closes: #400031. + * Update the m68k-fpcompare patch (Roman Zippel). Closes: #401585. + + -- Matthias Klose Sun, 10 Dec 2006 12:35:06 +0100 + +gcc-4.1 (4.1.1ds2-20) unstable; urgency=low + + [Matthias Klose] + * Update to SVN 20061115. + - Fix PR tree-optimization/27891, ICE in tree_split_edge. + Closes: #370248, #391657, #394630. + - Fix PR tree-optimization/9814, duplicate of PR tree-optimization/29797. + Closes: #181096. + * Apply the libjava/net backport from the redhat/gcc-4_1-branch. + * Apply proposed patch for PR java/29805. + + [Roman Zippel] + * Build the ObjC and ObjC++ compilers in cross builds. + * debian/patches/m68k-symbolic-operand.dpatch: Better recognize + symbolic operands in addresses. + * debian/patches/m68k-bitfield-offset.dpatch: Only use constant offset + for register bitfields (combine expects shifts, but does a rotate). + * debian/patches/m68k-bitfield-offset.dpatch: Update and apply. + + [Daniel Jacobowitz] + * Don't try to use _Unwind_Backtrace on SJLJ targets. + See bug #387875, #388505, GCC PR 29206. + + -- Matthias Klose Wed, 15 Nov 2006 08:59:53 -0800 + +gcc-4.1 (4.1.1ds2-19) unstable; urgency=low + + * Fix typo in arm-pragma-pack.dpatch. + + -- Matthias Klose Sat, 28 Oct 2006 11:04:00 +0200 + +gcc-4.1 (4.1.1ds2-18) unstable; urgency=medium + + [Matthias Klose] + * Update to SVN 20061028. + * Fix #pragma pack on ARM (Paul Brook). Closes: #394703. + * Revert PR c++/29138, PR c++/29408. Closes: #392559. + * Revert PR c++/25878. Addresses: #387989. + * fastjar: Provide jar. Closes: #395397. + + [Ludovic Brenta] + * debian/control.m4 (libgnatprj-dev): depend on libgnatvsn-dev. + debian/gnatprj.gpr: with gnatvsn.gpr. Closes: #395000. + + -- Matthias Klose Thu, 26 Oct 2006 23:51:10 +0200 + +gcc-4.1 (4.1.1ds2-17) unstable; urgency=low + + [Matthias Klose] + * Update to SVN 20061020. + - Fix PR debug/26881, ICE in dwarf2out_finish. Closes: #377613. + - Fix PR PR c++/29408, parse error for valid code. Closes: #392327, #393010. + - Fix PR c++/29435, segfault with sizeof and templates. Closes: #393071. + - Fix PR target/29338, segfault with -finline-limit on arm. Closes: 390620. + - Fix 3.4/4.0 backwards compatibility problem in libstdc++. + * Fix PR classpath/29362, taken from the redhat/gcc-4_1-branch. + * Remove the INSTALL directory from the source tarball. Closes: #392974. + * Disable building the static libgcj; non-functional, and cutting + down build times. + * libgcj7-0: Tighten dependency on libgcj-common. + * libgcj7-dev: Install .pc file as libgcj-4.1.pc. + * README.cross: Updated (Hector Oron). Addresses: #380251. + * config-ml.dpatch: Use *-linux-gnu as *_GNU_TYPE. Closes: #394034. + + [Nikita V. Youshchenko] + * Fix typo in the cross build scripts. Closes: #391445. + + [Falk Hueffner] + * alpha-no-ev4-directive.dpatch: Fix kernel build failure. + + [Roman Zippel] + * debian/patches/m68k-align-code.dpatch: Use "move.l %a4,%a4" to advance + within code. + * debian/patches/m68k-align-stack.dpatch: Try to keep the stack word aligned. + * debian/patches/m68k-dwarf3.dpatch: Emit correct dwarf info for cfa offset + and register with -fomit-frame-pointer. + * debian/patches/m68k-fpcompare.dpatch: Bring fp compare early to its + desired form to relieve reload. Closes: #390879. + * debian/patches/m68k-prevent-swap.dpatch: Don't swap operands + during reloads. + * debian/patches/m68k-reg-inc.dpatch: Reinsert REG_INC notes after splitting + an instruction. + * debian/patches/m68k-secondary-addr-reload.dpatch: Add secondary reloads + to allow reload to get byte values into addr regs. Closes: #385327. + * debian/patches/m68k-symbolic-operand.dpatch: Better recognize symbolic + operands in addresses. + * debian/patches/m68k-limit_reload.dpatch: Remove, superseded by + m68k-secondary-addr-reload.dpatch. + * debian/patches/m68k-notice-move.dpatch: Apply, was checked in in -16. + * debian/patches/m68k-autoinc.dpatch: Updated, don't attempt to increment + the register, if it's used multiple times in the instruction . + + -- Matthias Klose Sat, 21 Oct 2006 00:25:05 +0200 + +gcc-4.1 (4.1.1ds1-16) unstable; urgency=low + + [Matthias Klose] + * Update to SVN 20061008. + - Fix PR c++/29226, ICE in make_decl_rtl. Closes: #388263. + * libgcj7-0: Fix package removal. Closes: #390874. + * Configure with --disable-libssp on architectures that don't + support it (alpha, hppa, ia64, m68k, mips, mipsel). + * On hppa, remove build-dependency on dash. + * gij/gcj: Do not install slave links for the non DFSG manpages. + Closes: #390425, #390532. + * libgcj-common: rebuild-gcj-db: Don't do anything, if no classmap + files are found. Closes: #390966. + * Fix PR libstdc++/11953, extended for all linux architectures. + Closes: #391268. + * libffi4-dev: Conflict with libffi. Closes: #387561. + * Backport PR target/27880 to the gcc-4_1-branch. Patch by Steve Ellcey. + Closes: #390693. + * On ia64, don't use _Unwind_GetIPInfo in libjava and libstdc++. + * Add a README.ssp with minimal documentation about stack smashing + protection. Closes: #366094. + * Do not build libgcj-common from the gcc-4.1/gcj-4.1 sources anymore. + + [Roman Zippel] + * debian/patches/m68k-notice-move.dpatch: Don't set cc_status + for fp move without fp register. + + -- Matthias Klose Sun, 8 Oct 2006 02:21:49 +0200 + +gcc-4.1 (4.1.1ds1-15) unstable; urgency=medium + + * Update to SVN 20060927. + - Fix PR debug/29132, exception handling on mips. Closes: #389468, #390042. + - Fix typo in gcc documentation. Closes: #386180. + - Fix PR target/29230, wrong code generation on arm. Closes: #385505. + * libgcj-common: Ignore exit value of gcj-dbtool in rebuild-gcj-db on + arm, m68k, hppa. Adresses: #388505. + * libgcj-common: Replaces java-gcj-compat-dev and java-gcj-compat. + Closes: #389539. + * libgcj-common: /usr/share/gcj/debian_defaults: Define gcj_native_archs. + * Update the java backport from the redhat/gcc-4_1-branch upto 2006-09-27; + remove libjava-str2double.dpatch, pr28661.dpatch. + * Disable ssp on hppa, not supported. + * i386-biarch.dpatch: Avoid warnings about macro redefinitions. + + -- Matthias Klose Fri, 29 Sep 2006 22:32:41 +0200 + +gcc-4.1 (4.1.1ds1-14) unstable; urgency=medium + + [Matthias Klose] + * Update to SVN 20060920. + - Fix PR c++/26957. Closes: #373257, #386910. + - Fix PR rtl-optimization/28243. Closes: #378325. + * Remove patch for PR rtl-optimization/28634, applied upstream. + * Fix FTBFS on GNU/kFreeBSD (fallout from the backport of classpath-0.92). + (Petr Salinger). Closes: #385974. + * Merge from Ubuntu: + - Do not encode the subminor version in the jar files. + - Fix typo for the versioned gcj subdirectory in lib32gcj-0. + - When running the i386 binaries on amd64, adjust the properties + java.home, gnu.classpath.home.url, sun.boot.class.path, + gnu.gcj.precompiled.db.path. + - Configure the 32bit build on amd64 + --with-java-home=/usr/lib32/jvm/java-1.4.2-gcj-4.1-1.4.2.0/jre. + - Configure --with-long-double-128 for glibc-2.4 on alpha, powerpc, ppc64, + s390, s390x, sparc, sparc64. + - Update the java backport from the redhat/gcc-4_1-branch upto 2006-09-20. + - Fix PR java/29013, invalid byte code generation. Closes: #386926. + - debian/patches/gcc-pfrs-2.dpatch: Apply a fix for a regression in the + backport of PR 28946 from the trunk (H.J. Lu). + * Backport PR classpath/28661 from the trunk. + * Don't ship the .la files for the java modules. Closes: #386228. + * gcj-4.1: Remove dangling symlink. Closes: #386430. + * gij: Suggest java-gcj-compat, gcj: Suggest java-gcj-compat-dev. + Closes: #361942. + * Fix infinite loop in string-to-double conversion on 64bit targets. + Closes: #348792. + * gij-4.1: Ignore exit value of gcj-dbtool in postinst. Adresses: #388505. + * libgcj-common: Move rebuild-gcj-db from java-gcj-compat into libgcj-common. + * On hppa, install a wrapper around gij-4.1 to ignore unaligned memory + accesses. Works around buildd configurations enabling this check by + default. Addresses: #364819. + + [Ludovic Brenta] + * debian/patches/ada-libgnatprj.dpatch: Build mlib-tgt-linux.adb instead of + mlib-tgt.adb. Closes: #387826. + * debian/patches/ada-pr15802.dpatch: Backport from the trunk. + Closes: #246384. + * debian/control.m4 (gnat-4.1): do not provide gnat (supplied by + gcc-defaults instead); conflict with gnat-4.2 which will soon be in + unstable. + + [Roman Zippel] + * debian/patches/m68k-dwarf2.dpatch: Recognize stack adjustments also + in the src of an instruction. + * debian/patches/m68k-jumptable.dpatch: Don't force byte offset when + accessing the jumptable, gas can generate the correct offset size instead. + * debian/patches/m68k-peephole.dpatch: Convert some text peepholes to rtl + peepholes, so the correct DWARF2 information can be generated for stack + manipulations (Keep a few peepholes temporarily disabled). + * debian/patches/m68k-peephole-note.dpatch: Don't choke on notes while + reinserting REG_EH_REGION notes. + * debian/patches/m68k-return.dpatch: Don't use single return if fp register + have to be restored. Closes: #386864. + * debian/patches/m68k-sig-unwind.dpatch: Add support for unwinding over + signal frames. + * Fix PR rtl-optimization/27736, backport from the trunk. + * Add java support for m68k. Closes: #312830, #340874, #381022. + + -- Matthias Klose Sun, 24 Sep 2006 19:36:31 +0200 + +gcc-4.1 (4.1.1ds1-13) unstable; urgency=medium + + * Update to SVN 20060901; remove patches applied upstream: + - PR target/24367. + - PR c++/26670. + * Apply proposed patch for PR fortran/28908. + * Fix biarch symlinks in lib64stdc++ for cross builds. + * Fix biarch symlinks in lib32objc on amd64. + + -- Matthias Klose Fri, 1 Sep 2006 00:04:05 +0200 + +gcc-4.1 (4.1.1ds1-12) unstable; urgency=medium + + [Matthias Klose] + * Update to SVN 20060830. + * Add backport of PR other/26208, bump libgcc1 shlibs dependency. + * Add backport of PR c++/26670. Closes: #356548. + * Apply proposed patch for PR target/24367 (s390). + * Add /usr/lib/jni to the libjava dlsearch path. Closes: #364820. + * Build without GFDL licensed docs. Closes: #384036. + - debian/patches/{svn-doc-updates,pr25524-doc,pr26885-doc}.dpatch: + Split out -doc specific patches. + - debian/*.texi, debian/porting.html: Add dummy documentation. + - debian/rules.unpack, debian/rules.patch: Update for non-gfdl build. + - fastjar.texi: Directly define the gcctabopt and gccoptlist macros. + + * Merge from Ubuntu: + - Backport the classpath-0.92, libjava, gcc/java merge from the + redhat/gcc-4_1-branch branch. + - Apply the proposed patch for PR libgcj/28698. + - Change the libgcj/libgij sonames. Rename libgcj7 to libgcj7-0. + - Do not remove the rpath from libjvm.so and libjawt.so. Some + configure scripts rely on being able to link that libraries + directly. + - When running the i386 binaries on amd64, look in + /usr/lib32/gcj-x.y and /usr/lib32/jni instead. + - Add /usr/lib/jni to java.library.path. Closes: #364820. + - Add debugging symbols for more binary packages to libgcj7-dbg. + Closes: #383705. + - libgcj7-dev: Remove conflicts with older libgcjX-dev packages. + - Do not build the libgcj-bc and lib32gcj-bc packages anymore from + the gcj-4.1 source. + + [Roman Zippel] + * debian/patches/m68k-limit_reload.dpatch: Correctly limit reload class. + Closes: #375522. + * debian/patches/m68k-split_shift.dpatch: Use correct predicates for long long + shifts and use more splits. Closes: #381572. + * debian/patches/m68k-prevent-qipush.dpatch: Prevent combine from creating + a byte push on the stack (invalid on m68k). Closes: #385021. + * debian/patches/m68k-autoinc.dpatch: Recognize a few more autoinc possibilities. + * debian/patches/pr25514.dpatch: Backport from the trunk. + * debian/patches/m68k-gc.dpatch: Change STACKBOTTOM to LINUX_STACKBOTTOM + so it works with 2.6 kernels. + * Other m68k bug reports fixed in 4.1.1-11 and 4.1.1-12: + Closes: #378599, #345574, #344041, #323426, #340293. + * Build the stage1 compiler using -g -O2; saves a few hours build time + and apparently is working at the moment. + + -- Matthias Klose Tue, 29 Aug 2006 21:37:28 +0200 + +gcc-4.1 (4.1.1-11) unstable; urgency=low + + * The "Our priority are our users, remove the documentation!" release. + + [Matthias Klose] + * Fix build failure building the hppa->hppa64 cross compiler. + * Update to SVN 20060814. + - Fix directory traversal vulnerability in fastjar. Closes: #368397. + CVE-2006-3619. + - Fix PR rtl-optimization/23454, ICE in invert_exp_1 on sparc. + Closes: #321215. + - Fix PR c++/26757, C++ front-end producing two DECLs with the same UID. + Closes: #356569. + * Remove patch for PR rtl-optimization/28075, applied upstream. + * Apply proposed patch for PR rtl-optimization/28634, rounding problem with + -fdelayed-branch on hppa/mips. Closes: #381710. + * Fixed at least in 4.1.1-10: boost::date_time build failure. + Closes: #382352. + * Build-depend on make (>= 3.81), add make (>= 3.81) as dependency to + gcc-4.1-source. Closes: #381117. + * Backport of libffi from the trunk; needed for the java backport in + experimental. + * libffi4-dev: Install the libffi_convenience library as libffi_pic.a. + * When building a package without the GFDL'd documentation, don't create + the alternative's slave links for manual pages for the java tools. + * Do not build the -doc packages and derived manual pages licensed under + the GFDL with invariant sections or cover texts. + * Only build the libssp package, if the target libc doesn't provide + ssp support. + * Run the complete testsuite, when building a standalone gcj package. + + [Roman Zippel] + * debian/patches/m68k-fjump.dpatch: + Always use as fjcc pseudo op, we rely heavily on as to generate the + right size for the jump instructions. Closes: #359281. + * debian/patches/m68k-gc.dpatch: + The thread suspend handler has to save all registers. + Reenable MPROTECT_VDB, it should work, otherwise it's probably a kernel bug. + * debian/patches/m68k-save_pic.dpatch: + Correctly save the pic register, when not done by reload(). + (fixes _Unwind_RaiseException and thus exception handling). + * debian/patches/m68k-libffi.dpatch: Add support for closures. + * debian/patches/m68k-bitfield.dpatch: Avoid propagation of mem expression + past a zero_extract lvalue. + * debian/patches/m68k-dwarf.dpatch: Correct the dwarf frame information, + but preserve compatibility. + + [Christian Aichinger] + * Fix building a cross compiler targeted for ia64. Closes: #382627. + + -- Matthias Klose Tue, 15 Aug 2006 00:41:00 +0200 + +gcc-4.1 (4.1.1-10) unstable; urgency=low + + * Update to SVN 20060729. + - Fix PR c++/28225, segfault in type_dependent_expression_p. + Closes: #376148. + * Apply proposed patch for PR rtl-optimization/28075. + Closes: #373820. + * Apply proposed backport and proposed patch for PR rtl-optimization/28221. + Closes: #376084. + * libgcj7-jar: Loosen dependency on gcj-4.1-base. + * Add ssp header files to the private gcc includedir. + * Do not build the Ada packages from the gcc-4.1 source, introducing + a new gnat-4.1 source package. + * Build libgnat on alpha and s390 as well. + * Do not build the gnat-4.1-doc package (GFDL with invariant sections or + cover texts). + * Remove references to the stl-manual package. Closes: #378698. + + -- Matthias Klose Sat, 29 Jul 2006 22:08:59 +0200 + +gcc-4.1 (4.1.1-9) unstable; urgency=low + + * Update to SVN 20060715. + - Fix PR c++/28016, do not emit uninstantiated static data members. + Closes: #373895, #376871. + * Revert the patch to fix PR c++/27227. Closes: #378321. + * multiarch-include.dpatch: Renamed from biarch-include.dpatch; + apply for all architectures. + * Do not build the java compiler in gcc-4.1 package, just include the + options and specs in the gcc driver. + * Remove gnat-4.0 as an alternative build dependency. + * Add a patch to enable -fstack-protector by default for C, C++, ObjC, ObjC++. + The patch is disabled by default. + + -- Matthias Klose Sat, 15 Jul 2006 17:07:29 +0200 + +gcc-4.1 (4.1.1-8) unstable; urgency=medium + + * Update to SVN 20060708. + - Fix typo in gcov documentation. Closes: #375140. + - Fix typo in gccint documentation. Closes: #376412. + - [alpha], Fix -fvisibility-inlines-hidden segfaults on reference to + static method. PR target/27082. Closes: #369642. + + * Fix ppc64 architecture string in debian/multiarch.inc. Closes: #374535. + * Fix conflict, replace and provide libssp0-dev for cross compilers. + Closes: #377012. + * Ignore compiler warnings when checking whether compiler driver understands + Ada fails. Closes: #376660. + * Backport fix for PR libmudflap/26864 from the trunk. Closes: #26864. + * README.C++: Remove non-existing URL. Closes: #347601. + * gij-4.1: Provide java2-runtime. Closes: #360906. + + * Closed reports reported against gcc-3.0 and fixed in gcc-4.1: + - C++ + + PR libstdc++/13943, call of overloaded `llabs(int)' is ambiguous. + Closes: #228645. + - Java + + Fixed segmentation fault on compiling bad program. Closes: #165635 + * Closed reports reported against gcc-3.3 and fixed in gcc-4.1: + - Stack protector available. Closes: #213994, #233208. + - Better documentation of -finline-limit option. Closes: #296047. + * Closed reports reported against gcc-3.4 and fixed in gcc-4.1: + - General + + Fixed [unit-at-a-time] Using -O2 cannot detect missing return + statement in a function. Closes: #276843. + - C++ + + PR13943, call of overloaded `llabs(int)' is ambiguous. Closes: #228645. + + PR c++/21280, #pragma interface, templates, and "inline function used + but never defined". Closes: #364412. + - Architecture specific: + - m68k + + Segfault building glibc. Closes: #353618. + + ICE when trying to build boost. Closes: #321486. + * Closed reports reported against gcc-4.0 and fixed in gcc-4.1: + - General + + Handling of #pragma GCC visibility for builtin functions. + Closes: #330279. + + gettext interpretation the two conditional strings as one. + Closes: #227193. + + ICE due to if-conversion. Closes: #335078. + + Fix unaligned accesses with __attribute__(packed) and memcpy. + Closes: #355297. + + Fix ICE in expand_expr_real_1, at expr.c. Closes: #369817. + - Ada + + Link error not finding -laddr2line. Closes: #322849. + + ICE on invalid code. Closes: #333564. + - C++ + + libstdc++: bad thousand separator with fr_FR.UTF-8. Closes: #351786. + + The Compiler uses less memory than 4.0. Closes: #336225. + + Fix "fails to compare reverse map iterators". Closes: #362840. + + Fix "fail to generate code for base destructor defined inline with + pragma interface". Closes: #356435. + + Fix ICE in cp_expr_size, at cp/cp-objcp-common.c. Closes: #317455. + + Fix wrong warning: control may reach end of non-void function. + Closes: #319309. + + Fix bogus warning "statement has no effect" with template and + statement-expression. Closes: #336915. + + Fixed segfault on syntax error. Closes: #349087. + + Fix ICE with __builtin_constant_p in template argument. + Closes: #353366. + + Implement DR280 (fixing "no operator!= for const_reverse_iterator"). + Closes: #244894. + - Fortran + + Fix wrong behaviour in unformatted writing. Closes: #369547. + - Java + + Fixed segfault on -fdump-tree-all-all. Closes: #344265. + + Fixed ant code completion in eclipse generating a nullpointer + exception. Closes: #337510. + + Fixed abort in gnu_java_awt_peer_gtk_GtkImage.c. Closes: #343112. + + Fixed assertion failure in gij with rhdb-explain. Closes: #335650. + + Fixed assertion failure when calling JTabbedPane.addTab(null, ...). + Closes: #314704. + + Fixed error when displaying empty window with bound larger than the + displayed content. Closes: #324502. + + Fixed: Exception in JComboBox.removeAllItems(). Closes: #314706. + + Fixed assertian error in gnu_java_awt_peer_gtk_GtkImage.c. + Closes: #333733. + - libmudflap + + PR libmudflap/23170, libmudflap should not use functions marked + obsolescent by POSIX/SUS. Closes: #320398. + - Architecture specific: + - m68k + + FTBFS building tin. Closes: #323016. + + ICE with -g -fomit-frame-pointer. Closes: #331150. + + ICE in instantiate_virtual_regs_lossage. Closes: #333536. + + Wrong code generation with loop unrolling. Closes: #342121. + + ICEs while building gst-ffmpeg. Closes: #343692. + - mips + + Fix gjdoc build failure. Closes: #344986. + + Fix link failure for static libs and object files when xgot + needs to be used. Closes: #274942. + * gnat bug reports fixed since gnat-3.15p: + - GNAT miscounts UTF8 characters in string with -gnaty. Closes: #66175. + - Bug box from "with Text_IO" when compiling optimized. Closes: #243795. + - Nonconforming parameter lists not detected. Closes: #243796. + - Illegal use clause not detected. Closes: #243797. + - Compiler enters infinite loop on illegal program with tagged records. + Closes: #243799. + - Compiler crashes on illegal program (missing discriminant, unconstrained + parent). Closes: #243800. + - Bug box at sinfo.adb:1215 on illegal program. Closes: #243801. + - Bug box at sinfo.adb:1651 on illegal program. Closes: #243802. + - Illegal program not detected (entry families). Closes: #243803. + - Illegal program not detected, RM 10.1.1(14). Closes: #243807. + - Bug box at exp_ch9.adb:7254 on illegal code. Closes: #243812. + - Illegal program not detected, RM 4.1.4(14). Closes: #243816. + - Bug box in Gigi, code=116, on legal program. Closes: #244225. + - Illegal program not detected, 12.7(10) (generic parameter is visible, + shouldn't be). Closes: #244483. + - Illegal program not detected, ambiguous aggregate. Closes: #244496. + - Bug box at sem_ch3.adb:8003. Closes: #244940. + - Bug box in Gigi, code=103, on illegal program. Closes: #244945. + - Legal program rejected, overloaded procedures. Closes: #246188. + - Bug box in Gigi, code=999, on legal program. Closes: #246388. + - Illegal program not detected, RM 10.1.6(3). Closes: #246389. + - Illegal program not detected, RM 3.10.2(24). Closes: #247014. + - Illegal program not detected, RM 3.9(17). Closes: #247015. + - Legal program rejected. Closes: #247016. + - Legal program rejected. Closes: #247021. + - Illegal program not detected, RM 4.7(3). Closes: #247022. + - Illegal program not detected, RM 3.10.2(27). Closes: #247562. + - Legal program rejected, "limited type has no stream attributes". + Closes: #247563. + - Wrong output from legal program. Closes: #247565. + - Compiler enters infinite loop on illegal program. Closes: #247567. + - Illegal program not detected, RM 8.6(31). Closes: #247568. + - Legal program rejected, visible declaration not seen. Closes: #247572. + - Illegal program not detected, RM 8.2(9). Closes: #247573. + - Wrong output from legal program, dereferencing access all T'Class. + Closes: #248171. + - Compiler crashes on illegal program, RM 5.2(6). Closes: #248174. + - Cannot find generic package body, RM 1.1.3(4). Closes: #248677. + - Illegal program not detected, RM 3.4.1(5). Closes: #248679. + - Compiler ignores legal override of abstract subprogram. Closes: #248686. + - Bug box, Assert_Failure at sinfo.adb:2365 on illegal program. + Closes: #251266. + - Ada.Numerics.Generic_Elementary_Functions.Log erroneout with -gnatN. + Closes: #263498. + - Bug box, Assert_Failure at atree.adb:2906 or Gigi abort, code=102 + with -gnat -gnatc. Closes: #267788. + - Bug box in Gigi, code=116, 'Unrestricted_Access of a protected + subprogram. Closes: #269775. + - Stack overflow on illegal program, AI-306. Closes: #276225. + - Illegal program not detected, RM B.1(24). Closes: #276226. + - Wrong code generated with -O -fPIC. Closes: #306833. + - Obsolete: bashism's in debian/rules file. Closes: #370681. + - Supports more debian architectures. Closes: #171477. + + -- Matthias Klose Sat, 8 Jul 2006 16:24:47 +0200 + +gcc-4.1 (4.1.1-7) unstable; urgency=low + + * Prefer gnat-4.1 over gnat-4.0 as a build dependency. + * libssp0: Set priority to standard. + + -- Matthias Klose Sun, 2 Jul 2006 10:22:50 +0000 + +gcc-4.1 (4.1.1-6) unstable; urgency=low + + [Ludovic Brenta] + * Do not provide the symbolic link /usr/bin/gnatgcc; this will now + be provided by package gnat from the source package gcc-defaults. + * debian/control.m4, debian/control (gnat): conflict with gnat (<< 4.1), + not all versions of gnat, since gcc-defaults will now provide gnat (= 4.1) + which depends on gnat-4.1. + + [Matthias Klose] + * libjava: Change the default for enable_hash_synchronization_default + on PA-RISC. Tighten the libgcj7 shlibs version on hppa. + * Update to SVN 20060630. + * Apply proposed patch for PR 26991. + * Don't use the version for the libstdc++ shlibs dependency for the libgcj + shlibs dependency. + * Merge from Ubuntu edgy: + - Fix %g7 usage in TLS, add patch sparc-g7.dpatch, fixes glibc-2.4 build + failure on sparc (Fabio M. Di Nitto). + - Merge libssp0-dev into gcc-4.1 (-fstack-protector is a common option). + - Run the testsuite with -fstack-protector as well. + + [Bastian Blank] + * Make it possible to overwrite arch per DEB_TARGET_ARCH and DEB_TARGET_GNU_TYPE. + * Disable biarch only on request for cross builds. + * Use correct source directory for tarballs. + * Produce correct multiarch.inc for source builds. + + -- Matthias Klose Sat, 1 Jul 2006 01:49:55 +0200 + +gcc-4.1 (4.1.1-5) unstable; urgency=low + + * Fix build error running with dpkg-buildpackage -rsudo. + + -- Matthias Klose Wed, 14 Jun 2006 01:54:13 +0200 + +gcc-4.1 (4.1.1-4) unstable; urgency=low + + * Really do not backout the fix for PR c++/26068. + Closes: #372152, #372559. + * Update fastjar version string to 4.1. + * Disable pascal again. + + -- Matthias Klose Mon, 12 Jun 2006 20:29:57 +0200 + +gcc-4.1 (4.1.1-3) unstable; urgency=low + + * Update to SVN 20060608, do not revert the fix for PR c++/26068. + Closes: #372152, #372559. + * Fix build failures for Pascal, enable Pascal on all architectures. + * Fix another build failure on GNU/kFreeBSD (Aurelien Jarno). + Closes: #370661. + * Fix build fauilure in gcc/p with parallel make. + * Remove cross-configure patch (Kazuhiro Inaoka). Closes: #370649. + * Only build the gcc-4.1-source package, when building from the gcc-4.1 + source. + * Fix upgrade problem from standalone gcj-4.1. + * Fix build error using bison-2.2, build-depend on bison (>= 2.3). + Closes: #372605. + * Backport PR libstdc++/25524 from the trunk, update the biarch-include + patch. mips triarch support can be added more easily. + + -- Matthias Klose Mon, 12 Jun 2006 00:23:45 +0200 + +gcc-4.1 (4.1.1-2) unstable; urgency=low + + * Update to SVN 20060604. + - Fix PR c++/26757, C++ front-end producing two DECLs with the same UID. + Closes: #356569. + - Fix PR target/27158, ICE in extract_insn with -maltivec. + Closes: #362307. + * Revert PR c++/26068 to work around PR c++/27884 (Martin Michlmayr). + Closes: #370308. + * Mention Ada in copyright, update copyright file (Ludovic Brenta). + Closes: #366744. + * Fix kbsd-gnu-java.dpatch (Petr Salinger). Closes: #370320. + * Don't include version control files in gcc-4.1-source. + + -- Matthias Klose Sun, 4 Jun 2006 19:13:37 +0000 + +gcc-4.1 (4.1.1-1) unstable; urgency=low + + [Matthias Klose] + * Update to SVN 20060601. + * Reenable the gpc build. + * PR libgcj/26483, libffi patch for IA-64 denorms, taken from trunk. + * Disable Ada for m32r targets. Closes: #367595. + * lib32gfortran1: Do not create empty directory /usr/lib32. Closes: #367999. + * gcc-4.1: Add a conflict to the gcj-4.1 version with a different + gcc_libdir. + * Build gij/gcj for GNU/k*BSD. Closes: #367166. + * Update hurd-changes patch (Michael Banck). Closes: #369690. + * debian/copyright: Add exception for the gpc runtime library. + * Update gpc/gpc-doc package descriptions. + + [Ludovic Brenta] + * patches/ada-libgnatprj.dpatch: add prj-pars.ad[bs] and sfn_scan.ad[bs] + to libgnatprj; remove them from gnatmake. + + -- Matthias Klose Thu, 1 Jun 2006 20:35:54 +0200 + +gcc-4.1 (4.1.0-4) unstable; urgency=low + + [Ludovic Brenta] + * Fix a stupid bug whereby fname.ad{b,s} would be included in both + libgnatvsn-dev and libgnatprj-dev, preventing use of gnatprj.gpr. + Closes: #366733. + + -- Matthias Klose Thu, 11 May 2006 04:34:50 +0200 + +gcc-4.1 (4.1.0-3) unstable; urgency=low + + * Update to SVN 20060507. + * debian/rules.d/binary-java.mk: Use $(lib32) everywhere. Closes: #365388. + * Always configure hppa64-linux-gnu with + --includedir=/usr/hppa64-linux-gnu/include. + * Make libgnatvsn4.1 and libgnatprj4.1 priority optional. Closes: #365900. + * Call autoconf2.13 explicitely in the Ada patches, build-depend on + autoconf2.13. Closes: #365780. + * Fix libgnatprj-dev and libgnatvsn-dev dependencies on their shared + libraries. + * Deduce softfloat and vfp (ARM) configure options (Pjotr Kourzanov). + * Update proposed patch for PR26885 (May 2 version). + * Build the libxxstdc++-dbg packages, when not building the library pacakges. + * Do not include the _pic library in the libxxstdc++-dbg packages. + + -- Matthias Klose Sun, 7 May 2006 15:29:53 +0200 + +gcc-4.1 (4.1.0-2) unstable; urgency=medium + + * Update to SVN 20060428. + * Apply proposed patches for PR26885. + + * Keep libffi doc files in its own directory. Closes: #360466. + * Update ppc64 patches for 4.1 (Andreas Jochens). Closes: #360498. + * Fix PR tree-optimization/26763, wrong-code, taken from the 4.1 branch. + Closes: #356896. CVE-2006-1902. + * hppa-cbranch, hppa-cbranch2 patches: Fix for PR target/26743, + PR target/11254, PR target/10274, backport from trunk (Randolph Chung). + * Let libgccN provide -dcv1 when cross-compiling (Pjotr Kourzanov). + Closes: #363289. + * (Build-)depend on glibc-2.3.6-7. Closes: #360895, #361904. + * Fix a pedantic report about a package description. Add a hint that + we do not like bug reports with locales other than "C". Closes: #361409. + * Enable the libjava interpreter on mips/mipsel. + * gcc-4.1-source: Depend on gcc-4.1-base. + * gnat-4.1: Fix permissions of .ali files. + * Build lib32gcj7 on amd64. + * debian/patches/ada-gnatvsn.dpatch: New. Apply proposed fix for + PR27194. + + [Ludovic Brenta] + * debian/patches/ada-default-project-path.dpatch: new. Change the + default search path for project files to the one specified + by the Debian Policy for Ada: /usr/share/ada/adainclude. + * debian/patches/ada-symbolic-tracebacks.dpatch: new. Enable support for + symbolic tracebacks in exceptions. + * debian/patches/ada-missing-lib.dpatch: remove, superseded by the above. + * debian/patches/ada-link-lib.dpatch: changed. + - Instead of building libada as a target library only, build it as + both a host and, if different, target library. + - Build the GNAT tools in their top-level directory; do not use + recursive makefiles. + - Link the GNAT tools dynamically against libgnat. + - Apply proposed fix for PR27300. + - Rerun autoconf (Matthias Klose). + * debian/patches/ada-libgnatvsn.dpatch: new. + - Introduce a new shared library named libgnatvsn, containing + common components of GNAT under the GNAT-Modified GPL, for + use in GNAT tools, ASIS, GLADE and GPS. + - Link the gnat tools against this new library. + - Rerun autoconf (Matthias Klose). + * debian/patches/ada-libgnatprj.dpatch: new. + - Introduce a new shared library named libgnatprj, containing the + GNAT Project Manager, i.e. the parts of GNAT that parses project + files (*.gpr). Licensed under pure GPL; for use in GLADE and GPS. + - Link the gnat tools against this new library. + - Rerun autoconf (Matthias Klose). + * debian/patches/ada-acats.dpatch: new. + - When running the ACATS, look for the gnat tools in their new + directory (build/gnattools), and for the shared libraries in + build/gcc/ada/rts, build/libgnatvsn and build/libgnatprj. + * debian/gnatvsn.gpr, debian/gnatprj.gpr: new. + * debian/rules.d/binary-ada.mk, debian/control.m4: new binary packages: + libgnatvsn-dev, libgnatvsn4.1, libgnatprj-dev, libgnatprj4.1. Place + the *.gpr files in their respective -dev packages. + + -- Matthias Klose Sat, 29 Apr 2006 00:32:09 +0200 + +gcc-4.1 (4.1.0-1) unstable; urgency=low + + * libstdc++CXX-BV-dev.preinst: Remove (handling of c++ include dir for 4.0). + * libgcj-common: Move removal of docdir from preinst into postinst. + * libgcj7: Move removal of docdir from preinst into postinst. + * Drop alternative build dependency on gnat-3.4, not built anymore. + * Fix PR libgcj/26103, wrong exception thrown (4.1 branch). + * debian/patches/libjava-stacktrace.dpatch: Add support to print file names + and line numbers in stacktraces. + * Add debugging symbols for libgcjawt and lib-gnu-java-awt-peer-gtk + in the libgcj7-dbg and lib32gcj7-dbg packages. + * Remove dependency of the libgcj-dbg packages on the libgcj-dev packages, + add recommendations on binutils and libgcj-dev. Mention the requirement + of binutils for the stacktraces. + * Fix upgrade from version 4.0.2-9, loosing the Debian changelog. + Closes: #355439. + * gij/gcj: Install one alternative for each command, do not use slave + links for rmiregistry, javah, rmic. Ubuntu #26781. Closes: #342557. + * Fix for PR tree-optimization/26587, taken from the 4.1 branch. + * Fix PR libstdc++/26526 (link failure when _GLIBCXX_DEBUG is defined). + * Configure with --enable-clocale=gnu, even if not building C++ packages. + * Remove runtime path from biarch libraries as well. + * PR middle-end/26557 (ice-on-vaild-code, regression), taken from + the gcc-4_1-branch. Closes: #349083. + * PR tree-optimization/26672 (ice-on-vaild-code, regression), taken from + the gcc-4_1-branch. Closes: #356231. + * PR middle-end/26004 (rejects-vaild-code, regression), taken from + the gcc-4_1-branch. + * When building as standalone gcj, build libgcc4 (hppa only) and fastjar. + * Configure --with-cpu=v8 on sparc. + * debian/patches/libjava-hppa.dpatch: pa/pa32-linux.h + (CRT_CALL_STATIC_FUNCTION): Define when CRTSTUFFS_O is defined. + (John David Anglin). Closes: #353346. + * Point to the 4.1 version of README.Bugs (closes: #356230). + * Disable the libmudflap testsuite on alpha (getting killed). + + -- Matthias Klose Sat, 18 Mar 2006 23:00:39 +0100 + +gcc-4.1 (4.1.0-0) experimental; urgency=low + + * GCC 4.1.0 final release. + * Build the packages for the Java language from a separate source. + * Update NEWS.html, NEWS.gcc. + * libgcj-doc: Auto generated API documentation for libgcj7, classpath + example programs. + * Add gjdoc to Build-Depends-Indep. + * On amd64, build-depend on libc6-dev-i386 instead of ia32-libs-dev. + * Internal ssp headers now installed in the gcc libdir. + * Do not build gcj-4.1-base when building the gcc-4.1 packages. + * When building as gcj-4.1, use the tarball from the gcc-4.1-source + package. + + [Ludovic Brenta] + * Allow one to enable and disable NLS and bootstrapping from the environment. + - Adding "nls" to WITHOUT_LANG disables NLS support. + - If WITH_BOOTSTRAP is set, debian/rules2 calls configure + --enable-bootstrap=$(WITH_BOOTSTRAP) and just "make". If + WITH_BOOTSTRAP is unset, it calls configure without a bootstrapping + option and calls "make profiledbootstrap" or "make bootstrap-lean" + depending on the target CPU. + Currently overwritten to default to "bootstrap". + + -- Matthias Klose Thu, 2 Mar 2006 00:03:45 +0100 + +gcc-4.1 (4.1ds9-0exp9) experimental; urgency=low + + * Update to GCC 4.1.0 release candidate 1 (gcc-4.1.0-20060219 tarball). + * Update gcc-version patch for gcc-4.1. + * libgccN, libstdc++N*: Fix upgrade of /usr/share/doc symlinks. + * libjava awt & swing update, taken from trunk 2006-02-16. + * libgcj7-dev: Suggest libgcj-doc, built from a separate source package. + * Shorten build-dependency line (work around buildd problems + on arm* and mips*). + * New patch gcc-ice-hack (saving the preprocessed source on an ICE), + taken from Fedora. + + -- Matthias Klose Mon, 20 Feb 2006 10:07:23 +0100 + +gcc-4.1 (4.1ds8-0exp8) experimental; urgency=low + + * Update to SVN 20060212, taken from the 4.1 release branch. + * libgccN: Fix upgrade of /usr/share/doc/libgccN symlink. + + -- Matthias Klose Sun, 12 Feb 2006 19:48:31 +0000 + +gcc-4.1 (4.1ds7-0exp7) experimental; urgency=low + + * Update to SVN 20060127, taken from the 4.1 release branch. + - On hppa, bump the libgcc soversion to 4. + * Add an option not to depend on the system -base package for cross compiler + (Ian Wienand). Closes: #347484. + * Remove workaround increasing the stack size limit for some architectures, + not needed anymore on ia64. + * On amd64, build-depend on libc6-dev-i386, depend on libc6-i386, where + available. + * libstdc++6: Properly upgrade the doc directory. Closes: #346171. + * libstdc++6: Add a conflict to scim (<< 1.4.2-1). Closes: #343313. + * Set default 32bit ix86 architecture to i486. + + -- Matthias Klose Fri, 27 Jan 2006 22:23:22 +0100 + +gcc-4.1 (4.1ds6-0ubuntu6) experimental; urgency=low + + * Update to SVN 20060107, taken from the 4.1 release branch. + - Remove fix for PR ada/22533, fixed by patch for PR c++/23171. + * Remove binary packages from the control file, which aren't built + yet on any architecture. + * gcc-hppa64: Use /usr/hppa64-linux-gnu/include as location for the glibc + headers, tighten glibc (build-)dependency. + * libffi [arm]: Add support for closures, libjava [arm]: enable the gij + interpreter (Phil Blundell). Addresses: #337263. + * For the gcj standalone build, include cc1 into the gcj-4.1 package, + needed for linking java programs compiled to native code. + + -- Matthias Klose Sat, 7 Jan 2006 03:36:33 +0100 + +gcc-4.1 (4.1ds4-0exp4) experimental; urgency=low + + * Update to SVN 20051210, taken from the 4.1 release branch. + * Prepare to build the java packages from it's own source (merged + from Ubuntu). + - Build the java packages from the gcc-4.1 source, as long as packages + are prepared for experimental. + - When built as gcj, run only the libjava testsuite, don't build the + libstdc++ debug packages, don't package the gcc source. + - Loosen package dependencies, when java packages are built from + separate sources. + - Fix gcj hppa build, when java packages are built from separate sources. + - gij-4.1: Install test-summary, when doing separate builds. + - Allow java packages be installed independent from other packages built + from the source package. + - Rename libgcj7-common to libgcj7-jar. + - Introduce a gcj-4.1-base package to completely separate the two and not + duplicate the changelog in each gcj/gij package. + * Java related changes: + - libjava-xml-transform: Update from classpath trunk, needed for + eclipse (Michael Koch), applied upstream. + - Fix java wrapper scripts to point to 4.1 (closes: #341710). + - Reenable java on mips and mipsel. + - Fix libgcj6 dependency. Ubuntu #19935. + - Add libxt-dev as a java build dependency. autoconf explicitely checks + for X11/Intrinsic.h. + * Ada related changes: + - Apply proposed fix for PR ada/22533, reenable ada on alpha, powerpc, + mips, mipsel and s390. + - Add Ada support for GNU/kFreeBSD (Aurelien Jarno). Closes: #341356. + - Remove ada bootstrap workaround for alpha. + * Build a separate gcc-4.1-source package (Bastian Blank). Closes: #333922. + * Remove obsolete patch: libstdc++-automake. + * Remove patch integrated upstream: libffi-mips. + * Fix the installation of the hppa64 compiler in snapshot builds. + * Rename libgfortran0* to libgfortran1* (upstream soversion change). + * Add a dependency on libc-dev for all compilers / -dev packages except + gcc (which can be used for kernel builds without libc-dev). + * libffi4-dev: Fix package description. + * On amd64, install 32bit libraries into /emul/ia32-linux/usr/lib. + Addresses: #341147. + * Fix installation of biarch libstdc++ headers on amd64. + * Configure --with-tune=i686 on ix86 architectures (on Ubuntu with + -mtune=pentium4). Remove the cpu-default-* patches. + * debian/control.m4: Fix libxxgcc package names. + * Update the build infrastructure to build cross compilers + (Nikita V. Youshchenko). + * Tighten binutils (build-)dependency. Closes: #342484. + * Symlink more doc directories. + * debian/control.m4: Explicitely set Architecture for biarch packages. + + -- Matthias Klose Sat, 10 Dec 2005 16:56:45 +0100 + +gcc-4.1 (4.1ds1-0ubuntu1) UNRELEASED; urgency=low + + * Build Java packages only. + * Update to SVN 20051121, taken from the 4.1 release branch. + - Remove libjava-saxdriver-fix patch, applied upstream. + - Remove ada-gnat-version patch, applied upstream. + * Fix FTBFS in biarch builds on 32bit kernels. + * Update libstdc++-doc doc-base file (closes: #339046). + * Remove obsolete patch: gcc-alpha-ada_fix. + * Fix installation of biarch libstdc++ headers (Ubuntu #19655). + * Fix sparc and s390 biarch patches to build the 64bit libffi. + * Work around biarch build failure in libjava/classpath/native/jni/midi-alsa. + * Install spe.h header on powerpc. + * Add libasound build dependencies. + * libgcj: Fix installation of libgjsmalsa library. + * Remove patches not used anymore: libjava-no-rpath, i386-config-ml-nomf, + libobjc, multiarch-include, disable-biarch-check-mf, gpc-profiled, + gpc-no-gpidump, libgpc-shared, acats-expect. + * Fix references to manuals in gnat(1). Ubuntu #19772. + * Remove build dependency on xlibs-dev, add libxtst-dev. + * Do not configure with --disable-werror. + * Merge *-config-ml patches into one config-ml patch, configure the biarch + libs in debian/rules.defs. + * debian/gcj-wrapper: Accept -Xss. + * Do not build biarch java on Debian (missing biarch libasound). + * Do not build the java packages from this source package, avoiding + dependencies on X. + + -- Matthias Klose Mon, 21 Nov 2005 20:29:43 +0100 + +gcc-4.1 (4.1ds0-0exp0) experimental; urgency=low + + * Configure libstdc++ using the default allocator. + * Update to 20051112, taken from the svn trunk. + + -- Matthias Klose Sat, 12 Nov 2005 23:47:01 +0100 + +gcc-4.1 (4.1ds0-0ubuntu0) breezy; urgency=low + + * UNRELEASED + * First snapshot of gcc-4.1 (CVS 20051019). + - adds SSP support (closes: #213994, #233208). + * Remove patches applied upstream/not needed anymore. + * Update patches for 4.1: link-libs, gcc-textdomain, libjava-dlsearch-path, + rename-info-files, reporting, classmap-path, i386-biarch, sparc-biarch, + libjava-biarch-awt, ada-gcc-name. + * Disable patches: + - 323016, m68k, necessary for 4.1? + * debian/copyright: Update for 4.1. + * debian/control, debian/control.m4, debian/rules.defs, debian/rules.conf: + Update for 4.1, add support for Obj-C++ and SSP. + * Fix generation of Ada docs in info format. + * Set Ada library version to 4.1. + * Drop gnat-3.3 as an alternative build dependency. + * Use fortran instead of f95 for the build files. + * Update build support for awt peer libs. + * Add packaging support for SSP library. + * Add packaging support for Obj-C++. + * Run the testsuite for -march=i686 on i386 and amd64 as well. + * Fix generation of Pascal docs in html format. + * Update config-ml patches to build libssp biarch. + * Disable libssp for hppa64 build. + * libgcj7-dev: Install jni_md.h. + * Disable gnat for powerpc, currently fails to build. + * Add biarch runtime lib packages for ssp, mudflap, ffi. + * Do not explicitely configure with --enable-java-gc=boehm, which is the + default. + * libjava-saxdriver-fix: Fix a problem in the Aelfred2 SAX parser. + * libstdc++6-4.0-dev: Depend on the libc-dev package. Ubuntu #18885. + * Build-depend on expect-tcl8.3 on all architectures. + * Build-depend on lib32z1-dev on amd64 and ppc64, drop build dependency on + amd64-libs. + * Disable ada on alpha mips mipsel powerpc s390, currently broken. + + -- Matthias Klose Wed, 19 Oct 2005 11:02:31 +0200 + +gcc-4.0 (4.0.2-3) unstable; urgency=low + + * Update to CVS 20051015, taken from the gcc-4_0-branch. + - gcc man page fixes (closes: #327254, #330099). + - PR java/19870, PR java/20338, PR java/21844, PR java/21540: + Remove Debian patches. + - Applied libjava-echo-fix patch. + - Fix PR target/24284, ICE (Segmentation fault) on sparc-linux. + Closes: #329840. + - Fix PR c++/23797, ICE on typename outside template. Closes: #325545. + - Fix PR c++/22551, ICE in tree_low_cst. Closes: #318932. + * libstdc++6: Tighten libstdc++ shlibs version to 4.0.2-3 (new symbol). + * Update generated Ada files. + * Fix logic to disable mudflap and Obj-C++ via the environment. + * Remove f77 build bits. + * gij-4.0: Remove /var/lib/gcj-4.0/classmap.db on purge (closes: #330800). + * Let gcj-4.0 depend on libgcj6-dev, instead of recommending it. This is + not necessary for byte-code compilations, but for compilations to native + code. For compilations to byte-code, use a better compiler like ecj + for now (found in the ecj-bootstrap package). + * Disable biarch setup in cross compilers (Josh Triplett). Closes: #333952. + * Fix with_libnof logic for cross-compilations (Josh Triplett). + Closes: #333951. + * Depend on binutils (>= 2.16.1cvs20050902-1) on the alpha architecture. + Closes: #333954. + * On i386, build-depend on libc6-dev-amd64. Closes: #329108. + * (Build-)depend on glibc 2.3.5-5. + + -- Matthias Klose Sun, 2 Oct 2005 14:25:54 +0200 + +gcc-4.0 (4.0.2-2) unstable; urgency=low + + * Update to CVS 20051001, taken from the gcc-4_0-branch. Includes the + changes between 4.0.2 RC3 and the final 4.0.2 release, missing from + the upstream tarball. Remove patches applied upstream (gcc-c-decl, + pr23182, pr23043, pr23367, pr23891, pr21418, pr24018). + * On ix86 architectures run the testsuite for -march=i686 as well. + * Build libffi on the Hurd (closes: #328705). + * Add big-endian arm (armeb) support (Lennert Buytenhek). Closes: #330730. + * Update libjava xml to classpath CVS HEAD 20050930 (Michael Koch). + * Reapply patch to make -mieee the default on alpha-linux. Closes: #330826. + * Add workaround not to make libmudflap _start/_end not small data on + mips/mipsel, taken from CVS HEAD. + * Don't build the nof libraries on powerpc. + * Number crunching time on m68k, reenable gfortran on m68k-linux-gnu. + + -- Matthias Klose Sat, 1 Oct 2005 15:42:10 +0200 + +gcc-4.0 (4.0.2-1) unstable; urgency=low + + * GCC 4.0.2 release. + * lib64stdc++6: Set priority to optional. + * Fix bug in StreamSerializer, seen with eclipse-3.1 (Ubuntu 12744). + Backport from CVS HEAD, Michael Koch. + * Apply java patches, proposed for the 4.0 branch: PR java/24018, + PR libgcj/23182, PR java/19870, PR java/21844, PR libgcj/23367, + PR java/20338. + * Update the expect/pty test to actually call expect directly, rather + than test for the existence of PTYs, since a working expect is what + we really care about, not random device files (Adam Conrad). + Closes: #329715. + * Add build dependencies on lib64z1-dev. + * gcc-c-decl.dpatch: Fix C global decl handling regression in 4.0.2 from + 4.0.1 + + -- Matthias Klose Thu, 29 Sep 2005 19:50:08 +0200 + +gcc-4.0 (4.0.1-9) unstable; urgency=low + + * Update to CVS 20050922, taken from the gcc-4_0-branch (4.0.2 RC3). + * Apply patches: + - Fix PR java/21418: Order of source files matters when compiling, + backported from mainline. + - Fix for PR 23043, backported form mainline. + - Proposed patch for #323016 (m68k only). Patch by Roman Zippel. + * libstdc++6: Tighten libstdc++ shlibs version to 4.0.1-9 (new symbol). + * Fail the build early, if the system doesn't have any pty devices + created in /dev. Needed for running the testsuite. + * Update hurd changes again (closes: #328973). + + -- Matthias Klose Thu, 22 Sep 2005 07:28:18 +0200 + +gcc-4.0 (4.0.1-8) unstable; urgency=medium + + * Update to CVS 20050917, taken from the gcc-4_0-branch. + - Fix FTBFS for boost, introduced in 4.0.1-7 (closes: #328684). + * Fix PR java/23891, eclipse bootstrap. + * Set priority of gcc-4.0-hppa64 package to standard. + * Bump standards version to 3.6.2. + * Fix java wrapper script, mishandles command line options with arguments. + Patch from Olly Betts. Closes: #296456. + * Bump epoch of the lib32gcc1 package to the same epoch as for the the + libgcc1 and lib64gcc1 packages. + * Fix some lintian warnings. + * Build libffi on the Hurd (closes: #328705). + * For biarch builds, disable the testsuite for the non-default architecture + for runtime libraries, which are not built by default (libjava). + * Add gsfonts-x11 to Build-Depends-Indep to avoid warnings from doxygen. + * Install Ada .ali files read-only. + + -- Matthias Klose Sat, 17 Sep 2005 10:35:23 +0200 + +gcc-4.0 (4.0.1-7) unstable; urgency=low + + * Update to CVS 20050913, taken from the gcc-4_0-branch. + - Fix PR c++/19004, ICE in uses_template_parms (closes: #284777). + - Fix PR rtl-optimization/23454, ICE in invert_exp_1 on sparc. + Closes: #321215. + - Fix PR libstdc++/23417, make bits/stl_{list,tree}.h -Weffc++ clean. + Closes: ##322170. + * Install 'altivec.h' on ppc64 (closes: #323945). + * Install locale data with the versioned package name (closes: #321591). + * Fix fastjar build without building libjava. + * On hppa, don't build using gcc-3.3 when ada is disabled. + * On m68k, don't build the stage1 compiler using -O. + + * Ludovic Brenta + - Allow the choice whether or not to build with NLS. + - Fix a typo whereby libffi was always enabled on i386. + + -- Matthias Klose Tue, 13 Sep 2005 23:23:11 +0200 + +gcc-4.0 (4.0.1-6) unstable; urgency=low + + * Update to CVS 20050821, taken from the gcc-4_0-branch. + - debian/patches/pr21562.dpatch: Removed, applied upstream. + - debian/patches/libjava-awt-name.dpatch: Updated. + - debian/patches/classpath-20050618.dpatch: Updated. + * Use all available CPU's for the check target, unless USE_NJOBS == no. + * debian/patches/biarch-include.dpatch: Include + /usr/local/include/-linux-gnu before including /usr/local/include. + * Fix biarch system include directories for the non-default architecture. + * Prefer gnat-4.0 over gnat-3.4 over gnat-3.3 as a build-dependency. + + -- Matthias Klose Thu, 18 Aug 2005 18:36:23 +0200 + +gcc-4.0 (4.0.1-5) unstable; urgency=low + + * Update to CVS 20050816, taken from the gcc-4_0-branch. + - Fix PR middle-end/23369, wrong code generation for funcptr comparison + on hppa. Closes: #321785. + - Fix PR fortran/23368 ICE with NAG routines (closes: #322912). + * Build-depend on libcairo2-dev (they say, that's the final package name ...) + * libgcj: Search /usr/lib/gcj-4.0 for dlopened libraries, place a copy + of the .la files in the libgcj6 package into this directory. + Closes: #322576. + * Tighten the dependencies between the compiler packages to the same + version and release. Use some substitution variables for control file + generation. + * Remove build dependencies for gpc. + * Don't use '/emul/ia32-linux' on ppc64 (closes: #322890). + * Synchronize with Ubuntu. + + -- Matthias Klose Tue, 16 Aug 2005 22:45:47 +0200 + +gcc-4.0 (4.0.1-4ubuntu1) breezy; urgency=low + + * Jeff Bailey + + Enable i386 biarch using biarch glibc (not yet enabled for unstable). + - debian/rules.d/binary-libgcc.mk: Make i386 lib64gcc1 depend on + libc6-amd64 + - debian/control.m4: Suggest libc6-amd64 rather than amd64-libs. + - debian/rules.conf: Build-Dep on libc6-dev-amd64 [i386] + Build-Dep on binutils >= 2.16.1-2ubuntu3 + - debian/rules2: Enable biarch build in Ubuntu. + + * Matthias Klose + + - Add shlibs file and dependency information for the lib32gcc1 package. + - debian/patches/gcc-textdomain.dpatch: Update (closes: #321591). + - Set priority of gcc-4.0-base and libstdc++6 packages to `required'. + Closes: #321016. + - libffi-hppa.dpatch: Remove, applied upstream. + + -- Matthias Klose Mon, 8 Aug 2005 19:39:02 +0200 + +gcc-4.0 (4.0.1-4) unstable; urgency=low + + * Enable the biarch compiler for powerpc (closes: #268023). + * Update to CVS 20050806, taken from the gcc-4_0-branch. + * Build depend on libcairo0.6.0-dev (closes: #321540). + * Fix Ada build on the hurd (closes: #321350). + * Update libffi for mips (Thiemo Seufer). Closes: #321100. + * Fix segfault on 64bit archs in the AWT Gtk peer library (Dan Frazier). + Closes: #320915. + * Add libXXgcc1 build dependencies for biarch builds. + + -- Matthias Klose Sun, 7 Aug 2005 07:01:59 +0000 + +gcc-4.0 (4.0.1-3) unstable; urgency=medium + + * Update to CVS 20050725, taken from the gcc-4_0-branch. + - Fix ICE with -O and -mno-ieee-fp/-ffast-math (closes: #319087). + * Synchronize with Ubuntu. + * Fix applying hurd specific patches for the hurd build (closes: #318443). + * Do not build-depend on libmpfr-dev on architectures, where fortran + is not built. + * Apply biarch include patch on ppc64 as well (closes: #318603). + * Correct libstdc++-dev package description (closes: #319082). + * debian/rules.defs: Replace DEB_TARGET_GNU_CPU with DEB_TARGET_ARCH_CPU. + * gcc-4.0-hppa64: Rename hppa64-linux-gcc to hppa64-linux-gnu-gcc. + Closes: #319818. + + -- Matthias Klose Mon, 25 Jul 2005 10:43:06 +0200 + +gcc-4.0 (4.0.1-2ubuntu3) breezy; urgency=low + + * Update to CVS 20050720, taken from the gcc-4_0-branch. + - Fix PR22278, volatile issues, seen when building xorg. + * Build against new libcairo1-dev (0.5.2). + + -- Matthias Klose Wed, 20 Jul 2005 12:29:50 +0200 + +gcc-4.0 (4.0.1-2ubuntu2) breezy; urgency=low + + * Acknowledge that i386 biarch builds still need to be fixed for glibc-2.3.5. + + -- Matthias Klose Tue, 19 Jul 2005 08:29:30 +0000 + +gcc-4.0 (4.0.1-2ubuntu1) breezy; urgency=low + + * Synchronize with Debian. + * Update to CVS 20050718, taken from the gcc-4_0-branch. + - Fix PR c++/22132 (closes: #318488), upcasting a const class pointer + to struct the class derives from generates wrong code. + * Build biarch runtime libraries for Fortran and ObjC. + * Apply proposed patch for PR22309 (crash with mt_allocator if libstdc++ + is dlclosed). Closes: #293466. + + -- Matthias Klose Mon, 18 Jul 2005 17:10:18 +0200 + +gcc-4.0 (4.0.1-2) unstable; urgency=low + + * Don't apply the patch to make -mieee the default on alpha-linux-gnu. + Causes the bootstrap to fail on alpha-linux-gnu. + + -- Matthias Klose Tue, 12 Jul 2005 00:14:12 +0200 + +gcc-4.0 (4.0.1-1) unstable; urgency=high + + * GCC 4.0.1 final release. See /usr/share/doc/gcc-4.0/NEWS.{gcc,html}. + * Build fastjar on mips/mipsel, fix fastjar build without building java. + * Disable the comparision check on unstable/ia64. adaint.o differs, + currently cannot be reproduced with glibc-2.3.5 and binutils-2.16.1. + * libffi/hppa: Fix handling of 3 and 5-7 byte struct returns. + * amd64: Fix libgcc symlinks to point to /usr/lib32, instead of /lib32. + * On powerpc, don't build with -j >1, apparently doesn't succeeds + on the Debian buildd. + * Apply revised patch to make -mieee the default on alpha-linux, + and add -mieee-disable switch to turn the default off (Tyson Whitehead). + * Disable multiarch-includes; redo biarch-includes to include the paths + for the non-default biarch, when called with -m32/-m64. + * Move new java headers from libstdc++-dev to libgcj-dev, add replaces + line. + * Update classpath patch to work with cairo-0.5.1. Patch provided by + Michael Koch. + * Further classpath updates for gnu.xml and javax.swing.text.html. + Patch provided by Michael Koch. + * Require binutils (>= 2.16.1) as a build dependency and a dependency. + * On i386, require amd64-libs-dev (>= 1.2). + * Update debian/NEWS.{html,gcc}. + + * Closing bug reports reported against older gcc versions (some of them + still present in Debian, but not anymore as the default compiler). + Usually, forwarded bug reports are linked to + http://gcc.gnu.org/PR + The upstream bug number usually can be found in the Debian reports. + + * Closed reports reported against gcc-3.3 and fixed in gcc-3.4: + - General: + + PR rtl-optimization/2960: Duplicate loop conditions even with -Os + Closes: #94701. + + PR optimization/3995: i386 optimisation: joining tests. + Closes: #105309. + + PR rtl-optimization/11635: Unnecessary store onto stack, more + curefully expand union cast (closes: #202016). + + PR target/7618: vararg disallowed in virtual function. Closes: #205404. + + Large array problem on 64 bit platforms (closes: #209152). + + Mark more strings as translatable (closes: #227129). + + PR gcc/14711: ICE when compiling a huge source file Closes: #234711. + + Better code generation for if(!p) return NULL;return p; + Closes: #242318. + + PR rtl-optimization/16152: Perl ftbfs on {ia64,arm,m68k}-linux. + Closes: #255801. + + ICE (segfault) while compiling Linux 2.6.9 (closes: #277206). + + Link error building memtest (closes: #281445). + - Ada: + + PR ada/12450: Constraint error for valid input (closes: #210844). + + PR ada/13620: miscompilation of array initializer with + -O3 -fprofile-arcs. Closes: #226244. + - C: + + PR c/6897: Code produced with -fPIC reserves EBX, but compiles + bad __asm__ anyway (closes: #73065). + + PR c/9209: On i386, gcc-3.0 allows $ in indentifiers but not the asm. + Closes: #121282. + + PR c/11943: Accepts invalid declaration "int x[2, 3];" in C99 mode. + Closes: #177303. + + PR c/11942: restrict keyword broken in C99 mode. Closes: #187091. + + PR other/11370: -Wunreachable-code gives false complaints. + Closes: #196600. + + PR c/11369: Too relaxed checking with -Wstrict-prototypes. + Closes: #197504. + + PR c/11445: False positive warning with -Wunreachable-code. + Closes: #200140. + + PR c/11459: -stdc=c90 -pedantic warns about C90's non long-long + support when in C99 mode. Closes: #200392. + + PR c/456: Handling of constant expressions. Closes: #225935. + + ICE on invalid #define with -traditional (closes: #242916). + + No warning when initializing a variable with itself, new option + -Winit-self (closes: #293957). + - C++: + + C++ parse error (closes: #42946). + + PR libstdc++/9073: Replacement for __STL_ASSERTIONS (libstdc++v3 + debug mode). Closes: #128993. + + Parse errors in nested constructor calls (closes: #138561). + + PR optimization/1823: -ftrapv aborts with pointer difference due to + division optimization. Closes: #169862. + + ICE on invalid code (closes: #176101). + + PR c++/10199: ICE handling method parametrized by template. + Closes: #185604. + + High memory usage building packages OpenOffice.org and MythTV. + Closes: #194345, #194513. + + Improved documentation of std::lower_bound (closes: #196380). + + ICE in regenerate_decl_from_template (closes: #197674). + + PR c++/11444: Function fails to propagate up class tree + (template-related). Closes: #198042. + + ICE when using namespaced typedef of primitive type as struct. + Closes: #198261. + + Bug using streambuf / iostream to read from a named pipe. + Closes: #216105. + + PR c++/11437: ICE in lookup_name_real (closes: #200011). + + Add large file support (LFS) in libstdc++ (closes: #220000). + + PR c++/13621: ICE compiling a statement expression returning type + string (closes: #224413). + + g++ doesn't find inherited inner class after template instantiation. + Closes: #227518. + + PR libstdc++/13928: Add whatis info in man pages generated by doxygen. + Closes: #229642. + + Missing symbol _M_setstate in libstdc++ (closes: #232709). + + Unable to parse declaration of inline constructor explicit + specialization (closes: #234709). + + ICE (segfault) on invalid C++ code (closes: #246031). + + ICE in lookup_tempate_function (closes: #262441). + + Undefined symbols in libstdc++, when using specials char_traits. + Closes: #266110. + + PR libstdc++/16011: Outputting numbers with ostream in the locale fr_BE + causes infinite recursion (closes: #270795). + + ICE in tree_low_cst (closes: #276291). + + ICE in in expand_call (closes: #283503). + + typeof operator is misparsed in a template function (closes: #288555). + + ICE in tree_low_cs (closes: #291374). + + Improve uninformative error messages (closes: #292961, #293076). + + ICE on array initialization (closes: #294560). + + Failure to build xine-lib with -finline-functions (closes: #306854). + - Java: + + Fix error finding files in subdirectories (closes: #195480). + + Implement java.text.CollationElementIterator lacks getOffset(). + Closes: #259789. + - Treelang: + + Pointer truncation on 64bit architectures (closes: #308367). + - Architecture specific: + - alpha + + PR debug/10695: ICE on alpha while building agistudio. + Closes: #192568. + + ICE when building fceu (closes: #228018, #252764). + - amd64 + + Miscompilation of Objective-C code (closes: #250174). + + g++ hangs compiling k3d on amd64 (closes: #285364). + - arm + + PR target/19008: gcc -O3 -fPIC produces wrong code via auto inlining. + Closes: #285238. + - i386 + + PR target/4106: i386 -fPIC asm ebx clobber no error. + Closes: #153472. + + PR target/10984: x86/sse2 ICEs on vector intrinsics. Closes: #166940. + + Wrong code generation on at least ix86 (closes: #275655). + - m68k + + PR target/9201: ICE compiling octave-2.1 (closes: #175478). + + ICE in verify_initial_elim_offsets (closes: #204407, #257012). + + g77 generates invalid assembly code (closes: #225621). + + ICE in verify_local_live_at_start (closes #245584). + - powerpc + + PR optimization/12828: -floop-optimize is unstable on PowerPC (float + to int conversion problem). Closes: #218219. + + PR target/13619: ICE building altivec code in ffmpeg. + Closes: #226148. + + PR target/20046: Miscompilation of bind 9.3.0. Closes: #292958. + - sparc + + ICE (segfault) while building atlas3 on sparc32 (closes: #249108). + + Wrong optimization on sparc32 when building linux kernel. + Closes: #254626. + + * Closed reports reported against gcc-3.3 or gcc-3.4 and fixed in gcc-4.0: + - General: + + PR rtl-optimization/6901: Optimizer improvement (removing unused + local variables). Closes: #67206. + + PR middle-end/179: Failure to detect use of unitialized variable + with -O -Wall. Closes: #117765. + + ICE building glibc's nptl on amd64 (closes: #260710, #307993). + + PR middle-end/17827: ICE in make_decl_rtl. Closes: #270854. + + PR middle-end/21709: ICE on compile-time complex NaN. Closes: #305344. + - Ada: + + PR ada/10889: Convention Fortran matrices mishandled in generics. + Closes: #192135. + + PR ada/13897: Implement tasking on powerpc. Closes: #225346. + - C: + + PR c/13072: Bogus warning with VLA in switch. Closes: #218803. + + PR c/13519: typeof(nonconst+const) is const. Closes: #208981. + + PR c/12867: Incorrect warning message (void format, should be void* + format). Closes: #217360. + + PR c/16066: PR 16066] i386 loop strength reduction bug. + Closes: #254659. + - C++: + + PR c++/13518: -Wnon-virtual-dtor doesn't always work. Closes: #212260. + + PR translation/16025: ICE with unsupported locale(closes: #242158). + + PR c++/15125: -Wformat doesn't warn for different types in fprintf. + Closes: #243507. + + PR c++/15214: Warn only if the dtor is non-private or the class has + friends. (closes: #246639). + + PR libstdc++/17218: Unknown subjects in generated libstdc++ manpages. + Closes: #262934. + + PR libstdc++/17223: Missing .so references in generated libstdc++ + manpages. Closes: #262956. + + libstdc++-doc: Improve man pages (closes: #280910). + + PR c++/19006: ICE in tree_low_cst. Closes: #285692. + + g++ does not check arguments to fprintf. Closes: #281847. + - Java: + + PR java/7304: gcj ICE (closes: #152501). + + PR libgcj/7305: Installation of headers not directly in /usr/include. + Closes: #195483. + + PR libgcj/11941: libgcj timezone handling (closes: #203212). + + PR java/14709: gcj fails to wait for its child processes on exec(). + Closes: #238432. + + PR libgcj/21703: gcj hangs when rapidly calling String.intern(). + Closes: #275547. + + SocketChannel.get(ByteBuffer) returns 0 at EOF. Closes: #281602. + + PR java/19711: gcj segfaults instead of reporting the ambiguous + expression. Closes: #286715. + + Static libgcj contains repeated archive members (closes: #298263). + - Architecture specific: + - alpha + + Unaligned accesses with ?-operator (closes: #301983). + - arm + + Compilation error of glibc-2.3.4 on arm (closes: #298508). + - m68k + + ICE in add_insn_before (closes: #248432). + - mips + + Fix o32 ABI breakage in gcc 3.3/3.4 (closes: #270620). + - powerpc + + ICE in extract_insn (closes: #311128). + + * Closing bug reports as wontfix: + - g++ defines _GNU_SOURCE when using the libstdc++ header files. + Behaviour did change since 3.0. Closes: #126703, #164872. + + -- Matthias Klose Sat, 9 Jul 2005 17:10:54 +0000 + +gcc-4.0 (4.0.0ds2-12) unstable; urgency=high + + * Update to CVS 20050701, taken from the gcc-4_0-branch. + * Apply proposed patch for MMAP configure fix; aka PR 19877. Backport + from mainline. + * Disable Fortran on m68k. Currently FTBFS. + * Split multiarch-include/lib patches. Update multiarch-include patch. + * Fix FTBFS of the hppa64-linux cross compiler. Don't add the + multiarch include dirs when cross compiling. + * Configure --with-java-home, as used by java-gcj-compat. + Closes: #315646. + * Make libgcj-dbg packages priority extra. + * Set the path of classmap.db to /var/lib/gcj-@gcc_version@. + * On m68k, do not create the default classmap.db in the gcj postinst. + See #312830. + * On amd64, install the 32bit libraries into /emul/ia32-linux/usr/lib. + Restore the /usr/lib32 symlink. + * On amd64, don't reference lib64, but instead lib (lib64 is a symlink + to lib). Closes: #293050. + * Remove references to build directories from the .la files. + * Make cpp-X.Y conflict with earlier versions of gcc-X.Y, g++-X.Y, gobjc-X.Y, + gcj-X.Y, gfortran-X.Y, gnat-X.Y, treelang-X.Y, if a path component in + the gcc library path changes (i.e. version or target alias). + * Disable Ada for sh3 sh3eb sh4 sh4eb. + * For gcj-4.0, add a conflict to libgcj4-dev and libgcj5-dev. + Closes: #316499. + + -- Matthias Klose Sat, 2 Jul 2005 11:04:35 +0200 + +gcc-4.0 (4.0.0ds1-11) unstable; urgency=low + + * debian/rules.defs: Disable Ada for alpha. + * debian/rules.conf: Fix typo in type-handling replacement code. + * Don't ship an empty libgcj6-dbg package. + + -- Matthias Klose Thu, 23 Jun 2005 09:03:21 +0200 + +gcc-4.0 (4.0.0ds1-10) unstable; urgency=medium + + * debian/patches/libstdc++-api-compat.dpatch: Apply proposed patch + to fix libstdc++ 3.4.5/4.0 compatibility. + * type-handling output became insane. Don't use it anymore. + * Drop the reference to the stl-manual package (closes: #314983). + * Disable java on GNU/kFreeBSD targets, requested by Robert Millan. + Closes: #315140. + * Terminate the acats-killer process, even if the build is aborted + by the user (closes: #314405). + * debian/rules.defs: Define DEB_TARGET_ARCH_{OS,CPU}. + * Start converting the use of DEB_*_GNU_* to DEB_*_ARCH_* in the build + files. + * Do not configure with --enable-gtk-cairo. Needs newer gtk. Drop + build dependency on libcairo-dev. + * Fix setting of the system header directory for the hurd (Michael Banck). + Closes: #315386. + * Fix FTBFS on hurd-i386: MAXPATHLEN issue (Michael Banck). Closes: #315384. + + -- Matthias Klose Wed, 22 Jun 2005 19:45:50 +0200 + +gcc-4.0 (4.0.0ds1-9ubuntu2) breezy; urgency=low + + * Fix version number in libgcj shlibs file. + + -- Matthias Klose Sun, 19 Jun 2005 10:34:02 +0200 + +gcc-4.0 (4.0.0ds1-9ubuntu1) breezy; urgency=low + + * Update to 4.0.1, release candidate 2. + * libstdc++ shlibs file: Require 4.0.0ds1-9ubuntu1 as minimum version. + * Rename libawt to libgcjawt to avoid conflicts with other + libawt implementations (backport from HEAD). + * Update classpath awt, swing and xml parser for HTML support in swing. + Taken from classpath CVS HEAD 2005-06-18. Patch provided by Michael Koch. + * Remove the libgcj-buffer-strategy path, part of the classpath update. + * libgcj shlibs file: Require 4.0.0ds1-9ubuntu1 as minimum version. + * Require cairo-0.5 as build dependency. + * gij-4.0: Provide java1-runtime. + * gij-4.0: Provide an rmiregistry alternative (using grmiregistry-4.0). + * gcj-4.0: Provide an rmic alternative (using grmic-4.0). + * libgcj6-dev conflicts with libgcj5-dev, libgcj4-dev, not libgcj6. + Closes: #312741. + * libmudflap-entry-point.dpatch: Correct name of entry point on mips/mipsel. + * Apply proposed patch for PR 18421 and PR 18719 (m68k only). + * Apply proposed path for PR 21562. + * Add build dependency on dpkg (>= 1.13.7). + * On linux systems, configure for -linux-gnu. + * Configure the hppa64 cross compiler to target hppa64-linux-gnu. + * (Build-)depend on binutils-2.16.1. + * libstdc{32,64}++6-4.0-dbg: Depend on libstdc++6-4.0-dev. + * gnat-4.0: only depend on libgnat, when a shared libgnat is built. + * gfortran-4.0: Depend on libgmp3c2 | libgmp3. + * On hppa, explicitely use gcc-3.3 as a build dependency in the case + that Ada is disabled. + * libmudflap: Always build the library for the non-default biarch + architecture, or else the test results show link failures. + + -- Matthias Klose Sat, 18 Jun 2005 00:42:55 +0000 + +gcc-4.0 (4.0.0-9) unstable; urgency=low + + * Upload to unstable. + + -- Matthias Klose Wed, 25 May 2005 19:02:20 +0200 + +gcc-4.0 (4.0.0-8ubuntu3) breezy; urgency=low + + * debian/control: Regenerate. + + -- Matthias Klose Sat, 4 Jun 2005 10:56:27 +0200 + +gcc-4.0 (4.0.0-8ubuntu2) breezy; urgency=low + + * Fix powerpc-config-ml patch. + + -- Matthias Klose Fri, 3 Jun 2005 15:47:52 +0200 + +gcc-4.0 (4.0.0-8ubuntu1) breezy; urgency=low + + * powerpc biarch support: + - Enable powerpc biarch support, build lib64gcc1 on powerpc. + - Add patch to disable libstdc++'s configure checking, if it can't run + 64bit binaries on 32bit kernels (Sven Luther). + - Apply the same patch to the other runtime librararies as well. + - Run the testsuite with -m64, if we can execute 64bit binaries. + - Add libc6-dev-ppc64 as build dependency for powerpc. + * 32bit gcj libs for amd64. + * debian/logwatch.sh: Don't remove logwatch pid file on exit (suggested + by Ryan Murray). + * Update to CVS 20050603, taken from the gcc-4_0-branch. + * g++-4.0 provides c++abi2-dev. + * Loosen dependencies on packages of architecture `all' to not break + binary only uploads. + * Build libgfortran for biarch as well, else the testsuite will fail. + + -- Matthias Klose Fri, 3 Jun 2005 13:38:19 +0200 + +gcc-4.0 (4.0.0-8) experimental; urgency=low + + * Synchronize with Ubuntu. + + -- Matthias Klose Mon, 23 May 2005 01:56:28 +0000 + +gcc-4.0 (4.0.0-7ubuntu7) breezy; urgency=low + + * Fix build failures for builds with disabled testsuite. + * Adjust debian/rules conditionals to work with all dpkg versions. + * Build separate lib32stdc6-4.0-dbg/lib64stdc6-4.0-dbg packages. + * Add the debugging symbols of the optimzed libstdc++ build in the + lib*stdc++6-dbg packages as well. + * Build a libgcj6-dbg package. + * Update to CVS 20050522, taken from the gcc-4_0-branch. + * Add Ada support for the ppc64 architecture (Andreas Jochens): + * debian/patches/ppc64-ada.dpatch + - Add gcc/ada/system-linux-ppc64.ads, which has been copied from + gcc/ada/system-linux-ppc.ads and changed to use 'Word_Size' 64 + instead of 32. + - gcc/ada/Makefile.in: Use gcc/ada/system-linux-ppc64.ads on powerpc64. + * debian/rules.patch + - Use ppc64-ada patch on ppc64. + * debian/rules.d/binary-ada.mk + Place the symlinks libgnat.so, libgnat-4.0.so, libgnarl.so, + libgnarl-4.0.so in '/usr/lib' instead of '/adalib'. + Closes: #308948. + * Add libc6-dev-i386 as an alternative build dependency for amd64. + Closes: #305690. + + -- Matthias Klose Sun, 22 May 2005 22:14:20 +0200 + +gcc-4.0 (4.0.0-7ubuntu6) breezy; urgency=low + + * Don't trust dpkg-architecture (1.13.4), it "hurds" ... + + -- Matthias Klose Wed, 18 May 2005 11:36:38 +0200 + +gcc-4.0 (4.0.0-7ubuntu5) breezy; urgency=low + + * libgcj6-dev: Don't provide libgcj-dev. + + -- Matthias Klose Wed, 18 May 2005 00:30:32 +0000 + +gcc-4.0 (4.0.0-7ubuntu4) breezy; urgency=low + + * Update to CVS 20050517, taken from the gcc-4_0-branch. + * Apply proposed patch for PR21293. + + -- Matthias Klose Tue, 17 May 2005 23:05:40 +0000 + +gcc-4.0 (4.0.0-7ubuntu2) breezy; urgency=low + + * Update to CVS 20050515, taken from the gcc-4_0-branch. + + -- Matthias Klose Sun, 15 May 2005 23:48:00 +0200 + +gcc-4.0 (4.0.0-7ubuntu1) breezy; urgency=low + + * Synchronize with Debian. + + -- Matthias Klose Mon, 9 May 2005 19:35:29 +0200 + +gcc-4.0 (4.0.0-7) experimental; urgency=low + + * Update to CVS 20050509, taken from the gcc-4_0-branch. + * Remove the note from the fastjar package description, stating, that + fastjar is incomplete compared to the "standard" jar utility. + * Fix typo in build depends. dpkg-checkbuilddeps doesn't like a comma + inside []. + * Tighten shlibs dependencies to require the current version. + + -- Matthias Klose Mon, 9 May 2005 19:02:03 +0200 + +gcc-4.0 (4.0.0-6) experimental; urgency=low + + * Update to CVS 20050508, taken from the gcc-4_0-branch. + + -- Matthias Klose Sun, 8 May 2005 14:08:28 +0200 + +gcc-4.0 (4.0.0-5ubuntu1) breezy; urgency=low + + * Temporarily disable the i386 biarch build. Remove the amd64-libs-dev + build dependency, add (build-)conflict (<= 1.1ubuntu1). + + -- Matthias Klose Sat, 7 May 2005 16:56:21 +0200 + +gcc-4.0 (4.0.0-5) breezy; urgency=low + + * gnat-3.3 and gnat-4.0 are alternative build dependencies (closes: #308002). + * Update to CVS 20050507, taken from the gcc-4_0-branch. + * gcj-4.0: Install gjnih. + * Add libgcj buffer strategy framework (Thomas Fitzsimmons), needed for OOo2. + Backport from 4.1. + * Fix all lintian errors and most of the warnings. + + -- Matthias Klose Sat, 7 May 2005 12:26:15 +0200 + +gcc-4.0 (4.0.0-4) breezy; urgency=low + + * Still prefer gnat-3.3 over gnat-4.0 as a build dependency. + + -- Matthias Klose Fri, 6 May 2005 22:30:43 +0200 + +gcc-4.0 (4.0.0-3) breezy; urgency=low + + * Update to CVS 20050506, taken from the gcc-4_0-branch. + * Update priority of java alternatives to 40. + * Move gcj-dbtool to gij package, move the default classmap.db to + /var/lib/gcj-4.0/classmap.db. Create it in the postinst. + * Fix gcc-4.0-hppa64 postinst (closes: #307762). + * Fix gcc-4.0-hppa64, gij-4.0 and gcj-4.0 postinst, to not ignore errors + from update-alternatives. + * Fix gcc-4.0-hppa64, fastjar, gij-4.0 and gcj-4.0 prerm, + to not ignore errors from update-alternatives. + + -- Matthias Klose Fri, 6 May 2005 17:50:58 +0200 + +gcc-4.0 (4.0.0-2) experimental; urgency=low + + * GCC 4.0.0 release. + * Update to CVS 20050503, taken from the gcc-4_0-branch. + * Add gnat-4.0 as an alternative build dependency (closes: #305690). + + -- Matthias Klose Tue, 3 May 2005 15:41:26 +0200 + +gcc-4.0 (4.0.0-1) experimental; urgency=low + + * GCC 4.0.0 release. + + -- Matthias Klose Sun, 24 Apr 2005 11:28:42 +0200 + +gcc-4.0 (4.0ds11-0pre11) breezy; urgency=low + + * CVS 20050413, taken from the gcc-4_0-branch. + * Add proposed patches for PR20126, PR20490, PR20929. + + -- Matthias Klose Wed, 13 Apr 2005 09:43:00 +0200 + +gcc-4.0 (4.0ds10-0pre10) experimental; urgency=low + + * gcc-4.0.0-20050410 release candidate 1, built from the prerelease tarball. + - C++ fix for "optimizer breaks function inlining". Closes: #302989. + * Append the GCC version to the fastjar/grepjar version string. + * Use short file names in the libstdc++ docs (closes: #301140). + * Fix libstdc++-dbg dependencies (closes: #303866). + + -- Matthias Klose Mon, 11 Apr 2005 13:16:01 +0200 + +gcc-4.0 (4.0ds9-0pre9) experimental; urgency=low + + * CVS 20050326, taken from the gcc-4_0-branch. + * Reenable Ada on ia64. + * Build libgnat on hppa, sparc, s390 again. + * ppc64 support (Andreas Jochens): + * debian/control.m4 + - Add libc6-dev-powerpc [ppc64] to the Build-Depends. + - Change the Description for lib32gcc1: s/ia32/32 bit Version/ + * debian/rules.defs + - Define 'biarch_ia32' for ppc64 to use the same 32 bit multilib + facilities as amd64. + * debian/rules.d/binary-gcc.mk + - Correct an error in the 'files_gcc' definition for biarch_ia32 + (replace '64' by '32'). + * debian/rules2 + - Do not use '--disable-multilib' on powerpc64-linux. + Use '--disable-nof --disable-softfloat' instead. + * debian/rules.d/binary-libstdcxx.mk + - Put the 32 bit libstdc++ files in '/usr/lib32'. + * debian/rules.patch + - Apply 'ppc64-biarch' patch on ppc64. + * debian/patches/ppc64-biarch.dpatch + - MULTILIB_OSDIRNAMES: Use /lib for native 64 bit libraries and + /lib32 for 32 bit libraries. + - Add multilib handling to src/config-ml.in (taken from + amd64-biarch.dpatch). + * Rename biarch_ia32 to biarch32, as suggsted by Andreas. + * Use /bin/dash on hppa. + * Reenable the build of the hppa64 compiler. + * Enable parallel builds by defaults (set environment variale USE_NJOBS=no + or USE_NJOBS= to modify the default, which is to use the + number of available processors). + + -- Matthias Klose Sat, 26 Mar 2005 19:07:30 +0100 + +gcc-4.0 (4.0ds8-0pre8) experimental; urgency=low + + * CVS 20050322, taken from the gcc-4_0-branch. + - Add proposed fix for PR19406. + * Configure --with-gtk-cairo only if version 0.3.0 is found. + * Split out gcc-4.0-locales package. Better chance of getting + bug reports in english language. + + -- Matthias Klose Tue, 22 Mar 2005 14:20:24 +0100 + +gcc-4.0 (4.0ds7-0pre7) experimental; urgency=low + + * CVS 20050304, taken from the gcc-4_0-branch. + * Build the treelang compiler. + + -- Matthias Klose Fri, 4 Mar 2005 21:29:56 +0100 + +gcc-4.0 (4.0ds6-0pre6ubuntu6) hoary; urgency=low + + * Fix lib32gcc1 symlink on amd64. Ubuntu #7099. + + -- Matthias Klose Thu, 3 Mar 2005 00:17:26 +0100 + +gcc-4.0 (4.0ds6-0pre6ubuntu5) hoary; urgency=low + + * Add patch from PR20160, avoid creating archives with components + that have duplicate basenames. + + -- Matthias Klose Wed, 2 Mar 2005 14:22:04 +0100 + +gcc-4.0 (4.0ds6-0pre6ubuntu4) hoary; urgency=low + + * CVS 20050301, taken from the gcc-4_0-branch. + Test builds on i386, amd64, powerpc, ia64, check libgcc_s.so.1. + * Add fastjar-4.0 binary and manpage. Some java packages append it + for all java related tools. + * Add libgcj6-src package for source code availability in IDE's. + * On hppa, disable the build of the hppa64 cross compiler, disable + java, disable running the testsuite (request by Lamont). + * On amd64, lib32gcc1 replaces ia32-libs.openoffice.org (<< 1ubuntu3). + * Build-Depend on libcairo1-dev, configure with --enable-gtk-cairo. + Work around libtool problems install libjawt. + Install jawt header files in libgcj6-dev. + * Add workaround for PR debug/19769. + + -- Matthias Klose Tue, 1 Mar 2005 11:26:19 +0100 + +gcc-4.0 (4.0ds5-0pre6ubuntu3) hoary; urgency=low + + * Drop libgmp3-dev (<< 4.1.4-3) as an alterntative build dependency. + + -- Matthias Klose Thu, 10 Feb 2005 15:16:27 +0100 + +gcc-4.0 (4.0ds5-0pre6ubuntu2) hoary; urgency=low + + * Disable Ada for powerpc. + + -- Matthias Klose Wed, 9 Feb 2005 16:47:07 +0100 + +gcc-4.0 (4.0ds5-0pre6ubuntu1) hoary; urgency=low + + * Avoid build dependency on type-handling. + * Install 32bit libs on amd64 in /lib32 and /usr/lib32. + + -- Matthias Klose Wed, 9 Feb 2005 08:27:21 +0100 + +gcc-4.0 (4.0ds5-0pre6) experimental; urgency=low + + * gcc-4.0 snapshot, taken from the HEAD branch CVS 20050208. + * Build-depend on graphviz (moved to main), remove the pregenerated + libstdc++ docs from the diff. + * Fix PR19162, libobjc build failure on arm-linux (closes: #291497). + + -- Matthias Klose Tue, 8 Feb 2005 11:47:31 +0000 + +gcc-4.0 (4.0ds4-0pre5) experimental; urgency=low + + * gcc-4.0 snapshot, taken from the HEAD branch CVS 20050125. + * Call the 4.0 gcx versions in the java wrappers (closes: #291075). + * Correctly install libgij (closes: #291077). + * libgcj6-dev: Add conflicts to other libgcj-dev packages (closes: #290950). + + -- Matthias Klose Mon, 24 Jan 2005 23:59:54 +0100 + +gcc-4.0 (4.0ds3-0pre4) experimental; urgency=low + + * gcc-4.0 snapshot, taken from the HEAD branch CVS 20050115. + * Update cross build patches (Nikita V. Youshchenko). + * Enable Ada on i386, amd64, mips, mipsel, powerpc, sparc, s390. + Doesn't yet bootstrap on alpha, hppa, ia64. + + -- Matthias Klose Sat, 15 Jan 2005 18:44:03 +0100 + +gcc-4.0 (4.0ds2-0pre3) experimental; urgency=low + + * gcc-4.0 snapshot, taken from the HEAD branch CVS 20041224. + + -- Matthias Klose Wed, 22 Dec 2004 00:31:44 +0100 + +gcc-4.0 (4.0ds1-0pre2) experimental; urgency=low + + * gcc-4.0 snapshot, taken from the HEAD branch CVS 20041205. + * Lot's of merges and updates from the gcc-3.4 packages. + + -- Matthias Klose Sat, 04 Dec 2004 12:14:51 +0100 + +gcc-4.0 (4.0ds0-0pre1) experimental; urgency=low + + * gcc-4.0 snapshot, taken from the HEAD branch CVS 20041114. + - Addresses many issues with the libstdc++ man pages (closes: #278549). + * Disable Ada on hppa, ia64, mips, mipsel, powerpc, s390 and sparc, at least + these are known to be broken at the time of the snapshot. + * Minor kbsd.gnu build fixes (Robert Millan). Closes: #273004. + * For amd64, add missing libstdc++ files to 'libstdc++6-dev' package. + (Andreas Jochens). Fixes: #274362. + * Update libffi-mips patch (closes: #274096). + * Updated i386-biarch patch. Don't build 64bit libstdc++, ICE. + * Update sparc biarch patch. + * Fix symlinks for gfortran manpage (closes: #278548). + * Update cross build patches (Nikita V. Youshchenko). + * Update Ada patches (Ludovic Brenta). + + -- Matthias Klose Sat, 13 Nov 2004 10:38:25 +0100 + +gcc-4.0 (4.0-0pre0) experimental; urgency=low + + * gcc-4.0 snapshot, taken from the HEAD branch CVS 20040912. + + * Matthias Klose + + - Integrate accumulated packaging patches from gcc-3.4. + - Rename libstdc++6-* packages to libstdc++6-4-* (closes: #261693). + - libffi4-dev: conflict with libffi3-dev (closes: #265939). + + * Robert Millan + + * control.m4: + - s/locale_no_archs !hurd-i386/locale_no_archs/g + (This is now handled in rules.defs. [1]) + - s/procps [check_no_archs]/procps [linux_gnu_archs]/g [2] + - Add type-handling to build-deps. [3] + * rules.conf: + - Don't require (>= $(libc_ver)) for libc0.1-dev. [4] + - Generate *_no_archs variables with type-handling and use them for + for m4's -D parameters. [3] + * rules.defs: + - use filter instead of findstring [1]. + - s/netbsd-elf-gnu/netbsdelf-gnu/g [5]. + - enable java for kfreebsd-gnu [6] + - enable ffi for kfreebsd-gnu and knetbsd-gnu [6] + - enable libgc for kfreebsd-gnu [6] + - enable checks for kfreebsd-gnu and knetbsd-gnu [7] + - enable locales for kfreebsd-gnu and gnu [1] [8]. + * Closes: #264025. + + -- Matthias Klose Sun, 12 Sep 2004 12:52:56 +0200 + +gcc-3.5 (3.5ds1-0pre1) experimental; urgency=low + + * gcc-3.5 snapshot, taken from the HEAD branch CVS 20040724. + * Install locale data with versioned package name (closes: #260497). + * Fix libgnat symlinks. + + -- Matthias Klose Sat, 24 Jul 2004 21:26:23 +0200 + +gcc-3.5 (3.5-0pre0) experimental; urgency=low + + * gcc-3.5 snapshot, taken from the HEAD branch CVS 20040718. + + -- Matthias Klose Sun, 18 Jul 2004 12:26:00 +0200 + +gcc-3.4 (3.4.1-1) experimental; urgency=low + + * gcc-3.4.1 final release. + - configured wth --enable-libstdcxx-allocator=mt. + * Fixes for generating cross compiler packages (Jeff Bailey). + + -- Matthias Klose Fri, 2 Jul 2004 22:49:05 +0200 + +gcc-3.4 (3.4.0-4) experimental; urgency=low + + * gcc-3.4.1 release candidate 1. + * Add logic to build biarch compiler on powerpc (disabled, needs lib64c). + * Don't build the libg2c0 package on mipsel-linux (no clear answer on + debian-mips, if the libg2c0's built by gcc-3.3 and gcc-3.4 are compatible + (post-sarge issue). + * Don't use gcc-2.95 as bootstrap compiler on m68k anymore. + + -- Matthias Klose Sat, 26 Jun 2004 22:40:20 +0200 + +gcc-3.4 (3.4.0-3) experimental; urgency=low + + * Update to gcc-3.4 CVS 20040613. + * On sparc, set the the build target to sparc64-linux, build with + switch defaulting to code generation for v7. To generate code for + sparc64, use the -m64 switch. + * Add missing doc-base files to -doc packages. + * Add portability patches and kbsd-gnu patch (Robert Millan). + Closes: #251293, #251294. + * Apply fixes for cross build (Nikita V. Youshchenko). + * Do not include the precompiled libstdc++ header files into the -dev + package (still experimental). Closes: #251707. + * Reflect renaming of Ada user's guide. + * Move AWT peer libraries for libgcj into it's own package (fixes: #247791). + + -- Matthias Klose Mon, 14 Jun 2004 00:03:18 +0200 + +gcc-3.4 (3.4.0-2) experimental; urgency=low + + * Update to gcc-3.4 CVS 20040516. + * Do not provide the /usr/hppa64-linux/include in the gcc-hppa64 package, + migrated to libc6-dev. Adjust dependencies. + * Integrate gpc test results into the GCC test summary. + * gnatchop calls gcc-3.4 (closes: #245438). + * debian/locale-gen.sh: Update for recent libstdc+++ testsuite. + * debian/copyright: Add libstdc++-v3's exception clause. + * Add libffi update for mips (Thiemo Seufer). + * Reference Debian specific bug reporting instructions. + * Update README.Bugs. + * Fix FTBFS for libstdc++-doc. + * Update libjava patch for hppa (Randolph Chung). + * Fix installation of ffitarget.h header file. + * On amd64-linux, configure --without-multilib, disable Ada. + + -- Matthias Klose Sun, 16 May 2004 07:53:39 +0200 + +gcc-3.4 (3.4.0-1) experimental; urgency=low + + * gcc-3.4.0 final release. + + * Why experimental? + - Do not interfer with packages currently built from gcc-3.3 sources, + i.e. libgcc1, libobjc1, libffi2, libffi2-dev, libg2c0. + - Biarch sparc compiler doesn't built yet. + - Use of configure flags affecting binary ABI's not yet determined. + - Several ABI bugs have been fixed. Unfortunately, these changes will break + binary compatibility with earlier releases on several architectures: + alpha, mips, sparc, + - hppa and m68k changed sjlj based exception handling to dwarf2 based + exception handling. + + See NEWS.html or http://gcc.gnu.org/gcc-3.4/changes.html for more + specific information. + + -- Matthias Klose Tue, 20 Apr 2004 20:54:56 +0200 + +gcc-3.4 (3.4ds3-0pre4) experimental; urgency=low + + * Update to gcc-3.4 CVS 20040403. + * Add gpc tarball, gpc patches for 3.4 (Waldek Hebisch). + * Reenable sparc-biarch patches (closes: #239856). + * Build the shared libgnat library, needed to fix FTBFS for some + Ada library packages (Ludovic Brenta). + Currently enabled for hppa, i386, ia64. + + -- Matthias Klose Sat, 3 Apr 2004 08:47:55 +0200 + +gcc-3.4 (3.4ds1-0pre2) experimental; urgency=low + + * Update to gcc-3.4 CVS 20040320. + * For libstdc++6-doc, add a conflict to libstdc++5-3.3-doc (closes: #236560). + * For libstdc++6-dbg, add a conflict to libstdc++5-3.3-dbg (closes: #236798). + * Reenable s390-biarch patches. + * Update the cross compiler build files (Nikita V. Youshchenko). + + -- Matthias Klose Sat, 20 Mar 2004 09:15:10 +0100 + +gcc-3.4 (3.4ds0-0pre1) experimental; urgency=low + + * Start gcc-3.4 packaging, get rid of the epoch for most of the + packages. + + -- Matthias Klose Sun, 22 Feb 2004 16:00:03 +0100 + +gcc-3.3 (1:3.3.3ds6-6) unstable; urgency=medium + + * Update to gcc-3_3-branch CVS 20040401. + - Fixed ICE in emit_move_insn_1 on legal code (closed: #223215). + - Fix PR 14755, miscompilation of loops with bitfield counter. + Closes: #241255. + - Fix PR 16040, crash in function initializing const data with + reinterpret_cast-ed pointer-to-member function crashes (closes: #238621). + - Remove patches integrated upstream. + * Reenable build of gpidump on powerpc and s390. + + -- Matthias Klose Thu, 1 Apr 2004 23:51:54 +0200 + +gcc-3.3 (1:3.3.3ds6-5) unstable; urgency=medium + + * Update to gcc-3_3-branch CVS 20040321. + - Fix PR target/13889 (ICE on valid code on m68k). + * Fix FTFBS on s390. Do not build gpc's gpidump on s390. + * Reenable gpc on arm. + + -- Matthias Klose Mon, 22 Mar 2004 07:37:26 +0100 + +gcc-3.3 (1:3.3.3ds6-4) unstable; urgency=low + + * Update to gcc-3_3-branch CVS 20040320. + - Revert patch for PR14640 (with this, at least mozilla-firefox was + miscompiled on x86 (closes: #238621). + * Update the gpc tarball (there were two releases with the same name ...). + * Reenable gpc on alpha and ia64. + + -- Matthias Klose Sat, 20 Mar 2004 07:39:24 +0100 + +gcc-3.3 (1:3.3.3ds5-3) unstable; urgency=low + + * Update to gcc-3_3-branch CVS 20040314. + - Fixes miscompilation with -O -funroll-loops on powerpc (closes: #229567). + - Fix ICE in dwarf-2 on code using altivec (closes: #203835). + * Update hurd-changes patch. + * Add libgcj4-dev as a recommendation for gcj (closes: #236547). + * debian/copyright: Added exemption to static linking of libgcc. + + * Phil Blundell: + - debian/patches/arm-ldm.dpatch, debian/patches/arm-gotoff.dpatch: Update. + + -- Matthias Klose Sun, 14 Mar 2004 09:56:06 +0100 + +gcc-3.3 (1:3.3.3ds5-2) unstable; urgency=low + + * Update to gcc-3_3-branch CVS 20040306. + - Fixes bootstrap comparision error on ia64. + - Allows ghc build with gcc-3.3. + - On amd64, don't imply 3DNow! for -m64 by default. + - Some arm specific changes + - Fix C++/13944: exception in constructor of a class to be thrown is not + caught. Closes: #228099. + * Enable the build of gcc-3.3-hppa64 on hppa. + Add symlinks for as and ld to point to hppa64-linux-{as,ld}. + * gcj-3.3 depends on g++-3.3, recommends gij-3.3. gij-3.3 suggests gcj-3.3. + * Fix libgc2c-pic compatibility links (closes: #234333). + The link will be removed for gcc-3.4. + * g77-3.3: Conflict with other g77-x.y packages. + * Tighten shlibs dependencies to latest released versions. + + * Phil Blundell: + - debian/patches/arm-233633.dpatch: New Fixes problems with half-word + loads on ARMv3 architecture. (Closes: #233633) + - debian/patches/arm-ldm.dpatch: New. Avoids inefficient epilogue for + leaf functions in PIC code on ARM. + + -- Matthias Klose Sat, 6 Mar 2004 10:57:14 +0100 + +gcc-3.3 (1:3.3.3ds5-1) unstable; urgency=medium + + * gcc-3.3.3 final release. + See /usr/share/doc/gcc-3.3/NEWS.{gcc,html}. + + -- Matthias Klose Mon, 16 Feb 2004 08:59:52 +0100 + +gcc-3.3 (1:3.3.3ds4-0pre4) unstable; urgency=low + + * Update to gcc-3.3.3 CVS 20040214 (2nd gcc-3.3.3 prerelease). + * Fix title of libstdc++'s html main index (closes: #196381). + * Move libg2c libraray files out of the gcc specific libdir to /usr/lib. + For g77-3.3 add conflicts to other g77 packages. Closes: #224848. + * Update the stack protector patch to 3.3-7, but don't apply it by default. + Closes: #230338. + * On arm, use arm6 as the cpu default (backport from mainline, PR12527). + * Add libffi and libjava support for hppa (Randolph Chung). Closes: #232615. + + -- Matthias Klose Sat, 14 Feb 2004 09:26:15 +0100 + +gcc-3.3 (1:3.3.3ds3-0pre3) unstable; urgency=low + + * Update to gcc-3.3.3 CVS 20040125. + - Fixed PR11350, undefined labels with -Os -fPIC (closes: #195911). + - Fixed PR11793, ICE in extract_insn, at recog.c (closes: #203835). + - Fixed PR13544, removed backport for PR12862. + - Integrated backport for PR12441. + * Fixed since 3.3: java: not implemented interface methods of abstract + classes not found (closes: #225438). + * Disable pascal on arm architecture (currently broken). + * Update the build files to build a cross compiler (Nikita V. Youshchenko). + See debian/README.cross in the source package. + * Apply revised patch to make -mieee the default on alpha-linux, + and add -mieee-disable switch to turn the default off (closes: #212912). + (Tyson Whitehead) + + -- Matthias Klose Sun, 25 Jan 2004 17:41:04 +0100 + +gcc-3.3 (1:3.3.3ds2-0pre2) unstable; urgency=medium + + * Update to gcc-3.3.3 CVS 20040110. + - Fixes compilation not terminating at -O1 on hppa (closes: #207516). + * Add backport to fix PR12441 (closes: #224576). + * Revert backport to 3.3 branch to fix PR12862, which introduced another + regression (PR13544). Closes: #225663. + * Tighten dependency of gnat-3.3 on gcc-3.3 (closes: #226273). + * Disable treelang build for cross compiler build. + * Disable pascal on alpha and ia64 architectures (currently broken). + + -- Matthias Klose Sat, 10 Jan 2004 12:33:59 +0100 + +gcc-3.3 (1:3.3.3ds1-0pre1) unstable; urgency=low + + * Update to gcc-3.3.3 CVS 20031229. + - Fixes bootstrap error on ia64-linux. + - Fix -pthread on mips{,el}-linux (closes: #224875). + - Fix -Wformat for C++ (closes: #217075). + * Backport from mainline: Preserve inline-ness when redeclaring + a function template (closes: #195264). + * Add missing intrinsics headers on ix86 (closes: #224593). + * Fix location of libg2c libdir in libg2c.la file (closes: #224848). + + -- Matthias Klose Mon, 29 Dec 2003 10:36:29 +0100 + +gcc-3.3 (1:3.3.3ds0-0pre0.1) unstable; urgency=high + + * NMU + * Fixed mips(el) spec file for -pthread: (Closes: #224875) + * [debian/patches/mips-pthread.dpatch] New. + * [debian/rules.patch] Added it to debian_patches. + + -- J.H.M. Dassen (Ray) Sat, 27 Dec 2003 15:51:47 +0100 + +gcc-3.3 (1:3.3.3ds0-0pre0) unstable; urgency=low + + * Update to gcc-3.3.3 CVS 20031206. + - Fixes ICE in verify_local_live_at_start (hppa). Closes: #201550. + - Fixes miscompilation of linux-2.6/sound/core/oss/rate.c. + Closes: #219949. + * Add missing unwind.h to gcc package (closes: #220846). + * Regenerate control file to fix build dependencies for m68k. + * More gpc only patches to fix test failures on m68k. + * Reenable gpc for the Hurd (closes: #189851). + + -- Matthias Klose Sat, 6 Dec 2003 10:29:07 +0100 + +gcc-3.3 (1:3.3.2ds5-4) unstable; urgency=low + + * Update libffi-dev package description (closes: #219508). + * For gij and libgcj fix dependency on the libstdc++ package, if + the latter isn't installed during the build. + * Apply patch to emit .note.GNU-stack section on linux arches + which by default need executable stack. + * Prefer gnat-3.3 over gnat-3.2 as a build dependency. + * Update the pascal tarball (different version released with the + same name). + * Add pascal patches to address various gpc testsuite failures. + On alpha and ia64, build gpc from the 20030830 version. Reenable + the build on m68k. + Remove the 20030507 gpc version from the tarball. + * Apply patch to build the shared ada libs and link the ada tools + against the shared libs. Not enabled by default, because gnat + and gnatlib are rebuilt during install. (Ludovic Brenta) + + -- Matthias Klose Sun, 9 Nov 2003 22:34:33 +0100 + +gcc-3.3 (1:3.3.2ds4-3) unstable; urgency=low + + * Fix rules to omit inclusion of gnatpsta in mips(el) gnat package. + + -- Matthias Klose Sun, 2 Nov 2003 14:29:59 +0100 + +gcc-3.3 (1:3.3.2ds4-2) unstable; urgency=medium + + * s390-ifcvt patch added. Fixes gcl miscompilation (closes: #217240). + (Gerhard Tonn) + * Fix an infinite loop in g++ compiling lufs, regression from 3.3.1. + * Fix a wrong code generation bug on alpha. + (Falk Hueffner) + * Update NEWS files. + * Add Falk Hueffner to the Debian GCC maintainers. + * Enable ada on mips and mipsel, but don't build the gnatpsta tool. + + -- Matthias Klose Wed, 29 Oct 2003 00:12:37 +0100 + +gcc-3.3 (1:3.3.2ds4-1) unstable; urgency=medium + + * Update to gcc-3.3.2. + * Update NEWS files. + * Miscompilation in the pari package at -O3 fixed (closes: #198172). + * On alpha-linux, revert -mieee as the default (Falk Hueffner). + Reopens: #212912. + * Add ia64-unwind patch (Jeff Bailey). + * Closed reports reported against gcc-2.96 (ia64), fixed at least in gcc-3.3: + - ICE in verify_local_live_at_start, at flow.c:2733 (closes: #135404). + - Compilation failure of stlport (closes: #135224). + - Infinite loop compiling cssc's pfile.cc with -O2 (closes: #115390). + - Added missing some string::compare() members (closes: #141199). + - header declares std::pow (closes: #161853). + - does have at() method (closes: #59776). + - Fixed error in stl_deque.h (closes: #69530). + - Fixed problem with bastring (closes: #75759, #96539). + - bad_alloc and std:: namespace problem (closes: #75120). + - Excessive warnings from headers with -Weffc++ (closes: #76827). + + -- Matthias Klose Fri, 17 Oct 2003 08:07:01 +0200 + +gcc-3.3 (1:3.3.2ds3-0pre5) unstable; urgency=low + + * Update to gcc-3.3.2 CVS 20031005. + - Fixes cpp inserting a spurious newline (closes: #210478, #210482). + - Fixes generation of unrecognizable insn compiling kernel source + on alpha (closes: #202762). + - Fixes ICE in add_abstract_origin_attribute (closes: #212406). + - Fixes forward declaration in libstdc++ (closes: #209386). + - Fixes ICE in in extract_insn, at recog.c on alpha (closes: #207564). + * Make libgcj-common architecture all (closes: #211909). + * Build depend on: flex-old | flex (<< 2.5.31). + * Fix spec linking libraries with -pthread on powerpc (closes: #211054). + * debian/patches/arm-gotoff.dpatch: fix two kinds of PIC lossage. + (Phil Blundell) + * debian/patches/arm-common.dpatch: fix excessive alignment of common + blocks causing binutils testsuite failures. + (Phil Blundell) + * Update priorities in debian/control to match the archive. + (Ryan Murray) + * s390-nonlocal-goto patch added. Fixes some pascal testcase failures. + (Gerhard Tonn) + * On alpha-linux, make -mieee default and add -mieee-disable switch + to turn default off (closes: #212912). + (Tyson Whitehead) + * Add gpc upstream patch for memory corruption fix. + + -- Matthias Klose Sun, 5 Oct 2003 19:53:49 +0200 + +gcc-3.3 (1:3.3.2ds2-0pre4) unstable; urgency=low + + * Add gcc-unsharing_lhs patch (closes: #210848) + + -- Ryan Murray Fri, 19 Sep 2003 22:51:19 -0600 + +gcc-3.3 (1:3.3.2ds2-0pre3) unstable; urgency=low + + * Update to gcc-3.3.2 CVS 20030908. + * PR11716 (Michael Eager, Dan Jacobowitz): + Make GCC think that the maximum length of a short branch is + 64K instead of 128K. It's a big hammer, but it works. + Closes: #207915. + * Downgrade gpc to 20030507 on alpha and ia64 (closes: #208717). + + -- Matthias Klose Mon, 8 Sep 2003 21:49:52 +0200 + +gcc-3.3 (1:3.3.2ds1-0pre2) unstable; urgency=low + + * Update to gcc-3.3.2 CVS 20030831. + - Fix java NullPointerException detection with 2.6 kernels. + Closes: #206377. + - Fix bug in C++ typedef handling (closes: #205402). + - Fix -Wunreachable-code giving false complaints (closes: #196600). + * Update to gpc-20030830. + * Don't include /usr/share/java/repository into the class path according + to the new version of th Debian Java policy (closes: #205643). + * Build-Depend/Depend on libgc-dev. + + -- Matthias Klose Sun, 31 Aug 2003 08:56:53 +0200 + +gcc-3.3 (1:3.3.2ds0-0pre1) unstable; urgency=low + + * Remove the build dependency on locales for now. + + -- Matthias Klose Fri, 15 Aug 2003 07:48:18 +0200 + +gcc-3.3 (1:3.3.2ds0-0pre0) unstable; urgency=medium + + * Update to gcc-3.3.2 CVS 20030812. + - Fixes generation of wrong code for XDM-AUTHORIZATION-1 key generation + and/or validation. Closes: #196090. + * Update NEWS files. + * Change ix86 default CPU type for code generation: + - i386-linux -> i486-linux + - i386-gnu -> i586-gnu + - i386-freebsd-gnu -> i486-freebsd-gnu + Use -march=i386 to target i386 CPUs. + + -- Matthias Klose Tue, 12 Aug 2003 10:31:28 +0200 + +gcc-3.3 (1:3.3.1ds3-1) unstable; urgency=low + + * gcc-3.3.1 (taken from CVS 20030805). + - C++: Fix declaration conflicts (closes: #203351). + - Fix ICE on ia64 (closes: #203840). + + -- Matthias Klose Tue, 5 Aug 2003 20:38:02 +0200 + +gcc-3.3 (1:3.3.1ds2-0rc2) unstable; urgency=low + + * Update to gcc-3.3.1 CVS 20030728. + - Fix ICE in extract_insn, at recog.c:2148 on m68k. + Closes: #177840, #180375, #190818. + - Fix ICE while building libquicktime on alpha (closes: #192576). + - Fix failure to deal with using and private inheritance (closes: #202696). + * On sparc, /usr/lib was added to the library search path. Fix it. + * Closed reports reported against gcc-3.2.x and fixed in gcc-3.3: + - Fix error building the gcl package on arm (closes: #199835). + + -- Matthias Klose Mon, 28 Jul 2003 20:39:07 +0200 + +gcc-3.3 (1:3.3.1ds1-0rc1) unstable; urgency=low + + * Update to gcc-3.3.1 CVS 20030722 (3.3.1 release candidate 1). + - Fix ICE in copy_to_mode_reg on 64-bit targets (closes: #189365). + - Remove documentation about multi-line strings (closes: #194391). + - Correctly document -falign-* parameters (closes: #198269). + - out-of-class specialization of a private nested template class. + Closes: #193830. + - Tighten shlibs dependency due to new symbols in libgcc. + * README.Debian for libg2c0, describing the need for g77-x.y when + working with the g2c header and library (closes: #189059). + * Call make with -j, if USE_NJOBS is set and non-empty + in the environment. + * Add another two m68k patches, partly replacing the workarounds provided + by Roman Zippel. + * Add the stack protector patch, but don't apply it by default. Edit + debian/rules.patch to apply it (closes: #171699, #189494). + * Remove wrong symlinks from gnat package (closes: #201882). + * Closed reports reported against gcc-2.95 and fixed in newer versions: + - SMP kernel compilation on alpha (closes: #134197, #146883). + - ICE on arm while building imagemagick (closes: #173475). + * Closed reports reported against gcc-3.2.x and fixed in gcc-3.3: + - Miscompilation of octave2.1 on hppa (closes: #192296, #193804). + + -- Matthias Klose Sun, 13 Jul 2003 10:26:30 +0200 + +gcc-3.3 (1:3.3.1ds0-0pre0) unstable; urgency=medium + + * Update to gcc-3.3.1 CVS 20030626. + - Fix ICE on arm compiling xfree86 (closes: #195424). + - Fix ICE on arm compiling fftw (closes: #186185). + - Fix ICE on arm in change_address_1, affecting a few packages. + Closes: #197099. + - Fix ICE in merge_assigned_reloads building Linux 2.4.2x sched.c. + Closes: #195237. + - Do not warn about failing to inline functions declared in system headers. + Closes: #193049. + - Fix ICE on mips{,el} in propagate_one_insn (closes: #194330, #196091). + - Fix ICE on m68k in reg_overlap_mentioned_p (closes: #194749). + - Build crtbeginT.o on m68k (closes: #197613). + * Fix g++ man page symlink (closes: #196271). + * mips/mipsel: Depend on binutils (>= 2.14.90.0.4). Closes: #196744. + * Disable treelang on powerpc (again). Closes: #196915. + * Pass -encoding in gcj-wrapper. + + -- Matthias Klose Fri, 27 Jun 2003 00:14:43 +0200 + +gcc-3.3 (1:3.3ds9-3) unstable; urgency=low + + * Closing more reports, fixed in 3.2/3.3: + - ICE building texmacs on m68k (closes: #177433). + - libstdc++: doesn't define trunc(...) (closes: #105285). + - libstdc++: setw is ignored for strings output (closes: #52382, #76645). + * Add build support to omit the manual pages and info docs from the + packages, disabled by default. Wait for a Debian statement, which can + be cited. Adresses: #193787. + * Reenable the m68k-const patch, don't run the g77 testsuite on m68k. + Addresses ICEs (#177840, #190818). + * Update arm-xscale patch. + * libstdc++: use __attribute__(__unknown__), instead of (unknown). + Closes: #195796. + * Build-Depend on glibc (>= 2.3.1) to prevent incorrect builds on woody. + Request from Adrian Bunk. + * Add treelang-update patch (Tim Josling), reenable treelang on powerpc. + * Add -{cpp,gcc,g++,gcj,g77} symlinks (addresses: #189466). + * Make sure not to build using binutils-2.14.90.0.[12]. + + -- Matthias Klose Mon, 2 Jun 2003 22:35:45 +0200 + +gcc-3.3 (1:3.3ds9-2) unstable; urgency=medium + + * Correct autoconf-related snafu in newly added ARM patches (Phil Blundell). + * Correct libgcc1 dependency (closes: #193689). + * Work around ldd/dpkg-shlibs failure on s390x. + + -- Matthias Klose Sun, 18 May 2003 09:40:15 +0200 + +gcc-3.3 (1:3.3ds9-1) unstable; urgency=low + + * gcc-3.3 final release. + See /usr/share/doc/gcc-3.3/NEWS.{gcc,html}. + * First merge of i386/x86-64 biarch support (Arnd Bergmann). + Disabled by default. Closes: #190066. + * New gpc-20030507 version. + * Upstream gpc update to fix netbsd build failure (closes: #191407). + * Add arm-xscale.dpatch, arm-10730.dpatch, arm-tune.dpatch, copied + from gcc-3.2 (Phil Blundell). + * Closing bug reports reported against older gcc versions (some of them + still present in Debian, but not anymore as the default compiler). + Usually, forwarded bug reports are linked to + http://gcc.gnu.org/PR + The upstream bug number usually can be found in the Debian reports. + + * Closed reports reported against gcc-3.1.x, gcc-3.2.x and fixed in gcc-3.3: + - General: + + GCC accepts multi-line strings without \ or " " &c (closes: #2910). + + -print-file-name sometimes fails (closes: #161615). + + ICE: reporting routines re-entered (closes: #179597, #180937). + + Misplaced paragraph in gcc documentation (closes: #179363). + + Error: suffix or operands invalid for `div' (closes: #150558). + + builtin memcmp() could be optimised (closes: #85535). + - Ada: + + Preelaborate, exceptions, and -gnatN (closes: #181679). + - C: + + Duplicate loop conditions even with -Os (closes: #94701). + + ICE (signal 11) (closes: #65686). + - C++: + + C++ error on virtual function which uses ... (closes: #165829). + + ICE when warning about cleanup nastiness in switch statements + (closes: #184108). + + Fails to compile virtual inheritance with variable number of + argument method (closes: #151357). + + xmmintrin.h broken for c++ (closes: #168310). + + Stack corruption with variable-length automatic arrays and virtual + destructors (closes: #188527). + + ICE on illegal code (closes: #184862). + + _attribute__((unused)) is ignored in C++ (closes: #45440). + + g++ handles &(void *)foo bizzarely (closes: #79225). + + ICE (with wrong code, though) (closes: #81122). + - Java: + + Broken zip file handling (closes: #180567). + - ObjC: + + @protocol forward definitions do not work (closes: #80468). + - Architecture specific: + - alpha + + va_start is off by one (closes: #186139). + + ICE while building kseg/ddd (closes: #184753). + + g++ -O2 optimization error (closes: #70743). + - arm + + ICE with -O2 in change_address_1 (closes: #180750). + + gcc optimization error with -O2, affecting bison (closes: #185903). + - hppa + + ICE in insn_default_length (closes: #186447). + - ia64 + + gcc-3.2 fails w/ optimization (closes: #178830). + - i386 + + unnecessary generation of instruction cwtl (closes: #95318). + + {athlon} ICE building mplayer (closes: #184800). + + {pentium4} ICE while compiling mozilla with -march=pentium4 + (closes: #187910). + + i386 optimisation: joining tests (closes: #105309). + - m68k + + ICE in instantiate_virtual_regs_1 (closes: #180493). + + gcc optimizer bug on m68k (closes: #64832). + - powerpc + + ICE in extract_insn, at recog.c:2175 building php3 (closes: #186299). + + ICE with -O -Wunreachable-code (closes: #189702). + - s390 + + Operand out of range at assembly time when using -O2 + (closes: #178596). + - sparc + + gcc-3.2 regression (wrong code) (closes: #176387). + + ICE in mem_loc_descriptor when optimizing (closes: #178909). + + ICE in gen_reg_rtx when optimizing (closes: #178965). + + Optimisation leads to unaligned access in memcpy (closes: #136659). + + * Closed reports reported against gcc-3.0 and fixed in gcc-3.2.x: + - General: + + Use mkstemp instead of mktemp (closed: #127802). + - Preprocessor: + + Fix redundant error message from cpp (closed: #100722). + - C: + + Optimization issue on ix86 (pointless moving) (closed: #97904). + + Miscompilation of allegro on ix86 (closed: #105741). + + Fix generation of ..ng references for static aliases (alpha-linux). + (closed: #108036). + + ICE compiling pari on hppa (closed: #111613). + + ICE on ia64 in instantiate_virtual_regs_1 (closed: #121668). + + ICE in c-typeck.c (closed: #123687). + + ICE in gen_subprogram_die on alpha (closed: #127890). + + SEGV in initialization of flexible char array member (closed: #131399). + + ICE on arm compiling lapack (closed: #135967). + + ICE in incomplete_type_error (closed: #140606). + + Fix -Wswitch (also part of -Wall) (closed: #140995). + + Wrong code in mke2fs on hppa (closed: #150232). + + sin(a) * sin(b) gives wrong result (closed: #164135). + - C++: + + Error in std library headers on arm (closed: #107633). + + ICE nr. 19970302 (closed: #119635). + + std::wcout does not perform encoding conversions (closed: #128026). + + SEGV, when compiling iostream.h with -fPIC (closed: #134315). + + Fixed segmentation fault in included code for (closed: #137017). + + Fix with exception handling and -O (closed: #144232). + + Fix octave-2.1 build failure on ia64 (closed: #144584). + + nonstandard overloads in num_get facet (closed: #155900). + + ICE in expand_end_loop with -O (closed: #158371). + - Fortran: + + Fix blas build failure on arm (closed: #137959). + - Java: + + Interface members are public by default (closed: #94974). + + Strange message with -fno-bounds-check in combination with -W. + (closed: #102353). + + Crash in FileWriter using IOException (closed: #116128). + + Fix ObjectInputStream.readObject() calling constructors. + (closed: #121636). + + gij: better error reporting on `class not found' (closed: #125649). + + Lockup during .java->.class compilation (closed: #141899). + + Compile breaks using temporary inner class instance (closed: #141900). + + Default constructor for inner class causes broken bytecode. + (closed: #141902). + + gij-3.2 linked against libgcc1 (closed: #165180). + + gij-wrapper understands -classpath parameter (closed: #146634). + + gij-3.2 doesn't ignore -jar when run as "java" (closed: #167673). + - ObjC: + + ICE on alpha (closed: #172353). + + * Closed reports reported against gcc-2.95 and fixed in newer versions: + - General: + + Undocumented option -pthread (closes: #165110). + + stdbool.h broken (closes: #167439). + + regparm/profiling breakage (closes: #20695). + + another gcc optimization error (closes: #51456). + + ICE in `output_fix_trunc' (closes: #55967). + + Fix "Unable to generate reloads for" (closes: #58219, #131890). + + gcc -c -MD x/y.c -o x/y.o leaves y.d in cwd (closes: #59232). + + Compiler error with -O2 (closes: #67631). + + ICE (unrecognizable insn) compiling php4 (closes: #83550, #84969). + + Another ICE (closes: #90666). + + man versus info inconsistency (-W and -Wall) (closes: #93708). + + ICE on invalid extended asm (closes: #136630). + + ICE in `emit_no_conflict_block' compiling perl (closes: #154599). + + ICE in `gen_tagged_type_instantiation_die'(closes: #166766). + + ICE on __builtin_memset(s, 0, -1) (closes: #170994). + + -Q option to gcc appears twice in the documentation (closes: #137382). + + New options for specifying targets:- -MQ and -MT (closes: #27878). + + Configure using --enable-nls (closes: #51651). + + gcc -dumpspecs undocumented (closes: #65406). + - Preprocessor: + + cpp fails to parse macros with varargs correctly(closes: #154767). + + __VA_ARGS__ stringification crashes preprocessor if __VA_ARGS__ is + empty (closes: #152709). + + gcc doesn't handle empty args in macro function if there is only + one arg(closes: #156450). + - C: + + Uncaught floating point exception causes ICE (closes: #33786). + + gcc -fpack-struct doesn't pack structs (closes: #64628). + + ICE in kernel (matroxfb) code (closes: #151196). + + gcc doesn't warn about unreachable code (closes: #158704). + + Fix docs for __builtin_return_address(closes: #165992). + + C99 symbols in limits.h not defined (closes: #168346). + + %zd printf spec generates warning, even in c9x mode (closes: #94891). + + Update GCC attribute syntax (closes: #12253, #43119). + - C++ & libstdc++-v3: + + template and virtual inheritance bug (closes: #152315). + + g++ has some troubles with nested templates (closes: #21255). + + vtable thunks implementation is broken (closes: #34876, #35477). + + ICE for templated friend (closes: #42662). + + ICE compiling mnemonic (closes: #42989). + + Deprecated: result naming doesn't work for functions defined in a + class (closes: #43170). + + volatile undefined ... (closes: #50529). + + ICE concerning templates (closes: #53698). + + Program compiled -O3 -malign-double segfaults in ofstream::~ofstream + (closes: #56867). + + __attribute__ ((constructor)) doesn't work with C++ (closes: #61806). + + Another ICE (closes: #65687). + + ICE in `const_hash' (closes: #72933). + + ICE on illegal code (closes: #83221). + + Wrong code with -O2 (closes: #83363). + + ICE on template class (closes: #85934). + + No warning for missing return in non-void member func (closes: #88260). + + Not a bug/fixed in libgcc1: libgcc.a symbols end up exported by + shared libraries (closes: #118670). + + ICE using nested templates (closes: #118781). + + Another ICE with templates (closes: #127489). + + More ICEs (closes: #140427, #141797). + + ICE when template declared after use(closes: #148603). + + template function default arguments are not handled (closes: #157292). + + Warning when including stl.h (closes: #162074). + + g++ -pedantic-errors -D_GNU_SOURCE cannot #include + (closes: #151671). + + c++ error message improvement suggestion (closes: #46181). + + Compilation error in stl_alloc.h with -fhonor-std (closes: #59005). + + libstdc++ has no method at() in stl_= (closes: #68963). + - Fortran: + + g77 crash (closes: #130415). + - ObjC: + + ICE: program cc1obj got fatal signal 11 (closes: #62309). + + Interface to garbage collector is undocumented. (closes: #68987). + - Architecture specific: + - alpha + + Can't compile with define gnu_source with stdio and curses + (closes: #97603). + + Header conflicts on alpha (closes: #134558). + + lapack-dev: cannot link on alpha (closes: #144602). + + ICE `fixup_var_refs_1' (closes: #43001). + + Mutt segv on viewing list of attachments (closes: #47981). + + ICE building open-amulet (closes: #48530). + + ICE compiling hatman (closes: #55291). + + dead code removal in switch() broken (closes: #142844). + - arm + + Miscompilation using -fPIC on arm (closes: #90363). + + infinite loop with -O on arm (closes: #151675). + - i386 + + ICE when using -mno-ieee-fp and -march=i686 (closes: #87540). + - m68k + + Optimization (-O2) broken on m68k (closes: #146006). + - mips + + g++ exception catching does not work... (closes: #105569). + + update-menus gets Bus Error (closes: #120333). + - mipsel + + aspell: triggers ICE on mipsel (closes: #128367). + - powerpc + + -O2 produces wrong code (gnuchess example) (closes: #131454). + - sparc + + Misleading documentation for -malign-{jump,loop,function}s + (closes: #114029). + + Sparc GCC issue with -mcpu=ultrasparc (closes: #172956). + + flightgear: build failure on sparc (closes: #88694). + + -- Matthias Klose Fri, 16 May 2003 07:13:57 +0200 + +gcc-3.3 (1:3.3ds8-0pre9) unstable; urgency=high + + * gcc-3.3 second prerelease. + - Fixing exception handling on s390 (urgency high). + * Reenabled gpc build (I had it disabled ...). Closes: #192347. + + -- Matthias Klose Fri, 9 May 2003 07:32:14 +0200 + +gcc-3.3 (1:3.3ds8-0pre8) unstable; urgency=low + + * gcc-3.3 prerelease. + - Fixes gcj ICE (closes: #189545). + * For libstdc++ use the i486 atomicity implementation, introduced with + 0pre6, left out in 0pre7 (closes: #191684). + * Add README.Debian for treelang (closes: #190812). + * Apply NetBSD changes (Joel Baker). Closes: #191551. + * New symbols in libgcc1, tighten the shlibs dependency. + * Disable testsuite run on mips/mipsel because of an outdated libc-dev + package. + * Do not build libffi with debug information, although configuring + with --enable-debug. + + -- Matthias Klose Tue, 6 May 2003 06:53:49 +0200 + +gcc-3.3 (1:3.3ds7-0pre7) unstable; urgency=low + + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030429). + * Revert upstream libstdc++ change (closes: #191145, #191147, #191148, + #191149, #149159, #149151, and other reports). + Sorry for not detecting this before the upload, seems to be + broken on i386 "only". + * hurd-i386: Use /usr/include, not /include. + * Disable gpc on hurd-i386 (closes: #189851). + * Disable building the debug version of libstdc++ on powerpc-linux + (fixes about 200 java test cases). + * Install libstdc++v3 man pages (closes: #127263). + + -- Matthias Klose Tue, 29 Apr 2003 23:28:44 +0200 + +gcc-3.3 (1:3.3ds6-0pre6) unstable; urgency=high + + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030426). + * libstdc++-doc: Fix index.html link (closes: #189424). + * Revert back to the i486 atomicity implementation, that was used + for gcc-3.2 as well. Reopens: #184446, #185662. Closes: #189983. + For this reason, tighten the libstdc++5 shlibs dependency. See + http://lists.debian.org/debian-devel/2003/debian-devel-200304/msg01895.html + Don't build the ix86 specfic libstdc++ libs anymore. + + -- Matthias Klose Sun, 27 Apr 2003 19:47:54 +0200 + +gcc-3.3 (1:3.3ds5-0pre5) unstable; urgency=low + + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030415). + * Disable treelang on powerpc. + * Disable gpc on m68k. + * Install locale data. Conflict with gcc-3.2 (<= 1:3.2.3-0pre8). + * Fix generated bits/atomicity.h (closes: #189183). + * Tighten libgcc1 shlibs dependency (new symbol _Unwind_Backtrace). + + -- Matthias Klose Wed, 16 Apr 2003 00:37:05 +0200 + +gcc-3.3 (1:3.3ds4-0pre4) unstable; urgency=low + + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030412). + * Avoid sparc64 dependencies for libgcc1 on sparc (Clint Adams). + * Make the default sparc 32bit target v8 instead of v7. This mainly + enables hardmul, which should speed up v8 and v9 systems by a large + margin (Ben Collins). + * Tighten binutils dependency for sparc. + * On i386, build libstdc++ optimized for i486 and above. The library + in /usr/lib is built for i386. Closes: #184446, #185662. + * Add gpc build (from gcc-snapshot package). + * debian/control: Include all packages, that _can_ be built from + this source package (except the cross packages). + * Add m68k patches: m68k-const, m68k-subreg, m68k-loop. + * Run the 3.3 testsuite a second time with the installed gcc-3.2 + to check for regressions (promised, only this time, and for the + final release ;). Add build dependencies (gobjc-3.2, g77-3.2, g++-3.2). + + -- Matthias Klose Sat, 12 Apr 2003 10:11:11 +0200 + +gcc-3.3 (1:3.3ds3-0pre3) unstable; urgency=low + + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030331). + * Reenable java on arm. + * Build-Depend on binutils-2.13.90.0.18-1.3 on m68k. Fixes all + bprob/gcov testsuite failures. + * Enable C++ build on arm. + * Enable the sparc64 build. + + -- Matthias Klose Mon, 31 Mar 2003 23:24:54 +0200 + +gcc-3.3 (1:3.3ds2-0pre2) unstable; urgency=low + + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030317). + * Disable building the gcc-3.3-nof package. + * Disable Ada on mips and mipsel. + * Remove the workaround to build Ada on powerpc. + * Add GNU Free documentation license to copyright file. + * Update the sparc64 build patches (Clint Adams). Not yet enabled. + * Disable C++ on arm (Not yet tested). + * Add fix for ICE on powerpc (see: #184684). + + -- Matthias Klose Sun, 16 Mar 2003 21:40:57 +0100 + +gcc-3.3 (1:3.3ds1-0pre1) unstable; urgency=low + + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030310). + * Add gccbug manpage. + * Don't build libgnat package (no shared library). + * Configure with --enable-sjlj-exceptions on hppa and m68k for + binary compatibility with libstdc++ built with gcc-3.2. + * Disable Java on arm-linux (never seen it sucessfully bootstrap). + * Install non-conflicting baseline README. + * multilib *.so and *.a moved to /usr/lib/gcc-lib/... , so that several + compiler versions can be installed concurrently. + * Remove libstdc++-incdir patch applied upstream. + * libstdc++ 64 bit development files now handled in -dev target. + (Gerhard Tonn) + * Drop build dependencies for gpc (tetex-bin, help2man, libncurses5-dev). + * Add libstdc++5-3.3-dev confict to libstdc++5-dev (<= 1:3.2.3-0pre3). + * Enable builds on m68k (all but C++ for the moment). gcc-3.3 bootstraps, + while gcc-3.2 doesn't. + + -- Matthias Klose Mon, 10 Mar 2003 23:41:00 +0100 + +gcc-3.3 (1:3.3ds0-0pre0) unstable; urgency=low + + * First gcc-3.3 package, built for s390 only. All other architectures + build the gcc-3.3-base package only. + To build the package on other architectures, edit debian/rules.defs + (macro no_dummy_archs). + * gcc-3.3 prerelease taken from the gcc-3_3-branch (CVS 20030301). + * Don't include the gcc locale files (would conflict with 3.2). + * Remove libffi-install-fix patch. + * Fix netbsd-i386 patches. + * Change priority of libstdc++5 and gcc-3.2-base to important. + * Install gcjh-wrapper for javah. + * gij suggests fastjar, gcj recommends fastjar. + * Allow builds using automake1.4 | automake (<< 1.5). + * Backport fix for to output more correct line numbers. + * Add help2man to build dependencies needed for some gpc man pages. + * gpc: Install binobj and gpidump binaries and man pages. + * Apply cross compilation patches submitted by Bastian Blank. + * Replace s390-biarch patch and copy s390-config-ml patch from 3.2 + (Gerhard Tonn). + * Configure using --enable-debug. + * Add infrastructure to only build a subset of binary packages. + * Rename libstdc++-{dev,dbg,pic,doc} packages. + * Build treelang compiler. + + -- Matthias Klose Sat, 1 Mar 2003 12:56:42 +0100 + +gcc-3.2 (1:3.2.3ds2-0pre3) unstable; urgency=low + + * gcc-3.2.3 prerelease (CVS 20030228) + - Fixes bootstrap failure on alpha-linux. + - Fixes ICE on m68k (closes: #177016). + * Build Pascal with -O1 on powerpc, disable Pascal on arm, m68k and + sparc (due to wrong code generation for fwrite in glibc, + see PR optimization/9279). + * Apply cross compilation patches submitted by Bastian Blank. + + -- Matthias Klose Fri, 28 Feb 2003 20:26:30 +0100 + +gcc-3.2 (1:3.2.3ds1-0pre2) unstable; urgency=medium + + * gcc-3.2.3 prerelease (CVS 20030221) + - Fixes ICE on hppa (closes: #181813). + * Patch for ffitest in s390-java.dpatch deleted, since already fixed + upstream. (Gerhard Tonn) + * Build crtbeginT.o on m68k-linux (closes: #179807). + * Install gcjh-wrapper for javah (closes: #180218). + * gij suggests fastjar, gcj recommends fastjar (closes: #179298). + * Allow builds using automake1.4 | automake (<< 1.5) (closes: #180048). + * Backport fix for to output more correct line numbers (closes: #153965). + * Add help2man to build dependencies needed for some gpc man pages. + * gpc: Install binobj and gpidump binaries and man pages. + * Disable gpc on arm due to wrong code generation for fwrite in + glibc (see PR optimization/9279). + + -- Matthias Klose Sat, 22 Feb 2003 19:58:20 +0100 + +gcc-3.2 (1:3.2.3ds0-0pre1) unstable; urgency=low + + * gcc-3.2.3 prerelease (CVS 20030210) + - Fixes long millicode calls on hppa (closes: #180520) + * New gpc-20030209 version. Remove gpc-update.dpatch and gpc-testsuite.dptch + as they are no longer needed. + * Fix netbsd-i386 patches (closes: #180129, #179931) + * m68k-bootstrap.dpatch: backport gcse.c changes from 3.3/MAIN to 3.2 + * Change priority of libstdc++5 and gcc-3.2-base to important. + + -- Ryan Murray Tue, 11 Feb 2003 06:18:09 -0700 + +gcc-3.2 (1:3.2.2ds8-1) unstable; urgency=low + + * gcc-3.2.2 release. + - Fixes ICE, regression from 2.95 (closes: #176117). + - Fixes ICE, regression from 2.95 (closes: #179161). + * libstdc++ for biarch installs now upstream to usr/lib64, + therefore mv usr/lib/64 usr/lib64 no longer necessary. (Gerhard Tonn) + + -- Ryan Murray Wed, 5 Feb 2003 01:35:29 -0700 + +gcc-3.2 (1:3.2.2ds7-0pre8) unstable; urgency=low + + * gcc-3.2.2 prerelease (CVS 20030130). + * update s390 libffi patch + * debian/control: add myself to uploaders and change libc12-dev depends to + libc-dev on i386 (closes: #179128) + * Build-Depend on procps so that ps is available for logwatch + + -- Ryan Murray Fri, 31 Jan 2003 04:00:15 -0700 + +gcc-3.2 (1:3.2.2ds6-0pre7) unstable; urgency=low + + * gcc-3.2.2 prerelease (CVS 20030128). + - Update needed for hppa. + - Fixes ICE on arm, regression from 2.95.x (closes: #168086). + - Can use default bison (1.875). + * Apply netbsd build patches (closes: #177674, #178328, #178325, + #178326, #178327). + * Run the logwatch script on "slow" architectures (arm, m68k) only. + * autoreconf.dpatch: Only update libtool.m4, which is newer conceptually + than libtool 1.4 (Ryan Murray). + * Apply autoreconf patch universally (Ryan Murray). + * More robust gij/gcj wrapper scripts, include /usr/lib/jni in default + JNI search path (Ben Burton). Closes: #167932. + * Build crtbeginT.o on m68k (closes: #177036). + * Fixed libc-dev source dependency (closes: #178602). + * Tighten shlib dependency to the current package version; should be + 1:3.2.2-1 for the final release (closes: #178867). + + -- Matthias Klose Tue, 28 Jan 2003 21:59:30 +0100 + +gcc-3.2 (1:3.2.2ds5-0pre6) unstable; urgency=low + + * gcc-3.2 snapshot taken from the gcc-3_2-branch (CVS 20030123). + * Build locales needed by the libstdc++ testsuite. + * Update config.{guess,sub} files from autotools-dev (closes: #177674). + * Disable Ada and Java on netbsd-i386 (closes: #177679). + * gnat: Add suggests for gnat-doc and ada-reference-manual. + + -- Matthias Klose Thu, 23 Jan 2003 22:16:53 +0100 + +gcc-3.2 (1:3.2.2ds4-0pre5.1) unstable; urgency=low + + * Readd build dependency `locales' on arm. locales is now installable + * Add autoreconf patch for mips{,el}. (closes: #176311) + + -- Ryan Murray Wed, 22 Jan 2003 14:31:14 -0800 + +gcc-3.2 (1:3.2.2ds4-0pre5) unstable; urgency=low + + * Remove build dependency `libc6-dev-sparc64 [sparc]' for now. + * Remove build dependency `locales' on arm. locales is uninstallable + on arm due to the missing glibc-2.3. + * Use bison-1.35. bison-1.875 causes an hard error on the reduce/reduce + conflict in objc-parse.y. + + -- Matthias Klose Fri, 10 Jan 2003 10:10:43 +0100 + +gcc-3.2 (1:3.2.2ds4-0pre4) unstable; urgency=low + + * Try building with gcc-2.95 on m68k-linux. Building gcc-3.2 with gcc-3.2 + does not work for me. m68k-linux doesn't look good at all ... + * Fix s390 build error. + * Add locales to build dependencies. A still unsolved issue is the + presence of the locales de_DE, en_PH, en_US, es_MX, fr_FR and it_IT, + or else some tests in the libstdc++ testsuite will fail. + * Put all -nof files in the -nof package (closes: #175253). + * Correctly exit logwatch script (closes: #175251). + * Install linker-map.gnu file for libstdc++_pic (closes: #175144). + * Install versioned gpcs docs only (closes: #173844). + * Include gpc test results in gpc package. + * Link local libstdc++ documentation to local source-level documentation. + * Clarify libstdc++ description (so version and library version). + Closes: #175799. + * Include library in libstdc++-dbg package (closes: #176005). + + -- Matthias Klose Wed, 8 Jan 2003 23:39:50 +0100 + +gcc-3.2 (1:3.2.2ds3-0pre3) unstable; urgency=low + + * gcc-3.2 snapshot taken from the gcc-3_2-branch (CVS 20021231). + - Fix loop count computation for preconditioned unrolled loops. + Closes: #162919. + - Fix xmmintrin.h (_MM_TRANSPOSE4_PS) CVS 20021027 (closes: #163647). + - Fix [PR 8601] strlen/template interaction causes ICE CVS 20021201. + Closes: #166143. + * Watch the log files, which are written during the testsuite runs and print + out a message, if there is still activity. No more buildd timeouts on arm + and m68k ... + * Remove gpc's reference to librx1g-dev package (closes: #172953). + * Remove trailing dots on package descriptions. + * Fix external reference to cpp.info in gcc.info (closes: #174598). + + -- Matthias Klose Tue, 31 Dec 2002 13:47:52 +0100 + +gcc-3.2 (1:3.2.2ds2-0pre2) unstable; urgency=medium + + * Friday, 13th upload, so what do you expect ... + * gcc-3.2 snapshot taken from the gcc-3_2-branch (CVS 20021212). + * Fix gnat build (autobuild maintainers: please revert back to gnat-3.2 + (<= 1:3.2.1ds6-1) for building gnat-3.2, if the build fails building + gnatlib and gnattools). + * Really disable sparc64 support. + + -- Matthias Klose Fri, 13 Dec 2002 00:26:37 +0100 + +gcc-3.2 (1:3.2.2ds1-0pre1) unstable; urgency=low + + * A candidate for the transition ... + * gcc-3.2 snapshot taken from the gcc-3_2-branch (CVS 20021210). + - doc/invoke.texi: Remove last reference to -a (closes: #171748). + * Disable sparc64 support. For now please use egcs64 to build sparc64 + kernels. + * Disable Pascal on the sparc architecture (doesn't bootstrap). + + -- Matthias Klose Tue, 10 Dec 2002 22:33:13 +0100 + +gcc-3.2 (1:3.2.2ds0-0pre0) unstable; urgency=low + + * gcc-3.2 snapshot taken from the gcc-3_2-branch (CVS 20021202). + - Should fix _Pragma expansion within macros (closes: #157416). + * New gpc-20021128 version. Run check using EXTRA_TEST_PFLAGS=-g0 + * Add tetex-bin to build dependencies (gpc needs it). Closes: #171203. + + -- Matthias Klose Tue, 3 Dec 2002 08:22:33 +0100 + +gcc-3.2 (1:3.2.1ds6-1) unstable; urgency=low + + * gcc-3.2.1 final release. + * Build gpc-20021111 for all architectures. hppa and i386 are + known to work. For the other architectures, send the usual FTBFS ... + WARNING: this gpc version is an alpha version, especially debug info + doesn't work well, so use -g0 for compiling. If you need a stable + gpc compiler, use gpc-2.95. + * Encode the gpc upstream version in the package name, the gpc release + date in the version number (requested by gpc upstream). + * Added libncurses5-dev and libgmp3-dev as build dependencies for the + gpc tests and runtime. + * Clean CVS files as well (closes: #169101). + * s390-biarch.dpatch added, backported from CVS (Gerhard Tonn). + * s390-config-ml.dpatch added, disables biarch for java, + libffi and boehm-gc on s390. They need a 64 bit runtime + during build which is not yet available on s390 (Gerhard Tonn). + * Biarch support for packaging adapted (Gerhard Tonn). + biarch variable added and with-sparc64 variable substituted in + most places by biarch. + dh_shlibdeps is applied only to 32 bit libraries on s390, since + ldd for 64 bit libraries don't work on 32 bit runtime. + Build dependency to libc6-dev-s390x added. + + -- Matthias Klose Wed, 20 Nov 2002 00:20:58 +0100 + +gcc-3.2 (1:3.2.1ds5-0pre6) unstable; urgency=medium + + * gcc-3.2.1 prerelease. + * Removed arm patch integrated upstream. + * Adjust gnat build dependency (closes: #167116). + * Always configure with --enable-clocale=gnu. The autobuilders do have + locales installed, but not generated the "de_DE" locale needed for + the autoconf test in libstdcc++-v3/aclocal.m4. + * libstdc++ documentaion: Don't compresss '*.txt' referenced by html pages. + + -- Matthias Klose Tue, 12 Nov 2002 07:19:44 +0100 + +gcc-3.2 (1:3.2.1ds4-0pre5) unstable; urgency=medium + + * gcc-3.2.1 snapshot (CVS 20021103). + * sparc64-build.dpatch: Updated. Lets sparc boostrap again. + * s390-loop.dpatch removed, already fixed upstream (Gerhard Tonn). + * bison.dpatch: Removed, patch submitted upstream. + * backport-java-6865.dpatch: Apply again during build. + * Tighten glibc dependency (closes: #166703). + + -- Matthias Klose Sun, 3 Nov 2002 12:22:02 +0100 + +gcc-3.2 (1:3.2.1ds3-0pre4) unstable; urgency=high + + * gcc-3.2.1 snapshot (CVS 20021020). + - Expansion of _Pragma within macros fixed (closes: #157416). + * FTBFS: With the switch to bison-1.50 (and 1.75), gcc-3.2 fails to build from + source on Debian unstable systems. This is fixed in gcc HEAD, but not on + the current release branch. + HELP NEEDED: + - check what is missing from the patches in debian/patches/bison.dpatch. + This is a backport of the bison related patches, but showing regressions + in the gcc testsuite, so it cannot be applied. + - build gcc using byacc (bootstrap currently fails using byacc). + - build bison-1.35 in it's own package (the current 1.35-3 package fails + to build form source). + - and finally ask upstream to backport the patch to the branch. It's not + helpful not beeing able to follow the stable branch. Maybe we should + just switch to gcc HEAD as BSD does ... + As a terrible workaround, build the sources from CVS first on a machine, + with bison-1.35 installed, then package the tarball, so the bison + generated files are not rebuilt. + + * re-add lost patch: configure with --enable-__cxa_atexit (closes: #163422), + Therefore urgency high. + * gcj-wrapper, gij-wrapper: Accept names starting with `.' (closes: #163172, + #164009). + * Point g++ manpage to correct g++ version (closes: #162843). + * Support for i386-freebsd-gnu (closes: #163883). + * s390-java.dpatch replaced with backport from cvs head (Gerhard Tonn). + * Disable the testsuite run on the Hurd (closes: #159650). + * s390-loop.dpatch added, fixes runtime problem (Gerhard Tonn). + * debian/patches/bison.dpatch: Backport for bison-1.75 compatibility. + Don't use it due to regressions. + * debian/patches/backport-java-6865.dpatch: Directly applied in the + included tarball because of bison problems. + * Make fixincludes priority optional, so linda can depend on it. + * Tighten binutils dependency. + + -- Matthias Klose Sun, 20 Oct 2002 10:52:49 +0200 + +gcc-3.2 (1:3.2.1ds2-0pre3) unstable; urgency=low + + * gcc-3.2.1 snapshot (CVS 20020923). + * Run the libstdc++ check-abi script. Results are put into the file + /usr/share/doc/libstdc++5/README.libstdc++-baseline in the libstdc++5-dev + package. This file contains a new baseline, if no baseline for this + architecture is included in the gcc sources. + * gcj-wrapper: Accept files starting with an underscore, accept + path names (closes: #160859, #161517). + * Explicitely call automake-1.4 when rebuilding Makefiles (closes: #161438). + * Let installed fixincludes script find files in /usr/lib/fixincludes. + * debian/rules.patch: Add .NOTPARALLEL as target, so that patches are + applied sequentially (closes: #159395). + + -- Matthias Klose Tue, 24 Sep 2002 07:36:56 +0200 + +gcc-3.2 (1:3.2.1ds1-0pre2) unstable; urgency=low + + * gcc-3.2.1 snapshot (CVS 20020913). Welcome back m68k in bootstrap land! + * Fix arm-tune.dpatch (closes: #159354). + * Don't overwrite LD_LIBRARY_PATH in build (closes: #158459). + * --disable-__cxa_atexit on NetBSD (closes: #159620). + * Reenable installation of message catalogs (disabled in 3.2-0pre2). + Closes: #160175. + * Ben Collins + - Re-enable sparc64 build. This time, it's part of the default compiler. + I have disabled 64/alt libraries as they are too much overhead. All + libraries build 64bit, but currently only libgcc/libstdc++ include the + 64bit libraries. + Closes: #160404. + * Depend on autoconf2.13, instead of autoconf. + * Phil Blundell + - debian/patches/arm-update.dpatch: Fix python2.2 build failure. + + -- Matthias Klose Sat, 7 Sep 2002 08:05:02 +0200 + +gcc-3.2 (1:3.2.1ds0-0pre1) unstable; urgency=medium + + * gcc-3.2.1 snapshot (CVS 20020829). + New g++ option -Wabi: + Warn when G++ generates code that is probably not compatible with the + vendor-neutral C++ ABI. Although an effort has been made to warn about + all such cases, there are probably some cases that are not warned about, + even though G++ is generating incompatible code. There may also be + cases where warnings are emitted even though the code that is generated + will be compatible. + The current version of the ABI is 102, defined by the __GXX_ABI_VERSION + macro. + * debian/NEWS.*: Updated. + * Fix libstdc++-dev dependency on libc-dev for the Hurd (closes: #157004). + * Add versioned expect build dependency. + * Tighten binutils dependency to 2.13.90.0.4. + * debian/patches/arm-tune.dpatch: Increase stack limit for configure. + * 3.2-0pre4 did build gnat-3.2 compilers for all architectures. Build-Depend + on gnat-3.2 now (closes: #156734). + * Remove bashism's in gcj-wrapper (closes: #157982). + * Add -cp and -classpath options to gij(1). Backport from HEAD (#146634). + * Add fastjar documentation. + + -- Matthias Klose Fri, 30 Aug 2002 10:35:00 +0200 + +gcc-3.2 (1:3.2ds0-0pre4) unstable; urgency=low + + * Correct build dependency on gnat-3.1. + + -- Matthias Klose Mon, 12 Aug 2002 01:21:58 +0200 + +gcc-3.2 (1:3.2ds0-0pre3) unstable; urgency=low + + * gcc-3.2 upstream prerelease. + * Disable all configure options, which are standard: + --enable-threads=posix --enable-long-long, --enable-clocale=gnu + + -- Matthias Klose Fri, 9 Aug 2002 21:59:08 +0200 + +gcc-3.2 (1:3.2ds0-0pre2) unstable; urgency=low + + * gcc-3.2 snapshot (CVS 20020802). + * Fix g++-include dir. + * Don't install the locale files (temporarily, until we don't build + gcc-3.1 anymore). + * New package libgcj-common to avoid conflict with classpath package. + + -- Matthias Klose Sat, 3 Aug 2002 09:08:34 +0200 + +gcc-3.2 (1:3.2ds0-0pre1) unstable; urgency=low + + * gcc-3.2 snapshot (CVS 20020729). + + -- Matthias Klose Mon, 29 Jul 2002 20:36:54 +0200 + +gcc-3.1 (1:3.1.1ds3-1) unstable; urgency=low + + * gcc-3.1.1 release. Following this release we will have a gcc-3.2 + release soon, which is gcc-3.1.1 plus some C++ ABI changes. Once + gcc-3.2 hits the archives, gcc-3.1.1 will go away. + * Don't build the sparc64 compiler. The packaging/patches are + currently broken. + * Add missing headers on m68k and powerpc. + * Install libgcc_s_nof on powerpc. + * Install libffi's copyright and doc files (closes: #152198). + * Remove dangling symlink (closes: #149002). + * libgcj3: Add a conflict to the classpath package (closes: #148664). + * README.C++: Fix URLs. + * libstdc++-dbg: Install into /usr/lib/debug, document it. + * backport-java-6865.dpatch: backport from HEAD. + * Fix typo in gcj docs (closes: #148890). + * Change libstdc++ include dir: /usr/include/c++/3.1. + * libstdc++-codecvt.dpatch: New patch (closes: #149776). + * Build libstdc++-pic package. + * Move 64bit libgcc in its own package libgcc1-64 (closes: #147249). + * Tighten glibc dependency. + + -- Matthias Klose Mon, 29 Jul 2002 00:34:49 +0200 + +gcc-3.1 (1:3.1.1ds2-0pre3) unstable; urgency=low + + * Updated to CVS 2002-06-06 (gcc-3_1-branch). + * Updated s390-java patch (Gerhard Tonn). + * Don't use -O in STAGE1_FLAGS on m68k. + * Fix `-classpath' option in gcj-wrapper script (closes: #150142). + * Remove g++-cxa-atexit patch, use --enable-__cxa_atexit configure option. + + -- Matthias Klose Wed, 3 Jul 2002 23:52:58 +0200 + +gcc-3.1 (1:3.1.1ds1-0pre2) unstable; urgency=low + + * Updated to CVS 2002-06-06 (gcc-3_1-branch), fixing an ObjC regression. + * Welcome m68k to bootstrap land (thanks to Andreas Schwab). + * Add javac wrapper for gcj-3.1 (Michael Koch). + * Remove dangling symlink in /usr/share/doc/gcc-3.1 (closes: #149002). + + -- Matthias Klose Fri, 7 Jun 2002 00:26:05 +0200 + +gcc-3.1 (1:3.1.1ds0-0pre1) unstable; urgency=low + + * Updated to CVS 2002-05-31 (gcc-3_1-branch). + * Change priorities from fastjar and gij-wrapper-3.1 from 30 to 31. + * Update arm-tune patch. + * Install xmmintrin.h header on i386 (closes: #148181). + * Install altivec.h header on powerpc. + * Call correct gij in gij-wrapper (closes: #148662, #148682). + + -- Matthias Klose Wed, 29 May 2002 22:47:40 +0200 + +gcc-3.1 (1:3.1ds2-2) unstable; urgency=low + + * Tighten binutils dependency. + * Fix libstdc include dir for multilibs (Dan Jacobowitz). + + -- Matthias Klose Tue, 21 May 2002 08:03:49 +0200 + +gcc-3.1 (1:3.1ds2-1) unstable; urgency=low + + * GCC 3.1 release. + * Ada cannot be built by the autobuilders for the first time. Do it by hand. + gnatgcc and gnatbind need to be in the PATH. + * Build with CC=gnatgcc, when building the Ada compiler. + * Hurd fixes. + * Don't build the sparc64 compiler; the hack isn't up to date and glibc + isn't converted to use /lib64 and /usr/lib64. + * m68k-linux shows bootstrap comparision failures. If you want to build + the compiler anyway and ignore the bootstrap comparision failure, edit + debian/rules.patch and uncomment the patch to ignore the failure. See + /usr/share/doc/gcc-3.1/BOOTSTRAP_COMPARISION_FAILURE for the differences. + + -- Matthias Klose Wed, 15 May 2002 09:53:00 +0200 + +gcc-3.1 (1:3.1ds1-0pre6) unstable; urgency=low + + * Build from the "final prerelease" tarball (gcc-3.1-20020508.tar.gz). + * Build gnat-3.1-doc package. + * Build fastjar package without building java packages. + * Hurd fixes. + * Updated sparc64-build patch. + * Add s390-ada patch (Gerhard Tonn). + * Undo the dwarf2 support for hppa from -0pre5. + + -- Matthias Klose Thu, 9 May 2002 17:21:09 +0200 + +gcc-3.1 (1:3.1ds0-0pre5) unstable; urgency=low + + * Use /usr/include/g++-v3-3.1 as C++ include dir. + * Update s390-java patch (Gerhard Tonn). + * Tighten binutils dependency (gas patch for m68k-linux). + * Use gnat-3.1 as the gnat package name (as found in gcc/ada/gnatvsn.ads). + * dwarf2 support hppa: a snapshot of the gcc/config/pa directory + from the trunk dated 2002-05-02. + + -- Matthias Klose Fri, 3 May 2002 22:51:37 +0200 + +gcc-3.1 (1:3.1ds0-0pre4) unstable; urgency=low + + * Use gnat-5.00w as the gnat package name (as found in gcc/ada/gnatvsn.ads). + * Don't build the shared libgnat library. It assumes an existing shared + libiberty library. + * Don't install the libgcjgc library. + + -- Matthias Klose Thu, 25 Apr 2002 08:48:04 +0200 + +gcc-3.1 (1:3.1ds0-0pre3) unstable; urgency=low + + * Build fastjar on all architectures. + * Update m68k patches. + * Update s390-java patch (Gerhard Tonn). + + -- Matthias Klose Sun, 14 Apr 2002 15:34:47 +0200 + +gcc-3.1 (1:3.1ds0-0pre2) unstable; urgency=low + + * Add Ada support. To successfully build, a working gnatbind and gcc + driver with Ada support is needed. + * Apply needed arm patches from 3.0.4. + + -- Matthias Klose Sat, 6 Apr 2002 13:17:08 +0200 + +gcc-3.1 (1:3.1ds0-0pre1) unstable; urgency=low + + * First try for gcc-3.1. + + -- Matthias Klose Mon, 1 Apr 2002 23:39:30 +0200 + +gcc-3.0 (1:3.0.4ds3-6) unstable; urgency=medium + + * Second try at fixing sparc build problems. + + -- Phil Blundell Sun, 24 Mar 2002 14:49:26 +0000 + +gcc-3.0 (1:3.0.4ds3-5) unstable; urgency=medium + + * Enable java on ARM. + * Create missing directory to fix sparc build. + + -- Phil Blundell Fri, 22 Mar 2002 20:21:59 +0000 + +gcc-3.0 (1:3.0.4ds3-4) unstable; urgency=low + + * Link with system zlib (closes: #136359). + + -- Matthias Klose Tue, 12 Mar 2002 20:47:59 +0100 + +gcc-3.0 (1:3.0.4ds3-3) unstable; urgency=low + + * Build libf2c (pic and non-pic) with -mieee on alpha-linux. + + -- Matthias Klose Sun, 10 Mar 2002 00:37:24 +0100 + +gcc-3.0 (1:3.0.4ds3-2) unstable; urgency=medium + + * Apply hppa-build patch (Randolph Chung). Closes: #136731. + * Make libgcc1 conflict/replace with libgcc1-sparc64. Closes: #135709. + * gij-3.0 provides the `java' command. Closes: #128947. + * Depend on binutils (>= 2.11.93.0.2-2), allows stripping of libgcj.a + again. Closes: #99307. + * Update README.cross pointing to the README of the toolchain-source + package. + + -- Matthias Klose Wed, 6 Mar 2002 21:53:34 +0100 + +gcc-3.0 (1:3.0.4ds3-1) unstable; urgency=low + + * Final gcc-3.0.4 release. + * debian/rules.d/binary-java.mk: Fix dormant typo, exposed by removing the + duplicate libgcj dependency and adding the gij-3.0 package. + Closes: #134005. + * New patch by Phil Blundell to fix scalapack build error on m68k. + + -- Matthias Klose Wed, 20 Feb 2002 23:59:43 +0100 + +gcc-3.0 (1:3.0.4ds2-0pre020210) unstable; urgency=low + + * Make the base package dependent on the binary-arch target. Closes: #133433. + * Get libstdc++ on arm woring (define _GNU_SOURCE). Closes: #133435. + + -- Matthias Klose Mon, 11 Feb 2002 20:31:12 +0100 + +gcc-3.0 (1:3.0.4ds2-0pre020209) unstable; urgency=high + + * Update to CVS sources (20020209 gcc-3_0-branch). + * Apply patch to fix bootstrap error on arm-linux (submitted upstream + by Phil Blundell). Closes: #130422. + * Make base package architecture any. + * Decouple versioned shlib dependencies from release number for + libobjc as well. + + -- Matthias Klose Sat, 9 Feb 2002 01:30:11 +0100 + +gcc-3.0 (1:3.0.4ds1-0pre020203) unstable; urgency=medium + + * One release critical bug outstanding: + - bootstrap error on arm. + * Update to CVS sources (20020203 gcc-3_0-branch). + * Fixed upstream: PR c/3504: Correct documentation of __alignof__. + Closes: #85445. + * Remove libgcc-powerpc patch, integrated upstream (closes: #131977). + * Tighten binutils build dependency (to address #126162). + * Move jv-convert to gcj package (closes: #131985). + + -- Matthias Klose Sun, 3 Feb 2002 14:47:14 +0100 + +gcc-3.0 (1:3.0.4ds0-0pre020127) unstable; urgency=low + + * Two release critical bugs outstanding: + - bootstrap error on arm. + - bus errors for C++ and java executables on sparc (see the testsuite + results). + * Update to CVS sources (20020125 gcc-3_0-branch). + * Enable java support for s390 architecture (patch from Gerhard Tonn). + * Updated NEWS file for 3.0.3. + * Disable building the gcc-sparc64, but build a multilibbed compiler + for sparc as the default. + * Disabled the subreg-byte patch for sparc (request from Ben Collins). + * Fixed reference to libgcc1 package in README (closes: #126218). + * Do recommend libc-dev, not depend on it. For low-end or embedded systems + the dependency on libc-dev can make the difference between + having enough or having too little space to build a kernel. + * README.cross: Updated by Hakan Ardo. + * Decouple versioned shlib dependencies from release number. Closes: #118391. + * Fix diversions for gcc-3.0-sparc64 package (closes: #128178), + unconditionally remove `sparc64-linux-gcc' alternative. + * g77/README.libg2c.Debian: New file mentioning `libg2c-pic'. The next + g77 version (3.1) does build a static and shared library (closes: #104250). + * Fix formatting errors in the synopsis of the java man pages. Maybe the + reason for #127571. Closes: #127571. + * fastjar: Fail for the (currently incorrect) -u option. Addresses: #116145. + Add alternative for `jar' using priority 30 (closes: #118648). + * jv-convert: Add --help option and man page. Backport from HEAD branch. + * libgcj2-dev: Remove duplicate dependency (closes: #127805). + * Giving up and make just another new package gij-X.Y with only the gij-X.Y + binary for policy conformance (closes: #127111). + * gij: Provides an alternative for `java' (priority 30) using a wrapper + script (Stephen Zander) (closes: #128974). Added simple manpage. + + -- Matthias Klose Sun, 27 Jan 2002 13:33:41 +0100 + +gcc-3.0 (1:3.0.3ds3-1) unstable; urgency=low + + * Final gcc-3.0.3 release. + * Do not compress .txt files in libstdc++ docs referenced from html + pages (closes: #124136). + * libstdc++-dev suggests libstdc++-doc. + * debian/patches/gcc-ia64-NaT.dpatch: Update (closes: #123685). + + -- Matthias Klose Fri, 21 Dec 2001 02:54:11 +0100 + +gcc-3.0 (1:3.0.3ds2-0pre011215) unstable; urgency=low + + * Update to CVS sources (011215). + * libstdc++ documentation updated upstream (closes: #123790). + * debian/patches/gcc-ia64-NaT.dpatch: Disable. Fixes bootstrap error + on ia64 (#123685). + + -- Matthias Klose Sat, 15 Dec 2001 14:43:21 +0100 + +gcc-3.0 (1:3.0.3ds1-0pre011210) unstable; urgency=medium + + * Update to CVS sources (011208). + * Supposed to fix powerpc build error (closes: #123155). + + -- Matthias Klose Thu, 13 Dec 2001 07:26:05 +0100 + +gcc-3.0 (1:3.0.3ds0-0pre011209) unstable; urgency=medium + + * Update to CVS sources (011208). Frozen for upstream 3.0.3 release. + * Apply contrib/PR3145.patch, a backport of Nathan Sidwell's patch to + fix PR c++/3145, the infamous "virtual inheritance" bug. This affected + especially KDE2 (eg. artsd). Franz Sirl + * cc1plus segfault in strength reduction fixed upstream. Closes: #122547. + * debian/patches/gcc-ia64-NaT.dpatch: Add patch to avoid a bug that can + cause miscompiled userapps to crash the kernel. Closes: #121924. + * Reenable shared libgcc for powerpc. Fixed upstream. + http://gcc.gnu.org/ml/gcc-patches/2001-11/msg00340.html + debian/patches/libgcc-powerpc.dpatch: New patch. + * Add upstream changelogs. + * Remove gij alternative. Move to gij package. + + -- Matthias Klose Sun, 9 Dec 2001 09:36:48 +0100 + +gcc-3.0 (1:3.0.2ds4-4) unstable; urgency=medium + + * Disable building of libffi on mips and mipsel. + (closes: #117503). + * Enable building of shared libgcc on s390 + (closes: #120452). + + -- Christopher C. Chimelis Sat, 1 Dec 2001 06:15:29 -0500 + +gcc-3.0 (1:3.0.2ds4-3) unstable; urgency=medium + + * Fix logic to build libffi without java (closes: #117503). + + -- Matthias Klose Sun, 4 Nov 2001 14:34:50 +0100 + +gcc-3.0 (1:3.0.2ds4-2) unstable; urgency=medium + + * Enable java for ia64 (Jeff Licquia). Closes: #116798. + * Allow building of libffi without gcj (Jeff Licquia). + New libffi packages for arm hurd-i386 mips mipsel, + still missing: hppa, s390. + * debian/NEWS.gcc: Add 3.0.2 release notes. + * debian/patches/hppa-align.dpatch: New patch from Alan Modra, + submitted by Randolph Tausq. + + -- Matthias Klose Thu, 25 Oct 2001 23:59:31 +0200 + +gcc-3.0 (1:3.0.2ds4-1) unstable; urgency=medium + + * Final gcc-3.0.2 release. The source tarball is not the released + tarball, but taken from CVS 011024). + * Remove patch for s390, included upstream. + + -- Matthias Klose Wed, 24 Oct 2001 00:49:40 +0200 + +gcc-3.0 (1:3.0.2ds3-0pre011014) unstable; urgency=low + + * Update to CVS sources (011014). Frozen for upstream 3.0.2 release. + Closes: #109351, #114099, #114216, #105741 (allegro3938). + * Added debian/patches/fastjar.dpatch, which makes fastjar extract + filenames correctly (previously, some had incorrect names on extract). + Closes: #113236. + * Priorities fixed in the past (closes: #94404). + + -- Matthias Klose Sun, 14 Oct 2001 13:19:43 +0200 + +gcc-3.0 (1:3.0.2ds2-0pre010923) unstable; urgency=low + + * Bootstraps on powerpc again (closes: #112777). + + -- Matthias Klose Sun, 23 Sep 2001 01:32:11 +0200 + +gcc-3.0 (1:3.0.2ds2-0pre010922) unstable; urgency=low + + * Update to CVS sources (010922). + * Fixed upstream (closes: #111801). #105569 on hppa. + * Update hppa patch (Matt Taggart). + * Fix libstdc++-dev package description (closes: #112758). + * debian/rules.d/binary-objc.mk: Fix build error (closes: #112462). + * Make gobjc-3.0 conflict with gcc-3.0-sparc64 (closes: #111772). + + -- Matthias Klose Sat, 22 Sep 2001 09:34:49 +0200 + +gcc-3.0 (1:3.0.2ds1-0pre010908) unstable; urgency=low + + * Update to CVS sources (010908). + * Update hppa patch (Matt Taggart). + * Depend on libgc6-dev, not libgc5-dev, which got obsolete (during + the freeze ...). However adds s390 support (closes: #110189). + * debian/patches/m68k-reload.dpatch: New patch (Roman Zippel). + Fixes #89023. + * debian/patches/gcc-sparc.dpatch: New patch ("David S. Miller"). + Fixes libstdc++ testsuite failures on sparc. + + -- Matthias Klose Sat, 8 Sep 2001 14:26:20 +0200 + +gcc-3.0 (1:3.0.2ds0-0pre010826) unstable; urgency=low + + * gcc-3.0-nof: Fix symlink to gcc-3.0-base doc directory. + * debian/patches/gcj-without-rpath: New patch. + * Remove self dependency on libgcj package. + * Handle diversions for upgrades from 3.0 and 3.0.1 -> 3.0.2 + in gcc-3.0-sparc64 package. + * Build libg2c.a with -fPIC -DPIC and name the result libg2c-pic.a. + Link with this library to avoid linking with non-pic code. + Use this library when building dynamically loadable objects (python + modules, gimp plugins, ...), which need to be linked against g2c or + a library which is linked against g2c (i.e. lapack). + Packages needing '-lg2c-pic' must have a build dependency on + 'g77-3.0 (>= 1:3.0.2-0pre010826). + + -- Matthias Klose Sun, 26 Aug 2001 13:59:03 +0200 + +gcc-3.0 (1:3.0.2ds0-0pre010825) unstable; urgency=low + + * Update to CVS sources (010825). + * Add libc6-dev-sparc64 to gcc-3.0-sparc64 and to sparc build dependencies. + * Remove conflicts on egcc package (closes: #109718). + * Fix gcc-3.0-nof dependency. + * s390 patches against gcc-3.0.1 (Gerhard Tonn). + * debian/control: Require binutils (>= 2.11.90.0.27) + + -- Matthias Klose Sat, 25 Aug 2001 10:59:15 +0200 + +gcc-3.0 (1:3.0.1ds3-1) unstable; urgency=low + + * Final gcc-3.0.1 release. + * Changed upstream: default of -flimit-inline is 600 (closes: #106716). + * Add fastjar man page (submitted by "The Missing Man Pages Project", + http://www.netmeister.org/misc/m2p2i/) (closes: #103051). + * Fixed in last upload as well: #105246. + * debian/patches/cpp-memory-leak.dpatch: New patch + * Disable installation of shared libgcc on s390 (Gerhard Tonn). + + -- Matthias Klose Mon, 20 Aug 2001 20:47:13 +0200 + +gcc-3.0 (1:3.0.1ds2-0pre010811) unstable; urgency=high + + * Update to CVS sources (010811). Includes s390 support. + * Add xlibs-dev to Build-Depends (libgcj). + * Enable java for powerpc, disable java for ia64. + * Enable ObjC garbage collection for all archs, which have a libgc5-dev + package. + * New patch libstdc++-codecvt (Michael Piefel) (closes: #104614). + * Don't strip static libgcj library (work around binutils bug #107812). + * Handle diversions for upgrade 3.0 -> 3.0.1 in gcc-3.0-sparc64 package + (closes: #107569). + + -- Matthias Klose Sat, 11 Aug 2001 20:42:15 +0200 + +gcc-3.0 (1:3.0.1ds1-0pre010801) unstable; urgency=high + + * Update to CVS sources (010801). (closes: #107012). + * Remove build dependency on non-free graphviz and include pregenerated + docs (closes: #107124). + * Fixed in 3.0.1 (closes: #99307). + * Updated m68k-updates patch (Roman Zippel). + * Another fix for ia64 packaging bits (Randolph Chung). + + -- Matthias Klose Tue, 31 Jul 2001 21:52:55 +0200 + +gcc-3.0 (1:3.0.1ds0-0pre010727) unstable; urgency=high + + * Update to CVS sources (010727). + * Add epoch to source version. Change '.dsx' to 'dsx', so that + 3.1.1ds0 gt 3.1ds7 (closes: #106538). + + -- Matthias Klose Sat, 28 Jul 2001 09:56:29 +0200 + +gcc-3.0 (3.0.1.ds0-0pre010723) unstable; urgency=high + + * ia64 packaging bits (Randolph Chung) (closes: #106252). + + -- Matthias Klose Mon, 23 Jul 2001 23:02:03 +0200 + +gcc-3.0 (3.0.1.ds0-0pre010721) unstable; urgency=high + + * Update to CVS sources (010721). + - Remove patches applied upstream: libstdc++-limits.dpatch, + objc-data-references + - Updated other patches. + * Fix gij alternative (closes: #103468, #103883). + * Patch to fix bootstrap on sparc (closes: #103568). + * Corrected (closes: #105371) and updated README.Debian. + * m68k patches for sucessful bootstrap (Roman Zippel). + * Add libstdc++v3 porting hints to README.Debian and README.C++. + * m68k md fix (#105622) (Roman Zippel). + * debian/rules2: Disable non-functional ulimit on Hurd (#105884). + * debian/control: Require binutils (>= 2.11.90.0.24) + * Java is enabled for alpha (closes: #87300). + + -- Matthias Klose Sun, 22 Jul 2001 08:24:04 +0200 + +gcc-3.0 (3.0.ds9-4) unstable; urgency=high + + * Move this version to testing ASAP. testing still has a prerelease + version with now incompatible ABI's. If sparc doesn't build, + then IMHO it's better to remove it from testing. + * debian/control.m4: Set uploaders field. Adjust description of + gcc-3.0 (binary) package (closes: #102271, #102620). + * Separate gij.1 in it's own pseudo man page (closes: #99523). + * debian/patches/java-manpages.dpatch: New patch. + * libgcj: Install unversioned gij. + + -- Matthias Klose Tue, 3 Jul 2001 07:38:08 +0200 + +gcc-3.0 (3.0.ds9-3) unstable; urgency=high + + * Reenable configuration with posix threads on i386 (lost in hurd-i386 + merge). + + -- Matthias Klose Sun, 24 Jun 2001 22:21:45 +0200 + +gcc-3.0 (3.0.ds9-2) unstable; urgency=medium + + * Move this version to testing ASAP. testing still has a prerelease + version with now incompatible ABI's. + * Add libgcc0 and libgcc300 to the build conflicts (#102041). + * debian/README.FIRST: Removed (#101534). + * Updated subreg-byte patch (doc files). + * Disable java for the Hurd, mips and mipsel (#101570). + * Patch for building on the Hurd (#101708) (Jeff Bailey ). + * Packaging fixes for the Hurd (#101711) (Jeff Bailey ). + * Include pregenerated doxygen (1.2.6) docs for libstdc++-v3 (#101557). + The current doxygen-1.2.8.1 segaults. + * C++: Enable -fuse-cxa-atexit by default (#101901). + * Correct mail address in gccbug (#101743). + * Make rules resumable after failure in binary-xxx targets (#101637). + + -- Matthias Klose Sun, 24 Jun 2001 16:04:53 +0200 + +gcc-3.0 (3.0.ds9-1) unstable; urgency=low + + * Final 3.0 release. + * Update libgcc version number (#100983, #100988, #101069, #101115, #101328). + * Updated hppa-build patch (Matt Taggart ). + * Disable java for hppa. + * Updated subreg-byte patch for sparc (Ben Collins). + + -- Matthias Klose Mon, 18 Jun 2001 18:26:04 +0200 + +gcc-3.0 (3.0.ds8-0pre010613) unstable; urgency=low + + * Update patches for recent (010613 23:13 +0200) CVS sources. + * Fix packaging bugs (#100459, #100447, #100483). + * Build-Depend on gawk, mawk doesn't work well with test_summary. + + -- Matthias Klose Wed, 13 Jun 2001 23:13:38 +0200 + +gcc-3.0 (3.0.ds7-0pre010609) unstable; urgency=low + + * Fix build dependency for the hurd (#99164). + * Update patches for recent (010609) CVS sources. + * Disable java on powerpc (link error in libjava). + * gcc-3.0-base.postinst: Don't prompt for non-interactive installs (#100110). + + -- Matthias Klose Sun, 10 Jun 2001 09:45:57 +0200 + +gcc-3.0 (3.0.ds6-0pre010526) unstable; urgency=high + + * Urgency "high" for replacing the gcc-3.0 snapshots in testing, which + now are incompatile due to the changed ABIs. + * Upstream begins tagging with "gcc-3_0_pre_2001mmdd". + * Tighten dependencies to install only binary packages derived from + one source (#98851). Tighten libc6-dev dependency to match libc6. + + -- Matthias Klose Sun, 27 May 2001 11:35:31 +0200 + +gcc-3.0 (3.0.ds6-0pre010525) unstable; urgency=low + + * ATTENTION: The ABI (exception handling) changed. No upgrade path from + earlier snapshots (you had been warned in the postinst ...) + Closing #93597, #94576, #96448, #96461. + You have to rebuild + * HELP is appreciated for scanning the Debian BTS and sending followups + to bug reports!!! + * Should we name debian gcc uploads? What about a "still seeking + g++ maintainer" upload? + * Fixed in gcc-3.0: #97030 + * Update patches for recent (010525) CVS sources. + * Make check depend on build target (fakeroot problmes). + * debian/rules.d/binary-libgcc.mk: new file, build first. + * Free memory detection on the hurd for running the testsuite. + * Update debhelper build dependency. + * libstdc++-doc: Include doxygen generated docs. + * Fix boring packaging bugs, too tired for appropriate changelogs ... + #93343, #96348, #96262, #97134, #97905, #96451, #95812, #93157 + * Fixed bugs: #87000. + + -- Matthias Klose Sat, 26 May 2001 23:10:42 +0200 + +gcc-3.0 (3.0.ds5-0pre010510) unstable; urgency=low + + * Update patches for recent (010506) CVS sources. + * New version of source, as of 2001-05-10 + * New version of gpc source, as of 2001-05-06 (disabled by default). + * Make gcc-3.0-sparc64 provide an alternative for sparc64-linux-gcc, + since it can build kernels just fine (it seems) + * Add hppa patch from Matt Taggart + * Fix objc info inclusion...now merged with gcc info + * Do not install the .la for libstdc++, since it confuses libtool linked + applications when libstdc++3-dev and libstdc++2.10-dev are both + installed (closes #97905). + * Fixed gcc-base and libgcc section/prio to match overrides + + -- Ben Collins Mon, 7 May 2001 00:08:52 +0200 + +gcc-3.0 (3.0.ds5-0pre010427) unstable; urgency=low + + * Fixed priority for fastjar from optional to extra + * New version of source, as of 2001-04-27 + * Fix description of libgcj-dev + * libffi-install: Make libffi installable + * Add libffi and libffi-dev packages. libffi is only enabled for java + targets right now. Perhaps more will be enabled later. + * Fixes to build cross compiler package (for avr) + (Hakan Ardo ). + * Better fixincludes description (#93157). + * Remove all remnants of libg++ + * Remove all hacks around libstdc++ version. Since we are strictly v3 now, + we can treat it like a normal shared lib, and not worry about all those + ABI changes. + * Remove all cruft control scripts. Note, debhelper will create scripts + that it needs to. It will do the doc link stuff and the ldconfig stuff + explicitly. + * Clean up the SONAME parsing stuff, make it a little more cleaner over + all the lib packages + * Make libffi install when built (IOW, whenever java is enabled). This + should obsolete the libffi package, which is old and broken + * Revert to normal sonames, except for ia64 (for now) + * Remove all references to dh_testversion, since they are deprecated for + Build-Depends + * Fix powerpc nof build + * Remove all references to the MULTILIB stuff, since the arches are + using specialized builds anyway (nof, softfloat). + * Added 64bit sparc64 package (gcc-3.0-sparc64, libgcc0-sparc64) + * Removed obsolete shlibs.local file + + -- Ben Collins Sun, 15 Apr 2001 21:33:15 -0400 + +gcc-3.0 (3.0.ds4-0pre010403) unstable; urgency=low + + * debian/README: Updated for gcc-3.0 + * debian/rules.patch: Added subreg-byte patch for sparc + * debian/rules.unpack: Update to current CVS for gcc tarball name + * debian/patches/subreg-byte.dpatch: sparc subreg-byte support + * debian/patches/gcc-rawhide.dpatch: Removed + debian/patches/gpc-2.95.dpatch: Removed + debian/patches/sparc32-rfi.dpatch: Removed + debian/patches/temporary.dpatch: Removed + * Moving to unstable now + * debian/patches/gcc-ppc-disable-shared-libgcc.dpatch: New patch, + disables shared libgcc for powerpc target, since it isn't compatible + with the EABI objects. + * Create $(with_shared_libgcc) var + * debian/rules.d/binary-gcc.mk: Use this new variable to determine if + the libgcc package actually has any files + + -- Ben Collins Tue, 3 Apr 2001 23:00:55 -0400 + +gcc-3.0 (3.0.ds2-0pre010223) experimental; urgency=low + + * New snapshot. Use distinct shared object names for shared libraries: + we don't know if binary API's still change until the final release. + * Versioned package names. + * debian/control.m4: New file. Add gcc-base, libgcc0, libobjc1, + libstdc++-doc, libgcj1, libgcj1-dev, fastjar, fixincludes packages. + Remove gcc-docs package. + * debian/gcov.1: Remove. + * debian/*: Remove 2.95.x support. Prepare for 3.0. + * debian/patches: Remove 2.95.x patches. + * Changed source package name. It's not allowed anymore to overwrite + source packages with different content. Introducing a 'debian source + element' (.ds), which is stripped again from the version number + for the binary packages. + * Fixed bugs and added functionality: + #26436, #27878, #33786, #34876, #35477, #42662, #46181, #42989, + #47981, #48530, #50529, #51227, #51456, #51651, #52382, #53698, + #55291, #55967, #56867, #58219, #59005, #59232, #59776, #64628, + #65687, #67631, #68632, #68963, #68987, #69530, #72933, #75120, + #75759, #76645, #76827, #83221, #87540 + * libgcj fixes: 42894, #51266, #68560, #71187, #79984 + + -- Matthias Klose Sat, 24 Feb 2001 13:41:11 +0100 + +gcc-2.95 (2.95.3-2.001222) experimental; urgency=low + + * New upstream version 2.95.3 experimental (CVS 20001222). + * debian/control.in: Versioned package names, removal of snapshot logic. + Remove fake gcc-docs package. + * Reserve -1 release numbers for woody. + * Updated to gpc-20001218. + + -- Matthias Klose Fri, 22 Dec 2000 19:53:03 +0100 + +gcc (2.95.2-20) unstable; urgency=low + + * Apply patch from gcc-2_95-branch; remove ulimit for make check. + + -- Matthias Klose Sun, 10 Dec 2000 17:01:13 +0100 + +gcc (2.95.2-19) unstable; urgency=low + + * Added testsuite-20001207 from current snapshots. We'll need results + for 2.95.2 to make sure there are no regressions against that release. + Dear build daemons and porters to other architectures, please send an + email to gcc-testresults@gcc.gnu.org. + You can do this by running "debian/rules mail-summary". + * Updated to gpc-20001206. + * Added S/390 patch prepared by Chu-yeon Park (#78983). + * debian/patches/libio.dpatch: Fix iostream doc (fixes #77647). + * debian/patches/gcc-doc.dpatch: Update URL (fixes #77542). + * debian/patches/gcc-reload1.dpatch Patch from the gcc-bug list which + fixes a problem in "long long" on i[345]86 (i686 was not affected). + + -- Matthias Klose Sat, 9 Dec 2000 12:30:32 +0100 + +gcc (2.95.2-18) unstable; urgency=low + + * debian/control.in: Fix syntax errors (fixes #76146, #76458). + Disable gpc on the hurd by request (#75686). + * debian/patches/arm-various.dpatch: Patches from Philip Blundell + for ARM arch (fixes #75801). + * debian/patches/gcc-alpha-mi-thunk.dpatch: Patches from Chris Chimelis + for alpha arch. + * debian/patches/g77-docs.dpatch: Adjust g77 docs (fixes #72594). + * Update gpc to gpc-20001118. + * Reenable gpc for alpha. + * debian/README.C++: Merge debian/README.libstdc++ and C++ FAQ information + provided by Matt Zimmermann. + * Build gcj only on architectures, where libgcj-2.95.1 can be built as well. + Probably needs some adjustments ... + * Conditionalize for chill, fortran, java, objc and chill. + + * NOT APPLIED: + debian/patches/libstdc++-bastring.dpatch: Apply fix (fixes #75759). + + -- Matthias Klose Sun, 19 Nov 2000 10:40:41 +0100 + +gcc (2.95.2-17) unstable; urgency=low + + * Disable gpc for alpha. + * Include gpc-cpp in gpc package (fixes #74492). + * Don't build gcc-docs compatibility package anymore. + + -- Matthias Klose Wed, 11 Oct 2000 06:16:53 +0200 + +gcc (2.95.2-16) unstable; urgency=low + + * Applied the emdebian/cross compiler patch and documentation + (Frank Smith ). + * Applied patch for avr target (Hakan Ardo ). + * debian/control.in: Add awk to Build-Depends. + Tighten libc6-dev dependency for libstdc++-dev (fixes #73031, + #72531, #72534). + * Disable libobjc_gc for m68k again (fixes #74380). + * debian/patches/arm-namespace.dpatch: Apply patch from Philip + Blundell to fix name space pollution on arm + (fixes #70937). + * Fix more warnings in STL headers (fixes #69352, #71943). + + -- Matthias Klose Mon, 9 Oct 2000 21:51:41 +0200 + +gcc (2.95.2-15) unstable; urgency=low + + * debian/control.in: Add libgc5-dev to build depends (fixes #67015). + * debian/rules.def: Build GC enabled ObjC runtime for sparc. + * Bug #58741 fixed (in some version since 2.95.2-5). + * debian/control.in: Recommend librx1g-dev, libgmp2-dev, libncurses5-dev + (unit dependencies). + * Patches from Marcus Brinkmann for the hurd (fixes #67763): + - debian/rules.defs: Disable objc_gc on hurd-i386. + Disable libg++ on GNU systems. + - debian/rules2: Set correct names of libstdc++/libg++ + libraries on GNU systems. + Write out correct shlibs and shlibs.local file content. + - Keep _G_config.h for the Hurd. + * Apply patch for ObjC linker warnings. + * Don't apply gcj backport patch for sparc. + * Apply libio compatability patch + * debian/glibcver.sh: generate appropriate version for glibc + * debian/rules.conf: for everything after glibc 2.1, we always append + "-glibc$(ver)" to the C++ libs for linux. + * Back down gpc to -13 version (-14 wont compile on anything but i386 + and m68k becuase of gpc). + * Remove extraneous and obsolete sparc64 patches/files from debian/* + + -- Ben Collins Thu, 21 Sep 2000 08:08:35 -0400 + +gcc-snapshot (20000901-2.2) experimental; urgency=low + + * New snapshot. + * debian/rules2: Move tradcpp0 to cpp package. + + -- Matthias Klose Sat, 2 Sep 2000 01:14:28 +0200 + +gcc-snapshot (20000802-2.1) experimental; urgency=low + + * New snapshot. + * debian/rules2: Fixes. tradcpp0 is in gcc package, not cpp. + + -- Matthias Klose Thu, 3 Aug 2000 07:40:05 +0200 + +gcc-snapshot (20000720-2) experimental; urgency=low + + * New snapshot. + * Enable libstdc++-v3. + * debian/rules2: Don't use -D for /usr/bin/install. + + -- Matthias Klose Thu, 20 Jul 2000 22:33:37 +0200 + +gcc (2.95.2-14) unstable; urgency=low + + * Update gpc patch. + + -- Matthias Klose Wed, 5 Jul 2000 20:51:16 +0200 + +gcc (2.95.2-13) frozen unstable; urgency=low + + * Update debian/README: document how to compile 2.0.xx kernels; don't + register gcc272 as an alternative for gcc (closes #62419). + Clarify compiler setup (closes #65548). + * debian/control.in: Make libstdc++-dev depend on current version of g++. + * Undo CVS update from release -8 (problems on alpha, #55263). + + -- Matthias Klose Mon, 19 Jun 2000 23:06:48 +0200 + +gcc (2.95.2-12) frozen unstable; urgency=low + + * debian/gpc.postinst: Correct typo introduced with -11 (fixes #64193). + * debian/patches/gcc-rs600.dpatch: ppc codegen fix (fixes #63933). + + -- Matthias Klose Sun, 21 May 2000 15:56:05 +0200 + +gcc (2.95.2-11) frozen unstable; urgency=medium + + * Upload to unstable again (fixes critical #63784). + * Fix doc-base files (fixes important #63810). + * gpc wasn't built in -10 (fixes #63977). + * Make /usr/bin/pc an alternative (fixes #63888). + * Add SYSCALLS.c.X to gcc package. + + -- Matthias Klose Sun, 14 May 2000 22:17:44 +0200 + +gcc (2.95.2-10) frozen; urgency=low + + * debian/control.in: make gcc conflict on any version of egcc + (slink to potato upgrade problem, fixes grave #62084). + * Build protoize programs, separate out in new package (fixes #59436, + #62911). + * Create dummy gcc-docs package for smooth update from slink (fixes #62537). + * Add doc-base support for all -doc packages (fixes #63380). + + -- Matthias Klose Mon, 1 May 2000 22:24:28 +0200 + +gcc (2.95.2-9) frozen unstable; urgency=low + + * Disable the sparc-bi-arch.dpatch (patch from Ben Collins, built + for sparc as NMU 8.1) (fixes critical #61529 and #61511). + "Seems that when you compile gcc 2.95.x for sparc64-linux and compile + sparc32 programs, the code is not the same as sparc-linux compile for + sparc32 (this is a bug, and is fixed in gcc 2.96 CVS)." + * debian/patches/gcj-vs-iconv.dpatch: Option '--encoding' for + encoding of input files. Patch from Tom Tromey + backported to 2.95.2 (fixes #42895). + Compile a Latin-1 encoded file with `gcj --encoding=Latin1 ...'. + * debian/control.in: gcc, g++ and gobjc suggest their corresponding + task packages (fixes #59623). + + -- Matthias Klose Sat, 8 Apr 2000 20:19:15 +0200 + +gcc (2.95.2-8) frozen unstable; urgency=low + + * Post-2.95.2 CVS updates of the gcc-2_95-branch until 20000313. + * debian/rules2: configure with --enable-java-gc=no for sparc. Fixes + gcj side of #60535. + * debian/rules.patch: Disable gcc-emit-rtl patch for all archs but + alpha. Disable g++-is-tree patch ("just for 2.95.1"). + * debian/README: Update for gcc-2.95. + + -- Matthias Klose Mon, 27 Mar 2000 00:03:16 +0200 + +gcc (2.95.2-7) frozen unstable; urgency=low + + * debian/patches/gcc-empty-struct-init.dpatch; Apply patch from + http://gcc.gnu.org/ml/gcc-patches/2000-02/msg00637.html. Fixes + compilation of 2.3.4x kernels. + * debian/patches/gcc-emit-rtl.dpatch: Apply patch from David Huggins-Daines + (backport from 2.96 CVS to fix #55263). + * debian/patches/gcc-pointer-arith.dpatch: Apply patch from Jim Kingdon + (backport from 2.96 CVS to fix #54951). + + -- Matthias Klose Thu, 2 Mar 2000 23:16:43 +0100 + +gcc (2.95.2-6) frozen unstable; urgency=low + + * Post-2.95.2 CVS updates of the gcc-2_95-branch until 20000220. + * Remove dangling symlink probably left over from libstdc++2.9 + package (fixes #53661). + * debian/patches/gcc-alpha-complex-float.dpatch: Fixed patch by + David Huggins-Daines (fixes #58486). + * debian/g++.{postinst,prerm}: Remove outdated g++FAQ registration + (fixes #58253). + * debian/control.in: gcc-doc replaces gcc-docs (fixes #58108). + * debian/rules2: Include some fixed headers (asm, bits, linux, ...). + * debian/patches/{gcc-alpha-ev5-fix,libstdc++-valarray}.dpatch: Remove. + Applied upstream. + * debian/patches/libstdc++-bastring.dpatch: Add patch from + sicard@bigruth.solsoft.fr (fixes #56715). + + -- Matthias Klose Sun, 20 Feb 2000 15:08:13 +0100 + +gcc (2.95.2-5) frozen unstable; urgency=low + + * Post-2.95.2 CVS updates of the gcc-2_95-branch until 20000116. + * Add more build dependencies (fixes #53204). + * debian/patches/gcc-alpha-complex-float.dpatch: Patch from + Joel Klecker to compile glibc correctly on alpha. + "Should fix the g77 problems too." + * debian/patches/{libio,libstdc++-wall2}.dpatch. Remove patches + applied upstream. + + -- Matthias Klose Sun, 16 Jan 2000 19:16:54 +0100 + +gcc (2.95.2-4) unstable; urgency=low + + * debian/patches/libio.dpatch: Patch from Martin v. Loewis. + (fixes: #35628). + * debian/patches/libstdc++-deque.dpatch: Patch from Martin v. Loewis. + (fixes: #52689). + * debian/control.in: Updated Build-Depends, removed outdated README.build. + Fixes #51246. + * Tighten dependencies to cpp (>= 2.95.2-4) (closes: #50294). + * debian/rules.patch: Really do not apply patches/gcj-backport.dpatch. + Fixes #51636. + * Apply updated sparc-bi-arch.dpatch from Ben Collins. + * libstdc++: Define wstring type, if __ENABLE_WSTRING is defined. Request + from the author of the War FTP Daemon for Linux ("Jarle Aase" + ). + * debain/g++.preinst: Remove dangling sysmlinks (fixes #52359). + + -- Matthias Klose Sun, 19 Dec 1999 21:53:48 +0100 + +gcc (2.95.2-3) unstable; urgency=low + + * debian/rules2: Don't install $(gcc_lib_dir)/include/asm; these are + headers fixed for glibc-1.x (closes: #49434). + * debian/patches/cpp-dos-newlines.dpatch: Keep CR's without + following LF (closes: #49186). + * Bug #37358 (internal compiler errors when building vdk_0.6.0-5) + fixed in gcc-2.95.? (closes: #37358). + * Apply patch gcc-alpha-ev5-fix from Richard Henderson + (should fix #48527 and #46963). + * debian/README.Bugs: Documented non bug #44554. + * Applied patch from Alexandre Oliva to fix gpc boostrap on alpha. + Reenabled gpc on all architectures. + * Post-2.95.2 CVS updates of the gcc-2_95-branch until 19991108. + * Explicitely generate postinst/prerm chunks for usr/doc transition. + debhelper currently doesn't handle generation for packages with + symlinked directories. + * debian/patches/libstdc++-wall3.dpatch: Fix warnings in stl_deque.h + and stl_rope.h (closes: #46444, #46720). + * debian/patches/gcj-backport.dpatch: Add file, don't apply (yet). + + -- Matthias Klose Wed, 10 Nov 1999 18:58:45 +0100 + +gcc (2.95.2-2) unstable; urgency=low + + * New gpc-19991030 snapshot. + * Post-2.95.2 CVS updates of the gcc-2_95-branch until 19991103. + * Reintegrated sparc patches (bcollins@debian.org), which were lost + in 2.95.2-1. + * debian/rules2: Only install $(gcc_lib_dir)/include/asm, when existing. + * debian/patches/gpc-2.95.{dpatch,diff}: updated patch to drop + initialization in stor-layout.c. + * debian/NEWS.gcc: Updated for gcc-2.95.2. + * debian/bugs/bug-...: Removed testcases for fixed bugs. + * debian/patches/...dpatch: Removed patches applied upstream. + * debian/{rules2,g++.postinst,g++.prerm}: Handle c++ alternative. + * debian/changelog: Merged gcc272, egcs and snapshot changelogs. + + -- Matthias Klose Tue, 2 Nov 1999 23:09:23 +0200 + +gcc (2.95.2-1.1) unstable; urgency=low + + * Most of the powerpc patches have been applied upstream. Remove all + but ppc-ice, ppc-andrew-dwarf-eh, and ppc-descriptions. + * mulilib-install.dpatch was definitely a bad idea. Fix it properly + by using install -D. + * Also, don't make directories before installing any more. Simplifies + rules a (tiny) bit. + * Do not build with LDFLAGS=-s. Everything gets stripped out anyway by + dh_strip -a -X_debug; so leave the binaries in the build tree with + debugging symbols for simplified debugging of the packages. + + -- Daniel Jacobowitz Sat, 30 Oct 1999 12:40:12 -0400 + +gcc (2.95.2-1) unstable; urgency=low + + * gcc-2.95.2 release (taken from the CVS archive). -fstrict-aliasing + is disabled upstream. + + -- Matthias Klose Mon, 25 Oct 1999 10:26:19 +0200 + +gcc (2.95.2-0pre4) unstable; urgency=low + + * Updated to cvs updates of the gcc-2_95-branch until 19991021. + * Updated gpc to gpc-19991018 snapshot (closes: #33037, #47453). + Enable gpc for all architectures ... + * Document gcc exit codes (closes: #43863). + * According to the bug submitter (Sergey V Kovalyov ) + the original source of these CERN librarties is outdated now. The latest + version of cernlibs compiles and works fine with slink (closes #31546). + * According to the bug submitter (Gergely Madarasz ), + the problem triggered on i386 cannot be reproduced with the current + jade and php3 versions anymore (closes: #35215). + * Replace corrupted m68k-pic.dpatch (from Roman Hodek and Andreas Schwab + and apply to + all architectures (closes: #48011). + * According to the bug submitter (Herbert Xu ) + this bug "probably has been fixed". Setting it to severity "fixed" + (fixes: #39616), will close it later ... + * debian/README.Bugs: Document throwing C++ exceptions "through" C + libraries (closes: #22769). + + -- Matthias Klose Fri, 22 Oct 1999 20:33:00 +0200 + +gcc (2.95.2-0pre3) unstable; urgency=low + + * Updated to cvs updates of the gcc-2_95-branch until 19991019. + * Apply NMU patches (closes: #46217). + * debian/control.in: Fix egcs64 conflict-dependency for sparc + architecture (closes: #47088). + * debian/rules2: dbg-packages share doc dir with lib packages + (closes #45067). + * debian/patches/gcj-debian-policy.dpatch: Patch from Stephane + Bortzmeyer to conform to Debian policy (closes: #44463). + * debian/bugs/bug-*: Added test cases for new bug reports. + * debian/patches/libstdc++-bastring.dpatch: Patch by Richard Kettlewell + (closes #46550). + * debian/rules.patch: Apply libstdc++-wall2 patch (closes #46609). + * debian/README: Fix typo (closes: #45253). + * debian/control.in: Remove primary/secondary distinction; + dbg-packages don't provide their normal counterparts (closes #45206). + * debian/rules.patch: gcc-combine patch applied upstream. + * debian/rules2: Only use mail if with_check is set (off by default). + * debian/rules.conf: Tighten binutils dependency to 2.9.5.0.12. + + -- Matthias Klose Tue, 19 Oct 1999 20:33:00 +0200 + +gcc (2.95.2-0pre2.0.2) unstable; urgency=HIGH (for m68k) + + * Binary-only NMU for m68k as quick fix for another bug; the patch + is in CVS already, too. + * Applied another patch by Andreas Schwab to fix %a5 restauration in + some cases. + + -- Roman Hodek Thu, 30 Sep 1999 16:09:15 +0200 + +gcc (2.95.2-0pre2.0.1) unstable; urgency=HIGH (for m68k) + + * Binary-only NMU for m68k as quick fix for serious bugs; the patches + are already checked into gcc CVS and should be in the next official + version, too. + * Applied two patches by Andreas Schwab to fix -fpic and loop optimization. + + -- Roman Hodek Mon, 27 Sep 1999 15:32:49 +0200 + +gcc (2.95.2-0pre2) unstable; urgency=low + + * Fixed in 2.95.2 (closes: #43478). + * Previous version had Pascal examples missing in doc directory. + + -- Matthias Klose Wed, 8 Sep 1999 22:18:17 +0200 + +gcc (2.95.2-0pre1) unstable; urgency=low + + * Updated to cvs updates of the gcc-2_95-branch until 19990828. + * Apply work around memory corruption (just for 2.95.1) by + Daniel Jacobowitz . + * debian/patches/libstdc++-wall2.dpatch: Patch from Franck Sicard + to fix some warnings (closes: #44670). + * debian/patches/libstdc++-valarray.dpatch: Patch from Hideaki Fujitani + to fix a bug in valarray_array.h. + * Applied NMU from Jim Pick minus the jump.c and fold-const.c patches + already in the gcc-2_95-branch (closes: #44690). + * Conform to debian-java policy (closes: #44463). + * Move docs to /usr/share/doc (closes: #44782). + * Remove debian/patches/gcc-align.dpatch applied upstream. + * debian/*.postinst: Call install-info only, when configuring. + * debian/*.{postinst,prerm}: Add #DEBHELPER# comments to handle + /usr/doc -> /usr/share/doc transition. + + -- Matthias Klose Wed, 8 Sep 1999 22:18:17 +0200 + +gcc (2.95.1-2.1) unstable; urgency=low + + * Non-maintainer upload. + * ARM platform no longer needs library-prefix patch. + * Updated patches from Philip Blundell. + + -- Jim Pick Wed, 8 Sep 1999 20:14:07 -0700 + +gcc (2.95.1-2) unstable; urgency=low + + * debian/gcc.{postinst,prerm}: gcc provides an alternative for + sparc64-linux-gcc. + * Applied patch from Ben Collins to enable bi-architecture (32/64) + support for sparc. + * Rebuild debian/control and debian/rules.parameters after unpacking. + * debian/rules2: binary-indep. Conditionalize on with_pascal. + + -- Matthias Klose Sat, 4 Sep 1999 13:47:30 +0200 + +gcc (2.95.1-1) unstable; urgency=low + + * Updated to release gcc-2.95.1 and cvs updates of the gcc-2_95-branch + until 19990828. + * debian/README.gcc: Updated NEWS file to include 2.95 and 2.95.1 news. + * debian/README.java: New file. + * debian/rules.defs: Disabled gpc for alpha, arm. Disabled ObjC-GC + for alpha. + * debian/rules [clean]: Remove debian/rules.parameters. + * debian/rules2 [binary-arch]: Call dh_shlibdeps with LD_LIBRARY_PATH set + to installation dir of libstdc++. Why isn't this the default? + * debian/control.in: *-dev packages do not longer conflict with + libg++272-dev package. + * Apply http://egcs.cygnus.com/ml/gcc-patches/1999-08/msg00599.html. + * Only define BAD_THROW_ALLOC, when using exceptions (fixes #43462). + * For ObjC (when configured with GC) recommend libgc4-dev, not libgc4. + * New version of 68060 build patch. + * debian/rules.conf: For m68k, depend on binutils version 2.9.1. + + -- Matthias Klose Sat, 28 Aug 1999 18:16:31 +0200 + +gcc (2.95.1-0pre2) unstable; urgency=medium + + * gpc is back again (fixes grave #43022). + * debian/patches/gpc-updates.dpatch: Patches sent to upstream authors. + * Work around the fatal dependtry assertion failure bug in dpkg (hint + from "Antti-Juhani Kaijanaho" , fixes important #43072). + + -- Matthias Klose Mon, 16 Aug 1999 19:34:14 +0200 + +gcc (2.95.1-0pre1) unstable; urgency=low + + * Updated to cvs 19990815 gcc-2_95-branch; included install docs and + FAQ from 2.95 release; upload source package as well. + * Source package contains tarballs only (gcc, libg++, installdocs). + * debian/rules: Splitted into debian/rules{,.unpack,.patch,.conf,2}. + * debian/gcc.postinst: s/any key/RETURN; warn only when upgrading from + pre 2.95 version; reference /usr/doc, not /usr/share/doc. + * Checked syntax for attributes of functions; checked for #35068; + checked for bad gmon.out files (at least with libc6 2.1.2-0pre5 and + binutils 2.9.1.0.25-2 the problem doesn't show up anymore). + * debian/patches/cpp-macro-doc.dpatch: Document macro varargs in cpp.texi. + * gcc is primary compiler for all platforms but m68k. Setting + severity of #22513 to fixed. + * debian/patches/gcc-default-arch.dpatch: New patch to enable generation + of i386 instruction as default (fixes #42743). + * debian/rules: Removed outdated gcc NEWS file (fixes #42742). + * debian/patches/libstdc++-out-of-mem.dpatch: Throw exception instead + of aborting when out of memory (fixes #42622). + * debian/patches/cpp-dos-newlines.dpatch: Handle ibackslashes after + DOS newlines (fixes #29240). + * Fixed in gcc-2.95.1: #43001. + * Bugs closed in this version: + Closes: #11525, #12253, #22513, #29240, #35068, #36182, #42584, #42585, + #42602, #42622, #42742 #42743, #43001, #43002. + + -- Matthias Klose Sun, 15 Aug 1999 10:31:50 +0200 + +gcc (2.95-3) unstable; urgency=high + + * Provide /lib/cpp again (fixes important bug #42524). + * Updated to cvs 19990805 gcc-2_95-branch. + * Build with the default scheduler. + * Apply install-multilib patch from Dan Jacobowitz. + * Apply revised cpp-A- patch from Dan Jacobowitz. + + -- Matthias Klose Fri, 6 Aug 1999 07:25:19 +0200 + +gcc (2.95-2) unstable; urgency=low + + * Remove /lib/cpp. This driver uses files from /usr/lib/gcc-lib anyway. + * The following bugs are fixed (compared to egcs-1.1.2). + Closes: #4429, #20889, #21122, #26369, #28417, #28261, #31416, #35261, + #35900, #35906, #38246, #38872, #39098, #39526, #40659, #40991, #41117, + #41290, #41302, #41313. + * The following by Joel Klecker: + - Adopt dpkg-architecture variables. + - Go back to SHELL = bash -e or it breaks where /bin/sh is not bash. + - Disabled the testsuite, it is not included in the gcc 2.95 release. + + -- Matthias Klose Sat, 31 Jul 1999 18:00:42 +0200 + +gcc (2.95-1) unstable; urgency=low + + * Update for official gcc-2.95 release. + * Built without gpc. + * debian/rules: Remove g++FAQ from rules, which is outdated. + For ix86, build for i386, not i486. + * Apply patch from Jim Pick for building multilib package on arm. + + -- Matthias Klose Sat, 31 Jul 1999 16:38:21 +0200 + +gcc (2.95-0pre10) unstable; urgency=low + + * Use ../builddir-gcc-$(VER) by default instead of ./builddir; upstream + strongly advises configuring outside of the source tree, and it makes + some things much easier. + * Add patch to prevent @local branches to weak symbols on powerpc (fixes + apt compilation). + * Add patch to make cpp -A- work as expected. + * Renamed debian/patches/ppc-library-prefix.dpatch to library-prefix.dpatch; + apply on all architectures. + * debian/control.in: Remove snapshot dependencies. + * debian/*.postinst: Reflect use of /usr/share/{info,man}. + + -- Daniel Jacobowitz Thu, 22 Jul 1999 19:27:12 -0400 + +gcc (2.95-0pre9) unstable; urgency=low + + * The following bugs are fixed (compared to egcs-1.1.2): #4429, #20889, + #21122, #26369, #28417, #28261, #35261, #38246, #38872, #39526, #40659, + #40991, #41117, #41290. + * Updated to CVS gcc-19990718 snapshot. + * debian/control.in: Removed references to egcs in descriptions. + Changed gcj's Recommends libgcj-dev to Depends. + * debian/rules: Apply ppc-library-prefix for alpha as well. + * debian/patches/arm-config.dpatch: Updated patch sent by Jim Pick. + + -- Matthias Klose Sun, 18 Jul 1999 12:21:07 +0200 + +gcc (2.95-0pre8) unstable; urgency=low + + * Updated CVS. + * debian/copyright: s%doc/copyright%share/common-licenses% + * debian/README.Bugs: s/egcs.cygnus.com/gcc.gnu.org/ s/egcs-bugs/gcc-bugs/ + * debian/patches/reporting.dpatch: Remake diff for current sources. + * debian/libstdc++-dev.postinst: It's /usr/share/info/iostream.info. + * debian/rules: Current dejagnu snapshot reports a framework version + of 1.3.1. + + -- Joel Klecker Sun, 18 Jul 1999 02:09:57 -0700 + +gcc-snapshot (19990714-0pre6) experimental; urgency=low + + * Updated to CVS gcc-19990714 snapshot. + * Applied ARM patch (#40515). + * Converted DOS style linefeeds in debian/patches/ppc-* files. + * debian/rules: Reflect change in gcc/version.c; use sh -e as shell: + for some obscure reason, bash -e doesn't work. + * Reflect version change for libstdc++ (2.10). Remove libg++-name + patch; libg++ now has version 2.8.1.3. Removed libc version from + the package name. + + -- Matthias Klose Wed, 14 Jul 1999 18:43:57 +0200 + +gcc-snapshot (19990625-0pre5.1) experimental; urgency=low + + * Non-maintainer upload. + * Added ARM specific patch. + + -- Jim Pick Tue, 29 Jun 1999 22:36:08 -0700 + +gcc-snapshot (19990625-0pre5) experimental; urgency=low + + * Updated to CVS gcc-19990625 snapshot. + + -- Matthias Klose Fri, 25 Jun 1999 16:11:53 +0200 + +gcc-snapshot (19990609-0pre4.1) experimental; urgency=low + + * Added and re-added a few last PPC patches. + + -- Daniel Jacobowitz Sat, 12 Jun 1999 16:48:01 -0500 + +gcc-snapshot (19990609-0pre4) experimental; urgency=low + + * Updated to CVS egcs-19990611 snapshot. + + -- Matthias Klose Fri, 11 Jun 1999 10:20:09 +0200 + +gcc-snapshot (19990609-0pre3) experimental; urgency=low + + * CVS gcc-19990609 snapshot. + * New gpc-19990607 snapshot. + + -- Matthias Klose Wed, 9 Jun 1999 19:40:44 +0200 + +gcc-snapshot (19990524-0pre1) experimental; urgency=low + + * egcs-19990524 snapshot. + * First snapshot of the gcc-2_95-branch. egcs-1.2 is renamed to gcc-2.95, + which is now the "official" successor to gcc-2.8.1. The full version + name is: gcc-2.95 19990521 (prerelease). + * debian/control.in: Changed maintainers to `Debian GCC maintainers'. + * Moved all version numbers to epoch 1. + * debian/rules: Major changes. The support for secondary compilers + was already removed for the egcs-1.2 snapshots. Many fixes by + Joel Klecker . + - Send mail to Debian maintainers for successful builds. + - Fix VER and VERNO sed expressions. + - Replace remaining GNUARCH occurrences. + * New gpc snapshot (but don't build). + * debian/patches/valarray.dpatch: Backport from libstdc++-v3. + * debian/gcc-doc.*: Info is now gcc.info* (Joel Klecker ). + * Use cpp driver provided by the package. + * New script c89 (fixes #28261). + + -- Matthias Klose Sat, 22 May 1999 16:10:36 +0200 + +egcs (1.1.2-2) unstable; urgency=low + + * Integrate NMU's for arm and sparc (fixes #37582, #36857). + * Apply patch for the Hurd (fixes #37753). + * Describe open bugs in TODO.Debian. Please have a look if you can help. + * Update README / math functions section (fixes #35906). + * Done by J.H.M. Dassen (Ray) : + - At Richard Braakman's request, made -dbg packages for libstdc++ + and libg++. + - Provide egcc(1) (fixes lintian error). + + -- Matthias Klose Sun, 16 May 1999 14:30:56 +0200 + +egcs-snapshot (19990502-1) experimental; urgency=low + + * New snapshot. + + -- Matthias Klose Thu, 6 May 1999 11:51:02 +0200 + +egcs-snapshot (19990418-2) experimental; urgency=low + + * Merged Rays changes to build debug packages. + + -- Matthias Klose Wed, 21 Apr 1999 16:54:56 +0200 + +egcs-snapshot (19990418-1) experimental; urgency=low + + * New snapshot. + * Disable cpplib. + + -- Matthias Klose Mon, 19 Apr 1999 11:32:19 +0200 + +egcs (1.1.2-1.2) unstable; urgency=low + + * NMU for arm + * Added arm-optimizer.dpatch with optimizer workaround for ARM + + -- Jim Pick Mon, 19 Apr 1999 06:17:13 -0700 + +egcs (1.1.2-1.1) unstable; urgency=low + + * NMU for sparc + * Included dpatch to modify the references to gcc/crtstuff.c so that + __register_frame_info is not a weak reference. This allows potato to + remain binary compatible with slink, while still retaining compatibility + with other sparc/egcs1.1.2 distributions. Diff in .dpatch format has + been sent to the maintainer with a note it may not be needed for 1.1.3. + + -- Ben Collins Tue, 27 Apr 1999 10:15:03 -0600 + +egcs (1.1.2-1) unstable; urgency=low + + * Final egcs-1.1.2 release built for potato as primary compiler + for all architectures except m68k. + + -- J.H.M. Dassen (Ray) Thu, 8 Apr 1999 13:14:29 +0200 + +egcs-snapshot (19990321-1) experimental; urgency=low + + * New snapshot. + * Disable gpc. + * debian/rules: Simplified (no secondary compiler, bumped all versions + to same epoch, libapi patch is included upstream). + * Separated out cpp documentation to cpp-doc package. + * Fixed in this version: #28417. + + -- Matthias Klose Tue, 23 Mar 1999 02:11:18 +0100 + +egcs (1.1.2-0slink2) stable; urgency=low + + * Applied H.J.Lu's egcs-19990315.linux patch. + * Install faq.html and egcs-1.1.2 announcment. + + -- Matthias Klose Tue, 23 Mar 1999 01:14:54 +0100 + +egcs (1.1.2-0slink1) stable; urgency=low + + * Final egcs-1.1.2 release; compiled with glibc-2.0 for slink on i386. + * debian/control.in: gcc provides egcc, when FIRST_PRIMARY defined. + * Fixes #30767, #32278, #34252, #34352. + * Don't build the libstdc++.so.2.9 library on architectures, which have + switched to glibc-2.1. + + -- Matthias Klose Wed, 17 Mar 1999 12:55:59 +0100 + +egcs (1.1.1.63-2.2) unstable; urgency=low + + * Non-maintainer upload. + * Incorporate patch from Joel Klecker to fix snapshot packages + by moving/removing the application of libapi. + * Disable the new libstdc++-dev-config and the postinst message in + glibc 2.1 versions. + + -- Daniel Jacobowitz Mon, 12 Mar 1999 14:16:02 -0500 + +egcs (1.1.1.63-2.1) unstable; urgency=low + + * Non-maintainer upload. + * Compile with glibc 2.1 release version. + * New upstream version egcs-1.1.2 pre3. + * Miscellaneous rules updates (see changelog.snapshot). + * New set of powerpc-related patches from Franz Sirl, + . + * Disable libgcc.dpatch (new solution implemented upstream). Remove it. + * Also pass $target to config.if. + * Enable Dwarf2 EH for powerpc. Bump the C++ binary version. No + loss in -backwards- compatibility as far as I can tell, so add a + compatibility symlink, and add to shlibs file. + * Add --no-backup-if-mismatch to the debian/patches/*.dpatch files, + to prevent bogus .orig's in diffs. + * Merged with (unreleased) 1.1.1.62-1 and 1.1.1.63-{1,2} packages from + Matthias Klose . + * Stop adding a backwards compatibility link for egcs-nof on powerpc. + To my knowledge, nothing uses it. Do add the libstdc++ API change + link, though. + + -- Daniel Jacobowitz Mon, 8 Mar 1999 14:24:01 -0500 + +egcs (1.1.1.63-2) stable; urgency=low + + * Provide a libstdc++ with a shared object name, which is compatible + to other distributions. Documented the change in README.Debian, + the libstdc++-2.9.postinst and the libstdc++-dev-config script. + + -- Matthias Klose Fri, 12 Mar 1999 00:36:20 +0100 + +egcs (1.1.1.63-1.1) unstable; urgency=low + + * Non-Maintainer release. + * Build against glibc 2.1. + * Make egcs the primary compiler on i386. + * Also confilct with egcc (<< FIRST_PRIMARY) + if FIRST_PRIMARY is defined. + (this tells dpkg that gcc completely obsoletes egcc) + * Remove hjl-12 patch again, HJL says it should not be + necessary with egcs 1.1.2. + (as per forwarded reply from Christopher Chimelis) + * Apply libapi patch in clean target before regenerating debian/control + and remove the patch afterward. Otherwise, the libstdc++ and libg++ + package names are generated wrong on a glibc 2.1 system. + + -- Joel Klecker Tue, 9 Mar 1999 15:31:02 -0800 + +egcs (1.1.1.63-1) unstable; urgency=low + + * New upstream version egcs-1.1.1-pre3. + * Applied improved libstdc++ warning patch from Rob Browning. + + -- Matthias Klose Tue, 9 Mar 1999 16:14:07 +0100 + +egcs (1.1.1.62-1) unstable; urgency=low + + * New upstream version egcs-1.1.1-pre2. + * New upstream version libg++-2.8.1.3. + * Readded ARM support + * Readded hjl-12 per request from Christopher C Chimelis + + + -- Matthias Klose Fri, 26 Feb 1999 09:54:01 +0100 + +egcs-snapshot (19990224-0.1) experimental; urgency=low + + * New snapshot. + * Add the ability to disable CPPLIB by setting CPPLIB=no in + the environment. + * Disable gpc for powerpc; I spent a long time getting it to + make correctly, and then it goes and ICEs. + + -- Daniel Jacobowitz Tue, 24 Feb 1999 23:34:12 -0500 + +egcs (1.1.1.61-1) unstable; urgency=low + + * New upstream version egcs-1.1.1-pre1. + * debian/control.in: Applied patch from bug report #32987. + * Split up H.J.Lu's hjl-19990115-linux patch into several small + chunks: libapi, arm-mips, libgcc, hjl-other. The changelog.Linux + aren't included in the separate chunks. Please refer to the + unmodified hjl-19990115-linux patch file in the egcs source pkg. + * Apply warning patch to fix the annoying spew you get if you try to + use ropes or deques with -Wall (which makes -Wall mostly useless for + spotting errors in your own code). Fixes #32996. + * debian/rules: Unapply patches in the exact reverse order they were + applied. + + -- Matthias Klose Sat, 20 Feb 1999 22:06:21 +0100 + +egcs (1.1.1-5) frozen unstable; urgency=medium + + * Move libgcc.map file to g++ package, where gcc is the secondary + compiler (fixes #32329, #32605, #32631). + * Prepare to rename libstdc++2.9 package for glibc-2.1 (fixes #32148). + * Apply NMU patch for arm architecure (fixes #32367). + * Don't apply hjl-12 patch for alpha architectures (requested by the + alpha developers, Christopher C Chimelis ). + * Call makeinfo with --no-validate to fix obscure build failure on alpha. + * Build gpc info files in doc subdirectory. + * Remove c++filt diversion (C++ name demangling patch is now in binutils, + fixes #30820 and #32502). + + -- Matthias Klose Sun, 31 Jan 1999 23:19:35 +0100 + +egcs (1.1.1-4.1) unstable; urgency=low + + * Non-maintainer upload. + * Pascal doesn't build for ARM. + + -- Jim Pick Sun, 24 Jan 1999 16:13:34 -0800 + +egcs (1.1.1-4) frozen unstable; urgency=high + + * Don't strip compiler libraries libgcc.a libobjc.a libg2c.a libgpc.a + * Move Pascal examples to the right place (fixes #32149, part 1). + * Add dependencies for switching from secondary to primary compiler, + if FIRST_PRIMARY is defined (fixes #32149, part 2). + + -- Matthias Klose Wed, 20 Jan 1999 16:51:30 +0100 + +egcs (1.1.1-3) frozen unstable; urgency=low + + * Updated with the H.J.Lu's hjl-19990115-linux patch (fixes the + __register_frame_info problems, mips and arm port included). + * Update gpc to 19990118 (beta release candidate). + * Strip static libraries (fixes #31247 and #31248). + * Changed maintainer address. + + -- Matthias Klose Tue, 19 Jan 1999 16:34:28 +0100 + +egcs (1.1.1-2) frozen unstable; urgency=low + + * Moved egcs-docs, g77-doc and gpc-doc packages to doc section. + * Downgraded Recommends: egcs-docs to Suggests: egcs-docs dependencies + (for archs, where egcs is the primary compiler). + * Add 'Suggests: stl-manual' dependency to libstdc++2.9-dev. + * Applied one more alpha patch: + ftp://ftp.yggdrasil.com/private/hjl/egcs/1.1.1/egcs-1.1.1.diff.12.gz + * Applied PPro optimization patch. + * Apply emit-rtl-nan patch. + * Upgraded to libg++-2.8.1.2a-19981218.tar.gz. + * Upgraded to gpc-19981218. + * Make symlinks for gobjc, libstdc++2.9-dev and libg++2.8.2 doc directories. + + -- Matthias Klose Wed, 23 Dec 1998 18:04:53 +0200 + +egcs-snapshot (19981211-1) experimental; urgency=low + + * New snapshot. + * Adapted gpc to egcs-2.92.x (BOOT_CFLAGS must include -g). + * New libg++-2.8.1.2a-19981209.tar.gz. + * debian/rules: new target mail-summary. + + -- Matthias Klose Fri, 11 Dec 1998 18:14:53 +0200 + +egcs (1.1.1-1) frozen unstable; urgency=high + + * Final egcs-1.1.1 release. + * The last version depended on a versioned libc6 again. + * Add lost dependency for libg++ on libstdc++. + * Added debian-libstdc++.sh script to generate a libstdc++ on a Linux + system, which doesn't use the libapi patch. + + -- Matthias Klose Wed, 2 Dec 1998 12:06:15 +0200 + +egcs (1.1.0.91.59-2) frozen unstable; urgency=high + + * Fixes bugs from libc6 2.0.7u-6 upload without dependency line + Conflicts: libstdc++-2.9 (<< 2.91.59): #30019, #30066, #30078. + * debian/copyright: Updated URLs. + * gcc --help now mentions /usr/doc/debian/bug-reporting.txt. + * Install README.Debian and include information about patches applied. + * Depend on unversioned libc6 on i386, such that libstdc++2.9 can be used + on a hamm system. + + -- Matthias Klose Fri, 27 Nov 1998 18:32:02 +0200 + +egcs (1.1.0.91.59-1) frozen unstable; urgency=low + + * This is egcs-1.1.1 prerelease #3, compiled with libc6 2.0.7u-6. + * Added dependency for libstdc++2.9-dev on g++ (fixes #29631). + * Package g77 provides f77 (fixes #29817). + * Already fixed in earlier egcs-1.1 releases: #2493, #25271, #10620. + * Bugs reported for gcc-2.7.x and fixed in the egcs version of gcc: + #2493, #4430, #4954, #5367, #6047, #10612, #12375, #20606, #24788, #26100. + * Upgraded libg++ to libg++-2.8.1.2a-19981114. + * Upgraded gpc to gpc-19981124. + * Close #25869: egcs and splay maintainers are unable to reproduce this + bug with the current Debian packages. Bug submitter doesn't respond. + * Close #25407: egcs maintainer cannot reproduce this bug with the current + Debian compiler. Bug submitter doesn't respond. + * Use debhelper 1.2.7 for building. + * Replace the libstdc++ and libg++ compatibility links with fake libraries. + + -- Matthias Klose Wed, 25 Nov 1998 12:11:42 +0200 + +egcs (1.1.0.91.58-5) frozen unstable; urgency=low + + * Applied patch to build on the m68060. + * Added c++filt and c++filt.1 to the g++ package. + * Updated gpc to gpc-981105; fixes some regressions compared to egcs-1.1. + * Separated out g77 and gpc doumentation to new packages g77-doc and gpc-doc. + * Closed bugs (#22158). + * Close #20248; on platforms where gas and gld are the default versions, + it makes no difference to configure with or without enable-ld. + * Close #24349. The bugs are in the amulet source. + See http://www.cs.cmu.edu/afs/cs/project/amulet/www/FAQ.html#GCC28x + * Rename gcc.info* files to egcs.info* (fixes #24088). + * Documented known bugs (and workarounds) in BUGS.Debian. + * Fixed demangling of C++ names (fixes #28787). + * Applied patch form aspell to libstdc++/stl/stl_rope.h. + * Updated from cvs 16 Nov 1998. + + -- Matthias Klose Tue, 17 Nov 1998 09:41:24 +0200 + +egcs-snapshot (19981115-2) experimental; urgency=low + + * New snapshot. Disabled gpc. + * New packages g77-doc and gpc-doc. + + -- Matthias Klose Mon, 16 Nov 1998 12:48:09 +0200 + +egcs (1.1.0.91.58-3) frozen unstable; urgency=low + + * Previous version installed in potato, not slink. + * Updated from cvs 3 Nov 1998. + + -- Matthias Klose Tue, 3 Nov 1998 18:34:44 +0200 + +egcs (1.1.0.91.58-2) unstable; urgency=low + + * [debian/rules]: added targets to apply and unapply patches. + * [debian/README.patches]: New file. + * Moved patches dir to debian/patches. debian/rules has to select + the patches to apply. + * Manual pages for genclass and gcov (fixes #5995, #20950, #22196). + * Apply egcs-1.1-reload patch needed for powerpc architecture. + * Fixed bugs (#17768, #20252, #25508, #27788). + * Reapplied alpha patch (#20875). + * Fixes first part of #22513, extended README.Debian (combining C & C++). + * Already fixed in earlier egcs-1.1 releases: #17963, #20252, #20524, + #20640, #22450, #24244, #24288, #28520. + + -- Matthias Klose Fri, 30 Oct 1998 13:41:45 +0200 + +egcs (1.1.0.91.58-1) experimental; urgency=low + + * New upstream version. That's the egcs-1.1.1 prerelease plus patches from + the cvs archive upto 29 Oct 1998. + * Merged files from the egcs and snapshot packages. + * Updated libg++ to libg++-2.8.1.2 (although the Debian package name is still + 2.8.2). + * Moved patches dir to patches-1.1. + * Dan Jacobowitz: + * This is a snapshot from the egcs_1_1_branch, with + libapi, reload, builtin-apply, and egcs patches from + the debian/patches/ dir applied, along with the egcs-gpc-patches + and gcc/p/diffs/gcc-egcs-2.91.55.diff. + * Conditionalize gcj and chill (since they aren't in this branch). + * Fake snapshots drop the -snap-main. + + -- Matthias Klose Thu, 29 Oct 1998 15:15:19 +0200 + +egcs-snapshot (1.1-19981019-5.1) experimental; urgency=low + + * This is a snapshot from the egcs_1_1_branch, with + libapi, reload, builtin-apply, and egcs patches from + the debian/patches/ dir applied, along with the egcs-gpc-patches + and gcc/p/diffs/gcc-egcs-2.91.55.diff. + * Conditionalize gcj and chill (since they aren't in this + branch). + * Fake snapshots drop the -snap-main. + + -- Daniel Jacobowitz Mon, 19 Oct 1998 22:19:23 -0400 + +egcs (1.1b-5) unstable; urgency=low + + * [debian/control.in] Fixed typo in dependencies (#28076, #28087, #28092). + + -- J.H.M. Dassen (Ray) Sun, 18 Oct 1998 22:56:51 +0200 + +egcs (1.1b-4) unstable; urgency=low + + * Strengthened g++ dependency on libstdc++_LIB_SO_-dev from + `Recommends' to `Depends'. + * Updated README.Debian for egcs-1.1. + * Updated TODO. + + -- Matthias Klose Thu, 15 Oct 1998 12:38:47 +0200 + +egcs-snapshot (19981005-0.1) experimental; urgency=low + + * Make libstdc++2.9-snap-main and libg++-snap-main provide + their mainstream equivalents and put those equivalents into + their shlibs file. + * Package gcj, the GNU Compiler for Java(TM). + + * New upstream version of egcs (The -regcs_latest_snapshot branch). + * Build without libg++ entirely. + * Leave out gpc for now - the internals are sufficiently different + that it does not trivially compile. + * Include an experimental reload patch for powerpc - this is, + in the words of its author, not release quality, but it allows + powerpc linuxthreads to function. + * On architectures where we are the primary compiler, let snapshots + build with --prefix=/usr and conflict with the stable versions. + * Package chill, a front end for the language Chill. + * Other applied patches from debian/patches/: egcs-patches and + builtin-apply-patch. + * Use reload.c revision 1.43 to avoid a nasty bug. + + -- Daniel Jacobowitz Wed, 7 Oct 1998 00:27:42 -0400 + +egcs (1.1b-3.1) unstable; urgency=low + + * NMU to fix the egcc -> gcc link once and for all + + -- Christopher C. Chimelis Tue, 22 Sep 1998 16:11:19 -0500 + +egcs (1.1b-3) unstable; urgency=low + + * Oops. The egcc -> gcc link on archs where gcc is egcc was broken. + Thanks to Chris Chimelis for pointing this out. + + -- J.H.M. Dassen (Ray) Mon, 21 Sep 1998 20:51:35 +0200 + +egcs (1.1b-2) unstable; urgency=low + + * New upstream spellfix release (Debian revision is 2 as the internal + version numbers didn't change). + * Added egcc -> gcc symlink on architectures where egcc is the primary C + compiler. Thus, maintainers of packages that require egcc, can now + simply use "egcc" without conditionals. + * Porters: we hope/plan to make egcs's gcc the default C compiler on all + platforms once the 2.2.x kernels are available. Please test this version + thoroughly, and give us a GO / NO GO for your architecture. + * Some symbols cpp used to predefine were removed upstream in order to clean + up the cpp namespace, but imake requires them for determining the proper + settings for LinuxMachineDefines (see /usr/X11R6/lib/X11/{Imake,linux}.cf), + thus we put them back. Thanks to Paul Slootman for reporting his imake + problems on Alpha. + * [gcc/config/alpha/linux.h] Added -D__alpha to CPP_PREDEFINES . + Thanks to Chris Chimelis for the alpha-only 1.1a-1.1 NMU which fixed + this already. + * [gcc/config/i386/linux.h] Added -D__i386__ to CPP_PREDEFINES . + * [gcc/config/sparc/linux.h] Has -Dsparc in CPP_PREDEFINES . + * [gcc/config/sparc/linux64.h] Has -Dsparc in CPP_PREDEFINES . + * [gcc/config/m68k/linux.h] Has -Dmc68000 in CPP_PREDEFINES . + * [gcc/config/rs6000/linux.h] Has -Dpowerpc in CPP_PREDEFINES . + * [gcc/config/arm/linux.h] Has -Darm in CPP_PREDEFINES . + * [gcc/config/i386/gnu.h] Has -Di386 in CPP_PREDEFINES . + * Small fixes and updates in README. + * Changes affecting the source package only: + * [gcc/Makefile.in, gcc/cp/Make-lang.in, gcc/p/Make-lang.in] + Daniel Jacobowitz: Ugly hacks of various kinds to make cplib2.txt get + properly regenerated with multilib. + * [debian/TODO] Created. + * [INSTALL/index.html] Fixed broken link. + + -- J.H.M. Dassen (Ray) Sun, 20 Sep 1998 14:05:15 +0200 + +egcs (1.1a-1) unstable; urgency=low + + * New upstream release. + * Added README.libstdc++ . + * Updated Standards-Version. + * Matthias: + * Downgraded gobjc dependency on egcs-docs from Recommends: to Suggests: . + * [libg++/Makefile.in] Patched not to rely on a `-f' flag of `ln'. + + -- J.H.M. Dassen (Ray) Wed, 2 Sep 1998 19:57:43 +0200 + +egcs (1.1-1) unstable; urgency=low + + * egcs-1.1 prerelease (from the last Debian package only the version file + changed). + * "Final" gpc Beta 2.1 gpc-19980830. + * Included libg++ and gpc in the .orig tarball. so that diffs are getting + smaller. + * debian/control.in: Changed maintainer address to galenh-egcs@debian.org. + * debian/copyright: Updated URLs. + + -- Matthias Klose Mon, 31 Aug 1998 12:43:13 +0200 + +egcs (1.0.99.56-0.1) unstable; urgency=low + + * New upstream snapshot 19980830 from CVS (called egcs-1.1 19980830). + * New libg++ snapshot 980828. + * Put all patches patches subdirectory; see patches/README in the source. + * debian/control.in: readded for libg++2.8.2-dev: + Replaces: libstdc++2.8-dev (<= 2.90.29-0.5) + * Renamed libg++2.9 package to libg++2.8.2. + * gcc/p/gpc-decl.c: Fix from Peter@Gerwinski.de; fixes optimization errors. + * patches/gpc-patch2: Fix from Peter@Gerwinski.de; fixes alpha errors. + * debian/rules: New configuration flag for building with and without + libstdc++api patch; untested without ... + + -- Matthias Klose Sun, 30 Aug 1998 12:04:22 +0200 + +egcs (1.0.99-0.6) unstable; urgency=low + + * PowerPC fixes. + * On powerpc, generate the -msoft-float libs and package them + as egcs-nof. + * Fix signed char error in gpc. + * Create a libg++.so.2.9 compatibility symlink. + + -- Daniel Jacobowitz Tue, 25 Aug 1998 11:44:09 -0400 + +egcs (1.0.99-0.5) unstable; urgency=low + + * New upstream snapshot 19980824. + * New gpc snapshot gpc-980822; reenabled gpc for alpha. + + -- Matthias Klose Tue, 25 Aug 1998 01:21:08 +0200 + +egcs (1.0.99-0.4) unstable; urgency=low + + * New upstream snapshot 19980819. Should build glibc 2.0.9x on PPC. + + -- Matthias Klose Wed, 19 Aug 1998 14:18:07 +0200 + +egcs (1.0.99-0.3) unstable; urgency=low + + * New upstream snapshot 19980816. + * debian/rules: build correct debian/control and debian/*.shlibs + * Enabled Haifa scheduler for ix86. + + -- Matthias Klose Mon, 17 Aug 1998 16:29:35 +0200 + +egcs (1.0.99-0.2) unstable; urgency=low + + * New upstream snapshot: egcs-19980812, minor changes only. + * Fixes for building on `primary' targets. + * Disabled gpc on `alpha' architecture. + * Uses debhelper 1.1.6 + * debian/control.in: Replace older snapshot versions in favor of newer + normal versions. + * debian/rules: Fixes building of binary-arch target only. + + -- Matthias Klose Thu, 13 Aug 1998 11:59:41 +0200 + +egcs (1.0.99-0.1) unstable; urgency=low + + * New upstream version: pre egcs-1.1 version. + * Many changes ... for details see debian/changelog.snapshot in the + source package. + * New packages libstdc++2.9 and libstdc++2.9-dev. + * New libg++ snapshot 980731: new packages libg++2.9 and libg++2.9-dev. + * New gpc snapshot gpc-980729: new package gpc. + * Uses debhelper 1.1 + + -- Matthias Klose Mon, 10 Aug 1998 13:00:27 +0200 + +egcs-snapshot (19980803-4) experimental; urgency=low + + * rebuilt debian/control. + + -- Matthias Klose Wed, 5 Aug 1998 08:51:47 +0200 + +egcs-snapshot (19980803-3) experimental; urgency=low + + * debian/rules: fix installation locations of NEWS, header and + `undocumented' files. + * man pages aren't compressed for the snapshot package. + + -- Matthias Klose Tue, 4 Aug 1998 17:34:31 +0200 + +egcs-snapshot (19980803-2) experimental; urgency=low + + * debian/rules: Uses debhelper. Old in debian/rules.old. + renamed postinst, prerm files for use with debhelper. + * debian/{libg++2.9,libstdc++2.9}/postinst: call ldconfig only, + when called for configure. + * egcs-docs is architecture independent package. + * new libg++ snapshot 980731. + * installed libstdc++ api patch (still buggy). + + -- Matthias Klose Mon, 3 Aug 1998 13:20:59 +0200 + +egcs-snapshot (19980729-1) experimental; urgency=low + + * New snapshot version 19980729 from CVS archive. + * New gpc snapshot gpc-980729. + * Let gcc/configure decide about using the Haifa scheduler. + * Remove -DDEBIAN. That was needed for the security improvements with + regard to the /tmp problem. egcs-1.1 chooses another approach. + * Save test-protocol and extract gpc errors to gpc-test-summary. + * Tighten binutils dependency to 2.9.1. + * debian/rules: new build-info target + * debian/{control.in,rules}: _SO_ and BINUTILSV substitution. + * debian/rules: add dependency for debian/control. + * debian/rules: remove bin/c++filt + * TODO: next version will use debhelper; the unorganized moving of + files becomes unmanageable ... + * TODO: g++ headers in stdc++ package? check! + + -- Matthias Klose Thu, 30 Jul 1998 12:10:20 +0200 + +egcs-snapshot (19980721-1) experimental; urgency=low + + * Unreleased. Infinite loops in executables made by gpc. + + -- Matthias Klose Wed, 22 Jul 1998 18:07:20 +0200 + +egcs-snapshot (19980715-1) experimental; urgency=low + + * New snapshot version from CVS archive. + * New gpc snapshot gpc-980715. + * New libg++ version libg++-2.8.2-980708. Changed versioning + schema for library. The major versions of libc, libstdc++ and the + g++ interface are coded in the library name. Use this new schema, + but provide a symlink to our previous schema, since the library + seems to be binary compatible. + * [debian/rules]: Fixed bug in build target, when bootstrap returns + with an error + + -- Matthias Klose Wed, 15 Jul 1998 10:55:05 +0200 + +egcs-snapshot (19980701-1) experimental; urgency=low + + * New snapshot version from CVS archive. + Two check programs in libg++ had to be manually killed to finish the + testsuite (tBag and tSet). + * New gpc snapshot gpc-980629. + * Incorporated debian/rules changes from egcs-1.0.3a-0.5 (but don't remove + gcc/cp/parse.c gcc/c-parse.c gcc/c-parse.y gcc/objc/objc-parse.c + gcc/objc/objc-parse.y, since these files are part of the release). + * Disable the -DMKTEMP_EACH_FILE -DHAVE_MKSTEMP -DDEBIAN flags for the + snapshot. egcs-1.1 will have another solution. + * Don't bootstrap the snapshot with -fno-force-mem. Internal compiler + error :-( + * libf2c.a and f2c.h have changed names to libg2c.a and g2c.h and + have moved again into the gcc-lib dir. They are installed under + libg2c.a and g2c.h. Is it necessary to provide links f2c -> g2c ? + * debian/rules: reflect change of build dir of libraries. + + -- Matthias Klose Wed, 2 Jul 1998 13:15:28 +0200 + +egcs-snapshot (19980628-0.1) experimental; urgency=low + + * New upstream snapshot version. + * Non-maintainer upload; Matthias appears to be absent currently. + * Updated shlibs. + * Merged changes from regular egcs: + * [debian/control] Tightened dependency on binutils to 2.8.1.0.23 or + newer, as according to INSTALL/SPECIFIC PowerPC (and possibly Sparc) + need this. + * [debian/rules] Clean up some generated files outside builddir, + so the .diff.gz becomes smaller. + * [debian/rules] Partial sync/update with the one for the regular egcs + version. + * [debian/rules] Make gcc/p/configure executable. + + -- J.H.M. Dassen (Ray) Wed, 1 Jul 1998 07:12:15 +0200 + +egcs (1.0.3a-0.6) frozen unstable; urgency=low + + * Some libg++ development files were in libstdc++2.8-dev rather than + libg++2.8-dev. Fixed this and dealt with upgrading from the earlier + versions (fixes #23908; this bug is not marked release-critical, but + is annoying and can be quite confusing for users. Therefore, I think + this fix should go in 2.0). + + -- J.H.M. Dassen (Ray) Tue, 30 Jun 1998 11:10:14 +0200 + +egcs (1.0.3a-0.5) frozen unstable; urgency=low + + * Fixed location of .hP files (Fixes #23448). + * [debian/rules] simplified extraction of the files for libg++2.8-dev. + + -- J.H.M. Dassen (Ray) Wed, 17 Jun 1998 09:33:41 +0200 + +egcs (1.0.3a-0.4) frozen unstable; urgency=low + + * [gcc/gcc.c] There is one call to choose_temp_base for determining the + tempdir to be used only; #ifdef HAVE_MKSTEMP delete the tempfile created + as a side effect. (fixes #23123 for egcs). + * [gcc/collect2.c] There's still a vulnerability here; I don't see how + I can fix it without leaving behind tempfiles though. + * [debian/control] Tightened dependency on binutils to 2.8.1.0.23 or + newer, as according to INSTALL/SPECIFIC PowerPC (and possibly Sparc) + need this. + * [debian/rules] Clean up some generated files outside builddir, so the + .diff.gz becomes smaller. + + -- J.H.M. Dassen (Ray) Sat, 13 Jun 1998 09:06:52 +0200 + +egcs-snapshot (19980608-1) experimental; urgency=low + + * New snapshot version. + + -- Matthias Klose Tue, 9 Jun 1998 14:07:44 +0200 + +egcs (1.0.3a-0.3) frozen unstable; urgency=high (security fixes) + + * [gcc/toplev.c] set flag_force_mem to 1 at optimisation level 3 or higher. + This works around #17768 which is considered release-critical. + * Changes by Matthias: + * [debian/README] Documentation of the compiler situation for Objective C. + * [debian/rules, debian/control.*] Generate control file from a master + file. + * [debian/rules] Updates for Pascal and Fortran parts; brings it in sync + with the one for the egcs snapshots. + * Use the recommended settings LDFLAGS=-s CFLAGS= BOOT_CFLAGS='-O2'. + * Really compile -DMKTEMP_EACH_FILE -DHAVE_MKSTEMP (really fixes #19453 + for egcs). + * [gcc/gcc.c] A couple of temp files weren't marked for deletion. + + -- J.H.M. Dassen (Ray) Sun, 31 May 1998 22:56:22 +0200 + +egcs (1.0.3a-0.2) frozen unstable; urgency=high (security fixes) + + * Security improvements with regard to the /tmp problem + (gcc opens predictably named files in TMPDIR which can be abused via + symlinks) (Fixes #19453 for egcs). + * Compile -DMKTEMP_EACH_FILE to ensure the %u name is generated randomly + every time; affects gcc/gcc.c . + * [gcc/choose-temp.c, libiberty/choose-temp.c]: use mktemp(3) if compiled + -DUSE_MKSTEMP . + * Security improvements: don't use the result of choose_temp_base in a + predictable fashion. + [gcc/gcc.c]: + * @c, @objective-c: use random name rather then tempbasename.i for + intermediate preprocessor output (%g.i -> %d%u). + * @c, @objective-c: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @c, @objective-c, @cpp-output, @assembler-with-cpp: switched + "as [-o output file] " to + "as [-o output file]". + * @c, @objective-c, @assembler-with-cpp: use previous random name + (cc1|cpp output) rather then tempbasename.s for intermediate assembler + input (%g.s -> %U) + [gcc/f/lang-specs.h]: + * @f77-cpp-input: use random name rather then tempbasename.i for + intermediate cpp output (%g.i -> %d%u). + * @f77-cpp-input: use previous random name (cpp output) rather than + tempbasename.i for f771 input (%g.i -> %U). + * @f77-cpp-input: switched + "as [-o output file] " to + "as [-o output file]". + * @f77-cpp-input: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @ratfor: use random name rather then tempbasename.i for + intermediate ratfor output (%g.f -> %d%u). + * @ratfor: use previous random name (ratfor output) rather than + tempbasename.i for f771 input (%g.f -> %U). + * @ratfor: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @ratfor: switched + "as [-o output file] " to + "as [-o output file]". + * @ratfor: use previous random name + (ratfor output) rather then tempbasename.s for intermediate assembler + input (%g.s -> %U). + * @f77: use random name rather then tempbasename.s for + intermediate ratfor output (%g.f -> %d%u). + * @ratfor: use previous random name (ratfor output) rather than + tempbasename.i for f771 input (%g.f -> %U). + * @ratfor: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @ratfor: switched + "as [-o output file] " to + "as [-o output file]". + * @ratfor: use previous random name + (ratfor output) rather then tempbasename.s for intermediate assembler + input (%g.s -> %U). + * @f77: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @f77: switched + "as [-o output file] " to + "as [-o output file]". + * @ratfor: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %U). + * Run the testsuite (this requires the dejagnu package in experimental; + unfortunately, it is difficult to distinguish this version from the one + in frozen). + if possible, and log the results in warn_summary and bootstrap-summary. + * [gcc/choose-temp.c, libiberty/choose-temp.c]: s|returh|return| in + comment. + * Added notes on the Debian compiler setup [debian/README] to the + development packages. + * Matthias: + * [libg++/etc/lf/Makefile.in] Replaced "-ltermcap" by "-lncurses". + * [debian/rules] Updated so it can be used for both egcs releases and + snapshots easily; added support for the GNU Pascal Compiler gpc. + * [contrib/test_summary, contrib/warn_summary] Added from CVS. + * Run compiler checks and include results in /usr/doc/. + * Updates to the README. + * [debian/rules] Use assignments to speed up startup. + * [debian/rules] Show the important variables at the start of the build + process. + * [debian/control.secondary] Added a dependency of gobjc on egcc on + architectures where egcs provides the secondary compiler, as + /usr/bin/egcc is the compiler driver for gobjc. (Fixes #22829). + * [debian/control.*] Bumped Standards-Version; used shorter version + numbers in the dependency relationships (esthetic difference only); + fixed typo. + + -- J.H.M. Dassen (Ray) Tue, 26 May 1998 21:47:41 +0200 + +egcs-snapshot (19980525-1) experimental; urgency=low + + * New snapshot version. + + -- Matthias Klose Tue, 26 May 1998 18:04:06 +0200 + +egcs-snapshot (19980517-1) experimental; urgency=low + + * "Initial" release of the egcs-snapshot package; many debian/* files + derived from the egcs-1.0.3a-0.1 package (maintained by Galen Hazelwood + , NMU's by J.H.M. Dassen (Ray) ) + * The egcs-snapshot packages can coexist with the packages of the + egcs release. Package names have a '-ss' appended. + * All packages are installed in a separate tree (/usr/lib/egcs-ss following + the FHSS). + * Made all snapshot packages extra, all snapshot packages conflict + with correspondent egcs packages, which are newer than the snapshot. + * Included libg++-2.8.1-980505. + * Included GNU Pascal (gpc-980511). + * Haifa scheduler enabled for all snapshot packages. + * Run compiler checks and include results in /usr/doc/. + * Further information in /usr/doc//README.snapshot. + + -- Matthias Klose Wed, 20 May 1998 11:14:06 +0200 + +egcs (1.0.3a-0.1) frozen unstable; urgency=low + + * New upstream release egcs-2.90.29 980515 (egcs-1.0.3 release) + (we were using 1.0.3-prerelease). This includes the Haifa patches + we had since 1.0.3-0.2 and the gcc/objc/thr-posix.c patch we had + since 1.0.3-0.1; the differences with 1.0.3-prerelease + patches + we had is negligable. + * iostream info documentation was in the wrong package (libg++2.8-dev). + Now it's in libstdc++2.8-dev. (Thanks to Jens Rosenboom for bringing + this to my attention). As 1.0.3-0.3 didn't make it out of Incoming, + I'm not adding "Replaces:" for this; folks who had 1.0.3-0.3 installed + already know enough to use --force-overwrite. + * [gcc/objc/objc-act.c] Applied patch Matthias Klose supplied me with that + demangles Objective C method names in gcc error messages. + * Explicitly disable Haifa scheduling on Alpha, to make it easier to use + this package's diff with egcs snapshots, which may turn on Haifa + scheduling even though it is still unstable. (Requested by Chris Chimelis) + * Don't run "configure" again if builddir already exists (makes it faster + to restart builds in case one is hacking internals). Requested by + Johnnie Ingram. + * [gcc/gbl-ctors.h] Don't use extern declaration for atexit on glibc 2.1 + and higher (the prototype has probably changed; having the declaration + broke Sparc compiles). + * [debian/rules] Determine all version number automatically (from the + version string in gcc/version.c). + * [debian/copyright] Updated FTP locations; added text about libg++ (fixes + #22465). + + -- J.H.M. Dassen (Ray) Sat, 16 May 1998 17:41:44 +0200 + +egcs (1.0.3-0.3) frozen unstable; urgency=low + + * Made an "egcs-doc" package containing documentation for egcs (e)gcc, + g++, gobjc, so that administrators can choose whether to have this + documenation or the documentation that comes with the GNU gcc package. + Dependency on this is Recommends: on architectures where egcs provides + the primary C compiler; Suggests: on the others (where GNU gcc is still + the primary C compiler). + * Use the g++ FAQ from gcc/cp rather than libg++, as that version is more + up to date. + * Added iostream info documentation to libstdc++2.8-dev. + + -- J.H.M. Dassen (Ray) Wed, 13 May 1998 08:46:10 +0200 + +egcs (1.0.3-0.2) frozen unstable; urgency=low + + * Added libg++ that works with egcs, found at + ftp://ftp.yggdrasil.com/private/hjl/libg++-2.8.1-980505.tar.gz + (fixes #20587 (Severity: important)). + * The "libg++" and "libg++-dev" virtual packages now refer to the GNU + extensions. + * Added the g++ FAQ that comes with libg++ to the g++ package. + * libg++/Makefile.in: added $(srcdir) to rule for g++FAQ.info so that it + builds OK in builddir. + * Added -D__i386__ to the cpp predefines on intel. + * Patches Matthias supplied me with: + * Further 1.0.3 prerelease patches from CVS. + This includes patches to the Haifa scheduler. Alpha porters, please + check if this makes the Haifa scheduler OK again. + * Objective C patches from CVS. + + -- J.H.M. Dassen (Ray) Fri, 8 May 1998 14:43:20 +0200 + +egcs (1.0.3-0.1) frozen unstable; urgency=low (high for maintainers that use objc) + + * bug fixes only in new upstream version + * Applied patches from egcs CVS archive (egcs_1_03_prerelease) + (see gcc/ChangeLog in the egcs source package). + * libstdc++2.8-dev no longer Provides: libg++-dev (fixes #21153). + * libstdc++2.8-dev now Conflicts: libg++27-dev (bo), + libg++272-dev (hamm) [regular packages] rather than + Conflicts: libg++-dev [virtual package] to prepare the way for "libg++" + to be used as a virtual package for a new libg++ package (i.e. an up to + date one, which not longer contains libstdc++, but only the GNU + extensions) that is compatible with the egcs g++ packages. Such a package + isn't available yet. Joel Klecker tried building libg++2.8.1.1a within + egcs's libstdc++ setup, but it appears to need true gcc 2.8.1 . + * Filed Severity: important bugs against wxxt1-dev (#21707) because these + still depend on libg++-dev, which is removed in this version. + A fixed libsidplay1-dev has already been uploaded. + * libstdc++2.8 is now Section: base and Priority: required (as dselect is + linked against it). + * Disabled Haifa scheduling on Alpha again; Chris Chimelis reported + that this caused problems on some machines. + * [gcc/extend.texi] + ftp://maya.idiap.ch/pub/tmb/usenix88-lexic.ps.Z is no longer available; + use http://master.debian.org/~karlheg/Usenix88-lexic.pdf . + (fixes the egcs part of #20002). + * Updated Standards-Version. + * Changed chmod in debian/rules at Johnie Ingram's request. + * Rather than hardwire the Debian part of the packages' version number, + extract it from debian/changelog . + * Use gcc/objc/thr-posix.c from 980418 egcs snapshot to make objc work. + (Fixes #21192). + * Applied workaround for the GNUstep packages on sparc systems. + See README.sparc (on sparc packages only) in the doc directory. + This affects the other compilers as well. + * Already done in 1.0.2-0.7: the gobjc package now provides a virtual + package objc-compiler. + + -- J.H.M. Dassen (Ray) Tue, 28 Apr 1998 12:05:28 +0200 + +egcs (1.0.2-0.7) frozen unstable; urgency=low + + * Separated out Objective-C compiler. + * Applied patch from http://www.cygnus.com/ml/egcs/1998-Apr/0614.html + + -- Matthias Klose Fri, 17 Apr 1998 10:25:48 +0200 + +egcs (1.0.2-0.6) frozen unstable; urgency=low + + * Due to upstream changes (libg++ is now only the GNU specific C++ + classes, and is no longer maintained; libstdc++ contains the C++ + standard library, including STL), the virtual "libg++-dev" + package's meaning has become confusing. Therefore, new or updated + packages should no longer use the virtual "libg++-dev" package. + * Corrected g++'s Recommends to libstdc++2.8-dev (>=2.90.27-0.1). + The previous version had Recommends: libstdc++-dev (>=2.90.27-0.1) + which doesn't work, as libstc++-dev is a virtual package. + * Bumped Standards-Version. + + -- J.H.M. Dassen (Ray) Tue, 14 Apr 1998 11:52:08 +0200 + +egcs (1.0.2-0.5) frozen unstable; urgency=low (high for maintainers of packages that use libstdc++) + + * Modified shlibs file for libstdc++ to generate versioned dependencies, + as it is not link compatible with the 1.0.1-x versions in + project/experimental. (Fixes #20247, #20033) + Packages depending on libstd++ should be recompiled to fix their + dependencies. + * Strenghtened g++'s Recommends: libstdc++-dev to the 1.0.2 version or + newer. + * Fixed problems with the unknown(7) symlink for gcov. + * Reordering links now works. + + -- Adam Heath Sun, 12 Apr 1998 13:09:30 -0400 + +egcs (1.0.2-0.4) frozen unstable; urgency=low + + * Unreleased. This is the version Adam Heath received from me. + * Replaces: gcc (<= 2.7.2.3-3) so that the overlap with the older gcc + packages (including bo's gcc_2.7.2.1-8) is handled properly + (fixes #19931, #19672, #20217, #20593). + * Alpha architecture (fixes #20875): + * Patched gcc/config/alpha/linux.h for the gmon functions to operate + properly. + * Made egcs the primary C compiler. + * Enabled Hafia scheduling. + * Lintian-detected problems: + * E: libstdc++2.8: ldconfig-symlink-before-shlib-in-deb usr/lib/libstdc++.so.2.8 + * E: egcc: binary-without-manpage gcov + Reported as wishlist bug; added link to undocumented(7). + * W: libstdc++2.8: non-standard-executable-perm usr/lib/libstdc++.so.2.8.0 0555 + * E: libstdc++2.8: shlib-with-executable-bit usr/lib/libstdc++.so.2.8.0 0555 + + -- J.H.M. Dassen (Ray) Fri, 10 Apr 1998 14:46:46 +0200 + +egcs (1.0.2-0.3) frozen unstable; urgency=low + + * Really fixed dependencies. + + -- J.H.M. Dassen (Ray) Mon, 30 Mar 1998 11:30:26 +0200 + +egcs (1.0.2-0.2) frozen unstable; urgency=low + + * Fixed dependencies. + + -- J.H.M. Dassen (Ray) Sat, 28 Mar 1998 13:58:58 +0100 + +egcs (1.0.2-0.1) frozen unstable; urgency=low + + * New upstream version; it now has -Di386 in CPP_PREDEFINES. + * Only used the debian/* patches from 1.0.1-2; the rest of it appears + to be in 1.0.2 already. + + -- J.H.M. Dassen (Ray) Fri, 27 Mar 1998 11:47:14 +0100 + +egcs (1.0.1-2) unstable; urgency=low + + * Integrated pre-release 1.0.2 patches + * Split out g++ + * egcs may now provide either the primary or secondary C compiler + + -- Galen Hazelwood Sat, 14 Mar 1998 14:15:32 -0700 + +egcs (1.0.1-1) unstable; urgency=low + + * New upstream version + * egcs is now the standard Debian gcc! + * gcc now provides c-compiler (#15248 et al.) + * g77 now provides fortran77-compiler + * g77 dependencies now correct (#16991) + * /usr/doc/gcc/changelog.gz now has correct permissions (#16139) + + -- Galen Hazelwood Sat, 7 Feb 1998 19:22:30 -0700 + +egcs (1.0-1) experimental; urgency=low + + * First official release + + -- Galen Hazelwood Thu, 4 Dec 1997 16:30:11 -0700 + +egcs (970917-1) experimental; urgency=low + + * New upstream snapshot (There's a lot of stuff here as well, including + a new libstdc++, but it _still_ won't build...) + * eg77 driver now works properly + + -- Galen Hazelwood Wed, 17 Sep 1997 20:44:29 -0600 + +egcs (970904-1) experimental; urgency=low + + * New upstream snapshot + + -- Galen Hazelwood Sun, 7 Sep 1997 18:25:06 -0600 + +egcs (970814-1) experimental; urgency=low + + * Initial packaging (of initial snapshot!) + + -- Galen Hazelwood Wed, 20 Aug 1997 00:36:28 +0000 + +gcc272 (2.7.2.3-12) unstable; urgency=low + + * Compiled on a glibc-2.0 based system. + * Reflect move of manpage to /usr/share in gcc.postinst as well. + * Moved gcc272-docs to section doc, priority optional. + + -- Matthias Klose Sat, 28 Aug 1999 13:42:13 +0200 + +gcc272 (2.7.2.3-11) unstable; urgency=low + + * Follow Debian policy for GNU system type (fixes #42657). + * config/i386/linux.h: Remove %[cpp_cpu] from CPP_SPEC. Stops gcc-2.95 + complaining about obsolete spec operators (using gcc -V 2.7.2.3). + Patch suggested by Zack Weinberg . + + -- Matthias Klose Sun, 15 Aug 1999 20:12:21 +0200 + +gcc272 (2.7.2.3-10) unstable; urgency=low + + * Renamed source package to gcc272. The egcs source package is renamed + to gcc, because it's now the "official" GNU C compiler. + * Changed maintainer address to "Debian GCC maintainers". + * Install info and man stuff to /usr/share. + + -- Matthias Klose Thu, 27 May 1999 12:29:23 +0200 + +gcc (2.7.2.3-9) unstable; urgency=low + + * debian/{postinst,prerm}-doc: handle gcc272.info, not gcc.info. + Fixes #36306. + + -- Matthias Klose Tue, 20 Apr 1999 07:32:58 +0200 + +gcc (2.7.2.3-8) unstable; urgency=low + + * Make gcc-2.7 the secondary compiler. Rename gcc package to gcc272. + On i386, sparc and m68k, this package is compiled against glibc2.0. + * The cpp package is built from the egcs source package. + + -- Matthias Klose Mon, 29 Mar 1999 22:48:50 +0200 + +gcc (2.7.2.3-7) frozen unstable; urgency=low + + * Separated out ObjC compiler to gobjc27 package. + * Changed maintainer address. + * Synchronized README.Debian with egcs-1.1.1-3. + + -- Matthias Klose Tue, 29 Dec 1998 19:05:26 +0100 + +gcc (2.7.2.3-6) frozen unstable; urgency=low + + * Link with -lc on i386, m68k, sparc, when building shared libraries + (fixes #25122). + + -- Matthias Klose Thu, 3 Dec 1998 12:12:12 +0200 + +gcc (2.7.2.3-5) frozen unstable; urgency=low + + * Updated maintainer info. + * Updated Standards-Version; made lintian-clean. + * gcc-docs can coexist with the latest egcs-docs, so added (<= version) to + the Conflicts. + * Updated the README and renamed it to README.Debian . + * Put a reference to /usr/doc/gcc/README.Debian in the info docs. + * Updated description of g++272 . + * Clean up generated info files, to keep the diff small. + + -- J.H.M. Dassen (Ray) Tue, 17 Nov 1998 20:05:59 +0100 + +gcc (2.7.2.3-4.8) frozen unstable; urgency=high + + * Non-maintainer release + * Fix type in extended description + * Removed wrong test in postinst + * Add preinst to clean up some stuff from an older gcc package properly + and stop man complaining about dangling symlinks + + -- Wichert Akkerman Fri, 17 Jul 1998 18:48:32 +0200 + +gcc (2.7.2.3-4.7) frozen unstable; urgency=high + + * Really fixed gcc-docs postinst (Fixes #23470), so that `gcc-docs' + becomes installable. + + -- J.H.M. Dassen (Ray) Mon, 15 Jun 1998 07:53:40 +0200 + +gcc (2.7.2.3-4.6) frozen unstable; urgency=high + + * [gcc.c] There is one call to choose_temp_base for determining the + tempdir to be used only; + #ifdef HAVE_MKSTEMP delete the tempfile created as a side effect. + (fixes #23123 for gcc). + * gcc-docs postinst was broken (due to a broken line) (fixes #23391, #23401). + * [debian/control] description for gcc-docs said `egcs' where it should have + said `gcc' (fixes #23396). + + -- J.H.M. Dassen (Ray) Thu, 11 Jun 1998 12:48:50 +0200 + +gcc (2.7.2.3-4.5) frozen unstable; urgency=high + + * The previous version left temporary files behind, as they were not + marked for deletion afterwards. + + -- J.H.M. Dassen (Ray) Sun, 31 May 1998 22:49:14 +0200 + +gcc (2.7.2.3-4.4) frozen unstable; urgency=high (security fixes) + + * Security improvements with regard to the /tmp problem + (gcc opens predictably named files in TMPDIR which can be abused via + symlinks) (Fixes #19453 for gcc): + * Compile -DMKTEMP_EACH_FILE to ensure the %u name is generated randomly + every time; affects gcc/gcc.c . + * [cp/g++.c, collect2.c, gcc.c] If compiled -DHAVE_MKSTEMP use mkstemp(3) + rather than mktemp(3). + * Security improvements: don't use the result of choose_temp_base in a + predictable fashion. + [gcc.c]: + * @c, @objective-c: use random name rather then tempbasename.i for + intermediate preprocessor output (%g.i -> %d%u). + * @c, @objective-c: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @c, @objective-c, @cpp-output, @assembler-with-cpp: switched + "as [-o output file] " to + "as [-o output file]". + * @c, @objective-c, @assembler-with-cpp: use previous random name + (cc1|cpp output) rather then tempbasename.s for intermediate assembler + input (%g.s -> %U) + [f/lang-specs.h]: + * @f77-cpp-input: use random name rather then tempbasename.i for + intermediate cpp output (%g.i -> %d%u). + * @f77-cpp-input: use previous random name (cpp output) rather than + tempbasename.i for f771 input (%g.i -> %U). + * @f77-cpp-input: switched + "as [-o output file] " to + "as [-o output file]". + * @f77-cpp-input: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @ratfor: use random name rather then tempbasename.i for + intermediate ratfor output (%g.f -> %d%u). + * @ratfor: use previous random name (ratfor output) rather than + tempbasename.i for f771 input (%g.f -> %U). + * @ratfor: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @ratfor: switched + "as [-o output file] " to + "as [-o output file]". + * @ratfor: use previous random name + (ratfor output) rather then tempbasename.s for intermediate assembler + input (%g.s -> %U). + * @f77: use random name rather then tempbasename.s for + intermediate ratfor output (%g.f -> %d%u). + * @ratfor: use previous random name (ratfor output) rather than + tempbasename.i for f771 input (%g.f -> %U). + * @ratfor: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @ratfor: switched + "as [-o output file] " to + "as [-o output file]". + * @ratfor: use previous random name + (ratfor output) rather then tempbasename.s for intermediate assembler + input (%g.s -> %U). + * @f77: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %d%u). + * @f77: switched + "as [-o output file] " to + "as [-o output file]". + * @ratfor: use random name rather then tempbasename.s for + intermediate compiler output (%g.s -> %U). + + -- J.H.M. Dassen (Ray) Sat, 30 May 1998 17:27:03 +0200 + +gcc (2.7.2.3-4.3) frozen unstable; urgency=high + + * The "alpha" patches from -4 affected a lot more than alpha support, + and in all likeliness broke compilation of libc6 2.0.7pre3-1 + and 2.0.7pre1-4 . I removed them by selective application of the + diff between -4 and -4. (should fix #22292). + * Fixed reference to the trampolines paper (fixes #20002 for Debian; + this still needs to be forwarded). + * This is for frozen too. (obsoletes #22390 (request to move -4.2 to + frozen)). + * Split of gcc-docs package, so that the gcc can be succesfully installed + on systems that have egcs-docs installed. + * Added the README on the compiler situation that's already in the egcs + packages. + * Use the recommended settings LDFLAGS=-s CFLAGS= BOOT_CFLAGS='-O2'. + + -- J.H.M. Dassen (Ray) Thu, 28 May 1998 20:03:59 +0200 + +gcc (2.7.2.3-4.2) unstable; urgency=low + + * Still for unstable, as I have received no feedback about the g++272 + package yet. + * gcc now Provides: objc-compiler . + * Clean up /etc/alternatives/{g++,g++.1.gz} if they are dangling. + (fixes #19765, #20563) + + -- J.H.M. Dassen (Ray) Wed, 22 Apr 1998 12:40:45 +0200 + +gcc (2.7.2.3-4.1) unstable; urgency=low + + * Bumped Standards-Version. + * Forked off a g++272 package (e.g. for code that uses the GNU extensions + in libg++); for now this is in "unstable" only; feedback appreciated. + * Some cleanup (lintian): permissions, absolute link, gzip manpage. + + -- J.H.M. Dassen (Ray) Fri, 17 Apr 1998 13:05:25 +0200 + +gcc (2.7.2.3-4) unstable; urgency=low + + * Added alpha patches + * Only build C and objective-c compilers, split off g++ + + -- Galen Hazelwood Sun, 8 Mar 1998 21:16:39 -0700 + +gcc (2.7.2.3-3) unstable; urgency=low + + * Added patches for m68k + * Added patches for sparc (#13968) + + -- Galen Hazelwood Fri, 17 Oct 1997 18:25:21 -0600 + +gcc (2.7.2.3-2) unstable; urgency=low + + * Added g77 support (g77 0.5.21) + + -- Galen Hazelwood Wed, 10 Sep 1997 18:44:54 -0600 + +gcc (2.7.2.3-1) unstable; urgency=low + + * New upstream version + * Now using pristine source + * Removed misplaced paragraph in cpp.texi (#10877) + * Fix security bug for temporary files (#5298) + * Added Suggests: libg++-dev (#12335) + * Patched objc/thr-posix.c to support conditions (#12502) + + -- Galen Hazelwood Mon, 8 Sep 1997 12:20:07 -0600 + +gcc (2.7.2.2-7) unstable; urgency=low + + * Made cc and c++ managed through alternates mechanism (for egcs) + + -- Galen Hazelwood Tue, 19 Aug 1997 22:37:03 +0000 + +gcc (2.7.2.2-6) unstable; urgency=low + + * Tweaked Objective-C thread support (#11069) + + -- Galen Hazelwood Wed, 9 Jul 1997 11:56:57 -0600 + +gcc (2.7.2.2-5) unstable; urgency=low + + * More updated m68k patches + * Now conflicts with libc5-dev (#10006, #10112) + * More strict Depends: cpp, prevents version mismatch (#9954) + + -- Galen Hazelwood Thu, 19 Jun 1997 01:29:02 -0600 + +gcc (2.7.2.2-4) unstable; urgency=low + + * Moved to unstable + * Temporarily removed fortran support (waiting for new g77) + * Updated m68k patches + + -- Galen Hazelwood Fri, 9 May 1997 13:35:14 -0600 + +gcc (2.7.2.2-3) experimental; urgency=low + + * Built against libc6 (fixes bug #8511) + + -- Galen Hazelwood Fri, 4 Apr 1997 13:30:10 -0700 + +gcc (2.7.2.2-2) experimental; urgency=low + + * Fixed configure to build crt{begin,end}S.o on i386 + + -- Galen Hazelwood Tue, 11 Mar 1997 16:15:02 -0700 + +gcc (2.7.2.2-1) experimental; urgency=low + + * Built for use with libc6-dev (experimental purposes only!) + * Added m68k patches from Andreas Schwab + + -- Galen Hazelwood Fri, 7 Mar 1997 12:44:17 -0700 + +gcc (2.7.2.1-7) unstable; urgency=low + + * Patched to support g77 0.5.20 + + -- Galen Hazelwood Thu, 6 Mar 1997 22:20:23 -0700 + +gcc (2.7.2.1-6) unstable; urgency=low + + * Added (small) manpage for protoize/unprotoize (fixes bug #6904) + * Removed -lieee from specs file (fixes bug #7741) + * No longer builds aout-gcc + + -- Galen Hazelwood Mon, 3 Mar 1997 11:10:20 -0700 + +gcc (2.7.2.1-5) unstable; urgency=low + + * debian/control now lists cpp in section "interpreters" + * Re-added Objective-c patches for unstable + + -- Galen Hazelwood Wed, 22 Jan 1997 10:27:52 -0700 + +gcc (2.7.2.1-4) stable unstable; urgency=low + + * Changed original source file so dpkg-source -x works + * Removed Objective-c patches (unsafe for stable) + * Built against rex's libc, so fixes placed in -3 are available to + those still using rex + + -- Galen Hazelwood Tue, 21 Jan 1997 11:11:53 -0700 + +gcc (2.7.2.1-3) unstable; urgency=low + + * New (temporary) maintainer + * Updated to new standards and source format + * Integrated aout-gcc into gcc source package + * Demoted aout-gcc to Priority "extra" + * cpp package description more clear (fixes bug #5428) + * Removed cpp "Replaces: gcc" (fixes bug #5762) + * Minor fix to invoke.texi (fixes bug #2909) + * Added latest Objective-C patches for GNUstep people (fixes bug #4657) + + -- Galen Hazelwood Sun, 5 Jan 1997 09:57:36 -0700 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..3a0f145 --- /dev/null +++ b/debian/control @@ -0,0 +1,2445 @@ +Source: gcc-7 +Section: devel +Priority: optional +Maintainer: Debian GCC Maintainers +Uploaders: Matthias Klose +Standards-Version: 3.9.8 +Build-Depends: debhelper (>= 9.20141010), dpkg-dev (>= 1.17.14), + g++-multilib [amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32] , + libc6.1-dev (>= 2.13-5) [alpha ia64] | libc0.3-dev (>= 2.13-5) [hurd-i386] | libc0.1-dev (>= 2.13-5) [kfreebsd-i386 kfreebsd-amd64] | libc6-dev (>= 2.13-5), 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.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, + 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.28) | binutils-multiarch:native (>= 2.28), binutils-hppa64-linux-gnu:native (>= 2.28) [hppa amd64 i386 x32], + gperf (>= 3.0.1), bison (>= 1:2.3), flex, gettext, + gdb:native, nvptx-tools [amd64], + texinfo (>= 4.3), locales, sharutils, + procps, gnat-7:native [!m32r !sh3 !sh3eb !sh4eb !m68k], g++-7:native, netbase, + libisl-dev (>= 0.14), libmpc-dev (>= 1.0), libmpfr-dev (>= 3.0.0-9~), libgmp-dev (>= 2:5.0.1~), lib32z1-dev [amd64 kfreebsd-amd64], lib64z1-dev [i386], + dejagnu [!m68k !hurd-amd64 !hurd-i386 !hurd-alpha !kfreebsd-amd64 !kfreebsd-i386 !kfreebsd-alpha], realpath (>= 1.9.12), chrpath, lsb-release, quilt, + pkg-config, libgc-dev, + g++-7-alpha-linux-gnu [alpha] , gobjc-7-alpha-linux-gnu [alpha] , gfortran-7-alpha-linux-gnu [alpha] , gdc-7-alpha-linux-gnu [alpha] , gccgo-7-alpha-linux-gnu [alpha] , gnat-7-alpha-linux-gnu [alpha] , g++-7-x86-64-linux-gnu [amd64] , gobjc-7-x86-64-linux-gnu [amd64] , gfortran-7-x86-64-linux-gnu [amd64] , gdc-7-x86-64-linux-gnu [amd64] , gccgo-7-x86-64-linux-gnu [amd64] , gnat-7-x86-64-linux-gnu [amd64] , g++-7-arm-linux-gnueabi [armel] , gobjc-7-arm-linux-gnueabi [armel] , gfortran-7-arm-linux-gnueabi [armel] , gdc-7-arm-linux-gnueabi [armel] , gccgo-7-arm-linux-gnueabi [armel] , gnat-7-arm-linux-gnueabi [armel] , g++-7-arm-linux-gnueabihf [armhf] , gobjc-7-arm-linux-gnueabihf [armhf] , gfortran-7-arm-linux-gnueabihf [armhf] , gdc-7-arm-linux-gnueabihf [armhf] , gccgo-7-arm-linux-gnueabihf [armhf] , gnat-7-arm-linux-gnueabihf [armhf] , g++-7-aarch64-linux-gnu [arm64] , gobjc-7-aarch64-linux-gnu [arm64] , gfortran-7-aarch64-linux-gnu [arm64] , gdc-7-aarch64-linux-gnu [arm64] , gccgo-7-aarch64-linux-gnu [arm64] , gnat-7-aarch64-linux-gnu [arm64] , g++-7-i686-linux-gnu [i386] , gobjc-7-i686-linux-gnu [i386] , gfortran-7-i686-linux-gnu [i386] , gdc-7-i686-linux-gnu [i386] , gccgo-7-i686-linux-gnu [i386] , gnat-7-i686-linux-gnu [i386] , g++-7-mips-linux-gnu [mips] , gobjc-7-mips-linux-gnu [mips] , gfortran-7-mips-linux-gnu [mips] , gdc-7-mips-linux-gnu [mips] , gccgo-7-mips-linux-gnu [mips] , gnat-7-mips-linux-gnu [mips] , g++-7-mipsel-linux-gnu [mipsel] , gobjc-7-mipsel-linux-gnu [mipsel] , gfortran-7-mipsel-linux-gnu [mipsel] , gdc-7-mipsel-linux-gnu [mipsel] , gccgo-7-mipsel-linux-gnu [mipsel] , gnat-7-mipsel-linux-gnu [mipsel] , g++-7-mips64-linux-gnuabi64 [mips64] , gobjc-7-mips64-linux-gnuabi64 [mips64] , gfortran-7-mips64-linux-gnuabi64 [mips64] , gdc-7-mips64-linux-gnuabi64 [mips64] , gccgo-7-mips64-linux-gnuabi64 [mips64] , gnat-7-mips64-linux-gnuabi64 [mips64] , g++-7-mips64el-linux-gnuabi64 [mips64el] , gobjc-7-mips64el-linux-gnuabi64 [mips64el] , gfortran-7-mips64el-linux-gnuabi64 [mips64el] , gdc-7-mips64el-linux-gnuabi64 [mips64el] , gccgo-7-mips64el-linux-gnuabi64 [mips64el] , gnat-7-mips64el-linux-gnuabi64 [mips64el] , g++-7-powerpc-linux-gnu [powerpc] , gobjc-7-powerpc-linux-gnu [powerpc] , gfortran-7-powerpc-linux-gnu [powerpc] , gdc-7-powerpc-linux-gnu [powerpc] , gccgo-7-powerpc-linux-gnu [powerpc] , gnat-7-powerpc-linux-gnu [powerpc] , g++-7-powerpc-linux-gnuspe [powerpcspe] , gobjc-7-powerpc-linux-gnuspe [powerpcspe] , gfortran-7-powerpc-linux-gnuspe [powerpcspe] , gdc-7-powerpc-linux-gnuspe [powerpcspe] , gccgo-7-powerpc-linux-gnuspe [powerpcspe] , gnat-7-powerpc-linux-gnuspe [powerpcspe] , g++-7-powerpc64-linux-gnu [ppc64] , gobjc-7-powerpc64-linux-gnu [ppc64] , gfortran-7-powerpc64-linux-gnu [ppc64] , gdc-7-powerpc64-linux-gnu [ppc64] , gccgo-7-powerpc64-linux-gnu [ppc64] , gnat-7-powerpc64-linux-gnu [ppc64] , g++-7-powerpc64le-linux-gnu [ppc64el] , gobjc-7-powerpc64le-linux-gnu [ppc64el] , gfortran-7-powerpc64le-linux-gnu [ppc64el] , gdc-7-powerpc64le-linux-gnu [ppc64el] , gccgo-7-powerpc64le-linux-gnu [ppc64el] , gnat-7-powerpc64le-linux-gnu [ppc64el] , g++-7-m68k-linux-gnu [m68k] , gobjc-7-m68k-linux-gnu [m68k] , gfortran-7-m68k-linux-gnu [m68k] , gdc-7-m68k-linux-gnu [m68k] , g++-7-sh4-linux-gnu [sh4] , gobjc-7-sh4-linux-gnu [sh4] , gfortran-7-sh4-linux-gnu [sh4] , gnat-7-sh4-linux-gnu [sh4] , g++-7-sparc64-linux-gnu [sparc64] , gobjc-7-sparc64-linux-gnu [sparc64] , gfortran-7-sparc64-linux-gnu [sparc64] , gdc-7-sparc64-linux-gnu [sparc64] , gccgo-7-sparc64-linux-gnu [sparc64] , gnat-7-sparc64-linux-gnu [sparc64] , g++-7-s390x-linux-gnu [s390x] , gobjc-7-s390x-linux-gnu [s390x] , gfortran-7-s390x-linux-gnu [s390x] , gdc-7-s390x-linux-gnu [s390x] , gccgo-7-s390x-linux-gnu [s390x] , gnat-7-s390x-linux-gnu [s390x] , g++-7-x86-64-linux-gnux32 [x32] , gobjc-7-x86-64-linux-gnux32 [x32] , gfortran-7-x86-64-linux-gnux32 [x32] , gdc-7-x86-64-linux-gnux32 [x32] , gccgo-7-x86-64-linux-gnux32 [x32] , gnat-7-x86-64-linux-gnux32 [x32] , +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-7/ +Vcs-Svn: svn://anonscm.debian.org/gcccvs/branches/sid/gcc-7 + +Package: gcc-7-base +Architecture: any +Multi-Arch: same +Section: libs +Priority: required +Depends: ${misc:Depends} +Replaces: ${base:Replaces} +Breaks: ${base:Breaks} +Description: GCC, the GNU Compiler Collection (base package) + This package contains files common to all languages and libraries + contained in the GNU Compiler Collection (GCC). + +Package: libgcc1 +Architecture: any +Section: libs +Priority: required +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Provides: libgcc1-armel [armel], libgcc1-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +Description: GCC support library + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. + +Package: libgcc1-dbg +Architecture: any +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libgcc1 (= ${gcc:EpochVersion}), ${misc:Depends} +Provides: libgcc1-dbg-armel [armel], libgcc1-dbg-armhf [armhf] +Multi-Arch: same +Description: GCC support library (debug symbols) + Debug symbols for the GCC support library. + +Package: libgcc2 +Architecture: m68k +Section: libs +Priority: required +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +Description: GCC support library + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. + +Package: libgcc2-dbg +Architecture: m68k +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libgcc2 (= ${gcc:EpochVersion}), ${misc:Depends} +Multi-Arch: same +Description: GCC support library (debug symbols) + Debug symbols for the GCC support library. + +Package: libgcc-7-dev +Architecture: any +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libgcc}, ${dep:libssp}, ${dep:libgomp}, ${dep:libitm}, + ${dep:libatomic}, ${dep:libbtrace}, ${dep:libasan}, ${dep:liblsan}, + ${dep:libtsan}, ${dep:libubsan}, ${dep:libcilkrts}, ${dep:libvtv}, + ${dep:libmpx}, + ${dep:libqmath}, ${dep:libunwinddev}, ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: same +Replaces: gccgo-7 (<< ${gcc:Version}) +Description: GCC support library (development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. + +Package: libgcc4 +Architecture: hppa +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +Section: libs +Priority: required +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: GCC support library + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. + +Package: libgcc4-dbg +Architecture: hppa +Multi-Arch: same +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libgcc4 (= ${gcc:EpochVersion}), ${misc:Depends} +Description: GCC support library (debug symbols) + Debug symbols for the GCC support library. + +Package: lib64gcc1 +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: libs +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${misc:Depends} +Conflicts: libgcc1 (<= 1:3.3-0pre9) +Description: GCC support library (64bit) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. + +Package: lib64gcc1-dbg +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib64gcc1 (= ${gcc:EpochVersion}), ${misc:Depends} +Description: GCC support library (debug symbols) + Debug symbols for the GCC support library. + +Package: lib64gcc-7-dev +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +Description: GCC support library (64bit development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. + +Package: lib32gcc1 +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: libs +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: GCC support library (32 bit Version) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. + +Package: lib32gcc1-dbg +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib32gcc1 (= ${gcc:EpochVersion}), ${misc:Depends} +Description: GCC support library (debug symbols) + Debug symbols for the GCC support library. + +Package: lib32gcc-7-dev +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +Description: GCC support library (32 bit development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. + +Package: libn32gcc1 +Architecture: mips mipsel mips64 mips64el +Section: libs +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${misc:Depends} +Conflicts: libgcc1 (<= 1:3.3-0pre9) +Description: GCC support library (n32) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. + +Package: libn32gcc1-dbg +Architecture: mips mipsel mips64 mips64el +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libn32gcc1 (= ${gcc:EpochVersion}), ${misc:Depends} +Description: GCC support library (debug symbols) + Debug symbols for the GCC support library. + +Package: libn32gcc-7-dev +Architecture: mips mipsel mips64 mips64el +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +Description: GCC support library (n32 development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. + +Package: libx32gcc1 +Architecture: amd64 i386 +Section: libs +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${misc:Depends} +Description: GCC support library (x32) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. + +Package: libx32gcc1-dbg +Architecture: amd64 i386 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libx32gcc1 (= ${gcc:EpochVersion}), ${misc:Depends} +Description: GCC support library (debug symbols) + Debug symbols for the GCC support library. + +Package: libx32gcc-7-dev +Architecture: amd64 i386 +Section: libdevel +Priority: optional +Recommends: ${dep:libcdev} +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +Description: GCC support library (x32 development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. + +Package: gcc-7 +Architecture: any +Section: devel +Priority: optional +Depends: cpp-7 (= ${gcc:Version}), gcc-7-base (= ${gcc:Version}), + ${dep:libcc1}, + binutils (>= ${binutils:Version}), + ${dep:libgccdev}, ${shlibs:Depends}, ${misc:Depends} +Recommends: ${dep:libcdev} +Replaces: gccgo-7 (<< ${gcc:Version}), cpp-7 (<< 7.1.1-8) +Suggests: ${gcc:multilib}, gcc-7-doc (>= ${gcc:SoftVersion}), + gcc-7-locales (>= ${gcc:SoftVersion}), + libgcc1-dbg (>= ${libgcc:Version}), + libgomp1-dbg (>= ${gcc:Version}), + libitm1-dbg (>= ${gcc:Version}), + libatomic1-dbg (>= ${gcc:Version}), + libasan4-dbg (>= ${gcc:Version}), + liblsan0-dbg (>= ${gcc:Version}), + libtsan0-dbg (>= ${gcc:Version}), + libubsan0-dbg (>= ${gcc:Version}), + libcilkrts5-dbg (>= ${gcc:Version}), + libmpx2-dbg (>= ${gcc:Version}), + libquadmath0-dbg (>= ${gcc:Version}) +Provides: c-compiler +Description: GNU C compiler + This is the GNU C compiler, a fairly portable optimizing compiler for C. + +Package: gcc-7-multilib +Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32 +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), ${dep:libcbiarchdev}, ${dep:libgccbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +Description: GNU C compiler (multilib support) + This is the GNU C compiler, a fairly portable optimizing compiler for C. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). + +Package: gcc-7-test-results +Architecture: any +Section: devel +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), ${misc:Depends} +Replaces: g++-5 (<< 5.2.1-28) +Description: Test results for the GCC test suite + This package contains the test results for running the GCC test suite + for a post build analysis. + +Package: gcc-7-plugin-dev +Architecture: any +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), libgmp-dev (>= 2:5.0.1~), libmpc-dev (>= 1.0), ${shlibs:Depends}, ${misc:Depends} +Description: Files for GNU GCC plugin development. + This package contains (header) files for GNU GCC plugin development. It + is only used for the development of GCC plugins, but not needed to run + plugins. + +Package: gcc-7-hppa64-linux-gnu +Architecture: hppa amd64 i386 x32 +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), + binutils-hppa64-linux-gnu | binutils-hppa64, + ${shlibs:Depends}, ${misc:Depends} +Description: GNU C compiler (cross compiler for hppa64) + This is the GNU C compiler, a fairly portable optimizing compiler for C. + +Package: cpp-7 +Architecture: any +Section: interpreters +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Suggests: gcc-7-locales (>= ${gcc:SoftVersion}) +Replaces: gccgo-7 (<< ${gcc:Version}) +Breaks: libmagics++-dev (<< 2.28.0-4), hardening-wrapper (<< 2.8+nmu3) +Description: GNU C preprocessor + A macro processor that is used automatically by the GNU C compiler + to transform programs before actual compilation. + . + This package has been separated from gcc for the benefit of those who + require the preprocessor but not the compiler. + +Package: gcc-7-locales +Architecture: all +Section: devel +Priority: optional +Depends: gcc-7-base (>= ${gcc:SoftVersion}), cpp-7 (>= ${gcc:SoftVersion}), ${misc:Depends} +Recommends: gcc-7 (>= ${gcc:SoftVersion}) +Description: GCC, the GNU compiler collection (native language support files) + Native language support for GCC. Lets GCC speak your language, + if translations are available. + . + Please do NOT submit bug reports in other languages than "C". + Always reset your language settings to use the "C" locales. + +Package: g++-7 +Architecture: any +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), libstdc++-7-dev (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Provides: c++-compiler, c++abi2-dev +Suggests: ${gxx:multilib}, gcc-7-doc (>= ${gcc:SoftVersion}), libstdc++6-7-dbg (>= ${gcc:Version}) +Description: GNU C++ compiler + This is the GNU C++ compiler, a fairly portable optimizing compiler for C++. + +Package: g++-7-multilib +Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32 +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), g++-7 (= ${gcc:Version}), gcc-7-multilib (= ${gcc:Version}), ${dep:libcxxbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +Suggests: ${dep:libcxxbiarchdbg} +Description: GNU C++ compiler (multilib support) + This is the GNU C++ compiler, a fairly portable optimizing compiler for C++. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). + +Package: libgomp1 +Section: libs +Architecture: any +Provides: libgomp1-armel [armel], libgomp1-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: GCC OpenMP (GOMP) support library + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libgomp1-dbg +Architecture: any +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libgomp1 (= ${gcc:Version}), ${misc:Depends} +Provides: libgomp1-dbg-armel [armel], libgomp1-dbg-armhf [armhf] +Multi-Arch: same +Description: GCC OpenMP (GOMP) support library (debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib32gomp1 +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: GCC OpenMP (GOMP) support library (32bit) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib32gomp1-dbg +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib32gomp1 (= ${gcc:Version}), ${misc:Depends} +Description: GCC OpenMP (GOMP) support library (32 bit debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib64gomp1 +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: GCC OpenMP (GOMP) support library (64bit) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib64gomp1-dbg +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib64gomp1 (= ${gcc:Version}), ${misc:Depends} +Description: GCC OpenMP (GOMP) support library (64bit debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libn32gomp1 +Section: libs +Architecture: mips mipsel mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: GCC OpenMP (GOMP) support library (n32) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libn32gomp1-dbg +Architecture: mips mipsel mips64 mips64el +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libn32gomp1 (= ${gcc:Version}), ${misc:Depends} +Description: GCC OpenMP (GOMP) support library (n32 debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + +Package: libx32gomp1 +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: GCC OpenMP (GOMP) support library (x32) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libx32gomp1-dbg +Architecture: amd64 i386 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libx32gomp1 (= ${gcc:Version}), ${misc:Depends} +Description: GCC OpenMP (GOMP) support library (x32 debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + +Package: libitm1 +Section: libs +Architecture: any +Provides: libitm1-armel [armel], libitm1-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: GNU Transactional Memory Library + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: libitm1-dbg +Architecture: any +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libitm1 (= ${gcc:Version}), ${misc:Depends} +Provides: libitm1-dbg-armel [armel], libitm1-dbg-armhf [armhf] +Multi-Arch: same +Description: GNU Transactional Memory Library (debug symbols) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: lib32itm1 +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: GNU Transactional Memory Library (32bit) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: lib32itm1-dbg +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib32itm1 (= ${gcc:Version}), ${misc:Depends} +Description: GNU Transactional Memory Library (32 bit debug symbols) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: lib64itm1 +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: GNU Transactional Memory Library (64bit) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: lib64itm1-dbg +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib64itm1 (= ${gcc:Version}), ${misc:Depends} +Description: GNU Transactional Memory Library (64bit debug symbols) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +#Package: libn32itm`'ITM_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: ifdef(`TARGET',`extra',`PRI(optional)') +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: GNU Transactional Memory Library (n32) +# GNU Transactional Memory Library (libitm) provides transaction support for +# accesses to the memory of a process, enabling easy-to-use synchronization of +# accesses to shared memory by several threads. + +#Package: libn32itm`'ITM_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: extra +#Depends: BASELDEP, libdep(itm`'ITM_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: GNU Transactional Memory Library (n32 debug symbols) +# GNU Transactional Memory Library (libitm) provides transaction support for +# accesses to the memory of a process, enabling easy-to-use synchronization of +# accesses to shared memory by several threads. + +Package: libx32itm1 +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: GNU Transactional Memory Library (x32) + This manual documents the usage and internals of libitm. It provides + transaction support for accesses to the memory of a process, enabling + easy-to-use synchronization of accesses to shared memory by several threads. + +Package: libx32itm1-dbg +Architecture: amd64 i386 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libx32itm1 (= ${gcc:Version}), ${misc:Depends} +Description: GNU Transactional Memory Library (x32 debug symbols) + This manual documents the usage and internals of libitm. It provides + transaction support for accesses to the memory of a process, enabling + easy-to-use synchronization of accesses to shared memory by several threads. + +Package: libatomic1 +Section: libs +Architecture: any +Provides: libatomic1-armel [armel], libatomic1-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: support library providing __atomic built-in functions + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libatomic1-dbg +Architecture: any +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libatomic1 (= ${gcc:Version}), ${misc:Depends} +Provides: libatomic1-dbg-armel [armel], libatomic1-dbg-armhf [armhf] +Multi-Arch: same +Description: support library providing __atomic built-in functions (debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: lib32atomic1 +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: support library providing __atomic built-in functions (32bit) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: lib32atomic1-dbg +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib32atomic1 (= ${gcc:Version}), ${misc:Depends} +Description: support library providing __atomic built-in functions (32 bit debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: lib64atomic1 +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: support library providing __atomic built-in functions (64bit) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: lib64atomic1-dbg +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib64atomic1 (= ${gcc:Version}), ${misc:Depends} +Description: support library providing __atomic built-in functions (64bit debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libn32atomic1 +Section: libs +Architecture: mips mipsel mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: support library providing __atomic built-in functions (n32) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libn32atomic1-dbg +Architecture: mips mipsel mips64 mips64el +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libn32atomic1 (= ${gcc:Version}), ${misc:Depends} +Description: support library providing __atomic built-in functions (n32 debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libx32atomic1 +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: support library providing __atomic built-in functions (x32) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libx32atomic1-dbg +Architecture: amd64 i386 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libx32atomic1 (= ${gcc:Version}), ${misc:Depends} +Description: support library providing __atomic built-in functions (x32 debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libasan4 +Section: libs +Architecture: any +Provides: libasan4-armel [armel], libasan4-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: AddressSanitizer -- a fast memory error detector + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libasan4-dbg +Architecture: any +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libasan4 (= ${gcc:Version}), ${misc:Depends} +Provides: libasan4-dbg-armel [armel], libasan4-dbg-armhf [armhf] +Multi-Arch: same +Description: AddressSanitizer -- a fast memory error detector (debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib32asan4 +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: AddressSanitizer -- a fast memory error detector (32bit) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib32asan4-dbg +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib32asan4 (= ${gcc:Version}), ${misc:Depends} +Description: AddressSanitizer -- a fast memory error detector (32 bit debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib64asan4 +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: AddressSanitizer -- a fast memory error detector (64bit) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib64asan4-dbg +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib64asan4 (= ${gcc:Version}), ${misc:Depends} +Description: AddressSanitizer -- a fast memory error detector (64bit debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +#Package: libn32asan`'ASAN_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: ifdef(`TARGET',`extra',`PRI(extra)') +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: AddressSanitizer -- a fast memory error detector (n32) +# AddressSanitizer (ASan) is a fast memory error detector. It finds +# use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +#Package: libn32asan`'ASAN_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: extra +#Depends: BASELDEP, libdep(asan`'ASAN_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: AddressSanitizer -- a fast memory error detector (n32 debug symbols) +# AddressSanitizer (ASan) is a fast memory error detector. It finds +# use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libx32asan4 +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: AddressSanitizer -- a fast memory error detector (x32) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libx32asan4-dbg +Architecture: amd64 i386 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libx32asan4 (= ${gcc:Version}), ${misc:Depends} +Description: AddressSanitizer -- a fast memory error detector (x32 debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: liblsan0 +Section: libs +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: LeakSanitizer -- a memory leak detector (runtime) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. + +Package: liblsan0-dbg +Architecture: any +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), liblsan0 (= ${gcc:Version}), ${misc:Depends} +Multi-Arch: same +Description: LeakSanitizer -- a memory leak detector (debug symbols) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. + +Package: lib32lsan0 +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: LeakSanitizer -- a memory leak detector (32bit) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer (empty package). + +Package: lib32lsan0-dbg +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib32lsan0 (= ${gcc:Version}), ${misc:Depends} +Description: LeakSanitizer -- a memory leak detector (32 bit debug symbols) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer (empty package). + +#Package: lib64lsan`'LSAN_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +#Priority: ifdef(`TARGET',`extra',`PRI(optional)') +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: LeakSanitizer -- a memory leak detector (64bit) +# LeakSanitizer (Lsan) is a memory leak detector which is integrated +# into AddressSanitizer. + +#Package: lib64lsan`'LSAN_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +#Section: debug +#Priority: extra +#Depends: BASELDEP, libdep(lsan`'LSAN_SO,64,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: LeakSanitizer -- a memory leak detector (64bit debug symbols) +# LeakSanitizer (Lsan) is a memory leak detector which is integrated +# into AddressSanitizer. + +#Package: libn32lsan`'LSAN_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: ifdef(`TARGET',`extra',`PRI(optional)') +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: LeakSanitizer -- a memory leak detector (n32) +# LeakSanitizer (Lsan) is a memory leak detector which is integrated +# into AddressSanitizer. + +#Package: libn32lsan`'LSAN_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: extra +#Depends: BASELDEP, libdep(lsan`'LSAN_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: LeakSanitizer -- a memory leak detector (n32 debug symbols) +# LeakSanitizer (Lsan) is a memory leak detector which is integrated +# into AddressSanitizer. + +Package: libx32lsan0 +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: LeakSanitizer -- a memory leak detector (x32) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer (empty package). + +Package: libx32lsan0-dbg +Architecture: amd64 i386 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libx32lsan0 (= ${gcc:Version}), ${misc:Depends} +Description: LeakSanitizer -- a memory leak detector (x32 debug symbols) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer (empty package). + +Package: libtsan0 +Section: libs +Architecture: any +Provides: libtsan0-armel [armel], libtsan0-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: ThreadSanitizer -- a Valgrind-based detector of data races (runtime) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: libtsan0-dbg +Architecture: any +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libtsan0 (= ${gcc:Version}), ${misc:Depends} +Provides: libtsan0-dbg-armel [armel], libtsan0-dbg-armhf [armhf] +Multi-Arch: same +Description: ThreadSanitizer -- a Valgrind-based detector of data races (debug symbols) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: libubsan0 +Section: libs +Architecture: any +Provides: libubsan0-armel [armel], libubsan0-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: UBSan -- undefined behaviour sanitizer (runtime) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libubsan0-dbg +Architecture: any +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libubsan0 (= ${gcc:Version}), ${misc:Depends} +Provides: libubsan0-dbg-armel [armel], libubsan0-dbg-armhf [armhf] +Multi-Arch: same +Description: UBSan -- undefined behaviour sanitizer (debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: lib32ubsan0 +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: UBSan -- undefined behaviour sanitizer (32bit) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: lib32ubsan0-dbg +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib32ubsan0 (= ${gcc:Version}), ${misc:Depends} +Description: UBSan -- undefined behaviour sanitizer (32 bit debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: lib64ubsan0 +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: UBSan -- undefined behaviour sanitizer (64bit) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: lib64ubsan0-dbg +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib64ubsan0 (= ${gcc:Version}), ${misc:Depends} +Description: UBSan -- undefined behaviour sanitizer (64bit debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +#Package: libn32ubsan`'UBSAN_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: ifdef(`TARGET',`extra',`PRI(optional)') +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: UBSan -- undefined behaviour sanitizer (n32) +# UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. +# Various computations will be instrumented to detect undefined behavior +# at runtime. Available for C and C++. + +#Package: libn32ubsan`'UBSAN_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: extra +#Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: UBSan -- undefined behaviour sanitizer (n32 debug symbols) +# UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. +# Various computations will be instrumented to detect undefined behavior +# at runtime. Available for C and C++. + +Package: libx32ubsan0 +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: UBSan -- undefined behaviour sanitizer (x32) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libx32ubsan0-dbg +Architecture: amd64 i386 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libx32ubsan0 (= ${gcc:Version}), ${misc:Depends} +Description: UBSan -- undefined behaviour sanitizer (x32 debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libcilkrts5 +Section: libs +Architecture: any +Provides: libcilkrts5-armel [armel], libcilkrts5-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Intel Cilk Plus language extensions (runtime) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libcilkrts5-dbg +Architecture: any +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libcilkrts5 (= ${gcc:Version}), ${misc:Depends} +Provides: libcilkrts5-dbg-armel [armel], libcilkrts5-dbg-armhf [armhf] +Multi-Arch: same +Description: Intel Cilk Plus language extensions (debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: lib32cilkrts5 +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: Intel Cilk Plus language extensions (32bit) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: lib32cilkrts5-dbg +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib32cilkrts5 (= ${gcc:Version}), ${misc:Depends} +Description: Intel Cilk Plus language extensions (32 bit debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: lib64cilkrts5 +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: Intel Cilk Plus language extensions (64bit) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: lib64cilkrts5-dbg +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib64cilkrts5 (= ${gcc:Version}), ${misc:Depends} +Description: Intel Cilk Plus language extensions (64bit debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libx32cilkrts5 +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: Intel Cilk Plus language extensions (x32) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libx32cilkrts5-dbg +Architecture: amd64 i386 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libx32cilkrts5 (= ${gcc:Version}), ${misc:Depends} +Description: Intel Cilk Plus language extensions (x32 debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libmpx2 +Section: libs +Architecture: any +Provides: libmpx2-armel [armel], libmpx2-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Replaces: libmpx0 (<< 6-20160120-1) +Description: Intel memory protection extensions (runtime) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: libmpx2-dbg +Architecture: any +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libmpx2 (= ${gcc:Version}), ${misc:Depends} +Provides: libmpx2-dbg-armel [armel], libmpx2-dbg-armhf [armhf] +Multi-Arch: same +Description: Intel memory protection extensions (debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: lib32mpx2 +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Replaces: lib32mpx0 (<< 6-20160120-1) +Description: Intel memory protection extensions (32bit) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: lib32mpx2-dbg +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib32mpx2 (= ${gcc:Version}), ${misc:Depends} +Description: Intel memory protection extensions (32 bit debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: lib64mpx2 +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: lib64mpx0 (<< 6-20160120-1) +Description: Intel memory protection extensions (64bit) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: lib64mpx2-dbg +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib64mpx2 (= ${gcc:Version}), ${misc:Depends} +Description: Intel memory protection extensions (64bit debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: libquadmath0 +Section: libs +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: GCC Quad-Precision Math Library + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: libquadmath0-dbg +Architecture: any +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libquadmath0 (= ${gcc:Version}), ${misc:Depends} +Multi-Arch: same +Description: GCC Quad-Precision Math Library (debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. + +Package: lib32quadmath0 +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: GCC Quad-Precision Math Library (32bit) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: lib32quadmath0-dbg +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib32quadmath0 (= ${gcc:Version}), ${misc:Depends} +Description: GCC Quad-Precision Math Library (32 bit debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. + +Package: lib64quadmath0 +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: GCC Quad-Precision Math Library (64bit) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: lib64quadmath0-dbg +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib64quadmath0 (= ${gcc:Version}), ${misc:Depends} +Description: GCC Quad-Precision Math Library (64bit debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. + +#Package: libn32quadmath`'QMATH_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: ifdef(`TARGET',`extra',`PRI(optional)') +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: GCC Quad-Precision Math Library (n32) +# A library, which provides quad-precision mathematical functions on targets +# supporting the __float128 datatype. The library is used to provide on such +# targets the REAL(16) type in the GNU Fortran compiler. + +#Package: libn32quadmath`'QMATH_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: extra +#Depends: BASELDEP, libdep(quadmath`'QMATH_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: GCC Quad-Precision Math Library (n32 debug symbols) +# A library, which provides quad-precision mathematical functions on targets +# supporting the __float128 datatype. + +Package: libx32quadmath0 +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: GCC Quad-Precision Math Library (x32) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: libx32quadmath0-dbg +Architecture: amd64 i386 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libx32quadmath0 (= ${gcc:Version}), ${misc:Depends} +Description: GCC Quad-Precision Math Library (x32 debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. + +Package: libcc1-0 +Section: libs +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: GCC cc1 plugin for GDB + libcc1 is a plugin for GDB. + +Package: libgccjit0 +Section: libs +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Breaks: python-gccjit (<< 0.4-4), python3-gccjit (<< 0.4-4) +Description: GCC just-in-time compilation (shared library) + libgccjit provides an embeddable shared library with an API for adding + compilation to existing programs using GCC. + +Package: libgccjit0-dbg +Section: debug +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libgccjit0 (= ${gcc:Version}), + ${shlibs:Depends}, ${misc:Depends} +Breaks: libgccjit-5-dbg, libgccjit-6-dbg +Replaces: libgccjit-5-dbg, libgccjit-6-dbg +Description: GCC just-in-time compilation (debug information) + libgccjit provides an embeddable shared library with an API for adding + compilation to existing programs using GCC. + +Package: libgccjit-7-doc +Section: doc +Architecture: all +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), ${misc:Depends} +Conflicts: libgccjit-5-doc, libgccjit-6-doc +Description: GCC just-in-time compilation (documentation) + libgccjit provides an embeddable shared library with an API for adding + compilation to existing programs using GCC. + +Package: libgccjit-7-dev +Section: libdevel +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgccjit0 (>= ${gcc:Version}), + ${shlibs:Depends}, ${misc:Depends} +Suggests: libgccjit-7-dbg +Description: GCC just-in-time compilation (development files) + libgccjit provides an embeddable shared library with an API for adding + compilation to existing programs using GCC. + +Package: gobjc++-7 +Architecture: any +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gobjc-7 (= ${gcc:Version}), g++-7 (= ${gcc:Version}), ${shlibs:Depends}, libobjc-7-dev (= ${gcc:Version}), ${misc:Depends} +Suggests: ${gobjcxx:multilib}, gcc-7-doc (>= ${gcc:SoftVersion}) +Provides: objc++-compiler +Description: GNU Objective-C++ compiler + This is the GNU Objective-C++ compiler, which compiles + Objective-C++ on platforms supported by the gcc compiler. It uses the + gcc backend to generate optimized code. + +Package: gobjc++-7-multilib +Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32 +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gobjc++-7 (= ${gcc:Version}), g++-7-multilib (= ${gcc:Version}), gobjc-7-multilib (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: GNU Objective-C++ compiler (multilib support) + This is the GNU Objective-C++ compiler, which compiles Objective-C++ on + platforms supported by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). + +Package: gobjc-7 +Architecture: any +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), ${dep:libcdev}, ${shlibs:Depends}, libobjc-7-dev (= ${gcc:Version}), ${misc:Depends} +Suggests: ${gobjc:multilib}, gcc-7-doc (>= ${gcc:SoftVersion}), libobjc4-dbg (>= ${gcc:Version}) +Provides: objc-compiler +Description: GNU Objective-C compiler + This is the GNU Objective-C compiler, which compiles + Objective-C on platforms supported by the gcc compiler. It uses the + gcc backend to generate optimized code. + +Package: gobjc-7-multilib +Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32 +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gobjc-7 (= ${gcc:Version}), gcc-7-multilib (= ${gcc:Version}), ${dep:libobjcbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +Description: GNU Objective-C compiler (multilib support) + This is the GNU Objective-C compiler, which compiles Objective-C on platforms + supported by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). + +Package: libobjc-7-dev +Architecture: any +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgcc-7-dev (= ${gcc:Version}), libobjc4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: same +Description: Runtime library for GNU Objective-C applications (development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: lib64objc-7-dev +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64gcc-7-dev (= ${gcc:Version}), lib64objc4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (64bit development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: lib32objc-7-dev +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32gcc-7-dev (= ${gcc:Version}), lib32objc4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (32bit development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: libn32objc-7-dev +Architecture: mips mipsel mips64 mips64el +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libn32gcc-7-dev (= ${gcc:Version}), libn32objc4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (n32 development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: libx32objc-7-dev +Architecture: amd64 i386 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32gcc-7-dev (= ${gcc:Version}), libx32objc4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (x32 development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: libobjc4 +Section: libs +Architecture: any +Provides: libobjc4-armel [armel], libobjc4-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Objective-C applications + Library needed for GNU ObjC applications linked against the shared library. + +Package: libobjc4-dbg +Section: debug +Architecture: any +Provides: libobjc4-dbg-armel [armel], libobjc4-dbg-armhf [armhf] +Multi-Arch: same +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libobjc4 (= ${gcc:Version}), libgcc1-dbg (>= ${libgcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (debug symbols) + Library needed for GNU ObjC applications linked against the shared library. + +Package: lib64objc4 +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (64bit) + Library needed for GNU ObjC applications linked against the shared library. + +Package: lib64objc4-dbg +Section: debug +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib64objc4 (= ${gcc:Version}), lib64gcc1-dbg (>= ${gcc:EpochVersion}), ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (64 bit debug symbols) + Library needed for GNU ObjC applications linked against the shared library. + +Package: lib32objc4 +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: Runtime library for GNU Objective-C applications (32bit) + Library needed for GNU ObjC applications linked against the shared library. + +Package: lib32objc4-dbg +Section: debug +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib32objc4 (= ${gcc:Version}), lib32gcc1-dbg (>= ${gcc:EpochVersion}), ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (32 bit debug symbols) + Library needed for GNU ObjC applications linked against the shared library. + +Package: libn32objc4 +Section: libs +Architecture: mips mipsel mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (n32) + Library needed for GNU ObjC applications linked against the shared library. + +Package: libn32objc4-dbg +Section: debug +Architecture: mips mipsel mips64 mips64el +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libn32objc4 (= ${gcc:Version}), libn32gcc1-dbg (>= ${gcc:EpochVersion}), ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (n32 debug symbols) + Library needed for GNU ObjC applications linked against the shared library. + +Package: libx32objc4 +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (x32) + Library needed for GNU ObjC applications linked against the shared library. + +Package: libx32objc4-dbg +Section: debug +Architecture: amd64 i386 +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libx32objc4 (= ${gcc:Version}), libx32gcc1-dbg (>= ${gcc:EpochVersion}), ${misc:Depends} +Description: Runtime library for GNU Objective-C applications (x32 debug symbols) + Library needed for GNU ObjC applications linked against the shared library. + +Package: gfortran-7 +Architecture: any +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), libgfortran-7-dev (= ${gcc:Version}), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +Provides: fortran95-compiler, ${fortran:mod-version} +Suggests: ${gfortran:multilib}, gfortran-7-doc, + libgfortran4-dbg (>= ${gcc:Version}), + libcoarrays-dev +Description: GNU Fortran compiler + This is the GNU Fortran compiler, which compiles + Fortran on platforms supported by the gcc compiler. It uses the + gcc backend to generate optimized code. + +Package: gfortran-7-multilib +Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32 +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gfortran-7 (= ${gcc:Version}), gcc-7-multilib (= ${gcc:Version}), ${dep:libgfortranbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +Description: GNU Fortran compiler (multilib support) + This is the GNU Fortran compiler, which compiles Fortran on platforms + supported by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). + +Package: libgfortran-7-dev +Architecture: any +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgcc-7-dev (= ${gcc:Version}), libgfortran4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: same +Description: Runtime library for GNU Fortran applications (development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: lib64gfortran-7-dev +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64gcc-7-dev (= ${gcc:Version}), lib64gfortran4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (64bit development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: lib32gfortran-7-dev +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32gcc-7-dev (= ${gcc:Version}), lib32gfortran4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (32bit development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: libn32gfortran-7-dev +Architecture: mips mipsel mips64 mips64el +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libn32gcc-7-dev (= ${gcc:Version}), libn32gfortran4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (n32 development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: libx32gfortran-7-dev +Architecture: amd64 i386 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32gcc-7-dev (= ${gcc:Version}), libx32gfortran4 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (x32 development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: libgfortran4 +Section: libs +Architecture: any +Provides: libgfortran4-armel [armel], libgfortran4-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libgfortran4-dbg +Section: debug +Architecture: any +Provides: libgfortran4-dbg-armel [armel], libgfortran4-dbg-armhf [armhf] +Multi-Arch: same +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libgfortran4 (= ${gcc:Version}), libgcc1-dbg (>= ${libgcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Fortran applications (debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: lib64gfortran4 +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (64bit) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: lib64gfortran4-dbg +Section: debug +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib64gfortran4 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Fortran applications (64bit debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: lib32gfortran4 +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: Runtime library for GNU Fortran applications (32bit) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: lib32gfortran4-dbg +Section: debug +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib32gfortran4 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Fortran applications (32 bit debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libn32gfortran4 +Section: libs +Architecture: mips mipsel mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (n32) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libn32gfortran4-dbg +Section: debug +Architecture: mips mipsel mips64 mips64el +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libn32gfortran4 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Fortran applications (n32 debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libx32gfortran4 +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Description: Runtime library for GNU Fortran applications (x32) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libx32gfortran4-dbg +Section: debug +Architecture: amd64 i386 +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libx32gfortran4 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Fortran applications (x32 debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: gccgo-7 +Architecture: any +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), libgo11 (>= ${gcc:Version}), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +Provides: go-compiler +Suggests: ${go:multilib}, gccgo-7-doc, libgo11-dbg (>= ${gcc:Version}) +Conflicts: ${golang:Conflicts} +Description: GNU Go compiler + This is the GNU Go compiler, which compiles Go on platforms supported + by the gcc compiler. It uses the gcc backend to generate optimized code. + +Package: gccgo-7-multilib +Architecture: amd64 i386 kfreebsd-amd64 mips mips64 mips64el mipsel mipsn32 mipsn32el powerpc ppc64 s390 s390x sparc sparc64 x32 +Section: devel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gccgo-7 (= ${gcc:Version}), gcc-7-multilib (= ${gcc:Version}), ${dep:libgobiarch}, ${shlibs:Depends}, ${misc:Depends} +Suggests: ${dep:libgobiarchdbg} +Description: GNU Go compiler (multilib support) + This is the GNU Go compiler, which compiles Go on platforms supported + by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). + +Package: libgo11 +Section: libs +Architecture: any +Provides: libgo11-armel [armel], libgo11-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Replaces: libgo3, libgo8 +Description: Runtime library for GNU Go applications + Library needed for GNU Go applications linked against the + shared library. + +Package: libgo11-dbg +Section: debug +Architecture: any +Provides: libgo11-dbg-armel [armel], libgo11-dbg-armhf [armhf] +Multi-Arch: same +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libgo11 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Go applications (debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. + +Package: lib64go11 +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: lib64go3, lib64go8 +Description: Runtime library for GNU Go applications (64bit) + Library needed for GNU Go applications linked against the + shared library. + +Package: lib64go11-dbg +Section: debug +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib64go11 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Go applications (64bit debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. + +Package: lib32go11 +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Replaces: lib32go3, lib32go8 +Description: Runtime library for GNU Go applications (32bit) + Library needed for GNU Go applications linked against the + shared library. + +Package: lib32go11-dbg +Section: debug +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib32go11 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Go applications (32 bit debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. + +Package: libn32go11 +Section: libs +Architecture: mips mipsel mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libn32go3, libn32go8 +Description: Runtime library for GNU Go applications (n32) + Library needed for GNU Go applications linked against the + shared library. + +Package: libn32go11-dbg +Section: debug +Architecture: mips mipsel mips64 mips64el +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libn32go11 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Go applications (n32 debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. + +Package: libx32go11 +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libx32go3, libx32go8 +Description: Runtime library for GNU Go applications (x32) + Library needed for GNU Go applications linked against the + shared library. + +Package: libx32go11-dbg +Section: debug +Architecture: amd64 i386 +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libx32go11 (= ${gcc:Version}), ${misc:Depends} +Description: Runtime library for GNU Go applications (x32 debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. + +Package: libstdc++6 +Architecture: any +Section: libs +Priority: important +Depends: gcc-7-base (= ${gcc:Version}), ${dep:libc}, ${shlibs:Depends}, ${misc:Depends} +Provides: libstdc++6-armel [armel], libstdc++6-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks}, libantlr-dev (<= 2.7.7+dfsg-6), libaqsis1 (<= 1.8.2-1), libassimp3 (<= 3.0~dfsg-4), blockattack (<= 1.4.1+ds1-2.1+b2), boo (<= 0.9.5~git20110729.r1.202a430-2), libboost-date-time1.54.0, libboost-date-time1.55.0, libcpprest2.4 (<= 2.4.0-2), printer-driver-brlaser (<= 3-3), c++-annotations (<= 10.2.0-1), clustalx (<= 2.1+lgpl-3), libdavix0 (<= 0.4.0-1+b1), libdballe6 (<= 6.8-1), dff (<= 1.3.0+dfsg.1-4.1+b3), libdiet-sed2.8 (<= 2.8.0-1+b3), libdiet-client2.8 (<= 2.8.0-1+b3), libdiet-admin2.8 (<= 2.8.0-1+b3), digikam-private-libs (<= 4:4.4.0-1.1+b2), emscripten (<= 1.22.1-1), ergo (<= 3.4.0-1), fceux (<= 2.2.2+dfsg0-1), flush (<= 0.9.12-3.1), libfreefem++ (<= 3.37.1-1), freeorion (<= 0.4.4+git20150327-2), fslview (<= 4.0.1-4), fwbuilder (<= 5.1.0-4), libgazebo5 (<= 5.0.1+dfsg-2.1), libgetfem4++ (<= 4.2.1~beta1~svn4635~dfsg-3+b1), libgmsh2 (<= 2.9.3+dfsg1-1), gnote (<= 3.16.2-1), gnudatalanguage (<= 0.9.5-2+b2), python-healpy (<= 1.8.1-1+b1), innoextract (<= 1.4-1+b1), libinsighttoolkit4.7 (<= 4.7.2-2), libdap17 (<= 3.14.0-2), libdapclient6 (<= 3.14.0-2), libdapserver7 (<= 3.14.0-2), libkolabxml1 (<= 1.1.0-3), libpqxx-4.0 (<= 4.0.1+dfsg-3), libreoffice-core (<= 1:4.4.5-2), librime1 (<= 1.2+dfsg-2), libwibble-dev (<= 1.1-1), lightspark (<= 0.7.2+git20150512-2+b1), libmarisa0 (<= 0.2.4-8), mira-assembler (<= 4.9.5-1), mongodb (<= 1:2.4.14-2), mongodb-server (<= 1:2.4.14-2), ncbi-blast+ (<= 2.2.30-4), libogre-1.8.0 (<= 1.8.0+dfsg1-7+b1), libogre-1.9.0 (<= 1.9.0+dfsg1-4), openscad (<= 2014.03+dfsg-1+b1), libopenwalnut1 (<= 1.4.0~rc1+hg3a3147463ee2-1+b1), passepartout (<= 0.7.1-1.1), pdf2djvu (<= 0.7.21-2), photoprint (<= 0.4.2~pre2-2.3+b2), plastimatch (<= 1.6.2+dfsg-1), plee-the-bear (<= 0.6.0-3.1), povray (<= 1:3.7.0.0-8), powertop (<= 2.6.1-1), psi4 (<= 4.0~beta5+dfsg-2+b1), python3-taglib (<= 0.3.6+dfsg-2+b2), realtimebattle (<= 1.0.8-14), ruby-passenger (<= 5.0.7-1), libapache2-mod-passenger (<= 5.0.7-1), schroot (<= 1.6.10-1+b1), sqlitebrowser (<= 3.5.1-3), tecnoballz (<= 0.93.1-6), wesnoth-1.12-core (<= 1:1.12.4-1), widelands (<= 1:18-3+b1), libwreport2 (<= 2.14-1), xflr5 (<= 6.09.06-2), libxmltooling6 (<= 1.5.3-2.1), libchemps2-1 (<= 1.5-1), python-fiona (<= 1.5.1-2), python3-fiona (<= 1.5.1-2), fiona (<= 1.5.1-2), python-guiqwt (<= 2.3.1-1), python-htseq (<= 0.5.4p3-2), python-imposm (<= 2.5.0-3+b2), python-pysph (<= 0~20150606.gitfa26de9-5), python3-taglib (<= 0.3.6+dfsg-2+b2), python-scipy (<= 0.14.1-1), python3-scipy (<= 0.14.1-1), python-sfml (<= 2.2~git20150611.196c88+dfsg-1+b1), python3-sfml (<= 2.2~git20150611.196c88+dfsg-1+b1), python-rasterio (<= 0.24.0-1), libktoblzcheck1c2a, libaqbanking34-plugins, liblhapdf0, libpythia8, libxapian30 (<= 1.4.1-1~bpo8+1), +Conflicts: scim (<< 1.4.2-1) +Replaces: libstdc++6-7-dbg (<< 4.9.0-3) +Description: GNU Standard C++ Library v3 + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: lib32stdc++6 +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: libs +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32gcc1 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Description: GNU Standard C++ Library v3 (32 bit Version) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + +Package: lib64stdc++6 +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: libs +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64gcc1 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: GNU Standard C++ Library v3 (64bit) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: libn32stdc++6 +Architecture: mips mipsel mips64 mips64el +Section: libs +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libn32gcc1 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: GNU Standard C++ Library v3 (n32) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: libx32stdc++6 +Architecture: amd64 i386 +Section: libs +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32gcc1 (>= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: GNU Standard C++ Library v3 (x32) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: libstdc++-7-dev +Architecture: any +Multi-Arch: same +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgcc-7-dev (= ${gcc:Version}), + libstdc++6 (>= ${gcc:Version}), ${dep:libcdev}, ${misc:Depends} +Conflicts: libg++27-dev, libg++272-dev (<< 2.7.2.8-1), libstdc++2.8-dev, + libg++2.8-dev, libstdc++2.9-dev, libstdc++2.9-glibc2.1-dev, + libstdc++2.10-dev (<< 1:2.95.3-2), libstdc++3.0-dev +Suggests: libstdc++-7-doc +Provides: libstdc++-dev +Description: GNU Standard C++ Library v3 (development files) + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: libstdc++-7-pic +Architecture: any +Multi-Arch: same +Section: libdevel +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libstdc++6 (>= ${gcc:Version}), + libstdc++-7-dev (= ${gcc:Version}), ${misc:Depends} +Description: GNU Standard C++ Library v3 (shared library subset kit) + This is used to develop subsets of the libstdc++ shared libraries for + use on custom installation floppies and in embedded systems. + . + Unless you are making one of those, you will not need this package. + +Package: libstdc++6-7-dbg +Architecture: any +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libstdc++6 (>= ${gcc:Version}), + libgcc1-dbg (>= ${libgcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Provides: libstdc++6-7-dbg-armel [armel], libstdc++6-7-dbg-armhf [armhf] +Multi-Arch: same +Recommends: libstdc++-7-dev (= ${gcc:Version}) +Conflicts: libstdc++5-dbg, libstdc++5-3.3-dbg, libstdc++6-dbg, + libstdc++6-4.0-dbg, libstdc++6-4.1-dbg, libstdc++6-4.2-dbg, + libstdc++6-4.3-dbg, libstdc++6-4.4-dbg, libstdc++6-4.5-dbg, + libstdc++6-4.6-dbg, libstdc++6-4.7-dbg, libstdc++6-4.8-dbg, + libstdc++6-4.9-dbg, libstdc++6-5-dbg, libstdc++6-6-dbg +Description: GNU Standard C++ Library v3 (debugging files) + This package contains the shared library of libstdc++ compiled with + debugging symbols. + +Package: lib32stdc++-7-dev +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32gcc-7-dev (= ${gcc:Version}), + lib32stdc++6 (>= ${gcc:Version}), libstdc++-7-dev (= ${gcc:Version}), ${misc:Depends} +Description: GNU Standard C++ Library v3 (development files) + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: lib32stdc++6-7-dbg +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib32stdc++6 (>= ${gcc:Version}), + libstdc++-7-dev (= ${gcc:Version}), lib32gcc1-dbg (>= ${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +Conflicts: lib32stdc++6-dbg, lib32stdc++6-4.0-dbg, + lib32stdc++6-4.1-dbg, lib32stdc++6-4.2-dbg, lib32stdc++6-4.3-dbg, + lib32stdc++6-4.4-dbg, lib32stdc++6-4.5-dbg, lib32stdc++6-4.6-dbg, + lib32stdc++6-4.7-dbg, lib32stdc++6-4.8-dbg, lib32stdc++6-4.9-dbg, + lib32stdc++6-5-dbg, lib32stdc++6-6-dbg +Description: GNU Standard C++ Library v3 (debugging files) + This package contains the shared library of libstdc++ compiled with + debugging symbols. + +Package: lib64stdc++-7-dev +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64gcc-7-dev (= ${gcc:Version}), + lib64stdc++6 (>= ${gcc:Version}), libstdc++-7-dev (= ${gcc:Version}), ${misc:Depends} +Description: GNU Standard C++ Library v3 (development files) + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: lib64stdc++6-7-dbg +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib64stdc++6 (>= ${gcc:Version}), + libstdc++-7-dev (= ${gcc:Version}), lib64gcc1-dbg (>= ${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +Conflicts: lib64stdc++6-dbg, lib64stdc++6-4.0-dbg, + lib64stdc++6-4.1-dbg, lib64stdc++6-4.2-dbg, lib64stdc++6-4.3-dbg, + lib64stdc++6-4.4-dbg, lib64stdc++6-4.5-dbg, lib64stdc++6-4.6-dbg, + lib64stdc++6-4.7-dbg, lib64stdc++6-4.8-dbg, lib64stdc++6-4.9-dbg, + lib64stdc++6-5-dbg, lib64stdc++6-6-dbg +Description: GNU Standard C++ Library v3 (debugging files) + This package contains the shared library of libstdc++ compiled with + debugging symbols. + +Package: libn32stdc++-7-dev +Architecture: mips mipsel mips64 mips64el +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libn32gcc-7-dev (= ${gcc:Version}), + libn32stdc++6 (>= ${gcc:Version}), libstdc++-7-dev (= ${gcc:Version}), ${misc:Depends} +Description: GNU Standard C++ Library v3 (development files) + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: libn32stdc++6-7-dbg +Architecture: mips mipsel mips64 mips64el +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libn32stdc++6 (>= ${gcc:Version}), + libstdc++-7-dev (= ${gcc:Version}), libn32gcc1-dbg (>= ${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +Conflicts: libn32stdc++6-dbg, libn32stdc++6-4.0-dbg, + libn32stdc++6-4.1-dbg, libn32stdc++6-4.2-dbg, libn32stdc++6-4.3-dbg, + libn32stdc++6-4.4-dbg, libn32stdc++6-4.5-dbg, libn32stdc++6-4.6-dbg, + libn32stdc++6-4.7-dbg, libn32stdc++6-4.8-dbg, libn32stdc++6-4.9-dbg, + libn32stdc++6-5-dbg, libn32stdc++6-6-dbg +Description: GNU Standard C++ Library v3 (debugging files) + This package contains the shared library of libstdc++ compiled with + debugging symbols. + +Package: libx32stdc++-7-dev +Architecture: amd64 i386 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32gcc-7-dev (= ${gcc:Version}), libx32stdc++6 (>= ${gcc:Version}), + libstdc++-7-dev (= ${gcc:Version}), ${misc:Depends} +Description: GNU Standard C++ Library v3 (development files) + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. + +Package: libx32stdc++6-7-dbg +Architecture: amd64 i386 +Section: debug +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libx32stdc++6 (>= ${gcc:Version}), + libstdc++-7-dev (= ${gcc:Version}), libx32gcc1-dbg (>= ${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +Conflicts: libx32stdc++6-dbg, libx32stdc++6-4.6-dbg, + libx32stdc++6-4.7-dbg, libx32stdc++6-4.8-dbg, libx32stdc++6-4.9-dbg, + libx32stdc++6-5-dbg, libx32stdc++6-6-dbg +Description: GNU Standard C++ Library v3 (debugging files) + This package contains the shared library of libstdc++ compiled with + debugging symbols. + +Package: libstdc++-7-doc +Architecture: all +Section: doc +Priority: optional +Depends: gcc-7-base (>= ${gcc:SoftVersion}), ${misc:Depends} +Conflicts: libstdc++5-doc, libstdc++5-3.3-doc, libstdc++6-doc, + libstdc++6-4.0-doc, libstdc++6-4.1-doc, libstdc++6-4.2-doc, libstdc++6-4.3-doc, + libstdc++6-4.4-doc, libstdc++6-4.5-doc, libstdc++6-4.6-doc, libstdc++6-4.7-doc, + libstdc++-4.8-doc, libstdc++-4.9-doc, libstdc++-5-doc, libstdc++-6-doc +Description: GNU Standard C++ Library v3 (documentation files) + This package contains documentation files for the GNU stdc++ library. + . + One set is the distribution documentation, the other set is the + source documentation including a namespace list, class hierarchy, + alphabetical list, compound list, file list, namespace members, + compound members and file members. + +Package: gnat-7 +Architecture: any +Priority: optional +Pre-Depends: ${misc:Pre-Depends} +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (>= ${gcc:SoftVersion}), ${dep:libgnat}, ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +Suggests: gnat-7-doc, ada-reference-manual-2012, gnat-7-sjlj +Breaks: gnat (<< 4.6.1), dh-ada-library (<< 6.0), gnat-4.6-base (= 4.6.4-2), + gnat-4.9-base (= 4.9-20140330-1) +Replaces: gnat (<< 4.6.1), dh-ada-library (<< 6.0), gnat-4.6-base (= 4.6.4-2), + gnat-4.9-base (= 4.9-20140330-1) +# Takes over symlink from gnat (<< 4.6.1): /usr/bin/gnatgcc. +# Takes over file from dh-ada-library (<< 6.0): debian_packaging.mk. +# g-base 4.6.4-2, 4.9-20140330-1 contain debian_packaging.mk by mistake. +# Newer versions of gnat and dh-ada-library will not provide these files. +Conflicts: gnat (<< 4.1), gnat-3.1, gnat-3.2, gnat-3.3, gnat-3.4, gnat-3.5, + gnat-4.0, gnat-4.1, gnat-4.2, gnat-4.3, gnat-4.4, gnat-4.6, gnat-4.7, gnat-4.8, + gnat-4.9, gnat-5, gnat-6 +# These other packages will continue to provide /usr/bin/gnatmake and +# other files. +Description: GNU Ada compiler + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + This package provides the compiler, tools and runtime library that handles + exceptions using the default zero-cost mechanism. + +Package: gnat-7-sjlj +Architecture: any +Priority: extra +Pre-Depends: ${misc:Pre-Depends} +Depends: gcc-7-base (= ${gcc:Version}), gnat-7 (= ${gnat:Version}), ${misc:Depends} +Description: GNU Ada compiler (setjump/longjump runtime library) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + This package provides an alternative runtime library that handles + exceptions using the setjump/longjump mechanism (as a static library + only). You can install it to supplement the normal compiler. + +Package: libgnat-7 +Section: libs +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: runtime for applications compiled with GNAT (shared library) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnat library provides runtime components needed by most + applications produced with GNAT. + . + This package contains the runtime shared library. + +Package: libgnat-7-dbg +Section: debug +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libgnat-7 (= ${gnat:Version}), ${misc:Depends} +Description: runtime for applications compiled with GNAT (debugging symbols) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnat library provides runtime components needed by most + applications produced with GNAT. + . + This package contains the debugging symbols. + +Package: libgnatvsn7-dev +Section: libdevel +Architecture: any +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), gnat-7 (= ${gnat:Version}), + libgnatvsn7 (= ${gnat:Version}), ${misc:Depends} +Conflicts: libgnatvsn-dev (<< 7), + libgnatvsn4.1-dev, libgnatvsn4.3-dev, libgnatvsn4.4-dev, + libgnatvsn4.5-dev, libgnatvsn4.6-dev, libgnatvsn4.9-dev, + libgnatvsn5-dev, libgnatvsn6-dev, +Description: GNU Ada compiler selected components (development files) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnatvsn library exports selected GNAT components for use in other + packages, most notably ASIS tools. It is licensed under the GNAT-Modified + GPL, allowing to link proprietary programs with it. + . + This package contains the development files and static library. + +Package: libgnatvsn7 +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Section: libs +Depends: gcc-7-base (= ${gcc:Version}), libgnat-7 (= ${gnat:Version}), + ${shlibs:Depends}, ${misc:Depends} +Description: GNU Ada compiler selected components (shared library) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnatvsn library exports selected GNAT components for use in other + packages, most notably ASIS tools. It is licensed under the GNAT-Modified + GPL, allowing to link proprietary programs with it. + . + This package contains the runtime shared library. + +Package: libgnatvsn7-dbg +Architecture: any +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: extra +Section: debug +Depends: gcc-7-base (= ${gcc:Version}), libgnatvsn7 (= ${gnat:Version}), ${misc:Depends} +Suggests: gnat +Description: GNU Ada compiler selected components (debugging symbols) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnatvsn library exports selected GNAT components for use in other + packages, most notably ASIS tools. It is licensed under the GNAT-Modified + GPL, allowing to link proprietary programs with it. + . + This package contains the debugging symbols. + +Package: gdc-7 +Architecture: any +Priority: optional +Depends: gcc-7-base (>= ${gcc:SoftVersion}), g++-7 (>= ${gcc:SoftVersion}), ${dep:gdccross}, ${dep:phobosdev}, ${shlibs:Depends}, ${misc:Depends} +Provides: gdc, d-compiler, d-v2-compiler +Replaces: gdc (<< 4.4.6-5) +Description: GNU D compiler (version 2) + This is the GNU D compiler, which compiles D on platforms supported by gcc. + It uses the gcc backend to generate optimised code. + . + This compiler supports D language version 2. + +Package: gdc-7-multilib +Architecture: any +Priority: optional +Depends: gcc-7-base (>= ${gcc:SoftVersion}), gdc-7 (= ${gcc:Version}), gcc-7-multilib (= ${gcc:Version}), ${dep:libphobosbiarchdev}${shlibs:Depends}, ${misc:Depends} +Description: GNU D compiler (version 2, multilib support) + This is the GNU D compiler, which compiles D on platforms supported by gcc. + It uses the gcc backend to generate optimised code. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). + +Package: libgphobos-7-dev +Architecture: amd64 armel armhf i386 x32 kfreebsd-amd64 kfreebsd-i386 +Multi-Arch: same +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgphobos71 (>= ${gdc:Version}), + zlib1g-dev, ${shlibs:Depends}, ${misc:Depends} +Description: Phobos D standard library + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libgphobos71 +Section: libs +Architecture: amd64 armel armhf i386 x32 kfreebsd-amd64 kfreebsd-i386 +Multi-Arch: same +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Replaces: libgphobos68 +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libgphobos71-dbg +Section: debug +Architecture: amd64 armel armhf i386 x32 kfreebsd-amd64 kfreebsd-i386 +Multi-Arch: same +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libgphobos71 (= ${gdc:Version}), ${misc:Depends} +Replaces: libgphobos68-dbg +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib64gphobos-7-dev +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib64gphobos71 (>= ${gdc:Version}), + lib64gcc-7-dev (= ${gcc:Version}), lib64z1-dev, ${shlibs:Depends}, ${misc:Depends} +Description: Phobos D standard library (64bit development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib64gphobos71 +Section: libs +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Replaces: lib64gphobos68 +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib64gphobos71-dbg +Section: debug +Architecture: i386 powerpc sparc s390 mips mipsel mipsn32 mipsn32el x32 +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib64gphobos71 (= ${gdc:Version}), ${misc:Depends} +Replaces: lib64gphobos68-dbg +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib32gphobos-7-dev +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), lib32gphobos71 (>= ${gdc:Version}), + lib32gcc-7-dev (= ${gcc:Version}), lib32z1-dev, ${shlibs:Depends}, ${misc:Depends} +Description: Phobos D standard library (32bit development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib32gphobos71 +Section: libs +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Replaces: lib32gphobos68 +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib32gphobos71-dbg +Section: debug +Architecture: amd64 ppc64 kfreebsd-amd64 s390x sparc64 x32 mipsn32 mipsn32el mips64 mips64el +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), lib32gphobos71 (= ${gdc:Version}), ${misc:Depends} +Replaces: lib32gphobos68-dbg +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libx32gphobos-7-dev +Architecture: amd64 i386 +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libx32gphobos71 (>= ${gdc:Version}), + libx32gcc-7-dev (= ${gcc:Version}), ${dep:libx32z}, ${shlibs:Depends}, ${misc:Depends} +Description: Phobos D standard library (x32 development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libx32gphobos71 +Section: libs +Architecture: amd64 i386 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Replaces: libx32gphobos68 +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libx32gphobos71-dbg +Section: debug +Architecture: amd64 i386 +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libx32gphobos71 (= ${gdc:Version}), ${misc:Depends} +Replaces: libx32gphobos68-dbg +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: gccbrig-7 +Architecture: any +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), ${dep:libcdev}, + hsail-tools, + ${shlibs:Depends}, libhsail-rt-7-dev (= ${gcc:Version}), ${misc:Depends} +Suggests: ${gccbrig:multilib}, + libhsail-rt0-dbg (>= ${gcc:Version}) +Provides: brig-compiler +Description: GNU BRIG (HSA IL) frontend + This is the GNU BRIG (HSA IL) frontend. + The consumed format is a binary representation. The textual HSAIL + can be compiled to it with a separate assembler. + +Package: libhsail-rt-7-dev +Architecture: any +Section: libdevel +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), libgcc-7-dev (= ${gcc:Version}), libhsail-rt0 (>= ${gcc:Version}), + ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: same +Description: HSAIL runtime library (development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: libhsail-rt0 +Section: libs +Architecture: any +Provides: libhsail-rt0-armel [armel], libhsail-rt0-armhf [armhf] +Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: HSAIL runtime library + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: libhsail-rt0-dbg +Section: debug +Architecture: any +Provides: libhsail-rt0-dbg-armel [armel], libhsail-rt0-dbg-armhf [armhf] +Multi-Arch: same +Priority: extra +Depends: gcc-7-base (= ${gcc:Version}), libhsail-rt0 (= ${gcc:Version}), libgcc1-dbg (>= ${libgcc:Version}), ${misc:Depends} +Description: HSAIL runtime library (debug symbols) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +#Package: gcc`'PV-soft-float +#Architecture: arm armel armhf +#Priority: PRI(optional) +#Depends: BASEDEP, depifenabled(`cdev',`gcc`'PV (= ${gcc:Version}),') ${shlibs:Depends}, ${misc:Depends} +#Conflicts: gcc-4.4-soft-float, gcc-4.5-soft-float, gcc-4.6-soft-float +#BUILT_USING`'dnl +#Description: GCC soft-floating-point gcc libraries (ARM) +# These are versions of basic static libraries such as libgcc.a compiled +# with the -msoft-float option, for CPUs without a floating-point unit. + +Package: fixincludes +Architecture: any +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: Fix non-ANSI header files + FixIncludes was created to fix non-ANSI system header files. Many + system manufacturers supply proprietary headers that are not ANSI compliant. + The GNU compilers cannot compile non-ANSI headers. Consequently, the + FixIncludes shell script was written to fix the header files. + . + Not all packages with header files are installed on the system, when the + package is built, so we make fixincludes available at build time of other + packages, such that checking tools like lintian can make use of it. + +Package: gcc-7-offload-nvptx +Architecture: amd64 +Priority: optional +Depends: gcc-7-base (= ${gcc:Version}), gcc-7 (= ${gcc:Version}), ${dep:libcdev}, + nvptx-tools, libgomp-plugin-nvptx1 (>= ${gcc:Version}), + ${shlibs:Depends}, ${misc:Depends} +Description: GCC offloading compiler to NVPTX + The package provides offloading support for NVidia PTX. OpenMP and OpenACC + programs linked with -fopenmp will by default add PTX code into the binaries, + which can be offloaded to NVidia PTX capable devices if available. + +Package: libgomp-plugin-nvptx1 +Architecture: amd64 +Multi-Arch: same +Section: libs +Depends: gcc-7-base (= ${gcc:Version}), libgomp1, ${shlibs:Depends}, ${misc:Depends} +Suggests: libcuda1 +Description: GCC OpenMP v4.5 plugin for offloading to NVPTX + This package contains libgomp plugin for offloading to NVidia + PTX. The plugin needs libcuda.so.1 shared library that has to be + installed separately. + +Package: gcc-7-source +Architecture: all +Priority: optional +Depends: make, autoconf2.64, quilt, patchutils, sharutils, gawk, ${misc:Depends} +Description: Source of the GNU Compiler Collection + This package contains the sources and patches which are needed to + build the GNU Compiler Collection (GCC). diff --git a/debian/control.m4 b/debian/control.m4 new file mode 100644 index 0000000..433fa13 --- /dev/null +++ b/debian/control.m4 @@ -0,0 +1,5520 @@ +divert(-1) + +define(`checkdef',`ifdef($1, , `errprint(`error: undefined macro $1 +')m4exit(1)')') +define(`errexit',`errprint(`error: undefined macro `$1' +')m4exit(1)') + +dnl The following macros must be defined, when called: +dnl ifdef(`SRCNAME', , errexit(`SRCNAME')) +dnl ifdef(`PV', , errexit(`PV')) +dnl ifdef(`ARCH', , errexit(`ARCH')) + +dnl The architecture will also be defined (-D__i386__, -D__powerpc__, etc.) + +define(`PN', `$1') +ifdef(`PRI', `', ` + define(`PRI', `$1') +') +define(`MAINTAINER', `Debian GCC Maintainers ') + +define(`depifenabled', `ifelse(index(enabled_languages, `$1'), -1, `', `$2')') +define(`ifenabled', `ifelse(index(enabled_languages, `$1'), -1, `dnl', `$2')') + +ifdef(`TARGET',`ifdef(`CROSS_ARCH',`',`undefine(`MULTIARCH')')') +define(`CROSS_ARCH', ifdef(`CROSS_ARCH', CROSS_ARCH, `all')) +define(`libdep', `lib$2$1`'LS`'AQ (ifelse(`$3',`',`>=',`$3') ifelse(`$4',`',`${gcc:Version}',`$4'))') +define(`libdevdep', `lib$2$1`'LS`'AQ (ifelse(`$3',`',`=',`$3') ifelse(`$4',`',`${gcc:Version}',`$4'))') +define(`libidevdep', `lib$2$1`'LS`'AQ (ifelse(`$3',`',`=',`$3') ifelse(`$4',`',`${gcc:Version}',`$4'))') +ifdef(`TARGET',`ifelse(CROSS_ARCH,`all',` +define(`libidevdep', `lib$2$1`'LS`'AQ (>= ifelse(`$4',`',`${gcc:SoftVersion}',`$4'))') +')') +define(`libdbgdep', `lib$2$1`'LS`'AQ (ifelse(`$3',`',`>=',`$3') ifelse(`$4',`',`${gcc:Version}',`$4'))') + +define(`BUILT_USING', ifelse(add_built_using,yes,`Built-Using: ${Built-Using} +')) + +divert`'dnl +dnl -------------------------------------------------------------------------- +Source: SRCNAME +Section: devel +Priority: PRI(optional) +ifelse(DIST,`Ubuntu',`dnl +ifelse(regexp(SRCNAME, `gnat\|gdc-'),0,`dnl +Maintainer: Ubuntu MOTU Developers +', `dnl +Maintainer: Ubuntu Core developers +')dnl SRCNAME +XSBC-Original-Maintainer: MAINTAINER +', `dnl +Maintainer: MAINTAINER +')dnl DIST +ifelse(regexp(SRCNAME, `gnat'),0,`dnl +Uploaders: Ludovic Brenta +', regexp(SRCNAME, `gdc'),0,`dnl +Uploaders: Iain Buclaw , Matthias Klose +', `dnl +Uploaders: Matthias Klose +')dnl SRCNAME +Standards-Version: 3.9.8 +ifdef(`TARGET',`dnl cross +Build-Depends: DEBHELPER_BUILD_DEP DPKG_BUILD_DEP + LIBC_BUILD_DEP, LIBC_BIARCH_BUILD_DEP + kfreebsd-kernel-headers (>= 0.84) [kfreebsd-any], linux-libc-dev [m68k], + LIBUNWIND_BUILD_DEP LIBATOMIC_OPS_BUILD_DEP AUTO_BUILD_DEP + SOURCE_BUILD_DEP CROSS_BUILD_DEP + ISL_BUILD_DEP MPC_BUILD_DEP MPFR_BUILD_DEP GMP_BUILD_DEP, + autogen , zlib1g-dev, gawk, lzma, xz-utils, patchutils, + pkg-config, libgc-dev, + zlib1g-dev, SDT_BUILD_DEP + bison (>= 1:2.3), flex, realpath (>= 1.9.12), lsb-release, quilt +',`dnl native +Build-Depends: DEBHELPER_BUILD_DEP DPKG_BUILD_DEP + GCC_MULTILIB_BUILD_DEP + LIBC_BUILD_DEP, LIBC_BIARCH_BUILD_DEP LIBC_DBG_DEP + kfreebsd-kernel-headers (>= 0.84) [kfreebsd-any], linux-libc-dev [m68k], + AUTO_BUILD_DEP BASE_BUILD_DEP + libunwind7-dev (>= 0.98.5-6) [ia64], libatomic-ops-dev [ia64], + autogen , gawk, lzma, xz-utils, patchutils, + zlib1g-dev, SDT_BUILD_DEP + BINUTILS_BUILD_DEP, + gperf (>= 3.0.1), bison (>= 1:2.3), flex, gettext, + gdb`'NT, OFFLOAD_BUILD_DEP + texinfo (>= 4.3), locales, sharutils, + procps, FORTRAN_BUILD_DEP GNAT_BUILD_DEP GO_BUILD_DEP GDC_BUILD_DEP + ISL_BUILD_DEP MPC_BUILD_DEP MPFR_BUILD_DEP GMP_BUILD_DEP PHOBOS_BUILD_DEP + CHECK_BUILD_DEP realpath (>= 1.9.12), chrpath, lsb-release, quilt, + pkg-config, libgc-dev, + TARGET_TOOL_BUILD_DEP +Build-Depends-Indep: LIBSTDCXX_BUILD_INDEP +')dnl +ifelse(regexp(SRCNAME, `gnat'),0,`dnl +Homepage: http://gcc.gnu.org/ +', regexp(SRCNAME, `gdc'),0,`dnl +Homepage: http://gdcproject.org/ +', `dnl +Homepage: http://gcc.gnu.org/ +')dnl SRCNAME +Vcs-Browser: http://svn.debian.org/viewsvn/gcccvs/branches/sid/gcc`'PV/ +Vcs-Svn: svn://anonscm.debian.org/gcccvs/branches/sid/gcc`'PV + +ifelse(regexp(SRCNAME, `gcc-snapshot'),0,`dnl +Package: gcc-snapshot`'TS +Architecture: any +Section: devel +Priority: extra +Depends: binutils`'TS (>= ${binutils:Version}), ${dep:libcbiarchdev}, ${dep:libcdev}, ${dep:libunwinddev}, ${snap:depends}, ${shlibs:Depends}, ${dep:ecj}, python, ${misc:Depends} +Recommends: ${snap:recommends} +Suggests: ${dep:gold} +Provides: c++-compiler`'TS`'ifdef(`TARGET',`',`, c++abi2-dev') +BUILT_USING`'dnl +Description: SNAPSHOT of the GNU Compiler Collection + This package contains a recent development SNAPSHOT of all files + contained in the GNU Compiler Collection (GCC). + . + The source code for this package has been exported from SVN trunk. + . + DO NOT USE THIS SNAPSHOT FOR BUILDING DEBIAN PACKAGES! + . + This package will NEVER hit the testing distribution. It is used for + tracking gcc bugs submitted to the Debian BTS in recent development + versions of gcc. +',`dnl gcc-X.Y + +dnl default base package dependencies +define(`BASEDEP', `gcc`'PV`'TS-base (= ${gcc:Version})') +define(`SOFTBASEDEP', `gcc`'PV`'TS-base (>= ${gcc:SoftVersion})') + +ifdef(`TARGET',` +define(`BASELDEP', `gcc`'PV`'ifelse(CROSS_ARCH,`all',`-cross')-base`'GCC_PORTS_BUILD (= ${gcc:Version})') +define(`SOFTBASELDEP', `gcc`'PV`'ifelse(CROSS_ARCH, `all',`-cross')-base`'GCC_PORTS_BUILD (>= ${gcc:SoftVersion})') +',`dnl +define(`BASELDEP', `BASEDEP') +define(`SOFTBASELDEP', `SOFTBASEDEP') +') + +ifelse(index(SRCNAME, `gnat'), 0, ` +define(`BASEDEP', `gnat`'PV-base (= ${gnat:Version})') +define(`SOFTBASEDEP', `gnat`'PV-base (>= ${gnat:SoftVersion})') +') + +ifenabled(`gccbase',` +Package: gcc`'PV`'TS-base +Architecture: any +Multi-Arch: same +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',`PRI(required)') +Depends: ${misc:Depends} +Replaces: ${base:Replaces} +Breaks: ${base:Breaks} +BUILT_USING`'dnl +Description: GCC, the GNU Compiler Collection (base package) + This package contains files common to all languages and libraries + contained in the GNU Compiler Collection (GCC). +ifdef(`BASE_ONLY', `dnl + . + This version of GCC is not yet available for this architecture. + Please use the compilers from the gcc-snapshot package for testing. +')`'dnl +')`'dnl gccbase + +ifenabled(`gcclbase',` +Package: gcc`'PV-cross-base`'GCC_PORTS_BUILD +Architecture: all +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',`PRI(required)') +Depends: ${misc:Depends} +BUILT_USING`'dnl +Description: GCC, the GNU Compiler Collection (library base package) + This empty package contains changelog and copyright files common to + all libraries contained in the GNU Compiler Collection (GCC). +ifdef(`BASE_ONLY', `dnl + . + This version of GCC is not yet available for this architecture. + Please use the compilers from the gcc-snapshot package for testing. +')`'dnl +')`'dnl gcclbase + +ifenabled(`gnatbase',` +Package: gnat`'PV-base`'TS +Architecture: any +# "all" causes build instabilities for "any" dependencies (see #748388). +Section: libs +Priority: PRI(optional) +Depends: ${misc:Depends} +Breaks: gcc-4.6 (<< 4.6.1-8~) +BUILT_USING`'dnl +Description: GNU Ada compiler (common files) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + This package contains files common to all GNAT related packages. +')`'dnl gnatbase + +ifenabled(`libgcc',` +Package: libgcc1`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',required) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Provides: ifdef(`TARGET',`libgcc1-TARGET-dcv1',`libgcc1-armel [armel], libgcc1-armhf [armhf]') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +')`'dnl +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET)',` (TARGET)', `') + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libgcc1-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gcc1,,=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libgcc1-dbg-armel [armel], libgcc1-dbg-armhf [armhf] +')dnl +ifdef(`MULTIARCH',`Multi-Arch: same +')dnl +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET)',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libgcc2`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`m68k') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',required) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libgcc2-TARGET-dcv1 +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +')`'dnl +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET)',` (TARGET)', `') + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libgcc2-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`m68k') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gcc2,,=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET)',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libgcc + +ifenabled(`cdev',` +Package: libgcc`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Recommends: ${dep:libcdev} +Depends: BASELDEP, ${dep:libgcc}, ${dep:libssp}, ${dep:libgomp}, ${dep:libitm}, + ${dep:libatomic}, ${dep:libbtrace}, ${dep:libasan}, ${dep:liblsan}, + ${dep:libtsan}, ${dep:libubsan}, ${dep:libcilkrts}, ${dep:libvtv}, + ${dep:libmpx}, + ${dep:libqmath}, ${dep:libunwinddev}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Replaces: gccgo-7 (<< ${gcc:Version}) +BUILT_USING`'dnl +Description: GCC support library (development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. +')`'dnl libgcc + +Package: libgcc4`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`hppa') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +')`'dnl +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',required) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET)',` (TARGET)', `') + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libgcc4-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`hppa') +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gcc4,,=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET)',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +ifenabled(`lib64gcc',` +Package: lib64gcc1`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${misc:Depends} +ifdef(`TARGET',`Provides: lib64gcc1-TARGET-dcv1 +',`')`'dnl +Conflicts: libdep(gcc`'GCC_SO,,<=,1:3.3-0pre9) +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET)',` (TARGET)', `') (64bit) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: lib64gcc1-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gcc1,64,=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET)',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl lib64gcc + +ifenabled(`cdev',` +Package: lib64gcc`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Recommends: ${dep:libcdev} +Depends: BASELDEP, ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +BUILT_USING`'dnl +Description: GCC support library (64bit development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. +')`'dnl cdev + +ifenabled(`lib32gcc',` +Package: lib32gcc1`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${misc:Depends} +Conflicts: ${confl:lib32} +ifdef(`TARGET',`Provides: lib32gcc1-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GCC support library (32 bit Version) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: lib32gcc1-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gcc1,32,=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET)',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl lib32gcc1 + +ifenabled(`cdev',` +Package: lib32gcc`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Recommends: ${dep:libcdev} +Depends: BASELDEP, ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +BUILT_USING`'dnl +Description: GCC support library (32 bit development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. +')`'dnl cdev + +ifenabled(`libneongcc',` +Package: libgcc1-neon`'LS +Architecture: NEON_ARCHS +Section: libs +Priority: extra +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC support library [neon optimized] + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneongcc1 + +ifenabled(`libhfgcc',` +Package: libhfgcc1`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${misc:Depends} +ifdef(`TARGET',`Provides: libhfgcc1-TARGET-dcv1 +',`Conflicts: libgcc1-armhf [biarchhf_archs] +')`'dnl +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET)',` (TARGET)', `') (hard float ABI) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libhfgcc1-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gcc1,hf,=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgcc1-dbg-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET)',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libhfgcc + +ifenabled(`cdev',` +ifenabled(`armml',` +Package: libhfgcc`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Recommends: ${dep:libcdev} +Depends: BASELDEP, ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +BUILT_USING`'dnl +Description: GCC support library (hard float ABI development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. +')`'dnl armml +')`'dnl cdev + +ifenabled(`libsfgcc',` +Package: libsfgcc1`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${misc:Depends} +ifdef(`TARGET',`Provides: libsfgcc1-TARGET-dcv1 +',`Conflicts: libgcc1-armel [biarchsf_archs] +')`'dnl +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET)',` (TARGET)', `') (soft float ABI) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libsfgcc1-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gcc1,sf,=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgcc1-dbg-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET)',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libsfgcc + +ifenabled(`cdev',` +ifenabled(`armml',` +Package: libsfgcc`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Recommends: ${dep:libcdev} +Depends: BASELDEP, ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +BUILT_USING`'dnl +Description: GCC support library (soft float ABI development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. +')`'dnl armml +')`'dnl cdev + +ifenabled(`libn32gcc',` +Package: libn32gcc1`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${misc:Depends} +Conflicts: libdep(gcc`'GCC_SO,,<=,1:3.3-0pre9) +ifdef(`TARGET',`Provides: libn32gcc1-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET)',` (TARGET)', `') (n32) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libn32gcc1-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gcc1,n32,=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET)',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libn32gcc + +ifenabled(`cdev',` +Package: libn32gcc`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Recommends: ${dep:libcdev} +Depends: BASELDEP, ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +BUILT_USING`'dnl +Description: GCC support library (n32 development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. +')`'dnl cdev + +ifenabled(`libx32gcc',` +Package: libx32gcc1`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${misc:Depends} +ifdef(`TARGET',`Provides: libx32gcc1-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GCC support library`'ifdef(`TARGET)',` (TARGET)', `') (x32) + Shared version of the support library, a library of internal subroutines + that GCC uses to overcome shortcomings of particular machines, or + special needs for some languages. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libx32gcc1-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gcc1,x32,=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC support library (debug symbols)`'ifdef(`TARGET)',` (TARGET)', `') + Debug symbols for the GCC support library. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libx32gcc + +ifenabled(`cdev',` +ifenabled(`x32dev',` +Package: libx32gcc`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Recommends: ${dep:libcdev} +Depends: BASELDEP, ${dep:libgccbiarch}, ${dep:libsspbiarch}, + ${dep:libgompbiarch}, ${dep:libitmbiarch}, ${dep:libatomicbiarch}, + ${dep:libbtracebiarch}, ${dep:libasanbiarch}, ${dep:liblsanbiarch}, + ${dep:libtsanbiarch}, ${dep:libubsanbiarch}, + ${dep:libvtvbiarch}, ${dep:libcilkrtsbiarch}, ${dep:libmpxbiarch}, + ${dep:libqmathbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: gccgo-7-multilib (<< ${gcc:Version}) +BUILT_USING`'dnl +Description: GCC support library (x32 development files) + This package contains the headers and static library files necessary for + building C programs which use libgcc, libgomp, libquadmath, libssp or libitm. +')`'dnl x32dev +')`'dnl cdev + +ifenabled(`cdev',` +Package: gcc`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: cpp`'PV`'TS (= ${gcc:Version}),ifenabled(`gccbase',` BASEDEP,') + ifenabled(`gccxbase',` BASEDEP,') + ${dep:libcc1}, + binutils`'TS (>= ${binutils:Version}), + ${dep:libgccdev}, ${shlibs:Depends}, ${misc:Depends} +Recommends: ${dep:libcdev} +Replaces: gccgo-7 (<< ${gcc:Version}), cpp`'PV`'TS (<< 7.1.1-8) +Suggests: ${gcc:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}), + gcc`'PV-locales (>= ${gcc:SoftVersion}), + libdbgdep(gcc`'GCC_SO-dbg,,>=,${libgcc:Version}), + libdbgdep(gomp`'GOMP_SO-dbg,), + libdbgdep(itm`'ITM_SO-dbg,), + libdbgdep(atomic`'ATOMIC_SO-dbg,), + libdbgdep(asan`'ASAN_SO-dbg,), + libdbgdep(lsan`'LSAN_SO-dbg,), + libdbgdep(tsan`'TSAN_SO-dbg,), + libdbgdep(ubsan`'UBSAN_SO-dbg,), +ifenabled(`libvtv',`',` + libdbgdep(vtv`'VTV_SO-dbg,), +')`'dnl + libdbgdep(cilkrts`'CILKRTS_SO-dbg,), + libdbgdep(mpx`'MPX_SO-dbg,), + libdbgdep(quadmath`'QMATH_SO-dbg,) +Provides: c-compiler`'TS +ifdef(`TARGET',`Conflicts: gcc-multilib +')`'dnl +BUILT_USING`'dnl +Description: GNU C compiler`'ifdef(`TARGET)',` (cross compiler for TARGET architecture)', `') + This is the GNU C compiler, a fairly portable optimizing compiler for C. +ifdef(`TARGET', `dnl + . + This package contains C cross-compiler for TARGET architecture. +')`'dnl + +ifenabled(`multilib',` +Package: gcc`'PV-multilib`'TS +Architecture: ifdef(`TARGET',`any',MULTILIB_ARCHS) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), ${dep:libcbiarchdev}, ${dep:libgccbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU C compiler (multilib support)`'ifdef(`TARGET)',` (cross compiler for TARGET architecture)', `') + This is the GNU C compiler, a fairly portable optimizing compiler for C. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib + +ifenabled(`testresults',` +Package: gcc`'PV-test-results +Architecture: any +Section: devel +Priority: extra +Depends: BASEDEP, ${misc:Depends} +Replaces: g++-5 (<< 5.2.1-28) +BUILT_USING`'dnl +Description: Test results for the GCC test suite + This package contains the test results for running the GCC test suite + for a post build analysis. +')`'dnl testresults + +ifenabled(`plugindev',` +Package: gcc`'PV-plugin-dev`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), GMP_BUILD_DEP MPC_BUILD_DEP ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Files for GNU GCC plugin development. + This package contains (header) files for GNU GCC plugin development. It + is only used for the development of GCC plugins, but not needed to run + plugins. +')`'dnl plugindev +')`'dnl cdev + +ifenabled(`cdev',` +Package: gcc`'PV-hppa64-linux-gnu +Architecture: ifdef(`TARGET',`any',hppa amd64 i386 x32) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: PRI(optional) +Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), + binutils-hppa64-linux-gnu | binutils-hppa64, + ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU C compiler (cross compiler for hppa64) + This is the GNU C compiler, a fairly portable optimizing compiler for C. +')`'dnl cdev + +ifenabled(`cdev',` +Package: cpp`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: ifdef(`TARGET',`devel',`interpreters') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, ${shlibs:Depends}, ${misc:Depends} +Suggests: gcc`'PV-locales (>= ${gcc:SoftVersion}) +Replaces: gccgo-7 (<< ${gcc:Version}) +Breaks: libmagics++-dev (<< 2.28.0-4)ifdef(`TARGET',`',`, hardening-wrapper (<< 2.8+nmu3)') +BUILT_USING`'dnl +Description: GNU C preprocessor + A macro processor that is used automatically by the GNU C compiler + to transform programs before actual compilation. + . + This package has been separated from gcc for the benefit of those who + require the preprocessor but not the compiler. +ifdef(`TARGET', `dnl + . + This package contains preprocessor configured for TARGET architecture. +')`'dnl + +ifdef(`TARGET', `', ` +ifenabled(`gfdldoc',` +Package: cpp`'PV-doc +Architecture: all +Section: doc +Priority: PRI(optional) +Depends: gcc`'PV-base (>= ${gcc:SoftVersion}), dpkg (>= 1.15.4) | install-info, ${misc:Depends} +Description: Documentation for the GNU C preprocessor (cpp) + Documentation for the GNU C preprocessor in info `format'. +')`'dnl gfdldoc +')`'dnl native + +ifdef(`TARGET', `', ` +Package: gcc`'PV-locales +Architecture: all +Section: devel +Priority: PRI(optional) +Depends: SOFTBASEDEP, cpp`'PV (>= ${gcc:SoftVersion}), ${misc:Depends} +Recommends: gcc`'PV (>= ${gcc:SoftVersion}) +Description: GCC, the GNU compiler collection (native language support files) + Native language support for GCC. Lets GCC speak your language, + if translations are available. + . + Please do NOT submit bug reports in other languages than "C". + Always reset your language settings to use the "C" locales. +')`'dnl native +')`'dnl cdev + +ifenabled(`c++',` +ifenabled(`c++dev',` +Package: g++`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), libidevdep(stdc++`'PV-dev,,=), ${shlibs:Depends}, ${misc:Depends} +Provides: c++-compiler`'TS`'ifdef(`TARGET)',`',`, c++abi2-dev') +Suggests: ${gxx:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}), libdbgdep(stdc++CXX_SO`'PV-dbg,) +BUILT_USING`'dnl +Description: GNU C++ compiler`'ifdef(`TARGET)',` (cross compiler for TARGET architecture)', `') + This is the GNU C++ compiler, a fairly portable optimizing compiler for C++. +ifdef(`TARGET', `dnl + . + This package contains C++ cross-compiler for TARGET architecture. +')`'dnl + +ifenabled(`multilib',` +Package: g++`'PV-multilib`'TS +Architecture: ifdef(`TARGET',`any',MULTILIB_ARCHS) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, g++`'PV`'TS (= ${gcc:Version}), gcc`'PV-multilib`'TS (= ${gcc:Version}), ${dep:libcxxbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +Suggests: ${dep:libcxxbiarchdbg} +BUILT_USING`'dnl +Description: GNU C++ compiler (multilib support)`'ifdef(`TARGET)',` (cross compiler for TARGET architecture)', `') + This is the GNU C++ compiler, a fairly portable optimizing compiler for C++. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib +')`'dnl c++dev +')`'dnl c++ + +ifdef(`TARGET', `', ` +ifenabled(`ssp',` +Package: libssp`'SSP_SO`'LS +Architecture: any +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Section: libs +Priority: PRI(optional) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC stack smashing protection library + GCC can now emit code for protecting applications from stack-smashing attacks. + The protection is realized by buffer overflow detection and reordering of + stack variables to avoid pointer corruption. + +Package: lib32ssp`'SSP_SO`'LS +Architecture: biarch32_archs +Section: libs +Priority: PRI(optional) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libssp0 (<< 4.1) +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: GCC stack smashing protection library (32bit) + GCC can now emit code for protecting applications from stack-smashing attacks. + The protection is realized by buffer overflow detection and reordering of + stack variables to avoid pointer corruption. + +Package: lib64ssp`'SSP_SO`'LS +Architecture: biarch64_archs +Section: libs +Priority: PRI(optional) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libssp0 (<< 4.1) +BUILT_USING`'dnl +Description: GCC stack smashing protection library (64bit) + GCC can now emit code for protecting applications from stack-smashing attacks. + The protection is realized by buffer overflow detection and reordering of + stack variables to avoid pointer corruption. + +Package: libn32ssp`'SSP_SO`'LS +Architecture: biarchn32_archs +Section: libs +Priority: PRI(optional) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libssp0 (<< 4.1) +BUILT_USING`'dnl +Description: GCC stack smashing protection library (n32) + GCC can now emit code for protecting applications from stack-smashing attacks. + The protection is realized by buffer overflow detection and reordering of + stack variables to avoid pointer corruption. + +Package: libx32ssp`'SSP_SO`'LS +Architecture: biarchx32_archs +Section: libs +Priority: PRI(optional) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libssp0 (<< 4.1) +BUILT_USING`'dnl +Description: GCC stack smashing protection library (x32) + GCC can now emit code for protecting applications from stack-smashing attacks. + The protection is realized by buffer overflow detection and reordering of + stack variables to avoid pointer corruption. + +Package: libhfssp`'SSP_SO`'LS +Architecture: biarchhf_archs +Section: libs +Priority: PRI(optional) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC stack smashing protection library (hard float ABI) + GCC can now emit code for protecting applications from stack-smashing attacks. + The protection is realized by buffer overflow detection and reordering of + stack variables to avoid pointer corruption. + +Package: libsfssp`'SSP_SO`'LS +Architecture: biarchsf_archs +Section: libs +Priority: PRI(optional) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC stack smashing protection library (soft float ABI) + GCC can now emit code for protecting applications from stack-smashing attacks. + The protection is realized by buffer overflow detection and reordering of + stack variables to avoid pointer corruption. +')`'dnl +')`'dnl native + +ifenabled(`libgomp',` +Package: libgomp`'GOMP_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libgomp'GOMP_SO`-armel [armel], libgomp'GOMP_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libgomp`'GOMP_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gomp`'GOMP_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libgomp'GOMP_SO`-dbg-armel [armel], libgomp'GOMP_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib32gomp`'GOMP_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (32bit) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib32gomp`'GOMP_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gomp`'GOMP_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (32 bit debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib64gomp`'GOMP_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (64bit) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: lib64gomp`'GOMP_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gomp`'GOMP_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (64bit debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libn32gomp`'GOMP_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (n32) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libn32gomp`'GOMP_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gomp`'GOMP_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (n32 debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + +ifenabled(`libx32gomp',` +Package: libx32gomp`'GOMP_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (x32) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libx32gomp`'GOMP_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gomp`'GOMP_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (x32 debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers +')`'dnl libx32gomp + +ifenabled(`libhfgomp',` +Package: libhfgomp`'GOMP_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgomp'GOMP_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (hard float ABI) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libhfgomp`'GOMP_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gomp`'GOMP_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgomp'GOMP_SO`-dbg-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (hard float ABI debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers +')`'dnl libhfgomp + +ifenabled(`libsfgomp',` +Package: libsfgomp`'GOMP_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgomp'GOMP_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (soft float ABI) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + +Package: libsfgomp`'GOMP_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(gomp`'GOMP_SO,sf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgomp'GOMP_SO`-dbg-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library (soft float ABI debug symbols) + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers +')`'dnl libsfgomp + +ifenabled(`libneongomp',` +Package: libgomp`'GOMP_SO-neon`'LS +Architecture: NEON_ARCHS +Section: libs +Priority: extra +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC OpenMP (GOMP) support library [neon optimized] + GOMP is an implementation of OpenMP for the C, C++, and Fortran compilers + in the GNU Compiler Collection. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneongomp +')`'dnl libgomp + +ifenabled(`libitm',` +Package: libitm`'ITM_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libitm'ITM_SO`-armel [armel], libitm'ITM_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: libitm`'ITM_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(itm`'ITM_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libitm'ITM_SO`-dbg-armel [armel], libitm'ITM_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (debug symbols) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: lib32itm`'ITM_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (32bit) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: lib32itm`'ITM_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(itm`'ITM_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (32 bit debug symbols) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: lib64itm`'ITM_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (64bit) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: lib64itm`'ITM_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(itm`'ITM_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (64bit debug symbols) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +#Package: libn32itm`'ITM_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: ifdef(`TARGET',`extra',`PRI(optional)') +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: GNU Transactional Memory Library (n32) +# GNU Transactional Memory Library (libitm) provides transaction support for +# accesses to the memory of a process, enabling easy-to-use synchronization of +# accesses to shared memory by several threads. + +#Package: libn32itm`'ITM_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: extra +#Depends: BASELDEP, libdep(itm`'ITM_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: GNU Transactional Memory Library (n32 debug symbols) +# GNU Transactional Memory Library (libitm) provides transaction support for +# accesses to the memory of a process, enabling easy-to-use synchronization of +# accesses to shared memory by several threads. + +ifenabled(`libx32itm',` +Package: libx32itm`'ITM_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (x32) + This manual documents the usage and internals of libitm. It provides + transaction support for accesses to the memory of a process, enabling + easy-to-use synchronization of accesses to shared memory by several threads. + +Package: libx32itm`'ITM_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(itm`'ITM_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (x32 debug symbols) + This manual documents the usage and internals of libitm. It provides + transaction support for accesses to the memory of a process, enabling + easy-to-use synchronization of accesses to shared memory by several threads. +')`'dnl libx32itm + +ifenabled(`libhfitm',` +Package: libhfitm`'ITM_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libitm'ITM_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (hard float ABI) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: libhfitm`'ITM_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(itm`'ITM_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libitm'ITM_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (hard float ABI debug symbols) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. +')`'dnl libhfitm + +ifenabled(`libsfitm',` +Package: libsfitm`'ITM_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (soft float ABI) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + +Package: libsfitm`'ITM_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(itm`'ITM_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library (soft float ABI debug symbols) + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. +')`'dnl libsfitm + +ifenabled(`libneonitm',` +Package: libitm`'ITM_SO-neon`'LS +Architecture: NEON_ARCHS +Section: libs +Priority: extra +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Transactional Memory Library [neon optimized] + GNU Transactional Memory Library (libitm) provides transaction support for + accesses to the memory of a process, enabling easy-to-use synchronization of + accesses to shared memory by several threads. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonitm +')`'dnl libitm + +ifenabled(`libatomic',` +Package: libatomic`'ATOMIC_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libatomic'ATOMIC_SO`-armel [armel], libatomic'ATOMIC_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libatomic`'ATOMIC_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(atomic`'ATOMIC_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libatomic'ATOMIC_SO`-dbg-armel [armel], libatomic'ATOMIC_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: lib32atomic`'ATOMIC_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (32bit) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: lib32atomic`'ATOMIC_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(atomic`'ATOMIC_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (32 bit debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: lib64atomic`'ATOMIC_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (64bit) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: lib64atomic`'ATOMIC_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(atomic`'ATOMIC_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (64bit debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libn32atomic`'ATOMIC_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (n32) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libn32atomic`'ATOMIC_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(atomic`'ATOMIC_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (n32 debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +ifenabled(`libx32atomic',` +Package: libx32atomic`'ATOMIC_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (x32) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libx32atomic`'ATOMIC_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(atomic`'ATOMIC_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (x32 debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. +')`'dnl libx32atomic + +ifenabled(`libhfatomic',` +Package: libhfatomic`'ATOMIC_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libatomic'ATOMIC_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (hard float ABI) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libhfatomic`'ATOMIC_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(atomic`'ATOMIC_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libatomic'ATOMIC_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (hard float ABI debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. +')`'dnl libhfatomic + +ifenabled(`libsfatomic',` +Package: libsfatomic`'ATOMIC_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (soft float ABI) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + +Package: libsfatomic`'ATOMIC_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(atomic`'ATOMIC_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions (soft float ABI debug symbols) + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. +')`'dnl libsfatomic + +ifenabled(`libneonatomic',` +Package: libatomic`'ATOMIC_SO-neon`'LS +Architecture: NEON_ARCHS +Section: libs +Priority: extra +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: support library providing __atomic built-in functions [neon optimized] + library providing __atomic built-in functions. When an atomic call cannot + be turned into lock-free instructions, GCC will make calls into this library. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonatomic +')`'dnl libatomic + +ifenabled(`libasan',` +Package: libasan`'ASAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libasan'ASAN_SO`-armel [armel], libasan'ASAN_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libasan`'ASAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(asan`'ASAN_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libasan'ASAN_SO`-dbg-armel [armel], libasan'ASAN_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib32asan`'ASAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (32bit) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib32asan`'ASAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(asan`'ASAN_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (32 bit debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib64asan`'ASAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (64bit) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: lib64asan`'ASAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(asan`'ASAN_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (64bit debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +#Package: libn32asan`'ASAN_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: ifdef(`TARGET',`extra',`PRI(extra)') +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: AddressSanitizer -- a fast memory error detector (n32) +# AddressSanitizer (ASan) is a fast memory error detector. It finds +# use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +#Package: libn32asan`'ASAN_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: extra +#Depends: BASELDEP, libdep(asan`'ASAN_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: AddressSanitizer -- a fast memory error detector (n32 debug symbols) +# AddressSanitizer (ASan) is a fast memory error detector. It finds +# use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +ifenabled(`libx32asan',` +Package: libx32asan`'ASAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (x32) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libx32asan`'ASAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(asan`'ASAN_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (x32 debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. +')`'dnl libx32asan + +ifenabled(`libhfasan',` +Package: libhfasan`'ASAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(extra)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libasan'ASAN_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (hard float ABI) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libhfasan`'ASAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(asan`'ASAN_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libasan'ASAN_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (hard float ABI debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. +')`'dnl libhfasan + +ifenabled(`libsfasan',` +Package: libsfasan`'ASAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(extra)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (soft float ABI) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + +Package: libsfasan`'ASAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(asan`'ASAN_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector (soft float ABI debug symbols) + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. +')`'dnl libsfasan + +ifenabled(`libneonasan',` +Package: libasan`'ASAN_SO-neon`'LS +Architecture: NEON_ARCHS +Section: libs +Priority: extra +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: AddressSanitizer -- a fast memory error detector [neon optimized] + AddressSanitizer (ASan) is a fast memory error detector. It finds + use-after-free and {heap,stack,global}-buffer overflow bugs in C/C++ programs. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonasan +')`'dnl libasan + +ifenabled(`liblsan',` +Package: liblsan`'LSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (runtime) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. + +Package: liblsan`'LSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(lsan`'LSAN_SO,,=), ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (debug symbols) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. + +ifenabled(`lib32lsan',` +Package: lib32lsan`'LSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (32bit) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer (empty package). + +Package: lib32lsan`'LSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(lsan`'LSAN_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (32 bit debug symbols) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer (empty package). +')`'dnl lib32lsan + +ifenabled(`lib64lsan',` +#Package: lib64lsan`'LSAN_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +#Priority: ifdef(`TARGET',`extra',`PRI(optional)') +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: LeakSanitizer -- a memory leak detector (64bit) +# LeakSanitizer (Lsan) is a memory leak detector which is integrated +# into AddressSanitizer. + +#Package: lib64lsan`'LSAN_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +#Section: debug +#Priority: extra +#Depends: BASELDEP, libdep(lsan`'LSAN_SO,64,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: LeakSanitizer -- a memory leak detector (64bit debug symbols) +# LeakSanitizer (Lsan) is a memory leak detector which is integrated +# into AddressSanitizer. +')`'dnl lib64lsan + +ifenabled(`libn32lsan',` +#Package: libn32lsan`'LSAN_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: ifdef(`TARGET',`extra',`PRI(optional)') +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: LeakSanitizer -- a memory leak detector (n32) +# LeakSanitizer (Lsan) is a memory leak detector which is integrated +# into AddressSanitizer. + +#Package: libn32lsan`'LSAN_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: extra +#Depends: BASELDEP, libdep(lsan`'LSAN_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: LeakSanitizer -- a memory leak detector (n32 debug symbols) +# LeakSanitizer (Lsan) is a memory leak detector which is integrated +# into AddressSanitizer. +')`'dnl libn32lsan + +ifenabled(`libx32lsan',` +Package: libx32lsan`'LSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (x32) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer (empty package). + +Package: libx32lsan`'LSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(lsan`'LSAN_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (x32 debug symbols) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer (empty package). +')`'dnl libx32lsan + +ifenabled(`libhflsan',` +Package: libhflsan`'LSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: liblsan'LSAN_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (hard float ABI) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. + +Package: libhflsan`'LSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(lsan`'LSAN_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: liblsan'LSAN_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (hard float ABI debug symbols) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. +')`'dnl libhflsan + +ifenabled(`libsflsan',` +Package: libsflsan`'LSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (soft float ABI) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. + +Package: libsflsan`'LSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(lsan`'LSAN_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector (soft float ABI debug symbols) + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. +')`'dnl libsflsan + +ifenabled(`libneonlsan',` +Package: liblsan`'LSAN_SO-neon`'LS +Architecture: NEON_ARCHS +Section: libs +Priority: extra +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: LeakSanitizer -- a memory leak detector [neon optimized] + LeakSanitizer (Lsan) is a memory leak detector which is integrated + into AddressSanitizer. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonlsan +')`'dnl liblsan + +ifenabled(`libtsan',` +Package: libtsan`'TSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libtsan'TSAN_SO`-armel [armel], libtsan'TSAN_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (runtime) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: libtsan`'TSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(tsan`'TSAN_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libtsan'TSAN_SO`-dbg-armel [armel], libtsan'TSAN_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (debug symbols) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +ifenabled(`lib32tsan',` +Package: lib32tsan`'TSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (32bit) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: lib32tsan`'TSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(tsan`'TSAN_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (32 bit debug symbols) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. +')`'dnl lib32tsan + +ifenabled(`lib64tsan',` +Package: lib64tsan`'TSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (64bit) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: lib64tsan`'TSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(tsan`'TSAN_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (64bit debug symbols) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. +')`'dnl lib64tsan + +ifenabled(`libn32tsan',` +Package: libn32tsan`'TSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (n32) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: libn32tsan`'TSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(tsan`'TSAN_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (n32 debug symbols) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. +')`'dnl libn32tsan + +ifenabled(`libx32tsan',` +Package: libx32tsan`'TSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (x32) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: libx32tsan`'TSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(tsan`'TSAN_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (x32 debug symbols) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. +')`'dnl libx32tsan + +ifenabled(`libhftsan',` +Package: libhftsan`'TSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libtsan'TSAN_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (hard float ABI) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: libhftsan`'TSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(tsan`'TSAN_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libtsan'TSAN_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (hard float ABI debug symbols) +')`'dnl libhftsan + +ifenabled(`libsftsan',` +Package: libsftsan`'TSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (soft float ABI) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + +Package: libsftsan`'TSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(tsan`'TSAN_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races (soft float ABI debug symbols) + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. +')`'dnl libsftsan + +ifenabled(`libneontsan',` +Package: libtsan`'TSAN_SO-neon`'LS +Architecture: NEON_ARCHS +Section: libs +Priority: extra +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: ThreadSanitizer -- a Valgrind-based detector of data races [neon optimized] + ThreadSanitizer (Tsan) is a data race detector for C/C++ programs. + The Linux and Mac versions are based on Valgrind. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneontsan +')`'dnl libtsan + +ifenabled(`libubsan',` +Package: libubsan`'UBSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libubsan'UBSAN_SO`-armel [armel], libubsan'UBSAN_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (runtime) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libubsan`'UBSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libubsan'UBSAN_SO`-dbg-armel [armel], libubsan'UBSAN_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +ifenabled(`lib32ubsan',` +Package: lib32ubsan`'UBSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (32bit) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: lib32ubsan`'UBSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (32 bit debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. +')`'dnl lib32ubsan + +ifenabled(`lib64ubsan',` +Package: lib64ubsan`'UBSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (64bit) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: lib64ubsan`'UBSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (64bit debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. +')`'dnl lib64ubsan + +ifenabled(`libn32ubsan',` +#Package: libn32ubsan`'UBSAN_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: ifdef(`TARGET',`extra',`PRI(optional)') +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: UBSan -- undefined behaviour sanitizer (n32) +# UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. +# Various computations will be instrumented to detect undefined behavior +# at runtime. Available for C and C++. + +#Package: libn32ubsan`'UBSAN_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: extra +#Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: UBSan -- undefined behaviour sanitizer (n32 debug symbols) +# UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. +# Various computations will be instrumented to detect undefined behavior +# at runtime. Available for C and C++. +')`'dnl libn32ubsan + +ifenabled(`libx32ubsan',` +Package: libx32ubsan`'UBSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (x32) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libx32ubsan`'UBSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (x32 debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. +')`'dnl libx32ubsan + +ifenabled(`libhfubsan',` +Package: libhfubsan`'UBSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libubsan'UBSAN_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (hard float ABI) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libhfubsan`'UBSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libubsan'UBSAN_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (hard float ABI debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. +')`'dnl libhfubsan + +ifenabled(`libsfubsan',` +Package: libsfubsan`'UBSAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (soft float ABI) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + +Package: libsfubsan`'UBSAN_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(ubsan`'UBSAN_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer (soft float ABI debug symbols) + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. +')`'dnl libsfubsan + +ifenabled(`libneonubsan',` +Package: libubsan`'UBSAN_SO-neon`'LS +Architecture: NEON_ARCHS +Section: libs +Priority: extra +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: UBSan -- undefined behaviour sanitizer [neon optimized] + UndefinedBehaviorSanitizer can be enabled via -fsanitize=undefined. + Various computations will be instrumented to detect undefined behavior + at runtime. Available for C and C++. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonubsan +')`'dnl libubsan + +ifenabled(`libvtv',` +Package: libvtv`'VTV_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (runtime) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +Package: libvtv`'VTV_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(vtv`'VTV_SO,,=), ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: GNU vtable verification library (debug symbols) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +ifenabled(`lib32vtv',` +Package: lib32vtv`'VTV_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: GNU vtable verification library (32bit) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +Package: lib32vtv`'VTV_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(vtv`'VTV_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (32 bit debug symbols) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. +')`'dnl lib32vtv + +ifenabled(`lib64vtv',` +Package: lib64vtv`'VTV_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (64bit) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +Package: lib64vtv`'VTV_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(vtv`'VTV_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (64bit debug symbols) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. +')`'dnl lib64vtv + +ifenabled(`libn32vtv',` +Package: libn32vtv`'VTV_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (n32) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +Package: libn32vtv`'VTV_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(vtv`'VTV_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (n32 debug symbols) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. +')`'dnl libn32vtv + +ifenabled(`libx32vtv',` +Package: libx32vtv`'VTV_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (x32) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +Package: libx32vtv`'VTV_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(vtv`'VTV_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (x32 debug symbols) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. +')`'dnl libx32vtv + +ifenabled(`libhfvtv',` +Package: libhfvtv`'VTV_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libvtv'VTV_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: GNU vtable verification library (hard float ABI) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +Package: libhfvtv`'VTV_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(vtv`'VTV_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libvtv'VTV_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: GNU vtable verification library (hard float ABI debug symbols) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. +')`'dnl libhfvtv + +ifenabled(`libsfvtv',` +Package: libsfvtv`'VTV_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (soft float ABI) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + +Package: libsfvtv`'VTV_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(vtv`'VTV_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library (soft float ABI debug symbols) + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. +')`'dnl libsfvtv + +ifenabled(`libneonvtv',` +Package: libvtv`'VTV_SO-neon`'LS +Architecture: NEON_ARCHS +Section: libs +Priority: extra +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU vtable verification library [neon optimized] + Vtable verification is a new security hardening feature for GCC that + is designed to detect and handle (during program execution) when a + vtable pointer that is about to be used for a virtual function call is + not a valid vtable pointer for that call. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonvtv +')`'dnl libvtv + +ifenabled(`libcilkrts',` +Package: libcilkrts`'CILKRTS_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libcilkrts'CILKRTS_SO`-armel [armel], libcilkrts'CILKRTS_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (runtime) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libcilkrts`'CILKRTS_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(cilkrts`'CILKRTS_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libcilkrts'CILKRTS_SO`-dbg-armel [armel], libcilkrts'CILKRTS_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +ifenabled(`lib32cilkrts',` +Package: lib32cilkrts`'CILKRTS_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (32bit) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: lib32cilkrts`'CILKRTS_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(cilkrts`'CILKRTS_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (32 bit debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. +')`'dnl lib32cilkrts + +ifenabled(`lib64cilkrts',` +Package: lib64cilkrts`'CILKRTS_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (64bit) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: lib64cilkrts`'CILKRTS_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(cilkrts`'CILKRTS_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (64bit debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. +')`'dnl lib64cilkrts + +ifenabled(`libn32cilkrts',` +Package: libn32cilkrts`'CILKRTS_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (n32) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libn32cilkrts`'CILKRTS_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(cilkrts`'CILKRTS_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (n32 debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. +')`'dnl libn32cilkrts + +ifenabled(`libx32cilkrts',` +Package: libx32cilkrts`'CILKRTS_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (x32) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libx32cilkrts`'CILKRTS_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(cilkrts`'CILKRTS_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (x32 debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. +')`'dnl libx32cilkrts + +ifenabled(`libhfcilkrts',` +Package: libhfcilkrts`'CILKRTS_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libcilkrts'CILKRTS_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (hard float ABI) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libhfcilkrts`'CILKRTS_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(cilkrts`'CILKRTS_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libcilkrts'CILKRTS_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (hard float ABI debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. +')`'dnl libhfcilkrts + +ifenabled(`libsfcilkrts',` +Package: libsfcilkrts`'CILKRTS_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (soft float ABI) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + +Package: libsfcilkrts`'CILKRTS_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(cilkrts`'CILKRTS_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions (soft float ABI debug symbols) + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. +')`'dnl libsfcilkrts + +ifenabled(`libneoncilkrts',` +Package: libcilkrts`'CILKRTS_SO-neon`'LS +Architecture: NEON_ARCHS +Section: libs +Priority: extra +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel Cilk Plus language extensions [neon optimized] + Intel Cilk Plus is an extension to the C and C++ languages to support + data and task parallelism. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneoncilkrts +')`'dnl libcilkrts + +ifenabled(`libmpx',` +Package: libmpx`'MPX_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libmpx'MPX_SO`-armel [armel], libmpx'MPX_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: libmpx0 (<< 6-20160120-1) +BUILT_USING`'dnl +Description: Intel memory protection extensions (runtime) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: libmpx`'MPX_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(mpx`'MPX_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libmpx'MPX_SO`-dbg-armel [armel], libmpx'MPX_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: Intel memory protection extensions (debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +ifenabled(`lib32mpx',` +Package: lib32mpx`'MPX_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Replaces: lib32mpx0 (<< 6-20160120-1) +BUILT_USING`'dnl +Description: Intel memory protection extensions (32bit) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: lib32mpx`'MPX_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(mpx`'MPX_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (32 bit debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. +')`'dnl lib32mpx + +ifenabled(`lib64mpx',` +Package: lib64mpx`'MPX_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: lib64mpx0 (<< 6-20160120-1) +BUILT_USING`'dnl +Description: Intel memory protection extensions (64bit) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: lib64mpx`'MPX_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(mpx`'MPX_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (64bit debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. +')`'dnl lib64mpx + +ifenabled(`libn32mpx',` +Package: libn32mpx`'MPX_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (n32) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: libn32mpx`'MPX_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(mpx`'MPX_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (n32 debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. +')`'dnl libn32mpx + +ifenabled(`libx32mpx',` +Package: libx32mpx`'MPX_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (x32) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: libx32mpx`'MPX_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(mpx`'MPX_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (x32 debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. +')`'dnl libx32mpx + +ifenabled(`libhfmpx',` +Package: libhfmpx`'MPX_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libmpx'MPX_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: Intel memory protection extensions (hard float ABI) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: libhfmpx`'MPX_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(mpx`'MPX_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libmpx'MPX_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: Intel memory protection extensions (hard float ABI debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. +')`'dnl libhfmpx + +ifenabled(`libsfmpx',` +Package: libsfmpx`'MPX_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (soft float ABI) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. + +Package: libsfmpx`'MPX_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(mpx`'MPX_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Intel memory protection extensions (soft float ABI debug symbols) + Intel MPX is a set of processor features which, with compiler, + runtime library and OS support, brings increased robustness to + software by checking pointer references whose compile time normal + intentions are usurped at runtime due to buffer overflow. +')`'dnl libsfmpx +')`'dnl libmpx + +ifenabled(`libbacktrace',` +Package: libbacktrace`'BTRACE_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libbacktrace'BTRACE_SO`-armel [armel], libbacktrace'BTRACE_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: libbacktrace`'BTRACE_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(backtrace`'BTRACE_SO,,=), ${misc:Depends} +ifdef(`TARGET',`',`Provides: libbacktrace'BTRACE_SO`-dbg-armel [armel], libbacktrace'BTRACE_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: stack backtrace library (debug symbols) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: lib32backtrace`'BTRACE_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: stack backtrace library (32bit) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: lib32backtrace`'BTRACE_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(backtrace`'BTRACE_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (32 bit debug symbols) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: lib64backtrace`'BTRACE_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (64bit) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: lib64backtrace`'BTRACE_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(backtrace`'BTRACE_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (64bit debug symbols) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: libn32backtrace`'BTRACE_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (n32) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: libn32backtrace`'BTRACE_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(backtrace`'BTRACE_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (n32 debug symbols) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +ifenabled(`libx32backtrace',` +Package: libx32backtrace`'BTRACE_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (x32) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: libx32backtrace`'BTRACE_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(backtrace`'BTRACE_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (x32 debug symbols) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. +')`'dnl libx32backtrace + +ifenabled(`libhfbacktrace',` +Package: libhfbacktrace`'BTRACE_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libbacktrace'BTRACE_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: stack backtrace library (hard float ABI) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: libhfbacktrace`'BTRACE_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(backtrace`'BTRACE_SO,hf,=), ${misc:Depends} +wifdef(`TARGET',`dnl',`Conflicts: libbacktrace'BTRACE_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: stack backtrace library (hard float ABI debug symbols) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. +')`'dnl libhfbacktrace + +ifenabled(`libsfbacktrace',` +Package: libsfbacktrace`'BTRACE_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (soft float ABI) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + +Package: libsfbacktrace`'BTRACE_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(backtrace`'BTRACE_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library (soft float ABI debug symbols) + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. +')`'dnl libsfbacktrace + +ifenabled(`libneonbacktrace',` +Package: libbacktrace`'BTRACE_SO-neon`'LS +Architecture: NEON_ARCHS +Section: libs +Priority: extra +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: stack backtrace library [neon optimized] + libbacktrace uses the GCC unwind interface to collect a stack trace, + and parses DWARF debug info to get file/line/function information. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonbacktrace +')`'dnl libbacktrace + + +ifenabled(`libqmath',` +Package: libquadmath`'QMATH_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: libquadmath`'QMATH_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(quadmath`'QMATH_SO,,=), ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. + +Package: lib32quadmath`'QMATH_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (32bit) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: lib32quadmath`'QMATH_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(quadmath`'QMATH_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (32 bit debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. + +Package: lib64quadmath`'QMATH_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (64bit) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: lib64quadmath`'QMATH_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(quadmath`'QMATH_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (64bit debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. + +#Package: libn32quadmath`'QMATH_SO`'LS +#Section: ifdef(`TARGET',`devel',`libs') +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Priority: ifdef(`TARGET',`extra',`PRI(optional)') +#Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +#BUILT_USING`'dnl +#Description: GCC Quad-Precision Math Library (n32) +# A library, which provides quad-precision mathematical functions on targets +# supporting the __float128 datatype. The library is used to provide on such +# targets the REAL(16) type in the GNU Fortran compiler. + +#Package: libn32quadmath`'QMATH_SO-dbg`'LS +#Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +#Section: debug +#Priority: extra +#Depends: BASELDEP, libdep(quadmath`'QMATH_SO,n32,=), ${misc:Depends} +#BUILT_USING`'dnl +#Description: GCC Quad-Precision Math Library (n32 debug symbols) +# A library, which provides quad-precision mathematical functions on targets +# supporting the __float128 datatype. + +ifenabled(`libx32qmath',` +Package: libx32quadmath`'QMATH_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (x32) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: libx32quadmath`'QMATH_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(quadmath`'QMATH_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (x32 debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. +')`'dnl libx32qmath + +ifenabled(`libhfqmath',` +Package: libhfquadmath`'QMATH_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (hard float ABI) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: libhfquadmath`'QMATH_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(quadmath`'QMATH_SO,hf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (hard float ABI debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. +')`'dnl libhfqmath + +ifenabled(`libsfqmath',` +Package: libsfquadmath`'QMATH_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (soft float ABI) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. The library is used to provide on such + targets the REAL(16) type in the GNU Fortran compiler. + +Package: libsfquadmath`'QMATH_SO-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(quadmath`'QMATH_SO,sf,=), ${misc:Depends} +BUILT_USING`'dnl +Description: GCC Quad-Precision Math Library (hard float ABI debug symbols) + A library, which provides quad-precision mathematical functions on targets + supporting the __float128 datatype. +')`'dnl libsfqmath +')`'dnl libqmath + +ifenabled(`libcc1',` +Package: libcc1-`'CC1_SO +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC cc1 plugin for GDB + libcc1 is a plugin for GDB. +')`'dnl libcc1 + +ifenabled(`libjit',` +Package: libgccjit`'GCCJIT_SO +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, ${shlibs:Depends}, ${misc:Depends} +Breaks: python-gccjit (<< 0.4-4), python3-gccjit (<< 0.4-4) +BUILT_USING`'dnl +Description: GCC just-in-time compilation (shared library) + libgccjit provides an embeddable shared library with an API for adding + compilation to existing programs using GCC. + +Package: libgccjit`'GCCJIT_SO-dbg +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: extra +Depends: BASEDEP, libgccjit`'GCCJIT_SO (= ${gcc:Version}), + ${shlibs:Depends}, ${misc:Depends} +Breaks: libgccjit-5-dbg, libgccjit-6-dbg +Replaces: libgccjit-5-dbg, libgccjit-6-dbg +BUILT_USING`'dnl +Description: GCC just-in-time compilation (debug information) + libgccjit provides an embeddable shared library with an API for adding + compilation to existing programs using GCC. +')`'dnl libjit + +ifenabled(`jit',` +Package: libgccjit`'PV-doc +Section: doc +Architecture: all +Priority: extra +Depends: BASEDEP, ${misc:Depends} +Conflicts: libgccjit-5-doc, libgccjit-6-doc +Description: GCC just-in-time compilation (documentation) + libgccjit provides an embeddable shared library with an API for adding + compilation to existing programs using GCC. + +Package: libgccjit`'PV-dev +Section: ifdef(`TARGET',`devel',`libdevel') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, libgccjit`'GCCJIT_SO (>= ${gcc:Version}), + ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Suggests: libgccjit`'PV-dbg +Description: GCC just-in-time compilation (development files) + libgccjit provides an embeddable shared library with an API for adding + compilation to existing programs using GCC. +')`'dnl jit + +ifenabled(`objpp',` +ifenabled(`objppdev',` +Package: gobjc++`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, gobjc`'PV`'TS (= ${gcc:Version}), g++`'PV`'TS (= ${gcc:Version}), ${shlibs:Depends}, libidevdep(objc`'PV-dev,,=), ${misc:Depends} +Suggests: ${gobjcxx:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}) +Provides: objc++-compiler`'TS +BUILT_USING`'dnl +Description: GNU Objective-C++ compiler + This is the GNU Objective-C++ compiler, which compiles + Objective-C++ on platforms supported by the gcc compiler. It uses the + gcc backend to generate optimized code. +')`'dnl obcppdev + +ifenabled(`multilib',` +Package: gobjc++`'PV-multilib`'TS +Architecture: ifdef(`TARGET',`any',MULTILIB_ARCHS) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, gobjc++`'PV`'TS (= ${gcc:Version}), g++`'PV-multilib`'TS (= ${gcc:Version}), gobjc`'PV-multilib`'TS (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Objective-C++ compiler (multilib support) + This is the GNU Objective-C++ compiler, which compiles Objective-C++ on + platforms supported by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib +')`'dnl obcpp + +ifenabled(`objc',` +ifenabled(`objcdev',` +Package: gobjc`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), ${dep:libcdev}, ${shlibs:Depends}, libidevdep(objc`'PV-dev,,=), ${misc:Depends} +Suggests: ${gobjc:multilib}, gcc`'PV-doc (>= ${gcc:SoftVersion}), libdbgdep(objc`'OBJC_SO-dbg,) +Provides: objc-compiler`'TS +ifdef(`__sparc__',`Conflicts: gcc`'PV-sparc64', `dnl') +BUILT_USING`'dnl +Description: GNU Objective-C compiler + This is the GNU Objective-C compiler, which compiles + Objective-C on platforms supported by the gcc compiler. It uses the + gcc backend to generate optimized code. + +ifenabled(`multilib',` +Package: gobjc`'PV-multilib`'TS +Architecture: ifdef(`TARGET',`any',MULTILIB_ARCHS) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, gobjc`'PV`'TS (= ${gcc:Version}), gcc`'PV-multilib`'TS (= ${gcc:Version}), ${dep:libobjcbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Objective-C compiler (multilib support)`'ifdef(`TARGET)',` (cross compiler for TARGET architecture)', `') + This is the GNU Objective-C compiler, which compiles Objective-C on platforms + supported by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib + +Package: libobjc`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,), libdep(objc`'OBJC_SO,), ${shlibs:Depends}, ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: lib64objc`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,64), libdep(objc`'OBJC_SO,64), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (64bit development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: lib32objc`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,32), libdep(objc`'OBJC_SO,32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (32bit development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +Package: libn32objc`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,n32), libdep(objc`'OBJC_SO,n32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (n32 development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. + +ifenabled(`x32dev',` +Package: libx32objc`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,x32), libdep(objc`'OBJC_SO,x32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (x32 development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. +')`'dnl libx32objc + +ifenabled(`armml',` +Package: libhfobjc`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,hf), libdep(objc`'OBJC_SO,hf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (hard float ABI development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. +')`'dnl armml + +ifenabled(`armml',` +Package: libsfobjc`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,sf), libdep(objc`'OBJC_SO,sf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (soft float development files) + This package contains the headers and static library files needed to build + GNU ObjC applications. +')`'dnl armml +')`'dnl objcdev + +ifenabled(`libobjc',` +Package: libobjc`'OBJC_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libobjc'OBJC_SO`-armel [armel], libobjc'OBJC_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +ifelse(OBJC_SO,`2',`Breaks: ${multiarch:breaks} +',`')')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications + Library needed for GNU ObjC applications linked against the shared library. + +Package: libobjc`'OBJC_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libobjc'OBJC_SO`-dbg-armel [armel], libobjc'OBJC_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Priority: extra +Depends: BASELDEP, libdep(objc`'OBJC_SO,,=), libdbgdep(gcc`'GCC_SO-dbg,,>=,${libgcc:Version}), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (debug symbols) + Library needed for GNU ObjC applications linked against the shared library. +')`'dnl libobjc + +ifenabled(`lib64objc',` +Package: lib64objc`'OBJC_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (64bit) + Library needed for GNU ObjC applications linked against the shared library. + +Package: lib64objc`'OBJC_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: extra +Depends: BASELDEP, libdep(objc`'OBJC_SO,64,=), libdbgdep(gcc`'GCC_SO-dbg,64,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (64 bit debug symbols) + Library needed for GNU ObjC applications linked against the shared library. +')`'dnl lib64objc + +ifenabled(`lib32objc',` +Package: lib32objc`'OBJC_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (32bit) + Library needed for GNU ObjC applications linked against the shared library. + +Package: lib32objc`'OBJC_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: extra +Depends: BASELDEP, libdep(objc`'OBJC_SO,32,=), libdbgdep(gcc`'GCC_SO-dbg,32,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (32 bit debug symbols) + Library needed for GNU ObjC applications linked against the shared library. +')`'dnl lib32objc + +ifenabled(`libn32objc',` +Package: libn32objc`'OBJC_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (n32) + Library needed for GNU ObjC applications linked against the shared library. + +Package: libn32objc`'OBJC_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: extra +Depends: BASELDEP, libdep(objc`'OBJC_SO,n32,=), libdbgdep(gcc`'GCC_SO-dbg,n32,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (n32 debug symbols) + Library needed for GNU ObjC applications linked against the shared library. +')`'dnl libn32objc + +ifenabled(`libx32objc',` +Package: libx32objc`'OBJC_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (x32) + Library needed for GNU ObjC applications linked against the shared library. + +Package: libx32objc`'OBJC_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: extra +Depends: BASELDEP, libdep(objc`'OBJC_SO,x32,=), libdbgdep(gcc`'GCC_SO-dbg,x32,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (x32 debug symbols) + Library needed for GNU ObjC applications linked against the shared library. +')`'dnl libx32objc + +ifenabled(`libhfobjc',` +Package: libhfobjc`'OBJC_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libobjc'OBJC_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (hard float ABI) + Library needed for GNU ObjC applications linked against the shared library. + +Package: libhfobjc`'OBJC_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: extra +Depends: BASELDEP, libdep(objc`'OBJC_SO,hf,=), libdbgdep(gcc`'GCC_SO-dbg,hf,>=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libobjc'OBJC_SO`-dbg-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (hard float ABI debug symbols) + Library needed for GNU ObjC applications linked against the shared library. +')`'dnl libhfobjc + +ifenabled(`libsfobjc',` +Package: libsfobjc`'OBJC_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libobjc'OBJC_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (soft float ABI) + Library needed for GNU ObjC applications linked against the shared library. + +Package: libsfobjc`'OBJC_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: extra +Depends: BASELDEP, libdep(objc`'OBJC_SO,sf,=), libdbgdep(gcc`'GCC_SO-dbg,sf,>=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libobjc'OBJC_SO`-dbg-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications (soft float ABI debug symbols) + Library needed for GNU ObjC applications linked against the shared library. +')`'dnl libsfobjc + +ifenabled(`libneonobjc',` +Package: libobjc`'OBJC_SO-neon`'LS +Section: libs +Architecture: NEON_ARCHS +Priority: PRI(optional) +Depends: BASELDEP, libc6-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Objective-C applications [NEON version] + Library needed for GNU ObjC applications linked against the shared library. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneonobjc +')`'dnl objc + +ifenabled(`fortran',` +ifenabled(`fdev',` +Package: gfortran`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), libidevdep(gfortran`'PV-dev,,=), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +Provides: fortran95-compiler, ${fortran:mod-version} +Suggests: ${gfortran:multilib}, gfortran`'PV-doc, + libdbgdep(gfortran`'FORTRAN_SO-dbg,), + libcoarrays-dev +BUILT_USING`'dnl +Description: GNU Fortran compiler + This is the GNU Fortran compiler, which compiles + Fortran on platforms supported by the gcc compiler. It uses the + gcc backend to generate optimized code. + +ifenabled(`multilib',` +Package: gfortran`'PV-multilib`'TS +Architecture: ifdef(`TARGET',`any',MULTILIB_ARCHS) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, gfortran`'PV`'TS (= ${gcc:Version}), gcc`'PV-multilib`'TS (= ${gcc:Version}), ${dep:libgfortranbiarchdev}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Fortran compiler (multilib support)`'ifdef(`TARGET)',` (cross compiler for TARGET architecture)', `') + This is the GNU Fortran compiler, which compiles Fortran on platforms + supported by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib + +ifenabled(`gfdldoc',` +Package: gfortran`'PV-doc +Architecture: all +Section: doc +Priority: PRI(optional) +Depends: gcc`'PV-base (>= ${gcc:SoftVersion}), dpkg (>= 1.15.4) | install-info, ${misc:Depends} +Description: Documentation for the GNU Fortran compiler (gfortran) + Documentation for the GNU Fortran compiler in info `format'. +')`'dnl gfdldoc + +Package: libgfortran`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev`',), libdep(gfortran`'FORTRAN_SO,), ${shlibs:Depends}, ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: lib64gfortran`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev`',64), libdep(gfortran`'FORTRAN_SO,64), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (64bit development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: lib32gfortran`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev`',32), libdep(gfortran`'FORTRAN_SO,32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (32bit development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +Package: libn32gfortran`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev`',n32), libdep(gfortran`'FORTRAN_SO,n32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (n32 development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. + +ifenabled(`x32dev',` +Package: libx32gfortran`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev`',x32), libdep(gfortran`'FORTRAN_SO,x32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (x32 development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. +')`'dnl libx32gfortran + +ifenabled(`armml',` +Package: libhfgfortran`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev`',hf), libdep(gfortran`'FORTRAN_SO,hf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (hard float ABI development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. +')`'dnl armml + +ifenabled(`armml',` +Package: libsfgfortran`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev`',sf), libdep(gfortran`'FORTRAN_SO,sf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (soft float ABI development files) + This package contains the headers and static library files needed to build + GNU Fortran applications. +')`'dnl armml +')`'dnl fdev + +ifenabled(`libgfortran',` +Package: libgfortran`'FORTRAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libgfortran'FORTRAN_SO`-armel [armel], libgfortran'FORTRAN_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +')`'dnl +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libgfortran`'FORTRAN_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libgfortran'FORTRAN_SO`-dbg-armel [armel], libgfortran'FORTRAN_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Priority: extra +Depends: BASELDEP, libdep(gfortran`'FORTRAN_SO,,=), libdbgdep(gcc`'GCC_SO-dbg,,>=,${libgcc:Version}), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. +')`'dnl libgfortran + +ifenabled(`lib64gfortran',` +Package: lib64gfortran`'FORTRAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (64bit) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: lib64gfortran`'FORTRAN_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: extra +Depends: BASELDEP, libdep(gfortran`'FORTRAN_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (64bit debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. +')`'dnl lib64gfortran + +ifenabled(`lib32gfortran',` +Package: lib32gfortran`'FORTRAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (32bit) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: lib32gfortran`'FORTRAN_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: extra +Depends: BASELDEP, libdep(gfortran`'FORTRAN_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (32 bit debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. +')`'dnl lib32gfortran + +ifenabled(`libn32gfortran',` +Package: libn32gfortran`'FORTRAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (n32) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libn32gfortran`'FORTRAN_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: extra +Depends: BASELDEP, libdep(gfortran`'FORTRAN_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (n32 debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. +')`'dnl libn32gfortran + +ifenabled(`libx32gfortran',` +Package: libx32gfortran`'FORTRAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (x32) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libx32gfortran`'FORTRAN_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: extra +Depends: BASELDEP, libdep(gfortran`'FORTRAN_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (x32 debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. +')`'dnl libx32gfortran + +ifenabled(`libhfgfortran',` +Package: libhfgfortran`'FORTRAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgfortran'FORTRAN_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (hard float ABI) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libhfgfortran`'FORTRAN_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: extra +Depends: BASELDEP, libdep(gfortran`'FORTRAN_SO,hf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgfortran'FORTRAN_SO`-dbg-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (hard float ABI debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. +')`'dnl libhfgfortran + +ifenabled(`libsfgfortran',` +Package: libsfgfortran`'FORTRAN_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgfortran'FORTRAN_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (soft float ABI) + Library needed for GNU Fortran applications linked against the + shared library. + +Package: libsfgfortran`'FORTRAN_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: extra +Depends: BASELDEP, libdep(gfortran`'FORTRAN_SO,sf,=), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libgfortran'FORTRAN_SO`-dbg-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications (hard float ABI debug symbols) + Library needed for GNU Fortran applications linked against the + shared library. +')`'dnl libsfgfortran + +ifenabled(`libneongfortran',` +Package: libgfortran`'FORTRAN_SO-neon`'LS +Section: libs +Architecture: NEON_ARCHS +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks} +')`'dnl +Priority: extra +Depends: BASELDEP, libgcc1-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Fortran applications [NEON version] + Library needed for GNU Fortran applications linked against the + shared library. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl libneongfortran +')`'dnl fortran + +ifenabled(`ggo',` +ifenabled(`godev',` +Package: gccgo`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, ifdef(`STANDALONEGO',`${dep:libcc1}, ',`gcc`'PV`'TS (= ${gcc:Version}), ')libidevdep(go`'GO_SO,,>=), ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +Provides: go-compiler +Suggests: ${go:multilib}, gccgo`'PV-doc, libdbgdep(go`'GO_SO-dbg,) +Conflicts: ${golang:Conflicts} +BUILT_USING`'dnl +Description: GNU Go compiler + This is the GNU Go compiler, which compiles Go on platforms supported + by the gcc compiler. It uses the gcc backend to generate optimized code. + +ifenabled(`multilib',` +Package: gccgo`'PV-multilib`'TS +Architecture: ifdef(`TARGET',`any',MULTILIB_ARCHS) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, gccgo`'PV`'TS (= ${gcc:Version}), ifdef(`STANDALONEGO',,`gcc`'PV-multilib`'TS (= ${gcc:Version}), ')${dep:libgobiarch}, ${shlibs:Depends}, ${misc:Depends} +Suggests: ${dep:libgobiarchdbg} +BUILT_USING`'dnl +Description: GNU Go compiler (multilib support)`'ifdef(`TARGET)',` (cross compiler for TARGET architecture)', `') + This is the GNU Go compiler, which compiles Go on platforms supported + by the gcc compiler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib + +ifenabled(`gfdldoc',` +Package: gccgo`'PV-doc +Architecture: all +Section: doc +Priority: PRI(optional) +Depends: gcc`'PV-base (>= ${gcc:SoftVersion}), dpkg (>= 1.15.4) | install-info, ${misc:Depends} +BUILT_USING`'dnl +Description: Documentation for the GNU Go compiler (gccgo) + Documentation for the GNU Go compiler in info `format'. +')`'dnl gfdldoc +')`'dnl fdev + +ifenabled(`libggo',` +Package: libgo`'GO_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libgo'GO_SO`-armel [armel], libgo'GO_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: libgo3`'LS, libgo8`'LS +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications + Library needed for GNU Go applications linked against the + shared library. + +Package: libgo`'GO_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libgo'GO_SO`-dbg-armel [armel], libgo'GO_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Priority: extra +Depends: BASELDEP, libdep(go`'GO_SO,,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. +')`'dnl libgo + +ifenabled(`lib64ggo',` +Package: lib64go`'GO_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: lib64go3`'LS, lib64go8`'LS +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (64bit) + Library needed for GNU Go applications linked against the + shared library. + +Package: lib64go`'GO_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: extra +Depends: BASELDEP, libdep(go`'GO_SO,64,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (64bit debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. +')`'dnl lib64go + +ifenabled(`lib32ggo',` +Package: lib32go`'GO_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +Replaces: lib32go3`'LS, lib32go8`'LS +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (32bit) + Library needed for GNU Go applications linked against the + shared library. + +Package: lib32go`'GO_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: extra +Depends: BASELDEP, libdep(go`'GO_SO,32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (32 bit debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. +')`'dnl lib32go + +ifenabled(`libn32ggo',` +Package: libn32go`'GO_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libn32go3`'LS, libn32go8`'LS +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (n32) + Library needed for GNU Go applications linked against the + shared library. + +Package: libn32go`'GO_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: extra +Depends: BASELDEP, libdep(go`'GO_SO,n32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (n32 debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. +')`'dnl libn32go + +ifenabled(`libx32ggo',` +Package: libx32go`'GO_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Replaces: libx32go3`'LS, libx32go8`'LS +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (x32) + Library needed for GNU Go applications linked against the + shared library. + +Package: libx32go`'GO_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: extra +Depends: BASELDEP, libdep(go`'GO_SO,x32,=), ${misc:Depends} +BUILT_USING`'dnl +Description: Runtime library for GNU Go applications (x32 debug symbols) + Library needed for GNU Go applications linked against the + shared library. This currently is an empty package, because the + library is completely unstripped. +')`'dnl libx32go +')`'dnl ggo + +ifenabled(`c++',` +ifenabled(`libcxx',` +Package: libstdc++CXX_SO`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',PRI(important)) +Depends: BASELDEP, ${dep:libc}, ${shlibs:Depends}, ${misc:Depends} +Provides: ifdef(`TARGET',`libstdc++CXX_SO-TARGET-dcv1',`libstdc++'CXX_SO`-armel [armel], libstdc++'CXX_SO`-armhf [armhf]') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +Breaks: ${multiarch:breaks}, PR66145BREAKS +')`'dnl +Conflicts: scim (<< 1.4.2-1) +Replaces: libstdc++CXX_SO`'PV-dbg`'LS (<< 4.9.0-3) +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3`'ifdef(`TARGET)',` (TARGET)', `') + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libcxx + +ifenabled(`lib32cxx',` +Package: lib32stdc++CXX_SO`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdep(gcc1,32), ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +ifdef(`TARGET',`Provides: lib32stdc++CXX_SO-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (32 bit Version) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl lib32cxx + +ifenabled(`lib64cxx',` +Package: lib64stdc++CXX_SO`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdep(gcc1,64), ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: lib64stdc++CXX_SO-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3`'ifdef(`TARGET)',` (TARGET)', `') (64bit) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl lib64cxx + +ifenabled(`libn32cxx',` +Package: libn32stdc++CXX_SO`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdep(gcc1,n32), ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libn32stdc++CXX_SO-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3`'ifdef(`TARGET)',` (TARGET)', `') (n32) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libn32cxx + +ifenabled(`libx32cxx',` +Package: libx32stdc++CXX_SO`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdep(gcc1,x32), ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libx32stdc++CXX_SO-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3`'ifdef(`TARGET)',` (TARGET)', `') (x32) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libx32cxx + +ifenabled(`libhfcxx',` +Package: libhfstdc++CXX_SO`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdep(gcc1,hf), ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libhfstdc++CXX_SO-TARGET-dcv1 +',`')`'dnl +ifdef(`TARGET',`dnl',`Conflicts: libstdc++'CXX_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3`'ifdef(`TARGET)',` (TARGET)', `') (hard float ABI) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libhfcxx + +ifenabled(`libsfcxx',` +Package: libsfstdc++CXX_SO`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: ifdef(`TARGET',`devel',`libs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdep(gcc1,sf), ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libsfstdc++CXX_SO-TARGET-dcv1 +',`')`'dnl +ifdef(`TARGET',`dnl',`Conflicts: libstdc++'CXX_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3`'ifdef(`TARGET)',` (TARGET)', `') (soft float ABI) + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libsfcxx + +ifenabled(`libneoncxx',` +Package: libstdc++CXX_SO-neon`'LS +Architecture: NEON_ARCHS +Section: libs +Priority: extra +Depends: BASELDEP, libc6-neon`'LS, libgcc1-neon`'LS, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 [NEON version] + This package contains an additional runtime library for C++ programs + built with the GNU compiler. + . + This set of libraries is optimized to use a NEON coprocessor, and will + be selected instead when running under systems which have one. +')`'dnl + +ifenabled(`c++dev',` +Package: libstdc++`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,,=), + libdep(stdc++CXX_SO,,>=), ${dep:libcdev}, ${misc:Depends} +ifdef(`TARGET',`',`dnl native +Conflicts: libg++27-dev, libg++272-dev (<< 2.7.2.8-1), libstdc++2.8-dev, + libg++2.8-dev, libstdc++2.9-dev, libstdc++2.9-glibc2.1-dev, + libstdc++2.10-dev (<< 1:2.95.3-2), libstdc++3.0-dev +Suggests: libstdc++`'PV-doc +')`'dnl native +Provides: libstdc++-dev`'LS`'ifdef(`TARGET',`, libstdc++-dev-TARGET-dcv1') +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (development files)`'ifdef(`TARGET)',` (TARGET)', `') + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libstdc++`'PV-pic`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: extra +Depends: BASELDEP, libdep(stdc++CXX_SO,), + libdevdep(stdc++`'PV-dev,), ${misc:Depends} +ifdef(`TARGET',`Provides: libstdc++-pic-TARGET-dcv1 +',`')`'dnl +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (shared library subset kit)`'ifdef(`TARGET)',` (TARGET)', `') + This is used to develop subsets of the libstdc++ shared libraries for + use on custom installation floppies and in embedded systems. + . + Unless you are making one of those, you will not need this package. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libstdc++CXX_SO`'PV-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(stdc++CXX_SO,), + libdbgdep(gcc`'GCC_SO-dbg,,>=,${libgcc:Version}), ${shlibs:Depends}, ${misc:Depends} +Provides: ifdef(`TARGET',`libstdc++CXX_SO-dbg-TARGET-dcv1',`libstdc++'CXX_SO`'PV`-dbg-armel [armel], libstdc++'CXX_SO`'PV`-dbg-armhf [armhf]') +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Recommends: libdevdep(stdc++`'PV-dev,) +Conflicts: libstdc++5-dbg`'LS, libstdc++5-3.3-dbg`'LS, libstdc++6-dbg`'LS, + libstdc++6-4.0-dbg`'LS, libstdc++6-4.1-dbg`'LS, libstdc++6-4.2-dbg`'LS, + libstdc++6-4.3-dbg`'LS, libstdc++6-4.4-dbg`'LS, libstdc++6-4.5-dbg`'LS, + libstdc++6-4.6-dbg`'LS, libstdc++6-4.7-dbg`'LS, libstdc++6-4.8-dbg`'LS, + libstdc++6-4.9-dbg`'LS, libstdc++6-5-dbg`'LS, libstdc++6-6-dbg`'LS +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (debugging files)`'ifdef(`TARGET)',` (TARGET)', `') + This package contains the shared library of libstdc++ compiled with + debugging symbols. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: lib32stdc++`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,32), + libdep(stdc++CXX_SO,32), libdevdep(stdc++`'PV-dev,), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (development files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: lib32stdc++CXX_SO`'PV-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(stdc++CXX_SO,32), + libdevdep(stdc++`'PV-dev,), libdbgdep(gcc`'GCC_SO-dbg,32,>=,${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: lib32stdc++CXX_SO-dbg-TARGET-dcv1 +',`')`'dnl +Conflicts: lib32stdc++6-dbg`'LS, lib32stdc++6-4.0-dbg`'LS, + lib32stdc++6-4.1-dbg`'LS, lib32stdc++6-4.2-dbg`'LS, lib32stdc++6-4.3-dbg`'LS, + lib32stdc++6-4.4-dbg`'LS, lib32stdc++6-4.5-dbg`'LS, lib32stdc++6-4.6-dbg`'LS, + lib32stdc++6-4.7-dbg`'LS, lib32stdc++6-4.8-dbg`'LS, lib32stdc++6-4.9-dbg`'LS, + lib32stdc++6-5-dbg`'LS, lib32stdc++6-6-dbg`'LS +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (debugging files)`'ifdef(`TARGET)',` (TARGET)', `') + This package contains the shared library of libstdc++ compiled with + debugging symbols. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: lib64stdc++`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,64), + libdep(stdc++CXX_SO,64), libdevdep(stdc++`'PV-dev,), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (development files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: lib64stdc++CXX_SO`'PV-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(stdc++CXX_SO,64), + libdevdep(stdc++`'PV-dev,), libdbgdep(gcc`'GCC_SO-dbg,64,>=,${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: lib64stdc++CXX_SO-dbg-TARGET-dcv1 +',`')`'dnl +Conflicts: lib64stdc++6-dbg`'LS, lib64stdc++6-4.0-dbg`'LS, + lib64stdc++6-4.1-dbg`'LS, lib64stdc++6-4.2-dbg`'LS, lib64stdc++6-4.3-dbg`'LS, + lib64stdc++6-4.4-dbg`'LS, lib64stdc++6-4.5-dbg`'LS, lib64stdc++6-4.6-dbg`'LS, + lib64stdc++6-4.7-dbg`'LS, lib64stdc++6-4.8-dbg`'LS, lib64stdc++6-4.9-dbg`'LS, + lib64stdc++6-5-dbg`'LS, lib64stdc++6-6-dbg`'LS +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (debugging files)`'ifdef(`TARGET)',` (TARGET)', `') + This package contains the shared library of libstdc++ compiled with + debugging symbols. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libn32stdc++`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,n32), + libdep(stdc++CXX_SO,n32), libdevdep(stdc++`'PV-dev,), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (development files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libn32stdc++CXX_SO`'PV-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(stdc++CXX_SO,n32), + libdevdep(stdc++`'PV-dev,), libdbgdep(gcc`'GCC_SO-dbg,n32,>=,${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libn32stdc++CXX_SO-dbg-TARGET-dcv1 +',`')`'dnl +Conflicts: libn32stdc++6-dbg`'LS, libn32stdc++6-4.0-dbg`'LS, + libn32stdc++6-4.1-dbg`'LS, libn32stdc++6-4.2-dbg`'LS, libn32stdc++6-4.3-dbg`'LS, + libn32stdc++6-4.4-dbg`'LS, libn32stdc++6-4.5-dbg`'LS, libn32stdc++6-4.6-dbg`'LS, + libn32stdc++6-4.7-dbg`'LS, libn32stdc++6-4.8-dbg`'LS, libn32stdc++6-4.9-dbg`'LS, + libn32stdc++6-5-dbg`'LS, libn32stdc++6-6-dbg`'LS +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (debugging files)`'ifdef(`TARGET)',` (TARGET)', `') + This package contains the shared library of libstdc++ compiled with + debugging symbols. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +ifenabled(`x32dev',` +Package: libx32stdc++`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,x32), libdep(stdc++CXX_SO,x32), + libdevdep(stdc++`'PV-dev,), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (development files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl x32dev + +ifenabled(`libx32dbgcxx',` +Package: libx32stdc++CXX_SO`'PV-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(stdc++CXX_SO,x32), + libdevdep(stdc++`'PV-dev,), libdbgdep(gcc`'GCC_SO-dbg,x32,>=,${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libx32stdc++CXX_SO-dbg-TARGET-dcv1 +',`')`'dnl +Conflicts: libx32stdc++6-dbg`'LS, libx32stdc++6-4.6-dbg`'LS, + libx32stdc++6-4.7-dbg`'LS, libx32stdc++6-4.8-dbg`'LS, libx32stdc++6-4.9-dbg`'LS, + libx32stdc++6-5-dbg`'LS, libx32stdc++6-6-dbg`'LS +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (debugging files)`'ifdef(`TARGET)',` (TARGET)', `') + This package contains the shared library of libstdc++ compiled with + debugging symbols. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libx32dbgcxx + +ifenabled(`libhfdbgcxx',` +Package: libhfstdc++`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,hf), + libdep(stdc++CXX_SO,hf), libdevdep(stdc++`'PV-dev,), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (development files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libhfstdc++CXX_SO`'PV-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(stdc++CXX_SO,hf), + libdevdep(stdc++`'PV-dev,), libdbgdep(gcc`'GCC_SO-dbg,hf,>=,${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libhfstdc++CXX_SO-dbg-TARGET-dcv1 +',`')`'dnl +ifdef(`TARGET',`dnl',`Conflicts: libhfstdc++6-dbg`'LS, libhfstdc++6-4.3-dbg`'LS, libhfstdc++6-4.4-dbg`'LS, libhfstdc++6-4.5-dbg`'LS, libhfstdc++6-4.6-dbg`'LS, libhfstdc++6-4.7-dbg`'LS, libhfstdc++6-4.8-dbg`'LS, libhfstdc++6-4.9-dbg`'LS, libhfstdc++6-5-dbg`'LS, libhfstdc++6-6-dbg`'LS, libstdc++'CXX_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (debugging files)`'ifdef(`TARGET)',` (TARGET)', `') + This package contains the shared library of libstdc++ compiled with + debugging symbols. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libhfdbgcxx + +ifenabled(`libsfdbgcxx',` +Package: libsfstdc++`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: ifdef(`TARGET',`devel',`libdevel') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,sf), + libdep(stdc++CXX_SO,sf), libdevdep(stdc++`'PV-dev,), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (development files)`'ifdef(`TARGET',` (TARGET)', `') + This package contains the headers and static library files necessary for + building C++ programs which use libstdc++. + . + libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which + was included up to g++-2.95. The first version of libstdc++-v3 appeared + in g++-3.0. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl + +Package: libsfstdc++CXX_SO`'PV-dbg`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: debug +Priority: extra +Depends: BASELDEP, libdep(stdc++CXX_SO,sf), + libdevdep(stdc++`'PV-dev,), libdbgdep(gcc`'GCC_SO-dbg,sf,>=,${gcc:EpochVersion}), + ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`Provides: libsfstdc++CXX_SO-dbg-TARGET-dcv1 +',`')`'dnl +ifdef(`TARGET',`dnl',`Conflicts: libsfstdc++6-dbg`'LS, libsfstdc++6-4.3-dbg`'LS, libsfstdc++6-4.4-dbg`'LS, libsfstdc++6-4.5-dbg`'LS, libsfstdc++6-4.6-dbg`'LS, libsfstdc++6-4.7-dbg`'LS, libsfstdc++6-4.8-dbg`'LS, libsfstdc++6-4.9-dbg`'LS, libsfstdc++6-5-dbg`'LS, libhfstdc++6-6-dbg`'LS, libstdc++'CXX_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: GNU Standard C++ Library v3 (debugging files)`'ifdef(`TARGET)',` (TARGET)', `') + This package contains the shared library of libstdc++ compiled with + debugging symbols. +ifdef(`TARGET', `dnl + . + This package contains files for TARGET architecture, for use in cross-compile + environment. +')`'dnl +')`'dnl libsfdbgcxx + +ifdef(`TARGET', `', ` +Package: libstdc++`'PV-doc +Architecture: all +Section: doc +Priority: PRI(optional) +Depends: gcc`'PV-base (>= ${gcc:SoftVersion}), ${misc:Depends} +Conflicts: libstdc++5-doc, libstdc++5-3.3-doc, libstdc++6-doc, + libstdc++6-4.0-doc, libstdc++6-4.1-doc, libstdc++6-4.2-doc, libstdc++6-4.3-doc, + libstdc++6-4.4-doc, libstdc++6-4.5-doc, libstdc++6-4.6-doc, libstdc++6-4.7-doc, + libstdc++-4.8-doc, libstdc++-4.9-doc, libstdc++-5-doc, libstdc++-6-doc +Description: GNU Standard C++ Library v3 (documentation files) + This package contains documentation files for the GNU stdc++ library. + . + One set is the distribution documentation, the other set is the + source documentation including a namespace list, class hierarchy, + alphabetical list, compound list, file list, namespace members, + compound members and file members. +')`'dnl native +')`'dnl c++dev +')`'dnl c++ + +ifenabled(`ada',` +Package: gnat`'-GNAT_V`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +ifdef(`MULTIARCH', `Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Depends: BASEDEP, gcc`'PV`'TS (>= ${gcc:SoftVersion}), ${dep:libgnat}, ${dep:libcdev}, ${shlibs:Depends}, ${misc:Depends} +Suggests: gnat`'PV-doc, ada-reference-manual-2012, gnat`'-GNAT_V-sjlj +Breaks: gnat (<< 4.6.1), dh-ada-library (<< 6.0), gnat-4.6-base (= 4.6.4-2), + gnat-4.9-base (= 4.9-20140330-1) +Replaces: gnat (<< 4.6.1), dh-ada-library (<< 6.0), gnat-4.6-base (= 4.6.4-2), + gnat-4.9-base (= 4.9-20140330-1) +# Takes over symlink from gnat (<< 4.6.1): /usr/bin/gnatgcc. +# Takes over file from dh-ada-library (<< 6.0): debian_packaging.mk. +# g-base 4.6.4-2, 4.9-20140330-1 contain debian_packaging.mk by mistake. +# Newer versions of gnat and dh-ada-library will not provide these files. +Conflicts: gnat (<< 4.1), gnat-3.1, gnat-3.2, gnat-3.3, gnat-3.4, gnat-3.5, + gnat-4.0, gnat-4.1, gnat-4.2, gnat-4.3, gnat-4.4, gnat-4.6, gnat-4.7, gnat-4.8, + gnat-4.9, gnat-5`'TS, gnat-6`'TS +# These other packages will continue to provide /usr/bin/gnatmake and +# other files. +BUILT_USING`'dnl +Description: GNU Ada compiler + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + This package provides the compiler, tools and runtime library that handles + exceptions using the default zero-cost mechanism. + +ifenabled(`adasjlj',` +Package: gnat`'-GNAT_V-sjlj`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: extra +ifdef(`MULTIARCH', `Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Depends: BASEDEP, gnat`'-GNAT_V`'TS (= ${gnat:Version}), ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Ada compiler (setjump/longjump runtime library) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + This package provides an alternative runtime library that handles + exceptions using the setjump/longjump mechanism (as a static library + only). You can install it to supplement the normal compiler. +')`'dnl adasjlj + +ifenabled(`libgnat',` +Package: libgnat`'-GNAT_V`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: runtime for applications compiled with GNAT (shared library) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnat library provides runtime components needed by most + applications produced with GNAT. + . + This package contains the runtime shared library. + +Package: libgnat`'-GNAT_V-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: extra +Depends: BASELDEP, libgnat`'-GNAT_V`'LS (= ${gnat:Version}), ${misc:Depends} +BUILT_USING`'dnl +Description: runtime for applications compiled with GNAT (debugging symbols) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnat library provides runtime components needed by most + applications produced with GNAT. + . + This package contains the debugging symbols. + +ifdef(`TARGET',`',` +Package: libgnatvsn`'GNAT_V-dev`'LS +Section: libdevel +Architecture: any +Priority: extra +Depends: BASELDEP, gnat`'PV`'TS (= ${gnat:Version}), + libgnatvsn`'GNAT_V`'LS (= ${gnat:Version}), ${misc:Depends} +Conflicts: libgnatvsn-dev (<< `'GNAT_V), + libgnatvsn4.1-dev, libgnatvsn4.3-dev, libgnatvsn4.4-dev, + libgnatvsn4.5-dev, libgnatvsn4.6-dev, libgnatvsn4.9-dev, + libgnatvsn5-dev`'LS, libgnatvsn6-dev`'LS, +BUILT_USING`'dnl +Description: GNU Ada compiler selected components (development files) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnatvsn library exports selected GNAT components for use in other + packages, most notably ASIS tools. It is licensed under the GNAT-Modified + GPL, allowing to link proprietary programs with it. + . + This package contains the development files and static library. + +Package: libgnatvsn`'GNAT_V`'LS +Architecture: any +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: PRI(optional) +Section: libs +Depends: BASELDEP, libgnat`'-GNAT_V`'LS (= ${gnat:Version}), + ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU Ada compiler selected components (shared library) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnatvsn library exports selected GNAT components for use in other + packages, most notably ASIS tools. It is licensed under the GNAT-Modified + GPL, allowing to link proprietary programs with it. + . + This package contains the runtime shared library. + +Package: libgnatvsn`'GNAT_V-dbg`'LS +Architecture: any +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +')`'dnl +Priority: extra +Section: debug +Depends: BASELDEP, libgnatvsn`'GNAT_V`'LS (= ${gnat:Version}), ${misc:Depends} +Suggests: gnat +BUILT_USING`'dnl +Description: GNU Ada compiler selected components (debugging symbols) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnatvsn library exports selected GNAT components for use in other + packages, most notably ASIS tools. It is licensed under the GNAT-Modified + GPL, allowing to link proprietary programs with it. + . + This package contains the debugging symbols. +')`'dnl native +')`'dnl libgnat + +ifenabled(`lib64gnat',` +Package: lib64gnat`'-GNAT_V +Section: libs +Architecture: biarch64_archs +Priority: PRI(optional) +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: runtime for applications compiled with GNAT (64 bits shared library) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnat library provides runtime components needed by most + applications produced with GNAT. + . + This package contains the runtime shared library for 64 bits architectures. +')`'dnl libgnat + +ifenabled(`gfdldoc',` +Package: gnat`'PV-doc +Architecture: all +Section: doc +Priority: PRI(optional) +Depends: dpkg (>= 1.15.4) | install-info, ${misc:Depends} +Suggests: gnat`'PV +Conflicts: gnat-4.1-doc, gnat-4.2-doc, + gnat-4.3-doc, gnat-4.4-doc, + gnat-4.6-doc, gnat-4.9-doc, + gnat-5-doc, gnat-6-doc, +BUILT_USING`'dnl +Description: GNU Ada compiler (documentation) + GNAT is a compiler for the Ada programming language. It produces optimized + code on platforms supported by the GNU Compiler Collection (GCC). + . + The libgnat library provides runtime components needed by most + applications produced with GNAT. + . + This package contains the documentation in info `format'. +')`'dnl gfdldoc +')`'dnl ada + +ifenabled(`d ',` +Package: gdc`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: SOFTBASEDEP, g++`'PV`'TS (>= ${gcc:SoftVersion}), ${dep:gdccross}, ${dep:phobosdev}, ${shlibs:Depends}, ${misc:Depends} +Provides: gdc, d-compiler, d-v2-compiler +Replaces: gdc (<< 4.4.6-5) +BUILT_USING`'dnl +Description: GNU D compiler (version 2)`'ifdef(`TARGET)',` (cross compiler for TARGET architecture)', `') + This is the GNU D compiler, which compiles D on platforms supported by gcc. + It uses the gcc backend to generate optimised code. + . + This compiler supports D language version 2. + +ifenabled(`multilib',` +Package: gdc`'PV-multilib`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: SOFTBASEDEP, gdc`'PV`'TS (= ${gcc:Version}), gcc`'PV-multilib`'TS (= ${gcc:Version}), ${dep:libphobosbiarchdev}${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU D compiler (version 2, multilib support)`'ifdef(`TARGET)',` (cross compiler for TARGET architecture)', `') + This is the GNU D compiler, which compiles D on platforms supported by gcc. + It uses the gcc backend to generate optimised code. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib + +ifenabled(`libphobos',` +Package: libgphobos`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`libphobos_archs') +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libgphobos`'PHOBOS_V`'LS (>= ${gdc:Version}), + zlib1g-dev, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Phobos D standard library + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libgphobos`'PHOBOS_V`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`libphobos_archs') +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: libgphobos68`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libgphobos`'PHOBOS_V-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`libphobos_archs') +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Priority: extra +Depends: BASELDEP, libgphobos`'PHOBOS_V`'LS (= ${gdc:Version}), ${misc:Depends} +Replaces: libgphobos68-dbg`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib64gphobos`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, lib64gphobos`'PHOBOS_V`'LS (>= ${gdc:Version}), + libdevdep(gcc`'PV-dev,64), 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. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib64gphobos`'PHOBOS_V`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: lib64gphobos68`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib64gphobos`'PHOBOS_V-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: extra +Depends: BASELDEP, lib64gphobos`'PHOBOS_V`'LS (= ${gdc:Version}), ${misc:Depends} +Replaces: lib64gphobos68-dbg`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib32gphobos`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, lib32gphobos`'PHOBOS_V`'LS (>= ${gdc:Version}), + libdevdep(gcc`'PV-dev,32), lib32z1-dev, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Phobos D standard library (32bit development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib32gphobos`'PHOBOS_V`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: lib32gphobos68`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: lib32gphobos`'PHOBOS_V-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: extra +Depends: BASELDEP, lib32gphobos`'PHOBOS_V`'LS (= ${gdc:Version}), ${misc:Depends} +Replaces: lib32gphobos68-dbg`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +ifenabled(`libn32phobos',` +Package: libn32gphobos`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libn32gphobos`'PHOBOS_V`'LS (>= ${gdc:Version}), + libdevdep(gcc`'PV-dev,n32), 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. + . + For more information check http://www.dlang.org/phobos/ + +Package: libn32gphobos`'PHOBOS_V`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libn32gphobos`'PHOBOS_V-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: extra +Depends: BASELDEP, libn32gphobos`'PHOBOS_V`'LS (= ${gdc:Version}), ${misc:Depends} +BUILT_USING`'dnl +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ +')`'dnl libn32phobos + +ifenabled(`libx32phobos',` +Package: libx32gphobos`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libx32gphobos`'PHOBOS_V`'LS (>= ${gdc:Version}), + libdevdep(gcc`'PV-dev,x32), ${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. + . + For more information check http://www.dlang.org/phobos/ + +Package: libx32gphobos`'PHOBOS_V`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: libx32gphobos68`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libx32gphobos`'PHOBOS_V-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: extra +Depends: BASELDEP, libx32gphobos`'PHOBOS_V`'LS (= ${gdc:Version}), ${misc:Depends} +Replaces: libx32gphobos68-dbg`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ +')`'dnl libx32phobos + +ifenabled(`armml',` +Package: libhfgphobos`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libhfgphobos`'PHOBOS_V`'LS (>= ${gdc:Version}), + libdevdep(gcc`'PV-dev,hf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Phobos D standard library (hard float ABI development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libhfgphobos`'PHOBOS_V`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: libhfgphobos68`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libhfgphobos`'PHOBOS_V-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: extra +Depends: BASELDEP, libhfgphobos`'PHOBOS_V`'LS (= ${gdc:Version}), ${misc:Depends} +Replaces: libhfgphobos68-dbg`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libsfgphobos`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libsfgphobos`'PHOBOS_V`'LS (>= ${gdc:Version}), + libdevdep(gcc`'PV-dev,sf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Phobos D standard library (soft float ABI development files) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libsfgphobos`'PHOBOS_V`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +Replaces: libsfgphobos68`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (runtime library) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ + +Package: libsfgphobos`'PHOBOS_V-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: extra +Depends: BASELDEP, libsfgphobos`'PHOBOS_V`'LS (= ${gdc:Version}), ${misc:Depends} +Replaces: libsfgphobos68-dbg`'LS +BUILT_USING`'dnl +Description: Phobos D standard library (debug symbols) + This is the Phobos standard library that comes with the D2 compiler. + . + For more information check http://www.dlang.org/phobos/ +')`'dnl armml +')`'dnl libphobos +')`'dnl d + +ifenabled(`brig',` +ifenabled(`brigdev',` +Package: gccbrig`'PV`'TS +Architecture: any +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, gcc`'PV`'TS (= ${gcc:Version}), ${dep:libcdev}, + hsail-tools, + ${shlibs:Depends}, libidevdep(hsail-rt`'PV-dev,,=), ${misc:Depends} +Suggests: ${gccbrig:multilib}, + libdbgdep(hsail-rt`'HSAIL_SO-dbg,) +Provides: brig-compiler`'TS +BUILT_USING`'dnl +Description: GNU BRIG (HSA IL) frontend + This is the GNU BRIG (HSA IL) frontend. + The consumed format is a binary representation. The textual HSAIL + can be compiled to it with a separate assembler. + +ifenabled(`multiXXXlib',` +Package: gccbrig`'PV-multilib`'TS +Architecture: ifdef(`TARGET',`any',MULTILIB_ARCHS) +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Section: devel +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, gccbrig`'PV`'TS (= ${gcc:Version}), + gcc`'PV-multilib`'TS (= ${gcc:Version}), ${dep:libhsailrtbiarchdev}, + ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GNU BRIG (HSA IL) frontend (multilib support)`'ifdef(`TARGET)',` (cross compiler for TARGET architecture)', `') + This is the GNU BRIG (HSA IL) frontend. + The consumed format is a binary representation. The textual HSAIL + can be compiled to it with a separate assembler. + . + This is a dependency package, depending on development packages + for the non-default multilib architecture(s). +')`'dnl multilib + +Package: libhsail-rt`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,), libdep(hsail-rt`'HSAIL_SO,), + ${shlibs:Depends}, ${misc:Depends} +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +BUILT_USING`'dnl +Description: HSAIL runtime library (development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +ifenabled(`lib64hsail',` +Package: lib64hsail-rt`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,64), libdep(hsail-rt`'HSAIL_SO,64), + ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (64bit development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl lib64hsail + +ifenabled(`lib32hsail',` +Package: lib32hsail-rt`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,32), libdep(hsail-rt`'HSAIL_SO,32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (32bit development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl lib32hsail + +ifenabled(`libn32hsail',` +Package: libn32hsail-rt`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,n32), libdep(hsail-rt`'HSAIL_SO,n32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (n32 development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libn32hsail + +ifenabled(`x32dev',` +ifenabled(`libx32hsail',` +Package: libx32hsail-rt`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,x32), libdep(hsail-rt`'HSAIL_SO,x32), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (x32 development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libx32hsail +')`'dnl x32dev + +ifenabled(`armml',` +ifenabled(`libhfhsail',` +Package: libhfhsail-rt`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,hf), libdep(hsail-rt`'HSAIL_SO,hf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (hard float ABI development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libhfhsail +')`'dnl armml + +ifenabled(`armml',` +ifenabled(`libsfhsail',` +Package: libsfhsail-rt`'PV-dev`'LS +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Section: libdevel +Priority: ifdef(`TARGET',`extra',PRI(optional)) +Depends: BASELDEP, libdevdep(gcc`'PV-dev,sf), libdep(hsail-rt`'HSAIL_SO,sf), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (soft float development files) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libsfhsail +')`'dnl armml +')`'dnl hsailrtdev + +ifenabled(`libhsail',` +Package: libhsail-rt`'HSAIL_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libhsail-rt'HSAIL_SO`-armel [armel], libhsail-rt'HSAIL_SO`-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +Pre-Depends: ${misc:Pre-Depends} +ifelse(HSAIL_SO,`2',`Breaks: ${multiarch:breaks} +',`')')`'dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: libhsail-rt`'HSAIL_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`any') +ifdef(`TARGET',`',`Provides: libhsail-rt'HSAIL_SO`-dbg-armel [armel], libhsail-rt'HSAIL_SO`-dbg-armhf [armhf] +')`'dnl +ifdef(`MULTIARCH', `Multi-Arch: same +')`'dnl +Priority: extra +Depends: BASELDEP, libdep(hsail-rt`'HSAIL_SO,,=), libdbgdep(gcc`'GCC_SO-dbg,,>=,${libgcc:Version}), ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (debug symbols) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libhsail + +ifenabled(`lib64hsail',` +Package: lib64hsail-rt`'HSAIL_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (64bit) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: lib64hsail-rt`'HSAIL_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch64_archs') +Priority: extra +Depends: BASELDEP, libdep(hsail-rt`'HSAIL_SO,64,=), libdbgdep(gcc`'GCC_SO-dbg,64,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (64 bit debug symbols) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl lib64hsail + +ifenabled(`lib32hsail',` +Package: lib32hsail-rt`'HSAIL_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +Conflicts: ${confl:lib32} +BUILT_USING`'dnl +Description: HSAIL runtime library (32bit) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: lib32hsail-rt`'HSAIL_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarch32_archs') +Priority: extra +Depends: BASELDEP, libdep(hsail-rt`'HSAIL_SO,32,=), libdbgdep(gcc`'GCC_SO-dbg,32,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (32 bit debug symbols) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl lib32hsail + +ifenabled(`libn32hsail',` +Package: libn32hsail-rt`'HSAIL_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (n32) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: libn32hsail-rt`'HSAIL_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchn32_archs') +Priority: extra +Depends: BASELDEP, libdep(hsail-rt`'HSAIL_SO,n32,=), libdbgdep(gcc`'GCC_SO-dbg,n32,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (n32 debug symbols) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libn32hsail + +ifenabled(`libx32hsail',` +Package: libx32hsail-rt`'HSAIL_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (x32) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: libx32hsail-rt`'HSAIL_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchx32_archs') +Priority: extra +Depends: BASELDEP, libdep(hsail-rt`'HSAIL_SO,x32,=), libdbgdep(gcc`'GCC_SO-dbg,x32,>=,${gcc:EpochVersion}), ${misc:Depends} +BUILT_USING`'dnl +Description: HSAIL runtime library (x32 debug symbols) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libx32hsail + +ifenabled(`libhfhsail',` +Package: libhfhsail-rt`'HSAIL_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libhsail-rt'HSAIL_SO`-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: HSAIL runtime library (hard float ABI) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: libhfhsail-rt`'HSAIL_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchhf_archs') +Priority: extra +Depends: BASELDEP, libdep(hsail-rt`'HSAIL_SO,hf,=), libdbgdep(gcc`'GCC_SO-dbg,hf,>=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libhsail-rt'HSAIL_SO`-dbg-armhf [biarchhf_archs]') +BUILT_USING`'dnl +Description: HSAIL runtime library (hard float ABI debug symbols) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libhfhsailrt + +ifenabled(`libsfhsail',` +Package: libsfhsail-rt`'HSAIL_SO`'LS +Section: ifdef(`TARGET',`devel',`libs') +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASELDEP, ${dep:libcbiarch}, ${shlibs:Depends}, ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libhsail-rt'HSAIL_SO`-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: HSAIL runtime library (soft float ABI) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. + +Package: libsfhsail-rt`'HSAIL_SO-dbg`'LS +Section: debug +Architecture: ifdef(`TARGET',`CROSS_ARCH',`biarchsf_archs') +Priority: extra +Depends: BASELDEP, libdep(hsail-rt`'HSAIL_SO,sf,=), libdbgdep(gcc`'GCC_SO-dbg,sf,>=,${gcc:EpochVersion}), ${misc:Depends} +ifdef(`TARGET',`dnl',`Conflicts: libhsail-rt'HSAIL_SO`-dbg-armel [biarchsf_archs]') +BUILT_USING`'dnl +Description: HSAIL runtime library (soft float ABI debug symbols) + This library implements the agent-side runtime functionality required + to run HSA finalized programs produced by the BRIG frontend. + . + The library contains both the code required to run kernels on the agent + and also functions implementing more complex HSAIL instructions. +')`'dnl libsfhsailrt +')`'dnl brig + +ifdef(`TARGET',`',`dnl +ifenabled(`libs',` +#Package: gcc`'PV-soft-float +#Architecture: arm armel armhf +#Priority: PRI(optional) +#Depends: BASEDEP, depifenabled(`cdev',`gcc`'PV (= ${gcc:Version}),') ${shlibs:Depends}, ${misc:Depends} +#Conflicts: gcc-4.4-soft-float, gcc-4.5-soft-float, gcc-4.6-soft-float +#BUILT_USING`'dnl +#Description: GCC soft-floating-point gcc libraries (ARM) +# These are versions of basic static libraries such as libgcc.a compiled +# with the -msoft-float option, for CPUs without a floating-point unit. +')`'dnl commonlibs +')`'dnl + +ifenabled(`fixincl',` +Package: fixincludes +Architecture: any +Priority: PRI(optional) +Depends: BASEDEP, gcc`'PV (= ${gcc:Version}), ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: Fix non-ANSI header files + FixIncludes was created to fix non-ANSI system header files. Many + system manufacturers supply proprietary headers that are not ANSI compliant. + The GNU compilers cannot compile non-ANSI headers. Consequently, the + FixIncludes shell script was written to fix the header files. + . + Not all packages with header files are installed on the system, when the + package is built, so we make fixincludes available at build time of other + packages, such that checking tools like lintian can make use of it. +')`'dnl fixincl + +ifenabled(`cdev',` +ifdef(`TARGET', `', ` +ifenabled(`gfdldoc',` +Package: gcc`'PV-doc +Architecture: all +Section: doc +Priority: PRI(optional) +Depends: gcc`'PV-base (>= ${gcc:SoftVersion}), dpkg (>= 1.15.4) | install-info, ${misc:Depends} +Conflicts: gcc-docs (<< 2.95.2) +Replaces: gcc (<=2.7.2.3-4.3), gcc-docs (<< 2.95.2) +Description: Documentation for the GNU compilers (gcc, gobjc, g++) + Documentation for the GNU compilers in info `format'. +')`'dnl gfdldoc +')`'dnl native +')`'dnl cdev + +ifenabled(`olnvptx',` +Package: gcc`'PV-offload-nvptx +Architecture: amd64 +ifdef(`TARGET',`Multi-Arch: foreign +')dnl +Priority: ifdef(`TARGET',`extra',`PRI(optional)') +Depends: BASEDEP, gcc`'PV (= ${gcc:Version}), ${dep:libcdev}, + nvptx-tools, libgomp-plugin-nvptx`'GOMP_SO (>= ${gcc:Version}), + ${shlibs:Depends}, ${misc:Depends} +BUILT_USING`'dnl +Description: GCC offloading compiler to NVPTX + The package provides offloading support for NVidia PTX. OpenMP and OpenACC + programs linked with -fopenmp will by default add PTX code into the binaries, + which can be offloaded to NVidia PTX capable devices if available. + +ifenabled(`libgompnvptx',` +Package: libgomp-plugin-nvptx`'GOMP_SO +Architecture: amd64 +Multi-Arch: same +Section: libs +Depends: BASEDEP, libgomp`'GOMP_SO`'LS, ${shlibs:Depends}, ${misc:Depends} +Suggests: libcuda1 +BUILT_USING`'dnl +Description: GCC OpenMP v4.5 plugin for offloading to NVPTX + This package contains libgomp plugin for offloading to NVidia + PTX. The plugin needs libcuda.so.1 shared library that has to be + installed separately. +')`'dnl libgompnvptx +')`'dnl olnvptx + +ifdef(`TARGET',`',`dnl +ifenabled(`libnof',` +#Package: gcc`'PV-nof +#Architecture: powerpc +#Priority: PRI(optional) +#Depends: BASEDEP, ${shlibs:Depends}ifenabled(`cdev',`, gcc`'PV (= ${gcc:Version})'), ${misc:Depends} +#Conflicts: gcc-3.2-nof +#BUILT_USING`'dnl +#Description: GCC no-floating-point gcc libraries (powerpc) +# These are versions of basic static libraries such as libgcc.a compiled +# with the -msoft-float option, for CPUs without a floating-point unit. +')`'dnl libnof +')`'dnl + +ifenabled(`source',` +Package: gcc`'PV-source +Architecture: all +Priority: PRI(optional) +Depends: make, autoconf2.64, quilt, patchutils, sharutils, gawk, ${misc:Depends} +Description: Source of the GNU Compiler Collection + This package contains the sources and patches which are needed to + build the GNU Compiler Collection (GCC). +')`'dnl source +dnl +')`'dnl gcc-X.Y +dnl last line in file diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..c2fa12c --- /dev/null +++ b/debian/copyright @@ -0,0 +1,1404 @@ +This is the Debian GNU/Linux prepackaged version of the GNU compiler +collection, containing Ada, C, C++, Fortran 95, Objective-C, +Objective-C++, and Treelang compilers, documentation, and support +libraries. In addition, Debian provides the gdc compiler, either in +the same source package, or built from a separate same source package. +Packaging is done by the Debian GCC Maintainers +, with sources obtained from: + + ftp://gcc.gnu.org/pub/gcc/releases/ (for full releases) + svn://gcc.gnu.org/svn/gcc/ (for prereleases) + http://bitbucket.org/goshawk/gdc (for D) + https://github.com/MentorEmbedded/nvptx-newlib/ (for newlib-nvptx) + +The current gcc-7 source package is taken from the SVN gcc-7-branch. + +Changes: See changelog.Debian.gz + +Debian splits the GNU Compiler Collection into packages for each language, +library, and documentation as follows: + +Language Compiler package Library package Documentation +--------------------------------------------------------------------------- +Ada gnat-7 libgnat-7 gnat-7-doc +BRIG gccbrig-7 libhsail-rt0 +C gcc-7 gcc-7-doc +C++ g++-7 libstdc++6 libstdc++6-7-doc +D gdc-7 +Fortran 95 gfortran-7 libgfortran3 gfortran-7-doc +Go gccgo-7 libgo0 +Objective C gobjc-7 libobjc2 +Objective C++ gobjc++-7 + +For some language run-time libraries, Debian provides source files, +development files, debugging symbols and libraries containing position- +independent code in separate packages: + +Language Sources Development Debugging Position-Independent +------------------------------------------------------------------------------ +C++ libstdc++6-7-dbg libstdc++6-7-pic +D libphobos-7-dev + +Additional packages include: + +All languages: +libgcc1, libgcc2, libgcc4 GCC intrinsics (platform-dependent) +gcc-7-base Base files common to all compilers +gcc-7-soft-float Software floating point (ARM only) +gcc-7-source The sources with patches + +Ada: +libgnatvsn-dev, libgnatvsn7 GNAT version library + +C: +cpp-7, cpp-7-doc GNU C Preprocessor +libssp0-dev, libssp0 GCC stack smashing protection library +libquadmath0 Math routines for the __float128 type +fixincludes Fix non-ANSI header files + +C, C++ and Fortran 95: +libgomp1-dev, libgomp1 GCC OpenMP (GOMP) support library +libitm1-dev, libitm1 GNU Transactional Memory Library + +Biarch support: On some 64-bit platforms which can also run 32-bit code, +Debian provides additional packages containing 32-bit versions of some +libraries. These packages have names beginning with 'lib32' instead of +'lib', for example lib32stdc++6. Similarly, on some 32-bit platforms which +can also run 64-bit code, Debian provides additional packages with names +beginning with 'lib64' instead of 'lib'. These packages contain 64-bit +versions of the libraries. (At this time, not all platforms and not all +libraries support biarch.) The license terms for these lib32 or lib64 +packages are identical to the ones for the lib packages. + + +COPYRIGHT STATEMENTS AND LICENSING TERMS + + +GCC is Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, +1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +Files that have exception clauses are licensed under the terms of the +GNU General Public License; either version 3, or (at your option) any +later version. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', version 3 of this +license in `/usr/share/common-licenses/GPL-3'. + +The following runtime libraries are licensed under the terms of the +GNU General Public License (v3 or later) with version 3.1 of the GCC +Runtime Library Exception (included in this file): + + - libgcc (libgcc/, gcc/libgcc2.[ch], gcc/unwind*, gcc/gthr*, + gcc/coretypes.h, gcc/crtstuff.c, gcc/defaults.h, gcc/dwarf2.h, + gcc/emults.c, gcc/gbl-ctors.h, gcc/gcov-io.h, gcc/libgcov.c, + gcc/tsystem.h, gcc/typeclass.h). + - libatomic + - libdecnumber + - libgomp + - libitm + - libssp + - libstdc++-v3 + - libobjc + - libgfortran + - The libgnat-7 Ada support library and libgnatvsn library. + - Various config files in gcc/config/ used in runtime libraries. + - libvtv + +The libbacktrace library is licensed under the following terms: + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + (1) Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + (2) Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + (3) The name of the author may not be used to + endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + +The libsanitizer libraries (libasan, liblsan, libtsan, libubsan) are +licensed under the following terms: + +Copyright (c) 2009-2014 by the LLVM contributors. + +All rights reserved. + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +The libffi library is licensed under the following terms: + + libffi - Copyright (c) 1996-2003 Red Hat, Inc. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + ``Software''), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + +The documentation is licensed under the GNU Free Documentation License (v1.2). +On Debian GNU/Linux systems, the complete text of this license is in +`/usr/share/common-licenses/GFDL-1.2'. + + +GCC RUNTIME LIBRARY EXCEPTION + +Version 3.1, 31 March 2009 + +Copyright (C) 2009 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +This GCC Runtime Library Exception ("Exception") is an additional +permission under section 7 of the GNU General Public License, version +3 ("GPLv3"). It applies to a given file (the "Runtime Library") that +bears a notice placed by the copyright holder of the file stating that +the file is governed by GPLv3 along with this Exception. + +When you use GCC to compile a program, GCC may combine portions of +certain GCC header files and runtime libraries with the compiled +program. The purpose of this Exception is to allow compilation of +non-GPL (including proprietary) programs to use, in this way, the +header files and runtime libraries covered by this Exception. + +0. Definitions. + +A file is an "Independent Module" if it either requires the Runtime +Library for execution after a Compilation Process, or makes use of an +interface provided by the Runtime Library, but is not otherwise based +on the Runtime Library. + +"GCC" means a version of the GNU Compiler Collection, with or without +modifications, governed by version 3 (or a specified later version) of +the GNU General Public License (GPL) with the option of using any +subsequent versions published by the FSF. + +"GPL-compatible Software" is software whose conditions of propagation, +modification and use would permit combination with GCC in accord with +the license of GCC. + +"Target Code" refers to output from any compiler for a real or virtual +target processor architecture, in executable form or suitable for +input to an assembler, loader, linker and/or execution +phase. Notwithstanding that, Target Code does not include data in any +format that is used as a compiler intermediate representation, or used +for producing a compiler intermediate representation. + +The "Compilation Process" transforms code entirely represented in +non-intermediate languages designed for human-written code, and/or in +Java Virtual Machine byte code, into Target Code. Thus, for example, +use of source code generators and preprocessors need not be considered +part of the Compilation Process, since the Compilation Process can be +understood as starting with the output of the generators or +preprocessors. + +A Compilation Process is "Eligible" if it is done using GCC, alone or +with other GPL-compatible software, or if it is done without using any +work based on GCC. For example, using non-GPL-compatible Software to +optimize any GCC intermediate representations would not qualify as an +Eligible Compilation Process. + +1. Grant of Additional Permission. + +You have permission to propagate a work of Target Code formed by +combining the Runtime Library with Independent Modules, even if such +propagation would otherwise violate the terms of GPLv3, provided that +all Target Code was generated by Eligible Compilation Processes. You +may then convey such a combination under terms of your choice, +consistent with the licensing of the Independent Modules. + +2. No Weakening of GCC Copyleft. + +The availability of this Exception does not imply any general +presumption that third-party software is unaffected by the copyleft +requirements of the license of GCC. + + +libquadmath/*.[hc]: + + Copyright (C) 2010 Free Software Foundation, Inc. + Written by Francois-Xavier Coudert + Written by Tobias Burnus + +This file is part of the libiberty library. +Libiberty is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +Libiberty is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +libquadmath/math: + +atanq.c, expm1q.c, j0q.c, j1q.c, log1pq.c, logq.c: + Copyright 2001 by Stephen L. Moshier + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +coshq.c, erfq.c, jnq.c, lgammaq.c, powq.c, roundq.c: + Changes for 128-bit __float128 are + Copyright (C) 2001 Stephen L. Moshier + and are incorporated herein by permission of the author. The author + reserves the right to distribute this material elsewhere under different + copying permissions. These modifications are distributed here under + the following terms: + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +ldexpq.c: + * Conversion to long double by Ulrich Drepper, + * Cygnus Support, drepper@cygnus.com. + +cosq_kernel.c, expq.c, sincos_table.c, sincosq.c, sincosq_kernel.c, +sinq_kernel.c, truncq.c: + Copyright (C) 1997, 1999 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +isinfq.c: + * Written by J.T. Conklin . + * Change for long double by Jakub Jelinek + * Public domain. + +llroundq.c, lroundq.c, tgammaq.c: + Copyright (C) 1997, 1999, 2002, 2004 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997 and + Jakub Jelinek , 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +log10q.c: + Cephes Math Library Release 2.2: January, 1991 + Copyright 1984, 1991 by Stephen L. Moshier + Adapted for glibc November, 2001 + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +remaining files: + + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + + +gcc/go/gofrontend, libgo: + +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +libcilkrts, libmpx: + Copyright (C) 2009-2014, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY + WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + +D: +gdc-7 GNU D Compiler +libphobos-7-dev D standard runtime library + +The D source package is made up of the following components. + +The D front-end for GCC: + - d/* + +Copyright (C) 2004-2007 David Friedman +Modified by Vincenzo Ampolo, Michael Parrot, Iain Buclaw, (C) 2009, 2010 + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', version 2 of this +license in `/usr/share/common-licenses/GPL-2'. + + +The DMD Compiler implementation of the D programming language: + - d/dmd/* + +Copyright (c) 1999-2010 by Digital Mars +All Rights Reserved +written by Walter Bright +http://www.digitalmars.com +License for redistribution is by either the Artistic License or +the GNU General Public License (v1). + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', the Artistic +license in `/usr/share/common-licenses/Artistic'. + + +The Zlib data compression library: + - d/phobos/etc/c/zlib/* + + (C) 1995-2004 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + +The Phobos standard runtime library: + - d/phobos/* + +Unless otherwise marked within the file, each file in the source +is under the following licenses: + +Copyright (C) 2004-2005 by Digital Mars, www.digitalmars.com +Written by Walter Bright + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, in both source and binary form, subject to the following +restrictions: + + o The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + o Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + o This notice may not be removed or altered from any source + distribution. + +By plainly marking modifications, something along the lines of adding to each +file that has been changed a "Modified by Foo Bar" line +underneath the "Written by" line would be adequate. + +The libhsail-rt library is licensed under the following terms: + + Copyright (C) 2015-2017 Free Software Foundation, Inc. + Contributed by Pekka Jaaskelainen + for General Processor Tech. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. + +libhsail-rt/rt/fp16.c is licensed under the following terms: + + Copyright (C) 2008-2017 Free Software Foundation, Inc. + Contributed by CodeSourcery. + + This file is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 3, or (at your option) any + later version. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . + +newlib-nvptx-20yymmdd/: + +Upstream Authors: +newlib@sources.redhat.com +Jeff Johnston +Tom Fitzsimmons + +The newlib subdirectory is a collection of software from several sources. +Each file may have its own copyright/license that is embedded in the source +file. + +This list documents those licenses which are more restrictive than +a BSD-like license or require the copyright notice +to be duplicated in documentation and/or other materials associated with +the distribution. Certain licenses documented here only apply to +specific targets. Certain clauses only apply if you are building the +code as part of your binary. + +Note that this list may omit certain licenses that +only pertain to the copying/modifying of the individual source code. +If you are distributing the source code, then you do not need to +worry about these omitted licenses, so long as you do not modify the +copyright information already in place. + +Parts of this work are licensed under the terms of the GNU General +Public License. On Debian systems, the complete text of this license +can be found in /usr/share/common-licenses/GPL. + +Parts of this work are licensed under the terms of the GNU Library +General Public License. On Debian systems, the complete text of this +license be found in /usr/share/common-licenses/LGPL. + +(1) University of California, Berkeley + +[1a] + +Copyright (c) 1990 The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms are permitted +provided that the above copyright notice and this paragraph are +duplicated in all such forms and that any documentation, +and other materials related to such distribution and use +acknowledge that the software was developed +by the University of California, Berkeley. The name of the +University may not be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +[1b] + +Copyright (c) 1990 The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms are permitted +provided that the above copyright notice and this paragraph are +duplicated in all such forms and that any documentation, +advertising materials, and other materials related to such +distribution and use acknowledge that the software was developed +by the University of California, Berkeley. The name of the +University may not be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +[1c] + +Copyright (c) 1981, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 +The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. +4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1d] + +Copyright (c) 1988, 1990, 1993 Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1e] + +Copyright (c) 1982, 1986, 1989, 1991, 1993, 1994 +The Regents of the University of California. All rights reserved. +(c) UNIX System Laboratories, Inc. +All or some portions of this file are derived from material licensed +to the University of California by American Telephone and Telegraph +Co. or Unix System Laboratories, Inc. and are reproduced herein with +the permission of UNIX System Laboratories, Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. +4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1f] + +Copyright (c) 1987, 1988, 2000 Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms are permitted +provided that: (1) source distributions retain this entire copyright +notice and comment, and (2) distributions including binaries display +the following acknowledgement: ``This product includes software +developed by the University of California, Berkeley and its contributors'' +in the documentation or other materials provided with the distribution +and in all advertising materials mentioning features or use of this +software. Neither the name of the University nor the names of its +contributors may be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +------------------------------------------------------------- + Please note that in some of the above alternate licenses, there is a + statement regarding that acknowledgement must be made in any + advertising materials for products using the code. This restriction + no longer applies due to the following license change: + + ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change + + In some cases the defunct clause has been removed in modified newlib code and + in some cases, the clause has been left as-is. +------------------------------------------------------------- + +(2) Cygwin (cygwin targets only) + +Copyright 2001 Red Hat, Inc. + +This software is a copyrighted work licensed under the terms of the +Cygwin license. Please consult the file "CYGWIN_LICENSE" for +details. + +(3) David M. Gay at AT&T + +The author of this software is David M. Gay. + +Copyright (c) 1991 by AT&T. + +Permission to use, copy, modify, and distribute this software for any +purpose without fee is hereby granted, provided that this entire notice +is included in all copies of any software which is or includes a copy +or modification of this software and in all copies of the supporting +documentation for such software. + +THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY +REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY +OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + +(4) Advanced Micro Devices + +Copyright 1989, 1990 Advanced Micro Devices, Inc. + +This software is the property of Advanced Micro Devices, Inc (AMD) which +specifically grants the user the right to modify, use and distribute this +software provided this notice is not removed or altered. All other rights +are reserved by AMD. + +AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +USE OF THIS SOFTWARE. + +So that all may benefit from your experience, please report any problems +or suggestions about this software to the 29K Technical Support Center at +800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. + +Advanced Micro Devices, Inc. +29K Support Products +Mail Stop 573 +5900 E. Ben White Blvd. +Austin, TX 78741 +800-292-9263 + +(5) C.W. Sandmann + +Copyright (C) 1993 C.W. Sandmann + +This file may be freely distributed as long as the author's name remains. + +(6) Eric Backus + +(C) Copyright 1992 Eric Backus + +This software may be used freely so long as this copyright notice is +left intact. There is no warrantee on this software. + +(7) Sun Microsystems + +Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunPro, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + +(8) Hewlett Packard + +(c) Copyright 1986 HEWLETT-PACKARD COMPANY + +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: + permission to use, copy, modify, and distribute this file +for any purpose is hereby granted without fee, provided that +the above copyright notice and this notice appears in all +copies, and that the name of Hewlett-Packard Company not be +used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. +Hewlett-Packard Company makes no representations about the +suitability of this software for any purpose. + +(9) Hans-Peter Nilsson + +Copyright (C) 2001 Hans-Peter Nilsson + +Permission to use, copy, modify, and distribute this software is +freely granted, provided that the above copyright notice, this notice +and the following disclaimer are preserved with no changes. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. + +(10) Stephane Carrez (m68hc11-elf/m68hc12-elf targets only) + +Copyright (C) 1999, 2000, 2001, 2002 Stephane Carrez (stcarrez@nerim.fr) + +The authors hereby grant permission to use, copy, modify, distribute, +and license this software and its documentation for any purpose, provided +that existing copyright notices are retained in all copies and that this +notice is included verbatim in any distributions. No written agreement, +license, or royalty fee is required for any of the authorized uses. +Modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided that +the new terms are clearly indicated on the first page of each file where +they apply. + +(11) Christopher G. Demetriou + +Copyright (c) 2001 Christopher G. Demetriou +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(12) SuperH, Inc. + +Copyright 2002 SuperH, Inc. All rights reserved + +This software is the property of SuperH, Inc (SuperH) which specifically +grants the user the right to modify, use and distribute this software +provided this notice is not removed or altered. All other rights are +reserved by SuperH. + +SUPERH MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO +THIS SOFTWARE. IN NO EVENT SHALL SUPERH BE LIABLE FOR INDIRECT, SPECIAL, +INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH OR ARISING FROM +THE FURNISHING, PERFORMANCE, OR USE OF THIS SOFTWARE. + +So that all may benefit from your experience, please report any problems +or suggestions about this software to the SuperH Support Center via +e-mail at softwaresupport@superh.com . + +SuperH, Inc. +405 River Oaks Parkway +San Jose +CA 95134 +USA + +(13) Royal Institute of Technology + +Copyright (c) 1999 Kungliga Tekniska Hgskolan +(Royal Institute of Technology, Stockholm, Sweden). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of KTH nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY KTH AND ITS CONTRIBUTORS ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KTH OR ITS CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(14) Alexey Zelkin + +Copyright (c) 2000, 2001 Alexey Zelkin +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(15) Andrey A. Chernov + +Copyright (C) 1997 by Andrey A. Chernov, Moscow, Russia. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(16) FreeBSD + +Copyright (c) 1997-2002 FreeBSD Project. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(17) S. L. Moshier + +Author: S. L. Moshier. + +Copyright (c) 1984,2000 S.L. Moshier + +Permission to use, copy, modify, and distribute this software for any +purpose without fee is hereby granted, provided that this entire notice +is included in all copies of any software which is or includes a copy +or modification of this software and in all copies of the supporting +documentation for such software. + +THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION +OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS +SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + +(18) Citrus Project + +Copyright (c)1999 Citrus Project, +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(19) Todd C. Miller + +Copyright (c) 1998 Todd C. Miller +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(20) DJ Delorie (i386) + +Copyright (C) 1991 DJ Delorie +All rights reserved. + +Redistribution and use in source and binary forms is permitted +provided that the above copyright notice and following paragraph are +duplicated in all such forms. + +This file is distributed WITHOUT ANY WARRANTY; without even the implied +warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +(21) Free Software Foundation LGPL License (*-linux* targets only) + + Copyright (C) 1990-1999, 2000, 2001 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Mark Kettenis , 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA + +(22) Xavier Leroy LGPL License (i[3456]86-*-linux* targets only) + +Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Library General Public License for more details. + +(23) Intel (i960) + +Copyright (c) 1993 Intel Corporation + +Intel hereby grants you permission to copy, modify, and distribute this +software and its documentation. Intel grants this permission provided +that the above copyright notice appears in all copies and that both the +copyright notice and this permission notice appear in supporting +documentation. In addition, Intel grants this permission provided that +you prominently mark as "not part of the original" any modifications +made to this software or documentation, and that the name of Intel +Corporation not be used in advertising or publicity pertaining to +distribution of the software or the documentation without specific, +written prior permission. + +Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR +IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY +OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or +representations regarding the use of, or the results of the use of, +the software and documentation in terms of correctness, accuracy, +reliability, currentness, or otherwise; and you rely on the software, +documentation and results solely at your own risk. + +IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, +LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES +OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM +PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + +(24) Hewlett-Packard (hppa targets only) + +(c) Copyright 1986 HEWLETT-PACKARD COMPANY + +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: + permission to use, copy, modify, and distribute this file +for any purpose is hereby granted without fee, provided that +the above copyright notice and this notice appears in all +copies, and that the name of Hewlett-Packard Company not be +used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. +Hewlett-Packard Company makes no representations about the +suitability of this software for any purpose. + +(25) Henry Spencer (only *-linux targets) + +Copyright 1992, 1993, 1994 Henry Spencer. All rights reserved. +This software is not subject to any license of the American Telephone +and Telegraph Company or of the Regents of the University of California. + +Permission is granted to anyone to use this software for any purpose on +any computer system, and to alter it and redistribute it, subject +to the following restrictions: + +1. The author is not responsible for the consequences of use of this + software, no matter how awful, even if they arise from flaws in it. + +2. The origin of this software must not be misrepresented, either by + explicit claim or by omission. Since few users ever read sources, + credits must appear in the documentation. + +3. Altered versions must be plainly marked as such, and must not be + misrepresented as being the original software. Since few users + ever read sources, credits must appear in the documentation. + +4. This notice may not be removed or altered. + +(26) Mike Barcroft + +Copyright (c) 2001 Mike Barcroft +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(27) Konstantin Chuguev (--enable-newlib-iconv) + +Copyright (c) 1999, 2000 + Konstantin Chuguev. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + + iconv (Charset Conversion Library) v2.0 + +(27) Artem Bityuckiy (--enable-newlib-iconv) + +Copyright (c) 2003, Artem B. Bityuckiy, SoftMine Corporation. +Rights transferred to Franklin Electronic Publishers. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(28) Red Hat Incorporated + +Unless otherwise stated in each remaining newlib file, the remaining +files in the newlib subdirectory default to the following copyright. +It should be noted that Red Hat Incorporated now owns copyrights +belonging to Cygnus Solutions and Cygnus Support. + +Copyright (c) 1994, 1997, 2001, 2002, 2003, 2004 Red Hat Incorporated. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + The name of Red Hat Incorporated may not be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/debian/copyright.in b/debian/copyright.in new file mode 100644 index 0000000..66320ff --- /dev/null +++ b/debian/copyright.in @@ -0,0 +1,1404 @@ +This is the Debian GNU/Linux prepackaged version of the GNU compiler +collection, containing Ada, C, C++, Fortran 95, Objective-C, +Objective-C++, and Treelang compilers, documentation, and support +libraries. In addition, Debian provides the gdc compiler, either in +the same source package, or built from a separate same source package. +Packaging is done by the Debian GCC Maintainers +, with sources obtained from: + + ftp://gcc.gnu.org/pub/gcc/releases/ (for full releases) + svn://gcc.gnu.org/svn/gcc/ (for prereleases) + http://bitbucket.org/goshawk/gdc (for D) + https://github.com/MentorEmbedded/nvptx-newlib/ (for newlib-nvptx) + +The current gcc-@BV@ source package is taken from the SVN @SVN_BRANCH@. + +Changes: See changelog.Debian.gz + +Debian splits the GNU Compiler Collection into packages for each language, +library, and documentation as follows: + +Language Compiler package Library package Documentation +--------------------------------------------------------------------------- +Ada gnat-@BV@ libgnat-@BV@ gnat-@BV@-doc +BRIG gccbrig-@BV@ libhsail-rt0 +C gcc-@BV@ gcc-@BV@-doc +C++ g++-@BV@ libstdc++6 libstdc++6-@BV@-doc +D gdc-@BV@ +Fortran 95 gfortran-@BV@ libgfortran3 gfortran-@BV@-doc +Go gccgo-@BV@ libgo0 +Objective C gobjc-@BV@ libobjc2 +Objective C++ gobjc++-@BV@ + +For some language run-time libraries, Debian provides source files, +development files, debugging symbols and libraries containing position- +independent code in separate packages: + +Language Sources Development Debugging Position-Independent +------------------------------------------------------------------------------ +C++ libstdc++6-@BV@-dbg libstdc++6-@BV@-pic +D libphobos-@BV@-dev + +Additional packages include: + +All languages: +libgcc1, libgcc2, libgcc4 GCC intrinsics (platform-dependent) +gcc-@BV@-base Base files common to all compilers +gcc-@BV@-soft-float Software floating point (ARM only) +gcc-@BV@-source The sources with patches + +Ada: +libgnatvsn-dev, libgnatvsn@BV@ GNAT version library + +C: +cpp-@BV@, cpp-@BV@-doc GNU C Preprocessor +libssp0-dev, libssp0 GCC stack smashing protection library +libquadmath0 Math routines for the __float128 type +fixincludes Fix non-ANSI header files + +C, C++ and Fortran 95: +libgomp1-dev, libgomp1 GCC OpenMP (GOMP) support library +libitm1-dev, libitm1 GNU Transactional Memory Library + +Biarch support: On some 64-bit platforms which can also run 32-bit code, +Debian provides additional packages containing 32-bit versions of some +libraries. These packages have names beginning with 'lib32' instead of +'lib', for example lib32stdc++6. Similarly, on some 32-bit platforms which +can also run 64-bit code, Debian provides additional packages with names +beginning with 'lib64' instead of 'lib'. These packages contain 64-bit +versions of the libraries. (At this time, not all platforms and not all +libraries support biarch.) The license terms for these lib32 or lib64 +packages are identical to the ones for the lib packages. + + +COPYRIGHT STATEMENTS AND LICENSING TERMS + + +GCC is Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, +1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation, Inc. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +Files that have exception clauses are licensed under the terms of the +GNU General Public License; either version 3, or (at your option) any +later version. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', version 3 of this +license in `/usr/share/common-licenses/GPL-3'. + +The following runtime libraries are licensed under the terms of the +GNU General Public License (v3 or later) with version 3.1 of the GCC +Runtime Library Exception (included in this file): + + - libgcc (libgcc/, gcc/libgcc2.[ch], gcc/unwind*, gcc/gthr*, + gcc/coretypes.h, gcc/crtstuff.c, gcc/defaults.h, gcc/dwarf2.h, + gcc/emults.c, gcc/gbl-ctors.h, gcc/gcov-io.h, gcc/libgcov.c, + gcc/tsystem.h, gcc/typeclass.h). + - libatomic + - libdecnumber + - libgomp + - libitm + - libssp + - libstdc++-v3 + - libobjc + - libgfortran + - The libgnat-@BV@ Ada support library and libgnatvsn library. + - Various config files in gcc/config/ used in runtime libraries. + - libvtv + +The libbacktrace library is licensed under the following terms: + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + (1) Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + (2) Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + (3) The name of the author may not be used to + endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + +The libsanitizer libraries (libasan, liblsan, libtsan, libubsan) are +licensed under the following terms: + +Copyright (c) 2009-2014 by the LLVM contributors. + +All rights reserved. + +Developed by: + + LLVM Team + + University of Illinois at Urbana-Champaign + + http://llvm.org + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal with +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimers. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimers in the + documentation and/or other materials provided with the distribution. + + * Neither the names of the LLVM Team, University of Illinois at + Urbana-Champaign, nor the names of its contributors may be used to + endorse or promote products derived from this Software without specific + prior written permission. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE +SOFTWARE. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +The libffi library is licensed under the following terms: + + libffi - Copyright (c) 1996-2003 Red Hat, Inc. + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + ``Software''), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL CYGNUS SOLUTIONS BE LIABLE FOR ANY CLAIM, DAMAGES OR + OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + +The documentation is licensed under the GNU Free Documentation License (v1.2). +On Debian GNU/Linux systems, the complete text of this license is in +`/usr/share/common-licenses/GFDL-1.2'. + + +GCC RUNTIME LIBRARY EXCEPTION + +Version 3.1, 31 March 2009 + +Copyright (C) 2009 Free Software Foundation, Inc. + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +This GCC Runtime Library Exception ("Exception") is an additional +permission under section 7 of the GNU General Public License, version +3 ("GPLv3"). It applies to a given file (the "Runtime Library") that +bears a notice placed by the copyright holder of the file stating that +the file is governed by GPLv3 along with this Exception. + +When you use GCC to compile a program, GCC may combine portions of +certain GCC header files and runtime libraries with the compiled +program. The purpose of this Exception is to allow compilation of +non-GPL (including proprietary) programs to use, in this way, the +header files and runtime libraries covered by this Exception. + +0. Definitions. + +A file is an "Independent Module" if it either requires the Runtime +Library for execution after a Compilation Process, or makes use of an +interface provided by the Runtime Library, but is not otherwise based +on the Runtime Library. + +"GCC" means a version of the GNU Compiler Collection, with or without +modifications, governed by version 3 (or a specified later version) of +the GNU General Public License (GPL) with the option of using any +subsequent versions published by the FSF. + +"GPL-compatible Software" is software whose conditions of propagation, +modification and use would permit combination with GCC in accord with +the license of GCC. + +"Target Code" refers to output from any compiler for a real or virtual +target processor architecture, in executable form or suitable for +input to an assembler, loader, linker and/or execution +phase. Notwithstanding that, Target Code does not include data in any +format that is used as a compiler intermediate representation, or used +for producing a compiler intermediate representation. + +The "Compilation Process" transforms code entirely represented in +non-intermediate languages designed for human-written code, and/or in +Java Virtual Machine byte code, into Target Code. Thus, for example, +use of source code generators and preprocessors need not be considered +part of the Compilation Process, since the Compilation Process can be +understood as starting with the output of the generators or +preprocessors. + +A Compilation Process is "Eligible" if it is done using GCC, alone or +with other GPL-compatible software, or if it is done without using any +work based on GCC. For example, using non-GPL-compatible Software to +optimize any GCC intermediate representations would not qualify as an +Eligible Compilation Process. + +1. Grant of Additional Permission. + +You have permission to propagate a work of Target Code formed by +combining the Runtime Library with Independent Modules, even if such +propagation would otherwise violate the terms of GPLv3, provided that +all Target Code was generated by Eligible Compilation Processes. You +may then convey such a combination under terms of your choice, +consistent with the licensing of the Independent Modules. + +2. No Weakening of GCC Copyleft. + +The availability of this Exception does not imply any general +presumption that third-party software is unaffected by the copyleft +requirements of the license of GCC. + + +libquadmath/*.[hc]: + + Copyright (C) 2010 Free Software Foundation, Inc. + Written by Francois-Xavier Coudert + Written by Tobias Burnus + +This file is part of the libiberty library. +Libiberty is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +Libiberty is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +libquadmath/math: + +atanq.c, expm1q.c, j0q.c, j1q.c, log1pq.c, logq.c: + Copyright 2001 by Stephen L. Moshier + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +coshq.c, erfq.c, jnq.c, lgammaq.c, powq.c, roundq.c: + Changes for 128-bit __float128 are + Copyright (C) 2001 Stephen L. Moshier + and are incorporated herein by permission of the author. The author + reserves the right to distribute this material elsewhere under different + copying permissions. These modifications are distributed here under + the following terms: + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +ldexpq.c: + * Conversion to long double by Ulrich Drepper, + * Cygnus Support, drepper@cygnus.com. + +cosq_kernel.c, expq.c, sincos_table.c, sincosq.c, sincosq_kernel.c, +sinq_kernel.c, truncq.c: + Copyright (C) 1997, 1999 Free Software Foundation, Inc. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +isinfq.c: + * Written by J.T. Conklin . + * Change for long double by Jakub Jelinek + * Public domain. + +llroundq.c, lroundq.c, tgammaq.c: + Copyright (C) 1997, 1999, 2002, 2004 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997 and + Jakub Jelinek , 1999. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +log10q.c: + Cephes Math Library Release 2.2: January, 1991 + Copyright 1984, 1991 by Stephen L. Moshier + Adapted for glibc November, 2001 + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + +remaining files: + + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + + +gcc/go/gofrontend, libgo: + +Copyright (c) 2009 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +libcilkrts, libmpx: + Copyright (C) 2009-2014, Intel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of Intel Corporation nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY + WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + +D: +gdc-@BV@ GNU D Compiler +libphobos-@BV@-dev D standard runtime library + +The D source package is made up of the following components. + +The D front-end for GCC: + - d/* + +Copyright (C) 2004-2007 David Friedman +Modified by Vincenzo Ampolo, Michael Parrot, Iain Buclaw, (C) 2009, 2010 + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', version 2 of this +license in `/usr/share/common-licenses/GPL-2'. + + +The DMD Compiler implementation of the D programming language: + - d/dmd/* + +Copyright (c) 1999-2010 by Digital Mars +All Rights Reserved +written by Walter Bright +http://www.digitalmars.com +License for redistribution is by either the Artistic License or +the GNU General Public License (v1). + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License is in `/usr/share/common-licenses/GPL', the Artistic +license in `/usr/share/common-licenses/Artistic'. + + +The Zlib data compression library: + - d/phobos/etc/c/zlib/* + + (C) 1995-2004 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + +The Phobos standard runtime library: + - d/phobos/* + +Unless otherwise marked within the file, each file in the source +is under the following licenses: + +Copyright (C) 2004-2005 by Digital Mars, www.digitalmars.com +Written by Walter Bright + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, in both source and binary form, subject to the following +restrictions: + + o The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + o Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. + o This notice may not be removed or altered from any source + distribution. + +By plainly marking modifications, something along the lines of adding to each +file that has been changed a "Modified by Foo Bar" line +underneath the "Written by" line would be adequate. + +The libhsail-rt library is licensed under the following terms: + + Copyright (C) 2015-2017 Free Software Foundation, Inc. + Contributed by Pekka Jaaskelainen + for General Processor Tech. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files + (the "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. + +libhsail-rt/rt/fp16.c is licensed under the following terms: + + Copyright (C) 2008-2017 Free Software Foundation, Inc. + Contributed by CodeSourcery. + + This file is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 3, or (at your option) any + later version. + + This file is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . + +newlib-nvptx-20yymmdd/: + +Upstream Authors: +newlib@sources.redhat.com +Jeff Johnston +Tom Fitzsimmons + +The newlib subdirectory is a collection of software from several sources. +Each file may have its own copyright/license that is embedded in the source +file. + +This list documents those licenses which are more restrictive than +a BSD-like license or require the copyright notice +to be duplicated in documentation and/or other materials associated with +the distribution. Certain licenses documented here only apply to +specific targets. Certain clauses only apply if you are building the +code as part of your binary. + +Note that this list may omit certain licenses that +only pertain to the copying/modifying of the individual source code. +If you are distributing the source code, then you do not need to +worry about these omitted licenses, so long as you do not modify the +copyright information already in place. + +Parts of this work are licensed under the terms of the GNU General +Public License. On Debian systems, the complete text of this license +can be found in /usr/share/common-licenses/GPL. + +Parts of this work are licensed under the terms of the GNU Library +General Public License. On Debian systems, the complete text of this +license be found in /usr/share/common-licenses/LGPL. + +(1) University of California, Berkeley + +[1a] + +Copyright (c) 1990 The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms are permitted +provided that the above copyright notice and this paragraph are +duplicated in all such forms and that any documentation, +and other materials related to such distribution and use +acknowledge that the software was developed +by the University of California, Berkeley. The name of the +University may not be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +[1b] + +Copyright (c) 1990 The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms are permitted +provided that the above copyright notice and this paragraph are +duplicated in all such forms and that any documentation, +advertising materials, and other materials related to such +distribution and use acknowledge that the software was developed +by the University of California, Berkeley. The name of the +University may not be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +[1c] + +Copyright (c) 1981, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 +The Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. +4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1d] + +Copyright (c) 1988, 1990, 1993 Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1e] + +Copyright (c) 1982, 1986, 1989, 1991, 1993, 1994 +The Regents of the University of California. All rights reserved. +(c) UNIX System Laboratories, Inc. +All or some portions of this file are derived from material licensed +to the University of California by American Telephone and Telegraph +Co. or Unix System Laboratories, Inc. and are reproduced herein with +the permission of UNIX System Laboratories, Inc. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: + This product includes software developed by the University of + California, Berkeley and its contributors. +4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +[1f] + +Copyright (c) 1987, 1988, 2000 Regents of the University of California. +All rights reserved. + +Redistribution and use in source and binary forms are permitted +provided that: (1) source distributions retain this entire copyright +notice and comment, and (2) distributions including binaries display +the following acknowledgement: ``This product includes software +developed by the University of California, Berkeley and its contributors'' +in the documentation or other materials provided with the distribution +and in all advertising materials mentioning features or use of this +software. Neither the name of the University nor the names of its +contributors may be used to endorse or promote products derived +from this software without specific prior written permission. +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + +------------------------------------------------------------- + Please note that in some of the above alternate licenses, there is a + statement regarding that acknowledgement must be made in any + advertising materials for products using the code. This restriction + no longer applies due to the following license change: + + ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change + + In some cases the defunct clause has been removed in modified newlib code and + in some cases, the clause has been left as-is. +------------------------------------------------------------- + +(2) Cygwin (cygwin targets only) + +Copyright 2001 Red Hat, Inc. + +This software is a copyrighted work licensed under the terms of the +Cygwin license. Please consult the file "CYGWIN_LICENSE" for +details. + +(3) David M. Gay at AT&T + +The author of this software is David M. Gay. + +Copyright (c) 1991 by AT&T. + +Permission to use, copy, modify, and distribute this software for any +purpose without fee is hereby granted, provided that this entire notice +is included in all copies of any software which is or includes a copy +or modification of this software and in all copies of the supporting +documentation for such software. + +THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +WARRANTY. IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY +REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY +OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + +(4) Advanced Micro Devices + +Copyright 1989, 1990 Advanced Micro Devices, Inc. + +This software is the property of Advanced Micro Devices, Inc (AMD) which +specifically grants the user the right to modify, use and distribute this +software provided this notice is not removed or altered. All other rights +are reserved by AMD. + +AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS +SOFTWARE. IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL +DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR +USE OF THIS SOFTWARE. + +So that all may benefit from your experience, please report any problems +or suggestions about this software to the 29K Technical Support Center at +800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131 in the UK, or +0031-11-1129 in Japan, toll free. The direct dial number is 512-462-4118. + +Advanced Micro Devices, Inc. +29K Support Products +Mail Stop 573 +5900 E. Ben White Blvd. +Austin, TX 78741 +800-292-9263 + +(5) C.W. Sandmann + +Copyright (C) 1993 C.W. Sandmann + +This file may be freely distributed as long as the author's name remains. + +(6) Eric Backus + +(C) Copyright 1992 Eric Backus + +This software may be used freely so long as this copyright notice is +left intact. There is no warrantee on this software. + +(7) Sun Microsystems + +Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + +Developed at SunPro, a Sun Microsystems, Inc. business. +Permission to use, copy, modify, and distribute this +software is freely granted, provided that this notice +is preserved. + +(8) Hewlett Packard + +(c) Copyright 1986 HEWLETT-PACKARD COMPANY + +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: + permission to use, copy, modify, and distribute this file +for any purpose is hereby granted without fee, provided that +the above copyright notice and this notice appears in all +copies, and that the name of Hewlett-Packard Company not be +used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. +Hewlett-Packard Company makes no representations about the +suitability of this software for any purpose. + +(9) Hans-Peter Nilsson + +Copyright (C) 2001 Hans-Peter Nilsson + +Permission to use, copy, modify, and distribute this software is +freely granted, provided that the above copyright notice, this notice +and the following disclaimer are preserved with no changes. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. + +(10) Stephane Carrez (m68hc11-elf/m68hc12-elf targets only) + +Copyright (C) 1999, 2000, 2001, 2002 Stephane Carrez (stcarrez@nerim.fr) + +The authors hereby grant permission to use, copy, modify, distribute, +and license this software and its documentation for any purpose, provided +that existing copyright notices are retained in all copies and that this +notice is included verbatim in any distributions. No written agreement, +license, or royalty fee is required for any of the authorized uses. +Modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided that +the new terms are clearly indicated on the first page of each file where +they apply. + +(11) Christopher G. Demetriou + +Copyright (c) 2001 Christopher G. Demetriou +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(12) SuperH, Inc. + +Copyright 2002 SuperH, Inc. All rights reserved + +This software is the property of SuperH, Inc (SuperH) which specifically +grants the user the right to modify, use and distribute this software +provided this notice is not removed or altered. All other rights are +reserved by SuperH. + +SUPERH MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO +THIS SOFTWARE. IN NO EVENT SHALL SUPERH BE LIABLE FOR INDIRECT, SPECIAL, +INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH OR ARISING FROM +THE FURNISHING, PERFORMANCE, OR USE OF THIS SOFTWARE. + +So that all may benefit from your experience, please report any problems +or suggestions about this software to the SuperH Support Center via +e-mail at softwaresupport@superh.com . + +SuperH, Inc. +405 River Oaks Parkway +San Jose +CA 95134 +USA + +(13) Royal Institute of Technology + +Copyright (c) 1999 Kungliga Tekniska Hgskolan +(Royal Institute of Technology, Stockholm, Sweden). +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. Neither the name of KTH nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY KTH AND ITS CONTRIBUTORS ``AS IS'' AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KTH OR ITS CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(14) Alexey Zelkin + +Copyright (c) 2000, 2001 Alexey Zelkin +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(15) Andrey A. Chernov + +Copyright (C) 1997 by Andrey A. Chernov, Moscow, Russia. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(16) FreeBSD + +Copyright (c) 1997-2002 FreeBSD Project. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(17) S. L. Moshier + +Author: S. L. Moshier. + +Copyright (c) 1984,2000 S.L. Moshier + +Permission to use, copy, modify, and distribute this software for any +purpose without fee is hereby granted, provided that this entire notice +is included in all copies of any software which is or includes a copy +or modification of this software and in all copies of the supporting +documentation for such software. + +THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED +WARRANTY. IN PARTICULAR, THE AUTHOR MAKES NO REPRESENTATION +OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS +SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + +(18) Citrus Project + +Copyright (c)1999 Citrus Project, +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(19) Todd C. Miller + +Copyright (c) 1998 Todd C. Miller +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +(20) DJ Delorie (i386) + +Copyright (C) 1991 DJ Delorie +All rights reserved. + +Redistribution and use in source and binary forms is permitted +provided that the above copyright notice and following paragraph are +duplicated in all such forms. + +This file is distributed WITHOUT ANY WARRANTY; without even the implied +warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +(21) Free Software Foundation LGPL License (*-linux* targets only) + + Copyright (C) 1990-1999, 2000, 2001 + Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Mark Kettenis , 1997. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, write to the Free + Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA + 02110-1301 USA + +(22) Xavier Leroy LGPL License (i[3456]86-*-linux* targets only) + +Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Library General Public License for more details. + +(23) Intel (i960) + +Copyright (c) 1993 Intel Corporation + +Intel hereby grants you permission to copy, modify, and distribute this +software and its documentation. Intel grants this permission provided +that the above copyright notice appears in all copies and that both the +copyright notice and this permission notice appear in supporting +documentation. In addition, Intel grants this permission provided that +you prominently mark as "not part of the original" any modifications +made to this software or documentation, and that the name of Intel +Corporation not be used in advertising or publicity pertaining to +distribution of the software or the documentation without specific, +written prior permission. + +Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR +IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY +OR FITNESS FOR A PARTICULAR PURPOSE. Intel makes no guarantee or +representations regarding the use of, or the results of the use of, +the software and documentation in terms of correctness, accuracy, +reliability, currentness, or otherwise; and you rely on the software, +documentation and results solely at your own risk. + +IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS, +LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES +OF ANY KIND. IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM +PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER. + +(24) Hewlett-Packard (hppa targets only) + +(c) Copyright 1986 HEWLETT-PACKARD COMPANY + +To anyone who acknowledges that this file is provided "AS IS" +without any express or implied warranty: + permission to use, copy, modify, and distribute this file +for any purpose is hereby granted without fee, provided that +the above copyright notice and this notice appears in all +copies, and that the name of Hewlett-Packard Company not be +used in advertising or publicity pertaining to distribution +of the software without specific, written prior permission. +Hewlett-Packard Company makes no representations about the +suitability of this software for any purpose. + +(25) Henry Spencer (only *-linux targets) + +Copyright 1992, 1993, 1994 Henry Spencer. All rights reserved. +This software is not subject to any license of the American Telephone +and Telegraph Company or of the Regents of the University of California. + +Permission is granted to anyone to use this software for any purpose on +any computer system, and to alter it and redistribute it, subject +to the following restrictions: + +1. The author is not responsible for the consequences of use of this + software, no matter how awful, even if they arise from flaws in it. + +2. The origin of this software must not be misrepresented, either by + explicit claim or by omission. Since few users ever read sources, + credits must appear in the documentation. + +3. Altered versions must be plainly marked as such, and must not be + misrepresented as being the original software. Since few users + ever read sources, credits must appear in the documentation. + +4. This notice may not be removed or altered. + +(26) Mike Barcroft + +Copyright (c) 2001 Mike Barcroft +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(27) Konstantin Chuguev (--enable-newlib-iconv) + +Copyright (c) 1999, 2000 + Konstantin Chuguev. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + + iconv (Charset Conversion Library) v2.0 + +(27) Artem Bityuckiy (--enable-newlib-iconv) + +Copyright (c) 2003, Artem B. Bityuckiy, SoftMine Corporation. +Rights transferred to Franklin Electronic Publishers. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + +(28) Red Hat Incorporated + +Unless otherwise stated in each remaining newlib file, the remaining +files in the newlib subdirectory default to the following copyright. +It should be noted that Red Hat Incorporated now owns copyrights +belonging to Cygnus Solutions and Cygnus Support. + +Copyright (c) 1994, 1997, 2001, 2002, 2003, 2004 Red Hat Incorporated. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + The name of Red Hat Incorporated may not be used to endorse + or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/debian/cpp-BV-CRB.preinst.in b/debian/cpp-BV-CRB.preinst.in new file mode 100644 index 0000000..408889b --- /dev/null +++ b/debian/cpp-BV-CRB.preinst.in @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +if [ "$1" = "upgrade" ] || [ "$1" = "configure" ]; then + update-alternatives --quiet --remove @TARGET@-cpp /usr/bin/@TARGET@-cpp-@BV@ +fi + +#DEBHELPER# + +exit 0 diff --git a/debian/cpp-BV-doc.doc-base.cpp b/debian/cpp-BV-doc.doc-base.cpp new file mode 100644 index 0000000..d64e86f --- /dev/null +++ b/debian/cpp-BV-doc.doc-base.cpp @@ -0,0 +1,16 @@ +Document: cpp-@BV@ +Title: The GNU C preprocessor +Author: Various +Abstract: The C preprocessor is a "macro processor" that is used automatically + by the C compiler to transform your program before actual compilation. + It is called a macro processor because it allows you to define "macros", + which are brief abbreviations for longer constructs. +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/cpp.html +Files: /usr/share/doc/gcc-@BV@-base/cpp.html + +Format: info +Index: /usr/share/info/cpp-@BV@.info.gz +Files: /usr/share/info/cpp-@BV@* diff --git a/debian/cpp-BV-doc.doc-base.cppint b/debian/cpp-BV-doc.doc-base.cppint new file mode 100644 index 0000000..151d319 --- /dev/null +++ b/debian/cpp-BV-doc.doc-base.cppint @@ -0,0 +1,17 @@ +Document: cppinternals-@BV@ +Title: The GNU C preprocessor (internals) +Author: Various +Abstract: This brief manual documents the internals of cpplib, and + explains some of the tricky issues. It is intended that, along with + the comments in the source code, a reasonably competent C programmer + should be able to figure out what the code is doing, and why things + have been implemented the way they have. +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/cppinternals.html +Files: /usr/share/doc/gcc-@BV@-base/cppinternals.html + +Format: info +Index: /usr/share/info/cppinternals-@BV@.info.gz +Files: /usr/share/info/cppinternals-@BV@* diff --git a/debian/dh_doclink b/debian/dh_doclink new file mode 100644 index 0000000..8372658 --- /dev/null +++ b/debian/dh_doclink @@ -0,0 +1,12 @@ +#! /bin/sh + +pkg=`echo $1 | sed 's/^-p//'` +target=$2 + +[ -d debian/$pkg/usr/share/doc ] || mkdir -p debian/$pkg/usr/share/doc +if [ -d debian/$pkg/usr/share/doc/$p -a ! -h debian/$pkg/usr/share/doc/$p ] +then + echo "WARNING: removing doc directory $pkg" + rm -rf debian/$pkg/usr/share/doc/$pkg +fi +ln -sf $target debian/$pkg/usr/share/doc/$pkg diff --git a/debian/dh_rmemptydirs b/debian/dh_rmemptydirs new file mode 100644 index 0000000..4a010c7 --- /dev/null +++ b/debian/dh_rmemptydirs @@ -0,0 +1,10 @@ +#! /bin/sh -e + +pkg=`echo $1 | sed 's/^-p//'` + +: # remove empty directories, when all components are in place +for d in `find debian/$pkg -depth -type d -empty 2> /dev/null`; do \ + while rmdir $d 2> /dev/null; do d=`dirname $d`; done; \ +done + +exit 0 diff --git a/debian/dummy-man.1 b/debian/dummy-man.1 new file mode 100644 index 0000000..966d935 --- /dev/null +++ b/debian/dummy-man.1 @@ -0,0 +1,29 @@ +.TH @NAME@ 1 "May 24, 2003" @name@ "Debian Free Documentation" +.SH NAME +@name@ \- A program with a man page covered by the GFDL with invariant sections +.SH SYNOPSIS +@name@ [\fB\s-1OPTION\s0\fR] ... [\fI\s-1ARGS\s0\fR...] + +.SH DESCRIPTION + +\fB@name@\fR is documented by a man page, which is covered by the "GNU +Free Documentation License" (GFDL) containing invariant sections. +.P +In November 2002, version 1.2 of the GNU Free Documentation License (GNU +FDL) was released by the Free Software Foundation after a long period +of consultation. Unfortunately, some concerns raised by members of the +Debian Project were not addressed, and as such the GNU FDL can apply +to works that do not pass the Debian Free Software Guidelines (DFSG), +and may thus only be included in the non-free component of the Debian +archive, not the Debian distribution itself. + +.SH "SEE ALSO" +.BR http://gcc.gnu.org/onlinedocs/ +for the complete documentation, +.BR http://lists.debian.org/debian-legal/2003/debian-legal-200304/msg00307.html +for a proposed statement of Debian with respect to the GFDL, +.BR gfdl(7) + +.SH AUTHOR +This manual page was written by the Debian GCC maintainers, +for the Debian GNU/Linux system. diff --git a/debian/dummy.texi b/debian/dummy.texi new file mode 100644 index 0000000..127ccaa --- /dev/null +++ b/debian/dummy.texi @@ -0,0 +1 @@ +@c This file is empty because the original one has a non DFSG free license (GFDL) diff --git a/debian/fixincludes.in b/debian/fixincludes.in new file mode 100644 index 0000000..23c6e71 --- /dev/null +++ b/debian/fixincludes.in @@ -0,0 +1,8 @@ +#! /bin/sh + +PATH="/@LIBEXECDIR@/install-tools:$PATH" + +TARGET_MACHINE=`dpkg-architecture -qDEB_HOST_GNU_TYPE` +export TARGET_MACHINE + +exec fixinc.sh "$@" diff --git a/debian/g++-BV-CRB.preinst.in b/debian/g++-BV-CRB.preinst.in new file mode 100644 index 0000000..b69c8f8 --- /dev/null +++ b/debian/g++-BV-CRB.preinst.in @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +if [ "$1" = "upgrade" ] || [ "$1" = "configure" ]; then + update-alternatives --quiet --remove @TARGET@-g++ /usr/bin/@TARGET@-g++-@BV@ +fi + +#DEBHELPER# + +exit 0 diff --git a/debian/gcc-BV-CRB.preinst.in b/debian/gcc-BV-CRB.preinst.in new file mode 100644 index 0000000..ca34796 --- /dev/null +++ b/debian/gcc-BV-CRB.preinst.in @@ -0,0 +1,12 @@ +#!/bin/sh + +set -e + +if [ "$1" = "upgrade" ] || [ "$1" = "configure" ]; then + update-alternatives --quiet --remove @TARGET@-gcc /usr/bin/@TARGET@-gcc-@BV@ + update-alternatives --quiet --remove @TARGET@-gcov /usr/bin/@TARGET@-gcov-@BV@ +fi + +#DEBHELPER# + +exit 0 diff --git a/debian/gcc-BV-doc.doc-base.gcc b/debian/gcc-BV-doc.doc-base.gcc new file mode 100644 index 0000000..106e18d --- /dev/null +++ b/debian/gcc-BV-doc.doc-base.gcc @@ -0,0 +1,14 @@ +Document: gcc-@BV@ +Title: The GNU C and C++ compiler +Author: Various +Abstract: This manual documents how to run, install and port the GNU compiler, + as well as its new features and incompatibilities, and how to report bugs. +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/gcc.html +Files: /usr/share/doc/gcc-@BV@-base/gcc.html + +Format: info +Index: /usr/share/info/gcc-@BV@.info.gz +Files: /usr/share/info/gcc-@BV@* diff --git a/debian/gcc-BV-doc.doc-base.gccint b/debian/gcc-BV-doc.doc-base.gccint new file mode 100644 index 0000000..85f4af1 --- /dev/null +++ b/debian/gcc-BV-doc.doc-base.gccint @@ -0,0 +1,17 @@ +Document: gccint-@BV@ +Title: Internals of the GNU C and C++ compiler +Author: Various +Abstract: This manual documents the internals of the GNU compilers, + including how to port them to new targets and some information about + how to write front ends for new languages. It corresponds to GCC + version @BV@.x. The use of the GNU compilers is documented in a + separate manual. +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/gccint.html +Files: /usr/share/doc/gcc-@BV@-base/gccint.html + +Format: info +Index: /usr/share/info/gccint-@BV@.info.gz +Files: /usr/share/info/gccint-@BV@* diff --git a/debian/gcc-BV-doc.doc-base.gomp b/debian/gcc-BV-doc.doc-base.gomp new file mode 100644 index 0000000..69ccede --- /dev/null +++ b/debian/gcc-BV-doc.doc-base.gomp @@ -0,0 +1,15 @@ +Document: gcc-@BV@-gomp +Title: The GNU OpenMP Implementation (for GCC @BV@) +Author: Various +Abstract: This manual documents the usage of libgomp, the GNU implementation + of the OpenMP Application Programming Interface (API) for multi-platform + shared-memory parallel programming in C/C++ and Fortran. +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/libgomp.html +Files: /usr/share/doc/gcc-@BV@-base/libgomp.html + +Format: info +Index: /usr/share/info/libgomp-@BV@.info.gz +Files: /usr/share/info/libgomp-@BV@* diff --git a/debian/gcc-BV-doc.doc-base.itm b/debian/gcc-BV-doc.doc-base.itm new file mode 100644 index 0000000..130a70f --- /dev/null +++ b/debian/gcc-BV-doc.doc-base.itm @@ -0,0 +1,16 @@ +Document: gcc-@BV@-itm +Title: The GNU Transactional Memory Library (for GCC @BV@) +Author: Various +Abstract: This manual documents the usage and internals of libitm, + the GNU Transactional Memory Library. It provides transaction support + for accesses to a process' memory, enabling easy-to-use synchronization + of accesses to shared memory by several threads. +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/libitm.html +Files: /usr/share/doc/gcc-@BV@-base/libitm.html + +Format: info +Index: /usr/share/info/libitm-@BV@.info.gz +Files: /usr/share/info/libitm-@BV@* diff --git a/debian/gcc-BV-doc.doc-base.qmath b/debian/gcc-BV-doc.doc-base.qmath new file mode 100644 index 0000000..bdc2d4c --- /dev/null +++ b/debian/gcc-BV-doc.doc-base.qmath @@ -0,0 +1,14 @@ +Document: gcc-@BV@-qmath +Title: The GCC Quad-Precision Math Library (for GCC @BV@) +Author: Various +Abstract: This manual documents the usage of libquadmath, the GCC + Quad-Precision Math Library Application Programming Interface (API). +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/libquadmath.html +Files: /usr/share/doc/gcc-@BV@-base/libquadmath.html + +Format: info +Index: /usr/share/info/libquadmath-@BV@.info.gz +Files: /usr/share/info/libquadmath-@BV@* diff --git a/debian/gcc-BV-hppa64-linux-gnu.overrides b/debian/gcc-BV-hppa64-linux-gnu.overrides new file mode 100644 index 0000000..3584aac --- /dev/null +++ b/debian/gcc-BV-hppa64-linux-gnu.overrides @@ -0,0 +1,2 @@ +gcc-@BV@-hppa64-linux-gnu binary: binary-from-other-architecture +gcc-@BV@-hppa64-linux-gnu binary: binary-without-manpage diff --git a/debian/gcc-BV-multilib.overrides b/debian/gcc-BV-multilib.overrides new file mode 100644 index 0000000..545ca0e --- /dev/null +++ b/debian/gcc-BV-multilib.overrides @@ -0,0 +1 @@ +gcc-@BV@-multilib binary: binary-from-other-architecture diff --git a/debian/gcc-BV-source.overrides b/debian/gcc-BV-source.overrides new file mode 100644 index 0000000..46e8559 --- /dev/null +++ b/debian/gcc-BV-source.overrides @@ -0,0 +1,5 @@ +gcc-@BV@-source: changelog-file-not-compressed + +# these are patches taken over unmodified from 4.3 +gcc-@BV@-source: script-not-executable +gcc-@BV@-source: shell-script-fails-syntax-check diff --git a/debian/gcc-XX-BV.1 b/debian/gcc-XX-BV.1 new file mode 100644 index 0000000..4268c41 --- /dev/null +++ b/debian/gcc-XX-BV.1 @@ -0,0 +1,17 @@ +.TH GCC-@TOOL@-@BV@ 1 "May 8, 2012" gcc-@TOOL@-@BV@ "" +.SH NAME +gcc-@TOOL@ \- a wrapper around @TOOL@ adding the --plugin option + +.SH SYNOPSIS +gcc-@TOOL@ [\fB\s-1OPTION\s0\fR] ... [\fI\s-1ARGS\s0\fR...] + +.SH DESCRIPTION + +\fBgcc-@TOOL@\fR is a wrapper around @TOOL@(1) adding the appropriate +\fB\-\-plugin\fR option for the GCC @BV@ compiler. + +.SH OPTIONS +See @TOOL@(1) for a list of options that @TOOL@ understands. + +.SH "SEE ALSO" +.BR @TOOL@(1) diff --git a/debian/gcc-dummy.texi b/debian/gcc-dummy.texi new file mode 100644 index 0000000..b84b670 --- /dev/null +++ b/debian/gcc-dummy.texi @@ -0,0 +1,41 @@ +\input texinfo @c -*-texinfo-*- +@c %**start of header + +@settitle The GNU Compiler Collection (GCC) + +@c Create a separate index for command line options. +@defcodeindex op +@c Merge the standard indexes into a single one. +@syncodeindex fn cp +@syncodeindex vr cp +@syncodeindex ky cp +@syncodeindex pg cp +@syncodeindex tp cp + +@paragraphindent 1 + +@c %**end of header + +@copying +The current documentation is licensed under the same terms as the Debian packaging. +@end copying +@ifnottex +@dircategory Programming +@direntry +* @name@: (@name@). The GNU Compiler Collection (@name@). +@end direntry +@sp 1 +@end ifnottex + +@summarycontents +@contents +@page + +@node Top +@top Introduction +@cindex introduction +The official GNU compilers' documentation is released under the terms +of the GNU Free Documentation License with cover texts. This has been +considered non free by the Debian Project. Thus you will find it in the +non-free section of the Debian archive. +@bye diff --git a/debian/gcc-snapshot.overrides b/debian/gcc-snapshot.overrides new file mode 100644 index 0000000..fad2373 --- /dev/null +++ b/debian/gcc-snapshot.overrides @@ -0,0 +1,10 @@ +gcc-snapshot binary: bad-permissions-for-ali-file + +# keep patched ltdl copy +gcc-snapshot binary: embedded-library + +gcc-snapshot binary: binary-from-other-architecture +gcc-snapshot binary: extra-license-file +gcc-snapshot binary: jar-not-in-usr-share +gcc-snapshot binary: triplet-dir-and-architecture-mismatch +gcc-snapshot binary: unstripped-binary-or-object diff --git a/debian/gcc-snapshot.prerm b/debian/gcc-snapshot.prerm new file mode 100644 index 0000000..0e3d9bb --- /dev/null +++ b/debian/gcc-snapshot.prerm @@ -0,0 +1,5 @@ +#! /bin/sh -e + +rm -f /usr/lib/gcc-snapshot/share/python/*.py[co] + +#DEBHELPER# diff --git a/debian/gccgo-BV-doc.doc-base b/debian/gccgo-BV-doc.doc-base new file mode 100644 index 0000000..86ce258 --- /dev/null +++ b/debian/gccgo-BV-doc.doc-base @@ -0,0 +1,17 @@ +Document: gccgo-@BV@ +Title: The GNU Go compiler (version @BV@) +Author: Various +Abstract: This manual describes how to use gccgo, the GNU compiler for + the Go programming language. This manual is specifically about + gccgo. For more information about the Go programming + language in general, including language specifications and standard + package documentation, see http://golang.org/. +Section: Programming + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/gccgo.html +Files: /usr/share/doc/gcc-@BV@-base/gccgo.html + +Format: info +Index: /usr/share/info/gccgo-@BV@.info.gz +Files: /usr/share/info/gccgo-@BV@* diff --git a/debian/gen-libstdc-breaks.sh b/debian/gen-libstdc-breaks.sh new file mode 100644 index 0000000..de35a4a --- /dev/null +++ b/debian/gen-libstdc-breaks.sh @@ -0,0 +1,178 @@ +#! /bin/sh + +# https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=gcc-pr66145;users=debian-gcc@lists.debian.org + +vendor=Debian +if dpkg-vendor --derives-from Ubuntu; then + vendor=Ubuntu +fi + +if [ "$vendor" = Debian ]; then + : + pkgs=$(echo ' +antlr +libaqsis1 +libassimp3 +blockattack +boo +libboost-date-time1.54.0 +libboost-date-time1.55.0 +libcpprest2.4 +printer-driver-brlaser +c++-annotations +clustalx +libdavix0 +libdballe6 +dff +libdiet-sed2.8 +libdiet-client2.8 +libdiet-admin2.8 +digikam-private-libs +emscripten +ergo +fceux +flush +libfreefem++ +freeorion +fslview +fwbuilder +libgazebo5 +libgetfem4++ +libgmsh2 +gnote +gnudatalanguage +python-healpy +innoextract +libinsighttoolkit4.7 +libdap17 +libdapclient6 +libdapserver7 +libkolabxml1 +libpqxx-4.0 +libreoffice-core +librime1 +libwibble-dev +lightspark +libmarisa0 +mira-assembler +mongodb +mongodb-server +ncbi-blast+ +libogre-1.8.0 +libogre-1.9.0 +openscad +libopenwalnut1 +passepartout +pdf2djvu +photoprint +plastimatch +plee-the-bear +povray +powertop +psi4 +python3-taglib +realtimebattle +ruby-passenger +libapache2-mod-passenger +schroot +sqlitebrowser +tecnoballz +wesnoth-1.12-core +widelands +libwreport2 +xflr5 +libxmltooling6') +else + pkgs=$(echo ' +antlr +libaqsis1 +libassimp3 +blockattack +boo +libboost-date-time1.55.0 +libcpprest2.2 +printer-driver-brlaser +c++-annotations +chromium-browser +clustalx +libdavix0 +libdballe6 +dff +libdiet-sed2.8 +libdiet-client2.8 +libdiet-admin2.8 +libkgeomap2 +libmediawiki1 +libkvkontakte1 +emscripten +ergo +fceux +flush +libfreefem++ +freeorion +fslview +fwbuilder +libgazebo5 +libgetfem4++ +libgmsh2 +gnote +gnudatalanguage +python-healpy +innoextract +libinsighttoolkit4.6 +libdap17 +libdapclient6 +libdapserver7 +libkolabxml1 +libpqxx-4.0 +libreoffice-core +librime1 +libwibble-dev +lightspark +libmarisa0 +mira-assembler +mongodb +mongodb-server +ncbi-blast+ +libogre-1.8.0 +libogre-1.9.0 +openscad +libopenwalnut1 +passepartout +pdf2djvu +photoprint +plastimatch +plee-the-bear +povray +powertop +psi4 +python3-taglib +realtimebattle +ruby-passenger +libapache2-mod-passenger +sqlitebrowser +tecnoballz +wesnoth-1.12-core +widelands +libwreport2 +xflr5 +libxmltooling6') +fi + +fn=debian/libstdc++-breaks.$vendor +rm -f $fn +echo $pkgs +for p in $pkgs; do + #echo $p + if ! apt-cache show --no-all-versions $p >/dev/null; then + echo "not found: $p" + fi + v=$(apt-cache show --no-all-versions $p | awk '/^Version/ {print $2}') + case "$p" in + libboost-date-time*) + echo "$p," >> $fn + ;; + *) + echo "$p (<= $v)," >> $fn + esac +done diff --git a/debian/gfortran-BV-CRB.preinst.in b/debian/gfortran-BV-CRB.preinst.in new file mode 100644 index 0000000..f6e7cfd --- /dev/null +++ b/debian/gfortran-BV-CRB.preinst.in @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +if [ "$1" = "upgrade" ] || [ "$1" = "configure" ]; then + update-alternatives --quiet --remove @TARGET@-gfortran /usr/bin/@TARGET@-gfortran-@BV@ +fi + +#DEBHELPER# + +exit 0 diff --git a/debian/gfortran-BV-doc.doc-base b/debian/gfortran-BV-doc.doc-base new file mode 100644 index 0000000..485d458 --- /dev/null +++ b/debian/gfortran-BV-doc.doc-base @@ -0,0 +1,14 @@ +Document: gfortran-@BV@ +Title: The GNU Fortran Compiler +Author: Various +Abstract: This manual documents how to run, install and port `gfortran', + as well as its new features and incompatibilities, and how to report bugs. +Section: Programming/Fortran + +Format: html +Index: /usr/share/doc/gcc-@BV@-base/fortran/gfortran.html +Files: /usr/share/doc/gcc-@BV@-base/fortran/gfortran.html + +Format: info +Index: /usr/share/info/gfortran-@BV@.info.gz +Files: /usr/share/info/gfortran-@BV@* diff --git a/debian/gnat-BV-doc.doc-base.rm b/debian/gnat-BV-doc.doc-base.rm new file mode 100644 index 0000000..7957275 --- /dev/null +++ b/debian/gnat-BV-doc.doc-base.rm @@ -0,0 +1,16 @@ +Document: gnat-rm-@BV@ +Title: GNAT (GNU Ada) Reference Manual +Author: Various +Abstract: This manual contains useful information in writing programs + using the GNAT compiler. It includes information on implementation + dependent characteristics of GNAT, including all the information + required by Annex M of the standard. +Section: Programming/Ada + +Format: html +Index: /usr/share/doc/gnat-@BV@-doc/gnat_rm.html +Files: /usr/share/doc/gnat-@BV@-doc/gnat_rm.html + +Format: info +Index: /usr/share/info/gnat_rm-@BV@.info.gz +Files: /usr/share/info/gnat_rm-@BV@* diff --git a/debian/gnat-BV-doc.doc-base.style b/debian/gnat-BV-doc.doc-base.style new file mode 100644 index 0000000..db6dfc8 --- /dev/null +++ b/debian/gnat-BV-doc.doc-base.style @@ -0,0 +1,16 @@ +Document: gnat-style-@BV@ +Title: GNAT Coding Style +Author: Various +Abstract: Most of GNAT is written in Ada using a consistent style to + ensure readability of the code. This document has been written to + help maintain this consistent style, while having a large group of + developers work on the compiler. +Section: Programming/Ada + +Format: html +Index: /usr/share/doc/gnat-@BV@-doc/gnat-style.html +Files: /usr/share/doc/gnat-@BV@-doc/gnat-style.html + +Format: info +Index: /usr/share/info/gnat-style-@BV@.info.gz +Files: /usr/share/info/gnat-style-@BV@* diff --git a/debian/gnat-BV-doc.doc-base.ug b/debian/gnat-BV-doc.doc-base.ug new file mode 100644 index 0000000..00dedf1 --- /dev/null +++ b/debian/gnat-BV-doc.doc-base.ug @@ -0,0 +1,16 @@ +Document: gnat-ugn-@BV@ +Title: GNAT User's Guide for Unix Platforms +Author: Various +Abstract: This guide describes the use of GNAT, a compiler and + software development toolset for the full Ada 95 programming language. + It describes the features of the compiler and tools, and details how + to use them to build Ada 95 applications. +Section: Programming/Ada + +Format: html +Index: /usr/share/doc/gnat-@BV@-doc/gnat_ugn.html +Files: /usr/share/doc/gnat-@BV@-doc/gnat_ugn.html + +Format: info +Index: /usr/share/info/gnat_ugn-@BV@.info.gz +Files: /usr/share/info/gnat_ugn-@BV@* diff --git a/debian/gnat.1 b/debian/gnat.1 new file mode 100644 index 0000000..33a42c7 --- /dev/null +++ b/debian/gnat.1 @@ -0,0 +1,43 @@ +.\" Hey, Emacs! This is an -*- nroff -*- source file. +.\" +.\" Copyright (C) 1996 Erick Branderhorst +.\" Copyright (C) 2011 Nicolas Boulenguez +.\" +.\" This is free software; you can redistribute it and/or modify it under +.\" the terms of the GNU General Public License as published by the Free +.\" Software Foundation; either version 2, or (at your option) any later +.\" version. +.\" +.\" This is distributed in the hope that it will be useful, but WITHOUT +.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +.\" FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +.\" for more details. +.\" +.\" You should have received a copy of the GNU General Public License with +.\" your Debian GNU/Linux system, in /usr/doc/copyright/GPL, or with the +.\" dpkg source package as the file COPYING. If not, write to the Free +.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +.\" +.\" +.TH "GNAT TOOLBOX" 1 "Jun 2002" "Debian Project" "Debian Linux" +.SH NAME +gnat, gnatbind, gnatbl, gnatchop, gnatfind, gnathtml, gnatkr, gnatlink, +gnatls, gnatmake, gnatprep, gnatpsta, gnatpsys, gnatxref \- +GNAT toolbox +.SH DESCRIPTION +Those programs are part of GNU GNAT, a freely available Ada 95 compiler. +.PP +For accessing the full GNAT manuals, use +.B info gnat-ug-4.8 +and +.B info gnat-rm-4.8 +for the sections related to the reference manual. +If those sections cannot be found, you will have to install the +gnat-4.4-doc package as well (since these manuals contain invariant parts, +the package is located in the non-free part of the Debian archive). +You may also browse +.B http://gcc.gnu.org/onlinedocs +which provides the GCC online documentation. +.SH AUTHOR +This manpage has been written by Samuel Tardieu , for the +Debian GNU/Linux project. diff --git a/debian/go-relocation-test-gcc620-sparc64.obj.uue b/debian/go-relocation-test-gcc620-sparc64.obj.uue new file mode 100644 index 0000000..cc95543 --- /dev/null +++ b/debian/go-relocation-test-gcc620-sparc64.obj.uue @@ -0,0 +1,136 @@ +begin 644 src/libgo/go/debug/elf/testdata/go-relocation-test-gcc620-sparc64.obj +M?T5,1@("`0`````````````!`"L````!```````````````````````````` +M`!(``````@!```````!``!4`$IWCOU""$``8\G>HA\(GJ'\#````D!!@`$`` +M```!`````0```('/X`@!`````````&AE;&QO+"!W;W)L9`````-"``0````` +M"`$`````#```````````````````````````````+``````"``````+8```` +M.`,(!P`````#`0@``````P('``````,$!P`````#`08``````P(%``````0$ +M!6EN=``#"`4``````@`````#@P```&D"``````.$````:0,(!P`````%"`8( +M````E0,!!@`````'````E0@`````V`3Q```"'@D`````!/(```!B``D````` +M!/<```"/"`D`````!/@```"/$`D`````!/D```"/&`D`````!/H```"/(`D` +M````!/L```"/*`D`````!/P```"/,`D`````!/T```"/.`D`````!/X```"/ +M0`H`````!`$`````CT@*``````0!`0```(]0"@`````$`0(```"/6`H````` +M!`$$```"5F`*``````0!!@```EQH"@`````$`0@```!B<`H`````!`$,```` +M8G0*``````0!#@```'!X"@`````$`1(```!&@`H`````!`$3````5((*```` +M``0!%````F*#"@`````$`1@```)RB`H`````!`$A````>Y`*``````0!*0`` +M`(V8"@`````$`2H```"-H`H`````!`$K````C:@*``````0!+````(VP"@`` +M```$`2X````MN`H`````!`$O````8L`*``````0!,0```GC$``L`````!)8( +M`````!@$G````E8)``````2=```"5@`)``````2>```"7`@)``````2B```` +M8A``!@@```(E!@@```"A#````)4```)R#0```(8```8(```"'@P```"5```" +MB`T```"&$P`.``````\`````!`$[```"B`\`````!`$\```"B`\`````!`$] +M```"B`8(````G`<```*Q$``````%J@```EP0``````6K```"7!``````!:P` +M``)<$``````&&@```&(,```"MP```O,1``<```+H$``````&&P```O,2```` +M``$$````````````````````+`&<```#/Q,``````00```!B`Y&``1,````` +M`00```,_`Y&(`0`&"````(\``1$!)0X3"P,.&PX1`1('$!<```(6``,..@L[ +M"TD3```#)``+"SX+`PX```0D``L+/@L#"```!0\`"PL```8/``L+21,```7-?;F5R<@!?24]?F5?=`!S:7IE +M='EP90!?;V9F7-?97)R;&ES=`!?9FEL96YO`&AE;&QO+F,` +MH````````!`@````H````7`````````&4````````! +M#@````H````7```````````````````!&@````H````7`````````F(````` +M```!)P````H````7`````````B$````````!-`````H````7`````````"$` +M```````!00````H````7`````````'(````````!3@````H````7```````` +M`AH````````!6P````H````7`````````GP````````!:`````H````7```` +M`````C<````````!=0````H````7``````````P````````!@@````H````7 +M`````````-H````````!CP````H````7`````````E,````````!G`````H` +M```7`````````6,````````!J0````H````7`````````(\````````!M@`` +M``H````7`````````$@````````!PP````H````7`````````;4````````! +MT`````H````7`````````;P````````!W0````H````7`````````<,````` +M```!Z@````H````7`````````/dev/null || true + fi +esac + +#DEBHELPER# diff --git a/debian/libstdc++CXX.prerm b/debian/libstdc++CXX.prerm new file mode 100644 index 0000000..d4a6b38 --- /dev/null +++ b/debian/libstdc++CXX.prerm @@ -0,0 +1,13 @@ +#! /bin/sh + +set -e + +case "$1" in + remove|upgrade) + files=$(dpkg -L libstdc++@CXX@@TARGET_QUAL@ | awk -F/ 'BEGIN {OFS="/"} /\.py$/ {$NF=sprintf("__pycache__/%s.*.py[co]", substr($NF,1,length($NF)-3)); print}') + rm -f $files + dirs=$(dpkg -L libstdc++@CXX@@TARGET_QUAL@ | awk -F/ 'BEGIN {OFS="/"} /\.py$/ {NF--; print}' | sort -u) + find $dirs -mindepth 1 -maxdepth 1 -name __pycache__ -type d -empty | xargs -r rmdir +esac + +#DEBHELPER# diff --git a/debian/libtsan0.symbols b/debian/libtsan0.symbols new file mode 100644 index 0000000..4c3789a --- /dev/null +++ b/debian/libtsan0.symbols @@ -0,0 +1,1806 @@ +libtsan.so.0 libtsan0 #MINVER# + AnnotateBenignRace@Base 4.9 + AnnotateBenignRaceSized@Base 4.9 + AnnotateCondVarSignal@Base 4.9 + AnnotateCondVarSignalAll@Base 4.9 + AnnotateCondVarWait@Base 4.9 + AnnotateEnableRaceDetection@Base 4.9 + AnnotateExpectRace@Base 4.9 + AnnotateFlushExpectedRaces@Base 4.9 + AnnotateFlushState@Base 4.9 + AnnotateHappensAfter@Base 4.9 + AnnotateHappensBefore@Base 4.9 + AnnotateIgnoreReadsBegin@Base 4.9 + AnnotateIgnoreReadsEnd@Base 4.9 + AnnotateIgnoreSyncBegin@Base 4.9 + AnnotateIgnoreSyncEnd@Base 4.9 + AnnotateIgnoreWritesBegin@Base 4.9 + AnnotateIgnoreWritesEnd@Base 4.9 + AnnotateMemoryIsInitialized@Base 4.9 + AnnotateMemoryIsUninitialized@Base 5 + AnnotateMutexIsNotPHB@Base 4.9 + AnnotateMutexIsUsedAsCondVar@Base 4.9 + AnnotateNewMemory@Base 4.9 + AnnotateNoOp@Base 4.9 + AnnotatePCQCreate@Base 4.9 + AnnotatePCQDestroy@Base 4.9 + AnnotatePCQGet@Base 4.9 + AnnotatePCQPut@Base 4.9 + AnnotatePublishMemoryRange@Base 4.9 + AnnotateRWLockAcquired@Base 4.9 + AnnotateRWLockCreate@Base 4.9 + AnnotateRWLockCreateStatic@Base 4.9 + AnnotateRWLockDestroy@Base 4.9 + AnnotateRWLockReleased@Base 4.9 + AnnotateThreadName@Base 4.9 + AnnotateTraceMemory@Base 4.9 + AnnotateUnpublishMemoryRange@Base 4.9 + RunningOnValgrind@Base 4.9 + ThreadSanitizerQuery@Base 4.9 + ValgrindSlowdown@Base 4.9 + WTFAnnotateBenignRaceSized@Base 4.9 + WTFAnnotateHappensAfter@Base 4.9 + WTFAnnotateHappensBefore@Base 4.9 + _ZN11__sanitizer11CheckFailedEPKciS1_yy@Base 4.9 + _ZN11__sanitizer7OnPrintEPKc@Base 4.9 + _ZN6__tsan10OnFinalizeEb@Base 4.9 + _ZN6__tsan12OnInitializeEv@Base 5 + _ZN6__tsan8OnReportEPKNS_10ReportDescEb@Base 4.9 + _ZdaPv@Base 4.9 + _ZdaPvRKSt9nothrow_t@Base 4.9 + _ZdlPv@Base 4.9 + _ZdlPvRKSt9nothrow_t@Base 4.9 + _Znam@Base 4.9 + _ZnamRKSt9nothrow_t@Base 4.9 + _Znwm@Base 4.9 + _ZnwmRKSt9nothrow_t@Base 4.9 + __asan_backtrace_alloc@Base 4.9 + __asan_backtrace_close@Base 4.9 + __asan_backtrace_create_state@Base 4.9 + __asan_backtrace_dwarf_add@Base 4.9 + __asan_backtrace_free@Base 4.9 + __asan_backtrace_get_view@Base 4.9 + __asan_backtrace_initialize@Base 4.9 + __asan_backtrace_open@Base 4.9 + __asan_backtrace_pcinfo@Base 4.9 + __asan_backtrace_qsort@Base 4.9 + __asan_backtrace_release_view@Base 4.9 + __asan_backtrace_syminfo@Base 4.9 + __asan_backtrace_vector_finish@Base 4.9 + __asan_backtrace_vector_grow@Base 4.9 + __asan_backtrace_vector_release@Base 4.9 + __asan_cplus_demangle_builtin_types@Base 4.9 + __asan_cplus_demangle_fill_ctor@Base 4.9 + __asan_cplus_demangle_fill_dtor@Base 4.9 + __asan_cplus_demangle_fill_extended_operator@Base 4.9 + __asan_cplus_demangle_fill_name@Base 4.9 + __asan_cplus_demangle_init_info@Base 4.9 + __asan_cplus_demangle_mangled_name@Base 4.9 + __asan_cplus_demangle_operators@Base 4.9 + __asan_cplus_demangle_print@Base 4.9 + __asan_cplus_demangle_print_callback@Base 4.9 + __asan_cplus_demangle_type@Base 4.9 + __asan_cplus_demangle_v3@Base 4.9 + __asan_cplus_demangle_v3_callback@Base 4.9 + __asan_internal_memcmp@Base 4.9 + __asan_internal_memcpy@Base 4.9 + __asan_internal_memset@Base 4.9 + __asan_internal_strcmp@Base 4.9 + __asan_internal_strlen@Base 4.9 + __asan_internal_strncmp@Base 4.9 + __asan_internal_strnlen@Base 4.9 + __asan_is_gnu_v3_mangled_ctor@Base 4.9 + __asan_is_gnu_v3_mangled_dtor@Base 4.9 + __asan_java_demangle_v3@Base 4.9 + __asan_java_demangle_v3_callback@Base 4.9 + __close@Base 4.9 + __cxa_atexit@Base 4.9 + __cxa_guard_abort@Base 4.9 + __cxa_guard_acquire@Base 4.9 + __cxa_guard_release@Base 4.9 + __fxstat64@Base 4.9 + __fxstat@Base 4.9 + __getdelim@Base 5 + __interceptor___close@Base 4.9 + __interceptor___cxa_atexit@Base 4.9 + __interceptor___fxstat64@Base 4.9 + __interceptor___fxstat@Base 4.9 + __interceptor___getdelim@Base 5 + __interceptor___isoc99_fprintf@Base 5 + __interceptor___isoc99_fscanf@Base 4.9 + __interceptor___isoc99_printf@Base 5 + __interceptor___isoc99_scanf@Base 4.9 + __interceptor___isoc99_snprintf@Base 5 + __interceptor___isoc99_sprintf@Base 5 + __interceptor___isoc99_sscanf@Base 4.9 + __interceptor___isoc99_vfprintf@Base 5 + __interceptor___isoc99_vfscanf@Base 4.9 + __interceptor___isoc99_vprintf@Base 5 + __interceptor___isoc99_vscanf@Base 4.9 + __interceptor___isoc99_vsnprintf@Base 5 + __interceptor___isoc99_vsprintf@Base 5 + __interceptor___isoc99_vsscanf@Base 4.9 + __interceptor___libc_memalign@Base 4.9 + __interceptor___lxstat64@Base 4.9 + __interceptor___lxstat@Base 4.9 + __interceptor___overflow@Base 5 + __interceptor___res_iclose@Base 4.9 + __interceptor___sigsetjmp@Base 4.9 + __interceptor___tls_get_addr@Base 6 + __interceptor___uflow@Base 5 + __interceptor___underflow@Base 5 + __interceptor___woverflow@Base 5 + __interceptor___wuflow@Base 5 + __interceptor___wunderflow@Base 5 + __interceptor___xpg_strerror_r@Base 4.9 + __interceptor___xstat64@Base 4.9 + __interceptor___xstat@Base 4.9 + __interceptor__exit@Base 4.9 + __interceptor__obstack_begin@Base 5 + __interceptor__obstack_begin_1@Base 5 + __interceptor__obstack_newchunk@Base 5 + __interceptor__setjmp@Base 4.9 + __interceptor_abort@Base 4.9 + __interceptor_accept4@Base 4.9 + __interceptor_accept@Base 4.9 + __interceptor_aligned_alloc@Base 5 + __interceptor_asctime@Base 4.9 + __interceptor_asctime_r@Base 4.9 + __interceptor_asprintf@Base 5 + __interceptor_atexit@Base 4.9 + __interceptor_backtrace@Base 4.9 + __interceptor_backtrace_symbols@Base 4.9 + __interceptor_bind@Base 4.9 + __interceptor_calloc@Base 4.9 + __interceptor_canonicalize_file_name@Base 4.9 + __interceptor_capget@Base 5 + __interceptor_capset@Base 5 + __interceptor_cfree@Base 4.9 + __interceptor_clock_getres@Base 4.9 + __interceptor_clock_gettime@Base 4.9 + __interceptor_clock_settime@Base 4.9 + __interceptor_close@Base 4.9 + __interceptor_closedir@Base 6 + __interceptor_confstr@Base 4.9 + __interceptor_connect@Base 4.9 + __interceptor_creat64@Base 4.9 + __interceptor_creat@Base 4.9 + __interceptor_ctermid@Base 7 + __interceptor_ctime@Base 4.9 + __interceptor_ctime_r@Base 4.9 + __interceptor_dl_iterate_phdr@Base 6 + __interceptor_dlclose@Base 4.9 + __interceptor_dlopen@Base 4.9 + __interceptor_drand48_r@Base 4.9 + __interceptor_dup2@Base 4.9 + __interceptor_dup3@Base 4.9 + __interceptor_dup@Base 4.9 + __interceptor_endgrent@Base 5 + __interceptor_endpwent@Base 5 + __interceptor_epoll_create1@Base 4.9 + __interceptor_epoll_create@Base 4.9 + __interceptor_epoll_ctl@Base 4.9 + __interceptor_epoll_pwait@Base 7 + __interceptor_epoll_wait@Base 4.9 + __interceptor_ether_aton@Base 4.9 + __interceptor_ether_aton_r@Base 4.9 + __interceptor_ether_hostton@Base 4.9 + __interceptor_ether_line@Base 4.9 + __interceptor_ether_ntoa@Base 4.9 + __interceptor_ether_ntoa_r@Base 4.9 + __interceptor_ether_ntohost@Base 4.9 + __interceptor_eventfd@Base 4.9 + __interceptor_eventfd_read@Base 7 + __interceptor_eventfd_write@Base 7 + __interceptor_fclose@Base 4.9 + __interceptor_fdopen@Base 5 + __interceptor_fflush@Base 4.9 + __interceptor_fgetxattr@Base 5 + __interceptor_flistxattr@Base 5 + __interceptor_fmemopen@Base 5 + __interceptor_fopen64@Base 5 + __interceptor_fopen@Base 4.9 + __interceptor_fopencookie@Base 6 + __interceptor_fork@Base 4.9 + __interceptor_fprintf@Base 5 + __interceptor_fread@Base 4.9 + __interceptor_free@Base 4.9 + __interceptor_freopen64@Base 5 + __interceptor_freopen@Base 4.9 + __interceptor_frexp@Base 4.9 + __interceptor_frexpf@Base 4.9 + __interceptor_frexpl@Base 4.9 + __interceptor_fscanf@Base 4.9 + __interceptor_fstat64@Base 4.9 + __interceptor_fstat@Base 4.9 + __interceptor_fstatfs64@Base 4.9 + __interceptor_fstatfs@Base 4.9 + __interceptor_fstatvfs64@Base 4.9 + __interceptor_fstatvfs@Base 4.9 + __interceptor_ftime@Base 5 + __interceptor_fwrite@Base 4.9 + __interceptor_get_current_dir_name@Base 4.9 + __interceptor_getaddrinfo@Base 4.9 + __interceptor_getcwd@Base 4.9 + __interceptor_getdelim@Base 4.9 + __interceptor_getgroups@Base 4.9 + __interceptor_gethostbyaddr@Base 4.9 + __interceptor_gethostbyaddr_r@Base 4.9 + __interceptor_gethostbyname2@Base 4.9 + __interceptor_gethostbyname2_r@Base 4.9 + __interceptor_gethostbyname@Base 4.9 + __interceptor_gethostbyname_r@Base 4.9 + __interceptor_gethostent@Base 4.9 + __interceptor_gethostent_r@Base 4.9 + __interceptor_getifaddrs@Base 5 + __interceptor_getitimer@Base 4.9 + __interceptor_getline@Base 4.9 + __interceptor_getmntent@Base 4.9 + __interceptor_getmntent_r@Base 4.9 + __interceptor_getnameinfo@Base 5 + __interceptor_getpass@Base 5 + __interceptor_getpeername@Base 4.9 + __interceptor_getresgid@Base 5 + __interceptor_getresuid@Base 5 + __interceptor_getsockname@Base 4.9 + __interceptor_getsockopt@Base 4.9 + __interceptor_gettimeofday@Base 4.9 + __interceptor_getxattr@Base 5 + __interceptor_glob64@Base 5 + __interceptor_glob@Base 5 + __interceptor_gmtime@Base 4.9 + __interceptor_gmtime_r@Base 4.9 + __interceptor_iconv@Base 4.9 + __interceptor_if_indextoname@Base 5 + __interceptor_if_nametoindex@Base 5 + __interceptor_inet_aton@Base 4.9 + __interceptor_inet_ntop@Base 4.9 + __interceptor_inet_pton@Base 4.9 + __interceptor_initgroups@Base 4.9 + __interceptor_inotify_init1@Base 4.9 + __interceptor_inotify_init@Base 4.9 + __interceptor_ioctl@Base 4.9 + __interceptor_kill@Base 4.9 + __interceptor_lgamma@Base 4.9 + __interceptor_lgamma_r@Base 4.9 + __interceptor_lgammaf@Base 4.9 + __interceptor_lgammaf_r@Base 4.9 + __interceptor_lgammal@Base 4.9 + __interceptor_lgammal_r@Base 4.9 + __interceptor_lgetxattr@Base 5 + __interceptor_listen@Base 4.9 + __interceptor_listxattr@Base 5 + __interceptor_llistxattr@Base 5 + __interceptor_localtime@Base 4.9 + __interceptor_localtime_r@Base 4.9 + __interceptor_longjmp@Base 4.9 + __interceptor_lrand48_r@Base 4.9 + __interceptor_malloc@Base 4.9 + __interceptor_malloc_usable_size@Base 4.9 + __interceptor_mbsnrtowcs@Base 4.9 + __interceptor_mbsrtowcs@Base 4.9 + __interceptor_mbstowcs@Base 4.9 + __interceptor_memalign@Base 4.9 + __interceptor_memchr@Base 4.9 + __interceptor_memcmp@Base 4.9 + __interceptor_memcpy@Base 4.9 + __interceptor_memmem@Base 7 + __interceptor_memmove@Base 4.9 + __interceptor_memrchr@Base 4.9 + __interceptor_memset@Base 4.9 + __interceptor_mincore@Base 6 + __interceptor_mktime@Base 5 + __interceptor_mlock@Base 4.9 + __interceptor_mlockall@Base 4.9 + __interceptor_mmap64@Base 4.9 + __interceptor_mmap@Base 4.9 + __interceptor_modf@Base 4.9 + __interceptor_modff@Base 4.9 + __interceptor_modfl@Base 4.9 + __interceptor_munlock@Base 4.9 + __interceptor_munlockall@Base 4.9 + __interceptor_munmap@Base 4.9 + __interceptor_nanosleep@Base 4.9 + __interceptor_on_exit@Base 4.9 + __interceptor_open64@Base 4.9 + __interceptor_open@Base 4.9 + __interceptor_open_memstream@Base 5 + __interceptor_open_wmemstream@Base 5 + __interceptor_opendir@Base 4.9 + __interceptor_pipe2@Base 4.9 + __interceptor_pipe@Base 4.9 + __interceptor_poll@Base 4.9 + __interceptor_posix_memalign@Base 4.9 + __interceptor_ppoll@Base 4.9 + __interceptor_prctl@Base 4.9 + __interceptor_pread64@Base 4.9 + __interceptor_pread@Base 4.9 + __interceptor_preadv64@Base 4.9 + __interceptor_preadv@Base 4.9 + __interceptor_printf@Base 5 + __interceptor_process_vm_readv@Base 6 + __interceptor_process_vm_writev@Base 6 + __interceptor_pthread_attr_getaffinity_np@Base 4.9 + __interceptor_pthread_attr_getdetachstate@Base 4.9 + __interceptor_pthread_attr_getguardsize@Base 4.9 + __interceptor_pthread_attr_getinheritsched@Base 4.9 + __interceptor_pthread_attr_getschedparam@Base 4.9 + __interceptor_pthread_attr_getschedpolicy@Base 4.9 + __interceptor_pthread_attr_getscope@Base 4.9 + __interceptor_pthread_attr_getstack@Base 4.9 + __interceptor_pthread_attr_getstacksize@Base 4.9 + __interceptor_pthread_barrier_destroy@Base 4.9 + __interceptor_pthread_barrier_init@Base 4.9 + __interceptor_pthread_barrier_wait@Base 4.9 + __interceptor_pthread_barrierattr_getpshared@Base 5 + __interceptor_pthread_cond_broadcast@Base 4.9 + __interceptor_pthread_cond_destroy@Base 4.9 + __interceptor_pthread_cond_init@Base 4.9 + __interceptor_pthread_cond_signal@Base 4.9 + __interceptor_pthread_cond_timedwait@Base 4.9 + __interceptor_pthread_cond_wait@Base 4.9 + __interceptor_pthread_condattr_getclock@Base 5 + __interceptor_pthread_condattr_getpshared@Base 5 + __interceptor_pthread_create@Base 4.9 + __interceptor_pthread_detach@Base 4.9 + __interceptor_pthread_getschedparam@Base 4.9 + __interceptor_pthread_join@Base 4.9 + __interceptor_pthread_kill@Base 4.9 + __interceptor_pthread_mutex_destroy@Base 4.9 + __interceptor_pthread_mutex_init@Base 4.9 + __interceptor_pthread_mutex_lock@Base 4.9 + __interceptor_pthread_mutex_timedlock@Base 4.9 + __interceptor_pthread_mutex_trylock@Base 4.9 + __interceptor_pthread_mutex_unlock@Base 4.9 + __interceptor_pthread_mutexattr_getprioceiling@Base 5 + __interceptor_pthread_mutexattr_getprotocol@Base 5 + __interceptor_pthread_mutexattr_getpshared@Base 5 + __interceptor_pthread_mutexattr_getrobust@Base 5 + __interceptor_pthread_mutexattr_getrobust_np@Base 5 + __interceptor_pthread_mutexattr_gettype@Base 5 + __interceptor_pthread_once@Base 4.9 + __interceptor_pthread_rwlock_destroy@Base 4.9 + __interceptor_pthread_rwlock_init@Base 4.9 + __interceptor_pthread_rwlock_rdlock@Base 4.9 + __interceptor_pthread_rwlock_timedrdlock@Base 4.9 + __interceptor_pthread_rwlock_timedwrlock@Base 4.9 + __interceptor_pthread_rwlock_tryrdlock@Base 4.9 + __interceptor_pthread_rwlock_trywrlock@Base 4.9 + __interceptor_pthread_rwlock_unlock@Base 4.9 + __interceptor_pthread_rwlock_wrlock@Base 4.9 + __interceptor_pthread_rwlockattr_getkind_np@Base 5 + __interceptor_pthread_rwlockattr_getpshared@Base 5 + __interceptor_pthread_setcancelstate@Base 6 + __interceptor_pthread_setcanceltype@Base 6 + __interceptor_pthread_setname_np@Base 4.9 + __interceptor_pthread_sigmask@Base 7 + __interceptor_pthread_spin_destroy@Base 4.9 + __interceptor_pthread_spin_init@Base 4.9 + __interceptor_pthread_spin_lock@Base 4.9 + __interceptor_pthread_spin_trylock@Base 4.9 + __interceptor_pthread_spin_unlock@Base 4.9 + __interceptor_ptrace@Base 4.9 + __interceptor_puts@Base 4.9 + __interceptor_pvalloc@Base 4.9 + __interceptor_pwrite64@Base 4.9 + __interceptor_pwrite@Base 4.9 + __interceptor_pwritev64@Base 4.9 + __interceptor_pwritev@Base 4.9 + __interceptor_raise@Base 4.9 + __interceptor_rand_r@Base 5 + __interceptor_random_r@Base 4.9 + __interceptor_read@Base 4.9 + __interceptor_readdir64@Base 4.9 + __interceptor_readdir64_r@Base 4.9 + __interceptor_readdir@Base 4.9 + __interceptor_readdir_r@Base 4.9 + __interceptor_readv@Base 4.9 + __interceptor_realloc@Base 4.9 + __interceptor_realpath@Base 4.9 + __interceptor_recv@Base 4.9 + __interceptor_recvfrom@Base 7 + __interceptor_recvmsg@Base 4.9 + __interceptor_remquo@Base 4.9 + __interceptor_remquof@Base 4.9 + __interceptor_remquol@Base 4.9 + __interceptor_rmdir@Base 4.9 + __interceptor_scandir64@Base 4.9 + __interceptor_scandir@Base 4.9 + __interceptor_scanf@Base 4.9 + __interceptor_sched_getaffinity@Base 4.9 + __interceptor_sched_getparam@Base 6 + __interceptor_sem_destroy@Base 4.9 + __interceptor_sem_getvalue@Base 4.9 + __interceptor_sem_init@Base 4.9 + __interceptor_sem_post@Base 4.9 + __interceptor_sem_timedwait@Base 4.9 + __interceptor_sem_trywait@Base 4.9 + __interceptor_sem_wait@Base 4.9 + __interceptor_send@Base 4.9 + __interceptor_sendmsg@Base 4.9 + __interceptor_sendto@Base 7 + __interceptor_setgrent@Base 5 + __interceptor_setitimer@Base 4.9 + __interceptor_setjmp@Base 4.9 + __interceptor_setlocale@Base 4.9 + __interceptor_setpwent@Base 5 + __interceptor_shmctl@Base 4.9 + __interceptor_sigaction@Base 4.9 + __interceptor_sigblock@Base 7 + __interceptor_sigemptyset@Base 4.9 + __interceptor_sigfillset@Base 4.9 + __interceptor_siglongjmp@Base 4.9 + __interceptor_signal@Base 4.9 + __interceptor_signalfd@Base 4.9 + __interceptor_sigpending@Base 4.9 + __interceptor_sigprocmask@Base 4.9 + __interceptor_sigsetjmp@Base 4.9 + __interceptor_sigsetmask@Base 7 + __interceptor_sigsuspend@Base 4.9 + __interceptor_sigtimedwait@Base 4.9 + __interceptor_sigwait@Base 4.9 + __interceptor_sigwaitinfo@Base 4.9 + __interceptor_sincos@Base 4.9 + __interceptor_sincosf@Base 4.9 + __interceptor_sincosl@Base 4.9 + __interceptor_sleep@Base 4.9 + __interceptor_snprintf@Base 5 + __interceptor_socket@Base 4.9 + __interceptor_socketpair@Base 4.9 + __interceptor_sprintf@Base 5 + __interceptor_sscanf@Base 4.9 + __interceptor_statfs64@Base 4.9 + __interceptor_statfs@Base 4.9 + __interceptor_statvfs64@Base 4.9 + __interceptor_statvfs@Base 4.9 + __interceptor_strcasecmp@Base 4.9 + __interceptor_strcasestr@Base 6 + __interceptor_strchr@Base 4.9 + __interceptor_strchrnul@Base 4.9 + __interceptor_strcmp@Base 4.9 + __interceptor_strcpy@Base 4.9 + __interceptor_strcspn@Base 6 + __interceptor_strdup@Base 4.9 + __interceptor_strerror@Base 4.9 + __interceptor_strerror_r@Base 4.9 + __interceptor_strlen@Base 4.9 + __interceptor_strncasecmp@Base 4.9 + __interceptor_strncmp@Base 4.9 + __interceptor_strncpy@Base 4.9 + __interceptor_strnlen@Base 7 + __interceptor_strpbrk@Base 6 + __interceptor_strptime@Base 4.9 + __interceptor_strrchr@Base 4.9 + __interceptor_strspn@Base 6 + __interceptor_strstr@Base 4.9 + __interceptor_strtoimax@Base 4.9 + __interceptor_strtoumax@Base 4.9 + __interceptor_sysinfo@Base 4.9 + __interceptor_tcgetattr@Base 4.9 + __interceptor_tempnam@Base 4.9 + __interceptor_textdomain@Base 4.9 + __interceptor_time@Base 4.9 + __interceptor_timerfd_gettime@Base 5 + __interceptor_timerfd_settime@Base 5 + __interceptor_times@Base 4.9 + __interceptor_tmpfile64@Base 5 + __interceptor_tmpfile@Base 5 + __interceptor_tmpnam@Base 4.9 + __interceptor_tmpnam_r@Base 4.9 + __interceptor_tsearch@Base 5 + __interceptor_ttyname_r@Base 7 + __interceptor_unlink@Base 4.9 + __interceptor_usleep@Base 4.9 + __interceptor_valloc@Base 4.9 + __interceptor_vasprintf@Base 5 + __interceptor_vfork@Base 5 + __interceptor_vfprintf@Base 5 + __interceptor_vfscanf@Base 4.9 + __interceptor_vprintf@Base 5 + __interceptor_vscanf@Base 4.9 + __interceptor_vsnprintf@Base 5 + __interceptor_vsprintf@Base 5 + __interceptor_vsscanf@Base 4.9 + __interceptor_wait3@Base 4.9 + __interceptor_wait4@Base 4.9 + __interceptor_wait@Base 4.9 + __interceptor_waitid@Base 4.9 + __interceptor_waitpid@Base 4.9 + __interceptor_wcrtomb@Base 6 + __interceptor_wcsnrtombs@Base 4.9 + __interceptor_wcsrtombs@Base 4.9 + __interceptor_wcstombs@Base 4.9 + __interceptor_wordexp@Base 4.9 + __interceptor_write@Base 4.9 + __interceptor_writev@Base 4.9 + __interceptor_xdr_bool@Base 5 + __interceptor_xdr_bytes@Base 5 + __interceptor_xdr_char@Base 5 + __interceptor_xdr_double@Base 5 + __interceptor_xdr_enum@Base 5 + __interceptor_xdr_float@Base 5 + __interceptor_xdr_hyper@Base 5 + __interceptor_xdr_int16_t@Base 5 + __interceptor_xdr_int32_t@Base 5 + __interceptor_xdr_int64_t@Base 5 + __interceptor_xdr_int8_t@Base 5 + __interceptor_xdr_int@Base 5 + __interceptor_xdr_long@Base 5 + __interceptor_xdr_longlong_t@Base 5 + __interceptor_xdr_quad_t@Base 5 + __interceptor_xdr_short@Base 5 + __interceptor_xdr_string@Base 5 + __interceptor_xdr_u_char@Base 5 + __interceptor_xdr_u_hyper@Base 5 + __interceptor_xdr_u_int@Base 5 + __interceptor_xdr_u_long@Base 5 + __interceptor_xdr_u_longlong_t@Base 5 + __interceptor_xdr_u_quad_t@Base 5 + __interceptor_xdr_u_short@Base 5 + __interceptor_xdr_uint16_t@Base 5 + __interceptor_xdr_uint32_t@Base 5 + __interceptor_xdr_uint64_t@Base 5 + __interceptor_xdr_uint8_t@Base 5 + __interceptor_xdrmem_create@Base 5 + __interceptor_xdrstdio_create@Base 5 + __isoc99_fprintf@Base 5 + __isoc99_fscanf@Base 4.9 + __isoc99_printf@Base 5 + __isoc99_scanf@Base 4.9 + __isoc99_snprintf@Base 5 + __isoc99_sprintf@Base 5 + __isoc99_sscanf@Base 4.9 + __isoc99_vfprintf@Base 5 + __isoc99_vfscanf@Base 4.9 + __isoc99_vprintf@Base 5 + __isoc99_vscanf@Base 4.9 + __isoc99_vsnprintf@Base 5 + __isoc99_vsprintf@Base 5 + __isoc99_vsscanf@Base 4.9 + __libc_memalign@Base 4.9 + __lxstat64@Base 4.9 + __lxstat@Base 4.9 + __overflow@Base 5 + __res_iclose@Base 4.9 + __sanitizer_cov@Base 4.9 + __sanitizer_cov_dump@Base 4.9 + __sanitizer_cov_indir_call16@Base 5 + __sanitizer_cov_init@Base 5 + __sanitizer_cov_module_init@Base 5 + __sanitizer_cov_trace_basic_block@Base 6 + __sanitizer_cov_trace_cmp1@Base 7 + __sanitizer_cov_trace_cmp2@Base 7 + __sanitizer_cov_trace_cmp4@Base 7 + __sanitizer_cov_trace_cmp8@Base 7 + __sanitizer_cov_trace_cmp@Base 6 + __sanitizer_cov_trace_div4@Base 7 + __sanitizer_cov_trace_div8@Base 7 + __sanitizer_cov_trace_func_enter@Base 6 + __sanitizer_cov_trace_gep@Base 7 + __sanitizer_cov_trace_pc_guard@Base 7 + __sanitizer_cov_trace_pc_guard_init@Base 7 + __sanitizer_cov_trace_pc_indir@Base 7 + __sanitizer_cov_trace_switch@Base 6 + __sanitizer_cov_with_check@Base 6 + __sanitizer_free_hook@Base 5 + __sanitizer_get_allocated_size@Base 5 + __sanitizer_get_coverage_guards@Base 6 + __sanitizer_get_current_allocated_bytes@Base 5 + __sanitizer_get_estimated_allocated_size@Base 5 + __sanitizer_get_free_bytes@Base 5 + __sanitizer_get_heap_size@Base 5 + __sanitizer_get_number_of_counters@Base 6 + __sanitizer_get_ownership@Base 5 + __sanitizer_get_total_unique_caller_callee_pairs@Base 6 + __sanitizer_get_total_unique_coverage@Base 6 + __sanitizer_get_unmapped_bytes@Base 5 + __sanitizer_install_malloc_and_free_hooks@Base 7 + __sanitizer_malloc_hook@Base 5 + __sanitizer_maybe_open_cov_file@Base 5 + __sanitizer_print_stack_trace@Base 5 + __sanitizer_report_error_summary@Base 4.9 + __sanitizer_reset_coverage@Base 6 + __sanitizer_sandbox_on_notify@Base 4.9 + __sanitizer_set_death_callback@Base 6 + __sanitizer_set_report_fd@Base 7 + __sanitizer_set_report_path@Base 4.9 + __sanitizer_symbolize_global@Base 7 + __sanitizer_symbolize_pc@Base 7 + __sanitizer_syscall_post_impl_accept4@Base 4.9 + __sanitizer_syscall_post_impl_accept@Base 4.9 + __sanitizer_syscall_post_impl_access@Base 4.9 + __sanitizer_syscall_post_impl_acct@Base 4.9 + __sanitizer_syscall_post_impl_add_key@Base 4.9 + __sanitizer_syscall_post_impl_adjtimex@Base 4.9 + __sanitizer_syscall_post_impl_alarm@Base 4.9 + __sanitizer_syscall_post_impl_bdflush@Base 4.9 + __sanitizer_syscall_post_impl_bind@Base 4.9 + __sanitizer_syscall_post_impl_brk@Base 4.9 + __sanitizer_syscall_post_impl_capget@Base 4.9 + __sanitizer_syscall_post_impl_capset@Base 4.9 + __sanitizer_syscall_post_impl_chdir@Base 4.9 + __sanitizer_syscall_post_impl_chmod@Base 4.9 + __sanitizer_syscall_post_impl_chown@Base 4.9 + __sanitizer_syscall_post_impl_chroot@Base 4.9 + __sanitizer_syscall_post_impl_clock_adjtime@Base 4.9 + __sanitizer_syscall_post_impl_clock_getres@Base 4.9 + __sanitizer_syscall_post_impl_clock_gettime@Base 4.9 + __sanitizer_syscall_post_impl_clock_nanosleep@Base 4.9 + __sanitizer_syscall_post_impl_clock_settime@Base 4.9 + __sanitizer_syscall_post_impl_close@Base 4.9 + __sanitizer_syscall_post_impl_connect@Base 4.9 + __sanitizer_syscall_post_impl_creat@Base 4.9 + __sanitizer_syscall_post_impl_delete_module@Base 4.9 + __sanitizer_syscall_post_impl_dup2@Base 4.9 + __sanitizer_syscall_post_impl_dup3@Base 4.9 + __sanitizer_syscall_post_impl_dup@Base 4.9 + __sanitizer_syscall_post_impl_epoll_create1@Base 4.9 + __sanitizer_syscall_post_impl_epoll_create@Base 4.9 + __sanitizer_syscall_post_impl_epoll_ctl@Base 4.9 + __sanitizer_syscall_post_impl_epoll_pwait@Base 4.9 + __sanitizer_syscall_post_impl_epoll_wait@Base 4.9 + __sanitizer_syscall_post_impl_eventfd2@Base 4.9 + __sanitizer_syscall_post_impl_eventfd@Base 4.9 + __sanitizer_syscall_post_impl_exit@Base 4.9 + __sanitizer_syscall_post_impl_exit_group@Base 4.9 + __sanitizer_syscall_post_impl_faccessat@Base 4.9 + __sanitizer_syscall_post_impl_fchdir@Base 4.9 + __sanitizer_syscall_post_impl_fchmod@Base 4.9 + __sanitizer_syscall_post_impl_fchmodat@Base 4.9 + __sanitizer_syscall_post_impl_fchown@Base 4.9 + __sanitizer_syscall_post_impl_fchownat@Base 4.9 + __sanitizer_syscall_post_impl_fcntl64@Base 4.9 + __sanitizer_syscall_post_impl_fcntl@Base 4.9 + __sanitizer_syscall_post_impl_fdatasync@Base 4.9 + __sanitizer_syscall_post_impl_fgetxattr@Base 4.9 + __sanitizer_syscall_post_impl_flistxattr@Base 4.9 + __sanitizer_syscall_post_impl_flock@Base 4.9 + __sanitizer_syscall_post_impl_fork@Base 4.9 + __sanitizer_syscall_post_impl_fremovexattr@Base 4.9 + __sanitizer_syscall_post_impl_fsetxattr@Base 4.9 + __sanitizer_syscall_post_impl_fstat64@Base 4.9 + __sanitizer_syscall_post_impl_fstat@Base 4.9 + __sanitizer_syscall_post_impl_fstatat64@Base 4.9 + __sanitizer_syscall_post_impl_fstatfs64@Base 4.9 + __sanitizer_syscall_post_impl_fstatfs@Base 4.9 + __sanitizer_syscall_post_impl_fsync@Base 4.9 + __sanitizer_syscall_post_impl_ftruncate@Base 4.9 + __sanitizer_syscall_post_impl_futimesat@Base 4.9 + __sanitizer_syscall_post_impl_get_mempolicy@Base 4.9 + __sanitizer_syscall_post_impl_get_robust_list@Base 4.9 + __sanitizer_syscall_post_impl_getcpu@Base 4.9 + __sanitizer_syscall_post_impl_getcwd@Base 4.9 + __sanitizer_syscall_post_impl_getdents64@Base 4.9 + __sanitizer_syscall_post_impl_getdents@Base 4.9 + __sanitizer_syscall_post_impl_getegid@Base 4.9 + __sanitizer_syscall_post_impl_geteuid@Base 4.9 + __sanitizer_syscall_post_impl_getgid@Base 4.9 + __sanitizer_syscall_post_impl_getgroups@Base 4.9 + __sanitizer_syscall_post_impl_gethostname@Base 4.9 + __sanitizer_syscall_post_impl_getitimer@Base 4.9 + __sanitizer_syscall_post_impl_getpeername@Base 4.9 + __sanitizer_syscall_post_impl_getpgid@Base 4.9 + __sanitizer_syscall_post_impl_getpgrp@Base 4.9 + __sanitizer_syscall_post_impl_getpid@Base 4.9 + __sanitizer_syscall_post_impl_getppid@Base 4.9 + __sanitizer_syscall_post_impl_getpriority@Base 4.9 + __sanitizer_syscall_post_impl_getresgid@Base 4.9 + __sanitizer_syscall_post_impl_getresuid@Base 4.9 + __sanitizer_syscall_post_impl_getrlimit@Base 4.9 + __sanitizer_syscall_post_impl_getrusage@Base 4.9 + __sanitizer_syscall_post_impl_getsid@Base 4.9 + __sanitizer_syscall_post_impl_getsockname@Base 4.9 + __sanitizer_syscall_post_impl_getsockopt@Base 4.9 + __sanitizer_syscall_post_impl_gettid@Base 4.9 + __sanitizer_syscall_post_impl_gettimeofday@Base 4.9 + __sanitizer_syscall_post_impl_getuid@Base 4.9 + __sanitizer_syscall_post_impl_getxattr@Base 4.9 + __sanitizer_syscall_post_impl_init_module@Base 4.9 + __sanitizer_syscall_post_impl_inotify_add_watch@Base 4.9 + __sanitizer_syscall_post_impl_inotify_init1@Base 4.9 + __sanitizer_syscall_post_impl_inotify_init@Base 4.9 + __sanitizer_syscall_post_impl_inotify_rm_watch@Base 4.9 + __sanitizer_syscall_post_impl_io_cancel@Base 4.9 + __sanitizer_syscall_post_impl_io_destroy@Base 4.9 + __sanitizer_syscall_post_impl_io_getevents@Base 4.9 + __sanitizer_syscall_post_impl_io_setup@Base 4.9 + __sanitizer_syscall_post_impl_io_submit@Base 4.9 + __sanitizer_syscall_post_impl_ioctl@Base 4.9 + __sanitizer_syscall_post_impl_ioperm@Base 4.9 + __sanitizer_syscall_post_impl_ioprio_get@Base 4.9 + __sanitizer_syscall_post_impl_ioprio_set@Base 4.9 + __sanitizer_syscall_post_impl_ipc@Base 4.9 + __sanitizer_syscall_post_impl_kexec_load@Base 4.9 + __sanitizer_syscall_post_impl_keyctl@Base 4.9 + __sanitizer_syscall_post_impl_kill@Base 4.9 + __sanitizer_syscall_post_impl_lchown@Base 4.9 + __sanitizer_syscall_post_impl_lgetxattr@Base 4.9 + __sanitizer_syscall_post_impl_link@Base 4.9 + __sanitizer_syscall_post_impl_linkat@Base 4.9 + __sanitizer_syscall_post_impl_listen@Base 4.9 + __sanitizer_syscall_post_impl_listxattr@Base 4.9 + __sanitizer_syscall_post_impl_llistxattr@Base 4.9 + __sanitizer_syscall_post_impl_llseek@Base 4.9 + __sanitizer_syscall_post_impl_lookup_dcookie@Base 4.9 + __sanitizer_syscall_post_impl_lremovexattr@Base 4.9 + __sanitizer_syscall_post_impl_lseek@Base 4.9 + __sanitizer_syscall_post_impl_lsetxattr@Base 4.9 + __sanitizer_syscall_post_impl_lstat64@Base 4.9 + __sanitizer_syscall_post_impl_lstat@Base 4.9 + __sanitizer_syscall_post_impl_madvise@Base 4.9 + __sanitizer_syscall_post_impl_mbind@Base 4.9 + __sanitizer_syscall_post_impl_migrate_pages@Base 4.9 + __sanitizer_syscall_post_impl_mincore@Base 4.9 + __sanitizer_syscall_post_impl_mkdir@Base 4.9 + __sanitizer_syscall_post_impl_mkdirat@Base 4.9 + __sanitizer_syscall_post_impl_mknod@Base 4.9 + __sanitizer_syscall_post_impl_mknodat@Base 4.9 + __sanitizer_syscall_post_impl_mlock@Base 4.9 + __sanitizer_syscall_post_impl_mlockall@Base 4.9 + __sanitizer_syscall_post_impl_mmap_pgoff@Base 4.9 + __sanitizer_syscall_post_impl_mount@Base 4.9 + __sanitizer_syscall_post_impl_move_pages@Base 4.9 + __sanitizer_syscall_post_impl_mprotect@Base 4.9 + __sanitizer_syscall_post_impl_mq_getsetattr@Base 4.9 + __sanitizer_syscall_post_impl_mq_notify@Base 4.9 + __sanitizer_syscall_post_impl_mq_open@Base 4.9 + __sanitizer_syscall_post_impl_mq_timedreceive@Base 4.9 + __sanitizer_syscall_post_impl_mq_timedsend@Base 4.9 + __sanitizer_syscall_post_impl_mq_unlink@Base 4.9 + __sanitizer_syscall_post_impl_mremap@Base 4.9 + __sanitizer_syscall_post_impl_msgctl@Base 4.9 + __sanitizer_syscall_post_impl_msgget@Base 4.9 + __sanitizer_syscall_post_impl_msgrcv@Base 4.9 + __sanitizer_syscall_post_impl_msgsnd@Base 4.9 + __sanitizer_syscall_post_impl_msync@Base 4.9 + __sanitizer_syscall_post_impl_munlock@Base 4.9 + __sanitizer_syscall_post_impl_munlockall@Base 4.9 + __sanitizer_syscall_post_impl_munmap@Base 4.9 + __sanitizer_syscall_post_impl_name_to_handle_at@Base 4.9 + __sanitizer_syscall_post_impl_nanosleep@Base 4.9 + __sanitizer_syscall_post_impl_newfstat@Base 4.9 + __sanitizer_syscall_post_impl_newfstatat@Base 4.9 + __sanitizer_syscall_post_impl_newlstat@Base 4.9 + __sanitizer_syscall_post_impl_newstat@Base 4.9 + __sanitizer_syscall_post_impl_newuname@Base 4.9 + __sanitizer_syscall_post_impl_ni_syscall@Base 4.9 + __sanitizer_syscall_post_impl_nice@Base 4.9 + __sanitizer_syscall_post_impl_old_getrlimit@Base 4.9 + __sanitizer_syscall_post_impl_old_mmap@Base 4.9 + __sanitizer_syscall_post_impl_old_readdir@Base 4.9 + __sanitizer_syscall_post_impl_old_select@Base 4.9 + __sanitizer_syscall_post_impl_oldumount@Base 4.9 + __sanitizer_syscall_post_impl_olduname@Base 4.9 + __sanitizer_syscall_post_impl_open@Base 4.9 + __sanitizer_syscall_post_impl_open_by_handle_at@Base 4.9 + __sanitizer_syscall_post_impl_openat@Base 4.9 + __sanitizer_syscall_post_impl_pause@Base 4.9 + __sanitizer_syscall_post_impl_pciconfig_iobase@Base 4.9 + __sanitizer_syscall_post_impl_pciconfig_read@Base 4.9 + __sanitizer_syscall_post_impl_pciconfig_write@Base 4.9 + __sanitizer_syscall_post_impl_perf_event_open@Base 4.9 + __sanitizer_syscall_post_impl_personality@Base 4.9 + __sanitizer_syscall_post_impl_pipe2@Base 4.9 + __sanitizer_syscall_post_impl_pipe@Base 4.9 + __sanitizer_syscall_post_impl_pivot_root@Base 4.9 + __sanitizer_syscall_post_impl_poll@Base 4.9 + __sanitizer_syscall_post_impl_ppoll@Base 4.9 + __sanitizer_syscall_post_impl_pread64@Base 4.9 + __sanitizer_syscall_post_impl_preadv@Base 4.9 + __sanitizer_syscall_post_impl_prlimit64@Base 4.9 + __sanitizer_syscall_post_impl_process_vm_readv@Base 4.9 + __sanitizer_syscall_post_impl_process_vm_writev@Base 4.9 + __sanitizer_syscall_post_impl_pselect6@Base 4.9 + __sanitizer_syscall_post_impl_ptrace@Base 4.9 + __sanitizer_syscall_post_impl_pwrite64@Base 4.9 + __sanitizer_syscall_post_impl_pwritev@Base 4.9 + __sanitizer_syscall_post_impl_quotactl@Base 4.9 + __sanitizer_syscall_post_impl_read@Base 4.9 + __sanitizer_syscall_post_impl_readlink@Base 4.9 + __sanitizer_syscall_post_impl_readlinkat@Base 4.9 + __sanitizer_syscall_post_impl_readv@Base 4.9 + __sanitizer_syscall_post_impl_reboot@Base 4.9 + __sanitizer_syscall_post_impl_recv@Base 4.9 + __sanitizer_syscall_post_impl_recvfrom@Base 4.9 + __sanitizer_syscall_post_impl_recvmmsg@Base 4.9 + __sanitizer_syscall_post_impl_recvmsg@Base 4.9 + __sanitizer_syscall_post_impl_remap_file_pages@Base 4.9 + __sanitizer_syscall_post_impl_removexattr@Base 4.9 + __sanitizer_syscall_post_impl_rename@Base 4.9 + __sanitizer_syscall_post_impl_renameat@Base 4.9 + __sanitizer_syscall_post_impl_request_key@Base 4.9 + __sanitizer_syscall_post_impl_restart_syscall@Base 4.9 + __sanitizer_syscall_post_impl_rmdir@Base 4.9 + __sanitizer_syscall_post_impl_rt_sigaction@Base 7 + __sanitizer_syscall_post_impl_rt_sigpending@Base 4.9 + __sanitizer_syscall_post_impl_rt_sigprocmask@Base 4.9 + __sanitizer_syscall_post_impl_rt_sigqueueinfo@Base 4.9 + __sanitizer_syscall_post_impl_rt_sigtimedwait@Base 4.9 + __sanitizer_syscall_post_impl_rt_tgsigqueueinfo@Base 4.9 + __sanitizer_syscall_post_impl_sched_get_priority_max@Base 4.9 + __sanitizer_syscall_post_impl_sched_get_priority_min@Base 4.9 + __sanitizer_syscall_post_impl_sched_getaffinity@Base 4.9 + __sanitizer_syscall_post_impl_sched_getparam@Base 4.9 + __sanitizer_syscall_post_impl_sched_getscheduler@Base 4.9 + __sanitizer_syscall_post_impl_sched_rr_get_interval@Base 4.9 + __sanitizer_syscall_post_impl_sched_setaffinity@Base 4.9 + __sanitizer_syscall_post_impl_sched_setparam@Base 4.9 + __sanitizer_syscall_post_impl_sched_setscheduler@Base 4.9 + __sanitizer_syscall_post_impl_sched_yield@Base 4.9 + __sanitizer_syscall_post_impl_select@Base 4.9 + __sanitizer_syscall_post_impl_semctl@Base 4.9 + __sanitizer_syscall_post_impl_semget@Base 4.9 + __sanitizer_syscall_post_impl_semop@Base 4.9 + __sanitizer_syscall_post_impl_semtimedop@Base 4.9 + __sanitizer_syscall_post_impl_send@Base 4.9 + __sanitizer_syscall_post_impl_sendfile64@Base 4.9 + __sanitizer_syscall_post_impl_sendfile@Base 4.9 + __sanitizer_syscall_post_impl_sendmmsg@Base 4.9 + __sanitizer_syscall_post_impl_sendmsg@Base 4.9 + __sanitizer_syscall_post_impl_sendto@Base 4.9 + __sanitizer_syscall_post_impl_set_mempolicy@Base 4.9 + __sanitizer_syscall_post_impl_set_robust_list@Base 4.9 + __sanitizer_syscall_post_impl_set_tid_address@Base 4.9 + __sanitizer_syscall_post_impl_setdomainname@Base 4.9 + __sanitizer_syscall_post_impl_setfsgid@Base 4.9 + __sanitizer_syscall_post_impl_setfsuid@Base 4.9 + __sanitizer_syscall_post_impl_setgid@Base 4.9 + __sanitizer_syscall_post_impl_setgroups@Base 4.9 + __sanitizer_syscall_post_impl_sethostname@Base 4.9 + __sanitizer_syscall_post_impl_setitimer@Base 4.9 + __sanitizer_syscall_post_impl_setns@Base 4.9 + __sanitizer_syscall_post_impl_setpgid@Base 4.9 + __sanitizer_syscall_post_impl_setpriority@Base 4.9 + __sanitizer_syscall_post_impl_setregid@Base 4.9 + __sanitizer_syscall_post_impl_setresgid@Base 4.9 + __sanitizer_syscall_post_impl_setresuid@Base 4.9 + __sanitizer_syscall_post_impl_setreuid@Base 4.9 + __sanitizer_syscall_post_impl_setrlimit@Base 4.9 + __sanitizer_syscall_post_impl_setsid@Base 4.9 + __sanitizer_syscall_post_impl_setsockopt@Base 4.9 + __sanitizer_syscall_post_impl_settimeofday@Base 4.9 + __sanitizer_syscall_post_impl_setuid@Base 4.9 + __sanitizer_syscall_post_impl_setxattr@Base 4.9 + __sanitizer_syscall_post_impl_sgetmask@Base 4.9 + __sanitizer_syscall_post_impl_shmat@Base 4.9 + __sanitizer_syscall_post_impl_shmctl@Base 4.9 + __sanitizer_syscall_post_impl_shmdt@Base 4.9 + __sanitizer_syscall_post_impl_shmget@Base 4.9 + __sanitizer_syscall_post_impl_shutdown@Base 4.9 + __sanitizer_syscall_post_impl_sigaction@Base 7 + __sanitizer_syscall_post_impl_signal@Base 4.9 + __sanitizer_syscall_post_impl_signalfd4@Base 4.9 + __sanitizer_syscall_post_impl_signalfd@Base 4.9 + __sanitizer_syscall_post_impl_sigpending@Base 4.9 + __sanitizer_syscall_post_impl_sigprocmask@Base 4.9 + __sanitizer_syscall_post_impl_socket@Base 4.9 + __sanitizer_syscall_post_impl_socketcall@Base 4.9 + __sanitizer_syscall_post_impl_socketpair@Base 4.9 + __sanitizer_syscall_post_impl_splice@Base 4.9 + __sanitizer_syscall_post_impl_spu_create@Base 4.9 + __sanitizer_syscall_post_impl_spu_run@Base 4.9 + __sanitizer_syscall_post_impl_ssetmask@Base 4.9 + __sanitizer_syscall_post_impl_stat64@Base 4.9 + __sanitizer_syscall_post_impl_stat@Base 4.9 + __sanitizer_syscall_post_impl_statfs64@Base 4.9 + __sanitizer_syscall_post_impl_statfs@Base 4.9 + __sanitizer_syscall_post_impl_stime@Base 4.9 + __sanitizer_syscall_post_impl_swapoff@Base 4.9 + __sanitizer_syscall_post_impl_swapon@Base 4.9 + __sanitizer_syscall_post_impl_symlink@Base 4.9 + __sanitizer_syscall_post_impl_symlinkat@Base 4.9 + __sanitizer_syscall_post_impl_sync@Base 4.9 + __sanitizer_syscall_post_impl_syncfs@Base 4.9 + __sanitizer_syscall_post_impl_sysctl@Base 4.9 + __sanitizer_syscall_post_impl_sysfs@Base 4.9 + __sanitizer_syscall_post_impl_sysinfo@Base 4.9 + __sanitizer_syscall_post_impl_syslog@Base 4.9 + __sanitizer_syscall_post_impl_tee@Base 4.9 + __sanitizer_syscall_post_impl_tgkill@Base 4.9 + __sanitizer_syscall_post_impl_time@Base 4.9 + __sanitizer_syscall_post_impl_timer_create@Base 4.9 + __sanitizer_syscall_post_impl_timer_delete@Base 4.9 + __sanitizer_syscall_post_impl_timer_getoverrun@Base 4.9 + __sanitizer_syscall_post_impl_timer_gettime@Base 4.9 + __sanitizer_syscall_post_impl_timer_settime@Base 4.9 + __sanitizer_syscall_post_impl_timerfd_create@Base 4.9 + __sanitizer_syscall_post_impl_timerfd_gettime@Base 4.9 + __sanitizer_syscall_post_impl_timerfd_settime@Base 4.9 + __sanitizer_syscall_post_impl_times@Base 4.9 + __sanitizer_syscall_post_impl_tkill@Base 4.9 + __sanitizer_syscall_post_impl_truncate@Base 4.9 + __sanitizer_syscall_post_impl_umask@Base 4.9 + __sanitizer_syscall_post_impl_umount@Base 4.9 + __sanitizer_syscall_post_impl_uname@Base 4.9 + __sanitizer_syscall_post_impl_unlink@Base 4.9 + __sanitizer_syscall_post_impl_unlinkat@Base 4.9 + __sanitizer_syscall_post_impl_unshare@Base 4.9 + __sanitizer_syscall_post_impl_uselib@Base 4.9 + __sanitizer_syscall_post_impl_ustat@Base 4.9 + __sanitizer_syscall_post_impl_utime@Base 4.9 + __sanitizer_syscall_post_impl_utimensat@Base 4.9 + __sanitizer_syscall_post_impl_utimes@Base 4.9 + __sanitizer_syscall_post_impl_vfork@Base 4.9 + __sanitizer_syscall_post_impl_vhangup@Base 4.9 + __sanitizer_syscall_post_impl_vmsplice@Base 4.9 + __sanitizer_syscall_post_impl_wait4@Base 4.9 + __sanitizer_syscall_post_impl_waitid@Base 4.9 + __sanitizer_syscall_post_impl_waitpid@Base 4.9 + __sanitizer_syscall_post_impl_write@Base 4.9 + __sanitizer_syscall_post_impl_writev@Base 4.9 + __sanitizer_syscall_pre_impl_accept4@Base 4.9 + __sanitizer_syscall_pre_impl_accept@Base 4.9 + __sanitizer_syscall_pre_impl_access@Base 4.9 + __sanitizer_syscall_pre_impl_acct@Base 4.9 + __sanitizer_syscall_pre_impl_add_key@Base 4.9 + __sanitizer_syscall_pre_impl_adjtimex@Base 4.9 + __sanitizer_syscall_pre_impl_alarm@Base 4.9 + __sanitizer_syscall_pre_impl_bdflush@Base 4.9 + __sanitizer_syscall_pre_impl_bind@Base 4.9 + __sanitizer_syscall_pre_impl_brk@Base 4.9 + __sanitizer_syscall_pre_impl_capget@Base 4.9 + __sanitizer_syscall_pre_impl_capset@Base 4.9 + __sanitizer_syscall_pre_impl_chdir@Base 4.9 + __sanitizer_syscall_pre_impl_chmod@Base 4.9 + __sanitizer_syscall_pre_impl_chown@Base 4.9 + __sanitizer_syscall_pre_impl_chroot@Base 4.9 + __sanitizer_syscall_pre_impl_clock_adjtime@Base 4.9 + __sanitizer_syscall_pre_impl_clock_getres@Base 4.9 + __sanitizer_syscall_pre_impl_clock_gettime@Base 4.9 + __sanitizer_syscall_pre_impl_clock_nanosleep@Base 4.9 + __sanitizer_syscall_pre_impl_clock_settime@Base 4.9 + __sanitizer_syscall_pre_impl_close@Base 4.9 + __sanitizer_syscall_pre_impl_connect@Base 4.9 + __sanitizer_syscall_pre_impl_creat@Base 4.9 + __sanitizer_syscall_pre_impl_delete_module@Base 4.9 + __sanitizer_syscall_pre_impl_dup2@Base 4.9 + __sanitizer_syscall_pre_impl_dup3@Base 4.9 + __sanitizer_syscall_pre_impl_dup@Base 4.9 + __sanitizer_syscall_pre_impl_epoll_create1@Base 4.9 + __sanitizer_syscall_pre_impl_epoll_create@Base 4.9 + __sanitizer_syscall_pre_impl_epoll_ctl@Base 4.9 + __sanitizer_syscall_pre_impl_epoll_pwait@Base 4.9 + __sanitizer_syscall_pre_impl_epoll_wait@Base 4.9 + __sanitizer_syscall_pre_impl_eventfd2@Base 4.9 + __sanitizer_syscall_pre_impl_eventfd@Base 4.9 + __sanitizer_syscall_pre_impl_exit@Base 4.9 + __sanitizer_syscall_pre_impl_exit_group@Base 4.9 + __sanitizer_syscall_pre_impl_faccessat@Base 4.9 + __sanitizer_syscall_pre_impl_fchdir@Base 4.9 + __sanitizer_syscall_pre_impl_fchmod@Base 4.9 + __sanitizer_syscall_pre_impl_fchmodat@Base 4.9 + __sanitizer_syscall_pre_impl_fchown@Base 4.9 + __sanitizer_syscall_pre_impl_fchownat@Base 4.9 + __sanitizer_syscall_pre_impl_fcntl64@Base 4.9 + __sanitizer_syscall_pre_impl_fcntl@Base 4.9 + __sanitizer_syscall_pre_impl_fdatasync@Base 4.9 + __sanitizer_syscall_pre_impl_fgetxattr@Base 4.9 + __sanitizer_syscall_pre_impl_flistxattr@Base 4.9 + __sanitizer_syscall_pre_impl_flock@Base 4.9 + __sanitizer_syscall_pre_impl_fork@Base 4.9 + __sanitizer_syscall_pre_impl_fremovexattr@Base 4.9 + __sanitizer_syscall_pre_impl_fsetxattr@Base 4.9 + __sanitizer_syscall_pre_impl_fstat64@Base 4.9 + __sanitizer_syscall_pre_impl_fstat@Base 4.9 + __sanitizer_syscall_pre_impl_fstatat64@Base 4.9 + __sanitizer_syscall_pre_impl_fstatfs64@Base 4.9 + __sanitizer_syscall_pre_impl_fstatfs@Base 4.9 + __sanitizer_syscall_pre_impl_fsync@Base 4.9 + __sanitizer_syscall_pre_impl_ftruncate@Base 4.9 + __sanitizer_syscall_pre_impl_futimesat@Base 4.9 + __sanitizer_syscall_pre_impl_get_mempolicy@Base 4.9 + __sanitizer_syscall_pre_impl_get_robust_list@Base 4.9 + __sanitizer_syscall_pre_impl_getcpu@Base 4.9 + __sanitizer_syscall_pre_impl_getcwd@Base 4.9 + __sanitizer_syscall_pre_impl_getdents64@Base 4.9 + __sanitizer_syscall_pre_impl_getdents@Base 4.9 + __sanitizer_syscall_pre_impl_getegid@Base 4.9 + __sanitizer_syscall_pre_impl_geteuid@Base 4.9 + __sanitizer_syscall_pre_impl_getgid@Base 4.9 + __sanitizer_syscall_pre_impl_getgroups@Base 4.9 + __sanitizer_syscall_pre_impl_gethostname@Base 4.9 + __sanitizer_syscall_pre_impl_getitimer@Base 4.9 + __sanitizer_syscall_pre_impl_getpeername@Base 4.9 + __sanitizer_syscall_pre_impl_getpgid@Base 4.9 + __sanitizer_syscall_pre_impl_getpgrp@Base 4.9 + __sanitizer_syscall_pre_impl_getpid@Base 4.9 + __sanitizer_syscall_pre_impl_getppid@Base 4.9 + __sanitizer_syscall_pre_impl_getpriority@Base 4.9 + __sanitizer_syscall_pre_impl_getresgid@Base 4.9 + __sanitizer_syscall_pre_impl_getresuid@Base 4.9 + __sanitizer_syscall_pre_impl_getrlimit@Base 4.9 + __sanitizer_syscall_pre_impl_getrusage@Base 4.9 + __sanitizer_syscall_pre_impl_getsid@Base 4.9 + __sanitizer_syscall_pre_impl_getsockname@Base 4.9 + __sanitizer_syscall_pre_impl_getsockopt@Base 4.9 + __sanitizer_syscall_pre_impl_gettid@Base 4.9 + __sanitizer_syscall_pre_impl_gettimeofday@Base 4.9 + __sanitizer_syscall_pre_impl_getuid@Base 4.9 + __sanitizer_syscall_pre_impl_getxattr@Base 4.9 + __sanitizer_syscall_pre_impl_init_module@Base 4.9 + __sanitizer_syscall_pre_impl_inotify_add_watch@Base 4.9 + __sanitizer_syscall_pre_impl_inotify_init1@Base 4.9 + __sanitizer_syscall_pre_impl_inotify_init@Base 4.9 + __sanitizer_syscall_pre_impl_inotify_rm_watch@Base 4.9 + __sanitizer_syscall_pre_impl_io_cancel@Base 4.9 + __sanitizer_syscall_pre_impl_io_destroy@Base 4.9 + __sanitizer_syscall_pre_impl_io_getevents@Base 4.9 + __sanitizer_syscall_pre_impl_io_setup@Base 4.9 + __sanitizer_syscall_pre_impl_io_submit@Base 4.9 + __sanitizer_syscall_pre_impl_ioctl@Base 4.9 + __sanitizer_syscall_pre_impl_ioperm@Base 4.9 + __sanitizer_syscall_pre_impl_ioprio_get@Base 4.9 + __sanitizer_syscall_pre_impl_ioprio_set@Base 4.9 + __sanitizer_syscall_pre_impl_ipc@Base 4.9 + __sanitizer_syscall_pre_impl_kexec_load@Base 4.9 + __sanitizer_syscall_pre_impl_keyctl@Base 4.9 + __sanitizer_syscall_pre_impl_kill@Base 4.9 + __sanitizer_syscall_pre_impl_lchown@Base 4.9 + __sanitizer_syscall_pre_impl_lgetxattr@Base 4.9 + __sanitizer_syscall_pre_impl_link@Base 4.9 + __sanitizer_syscall_pre_impl_linkat@Base 4.9 + __sanitizer_syscall_pre_impl_listen@Base 4.9 + __sanitizer_syscall_pre_impl_listxattr@Base 4.9 + __sanitizer_syscall_pre_impl_llistxattr@Base 4.9 + __sanitizer_syscall_pre_impl_llseek@Base 4.9 + __sanitizer_syscall_pre_impl_lookup_dcookie@Base 4.9 + __sanitizer_syscall_pre_impl_lremovexattr@Base 4.9 + __sanitizer_syscall_pre_impl_lseek@Base 4.9 + __sanitizer_syscall_pre_impl_lsetxattr@Base 4.9 + __sanitizer_syscall_pre_impl_lstat64@Base 4.9 + __sanitizer_syscall_pre_impl_lstat@Base 4.9 + __sanitizer_syscall_pre_impl_madvise@Base 4.9 + __sanitizer_syscall_pre_impl_mbind@Base 4.9 + __sanitizer_syscall_pre_impl_migrate_pages@Base 4.9 + __sanitizer_syscall_pre_impl_mincore@Base 4.9 + __sanitizer_syscall_pre_impl_mkdir@Base 4.9 + __sanitizer_syscall_pre_impl_mkdirat@Base 4.9 + __sanitizer_syscall_pre_impl_mknod@Base 4.9 + __sanitizer_syscall_pre_impl_mknodat@Base 4.9 + __sanitizer_syscall_pre_impl_mlock@Base 4.9 + __sanitizer_syscall_pre_impl_mlockall@Base 4.9 + __sanitizer_syscall_pre_impl_mmap_pgoff@Base 4.9 + __sanitizer_syscall_pre_impl_mount@Base 4.9 + __sanitizer_syscall_pre_impl_move_pages@Base 4.9 + __sanitizer_syscall_pre_impl_mprotect@Base 4.9 + __sanitizer_syscall_pre_impl_mq_getsetattr@Base 4.9 + __sanitizer_syscall_pre_impl_mq_notify@Base 4.9 + __sanitizer_syscall_pre_impl_mq_open@Base 4.9 + __sanitizer_syscall_pre_impl_mq_timedreceive@Base 4.9 + __sanitizer_syscall_pre_impl_mq_timedsend@Base 4.9 + __sanitizer_syscall_pre_impl_mq_unlink@Base 4.9 + __sanitizer_syscall_pre_impl_mremap@Base 4.9 + __sanitizer_syscall_pre_impl_msgctl@Base 4.9 + __sanitizer_syscall_pre_impl_msgget@Base 4.9 + __sanitizer_syscall_pre_impl_msgrcv@Base 4.9 + __sanitizer_syscall_pre_impl_msgsnd@Base 4.9 + __sanitizer_syscall_pre_impl_msync@Base 4.9 + __sanitizer_syscall_pre_impl_munlock@Base 4.9 + __sanitizer_syscall_pre_impl_munlockall@Base 4.9 + __sanitizer_syscall_pre_impl_munmap@Base 4.9 + __sanitizer_syscall_pre_impl_name_to_handle_at@Base 4.9 + __sanitizer_syscall_pre_impl_nanosleep@Base 4.9 + __sanitizer_syscall_pre_impl_newfstat@Base 4.9 + __sanitizer_syscall_pre_impl_newfstatat@Base 4.9 + __sanitizer_syscall_pre_impl_newlstat@Base 4.9 + __sanitizer_syscall_pre_impl_newstat@Base 4.9 + __sanitizer_syscall_pre_impl_newuname@Base 4.9 + __sanitizer_syscall_pre_impl_ni_syscall@Base 4.9 + __sanitizer_syscall_pre_impl_nice@Base 4.9 + __sanitizer_syscall_pre_impl_old_getrlimit@Base 4.9 + __sanitizer_syscall_pre_impl_old_mmap@Base 4.9 + __sanitizer_syscall_pre_impl_old_readdir@Base 4.9 + __sanitizer_syscall_pre_impl_old_select@Base 4.9 + __sanitizer_syscall_pre_impl_oldumount@Base 4.9 + __sanitizer_syscall_pre_impl_olduname@Base 4.9 + __sanitizer_syscall_pre_impl_open@Base 4.9 + __sanitizer_syscall_pre_impl_open_by_handle_at@Base 4.9 + __sanitizer_syscall_pre_impl_openat@Base 4.9 + __sanitizer_syscall_pre_impl_pause@Base 4.9 + __sanitizer_syscall_pre_impl_pciconfig_iobase@Base 4.9 + __sanitizer_syscall_pre_impl_pciconfig_read@Base 4.9 + __sanitizer_syscall_pre_impl_pciconfig_write@Base 4.9 + __sanitizer_syscall_pre_impl_perf_event_open@Base 4.9 + __sanitizer_syscall_pre_impl_personality@Base 4.9 + __sanitizer_syscall_pre_impl_pipe2@Base 4.9 + __sanitizer_syscall_pre_impl_pipe@Base 4.9 + __sanitizer_syscall_pre_impl_pivot_root@Base 4.9 + __sanitizer_syscall_pre_impl_poll@Base 4.9 + __sanitizer_syscall_pre_impl_ppoll@Base 4.9 + __sanitizer_syscall_pre_impl_pread64@Base 4.9 + __sanitizer_syscall_pre_impl_preadv@Base 4.9 + __sanitizer_syscall_pre_impl_prlimit64@Base 4.9 + __sanitizer_syscall_pre_impl_process_vm_readv@Base 4.9 + __sanitizer_syscall_pre_impl_process_vm_writev@Base 4.9 + __sanitizer_syscall_pre_impl_pselect6@Base 4.9 + __sanitizer_syscall_pre_impl_ptrace@Base 4.9 + __sanitizer_syscall_pre_impl_pwrite64@Base 4.9 + __sanitizer_syscall_pre_impl_pwritev@Base 4.9 + __sanitizer_syscall_pre_impl_quotactl@Base 4.9 + __sanitizer_syscall_pre_impl_read@Base 4.9 + __sanitizer_syscall_pre_impl_readlink@Base 4.9 + __sanitizer_syscall_pre_impl_readlinkat@Base 4.9 + __sanitizer_syscall_pre_impl_readv@Base 4.9 + __sanitizer_syscall_pre_impl_reboot@Base 4.9 + __sanitizer_syscall_pre_impl_recv@Base 4.9 + __sanitizer_syscall_pre_impl_recvfrom@Base 4.9 + __sanitizer_syscall_pre_impl_recvmmsg@Base 4.9 + __sanitizer_syscall_pre_impl_recvmsg@Base 4.9 + __sanitizer_syscall_pre_impl_remap_file_pages@Base 4.9 + __sanitizer_syscall_pre_impl_removexattr@Base 4.9 + __sanitizer_syscall_pre_impl_rename@Base 4.9 + __sanitizer_syscall_pre_impl_renameat@Base 4.9 + __sanitizer_syscall_pre_impl_request_key@Base 4.9 + __sanitizer_syscall_pre_impl_restart_syscall@Base 4.9 + __sanitizer_syscall_pre_impl_rmdir@Base 4.9 + __sanitizer_syscall_pre_impl_rt_sigaction@Base 7 + __sanitizer_syscall_pre_impl_rt_sigpending@Base 4.9 + __sanitizer_syscall_pre_impl_rt_sigprocmask@Base 4.9 + __sanitizer_syscall_pre_impl_rt_sigqueueinfo@Base 4.9 + __sanitizer_syscall_pre_impl_rt_sigtimedwait@Base 4.9 + __sanitizer_syscall_pre_impl_rt_tgsigqueueinfo@Base 4.9 + __sanitizer_syscall_pre_impl_sched_get_priority_max@Base 4.9 + __sanitizer_syscall_pre_impl_sched_get_priority_min@Base 4.9 + __sanitizer_syscall_pre_impl_sched_getaffinity@Base 4.9 + __sanitizer_syscall_pre_impl_sched_getparam@Base 4.9 + __sanitizer_syscall_pre_impl_sched_getscheduler@Base 4.9 + __sanitizer_syscall_pre_impl_sched_rr_get_interval@Base 4.9 + __sanitizer_syscall_pre_impl_sched_setaffinity@Base 4.9 + __sanitizer_syscall_pre_impl_sched_setparam@Base 4.9 + __sanitizer_syscall_pre_impl_sched_setscheduler@Base 4.9 + __sanitizer_syscall_pre_impl_sched_yield@Base 4.9 + __sanitizer_syscall_pre_impl_select@Base 4.9 + __sanitizer_syscall_pre_impl_semctl@Base 4.9 + __sanitizer_syscall_pre_impl_semget@Base 4.9 + __sanitizer_syscall_pre_impl_semop@Base 4.9 + __sanitizer_syscall_pre_impl_semtimedop@Base 4.9 + __sanitizer_syscall_pre_impl_send@Base 4.9 + __sanitizer_syscall_pre_impl_sendfile64@Base 4.9 + __sanitizer_syscall_pre_impl_sendfile@Base 4.9 + __sanitizer_syscall_pre_impl_sendmmsg@Base 4.9 + __sanitizer_syscall_pre_impl_sendmsg@Base 4.9 + __sanitizer_syscall_pre_impl_sendto@Base 4.9 + __sanitizer_syscall_pre_impl_set_mempolicy@Base 4.9 + __sanitizer_syscall_pre_impl_set_robust_list@Base 4.9 + __sanitizer_syscall_pre_impl_set_tid_address@Base 4.9 + __sanitizer_syscall_pre_impl_setdomainname@Base 4.9 + __sanitizer_syscall_pre_impl_setfsgid@Base 4.9 + __sanitizer_syscall_pre_impl_setfsuid@Base 4.9 + __sanitizer_syscall_pre_impl_setgid@Base 4.9 + __sanitizer_syscall_pre_impl_setgroups@Base 4.9 + __sanitizer_syscall_pre_impl_sethostname@Base 4.9 + __sanitizer_syscall_pre_impl_setitimer@Base 4.9 + __sanitizer_syscall_pre_impl_setns@Base 4.9 + __sanitizer_syscall_pre_impl_setpgid@Base 4.9 + __sanitizer_syscall_pre_impl_setpriority@Base 4.9 + __sanitizer_syscall_pre_impl_setregid@Base 4.9 + __sanitizer_syscall_pre_impl_setresgid@Base 4.9 + __sanitizer_syscall_pre_impl_setresuid@Base 4.9 + __sanitizer_syscall_pre_impl_setreuid@Base 4.9 + __sanitizer_syscall_pre_impl_setrlimit@Base 4.9 + __sanitizer_syscall_pre_impl_setsid@Base 4.9 + __sanitizer_syscall_pre_impl_setsockopt@Base 4.9 + __sanitizer_syscall_pre_impl_settimeofday@Base 4.9 + __sanitizer_syscall_pre_impl_setuid@Base 4.9 + __sanitizer_syscall_pre_impl_setxattr@Base 4.9 + __sanitizer_syscall_pre_impl_sgetmask@Base 4.9 + __sanitizer_syscall_pre_impl_shmat@Base 4.9 + __sanitizer_syscall_pre_impl_shmctl@Base 4.9 + __sanitizer_syscall_pre_impl_shmdt@Base 4.9 + __sanitizer_syscall_pre_impl_shmget@Base 4.9 + __sanitizer_syscall_pre_impl_shutdown@Base 4.9 + __sanitizer_syscall_pre_impl_sigaction@Base 7 + __sanitizer_syscall_pre_impl_signal@Base 4.9 + __sanitizer_syscall_pre_impl_signalfd4@Base 4.9 + __sanitizer_syscall_pre_impl_signalfd@Base 4.9 + __sanitizer_syscall_pre_impl_sigpending@Base 4.9 + __sanitizer_syscall_pre_impl_sigprocmask@Base 4.9 + __sanitizer_syscall_pre_impl_socket@Base 4.9 + __sanitizer_syscall_pre_impl_socketcall@Base 4.9 + __sanitizer_syscall_pre_impl_socketpair@Base 4.9 + __sanitizer_syscall_pre_impl_splice@Base 4.9 + __sanitizer_syscall_pre_impl_spu_create@Base 4.9 + __sanitizer_syscall_pre_impl_spu_run@Base 4.9 + __sanitizer_syscall_pre_impl_ssetmask@Base 4.9 + __sanitizer_syscall_pre_impl_stat64@Base 4.9 + __sanitizer_syscall_pre_impl_stat@Base 4.9 + __sanitizer_syscall_pre_impl_statfs64@Base 4.9 + __sanitizer_syscall_pre_impl_statfs@Base 4.9 + __sanitizer_syscall_pre_impl_stime@Base 4.9 + __sanitizer_syscall_pre_impl_swapoff@Base 4.9 + __sanitizer_syscall_pre_impl_swapon@Base 4.9 + __sanitizer_syscall_pre_impl_symlink@Base 4.9 + __sanitizer_syscall_pre_impl_symlinkat@Base 4.9 + __sanitizer_syscall_pre_impl_sync@Base 4.9 + __sanitizer_syscall_pre_impl_syncfs@Base 4.9 + __sanitizer_syscall_pre_impl_sysctl@Base 4.9 + __sanitizer_syscall_pre_impl_sysfs@Base 4.9 + __sanitizer_syscall_pre_impl_sysinfo@Base 4.9 + __sanitizer_syscall_pre_impl_syslog@Base 4.9 + __sanitizer_syscall_pre_impl_tee@Base 4.9 + __sanitizer_syscall_pre_impl_tgkill@Base 4.9 + __sanitizer_syscall_pre_impl_time@Base 4.9 + __sanitizer_syscall_pre_impl_timer_create@Base 4.9 + __sanitizer_syscall_pre_impl_timer_delete@Base 4.9 + __sanitizer_syscall_pre_impl_timer_getoverrun@Base 4.9 + __sanitizer_syscall_pre_impl_timer_gettime@Base 4.9 + __sanitizer_syscall_pre_impl_timer_settime@Base 4.9 + __sanitizer_syscall_pre_impl_timerfd_create@Base 4.9 + __sanitizer_syscall_pre_impl_timerfd_gettime@Base 4.9 + __sanitizer_syscall_pre_impl_timerfd_settime@Base 4.9 + __sanitizer_syscall_pre_impl_times@Base 4.9 + __sanitizer_syscall_pre_impl_tkill@Base 4.9 + __sanitizer_syscall_pre_impl_truncate@Base 4.9 + __sanitizer_syscall_pre_impl_umask@Base 4.9 + __sanitizer_syscall_pre_impl_umount@Base 4.9 + __sanitizer_syscall_pre_impl_uname@Base 4.9 + __sanitizer_syscall_pre_impl_unlink@Base 4.9 + __sanitizer_syscall_pre_impl_unlinkat@Base 4.9 + __sanitizer_syscall_pre_impl_unshare@Base 4.9 + __sanitizer_syscall_pre_impl_uselib@Base 4.9 + __sanitizer_syscall_pre_impl_ustat@Base 4.9 + __sanitizer_syscall_pre_impl_utime@Base 4.9 + __sanitizer_syscall_pre_impl_utimensat@Base 4.9 + __sanitizer_syscall_pre_impl_utimes@Base 4.9 + __sanitizer_syscall_pre_impl_vfork@Base 4.9 + __sanitizer_syscall_pre_impl_vhangup@Base 4.9 + __sanitizer_syscall_pre_impl_vmsplice@Base 4.9 + __sanitizer_syscall_pre_impl_wait4@Base 4.9 + __sanitizer_syscall_pre_impl_waitid@Base 4.9 + __sanitizer_syscall_pre_impl_waitpid@Base 4.9 + __sanitizer_syscall_pre_impl_write@Base 4.9 + __sanitizer_syscall_pre_impl_writev@Base 4.9 + __sanitizer_unaligned_load16@Base 4.9 + __sanitizer_unaligned_load32@Base 4.9 + __sanitizer_unaligned_load64@Base 4.9 + __sanitizer_unaligned_store16@Base 4.9 + __sanitizer_unaligned_store32@Base 4.9 + __sanitizer_unaligned_store64@Base 4.9 + __sanitizer_update_counter_bitset_and_clear_counters@Base 6 + __sigsetjmp@Base 4.9 + __tls_get_addr@Base 6 + __tsan_acquire@Base 4.9 + __tsan_atomic128_compare_exchange_strong@Base 4.9 + __tsan_atomic128_compare_exchange_val@Base 4.9 + __tsan_atomic128_compare_exchange_weak@Base 4.9 + __tsan_atomic128_exchange@Base 4.9 + __tsan_atomic128_fetch_add@Base 4.9 + __tsan_atomic128_fetch_and@Base 4.9 + __tsan_atomic128_fetch_nand@Base 4.9 + __tsan_atomic128_fetch_or@Base 4.9 + __tsan_atomic128_fetch_sub@Base 4.9 + __tsan_atomic128_fetch_xor@Base 4.9 + __tsan_atomic128_load@Base 4.9 + __tsan_atomic128_store@Base 4.9 + __tsan_atomic16_compare_exchange_strong@Base 4.9 + __tsan_atomic16_compare_exchange_val@Base 4.9 + __tsan_atomic16_compare_exchange_weak@Base 4.9 + __tsan_atomic16_exchange@Base 4.9 + __tsan_atomic16_fetch_add@Base 4.9 + __tsan_atomic16_fetch_and@Base 4.9 + __tsan_atomic16_fetch_nand@Base 4.9 + __tsan_atomic16_fetch_or@Base 4.9 + __tsan_atomic16_fetch_sub@Base 4.9 + __tsan_atomic16_fetch_xor@Base 4.9 + __tsan_atomic16_load@Base 4.9 + __tsan_atomic16_store@Base 4.9 + __tsan_atomic32_compare_exchange_strong@Base 4.9 + __tsan_atomic32_compare_exchange_val@Base 4.9 + __tsan_atomic32_compare_exchange_weak@Base 4.9 + __tsan_atomic32_exchange@Base 4.9 + __tsan_atomic32_fetch_add@Base 4.9 + __tsan_atomic32_fetch_and@Base 4.9 + __tsan_atomic32_fetch_nand@Base 4.9 + __tsan_atomic32_fetch_or@Base 4.9 + __tsan_atomic32_fetch_sub@Base 4.9 + __tsan_atomic32_fetch_xor@Base 4.9 + __tsan_atomic32_load@Base 4.9 + __tsan_atomic32_store@Base 4.9 + __tsan_atomic64_compare_exchange_strong@Base 4.9 + __tsan_atomic64_compare_exchange_val@Base 4.9 + __tsan_atomic64_compare_exchange_weak@Base 4.9 + __tsan_atomic64_exchange@Base 4.9 + __tsan_atomic64_fetch_add@Base 4.9 + __tsan_atomic64_fetch_and@Base 4.9 + __tsan_atomic64_fetch_nand@Base 4.9 + __tsan_atomic64_fetch_or@Base 4.9 + __tsan_atomic64_fetch_sub@Base 4.9 + __tsan_atomic64_fetch_xor@Base 4.9 + __tsan_atomic64_load@Base 4.9 + __tsan_atomic64_store@Base 4.9 + __tsan_atomic8_compare_exchange_strong@Base 4.9 + __tsan_atomic8_compare_exchange_val@Base 4.9 + __tsan_atomic8_compare_exchange_weak@Base 4.9 + __tsan_atomic8_exchange@Base 4.9 + __tsan_atomic8_fetch_add@Base 4.9 + __tsan_atomic8_fetch_and@Base 4.9 + __tsan_atomic8_fetch_nand@Base 4.9 + __tsan_atomic8_fetch_or@Base 4.9 + __tsan_atomic8_fetch_sub@Base 4.9 + __tsan_atomic8_fetch_xor@Base 4.9 + __tsan_atomic8_load@Base 4.9 + __tsan_atomic8_store@Base 4.9 + __tsan_atomic_signal_fence@Base 4.9 + __tsan_atomic_thread_fence@Base 4.9 + __tsan_default_options@Base 4.9 + __tsan_default_suppressions@Base 7 + __tsan_func_entry@Base 4.9 + __tsan_func_exit@Base 4.9 + __tsan_get_current_report@Base 7 + __tsan_get_report_data@Base 7 + __tsan_get_report_loc@Base 7 + __tsan_get_report_mop@Base 7 + __tsan_get_report_mutex@Base 7 + __tsan_get_report_stack@Base 7 + __tsan_get_report_thread@Base 7 + __tsan_get_report_unique_tid@Base 7 + __tsan_init@Base 4.9 + __tsan_java_acquire@Base 6 + __tsan_java_alloc@Base 4.9 + __tsan_java_finalize@Base 5 + __tsan_java_fini@Base 4.9 + __tsan_java_free@Base 4.9 + __tsan_java_init@Base 4.9 + __tsan_java_move@Base 4.9 + __tsan_java_mutex_lock@Base 4.9 + __tsan_java_mutex_lock_rec@Base 4.9 + __tsan_java_mutex_read_lock@Base 4.9 + __tsan_java_mutex_read_unlock@Base 4.9 + __tsan_java_mutex_unlock@Base 4.9 + __tsan_java_mutex_unlock_rec@Base 4.9 + __tsan_java_release@Base 6 + __tsan_java_release_store@Base 6 + __tsan_on_report@Base 7 + __tsan_read16@Base 4.9 + __tsan_read16_pc@Base 6 + __tsan_read1@Base 4.9 + __tsan_read1_pc@Base 6 + __tsan_read2@Base 4.9 + __tsan_read2_pc@Base 6 + __tsan_read4@Base 4.9 + __tsan_read4_pc@Base 6 + __tsan_read8@Base 4.9 + __tsan_read8_pc@Base 6 + __tsan_read_range@Base 4.9 + __tsan_release@Base 4.9 + __tsan_symbolize_external@Base 7 + __tsan_testonly_barrier_init@Base 7 + __tsan_testonly_barrier_wait@Base 7 + __tsan_unaligned_read16@Base 6 + __tsan_unaligned_read2@Base 4.9 + __tsan_unaligned_read4@Base 4.9 + __tsan_unaligned_read8@Base 4.9 + __tsan_unaligned_write16@Base 6 + __tsan_unaligned_write2@Base 4.9 + __tsan_unaligned_write4@Base 4.9 + __tsan_unaligned_write8@Base 4.9 + __tsan_vptr_read@Base 4.9 + __tsan_vptr_update@Base 4.9 + __tsan_write16@Base 4.9 + __tsan_write16_pc@Base 6 + __tsan_write1@Base 4.9 + __tsan_write1_pc@Base 6 + __tsan_write2@Base 4.9 + __tsan_write2_pc@Base 6 + __tsan_write4@Base 4.9 + __tsan_write4_pc@Base 6 + __tsan_write8@Base 4.9 + __tsan_write8_pc@Base 6 + __tsan_write_range@Base 4.9 + __uflow@Base 5 + __underflow@Base 5 + __woverflow@Base 5 + __wuflow@Base 5 + __wunderflow@Base 5 + __xpg_strerror_r@Base 4.9 + __xstat64@Base 4.9 + __xstat@Base 4.9 + _exit@Base 4.9 + _obstack_begin@Base 5 + _obstack_begin_1@Base 5 + _obstack_newchunk@Base 5 + _setjmp@Base 4.9 + abort@Base 4.9 + accept4@Base 4.9 + accept@Base 4.9 + aligned_alloc@Base 5 + asctime@Base 4.9 + asctime_r@Base 4.9 + asprintf@Base 5 + atexit@Base 4.9 + backtrace@Base 4.9 + backtrace_symbols@Base 4.9 + bind@Base 4.9 + calloc@Base 4.9 + canonicalize_file_name@Base 4.9 + capget@Base 5 + capset@Base 5 + cfree@Base 4.9 + clock_getres@Base 4.9 + clock_gettime@Base 4.9 + clock_settime@Base 4.9 + close@Base 4.9 + closedir@Base 6 + confstr@Base 4.9 + connect@Base 4.9 + creat64@Base 4.9 + creat@Base 4.9 + ctermid@Base 7 + ctime@Base 4.9 + ctime_r@Base 4.9 + dl_iterate_phdr@Base 6 + dlclose@Base 4.9 + dlopen@Base 4.9 + drand48_r@Base 4.9 + dup2@Base 4.9 + dup3@Base 4.9 + dup@Base 4.9 + endgrent@Base 5 + endpwent@Base 5 + epoll_create1@Base 4.9 + epoll_create@Base 4.9 + epoll_ctl@Base 4.9 + epoll_pwait@Base 7 + epoll_wait@Base 4.9 + ether_aton@Base 4.9 + ether_aton_r@Base 4.9 + ether_hostton@Base 4.9 + ether_line@Base 4.9 + ether_ntoa@Base 4.9 + ether_ntoa_r@Base 4.9 + ether_ntohost@Base 4.9 + eventfd@Base 4.9 + eventfd_read@Base 7 + eventfd_write@Base 7 + fclose@Base 4.9 + fdopen@Base 5 + fflush@Base 4.9 + fgetxattr@Base 5 + flistxattr@Base 5 + fmemopen@Base 5 + fopen64@Base 5 + fopen@Base 4.9 + fopencookie@Base 6 + fork@Base 4.9 + fprintf@Base 5 + fread@Base 4.9 + free@Base 4.9 + freopen64@Base 5 + freopen@Base 4.9 + frexp@Base 4.9 + frexpf@Base 4.9 + frexpl@Base 4.9 + fscanf@Base 4.9 + fstat64@Base 4.9 + fstat@Base 4.9 + fstatfs64@Base 4.9 + fstatfs@Base 4.9 + fstatvfs64@Base 4.9 + fstatvfs@Base 4.9 + ftime@Base 5 + fwrite@Base 4.9 + get_current_dir_name@Base 4.9 + getaddrinfo@Base 4.9 + getcwd@Base 4.9 + getdelim@Base 4.9 + getgroups@Base 4.9 + gethostbyaddr@Base 4.9 + gethostbyaddr_r@Base 4.9 + gethostbyname2@Base 4.9 + gethostbyname2_r@Base 4.9 + gethostbyname@Base 4.9 + gethostbyname_r@Base 4.9 + gethostent@Base 4.9 + gethostent_r@Base 4.9 + getifaddrs@Base 5 + getitimer@Base 4.9 + getline@Base 4.9 + getmntent@Base 4.9 + getmntent_r@Base 4.9 + getnameinfo@Base 5 + getpass@Base 5 + getpeername@Base 4.9 + getresgid@Base 5 + getresuid@Base 5 + getsockname@Base 4.9 + getsockopt@Base 4.9 + gettimeofday@Base 4.9 + getxattr@Base 5 + glob64@Base 5 + glob@Base 5 + gmtime@Base 4.9 + gmtime_r@Base 4.9 + iconv@Base 4.9 + if_indextoname@Base 5 + if_nametoindex@Base 5 + inet_aton@Base 4.9 + inet_ntop@Base 4.9 + inet_pton@Base 4.9 + initgroups@Base 4.9 + inotify_init1@Base 4.9 + inotify_init@Base 4.9 + internal_sigreturn@Base 7 + ioctl@Base 4.9 + kill@Base 4.9 + lgamma@Base 4.9 + lgamma_r@Base 4.9 + lgammaf@Base 4.9 + lgammaf_r@Base 4.9 + lgammal@Base 4.9 + lgammal_r@Base 4.9 + lgetxattr@Base 5 + listen@Base 4.9 + listxattr@Base 5 + llistxattr@Base 5 + localtime@Base 4.9 + localtime_r@Base 4.9 + longjmp@Base 4.9 + lrand48_r@Base 4.9 + malloc@Base 4.9 + malloc_usable_size@Base 4.9 + mbsnrtowcs@Base 4.9 + mbsrtowcs@Base 4.9 + mbstowcs@Base 4.9 + memalign@Base 4.9 + memchr@Base 4.9 + memcmp@Base 4.9 + memcpy@Base 4.9 + memmem@Base 7 + memmove@Base 4.9 + memrchr@Base 4.9 + memset@Base 4.9 + mincore@Base 6 + mktime@Base 5 + mlock@Base 4.9 + mlockall@Base 4.9 + mmap64@Base 4.9 + mmap@Base 4.9 + modf@Base 4.9 + modff@Base 4.9 + modfl@Base 4.9 + munlock@Base 4.9 + munlockall@Base 4.9 + munmap@Base 4.9 + nanosleep@Base 4.9 + on_exit@Base 4.9 + open64@Base 4.9 + open@Base 4.9 + open_memstream@Base 5 + open_wmemstream@Base 5 + opendir@Base 4.9 + pipe2@Base 4.9 + pipe@Base 4.9 + poll@Base 4.9 + posix_memalign@Base 4.9 + ppoll@Base 4.9 + prctl@Base 4.9 + pread64@Base 4.9 + pread@Base 4.9 + preadv64@Base 4.9 + preadv@Base 4.9 + printf@Base 5 + process_vm_readv@Base 6 + process_vm_writev@Base 6 + pthread_attr_getaffinity_np@Base 4.9 + pthread_attr_getdetachstate@Base 4.9 + pthread_attr_getguardsize@Base 4.9 + pthread_attr_getinheritsched@Base 4.9 + pthread_attr_getschedparam@Base 4.9 + pthread_attr_getschedpolicy@Base 4.9 + pthread_attr_getscope@Base 4.9 + pthread_attr_getstack@Base 4.9 + pthread_attr_getstacksize@Base 4.9 + pthread_barrier_destroy@Base 4.9 + pthread_barrier_init@Base 4.9 + pthread_barrier_wait@Base 4.9 + pthread_barrierattr_getpshared@Base 5 + pthread_cond_broadcast@Base 4.9 + pthread_cond_destroy@Base 4.9 + pthread_cond_init@Base 4.9 + pthread_cond_signal@Base 4.9 + pthread_cond_timedwait@Base 4.9 + pthread_cond_wait@Base 4.9 + pthread_condattr_getclock@Base 5 + pthread_condattr_getpshared@Base 5 + pthread_create@Base 4.9 + pthread_detach@Base 4.9 + pthread_getschedparam@Base 4.9 + pthread_join@Base 4.9 + pthread_kill@Base 4.9 + pthread_mutex_destroy@Base 4.9 + pthread_mutex_init@Base 4.9 + pthread_mutex_lock@Base 4.9 + pthread_mutex_timedlock@Base 4.9 + pthread_mutex_trylock@Base 4.9 + pthread_mutex_unlock@Base 4.9 + pthread_mutexattr_getprioceiling@Base 5 + pthread_mutexattr_getprotocol@Base 5 + pthread_mutexattr_getpshared@Base 5 + pthread_mutexattr_getrobust@Base 5 + pthread_mutexattr_getrobust_np@Base 5 + pthread_mutexattr_gettype@Base 5 + pthread_once@Base 4.9 + pthread_rwlock_destroy@Base 4.9 + pthread_rwlock_init@Base 4.9 + pthread_rwlock_rdlock@Base 4.9 + pthread_rwlock_timedrdlock@Base 4.9 + pthread_rwlock_timedwrlock@Base 4.9 + pthread_rwlock_tryrdlock@Base 4.9 + pthread_rwlock_trywrlock@Base 4.9 + pthread_rwlock_unlock@Base 4.9 + pthread_rwlock_wrlock@Base 4.9 + pthread_rwlockattr_getkind_np@Base 5 + pthread_rwlockattr_getpshared@Base 5 + pthread_setcancelstate@Base 6 + pthread_setcanceltype@Base 6 + pthread_setname_np@Base 4.9 + pthread_sigmask@Base 7 + pthread_spin_destroy@Base 4.9 + pthread_spin_init@Base 4.9 + pthread_spin_lock@Base 4.9 + pthread_spin_trylock@Base 4.9 + pthread_spin_unlock@Base 4.9 + ptrace@Base 4.9 + puts@Base 4.9 + pvalloc@Base 4.9 + pwrite64@Base 4.9 + pwrite@Base 4.9 + pwritev64@Base 4.9 + pwritev@Base 4.9 + raise@Base 4.9 + rand_r@Base 5 + random_r@Base 4.9 + read@Base 4.9 + readdir64@Base 4.9 + readdir64_r@Base 4.9 + readdir@Base 4.9 + readdir_r@Base 4.9 + readv@Base 4.9 + realloc@Base 4.9 + realpath@Base 4.9 + recv@Base 4.9 + recvfrom@Base 7 + recvmsg@Base 4.9 + remquo@Base 4.9 + remquof@Base 4.9 + remquol@Base 4.9 + rmdir@Base 4.9 + scandir64@Base 4.9 + scandir@Base 4.9 + scanf@Base 4.9 + sched_getaffinity@Base 4.9 + sched_getparam@Base 6 + sem_destroy@Base 4.9 + sem_getvalue@Base 4.9 + sem_init@Base 4.9 + sem_post@Base 4.9 + sem_timedwait@Base 4.9 + sem_trywait@Base 4.9 + sem_wait@Base 4.9 + send@Base 4.9 + sendmsg@Base 4.9 + sendto@Base 7 + setgrent@Base 5 + setitimer@Base 4.9 + setjmp@Base 4.9 + setlocale@Base 4.9 + setpwent@Base 5 + shmctl@Base 4.9 + sigaction@Base 4.9 + sigblock@Base 7 + sigemptyset@Base 4.9 + sigfillset@Base 4.9 + siglongjmp@Base 4.9 + signal@Base 4.9 + signalfd@Base 4.9 + sigpending@Base 4.9 + sigprocmask@Base 4.9 + sigsetjmp@Base 4.9 + sigsetmask@Base 7 + sigsuspend@Base 4.9 + sigtimedwait@Base 4.9 + sigwait@Base 4.9 + sigwaitinfo@Base 4.9 + sincos@Base 4.9 + sincosf@Base 4.9 + sincosl@Base 4.9 + sleep@Base 4.9 + snprintf@Base 5 + socket@Base 4.9 + socketpair@Base 4.9 + sprintf@Base 5 + sscanf@Base 4.9 + statfs64@Base 4.9 + statfs@Base 4.9 + statvfs64@Base 4.9 + statvfs@Base 4.9 + strcasecmp@Base 4.9 + strcasestr@Base 6 + strchr@Base 4.9 + strchrnul@Base 4.9 + strcmp@Base 4.9 + strcpy@Base 4.9 + strcspn@Base 6 + strdup@Base 4.9 + strerror@Base 4.9 + strerror_r@Base 4.9 + strlen@Base 4.9 + strncasecmp@Base 4.9 + strncmp@Base 4.9 + strncpy@Base 4.9 + strnlen@Base 7 + strpbrk@Base 6 + strptime@Base 4.9 + strrchr@Base 4.9 + strspn@Base 6 + strstr@Base 4.9 + strtoimax@Base 4.9 + strtoumax@Base 4.9 + sysinfo@Base 4.9 + tcgetattr@Base 4.9 + tempnam@Base 4.9 + textdomain@Base 4.9 + time@Base 4.9 + timerfd_gettime@Base 5 + timerfd_settime@Base 5 + times@Base 4.9 + tmpfile64@Base 5 + tmpfile@Base 5 + tmpnam@Base 4.9 + tmpnam_r@Base 4.9 + tsearch@Base 5 + ttyname_r@Base 7 + unlink@Base 4.9 + usleep@Base 4.9 + valloc@Base 4.9 + vasprintf@Base 5 + vfork@Base 5 + vfprintf@Base 5 + vfscanf@Base 4.9 + vprintf@Base 5 + vscanf@Base 4.9 + vsnprintf@Base 5 + vsprintf@Base 5 + vsscanf@Base 4.9 + wait3@Base 4.9 + wait4@Base 4.9 + wait@Base 4.9 + waitid@Base 4.9 + waitpid@Base 4.9 + wcrtomb@Base 6 + wcsnrtombs@Base 4.9 + wcsrtombs@Base 4.9 + wcstombs@Base 4.9 + wordexp@Base 4.9 + write@Base 4.9 + writev@Base 4.9 + xdr_bool@Base 5 + xdr_bytes@Base 5 + xdr_char@Base 5 + xdr_double@Base 5 + xdr_enum@Base 5 + xdr_float@Base 5 + xdr_hyper@Base 5 + xdr_int16_t@Base 5 + xdr_int32_t@Base 5 + xdr_int64_t@Base 5 + xdr_int8_t@Base 5 + xdr_int@Base 5 + xdr_long@Base 5 + xdr_longlong_t@Base 5 + xdr_quad_t@Base 5 + xdr_short@Base 5 + xdr_string@Base 5 + xdr_u_char@Base 5 + xdr_u_hyper@Base 5 + xdr_u_int@Base 5 + xdr_u_long@Base 5 + xdr_u_longlong_t@Base 5 + xdr_u_quad_t@Base 5 + xdr_u_short@Base 5 + xdr_uint16_t@Base 5 + xdr_uint32_t@Base 5 + xdr_uint64_t@Base 5 + xdr_uint8_t@Base 5 + xdrmem_create@Base 5 + xdrstdio_create@Base 5 diff --git a/debian/libubsan0.symbols b/debian/libubsan0.symbols new file mode 100644 index 0000000..67f7214 --- /dev/null +++ b/debian/libubsan0.symbols @@ -0,0 +1,117 @@ +libubsan.so.0 libubsan0 #MINVER# + _ZN11__sanitizer11CheckFailedEPKciS1_yy@Base 4.9 + _ZN11__sanitizer7OnPrintEPKc@Base 4.9 + __asan_backtrace_alloc@Base 4.9 + __asan_backtrace_close@Base 4.9 + __asan_backtrace_create_state@Base 4.9 + __asan_backtrace_dwarf_add@Base 4.9 + __asan_backtrace_free@Base 4.9 + __asan_backtrace_get_view@Base 4.9 + __asan_backtrace_initialize@Base 4.9 + __asan_backtrace_open@Base 4.9 + __asan_backtrace_pcinfo@Base 4.9 + __asan_backtrace_qsort@Base 4.9 + __asan_backtrace_release_view@Base 4.9 + __asan_backtrace_syminfo@Base 4.9 + __asan_backtrace_vector_finish@Base 4.9 + __asan_backtrace_vector_grow@Base 4.9 + __asan_backtrace_vector_release@Base 4.9 + __asan_cplus_demangle_builtin_types@Base 4.9 + __asan_cplus_demangle_fill_ctor@Base 4.9 + __asan_cplus_demangle_fill_dtor@Base 4.9 + __asan_cplus_demangle_fill_extended_operator@Base 4.9 + __asan_cplus_demangle_fill_name@Base 4.9 + __asan_cplus_demangle_init_info@Base 4.9 + __asan_cplus_demangle_mangled_name@Base 4.9 + __asan_cplus_demangle_operators@Base 4.9 + __asan_cplus_demangle_print@Base 4.9 + __asan_cplus_demangle_print_callback@Base 4.9 + __asan_cplus_demangle_type@Base 4.9 + __asan_cplus_demangle_v3@Base 4.9 + __asan_cplus_demangle_v3_callback@Base 4.9 + __asan_internal_memcmp@Base 4.9 + __asan_internal_memcpy@Base 4.9 + __asan_internal_memset@Base 4.9 + __asan_internal_strcmp@Base 4.9 + __asan_internal_strlen@Base 4.9 + __asan_internal_strncmp@Base 4.9 + __asan_internal_strnlen@Base 4.9 + __asan_is_gnu_v3_mangled_ctor@Base 4.9 + __asan_is_gnu_v3_mangled_dtor@Base 4.9 + __asan_java_demangle_v3@Base 4.9 + __asan_java_demangle_v3_callback@Base 4.9 + __sanitizer_cov@Base 4.9 + __sanitizer_cov_dump@Base 4.9 + __sanitizer_cov_indir_call16@Base 5 + __sanitizer_cov_init@Base 5 + __sanitizer_cov_module_init@Base 5 + __sanitizer_cov_trace_basic_block@Base 6 + __sanitizer_cov_trace_cmp1@Base 7 + __sanitizer_cov_trace_cmp2@Base 7 + __sanitizer_cov_trace_cmp4@Base 7 + __sanitizer_cov_trace_cmp8@Base 7 + __sanitizer_cov_trace_cmp@Base 6 + __sanitizer_cov_trace_div4@Base 7 + __sanitizer_cov_trace_div8@Base 7 + __sanitizer_cov_trace_func_enter@Base 6 + __sanitizer_cov_trace_gep@Base 7 + __sanitizer_cov_trace_pc_guard@Base 7 + __sanitizer_cov_trace_pc_guard_init@Base 7 + __sanitizer_cov_trace_pc_indir@Base 7 + __sanitizer_cov_trace_switch@Base 6 + __sanitizer_cov_with_check@Base 6 + __sanitizer_get_coverage_guards@Base 6 + __sanitizer_get_number_of_counters@Base 6 + __sanitizer_get_total_unique_caller_callee_pairs@Base 6 + __sanitizer_get_total_unique_coverage@Base 6 + __sanitizer_install_malloc_and_free_hooks@Base 7 + __sanitizer_maybe_open_cov_file@Base 5 + __sanitizer_report_error_summary@Base 4.9 + __sanitizer_reset_coverage@Base 6 + __sanitizer_sandbox_on_notify@Base 4.9 + __sanitizer_set_death_callback@Base 6 + __sanitizer_set_report_fd@Base 7 + __sanitizer_set_report_path@Base 4.9 + __sanitizer_symbolize_global@Base 7 + __sanitizer_symbolize_pc@Base 7 + __sanitizer_update_counter_bitset_and_clear_counters@Base 6 + __ubsan_handle_add_overflow@Base 4.9 + __ubsan_handle_add_overflow_abort@Base 4.9 + __ubsan_handle_builtin_unreachable@Base 4.9 + __ubsan_handle_cfi_bad_icall@Base 7 + __ubsan_handle_cfi_bad_icall_abort@Base 7 + __ubsan_handle_cfi_bad_type@Base 7 + __ubsan_handle_cfi_bad_type_abort@Base 7 + __ubsan_handle_cfi_check_fail@Base 7 + __ubsan_handle_cfi_check_fail_abort@Base 7 + __ubsan_handle_divrem_overflow@Base 4.9 + __ubsan_handle_divrem_overflow_abort@Base 4.9 + __ubsan_handle_dynamic_type_cache_miss@Base 4.9 + __ubsan_handle_dynamic_type_cache_miss_abort@Base 4.9 + __ubsan_handle_float_cast_overflow@Base 4.9 + __ubsan_handle_float_cast_overflow_abort@Base 4.9 + __ubsan_handle_function_type_mismatch@Base 4.9 + __ubsan_handle_function_type_mismatch_abort@Base 4.9 + __ubsan_handle_load_invalid_value@Base 4.9 + __ubsan_handle_load_invalid_value_abort@Base 4.9 + __ubsan_handle_missing_return@Base 4.9 + __ubsan_handle_mul_overflow@Base 4.9 + __ubsan_handle_mul_overflow_abort@Base 4.9 + __ubsan_handle_negate_overflow@Base 4.9 + __ubsan_handle_negate_overflow_abort@Base 4.9 + __ubsan_handle_nonnull_arg@Base 5 + __ubsan_handle_nonnull_arg_abort@Base 5 + __ubsan_handle_nonnull_return@Base 5 + __ubsan_handle_nonnull_return_abort@Base 5 + __ubsan_handle_out_of_bounds@Base 4.9 + __ubsan_handle_out_of_bounds_abort@Base 4.9 + __ubsan_handle_shift_out_of_bounds@Base 4.9 + __ubsan_handle_shift_out_of_bounds_abort@Base 4.9 + __ubsan_handle_sub_overflow@Base 4.9 + __ubsan_handle_sub_overflow_abort@Base 4.9 + __ubsan_handle_type_mismatch@Base 4.9 + __ubsan_handle_type_mismatch_abort@Base 4.9 + __ubsan_handle_vla_bound_not_positive@Base 4.9 + __ubsan_handle_vla_bound_not_positive_abort@Base 4.9 + __ubsan_vptr_type_cache@Base 4.9 + (arch=base-any-any-amd64 any-mips any-mipsel)internal_sigreturn@Base 7 diff --git a/debian/libvtv0.symbols b/debian/libvtv0.symbols new file mode 100644 index 0000000..908a64e --- /dev/null +++ b/debian/libvtv0.symbols @@ -0,0 +1,68 @@ +libvtv.so.0 libvtv0 #MINVER# + _Z10__vtv_freePv@Base 4.9.0 + (arch=amd64)_Z12__vtv_mallocm@Base 4.9.0 + (arch=i386)_Z12__vtv_mallocj@Base 4.9.0 + _Z14__VLTDumpStatsv@Base 4.9.0 + _Z14__vtv_open_logPKc@Base 4.9.0 + (arch=amd64)_Z16__VLTRegisterSetPPvPKvmmS0_@Base 4.9.0 + (arch=i386)_Z16__VLTRegisterSetPPvPKvjjS0_@Base 4.9.0 + _Z16__vtv_add_to_logiPKcz@Base 4.9.0 + (arch=amd64)_Z17__VLTRegisterPairPPvPKvmS2_@Base 4.9.0 + (arch=i386)_Z17__VLTRegisterPairPPvPKvjS2_@Base 4.9.0 + _Z17__vtv_malloc_initv@Base 4.9.0 + _Z17__vtv_really_failPKc@Base 4.9.0 + _Z17__vtv_verify_failPPvPKv@Base 4.9.0 + _Z18__vtv_malloc_statsv@Base 4.9.0 + _Z20__vtv_malloc_protectv@Base 4.9.0 + (arch=amd64)_Z21__VLTRegisterSetDebugPPvPKvmmS0_@Base 4.9.0 + (arch=i386)_Z21__VLTRegisterSetDebugPPvPKvjjS0_@Base 4.9.0 + (arch=amd64)_Z22__VLTRegisterPairDebugPPvPKvmS2_PKcS4_@Base 4.9.0 + (arch=i386)_Z22__VLTRegisterPairDebugPPvPKvjS2_PKcS4_@Base 4.9.0 + _Z22__vtv_malloc_unprotectv@Base 4.9.0 + _Z23__vtv_malloc_dump_statsv@Base 4.9.0 + _Z23__vtv_verify_fail_debugPPvPKvPKc@Base 4.9.0 + (arch=amd64)_Z23search_cached_file_datam@Base 4.9.0 + (arch=i386)_Z23search_cached_file_dataj@Base 4.9.0 + _Z24__VLTVerifyVtablePointerPPvPKv@Base 4.9.0 + _Z25__vtv_count_mmapped_pagesv@Base 4.9.0 + _Z29__VLTVerifyVtablePointerDebugPPvPKvPKcS4_@Base 4.9.0 + _Z30__vtv_log_verification_failurePKcb@Base 4.9.0 + (arch=amd64)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE12put_internalEPKNS8_8key_typeERKS6_b@Base 4.9.0 + (arch=amd64)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE15find_or_add_keyEPKNS8_8key_typeEPPS6_@Base 4.9.0 + (arch=amd64)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE16destructive_copyEv@Base 4.9.0 + (arch=amd64)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE3putEPKNS8_8key_typeERKS6_@Base 4.9.0 + (arch=amd64)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE6createEm@Base 4.9.0 + (arch=amd64)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE7destroyEPS8_@Base 4.9.0 + (arch=amd64)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE11is_too_fullEm@Base 4.9.0 + (arch=amd64)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE12bucket_countEv@Base 4.9.0 + (arch=amd64)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE3getEPKNS8_8key_typeE@Base 4.9.0 + (arch=amd64)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE4sizeEv@Base 4.9.0 + (arch=amd64)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE5emptyEv@Base 4.9.0 + (arch=amd64)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIm9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE8key_type6equalsEPKS9_@Base 4.9.0 + (arch=i386)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE12put_internalEPKNS8_8key_typeERKS6_b@Base 4.9.0 + (arch=i386)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE15find_or_add_keyEPKNS8_8key_typeEPPS6_@Base 4.9.0 + (arch=i386)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE16destructive_copyEv@Base 4.9.0 + (arch=i386)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE3putEPKNS8_8key_typeERKS6_@Base 4.9.0 + (arch=i386)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE6createEj@Base 4.9.0 + (arch=i386)_ZN20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE7destroyEPS8_@Base 4.9.0 + (arch=i386)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE11is_too_fullEj@Base 4.9.0 + (arch=i386)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE12bucket_countEv@Base 4.9.0 + (arch=i386)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE3getEPKNS8_8key_typeE@Base 4.9.0 + (arch=i386)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE4sizeEv@Base 4.9.0 + (arch=i386)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE5emptyEv@Base 4.9.0 + (arch=i386)_ZNK20insert_only_hash_mapIPPN21insert_only_hash_setsIj9vptr_hash14vptr_set_allocE20insert_only_hash_setE30insert_only_hash_map_allocatorE8key_type6equalsEPKS9_@Base 4.9.0 + __VLTChangePermission@Base 4.9.0 + __VLTprotect@Base 4.9.0 + __VLTunprotect@Base 4.9.0 + _vtable_map_vars_end@Base 4.9.0 + _vtable_map_vars_start@Base 4.9.0 + mprotect_cycles@Base 4.9.0 + num_cache_entries@Base 4.9.0 + num_calls_to_mprotect@Base 4.9.0 + num_calls_to_regpair@Base 4.9.0 + num_calls_to_regset@Base 4.9.0 + num_calls_to_verify_vtable@Base 4.9.0 + num_pages_protected@Base 4.9.0 + regpair_cycles@Base 4.9.0 + regset_cycles@Base 4.9.0 + verify_vtable_cycles@Base 4.9.0 diff --git a/debian/libx32asan4.overrides b/debian/libx32asan4.overrides new file mode 100644 index 0000000..dc4b77c --- /dev/null +++ b/debian/libx32asan4.overrides @@ -0,0 +1,2 @@ +# automake gets it wrong for the multilib build +libx32asan4 binary: binary-or-shlib-defines-rpath diff --git a/debian/libx32asan4.symbols b/debian/libx32asan4.symbols new file mode 100644 index 0000000..e146deb --- /dev/null +++ b/debian/libx32asan4.symbols @@ -0,0 +1,4 @@ +libasan.so.4 libx32asan4 #MINVER# +#include "libasan.symbols.common" +#include "libasan.symbols.32" +#include "libasan.symbols.16" diff --git a/debian/libx32gphobos68.lintian-overrides b/debian/libx32gphobos68.lintian-overrides new file mode 100644 index 0000000..9539864 --- /dev/null +++ b/debian/libx32gphobos68.lintian-overrides @@ -0,0 +1,2 @@ +# no multilib zlib for x32 +libx32gphobos68 binary: embedded-library diff --git a/debian/libx32stdc++6.symbols b/debian/libx32stdc++6.symbols new file mode 100644 index 0000000..93a1f88 --- /dev/null +++ b/debian/libx32stdc++6.symbols @@ -0,0 +1,27 @@ +libstdc++.so.6 libx32stdc++6 #MINVER# +#include "libstdc++6.symbols.32bit" +#include "libstdc++6.symbols.128bit" +#include "libstdc++6.symbols.excprop" +#include "libstdc++6.symbols.money.ldbl" + __gxx_personality_v0@CXXABI_1.3 4.1.1 + _ZNKSt3tr14hashIeEclEe@GLIBCXX_3.4.10 4.3 + _ZNKSt4hashIeEclEe@GLIBCXX_3.4.10 4.3 +#(optional)_Z16__VLTRegisterSetPPvPKvjjS0_@CXXABI_1.3.8 4.9.0 +#(optional)_Z17__VLTRegisterPairPPvPKvjS2_@CXXABI_1.3.8 4.9.0 +#(optional)_Z21__VLTRegisterSetDebugPPvPKvjjS0_@CXXABI_1.3.8 4.9.0 +#(optional)_Z22__VLTRegisterPairDebugPPvPKvjS2_PKcS4_@CXXABI_1.3.8 4.9.0 +#(optional)_Z24__VLTVerifyVtablePointerPPvPKv@CXXABI_1.3.8 4.9.0 +#(optional)_Z29__VLTVerifyVtablePointerDebugPPvPKvPKcS4_@CXXABI_1.3.8 4.9.0 +#(optional)__VLTChangePermission@CXXABI_1.3.8 4.9.0 + _ZTIPKn@CXXABI_1.3.5 4.9.0 + _ZTIPKo@CXXABI_1.3.5 4.9.0 + _ZTIPn@CXXABI_1.3.5 4.9.0 + _ZTIPo@CXXABI_1.3.5 4.9.0 + _ZTIn@CXXABI_1.3.5 4.9.0 + _ZTIo@CXXABI_1.3.5 4.9.0 + _ZTSPKn@CXXABI_1.3.9 4.9.0 + _ZTSPKo@CXXABI_1.3.9 4.9.0 + _ZTSPn@CXXABI_1.3.9 4.9.0 + _ZTSPo@CXXABI_1.3.9 4.9.0 + _ZTSn@CXXABI_1.3.9 4.9.0 + _ZTSo@CXXABI_1.3.9 4.9.0 diff --git a/debian/locale-gen b/debian/locale-gen new file mode 100644 index 0000000..aec7dcc --- /dev/null +++ b/debian/locale-gen @@ -0,0 +1,50 @@ +#!/bin/sh + +# generate locales that the libstdc++ testsuite depends on + +LOCPATH=`pwd`/locales +export LOCPATH + +[ -d $LOCPATH ] || mkdir -p $LOCPATH + +[ -n "$USE_CPUS" ] || USE_CPUS=1 + +umask 022 + +echo "Generating locales..." +xargs -L 1 -P $USE_CPUS -I{} \ + sh -c ' + set {}; locale=$1; charset=$2 + case $locale in \#*) exit;; esac + [ -n "$locale" -a -n "$charset" ] || exit + echo " `echo $locale | sed \"s/\([^.\@]*\).*/\1/\"`.$charset`echo $locale | sed \"s/\([^\@]*\)\(\@.*\)*/\2/\"`..." + if [ -f $LOCPATH/$locale ]; then + input=$locale + else + input=`echo $locale | sed "s/\([^.]*\)[^@]*\(.*\)/\1\2/"` + fi + localedef -i $input -c -f $charset $LOCPATH/$locale #-A /etc/locale.alias + ' <&2 "usage: `basename $0` [-p ] [-t ] [-m ]" + echo >&2 " [ ...]" + exit 1 +} + +while [ $# -gt 0 ]; do + case $1 in + -p) + pidfile=$2 + shift + shift + ;; + -t) + timeout=$2 + shift + shift + ;; + -m) + message="$2" + shift + shift + ;; + -*) + usage + ;; + *) + break + esac +done + +[ $# -gt 0 ] || usage + +logfile="$1" +shift +otherlogs="$@" + +cleanup() +{ + rm -f $pidfile + exit 0 +} + +#trap cleanup 0 1 3 15 + +echo $$ > $pidfile + +update() +{ + _logvar=$1 + _othervar=$2 + + # logfile may not exist yet + if [ -r $logfile ]; then + _logtail="`tail -10 $logfile | md5sum` $f" + else + _logtail="does not exist: $logfile" + fi + eval $_logvar="'$_logtail'" + + _othertails='' + for f in $otherlogs; do + if [ -r $f ]; then + _othertails="$_othertails `tail -10 $f | md5sum` $f" + else + _othertails="$_othertails does not exist: $f" + fi + done + eval $_othervar="'$_othertails'" +} + +update logtail othertails +while true; do + sleep $timeout + update newlogtail newothertails + if [ "$logtail" != "$newlogtail" ]; then + # there is still action in the primary logfile. do nothing. + logtail="$newlogtail" + elif [ "$othertails" != "$newothertails" ]; then + # there is still action in the other log files, so print the message + /bin/echo -e $message + othertails="$newothertails" + else + # nothing changed in the other log files. maybe a timeout ... + : + fi +done diff --git a/debian/patches/PR55947-revert.diff b/debian/patches/PR55947-revert.diff new file mode 100644 index 0000000..8010e7f --- /dev/null +++ b/debian/patches/PR55947-revert.diff @@ -0,0 +1,350 @@ +# DP: Revert fix for PR target/55947, causing PR libstdc++/72813 + +libstdc++-v3/ + +2013-05-08 Andi Kleen + + PR target/55947 + * libstdc++-v3/include/bits/atomic_base.h + (_GLIBCXX_ALWAYS_INLINE): Add new macro. + (atomic_thread_fence, atomic_signal_fence, test_and_set, + clear, store, load, exchange, compare_exchange_weak) + compare_exchange_strong, fetch_add, fetch_sub, fetch_and, + fetch_or, fetch_xor): Mark _GLIBCXX_ALWAYS_INLINE. + +Index: b/src/libstdc++-v3/include/bits/atomic_base.h +=================================================================== +--- a/src/libstdc++-v3/include/bits/atomic_base.h ++++ b/src/libstdc++-v3/include/bits/atomic_base.h +@@ -97,11 +97,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + | (__m & __memory_order_modifier_mask)); + } + +- _GLIBCXX_ALWAYS_INLINE void ++ inline void + atomic_thread_fence(memory_order __m) noexcept + { __atomic_thread_fence(__m); } + +- _GLIBCXX_ALWAYS_INLINE void ++ inline void + atomic_signal_fence(memory_order __m) noexcept + { __atomic_signal_fence(__m); } + +@@ -170,19 +170,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + : __atomic_flag_base{ _S_init(__i) } + { } + +- _GLIBCXX_ALWAYS_INLINE bool ++ bool + test_and_set(memory_order __m = memory_order_seq_cst) noexcept + { + return __atomic_test_and_set (&_M_i, __m); + } + +- _GLIBCXX_ALWAYS_INLINE bool ++ bool + test_and_set(memory_order __m = memory_order_seq_cst) volatile noexcept + { + return __atomic_test_and_set (&_M_i, __m); + } + +- _GLIBCXX_ALWAYS_INLINE void ++ void + clear(memory_order __m = memory_order_seq_cst) noexcept + { + memory_order __b = __m & __memory_order_mask; +@@ -193,7 +193,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + __atomic_clear (&_M_i, __m); + } + +- _GLIBCXX_ALWAYS_INLINE void ++ void + clear(memory_order __m = memory_order_seq_cst) volatile noexcept + { + memory_order __b = __m & __memory_order_mask; +@@ -363,7 +363,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + reinterpret_cast(-__alignof(_M_i))); + } + +- _GLIBCXX_ALWAYS_INLINE void ++ void + store(__int_type __i, memory_order __m = memory_order_seq_cst) noexcept + { + memory_order __b = __m & __memory_order_mask; +@@ -374,7 +374,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + __atomic_store_n(&_M_i, __i, __m); + } + +- _GLIBCXX_ALWAYS_INLINE void ++ void + store(__int_type __i, + memory_order __m = memory_order_seq_cst) volatile noexcept + { +@@ -386,7 +386,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + __atomic_store_n(&_M_i, __i, __m); + } + +- _GLIBCXX_ALWAYS_INLINE __int_type ++ __int_type + load(memory_order __m = memory_order_seq_cst) const noexcept + { + memory_order __b = __m & __memory_order_mask; +@@ -396,7 +396,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + return __atomic_load_n(&_M_i, __m); + } + +- _GLIBCXX_ALWAYS_INLINE __int_type ++ __int_type + load(memory_order __m = memory_order_seq_cst) const volatile noexcept + { + memory_order __b = __m & __memory_order_mask; +@@ -406,7 +406,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + return __atomic_load_n(&_M_i, __m); + } + +- _GLIBCXX_ALWAYS_INLINE __int_type ++ __int_type + exchange(__int_type __i, + memory_order __m = memory_order_seq_cst) noexcept + { +@@ -414,14 +414,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + } + + +- _GLIBCXX_ALWAYS_INLINE __int_type ++ __int_type + exchange(__int_type __i, + memory_order __m = memory_order_seq_cst) volatile noexcept + { + return __atomic_exchange_n(&_M_i, __i, __m); + } + +- _GLIBCXX_ALWAYS_INLINE bool ++ bool + compare_exchange_weak(__int_type& __i1, __int_type __i2, + memory_order __m1, memory_order __m2) noexcept + { +@@ -434,7 +434,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2); + } + +- _GLIBCXX_ALWAYS_INLINE bool ++ bool + compare_exchange_weak(__int_type& __i1, __int_type __i2, + memory_order __m1, + memory_order __m2) volatile noexcept +@@ -448,7 +448,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, __m1, __m2); + } + +- _GLIBCXX_ALWAYS_INLINE bool ++ bool + compare_exchange_weak(__int_type& __i1, __int_type __i2, + memory_order __m = memory_order_seq_cst) noexcept + { +@@ -456,7 +456,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + __cmpexch_failure_order(__m)); + } + +- _GLIBCXX_ALWAYS_INLINE bool ++ bool + compare_exchange_weak(__int_type& __i1, __int_type __i2, + memory_order __m = memory_order_seq_cst) volatile noexcept + { +@@ -464,7 +464,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + __cmpexch_failure_order(__m)); + } + +- _GLIBCXX_ALWAYS_INLINE bool ++ bool + compare_exchange_strong(__int_type& __i1, __int_type __i2, + memory_order __m1, memory_order __m2) noexcept + { +@@ -477,7 +477,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2); + } + +- _GLIBCXX_ALWAYS_INLINE bool ++ bool + compare_exchange_strong(__int_type& __i1, __int_type __i2, + memory_order __m1, + memory_order __m2) volatile noexcept +@@ -492,7 +492,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2); + } + +- _GLIBCXX_ALWAYS_INLINE bool ++ bool + compare_exchange_strong(__int_type& __i1, __int_type __i2, + memory_order __m = memory_order_seq_cst) noexcept + { +@@ -500,7 +500,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + __cmpexch_failure_order(__m)); + } + +- _GLIBCXX_ALWAYS_INLINE bool ++ bool + compare_exchange_strong(__int_type& __i1, __int_type __i2, + memory_order __m = memory_order_seq_cst) volatile noexcept + { +@@ -508,52 +508,52 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + __cmpexch_failure_order(__m)); + } + +- _GLIBCXX_ALWAYS_INLINE __int_type ++ __int_type + fetch_add(__int_type __i, + memory_order __m = memory_order_seq_cst) noexcept + { return __atomic_fetch_add(&_M_i, __i, __m); } + +- _GLIBCXX_ALWAYS_INLINE __int_type ++ __int_type + fetch_add(__int_type __i, + memory_order __m = memory_order_seq_cst) volatile noexcept + { return __atomic_fetch_add(&_M_i, __i, __m); } + +- _GLIBCXX_ALWAYS_INLINE __int_type ++ __int_type + fetch_sub(__int_type __i, + memory_order __m = memory_order_seq_cst) noexcept + { return __atomic_fetch_sub(&_M_i, __i, __m); } + +- _GLIBCXX_ALWAYS_INLINE __int_type ++ __int_type + fetch_sub(__int_type __i, + memory_order __m = memory_order_seq_cst) volatile noexcept + { return __atomic_fetch_sub(&_M_i, __i, __m); } + +- _GLIBCXX_ALWAYS_INLINE __int_type ++ __int_type + fetch_and(__int_type __i, + memory_order __m = memory_order_seq_cst) noexcept + { return __atomic_fetch_and(&_M_i, __i, __m); } + +- _GLIBCXX_ALWAYS_INLINE __int_type ++ __int_type + fetch_and(__int_type __i, + memory_order __m = memory_order_seq_cst) volatile noexcept + { return __atomic_fetch_and(&_M_i, __i, __m); } + +- _GLIBCXX_ALWAYS_INLINE __int_type ++ __int_type + fetch_or(__int_type __i, + memory_order __m = memory_order_seq_cst) noexcept + { return __atomic_fetch_or(&_M_i, __i, __m); } + +- _GLIBCXX_ALWAYS_INLINE __int_type ++ __int_type + fetch_or(__int_type __i, + memory_order __m = memory_order_seq_cst) volatile noexcept + { return __atomic_fetch_or(&_M_i, __i, __m); } + +- _GLIBCXX_ALWAYS_INLINE __int_type ++ __int_type + fetch_xor(__int_type __i, + memory_order __m = memory_order_seq_cst) noexcept + { return __atomic_fetch_xor(&_M_i, __i, __m); } + +- _GLIBCXX_ALWAYS_INLINE __int_type ++ __int_type + fetch_xor(__int_type __i, + memory_order __m = memory_order_seq_cst) volatile noexcept + { return __atomic_fetch_xor(&_M_i, __i, __m); } +@@ -678,7 +678,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + reinterpret_cast(-__alignof(_M_p))); + } + +- _GLIBCXX_ALWAYS_INLINE void ++ void + store(__pointer_type __p, + memory_order __m = memory_order_seq_cst) noexcept + { +@@ -691,7 +691,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + __atomic_store_n(&_M_p, __p, __m); + } + +- _GLIBCXX_ALWAYS_INLINE void ++ void + store(__pointer_type __p, + memory_order __m = memory_order_seq_cst) volatile noexcept + { +@@ -703,7 +703,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + __atomic_store_n(&_M_p, __p, __m); + } + +- _GLIBCXX_ALWAYS_INLINE __pointer_type ++ __pointer_type + load(memory_order __m = memory_order_seq_cst) const noexcept + { + memory_order __b = __m & __memory_order_mask; +@@ -713,7 +713,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + return __atomic_load_n(&_M_p, __m); + } + +- _GLIBCXX_ALWAYS_INLINE __pointer_type ++ __pointer_type + load(memory_order __m = memory_order_seq_cst) const volatile noexcept + { + memory_order __b = __m & __memory_order_mask; +@@ -723,7 +723,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + return __atomic_load_n(&_M_p, __m); + } + +- _GLIBCXX_ALWAYS_INLINE __pointer_type ++ __pointer_type + exchange(__pointer_type __p, + memory_order __m = memory_order_seq_cst) noexcept + { +@@ -731,14 +731,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + } + + +- _GLIBCXX_ALWAYS_INLINE __pointer_type ++ __pointer_type + exchange(__pointer_type __p, + memory_order __m = memory_order_seq_cst) volatile noexcept + { + return __atomic_exchange_n(&_M_p, __p, __m); + } + +- _GLIBCXX_ALWAYS_INLINE bool ++ bool + compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, + memory_order __m1, + memory_order __m2) noexcept +@@ -752,7 +752,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2); + } + +- _GLIBCXX_ALWAYS_INLINE bool ++ bool + compare_exchange_strong(__pointer_type& __p1, __pointer_type __p2, + memory_order __m1, + memory_order __m2) volatile noexcept +@@ -767,22 +767,22 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION + return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, __m1, __m2); + } + +- _GLIBCXX_ALWAYS_INLINE __pointer_type ++ __pointer_type + fetch_add(ptrdiff_t __d, + memory_order __m = memory_order_seq_cst) noexcept + { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); } + +- _GLIBCXX_ALWAYS_INLINE __pointer_type ++ __pointer_type + fetch_add(ptrdiff_t __d, + memory_order __m = memory_order_seq_cst) volatile noexcept + { return __atomic_fetch_add(&_M_p, _M_type_size(__d), __m); } + +- _GLIBCXX_ALWAYS_INLINE __pointer_type ++ __pointer_type + fetch_sub(ptrdiff_t __d, + memory_order __m = memory_order_seq_cst) noexcept + { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); } + +- _GLIBCXX_ALWAYS_INLINE __pointer_type ++ __pointer_type + fetch_sub(ptrdiff_t __d, + memory_order __m = memory_order_seq_cst) volatile noexcept + { return __atomic_fetch_sub(&_M_p, _M_type_size(__d), __m); } diff --git a/debian/patches/ada-749574.diff b/debian/patches/ada-749574.diff new file mode 100644 index 0000000..74daeac --- /dev/null +++ b/debian/patches/ada-749574.diff @@ -0,0 +1,114 @@ +From: Ludovic Brenta +From: Nicolas Boulenguez +Forwarded: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81087 +Bug-Debian: http://bugs.debian.org/749574 +Description: array index out of range in gnatlink + The procedure gnatlink assumes that the Linker_Options.Table contains access + values to strings whose 'First index is always 1. This assumption is wrong + for the string returned by function Base_Name. + . + The wrong indices are not detected because gnatlink is compiled with + -gnatp, but the test result is wrong. + . + The following program normally raises Constraint_Error, prints FALSE + if compiled with -gnatn, while the expected result is TRUE. + . + procedure A is + G : constant String (3 .. 5) := "abc"; + begin + Ada.Text_IO.Put_Line (Boolean'Image (G (1 .. 2) = "ab")); + end A; + +--- a/src/gcc/ada/gnatlink.adb ++++ b/src/gcc/ada/gnatlink.adb +@@ -238,6 +238,9 @@ + procedure Write_Usage; + -- Show user the program options + ++ function Starts_With (Source, Pattern : String) return Boolean; ++ pragma Inline (Starts_With); ++ + --------------- + -- Base_Name -- + --------------- +@@ -524,7 +527,7 @@ + Binder_Options.Table (Binder_Options.Last) := + Linker_Options.Table (Linker_Options.Last); + +- elsif Arg'Length >= 7 and then Arg (1 .. 7) = "--LINK=" then ++ elsif Starts_With (Arg, "--LINK=") then + if Arg'Length = 7 then + Exit_With_Error ("Missing argument for --LINK="); + end if; +@@ -537,7 +540,7 @@ + ("Could not locate linker: " & Arg (8 .. Arg'Last)); + end if; + +- elsif Arg'Length > 6 and then Arg (1 .. 6) = "--GCC=" then ++ elsif Starts_With (Arg, "--GCC=") then + declare + Program_Args : constant Argument_List_Access := + Argument_String_To_List +@@ -1258,13 +1261,9 @@ + 1 .. Linker_Options.Last + loop + if Linker_Options.Table (J) /= null +- and then +- Linker_Options.Table (J)'Length +- > Run_Path_Opt'Length +- and then +- Linker_Options.Table (J) +- (1 .. Run_Path_Opt'Length) = +- Run_Path_Opt ++ and then Starts_With ++ (Linker_Options.Table (J).all, ++ Run_Path_Opt) + then + -- We have found an already + -- specified run_path_option: +@@ -1381,6 +1380,17 @@ + Status := fclose (Fd); + end Process_Binder_File; + ++ ---------------- ++ -- StartsWith -- ++ ---------------- ++ ++ function Starts_With (Source, Pattern : String) return Boolean is ++ Last : constant Natural := Source'First + Pattern'Length - 1; ++ begin ++ return Last <= Source'Last ++ and then Pattern = Source (Source'First .. Last); ++ end Starts_With; ++ + ----------- + -- Usage -- + ----------- +@@ -1894,8 +1904,8 @@ + while J <= Linker_Options.Last loop + if Linker_Options.Table (J).all = "-Xlinker" + and then J < Linker_Options.Last +- and then Linker_Options.Table (J + 1)'Length > 8 +- and then Linker_Options.Table (J + 1) (1 .. 8) = "--stack=" ++ and then Starts_With (Linker_Options.Table (J + 1).all, ++ "--stack=") + then + if Stack_Op then + Linker_Options.Table (J .. Linker_Options.Last - 2) := +@@ -1926,13 +1935,9 @@ + -- Here we just check for a canonical form that matches the + -- pragma Linker_Options set in the NT runtime. + +- if (Linker_Options.Table (J)'Length > 17 +- and then Linker_Options.Table (J) (1 .. 17) = +- "-Xlinker --stack=") +- or else +- (Linker_Options.Table (J)'Length > 12 +- and then Linker_Options.Table (J) (1 .. 12) = +- "-Wl,--stack=") ++ if Starts_With (Linker_Options.Table (J).all, "-Xlinker --stack=") ++ or else Starts_With (Linker_Options.Table (J).all, ++ "-Wl,--stack=") + then + if Stack_Op then + Linker_Options.Table (J .. Linker_Options.Last - 1) := diff --git a/debian/patches/ada-acats.diff b/debian/patches/ada-acats.diff new file mode 100644 index 0000000..ad6c23f --- /dev/null +++ b/debian/patches/ada-acats.diff @@ -0,0 +1,175 @@ +# DP: - When running the ACATS, look for the gnat tools in their new +# DP: directory (build/gnattools), and for the shared libraries in +# DP: build/gcc/ada/rts and build/libgnatvsn. + +--- a/src/gcc/testsuite/ada/acats/run_acats.sh ++++ b/src/gcc/testsuite/ada/acats/run_acats.sh +@@ -22,45 +22,25 @@ + + # Set up environment to use the Ada compiler from the object tree + +-host_gnatchop=`which gnatchop` +-host_gnatmake=`which gnatmake` + ROOT=`${PWDCMD-pwd}` + BASE=`cd $ROOT/../../..; ${PWDCMD-pwd}` + + PATH=$BASE:$ROOT:$PATH +-ADA_INCLUDE_PATH=$BASE/ada/rts +-LD_LIBRARY_PATH=$ADA_INCLUDE_PATH:$BASE:$LD_LIBRARY_PATH +-ADA_OBJECTS_PATH=$ADA_INCLUDE_PATH + +-if [ ! -d $ADA_INCLUDE_PATH ]; then +- echo gnatlib missing, exiting. +- exit 1 +-fi ++TARGET=`${GCC_DRIVER} -v 2>&1 |grep '^Target:' | cut -d' ' -f2` ++GNATTOOLS=`cd $BASE/../gnattools; ${PWDCMD-pwd}` ++LIBGNATVSN=`cd $BASE/../${TARGET}/libgnatvsn; ${PWDCMD-pwd}` + +-if [ ! -f $BASE/gnatchop ]; then +- echo gnattools missing, exiting. +- exit 1 +-fi +- +-if [ ! -f $BASE/gnatmake ]; then +- echo gnattools missing, exiting. +- exit 1 +-fi ++export GNATTOOLS LIBGNATVSN LIBGNATPRJ + + export PATH ADA_INCLUDE_PATH ADA_OBJECTS_PATH BASE LD_LIBRARY_PATH + + echo '#!/bin/sh' > host_gnatchop +-echo PATH=`dirname $host_gnatchop`:'$PATH' >> host_gnatchop +-echo unset ADA_INCLUDE_PATH ADA_OBJECTS_PATH GCC_EXEC_PREFIX >> host_gnatchop +-echo export PATH >> host_gnatchop + echo exec gnatchop '"$@"' >> host_gnatchop + + chmod +x host_gnatchop + + echo '#!/bin/sh' > host_gnatmake +-echo PATH=`dirname $host_gnatmake`:'$PATH' >> host_gnatmake +-echo unset ADA_INCLUDE_PATH ADA_OBJECTS_PATH GCC_EXEC_PREFIX >> host_gnatmake +-echo export PATH >> host_gnatmake + echo exec gnatmake '"$@"' >> host_gnatmake + + chmod +x host_gnatmake +--- a/src/gcc/testsuite/ada/acats/run_all.sh ++++ b/src/gcc/testsuite/ada/acats/run_all.sh +@@ -14,6 +14,10 @@ + + # End of customization section. + ++RTS=`cd $GNATTOOLS/../gcc/ada/rts; ${PWDCMD-pwd}` ++LD_LIBRARY_PATH=$RTS:$LIBGNATVSN ++export LD_LIBRARY_PATH ++ + # Perform arithmetic evaluation on the ARGs, and store the result in the + # global $as_val. Take advantage of shells that can avoid forks. The arguments + # must be portable across $(()) and expr. +@@ -56,12 +60,16 @@ + GCC="$BASE/xgcc -B$BASE/" + + target_gnatchop () { +- $BASE/gnatchop --GCC="$BASE/xgcc" $* ++ ADA_INCLUDE_PATH=$GNATTOOLS/../../src/gcc/ada \ ++ $GNATTOOLS/gnatchop --GCC="$BASE/xgcc" $* + } + + target_gnatmake () { +- echo $BASE/gnatmake --GNATBIND=$BASE/gnatbind --GNATLINK=$BASE/gnatlink --GCC="$GCC" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC="$GCC" +- $BASE/gnatmake --GNATBIND=$BASE/gnatbind --GNATLINK=$BASE/gnatlink --GCC="$GCC" $gnatflags $gccflags $* -largs $EXTERNAL_OBJECTS --GCC="$GCC" ++ EXTERNAL_OBJECTS="$EXTERNAL_OBJECTS $RTS/adaint.o $RTS/sysdep.o $RTS/init.o $RTS/raise-gcc.o" ++ $GNATTOOLS/gnatmake -I- -I$RTS -I. \ ++ --GCC="$GCC" --GNATBIND="$GNATTOOLS/gnatbind" \ ++ --GNATLINK="$GNATTOOLS/gnatlink" $gnatflags $gccflags $* \ ++ -bargs -static -largs $EXTERNAL_OBJECTS --GCC="$GCC -I- -I$RTS -I." + } + + target_gcc () { +@@ -98,8 +106,8 @@ + display `$GCC -v 2>&1` + display host=`gcc -dumpmachine` + display target=$target +-display `type gnatmake` +-gnatls -v >> $dir/acats.log ++display `type $GNATTOOLS/gnatmake` ++$GNATTOOLS/gnatls -I- -I$RTS -v >> $dir/acats.log + display "" + + if [ -n "$GCC_RUNTEST_PARALLELIZE_DIR" ]; then +@@ -130,7 +138,7 @@ + exit 1 + fi + target_run $dir/support/impbit > $dir/support/impbit.out 2>&1 +-target_bit=`cat $dir/support/impbit.out` ++target_bit=`cat $dir/support/impbit.out | sed -e 's/ //g' -e 's/\r//g'` + echo target_bit="$target_bit" >> $dir/acats.log + + # Find out a suitable asm statement +--- a/src/gcc/testsuite/lib/gnat.exp ++++ b/src/gcc/testsuite/lib/gnat.exp +@@ -88,18 +88,24 @@ + global GNAT_UNDER_TEST + global TOOL_EXECUTABLE + global gnat_target_current ++ global ld_library_path + + set gnat_target_current "" + + if { $gnat_initialized == 1 } { return } + +- if ![info exists GNAT_UNDER_TEST] then { +- if [info exists TOOL_EXECUTABLE] { +- set GNAT_UNDER_TEST "$TOOL_EXECUTABLE" +- } else { +- set GNAT_UNDER_TEST "[local_find_gnatmake]" +- } +- } ++ set target [target_info name] ++ set GNAT_UNDER_TEST "$rootme/../gnattools/gnatmake -I$rootme/ada/rts --GCC=$rootme/xgcc --GNATBIND=$rootme/../gnattools/gnatbind --GNATLINK=$rootme/../gnattools/gnatlink -cargs -B$rootme -largs --GCC=$rootme/xgcc -B$rootme -margs" ++ append ld_library_path ":$rootme/ada/rts" ++ append ld_library_path ":$rootme/../$target/libgnatvsn" ++ set_ld_library_path_env_vars ++ ++ # gnatlink looks for system.ads itself and has no --RTS option, so ++ # specify via environment ++ verbose -log "ADA_INCLUDE_PATH=$rootme/ada/rts" ++ verbose -log "ADA_OBJECTS_PATH=$rootme/ada/rts" ++ setenv ADA_INCLUDE_PATH "$rootme/ada/rts" ++ setenv ADA_OBJECTS_PATH "$rootme/ada/rts" + + if ![info exists tmpdir] then { + set tmpdir /tmp +@@ -121,31 +127,6 @@ + return [gcc_target_compile $source $dest $type $options] + } + +- # If we detect a change of target, we need to recompute both +- # GNAT_UNDER_TEST and the appropriate RTS. +- if { $gnat_target_current!="[current_target_name]" } { +- set gnat_target_current "[current_target_name]" +- if [info exists TOOL_OPTIONS] { +- set rtsdir "[get_multilibs ${TOOL_OPTIONS}]/libada" +- } else { +- set rtsdir "[get_multilibs]/libada" +- } +- if [info exists TOOL_EXECUTABLE] { +- set GNAT_UNDER_TEST "$TOOL_EXECUTABLE" +- } else { +- set GNAT_UNDER_TEST "[local_find_gnatmake]" +- } +- set GNAT_UNDER_TEST "$GNAT_UNDER_TEST --RTS=$rtsdir" +- +- # gnatlink looks for system.ads itself and has no --RTS option, so +- # specify via environment +- setenv ADA_INCLUDE_PATH "$rtsdir/adainclude" +- setenv ADA_OBJECTS_PATH "$rtsdir/adainclude" +- # Always log so compilations can be repeated manually. +- verbose -log "ADA_INCLUDE_PATH=$rtsdir/adainclude" +- verbose -log "ADA_OBJECTS_PATH=$rtsdir/adainclude" +- } +- + lappend options "compiler=$GNAT_UNDER_TEST -q -f" + lappend options "timeout=[timeout_value]" + diff --git a/debian/patches/ada-arm.diff b/debian/patches/ada-arm.diff new file mode 100644 index 0000000..565a080 --- /dev/null +++ b/debian/patches/ada-arm.diff @@ -0,0 +1,18 @@ +DP: Improve support for ZCX on arm. + +Index: b/src/gcc/ada/gcc-interface/Makefile.in +=================================================================== +--- a/src/gcc/ada/gcc-interface/Makefile.in ++++ b/src/gcc/ada/gcc-interface/Makefile.in +@@ -1957,7 +1957,10 @@ ifeq ($(strip $(filter-out arm% linux-gn + ifeq ($(strip $(filter-out arm%b,$(target_cpu))),) + EH_MECHANISM= + else +- EH_MECHANISM=-arm ++ # Special case; the GCC exception mechanism is supported under ++ # another name and with different files than for other ++ # target_cpus. ++ override EH_MECHANISM=-arm + endif + + TOOLS_TARGET_PAIRS = \ diff --git a/debian/patches/ada-armel-libatomic.diff b/debian/patches/ada-armel-libatomic.diff new file mode 100644 index 0000000..a4a4316 --- /dev/null +++ b/debian/patches/ada-armel-libatomic.diff @@ -0,0 +1,33 @@ +Description: link libgnat with libatomic on armel + On other architectures, the link step does not change because we link + with --as-needed (ada-link-lib.diff). + . + Libatomic becomes an artificial dependency for Ada in Makefile.def, + so a better solution is welcome. + . + Please read ada-changes-in-autogen-output.diff about src/Makefile.def. +Bug-Debian: https://bugs.debian.org/861734 +Author: Matthias Klose +Author: Nicolas Boulenguez + +--- a/src/gcc/ada/gcc-interface/Makefile.in ++++ b/src/gcc/ada/gcc-interface/Makefile.in +@@ -1948,6 +1948,7 @@ + + # ARM linux, GNU eabi + ifeq ($(strip $(filter-out arm% linux-gnueabi%,$(target_cpu) $(target_os))),) ++ MISCLIB = -L../../../$(target_alias)/libatomic/.libs -latomic + LIBGNAT_TARGET_PAIRS = \ + a-intnam.ads $(TARGET_SUBDIR)/libgnatvsn/multilib.tmp 2> /dev/null; \ ++ if test -r $(TARGET_SUBDIR)/libgnatvsn/multilib.out; then \ ++ if cmp -s $(TARGET_SUBDIR)/libgnatvsn/multilib.tmp $(TARGET_SUBDIR)/libgnatvsn/multilib.out; then \ ++ rm -f $(TARGET_SUBDIR)/libgnatvsn/multilib.tmp; \ ++ else \ ++ rm -f $(TARGET_SUBDIR)/libgnatvsn/Makefile; \ ++ mv $(TARGET_SUBDIR)/libgnatvsn/multilib.tmp $(TARGET_SUBDIR)/libgnatvsn/multilib.out; \ ++ fi; \ ++ else \ ++ mv $(TARGET_SUBDIR)/libgnatvsn/multilib.tmp $(TARGET_SUBDIR)/libgnatvsn/multilib.out; \ ++ fi; \ ++ test ! -f $(TARGET_SUBDIR)/libgnatvsn/Makefile || exit 0; \ ++ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libgnatvsn; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo Configuring in $(TARGET_SUBDIR)/libgnatvsn; \ ++ cd "$(TARGET_SUBDIR)/libgnatvsn" || exit 1; \ ++ case $(srcdir) in \ ++ /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \ ++ *) topdir=`echo $(TARGET_SUBDIR)/libgnatvsn/ | \ ++ sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \ ++ esac; \ ++ module_srcdir=libgnatvsn; \ ++ rm -f no-such-file || : ; \ ++ CONFIG_SITE=no-such-file $(SHELL) \ ++ $$s/$$module_srcdir/configure \ ++ --srcdir=$${topdir}/$$module_srcdir \ ++ $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \ ++ --target=${target_alias} \ ++ || exit 1 ++@endif target-libgnatvsn ++ ++ ++ ++ ++ ++.PHONY: all-target-libgnatvsn maybe-all-target-libgnatvsn ++maybe-all-target-libgnatvsn: ++@if gcc-bootstrap ++all-target-libgnatvsn: stage_current ++@endif gcc-bootstrap ++@if target-libgnatvsn ++TARGET-target-libgnatvsn=all ++maybe-all-target-libgnatvsn: all-target-libgnatvsn ++all-target-libgnatvsn: configure-target-libgnatvsn ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libgnatvsn && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \ ++ $(TARGET-target-libgnatvsn)) ++@endif target-libgnatvsn ++ ++ ++ ++ ++ ++.PHONY: check-target-libgnatvsn maybe-check-target-libgnatvsn ++maybe-check-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-check-target-libgnatvsn: check-target-libgnatvsn ++ ++# Dummy target for uncheckable module. ++check-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: install-target-libgnatvsn maybe-install-target-libgnatvsn ++maybe-install-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-install-target-libgnatvsn: install-target-libgnatvsn ++ ++install-target-libgnatvsn: installdirs ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libgnatvsn && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) ++ ++@endif target-libgnatvsn ++ ++.PHONY: install-strip-target-libgnatvsn maybe-install-strip-target-libgnatvsn ++maybe-install-strip-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-install-strip-target-libgnatvsn: install-strip-target-libgnatvsn ++ ++install-strip-target-libgnatvsn: installdirs ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libgnatvsn && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) install-strip) ++ ++@endif target-libgnatvsn ++ ++# Other targets (info, dvi, pdf, etc.) ++ ++.PHONY: maybe-info-target-libgnatvsn info-target-libgnatvsn ++maybe-info-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-info-target-libgnatvsn: info-target-libgnatvsn ++ ++# libgnatvsn doesn't support info. ++info-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-dvi-target-libgnatvsn dvi-target-libgnatvsn ++maybe-dvi-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-dvi-target-libgnatvsn: dvi-target-libgnatvsn ++ ++# libgnatvsn doesn't support dvi. ++dvi-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-pdf-target-libgnatvsn pdf-target-libgnatvsn ++maybe-pdf-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-pdf-target-libgnatvsn: pdf-target-libgnatvsn ++ ++# libgnatvsn doesn't support pdf. ++pdf-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-html-target-libgnatvsn html-target-libgnatvsn ++maybe-html-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-html-target-libgnatvsn: html-target-libgnatvsn ++ ++# libgnatvsn doesn't support html. ++html-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-TAGS-target-libgnatvsn TAGS-target-libgnatvsn ++maybe-TAGS-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-TAGS-target-libgnatvsn: TAGS-target-libgnatvsn ++ ++# libgnatvsn doesn't support TAGS. ++TAGS-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-install-info-target-libgnatvsn install-info-target-libgnatvsn ++maybe-install-info-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-install-info-target-libgnatvsn: install-info-target-libgnatvsn ++ ++# libgnatvsn doesn't support install-info. ++install-info-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-install-pdf-target-libgnatvsn install-pdf-target-libgnatvsn ++maybe-install-pdf-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-install-pdf-target-libgnatvsn: install-pdf-target-libgnatvsn ++ ++# libgnatvsn doesn't support install-pdf. ++install-pdf-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-install-html-target-libgnatvsn install-html-target-libgnatvsn ++maybe-install-html-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-install-html-target-libgnatvsn: install-html-target-libgnatvsn ++ ++# libgnatvsn doesn't support install-html. ++install-html-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-installcheck-target-libgnatvsn installcheck-target-libgnatvsn ++maybe-installcheck-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-installcheck-target-libgnatvsn: installcheck-target-libgnatvsn ++ ++# libgnatvsn doesn't support installcheck. ++installcheck-target-libgnatvsn: ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-mostlyclean-target-libgnatvsn mostlyclean-target-libgnatvsn ++maybe-mostlyclean-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-mostlyclean-target-libgnatvsn: mostlyclean-target-libgnatvsn ++ ++mostlyclean-target-libgnatvsn: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libgnatvsn/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing TAGS in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing mostlyclean in $(TARGET_SUBDIR)/libgnatvsn"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libgnatvsn && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ mostlyclean) \ ++ || exit 1 ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-clean-target-libgnatvsn clean-target-libgnatvsn ++maybe-clean-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-clean-target-libgnatvsn: clean-target-libgnatvsn ++ ++clean-target-libgnatvsn: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libgnatvsn/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing clean in $(TARGET_SUBDIR)/libgnatvsn"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libgnatvsn && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ clean) \ ++ || exit 1 ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-distclean-target-libgnatvsn distclean-target-libgnatvsn ++maybe-distclean-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-distclean-target-libgnatvsn: distclean-target-libgnatvsn ++ ++distclean-target-libgnatvsn: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libgnatvsn/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing distclean in $(TARGET_SUBDIR)/libgnatvsn"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libgnatvsn && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ distclean) \ ++ || exit 1 ++ ++@endif target-libgnatvsn ++ ++.PHONY: maybe-maintainer-clean-target-libgnatvsn maintainer-clean-target-libgnatvsn ++maybe-maintainer-clean-target-libgnatvsn: ++@if target-libgnatvsn ++maybe-maintainer-clean-target-libgnatvsn: maintainer-clean-target-libgnatvsn ++ ++maintainer-clean-target-libgnatvsn: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libgnatvsn/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libgnatvsn"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libgnatvsn && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ maintainer-clean) \ ++ || exit 1 ++ ++@endif target-libgnatvsn ++ ++ ++ ++ ++ ++.PHONY: configure-target-libada-sjlj maybe-configure-target-libada-sjlj ++maybe-configure-target-libada-sjlj: ++@if gcc-bootstrap ++configure-target-libada-sjlj: stage_current ++@endif gcc-bootstrap ++@if target-libada-sjlj ++maybe-configure-target-libada-sjlj: configure-target-libada-sjlj ++configure-target-libada-sjlj: ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ echo "Checking multilib configuration for libada-sjlj..."; \ ++ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libada-sjlj; \ ++ $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libada-sjlj/multilib.tmp 2> /dev/null; \ ++ if test -r $(TARGET_SUBDIR)/libada-sjlj/multilib.out; then \ ++ if cmp -s $(TARGET_SUBDIR)/libada-sjlj/multilib.tmp $(TARGET_SUBDIR)/libada-sjlj/multilib.out; then \ ++ rm -f $(TARGET_SUBDIR)/libada-sjlj/multilib.tmp; \ ++ else \ ++ rm -f $(TARGET_SUBDIR)/libada-sjlj/Makefile; \ ++ mv $(TARGET_SUBDIR)/libada-sjlj/multilib.tmp $(TARGET_SUBDIR)/libada-sjlj/multilib.out; \ ++ fi; \ ++ else \ ++ mv $(TARGET_SUBDIR)/libada-sjlj/multilib.tmp $(TARGET_SUBDIR)/libada-sjlj/multilib.out; \ ++ fi; \ ++ test ! -f $(TARGET_SUBDIR)/libada-sjlj/Makefile || exit 0; \ ++ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libada-sjlj; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo Configuring in $(TARGET_SUBDIR)/libada-sjlj; \ ++ cd "$(TARGET_SUBDIR)/libada-sjlj" || exit 1; \ ++ case $(srcdir) in \ ++ /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \ ++ *) topdir=`echo $(TARGET_SUBDIR)/libada-sjlj/ | \ ++ sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \ ++ esac; \ ++ module_srcdir=libada-sjlj; \ ++ rm -f no-such-file || : ; \ ++ CONFIG_SITE=no-such-file $(SHELL) \ ++ $$s/$$module_srcdir/configure \ ++ --srcdir=$${topdir}/$$module_srcdir \ ++ $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \ ++ --target=${target_alias} \ ++ || exit 1 ++@endif target-libada-sjlj ++ ++ ++ ++ ++ ++.PHONY: all-target-libada-sjlj maybe-all-target-libada-sjlj ++maybe-all-target-libada-sjlj: ++@if gcc-bootstrap ++all-target-libada-sjlj: stage_current ++@endif gcc-bootstrap ++@if target-libada-sjlj ++TARGET-target-libada-sjlj=all ++maybe-all-target-libada-sjlj: all-target-libada-sjlj ++all-target-libada-sjlj: configure-target-libada-sjlj ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \ ++ $(TARGET-target-libada-sjlj)) ++@endif target-libada-sjlj ++ ++ ++ ++ ++ ++.PHONY: check-target-libada-sjlj maybe-check-target-libada-sjlj ++maybe-check-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-check-target-libada-sjlj: check-target-libada-sjlj ++ ++check-target-libada-sjlj: ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) check) ++ ++@endif target-libada-sjlj ++ ++.PHONY: install-target-libada-sjlj maybe-install-target-libada-sjlj ++maybe-install-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-install-target-libada-sjlj: install-target-libada-sjlj ++ ++install-target-libada-sjlj: installdirs ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) ++ ++@endif target-libada-sjlj ++ ++.PHONY: install-strip-target-libada-sjlj maybe-install-strip-target-libada-sjlj ++maybe-install-strip-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-install-strip-target-libada-sjlj: install-strip-target-libada-sjlj ++ ++install-strip-target-libada-sjlj: installdirs ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) install-strip) ++ ++@endif target-libada-sjlj ++ ++# Other targets (info, dvi, pdf, etc.) ++ ++.PHONY: maybe-info-target-libada-sjlj info-target-libada-sjlj ++maybe-info-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-info-target-libada-sjlj: info-target-libada-sjlj ++ ++info-target-libada-sjlj: \ ++ configure-target-libada-sjlj ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing info in $(TARGET_SUBDIR)/libada-sjlj"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ info) \ ++ || exit 1 ++ ++@endif target-libada-sjlj ++ ++.PHONY: maybe-dvi-target-libada-sjlj dvi-target-libada-sjlj ++maybe-dvi-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-dvi-target-libada-sjlj: dvi-target-libada-sjlj ++ ++dvi-target-libada-sjlj: \ ++ configure-target-libada-sjlj ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing dvi in $(TARGET_SUBDIR)/libada-sjlj"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ dvi) \ ++ || exit 1 ++ ++@endif target-libada-sjlj ++ ++.PHONY: maybe-pdf-target-libada-sjlj pdf-target-libada-sjlj ++maybe-pdf-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-pdf-target-libada-sjlj: pdf-target-libada-sjlj ++ ++pdf-target-libada-sjlj: \ ++ configure-target-libada-sjlj ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing pdf in $(TARGET_SUBDIR)/libada-sjlj"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ pdf) \ ++ || exit 1 ++ ++@endif target-libada-sjlj ++ ++.PHONY: maybe-html-target-libada-sjlj html-target-libada-sjlj ++maybe-html-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-html-target-libada-sjlj: html-target-libada-sjlj ++ ++html-target-libada-sjlj: \ ++ configure-target-libada-sjlj ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing html in $(TARGET_SUBDIR)/libada-sjlj"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ html) \ ++ || exit 1 ++ ++@endif target-libada-sjlj ++ ++.PHONY: maybe-TAGS-target-libada-sjlj TAGS-target-libada-sjlj ++maybe-TAGS-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-TAGS-target-libada-sjlj: TAGS-target-libada-sjlj ++ ++TAGS-target-libada-sjlj: \ ++ configure-target-libada-sjlj ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing TAGS in $(TARGET_SUBDIR)/libada-sjlj"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -49967,26 +50452,26 @@ TAGS-target-libada: \ + TAGS) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-install-info-target-libada install-info-target-libada +-maybe-install-info-target-libada: +-@if target-libada +-maybe-install-info-target-libada: install-info-target-libada ++.PHONY: maybe-install-info-target-libada-sjlj install-info-target-libada-sjlj ++maybe-install-info-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-install-info-target-libada-sjlj: install-info-target-libada-sjlj + +-install-info-target-libada: \ +- configure-target-libada \ +- info-target-libada ++install-info-target-libada-sjlj: \ ++ configure-target-libada-sjlj \ ++ info-target-libada-sjlj + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing install-info in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing install-info in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -49994,26 +50479,26 @@ install-info-target-libada: \ + install-info) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-install-pdf-target-libada install-pdf-target-libada +-maybe-install-pdf-target-libada: +-@if target-libada +-maybe-install-pdf-target-libada: install-pdf-target-libada ++.PHONY: maybe-install-pdf-target-libada-sjlj install-pdf-target-libada-sjlj ++maybe-install-pdf-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-install-pdf-target-libada-sjlj: install-pdf-target-libada-sjlj + +-install-pdf-target-libada: \ +- configure-target-libada \ +- pdf-target-libada ++install-pdf-target-libada-sjlj: \ ++ configure-target-libada-sjlj \ ++ pdf-target-libada-sjlj + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing install-pdf in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing install-pdf in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -50021,26 +50506,26 @@ install-pdf-target-libada: \ + install-pdf) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-install-html-target-libada install-html-target-libada +-maybe-install-html-target-libada: +-@if target-libada +-maybe-install-html-target-libada: install-html-target-libada ++.PHONY: maybe-install-html-target-libada-sjlj install-html-target-libada-sjlj ++maybe-install-html-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-install-html-target-libada-sjlj: install-html-target-libada-sjlj + +-install-html-target-libada: \ +- configure-target-libada \ +- html-target-libada ++install-html-target-libada-sjlj: \ ++ configure-target-libada-sjlj \ ++ html-target-libada-sjlj + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing install-html in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing install-html in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -50048,25 +50533,25 @@ install-html-target-libada: \ + install-html) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-installcheck-target-libada installcheck-target-libada +-maybe-installcheck-target-libada: +-@if target-libada +-maybe-installcheck-target-libada: installcheck-target-libada ++.PHONY: maybe-installcheck-target-libada-sjlj installcheck-target-libada-sjlj ++maybe-installcheck-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-installcheck-target-libada-sjlj: installcheck-target-libada-sjlj + +-installcheck-target-libada: \ +- configure-target-libada ++installcheck-target-libada-sjlj: \ ++ configure-target-libada-sjlj + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing installcheck in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing installcheck in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -50074,24 +50559,24 @@ installcheck-target-libada: \ + installcheck) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-mostlyclean-target-libada mostlyclean-target-libada +-maybe-mostlyclean-target-libada: +-@if target-libada +-maybe-mostlyclean-target-libada: mostlyclean-target-libada ++.PHONY: maybe-mostlyclean-target-libada-sjlj mostlyclean-target-libada-sjlj ++maybe-mostlyclean-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-mostlyclean-target-libada-sjlj: mostlyclean-target-libada-sjlj + +-mostlyclean-target-libada: ++mostlyclean-target-libada-sjlj: + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing mostlyclean in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing mostlyclean in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -50099,24 +50584,24 @@ mostlyclean-target-libada: + mostlyclean) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-clean-target-libada clean-target-libada +-maybe-clean-target-libada: +-@if target-libada +-maybe-clean-target-libada: clean-target-libada ++.PHONY: maybe-clean-target-libada-sjlj clean-target-libada-sjlj ++maybe-clean-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-clean-target-libada-sjlj: clean-target-libada-sjlj + +-clean-target-libada: ++clean-target-libada-sjlj: + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing clean in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing clean in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -50124,24 +50609,24 @@ clean-target-libada: + clean) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-distclean-target-libada distclean-target-libada +-maybe-distclean-target-libada: +-@if target-libada +-maybe-distclean-target-libada: distclean-target-libada ++.PHONY: maybe-distclean-target-libada-sjlj distclean-target-libada-sjlj ++maybe-distclean-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-distclean-target-libada-sjlj: distclean-target-libada-sjlj + +-distclean-target-libada: ++distclean-target-libada-sjlj: + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing distclean in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing distclean in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -50149,24 +50634,24 @@ distclean-target-libada: + distclean) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + +-.PHONY: maybe-maintainer-clean-target-libada maintainer-clean-target-libada +-maybe-maintainer-clean-target-libada: +-@if target-libada +-maybe-maintainer-clean-target-libada: maintainer-clean-target-libada ++.PHONY: maybe-maintainer-clean-target-libada-sjlj maintainer-clean-target-libada-sjlj ++maybe-maintainer-clean-target-libada-sjlj: ++@if target-libada-sjlj ++maybe-maintainer-clean-target-libada-sjlj: maintainer-clean-target-libada-sjlj + +-maintainer-clean-target-libada: ++maintainer-clean-target-libada-sjlj: + @: $(MAKE); $(unstage) +- @[ -f $(TARGET_SUBDIR)/libada/Makefile ] || exit 0; \ ++ @[ -f $(TARGET_SUBDIR)/libada-sjlj/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(NORMAL_TARGET_EXPORTS) \ +- echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libada"; \ ++ echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libada-sjlj"; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ +- (cd $(TARGET_SUBDIR)/libada && \ ++ (cd $(TARGET_SUBDIR)/libada-sjlj && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ +@@ -50174,7 +50659,7 @@ maintainer-clean-target-libada: + maintainer-clean) \ + || exit 1 + +-@endif target-libada ++@endif target-libada-sjlj + + + +@@ -55242,6 +55727,8 @@ configure-target-libffi: stage_last + configure-target-zlib: stage_last + configure-target-rda: stage_last + configure-target-libada: stage_last ++configure-target-libgnatvsn: stage_last ++configure-target-libada-sjlj: stage_last + configure-stage1-target-libgomp: maybe-all-stage1-gcc + configure-stage2-target-libgomp: maybe-all-stage2-gcc + configure-stage3-target-libgomp: maybe-all-stage3-gcc +@@ -55278,6 +55765,8 @@ configure-target-libffi: maybe-all-gcc + configure-target-zlib: maybe-all-gcc + configure-target-rda: maybe-all-gcc + configure-target-libada: maybe-all-gcc ++configure-target-libgnatvsn: maybe-all-gcc ++configure-target-libada-sjlj: maybe-all-gcc + configure-target-libgomp: maybe-all-gcc + configure-target-libitm: maybe-all-gcc + configure-target-libatomic: maybe-all-gcc +@@ -55733,8 +56222,12 @@ all-stageprofile-fixincludes: maybe-all- + all-stagefeedback-fixincludes: maybe-all-stagefeedback-libiberty + all-stageautoprofile-fixincludes: maybe-all-stageautoprofile-libiberty + all-stageautofeedback-fixincludes: maybe-all-stageautofeedback-libiberty ++all-target-libada: maybe-all-gcc ++all-target-libada-sjlj: maybe-all-target-libada + all-gnattools: maybe-all-target-libada + all-gnattools: maybe-all-target-libstdc++-v3 ++all-gnattools: maybe-all-target-libgnatvsn ++all-target-libgnatvsn: maybe-all-target-libada + all-lto-plugin: maybe-all-libiberty + + all-stage1-lto-plugin: maybe-all-stage1-libiberty +@@ -56434,6 +56927,8 @@ configure-target-libffi: maybe-all-targe + configure-target-zlib: maybe-all-target-libgcc + configure-target-rda: maybe-all-target-libgcc + configure-target-libada: maybe-all-target-libgcc ++configure-target-libgnatvsn: maybe-all-target-libgcc ++configure-target-libada-sjlj: maybe-all-target-libgcc + configure-target-libgomp: maybe-all-target-libgcc + configure-target-libitm: maybe-all-target-libgcc + configure-target-libatomic: maybe-all-target-libgcc +@@ -56486,6 +56981,10 @@ configure-target-rda: maybe-all-target-n + + configure-target-libada: maybe-all-target-newlib maybe-all-target-libgloss + ++configure-target-libgnatvsn: maybe-all-target-newlib maybe-all-target-libgloss ++ ++configure-target-libada-sjlj: maybe-all-target-newlib maybe-all-target-libgloss ++ + configure-target-libgomp: maybe-all-target-newlib maybe-all-target-libgloss + + configure-target-libitm: maybe-all-target-newlib maybe-all-target-libgloss diff --git a/debian/patches/ada-drop-termio-h.diff b/debian/patches/ada-drop-termio-h.diff new file mode 100644 index 0000000..e96a67a --- /dev/null +++ b/debian/patches/ada-drop-termio-h.diff @@ -0,0 +1,40 @@ +Description: ada/terminals.c: remove obsolete termio.h + On all architectures, the terminals.c source file #includes + and declares variables with type struct termios. + . + Some platforms provide a compatibility termio.h, which only defines + the termio structure. + . + terminals.c also #includes , probably for historical + reasons since no termio structure is ever used. + . + Drop the #include instead of maintaining a list of architectures. +Author: Nicolas Boulenguez +Bug-Debian: https://bugs.debian.org/845159 +Forwarded: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81103 + +--- a/src/gcc/ada/terminals.c ++++ b/src/gcc/ada/terminals.c +@@ -1060,14 +1060,6 @@ + #include + #include + #include +- +-/* On some system termio is either absent or including it will disable termios +- (HP-UX) */ +-#if !defined (__hpux__) && !defined (BSD) && !defined (__APPLE__) \ +- && !defined (__rtems__) +-# include +-#endif +- + #include + #include + #include +@@ -1083,7 +1075,6 @@ + # include + #endif + #if defined (__hpux__) +-# include + # include + #endif + diff --git a/debian/patches/ada-gcc-name.diff b/debian/patches/ada-gcc-name.diff new file mode 100644 index 0000000..ef6c223 --- /dev/null +++ b/debian/patches/ada-gcc-name.diff @@ -0,0 +1,117 @@ +Description: ensure that gnat tools execute the same GCC version + The "gcc" default compiler may differ from "gcc-BV", where BV is the + GCC base version of the tools. + . + Gnatchop already handles this issue by extracting parts of the resolved path + to its command name at run time. +Forwarded: not-needed +Author: Ludovic Brenta +Author: Nicolas Boulenguez + +--- a/src/gcc/ada/gnatlink.adb ++++ b/src/gcc/ada/gnatlink.adb +@@ -136,7 +136,8 @@ + -- This table collects the arguments to be passed to compile the binder + -- generated file. + +- Gcc : String_Access := Program_Name ("gcc", "gnatlink"); ++ Gcc : String_Access ++ := Program_Name ("gcc-" & Gnatvsn.Library_Version, "gnatlink"); + + Read_Mode : constant String := "r" & ASCII.NUL; + +@@ -1414,7 +1415,8 @@ + end if; + + Write_Line (" --GCC=comp Use comp as the compiler"); +- Write_Line (" --LINK=nam Use 'nam' for the linking rather than 'gcc'"); ++ Write_Line (" --LINK=nam Use 'nam' for the linking rather than 'gcc-" ++ & Gnatvsn.Library_Version & "'"); + Write_Eol; + Write_Line (" [non-Ada-objects] list of non Ada object files"); + Write_Line (" [linker-options] other options for the linker"); +--- a/src/gcc/ada/make.adb ++++ b/src/gcc/ada/make.adb +@@ -670,9 +670,12 @@ + -- Compiler, Binder & Linker Data and Subprograms -- + ---------------------------------------------------- + +- Gcc : String_Access := Program_Name ("gcc", "gnatmake"); +- Gnatbind : String_Access := Program_Name ("gnatbind", "gnatmake"); +- Gnatlink : String_Access := Program_Name ("gnatlink", "gnatmake"); ++ Gcc : String_Access := Program_Name ++ ("gcc-" & Gnatvsn.Library_Version, "gnatmake"); ++ Gnatbind : String_Access := Program_Name ++ ("gnatbind-" & Gnatvsn.Library_Version, "gnatmake"); ++ Gnatlink : String_Access := Program_Name ++ ("gnatlink-" & Gnatvsn.Library_Version, "gnatmake"); + -- Default compiler, binder, linker programs + + Saved_Gcc : String_Access := null; +--- a/src/gcc/ada/mdll-utl.adb ++++ b/src/gcc/ada/mdll-utl.adb +@@ -29,6 +29,7 @@ + with Ada.Exceptions; + + with GNAT.Directory_Operations; ++with Gnatvsn; + with Osint; + + package body MDLL.Utl is +@@ -39,7 +40,7 @@ + Dlltool_Name : constant String := "dlltool"; + Dlltool_Exec : OS_Lib.String_Access; + +- Gcc_Name : constant String := "gcc"; ++ Gcc_Name : constant String := "gcc-" & Gnatvsn.Library_Version; + Gcc_Exec : OS_Lib.String_Access; + + Gnatbind_Name : constant String := "gnatbind"; +@@ -212,7 +213,7 @@ + end; + end if; + +- Print_Command ("gcc", Arguments (1 .. A)); ++ Print_Command (Gcc_Name, Arguments (1 .. A)); + + OS_Lib.Spawn (Gcc_Exec.all, Arguments (1 .. A), Success); + +--- a/src/gcc/ada/mlib-utl.adb ++++ b/src/gcc/ada/mlib-utl.adb +@@ -23,6 +23,7 @@ + -- -- + ------------------------------------------------------------------------------ + ++with Gnatvsn; + with MLib.Fil; use MLib.Fil; + with MLib.Tgt; use MLib.Tgt; + with Opt; +@@ -446,7 +447,8 @@ + if Driver_Name = No_Name then + if Gcc_Exec = null then + if Gcc_Name = null then +- Gcc_Name := Osint.Program_Name ("gcc", "gnatmake"); ++ Gcc_Name := Osint.Program_Name ++ ("gcc-" & Gnatvsn.Library_Version, "gnatmake"); + end if; + + Gcc_Exec := Locate_Exec_On_Path (Gcc_Name.all); +--- a/src/gcc/ada/prj-makr.adb ++++ b/src/gcc/ada/prj-makr.adb +@@ -24,6 +24,7 @@ + ------------------------------------------------------------------------------ + + with Csets; ++with Gnatvsn; + with Makeutl; use Makeutl; + with Opt; + with Output; +@@ -115,7 +116,7 @@ + + procedure Dup2 (Old_Fd, New_Fd : File_Descriptor); + +- Gcc : constant String := "gcc"; ++ Gcc : constant String := "gcc-" & Gnatvsn.Library_Version; + Gcc_Path : String_Access := null; + + Non_Empty_Node : constant Project_Node_Id := 1; diff --git a/debian/patches/ada-gnattools-cross.diff b/debian/patches/ada-gnattools-cross.diff new file mode 100644 index 0000000..94b3617 --- /dev/null +++ b/debian/patches/ada-gnattools-cross.diff @@ -0,0 +1,274 @@ +* Link tools dynamically. +* Prevent direct embedding of libada objects: + Mark ALI files as read-only, remove objects after the build. + A solution keeping the objects would be more intrusive. +* Rebuild gnatbind/make/link with themselves. + This removes unneeded objects inherited from the hardcoded bootstrap list. + The same thing would be useful for gnat1drv, but is less easy. +* TOOLS_ALREADY_COMPILED lists LIBGNAT objects that + gcc/ada/gcc-interface/Makefile should not rebuild. +* Install the shared Ada libraries as '.so.1', not '.so' to conform + to the Debian policy. +* Link libgnat/gnarl with LDFLAGS. +* Create libgnat-BV.so symbolic link, use it and -L to link libgnarl. + This prevents undefined symbols or unwanted usage of host libgnat. +* Compile with -gnatn, link with --as-needed -z defs. +* set LD_LIBRARY_PATH so that rebuilt tools can be executed. + +This patch depends on ada-libgnatvsn.diff. + +# DP: - When building a cross gnat, link against the libgnatvsnBV-dev +# DP: package. +# DP: This link will be done by /usr/bin/$(host_alias)-gnat*, thus +# DP: the native gnat with the same major version will be required. + +Index: b/src/gcc/ada/gcc-interface/Makefile.in +=================================================================== +--- a/src/gcc/ada/gcc-interface/Makefile.in ++++ b/src/gcc/ada/gcc-interface/Makefile.in +@@ -1641,6 +1668,11 @@ ifeq ($(strip $(filter-out s390% linux%, + LIBRARY_VERSION := $(LIB_VERSION) + endif + ++ifeq ($(strip $(filter-out hppa% unknown linux gnu,$(targ))),) ++ GNATLIB_SHARED = gnatlib-shared-dual ++ LIBRARY_VERSION := $(LIB_VERSION) ++endif ++ + # HP/PA HP-UX 10 + ifeq ($(strip $(filter-out hppa% hp hpux10%,$(target_cpu) $(target_vendor) $(target_os))),) + LIBGNAT_TARGET_PAIRS = \ +@@ -2644,6 +2649,20 @@ + --GCC="$(GCC_LINK)" $(TOOLS_LIBS) + $(MV) ../../gnatlinknew$(exeext) ../../gnatlink$(exeext) + ++gnatbind-re: ../stamp-tools gnatmake-re gnatlink-re ++ $(GNATMAKE) -j0 -c $(ADA_INCLUDES) gnatbind --GCC="$(CC) $(ALL_ADAFLAGS)" ++ $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) gnatbind ++ $(GNATLINK) -v gnatbind -o ../../gnatbind$(exeext) \ ++ --GCC="$(GCC_LINK)" $(TOOLS_LIBS) ++ ++# When driven by gnattools/Makefile for a native build, ++# TOOLS_ALREADY_COMPILED will list objects in the target standard Ada ++# libraries, that Make should avoid rebuilding. ++# We cannot use recursive variables to avoid an infinite loop, ++# so we must put this after definition of EXTRA_GNATMAKE_OBJS. ++GNATLINK_OBJS := $(filter-out $(TOOLS_ALREADY_COMPILED),$(GNATLINK_OBJS)) ++GNATMAKE_OBJS := $(filter-out $(TOOLS_ALREADY_COMPILED),$(GNATMAKE_OBJS)) ++ + # Needs to be built with CC=gcc + # Since the RTL should be built with the latest compiler, remove the + # stamp target in the parent directory whenever gnat1 is rebuilt +@@ -2706,14 +2657,10 @@ install-gnatlib: ../stamp-gnatlib-$(RTSD + # Also install the .dSYM directories if they exist (these directories + # contain the debug information for the shared libraries on darwin) + for file in gnat gnarl; do \ +- if [ -f $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) ]; then \ +- $(INSTALL) $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ if [ -f $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).1 ]; then \ ++ $(INSTALL) $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).1 \ + $(DESTDIR)$(ADA_RTL_OBJ_DIR); \ + fi; \ +- if [ -f $(RTSDIR)/lib$${file}$(soext) ]; then \ +- $(LN_S) lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \ +- $(DESTDIR)$(ADA_RTL_OBJ_DIR)/lib$${file}$(soext); \ +- fi; \ + if [ -d $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM ]; then \ + $(CP) -r $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM \ + $(DESTDIR)$(ADA_RTL_OBJ_DIR); \ +@@ -2735,8 +2741,7 @@ + touch ../stamp-gnatlib2-$(RTSDIR) + $(RM) ../stamp-gnatlib-$(RTSDIR) + +-../stamp-gnatlib1-$(RTSDIR): Makefile ../stamp-gnatlib2-$(RTSDIR) +- $(RMDIR) $(RTSDIR) ++../stamp-gnatlib1-$(RTSDIR): Makefile + $(MKDIR) $(RTSDIR) + $(CHMOD) u+w $(RTSDIR) + # Copy target independent sources +@@ -2803,7 +2737,7 @@ $(RTSDIR)/s-oscons.ads: ../stamp-gnatlib + $(OSCONS_EXTRACT) ; \ + ../bldtools/oscons/xoscons s-oscons) + +-gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../stamp-gnatlib2-$(RTSDIR) $(RTSDIR)/s-oscons.ads ++gnatlib: ../stamp-gnatlib1-$(RTSDIR) $(RTSDIR)/s-oscons.ads + test -f $(RTSDIR)/s-oscons.ads || exit 1 + # C files + $(MAKE) -C $(RTSDIR) \ +@@ -2837,36 +2842,51 @@ gnatlib: ../stamp-gnatlib1-$(RTSDIR) ../ + $(RANLIB_FOR_TARGET) $(RTSDIR)/libgmem$(arext) + endif + $(CHMOD) a-wx $(RTSDIR)/*.ali ++# Provide .ads .adb (read-only).ali .so .a, but prevent direct use of .o. ++ $(RM) $(RTSDIR)/*.o + touch ../stamp-gnatlib-$(RTSDIR) + + # Warning: this target assumes that LIBRARY_VERSION has been set correctly. + gnatlib-shared-default: +- $(MAKE) $(FLAGS_TO_PASS) \ +- GNATLIBFLAGS="$(GNATLIBFLAGS)" \ +- GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \ +- GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) $(PICFLAG_FOR_TARGET)" \ +- MULTISUBDIR="$(MULTISUBDIR)" \ +- THREAD_KIND="$(THREAD_KIND)" \ +- gnatlib +- $(RM) $(RTSDIR)/libgna*$(soext) ++ $(MAKE) -C $(RTSDIR) \ ++ CC="`echo \"$(GCC_FOR_TARGET)\" \ ++ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \ ++ INCLUDES="$(INCLUDES_FOR_SUBDIR) -I./../.." \ ++ CFLAGS="$(GNATLIBCFLAGS_FOR_C) $(PICFLAG_FOR_TARGET)" \ ++ FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \ ++ srcdir=$(fsrcdir) \ ++ -f ../Makefile $(LIBGNAT_OBJS) ++ $(MAKE) -C $(RTSDIR) \ ++ CC="`echo \"$(GCC_FOR_TARGET)\" \ ++ | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'`" \ ++ ADA_INCLUDES="" \ ++ CFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \ ++ ADAFLAGS="$(GNATLIBFLAGS) $(PICFLAG_FOR_TARGET)" \ ++ FORCE_DEBUG_ADAFLAGS="$(FORCE_DEBUG_ADAFLAGS)" \ ++ srcdir=$(fsrcdir) \ ++ -f ../Makefile \ ++ $(GNATRTL_OBJS) ++ $(RM) $(RTSDIR)/libgna*$(soext) $(RTSDIR)/libgna*$(soext).1 + cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ + | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \ + $(PICFLAG_FOR_TARGET) \ +- -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext).1 $(LDFLAGS) \ + $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ +- $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext).1 \ + $(MISCLIB) -lm ++ cd $(RTSDIR) && $(LN_S) -f libgnat$(hyphen)$(LIBRARY_VERSION)$(soext).1 \ ++ libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) + cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ + | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared $(GNATLIBCFLAGS) \ + $(PICFLAG_FOR_TARGET) \ +- -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext).1 $(LDFLAGS) \ + $(GNATRTL_TASKING_OBJS) \ +- $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ ++ $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext).1 \ ++ -L. -lgnat$(hyphen)$(LIBRARY_VERSION) \ + $(THREADSLIB) +- cd $(RTSDIR); $(LN_S) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ +- libgnat$(soext) +- cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ +- libgnarl$(soext) ++ cd $(RTSDIR) && $(LN_S) -f libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext).1 \ ++ libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) ++ $(CHMOD) a-wx $(RTSDIR)/*.ali + + # Create static libgnat and libgnarl compiled with -fPIC + $(RM) $(RTSDIR)/libgnat_pic$(arext) $(RTSDIR)/libgnarl_pic$(arext) +@@ -2877,6 +2897,8 @@ gnatlib-shared-default: + $(addprefix $(RTSDIR)/,$(GNATRTL_TASKING_OBJS)) + $(RANLIB_FOR_TARGET) $(RTSDIR)/libgnarl_pic$(arext) + ++# Provide .ads .adb (read-only).ali .so .a, but prevent direct use of .o. ++ $(RM) $(RTSDIR)/*.o + + gnatlib-shared-dual: + $(MAKE) $(FLAGS_TO_PASS) \ +@@ -2885,21 +2832,15 @@ gnatlib-shared-dual: + GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ + MULTISUBDIR="$(MULTISUBDIR)" \ + THREAD_KIND="$(THREAD_KIND)" \ +- gnatlib-shared-default +- $(MV) $(RTSDIR)/libgna*$(soext) . +- $(MV) $(RTSDIR)/libgnat_pic$(arext) . +- $(MV) $(RTSDIR)/libgnarl_pic$(arext) . +- $(RM) ../stamp-gnatlib2-$(RTSDIR) ++ gnatlib ++ $(RM) $(RTSDIR)/*.o $(RTSDIR)/*.ali + $(MAKE) $(FLAGS_TO_PASS) \ + GNATLIBFLAGS="$(GNATLIBFLAGS)" \ + GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \ + GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ + MULTISUBDIR="$(MULTISUBDIR)" \ + THREAD_KIND="$(THREAD_KIND)" \ +- gnatlib +- $(MV) libgna*$(soext) $(RTSDIR) +- $(MV) libgnat_pic$(arext) $(RTSDIR) +- $(MV) libgnarl_pic$(arext) $(RTSDIR) ++ gnatlib-shared-default + + gnatlib-shared-dual-win32: + $(MAKE) $(FLAGS_TO_PASS) \ +@@ -2909,17 +2850,15 @@ gnatlib-shared-dual-win32: + PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" \ + MULTISUBDIR="$(MULTISUBDIR)" \ + THREAD_KIND="$(THREAD_KIND)" \ +- gnatlib-shared-win32 +- $(MV) $(RTSDIR)/libgna*$(soext) . +- $(RM) ../stamp-gnatlib2-$(RTSDIR) ++ gnatlib ++ $(RM) $(RTSDIR)/*.o $(RTSDIR)/*.ali + $(MAKE) $(FLAGS_TO_PASS) \ + GNATLIBFLAGS="$(GNATLIBFLAGS)" \ + GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \ + GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \ + MULTISUBDIR="$(MULTISUBDIR)" \ + THREAD_KIND="$(THREAD_KIND)" \ +- gnatlib +- $(MV) libgna*$(soext) $(RTSDIR) ++ gnatlib-shared-win32 + + # ??? we need to add the option to support auto-import of arrays/records to + # the GNATLIBFLAGS when this will be supported by GNAT. At this point we will +Index: b/src/gnattools/Makefile.in +=================================================================== +--- a/src/gnattools/Makefile.in ++++ b/src/gnattools/Makefile.in +@@ -75,15 +75,21 @@ + -L../../../$(target_noncanonical)/libstdc++-v3/libsupc++/.libs + + # Variables for gnattools, native ++rtsdir := $(abspath ../gcc/ada/rts) ++vsndir := $(abspath ../$(target_noncanonical)/libgnatvsn) + TOOLS_FLAGS_TO_PASS_NATIVE= \ + "CC=../../xgcc -B../../" \ + "CXX=../../xg++ -B../../ $(CXX_LFLAGS)" \ + "CFLAGS=$(CFLAGS) $(WARN_CFLAGS)" \ +- "LDFLAGS=$(LDFLAGS)" \ +- "ADAFLAGS=$(ADAFLAGS)" \ ++ "LDFLAGS=$(LDFLAGS) -Wl,--as-needed -Wl,-z,defs" \ ++ "ADAFLAGS=$(ADAFLAGS) -gnatn" \ + "ADA_CFLAGS=$(ADA_CFLAGS)" \ + "INCLUDES=$(INCLUDES_FOR_SUBDIR)" \ +- "ADA_INCLUDES=-I- -I../rts $(ADA_INCLUDES_FOR_SUBDIR)"\ ++ "ADA_INCLUDES=-I- -nostdinc -I$(vsndir) -I$(rtsdir) $(ADA_INCLUDES_FOR_SUBDIR)" \ ++ "TOOLS_ALREADY_COMPILED=$(foreach d, $(vsndir) $(rtsdir), \ ++ $(patsubst $(d)/%.ali,%.o, $(wildcard $(d)/*.ali)))" \ ++ 'LIBGNAT=-L$(vsndir) -lgnatvsn -L$(rtsdir) -lgnat-$$(LIB_VERSION)' \ ++ "GNATBIND_FLAGS=-nostdlib -x" \ + "exeext=$(exeext)" \ + "fsrcdir=$(fsrcdir)" \ + "srcdir=$(fsrcdir)" \ +@@ -190,6 +199,10 @@ + # to be able to build gnatmake without a version of gnatmake around. Once + # everything has been compiled once, gnatmake can be recompiled with itself + # (see target regnattools) ++gnattools-native: export LD_LIBRARY_PATH := \ ++ $(if $(LD_LIBRARY_PATH),$(LD_LIBRARY_PATH):)$(vsndir):$(rtsdir) ++# Useful even for 1st pass, as ../../gnatmake may already be ++# dynamically linked in case this target has already been invokated. + gnattools-native: $(GCC_DIR)/stamp-tools $(GCC_DIR)/stamp-gnatlib-rts + # gnattools1 + $(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \ +@@ -198,6 +211,13 @@ + # gnattools2 + $(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \ + $(TOOLS_FLAGS_TO_PASS_NATIVE) common-tools ++# The hard-coded object lists for gnatbind/make/link contain unneeded ++# objects. Use the fresh tools to recompute dependencies. ++# A separate Make run avoids race conditions between gnatmakes ++# building the same object for common-tools and gnat*-re. ++# (parallelism is already forbidden between gnat*-re targets) ++ $(MAKE) -C $(GCC_DIR)/ada/tools -f ../Makefile \ ++ $(TOOLS_FLAGS_TO_PASS_NATIVE) gnatbind-re gnatmake-re gnatlink-re + + # gnatmake/link can be built with recent gnatmake/link if they are available. + # This is especially convenient for building cross tools or for rebuilding diff --git a/debian/patches/ada-kfreebsd.diff b/debian/patches/ada-kfreebsd.diff new file mode 100644 index 0000000..37953b7 --- /dev/null +++ b/debian/patches/ada-kfreebsd.diff @@ -0,0 +1,100 @@ +Description: add support for GNU/kFreeBSD. + GNU/kFreeBSD does not support Thread Priority Protection or Thread + Priority Inheritance and lacks some pthread_mutexattr_* functions. + Replace them with dummy versions. +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=642128 +Author: Ludovic Brenta +Author: Nicolas Boulenguez + +--- a/src/gcc/ada/s-osinte-kfreebsd-gnu.ads ++++ b/src/gcc/ada/s-osinte-kfreebsd-gnu.ads +@@ -45,6 +45,7 @@ + pragma Preelaborate; + + pragma Linker_Options ("-lpthread"); ++ pragma Linker_Options ("-lrt"); + + subtype int is Interfaces.C.int; + subtype char is Interfaces.C.char; +@@ -206,9 +207,7 @@ + function nanosleep (rqtp, rmtp : access timespec) return int; + pragma Import (C, nanosleep, "nanosleep"); + +- type clockid_t is private; +- +- CLOCK_REALTIME : constant clockid_t; ++ type clockid_t is new int; + + function clock_gettime + (clock_id : clockid_t; +@@ -441,31 +440,25 @@ + PTHREAD_PRIO_PROTECT : constant := 2; + PTHREAD_PRIO_INHERIT : constant := 1; + ++ -- GNU/kFreeBSD does not support Thread Priority Protection or Thread ++ -- Priority Inheritance and lacks some pthread_mutexattr_* functions. ++ -- Replace them with dummy versions. ++ + function pthread_mutexattr_setprotocol + (attr : access pthread_mutexattr_t; +- protocol : int) return int; +- pragma Import +- (C, pthread_mutexattr_setprotocol, "pthread_mutexattr_setprotocol"); ++ protocol : int) return int is (0); + + function pthread_mutexattr_getprotocol + (attr : access pthread_mutexattr_t; +- protocol : access int) return int; +- pragma Import +- (C, pthread_mutexattr_getprotocol, "pthread_mutexattr_getprotocol"); ++ protocol : access int) return int is (0); + + function pthread_mutexattr_setprioceiling + (attr : access pthread_mutexattr_t; +- prioceiling : int) return int; +- pragma Import +- (C, pthread_mutexattr_setprioceiling, +- "pthread_mutexattr_setprioceiling"); ++ prioceiling : int) return int is (0); + + function pthread_mutexattr_getprioceiling + (attr : access pthread_mutexattr_t; +- prioceiling : access int) return int; +- pragma Import +- (C, pthread_mutexattr_getprioceiling, +- "pthread_mutexattr_getprioceiling"); ++ prioceiling : access int) return int is (0); + + type struct_sched_param is record + sched_priority : int; -- scheduling priority +@@ -610,9 +603,6 @@ + end record; + pragma Convention (C, timespec); + +- type clockid_t is new int; +- CLOCK_REALTIME : constant clockid_t := 0; +- + type pthread_attr_t is record + detachstate : int; + schedpolicy : int; +--- a/src/gcc/ada/gsocket.h ++++ b/src/gcc/ada/gsocket.h +@@ -244,6 +244,7 @@ + #endif + + #if defined (__FreeBSD__) || defined (__vxworks) || defined(__rtems__) \ ++ || defined (__FreeBSD_kernel__) || defined(__GNU__) \ + || defined (__DragonFly__) || defined (__NetBSD__) || defined (__OpenBSD__) + # define Has_Sockaddr_Len 1 + #else +--- a/src/gcc/ada/s-oscons-tmplt.c ++++ b/src/gcc/ada/s-oscons-tmplt.c +@@ -1441,7 +1441,7 @@ + CND(CLOCK_THREAD_CPUTIME_ID, "Thread CPU clock") + + #if defined(__FreeBSD__) || (defined(_AIX) && defined(_AIXVERSION_530)) \ +- || defined(__DragonFly__) ++ || defined(__DragonFly__) || defined(__FreeBSD_kernel__) + /** On these platforms use system provided monotonic clock instead of + ** the default CLOCK_REALTIME. We then need to set up cond var attributes + ** appropriately (see thread.c). diff --git a/debian/patches/ada-lib-info-source-date-epoch.diff b/debian/patches/ada-lib-info-source-date-epoch.diff new file mode 100644 index 0000000..d012b43 --- /dev/null +++ b/debian/patches/ada-lib-info-source-date-epoch.diff @@ -0,0 +1,144 @@ +Description: set ALI timestamps from SOURCE_DATE_EPOCH if available. + When the SOURCE_DATE_EPOCH environment variable is set, + replace timestamps more recent than its value with its value + when writing Ada Library Information (ALI) files. + This allow reproducible builds from generated or patched Ada sources. + https://reproducible-builds.org/specs/source-date-epoch/ +Author: Nicolas Boulenguez + +--- a/src/gcc/ada/ali-util.adb ++++ b/src/gcc/ada/ali-util.adb +@@ -484,8 +484,10 @@ + for D in ALIs.Table (A).First_Sdep .. ALIs.Table (A).Last_Sdep loop + Src := Source_Id (Get_Name_Table_Int (Sdep.Table (D).Sfile)); + +- if Opt.Minimal_Recompilation +- and then Sdep.Table (D).Stamp /= Source.Table (Src).Stamp ++ if (Opt.Minimal_Recompilation ++ and then Sdep.Table (D).Stamp /= Source.Table (Src).Stamp) ++ or else (Sdep.Table (D).Stamp = Source_Date_Epoch ++ and then Source_Date_Epoch < Source.Table (Src).Stamp) + then + -- If minimal recompilation is in action, replace the stamp + -- of the source file in the table if checksums match. +--- a/src/gcc/ada/lib-writ.adb ++++ b/src/gcc/ada/lib-writ.adb +@@ -1471,7 +1471,14 @@ + + Write_Info_Name_May_Be_Quoted (Fname); + Write_Info_Tab (25); +- Write_Info_Str (String (Time_Stamp (Sind))); ++ declare ++ T : Time_Stamp_Type := Time_Stamp (Sind); ++ begin ++ if Source_Date_Epoch < T then ++ T := Source_Date_Epoch; ++ end if; ++ Write_Info_Str (String (T)); ++ end; + Write_Info_Char (' '); + Write_Info_Str (Get_Hex_String (Source_Checksum (Sind))); + +--- a/src/gcc/ada/osint.adb ++++ b/src/gcc/ada/osint.adb +@@ -1674,6 +1674,20 @@ + + Lib_Search_Directories.Set_Last (Primary_Directory); + Lib_Search_Directories.Table (Primary_Directory) := new String'(""); ++ ++ -- Look for Source_Date_Epoch in the environment. ++ declare ++ Env_Var : String_Access; ++ Get_OK : Boolean; ++ Epoch : OS_Time; ++ begin ++ Env_Var := Getenv ("SOURCE_DATE_EPOCH"); ++ Get_OS_Time_From_String (Env_Var.all, Get_OK, Epoch); ++ Free (Env_Var); ++ if Get_OK then ++ Source_Date_Epoch := OS_Time_To_GNAT_Time (Epoch); ++ end if; ++ end; + end Initialize; + + ------------------ +--- a/src/gcc/ada/osint.ads ++++ b/src/gcc/ada/osint.ads +@@ -685,6 +685,17 @@ + function Prep_Suffix return String; + -- The suffix used for pre-processed files + ++ Source_Date_Epoch : Time_Stamp_Type := Time_Stamp_Type'("99991231235959"); ++ -- * gnat1 truncates to this date time stamps written to ALI files, making ++ -- their contents deterministic even for patched or generated sources. ++ -- See https://reproducible-builds.org/specs/source-date-epoch. ++ -- * When gnatmake reads this date from an ALI file, and the source file is ++ -- more recent, it ignores the dates and only considers checksums as if ++ -- Minimal_Recompilation was selected. Else, the source would always ++ -- be detected as requiring a recompilation. ++ -- The default value has no effect, but Initialize will assign it if ++ -- SOURCE_DATE_EPOCH in the environment represents a valid epoch. ++ + private + + Current_Main : File_Name_Type := No_File; +--- a/src/gcc/ada/s-os_lib.adb ++++ b/src/gcc/ada/s-os_lib.adb +@@ -1153,6 +1153,41 @@ + return Result; + end Get_Object_Suffix; + ++ ----------------------------- ++ -- Get_OS_Time_From_String -- ++ ----------------------------- ++ ++ procedure Get_OS_Time_From_String (Arg : String; ++ Success : out Boolean; ++ Result : out OS_Time) is ++ -- Calling System.Val_LLI breaks the bootstrap sequence. ++ Digit : OS_Time; ++ begin ++ Result := 0; ++ if Arg'Length = 0 then ++ Success := False; ++ return; ++ end if; ++ for I in Arg'Range loop ++ if Arg (I) not in '0' .. '9' then ++ Success := False; ++ return; ++ end if; ++ Digit := OS_Time (Character'Pos (Arg (I)) - Character'Pos ('0')); ++ if OS_Time'Last / 10 < Result then ++ Success := False; ++ return; ++ end if; ++ Result := Result * 10; ++ if OS_Time'Last - Digit < Result then ++ Success := False; ++ return; ++ end if; ++ Result := Result + Digit; ++ end loop; ++ Success := True; ++ end Get_OS_Time_From_String; ++ + ---------------------------------- + -- Get_Target_Debuggable_Suffix -- + ---------------------------------- +--- a/src/gcc/ada/s-os_lib.ads ++++ b/src/gcc/ada/s-os_lib.ads +@@ -164,6 +164,13 @@ + -- component parts to be interpreted in the local time zone, and returns + -- an OS_Time. Returns Invalid_Time if the creation fails. + ++ procedure Get_OS_Time_From_String (Arg : String; ++ Success : out Boolean; ++ Result : out OS_Time); ++ -- Success is set if Arg is not empty, only contains decimal ++ -- digits and represents an integer within OS_Time range. Result ++ -- is then affected with the represented value. ++ + ---------------- + -- File Stuff -- + ---------------- diff --git a/debian/patches/ada-libgnatvsn.diff b/debian/patches/ada-libgnatvsn.diff new file mode 100644 index 0000000..8f6cf15 --- /dev/null +++ b/debian/patches/ada-libgnatvsn.diff @@ -0,0 +1,279 @@ +# DP: - Introduce a new shared library named libgnatvsn, containing +# DP: common components of GNAT under the GNAT-Modified GPL, for +# DP: use in GNAT tools, ASIS, GLADE and GPS. Link the gnat tools +# DP: against this new library. + +# Please read ada-changes-in-autogen-output.diff about src/Makefile.def. + +# !!! Must be applied after ada-link-lib.diff + +--- /dev/null ++++ b/src/libgnatvsn/configure +@@ -0,0 +1,34 @@ ++#!/bin/sh ++ ++# Minimal configure script for libgnatvsn. We're only interested in ++# a few parameters. ++ ++{ ++ ++for arg in $*; do ++ case ${arg} in ++ --prefix=*) ++ prefix=`expr ${arg} : '--prefix=\(.\+\)'`;; ++ --srcdir=*) ++ srcdir=`expr ${arg} : '--srcdir=\(.\+\)'`;; ++ --libdir=*) ++ libdir=`expr ${arg} : '--libdir=\(.\+\)'`;; ++ --with-pkgversion=*) ++ pkgversion=`expr ${arg} : '--with-pkgversion=\(.\+\)'`;; ++ --with-bugurl=*) ++ bugurl=`expr ${arg} : '--with-bugurl=\(.\+\)'`;; ++ *) ++ echo "Warning: ignoring option: ${arg}" ++ esac ++done ++ ++sed_script= ++for name in prefix srcdir libdir pkgversion bugurl; do ++ eval value=\$$name ++ echo "$name: $value" ++ sed_script="$sed_script;s,@$name@,$value," ++done ++echo "Creating Makefile..." ++sed "$sed_script" "$srcdir/Makefile.in" > Makefile ++ ++} | tee -a config.log +--- /dev/null ++++ b/src/libgnatvsn/gnatvsn.gpr.sed +@@ -0,0 +1,8 @@ ++library project Gnatvsn is ++ for Library_Name use "gnatvsn"; ++ for Library_Kind use "dynamic"; ++ for Library_Dir use "lib_inst_dir"; ++ for Source_Dirs use ("src_inst_dir"); ++ for Library_ALI_Dir use "ali_inst_dir"; ++ for Externally_Built use "true"; ++end Gnatvsn; +--- /dev/null ++++ b/src/libgnatvsn/Makefile.in +@@ -0,0 +1,161 @@ ++# Makefile for libgnatvsn. ++# Copyright (c) 2006 Ludovic Brenta ++# Copyright (c) 2017 Nicolas Boulenguez ++# ++# This file is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ++ ++# Parameters substituted by configure during Makefile generation ++prefix := @prefix@ ++srcdir := @srcdir@ ++libdir := @libdir@ ++pkgversion := @pkgversion@ ++bugurl := @bugurl@ ++ ++# Parameters expected in environment or command line ++$(foreach v, \ ++ ADA_CFLAGS ADAFLAGS CC CFLAGS CPPFLAGS DESTDIR INSTALL INSTALL_DATA LDFLAGS \ ++ ,$(info $(v) ($(origin $(v))) = $($(v)))) ++# It seems that both CFLAGS/ADA_CFLAGS should affect both Ada/C. ++ ++# Parameters read from external files ++BASEVER := $(shell cat $(srcdir)/../gcc/BASE-VER) ++DEVPHASE := $(shell cat $(srcdir)/../gcc/DEV-PHASE) ++DATESTAMP := $(shell cat $(srcdir)/../gcc/DATESTAMP) ++ ++# Public and default targets ++.PHONY: all install clean ++all: ++ ++###################################################################### ++ ++LIB_VERSION := $(shell expr '$(BASEVER)' : '\([0-9]\+\)') ++ ++src_inst_dir := $(prefix)/share/ada/adainclude/gnatvsn ++gpr_inst_dir := $(prefix)/share/gpr ++ali_inst_dir := $(libdir)/ada/adalib/gnatvsn ++lib_inst_dir := $(libdir) ++ ++# Initial value of variables accumulationg build flags. ++adaflags := -gnatn ++cflags := ++cppflags := ++ldflags := -Wl,--as-needed -Wl,-z,defs ++ldlibs := ++ ++# For use in version.c - double quoted strings, with appropriate ++# surrounding punctuation and spaces, and with the datestamp and ++# development phase collapsed to the empty string in release mode ++# (i.e. if DEVPHASE_c is empty). The space immediately after the ++# comma in the $(if ...) constructs is significant - do not remove it. ++cppflags += \ ++ -DBASEVER="\"$(BASEVER)\"" \ ++ -DDATESTAMP="\"$(if $(DEVPHASE), $(DATESTAMP))\"" \ ++ -DDEVPHASE="\"$(if $(DEVPHASE), ($(DEVPHASE)))\"" \ ++ -DPKGVERSION="\"$(pkgversion)\"" \ ++ -DBUGURL="\"$(bugurl)\"" \ ++ -DREVISION= ++ ++# Include and link freshly built target RTL instead of the default. ++RTL_DIR := ../libada ++adaflags += -nostdinc -I$(RTL_DIR)/adainclude ++ldlibs += -L$(RTL_DIR)/adalib -lgnat-$(LIB_VERSION) ++ ++# Append user settings last, allowing them to take precedence. ++adaflags += $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS) ++cflags += $(CFLAGS) $(ADA_CFLAGS) ++cppflags += $(CPPFLAGS) ++ldflags += $(LDFLAGS) ++ ++# Link wanted Ada sources from source tree, so that gnat fails when new ++# dependencies are missing in the current directory, instead of silently ++# using the ones in the distant directory. ++# Let Make create all symlinks before first ada compilation, ++# because they depend on each other. ++# snames.ad[bs] is generated in the build tree. ++ ++UNITS_BOTH := aspects atree casing csets debug einfo elists fname \ ++ gnatvsn krunch lib namet nlists opt output repinfo scans sem_aux \ ++ sinfo sinput stand stringt table tree_in tree_io types uintp \ ++ uname urealp widechar xutil ++UNITS_SPEC := alloc hostparm rident ++SEPARATES := lib-list lib-sort ++ADA_SRC := $(addsuffix .ads, $(UNITS_BOTH) $(UNITS_SPEC)) \ ++ $(addsuffix .adb, $(UNITS_BOTH) $(SEPARATES)) ++OBJECTS := $(addsuffix .o, $(UNITS_BOTH) snames $(UNITS_SPEC) version) ++ ++all: libgnatvsn.a libgnatvsn.so.$(LIB_VERSION) gnatvsn.gpr ++ ++libgnatvsn.so.$(LIB_VERSION): $(addprefix obj-shared/,$(OBJECTS)) ++ $(CC) -o $@ -shared -fPIC -Wl,--soname,$@ $^ $(ldflags) $(ldlibs) ++ ln -fs libgnatvsn.so.$(LIB_VERSION) libgnatvsn.so ++ chmod a=r obj-shared/*.ali ++# Make the .ali files, but not the .o files, visible to the gnat tools. ++ cp -lp obj-shared/*.ali . ++ ++$(foreach u, $(UNITS_BOTH) snames, obj-shared/$(u).o): \ ++obj-shared/%.o: %.adb $(ADA_SRC) snames.adb snames.ads | obj-shared ++ $(CC) -c -fPIC $(adaflags) $< -o $@ ++ ++$(foreach u, $(UNITS_SPEC), obj-shared/$(u).o): \ ++obj-shared/%.o: %.ads $(ADA_SRC) snames.adb snames.ads | obj-shared ++ $(CC) -c -fPIC $(adaflags) $< -o $@ ++ ++obj-shared/version.o: version.c version.h | obj-shared ++ $(CC) -c -fPIC $(cflags) $(cppflags) $< -o $@ ++ ++libgnatvsn.a: $(addprefix obj-static/,$(OBJECTS)) ++ ar rc $@ $^ ++ ranlib $@ ++ ++$(foreach u, $(UNITS_BOTH) snames, obj-static/$(u).o): \ ++obj-static/%.o: %.adb $(ADA_SRC) snames.adb snames.ads | obj-static ++ $(CC) -c $(adaflags) $< -o $@ ++ ++$(foreach u, $(UNITS_SPEC), obj-static/$(u).o): \ ++obj-static/%.o: %.ads $(ADA_SRC) snames.adb snames.ads | obj-static ++ $(CC) -c $(adaflags) $< -o $@ ++ ++obj-static/version.o: version.c version.h | obj-static ++ $(CC) -c $(cflags) $(cppflags) $< -o $@ ++ ++obj-shared obj-static: ++ mkdir $@ ++ ++$(ADA_SRC): ++ ln -s $(srcdir)/../gcc/ada/$@ ++version.c version.h: ++ ln -s $(srcdir)/../gcc/$@ ++snames.adb snames.ads: ++ ln -s ../../gcc/ada/$@ ++ ++gnatvsn.gpr: $(srcdir)/gnatvsn.gpr.sed ++ sed '$(foreach v,src ali lib,s|$(v)_inst_dir|$($(v)_inst_dir)|;)' \ ++ $< > $@ ++ ++install: all ++ mkdir -p $(DESTDIR)$(gpr_inst_dir) ++ $(INSTALL_DATA) gnatvsn.gpr $(DESTDIR)$(gpr_inst_dir) ++ mkdir -p $(DESTDIR)$(lib_inst_dir) ++ $(INSTALL_DATA) libgnatvsn.a libgnatvsn.so.* $(DESTDIR)$(lib_inst_dir) ++ cd $(DESTDIR)$(lib_inst_dir) && ln -sf libgnatvsn.so.$(LIB_VERSION) libgnatvsn.so ++ mkdir -p $(DESTDIR)$(src_inst_dir) ++ $(INSTALL_DATA) *.adb *.ads *.c *.h $(DESTDIR)$(src_inst_dir) ++ mkdir -p $(DESTDIR)$(ali_inst_dir) ++ $(INSTALL) -m 0444 *.ali $(DESTDIR)$(ali_inst_dir) ++ ++clean: ++ rm -fr obj-static obj-shared ++ rm -f *.ali libgnatvsn* *.adb *.ads *.c *.h gnatvsn.gpr ++ rm -f Makefile config.log +--- a/src/Makefile.def ++++ b/src/Makefile.def +@@ -187,6 +187,16 @@ + missing= TAGS; + missing= install-info; + missing= installcheck; }; ++target_modules = { module= libgnatvsn; no_check=true; ++ missing= info; ++ missing= dvi; ++ missing= html; ++ missing= pdf; ++ missing= install-html; ++ missing= install-pdf; ++ missing= TAGS; ++ missing= install-info; ++ missing= installcheck; }; + target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; }; + target_modules = { module= libitm; lib_path=.libs; }; + target_modules = { module= libatomic; lib_path=.libs; }; +@@ -385,6 +395,8 @@ + dependencies = { module=all-target-libada; on=all-gcc; }; + dependencies = { module=all-gnattools; on=all-target-libada; }; + dependencies = { module=all-gnattools; on=all-target-libstdc++-v3; }; ++dependencies = { module=all-gnattools; on=all-target-libgnatvsn; }; ++dependencies = { module=all-target-libgnatvsn; on=all-target-libada; }; + + // Depending on the specific configuration, the LTO plugin will either use the + // generic libiberty build or the specific build for linker plugins. +--- a/src/configure.ac ++++ b/src/configure.ac +@@ -171,6 +171,7 @@ + target-libobjc \ + target-libada \ + ${target_libiberty} \ ++ target-libgnatvsn \ + target-libgo" + + # these tools are built using the target libraries, and are intended to +@@ -455,7 +456,7 @@ + ENABLE_LIBADA=$enableval, + ENABLE_LIBADA=yes) + if test "${ENABLE_LIBADA}" != "yes" ; then +- noconfigdirs="$noconfigdirs gnattools" ++ noconfigdirs="$noconfigdirs target-libgnatvsn gnattools" + fi + + AC_ARG_ENABLE(libssp, +--- a/src/gcc/ada/gcc-interface/config-lang.in ++++ b/src/gcc/ada/gcc-interface/config-lang.in +@@ -34,7 +34,7 @@ + + outputs="ada/gcc-interface/Makefile ada/Makefile" + +-target_libs="target-libada" ++target_libs="target-libada target-libgnatvsn" + lang_dirs="libada gnattools" + + # Ada is not enabled by default for the time being. diff --git a/debian/patches/ada-library-project-files-soname.diff b/debian/patches/ada-library-project-files-soname.diff new file mode 100644 index 0000000..2abb4bc --- /dev/null +++ b/debian/patches/ada-library-project-files-soname.diff @@ -0,0 +1,88 @@ +Description: when linking an Ada shared library, avoid modifying user soname + In project files, use the exact Library_Version provided, if any, as + the soname of libraries; do not strip minor version numbers + . + GNAT has been announcing the removal of support for GPR projects + since gcc-6. + Gnatlink will then stop being able to link shared libraries. + This probably explains why upstream is not interested in this patch. +Forwarded: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=40025 +Author: Ludovic Brenta + +Index: b/src/gcc/ada/mlib-tgt-specific-linux.adb +=================================================================== +--- a/src/gcc/ada/mlib-tgt-specific-linux.adb ++++ b/src/gcc/ada/mlib-tgt-specific-linux.adb +@@ -50,6 +50,8 @@ package body MLib.Tgt.Specific is + + function Is_Archive_Ext (Ext : String) return Boolean; + ++ function Library_Major_Minor_Id_Supported return Boolean; ++ + --------------------------- + -- Build_Dynamic_Library -- + --------------------------- +@@ -142,7 +144,18 @@ package body MLib.Tgt.Specific is + return Ext = ".a" or else Ext = ".so"; + end Is_Archive_Ext; + ++ -------------------------------------- ++ -- Library_Major_Minor_Id_Supported -- ++ -------------------------------------- ++ ++ function Library_Major_Minor_Id_Supported return Boolean is ++ begin ++ return False; ++ end Library_Major_Minor_Id_Supported; ++ + begin + Build_Dynamic_Library_Ptr := Build_Dynamic_Library'Access; + Is_Archive_Ext_Ptr := Is_Archive_Ext'Access; ++ Library_Major_Minor_Id_Supported_Ptr := ++ Library_Major_Minor_Id_Supported'Access; + end MLib.Tgt.Specific; +Index: b/src/gcc/ada/mlib.adb +=================================================================== +--- a/src/gcc/ada/mlib.adb ++++ b/src/gcc/ada/mlib.adb +@@ -30,6 +30,7 @@ with System; + with Opt; + with Output; use Output; + ++with MLib.Tgt; + with MLib.Utl; use MLib.Utl; + + with Prj.Com; +@@ -393,7 +394,11 @@ package body MLib is + -- Major_Id_Name -- + ------------------- + +- function Major_Id_Name ++ function Major_Id_Name_If_Supported ++ (Lib_Filename : String; ++ Lib_Version : String) ++ return String; ++ function Major_Id_Name_If_Supported + (Lib_Filename : String; + Lib_Version : String) + return String +@@ -447,6 +452,19 @@ package body MLib is + else + return ""; + end if; ++ end Major_Id_Name_If_Supported; ++ ++ function Major_Id_Name ++ (Lib_Filename : String; ++ Lib_Version : String) ++ return String ++ is ++ begin ++ if MLib.Tgt.Library_Major_Minor_Id_Supported then ++ return Major_Id_Name_If_Supported (Lib_Filename, Lib_Version); ++ else ++ return ""; ++ end if; + end Major_Id_Name; + + ------------------------------- diff --git a/debian/patches/ada-link-lib.diff b/debian/patches/ada-link-lib.diff new file mode 100644 index 0000000..242f8a0 --- /dev/null +++ b/debian/patches/ada-link-lib.diff @@ -0,0 +1,161 @@ +Description: adapt libgnat build for Debian + Don't include a runtime link path (-rpath), when linking binaries. + . + Build the shared libraries on hppa-linux (see #786692 below). + TODO: ask the reporter (no porterbox) to attempt a rebuild without this + chunk, now that we diverge less from upstream. + . + Instead of building libada as a target library only, build it as + both a host and, if different, target library. + . + Compile with -gnatn, link with --as-needed -z defs. + . + Please read ada-changes-in-autogen-output.diff about src/Makefile.def. +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=786692 +Forwarded: not-needed +Author: Ludovic Brenta +Author: Nicolas Boulenguez +Author: Matthias Klose + +--- a/src/gcc/ada/gcc-interface/config-lang.in ++++ b/src/gcc/ada/gcc-interface/config-lang.in +@@ -35,7 +35,7 @@ + outputs="ada/gcc-interface/Makefile ada/Makefile" + + target_libs="target-libada" +-lang_dirs="gnattools" ++lang_dirs="libada gnattools" + + # Ada is not enabled by default for the time being. + build_by_default=no +--- a/src/gcc/ada/link.c ++++ b/src/gcc/ada/link.c +@@ -106,9 +106,9 @@ + #elif defined (__FreeBSD__) || defined (__DragonFly__) \ + || defined (__NetBSD__) || defined (__OpenBSD__) + const char *__gnat_object_file_option = "-Wl,@"; +-const char *__gnat_run_path_option = "-Wl,-rpath,"; +-char __gnat_shared_libgnat_default = STATIC; +-char __gnat_shared_libgcc_default = STATIC; ++const char *__gnat_run_path_option = ""; ++char __gnat_shared_libgnat_default = SHARED; ++char __gnat_shared_libgcc_default = SHARED; + int __gnat_link_max = 8192; + unsigned char __gnat_objlist_file_supported = 1; + const char *__gnat_object_library_extension = ".a"; +@@ -128,9 +128,9 @@ + + #elif defined (__linux__) || defined (__GLIBC__) + const char *__gnat_object_file_option = "-Wl,@"; +-const char *__gnat_run_path_option = "-Wl,-rpath,"; +-char __gnat_shared_libgnat_default = STATIC; +-char __gnat_shared_libgcc_default = STATIC; ++const char *__gnat_run_path_option = ""; ++char __gnat_shared_libgnat_default = SHARED; ++char __gnat_shared_libgcc_default = SHARED; + int __gnat_link_max = 8192; + unsigned char __gnat_objlist_file_supported = 1; + const char *__gnat_object_library_extension = ".a"; +--- a/src/libada/Makefile.in ++++ b/src/libada/Makefile.in +@@ -78,10 +78,10 @@ + # by recursive make invocations in gcc/ada/Makefile.in + LIBADA_FLAGS_TO_PASS = \ + "MAKEOVERRIDES=" \ +- "LDFLAGS=$(LDFLAGS)" \ ++ "LDFLAGS=$(LDFLAGS) -Wl,--as-needed -Wl,-z,defs" \ + "LN_S=$(LN_S)" \ + "SHELL=$(SHELL)" \ +- "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \ ++ "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS) -gnatn" \ + "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \ + "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \ + "PICFLAG_FOR_TARGET=$(PICFLAG)" \ +--- a/src/Makefile.def ++++ b/src/Makefile.def +@@ -122,7 +122,16 @@ + missing=distclean; + missing=maintainer-clean; }; + host_modules= { module= utils; no_check=true; }; +-host_modules= { module= gnattools; }; ++host_modules= { module= gnattools; no_check=true; ++ missing= info; ++ missing= dvi; ++ missing= html; ++ missing= pdf; ++ missing= install-pdf; ++ missing= install-html; ++ missing= TAGS; ++ missing= install-info; ++ missing= installcheck; }; + host_modules= { module= lto-plugin; bootstrap=true; + extra_configure_flags='--enable-shared @extra_linker_plugin_flags@ @extra_linker_plugin_configure_flags@'; + extra_make_flags='@extra_linker_plugin_flags@'; }; +@@ -168,7 +177,16 @@ + target_modules = { module= libffi; no_install=true; }; + target_modules = { module= zlib; }; + target_modules = { module= rda; }; +-target_modules = { module= libada; }; ++target_modules = { module= libada; no_install=true; no_check=true; ++ missing= info; ++ missing= dvi; ++ missing= html; ++ missing= pdf; ++ missing= install-html; ++ missing= install-pdf; ++ missing= TAGS; ++ missing= install-info; ++ missing= installcheck; }; + target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; }; + target_modules = { module= libitm; lib_path=.libs; }; + target_modules = { module= libatomic; lib_path=.libs; }; +@@ -364,6 +382,7 @@ + + dependencies = { module=all-fixincludes; on=all-libiberty; }; + ++dependencies = { module=all-target-libada; on=all-gcc; }; + dependencies = { module=all-gnattools; on=all-target-libada; }; + dependencies = { module=all-gnattools; on=all-target-libstdc++-v3; }; + +--- a/src/configure.ac ++++ b/src/configure.ac +@@ -142,6 +142,11 @@ + # If --enable-gold is used, "gold" may replace "ld". + host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools libcc1 gotools" + ++case "${target}" in ++ hppa64-*linux*) ;; ++ *) target_libiberty="target-libiberty";; ++esac ++ + # these libraries are built for the target environment, and are built after + # the host libraries and the host tools (which may be a cross compiler) + # Note that libiberty is not a target library. +@@ -165,6 +170,7 @@ + target-libffi \ + target-libobjc \ + target-libada \ ++ ${target_libiberty} \ + target-libgo" + + # these tools are built using the target libraries, and are intended to +--- a/src/gcc/ada/gcc-interface/Make-lang.in ++++ b/src/gcc/ada/gcc-interface/Make-lang.in +@@ -45,7 +45,7 @@ + + + # Extra flags to pass to recursive makes. +-COMMON_ADAFLAGS= -gnatpg ++COMMON_ADAFLAGS= -gnatpgn + ifeq ($(TREECHECKING),) + CHECKING_ADAFLAGS= + else +@@ -211,7 +211,7 @@ + endif + + # Strip -Werror during linking for the LTO bootstrap +-GCC_LINKERFLAGS = $(filter-out -Werror, $(ALL_LINKERFLAGS)) ++GCC_LINKERFLAGS = $(filter-out -Werror, $(ALL_LINKERFLAGS)) -Wl,--as-needed -Wl,-z,defs + + GCC_LINK=$(LINKER) $(GCC_LINKERFLAGS) $(LDFLAGS) + GCC_LLINK=$(LLINKER) $(GCC_LINKERFLAGS) $(LDFLAGS) diff --git a/debian/patches/ada-link-shlib.diff b/debian/patches/ada-link-shlib.diff new file mode 100644 index 0000000..755047a --- /dev/null +++ b/debian/patches/ada-link-shlib.diff @@ -0,0 +1,97 @@ +Description: when linking Ada shared libraries, list dependencies after objects + In gnatlink, pass the options and libraries after objects to the + linker to avoid link failures with --as-needed. + This option is activated by default on the GNU gold linker. + . + GNAT has been announcing the removal of support for GPR projects + since gcc-6. + Gnatlink will then stop being able to link shared libraries. + This probably explains why upstream is not interested in this patch. +Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=680292 +Author: Matthias Klose +Forwarded: http://gcc.gnu.org/ml/gcc-patches/2013-04/msg01132.html + +--- a/src/gcc/ada/mlib-tgt-specific-linux.adb ++++ b/src/gcc/ada/mlib-tgt-specific-linux.adb +@@ -81,19 +81,54 @@ + Version_Arg : String_Access; + Symbolic_Link_Needed : Boolean := False; + ++ N_Options : Argument_List := Options; ++ Options_Last : Natural := N_Options'Last; ++ -- After moving -lxxx to Options_2, N_Options up to index Options_Last ++ -- will contain the Options to pass to MLib.Utl.Gcc. ++ ++ Real_Options_2 : Argument_List (1 .. Options'Length); ++ Real_Options_2_Last : Natural := 0; ++ -- Real_Options_2 up to index Real_Options_2_Last will contain the ++ -- Options_2 to pass to MLib.Utl.Gcc. ++ + begin + if Opt.Verbose_Mode then + Write_Str ("building relocatable shared library "); + Write_Line (Lib_Path); + end if; + ++ -- Move all -lxxx to Options_2 ++ ++ declare ++ Index : Natural := N_Options'First; ++ Arg : String_Access; ++ ++ begin ++ while Index <= Options_Last loop ++ Arg := N_Options (Index); ++ ++ if Arg'Length > 2 ++ and then Arg (Arg'First .. Arg'First + 1) = "-l" ++ then ++ Real_Options_2_Last := Real_Options_2_Last + 1; ++ Real_Options_2 (Real_Options_2_Last) := Arg; ++ N_Options (Index .. Options_Last - 1) := ++ N_Options (Index + 1 .. Options_Last); ++ Options_Last := Options_Last - 1; ++ ++ else ++ Index := Index + 1; ++ end if; ++ end loop; ++ end; ++ + if Lib_Version = "" then + Utl.Gcc + (Output_File => Lib_Path, + Objects => Ofiles, +- Options => Options, ++ Options => N_Options (N_Options'First .. Options_Last), + Driver_Name => Driver_Name, +- Options_2 => No_Argument_List); ++ Options_2 => Real_Options_2 (1 .. Real_Options_2_Last)); + + else + declare +@@ -111,18 +146,20 @@ + Utl.Gcc + (Output_File => Lib_Version, + Objects => Ofiles, +- Options => Options & Version_Arg, ++ Options => N_Options (N_Options'First .. Options_Last) ++ & Version_Arg, + Driver_Name => Driver_Name, +- Options_2 => No_Argument_List); ++ Options_2 => Real_Options_2 (1 .. Real_Options_2_Last)); + Symbolic_Link_Needed := Lib_Version /= Lib_Path; + + else + Utl.Gcc + (Output_File => Lib_Dir & Directory_Separator & Lib_Version, + Objects => Ofiles, +- Options => Options & Version_Arg, ++ Options => N_Options (N_Options'First .. Options_Last) ++ & Version_Arg, + Driver_Name => Driver_Name, +- Options_2 => No_Argument_List); ++ Options_2 => Real_Options_2 (1 .. Real_Options_2_Last)); + Symbolic_Link_Needed := + Lib_Dir & Directory_Separator & Lib_Version /= Lib_Path; + end if; diff --git a/debian/patches/ada-nobiarch-check.diff b/debian/patches/ada-nobiarch-check.diff new file mode 100644 index 0000000..35190a7 --- /dev/null +++ b/debian/patches/ada-nobiarch-check.diff @@ -0,0 +1,21 @@ +Description: For biarch builds, disable the gnat testsuite for the non-default + architecture (no biarch support in gnat yet). +Author: Matthias Klose + +Index: b/src/gcc/Makefile.in +=================================================================== +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -4510,7 +4510,11 @@ + if [ -f $${rootme}/../expect/expect ] ; then \ + TCL_LIBRARY=`cd .. ; cd $${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \ + export TCL_LIBRARY ; fi ; \ +- $(RUNTEST) --tool $* $(RUNTESTFLAGS)) ++ if [ "$*" = gnat ]; then \ ++ runtestflags="`echo '$(RUNTESTFLAGS)' | sed -r 's/,-m(32|64|x32)//g;s/,-mabi=(n32|64)//g'`"; \ ++ case "$$runtestflags" in *\\{\\}) runtestflags=; esac; \ ++ fi; \ ++ $(RUNTEST) --tool $* $$runtestflags) + + $(patsubst %,%-subtargets,$(filter-out $(lang_checks_parallelized),$(lang_checks))): check-%-subtargets: + @echo check-$* diff --git a/debian/patches/ada-sjlj.diff b/debian/patches/ada-sjlj.diff new file mode 100644 index 0000000..d86a44a --- /dev/null +++ b/debian/patches/ada-sjlj.diff @@ -0,0 +1,501 @@ +# Please read ada-changes-in-autogen-output.diff about src/Makefile.def. + +# !!! Must be applied after ada-libgnatvsn.diff + +Index: b/src/libada-sjlj/Makefile.in +=================================================================== +--- /dev/null ++++ b/src/libada-sjlj/Makefile.in +@@ -0,0 +1,201 @@ ++# Makefile for libada. ++# Copyright (C) 2003-2015 Free Software Foundation, Inc. ++# ++# This file is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; see the file COPYING3. If not see ++# . ++ ++# Default target; must be first. ++all: gnatlib ++ $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE) ++ ++.PHONY: all ++ ++## Multilib support variables. ++MULTISRCTOP = ++MULTIBUILDTOP = ++MULTIDIRS = ++MULTISUBDIR = ++MULTIDO = true ++MULTICLEAN = true ++ ++# Standard autoconf-set variables. ++SHELL = @SHELL@ ++srcdir = @srcdir@ ++libdir = @libdir@ ++build = @build@ ++target = @target@ ++prefix = @prefix@ ++ ++# Nonstandard autoconf-set variables. ++enable_shared = @enable_shared@ ++ ++LN_S=@LN_S@ ++AWK=@AWK@ ++ ++ifeq (cp -p,$(LN_S)) ++LN_S_RECURSIVE = cp -pR ++else ++LN_S_RECURSIVE = $(LN_S) ++endif ++ ++# Variables for the user (or the top level) to override. ++objext=.o ++THREAD_KIND=native ++TRACE=no ++LDFLAGS= ++ ++# The tedious process of getting CFLAGS right. ++CFLAGS=-g ++PICFLAG = @PICFLAG@ ++GNATLIBFLAGS= -W -Wall -gnatpg -nostdinc ++GNATLIBCFLAGS= -g -O2 ++GNATLIBCFLAGS_FOR_C = -W -Wall $(GNATLIBCFLAGS) \ ++ -fexceptions -DIN_RTS @have_getipinfo@ ++ ++host_subdir = @host_subdir@ ++GCC_DIR=$(MULTIBUILDTOP)../../$(host_subdir)/gcc ++ ++target_noncanonical:=@target_noncanonical@ ++gcc_version := $(shell @get_gcc_base_ver@ $(srcdir)/../gcc/BASE-VER) ++libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)$(MULTISUBDIR) ++ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR)) ++ADA_RTS_SUBDIR=./rts$(subst /,_,$(MULTISUBDIR)) ++ ++# exeext should not be used because it's the *host* exeext. We're building ++# a *target* library, aren't we?!? Likewise for CC. Still, provide bogus ++# definitions just in case something slips through the safety net provided ++# by recursive make invocations in gcc/ada/Makefile.in ++LIBADA_FLAGS_TO_PASS = \ ++ "MAKEOVERRIDES=" \ ++ "LDFLAGS=$(LDFLAGS)" \ ++ "LN_S=$(LN_S)" \ ++ "SHELL=$(SHELL)" \ ++ "GNATLIBFLAGS=$(GNATLIBFLAGS) $(MULTIFLAGS)" \ ++ "GNATLIBCFLAGS=$(GNATLIBCFLAGS) $(MULTIFLAGS)" \ ++ "GNATLIBCFLAGS_FOR_C=$(GNATLIBCFLAGS_FOR_C) $(MULTIFLAGS)" \ ++ "PICFLAG_FOR_TARGET=$(PICFLAG)" \ ++ "THREAD_KIND=$(THREAD_KIND)" \ ++ "TRACE=$(TRACE)" \ ++ "MULTISUBDIR=$(MULTISUBDIR)" \ ++ "libsubdir=$(libsubdir)" \ ++ "objext=$(objext)" \ ++ "prefix=$(prefix)" \ ++ "exeext=.exeext.should.not.be.used " \ ++ 'CC=the.host.compiler.should.not.be.needed' \ ++ "GCC_FOR_TARGET=$(CC)" \ ++ "CFLAGS=$(CFLAGS)" \ ++ "RTSDIR=rts-sjlj" ++ ++# Rules to build gnatlib. ++.PHONY: gnatlib gnatlib-plain gnatlib-sjlj gnatlib-zcx gnatlib-shared osconstool ++gnatlib: gnatlib-sjlj ++ ++gnatlib-plain: osconstool $(GCC_DIR)/ada/Makefile ++ test -f stamp-libada || \ ++ $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) gnatlib \ ++ && touch stamp-libada ++ -rm -rf adainclude ++ -rm -rf adalib ++ $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adainclude ++ $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adalib ++ ++gnatlib-sjlj gnatlib-zcx gnatlib-shared: osconstool $(GCC_DIR)/ada/Makefile ++ test -f stamp-libada || \ ++ $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) $@ \ ++ && touch stamp-libada-sjlj ++ -rm -rf adainclude ++ -rm -rf adalib ++ $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adainclude ++ $(LN_S_RECURSIVE) $(ADA_RTS_DIR) adalib ++ ++osconstool: ++ $(MAKE) -C $(GCC_DIR)/ada $(LIBADA_FLAGS_TO_PASS) ./bldtools/oscons/xoscons ++ ++install-gnatlib: $(GCC_DIR)/ada/Makefile ++ $(MAKE) -C $(GCC_DIR)/ada $(AM_MAKEFLAGS) $(LIBADA_FLAGS_TO_PASS) install-gnatlib-sjlj ++ ++# Check uninstalled version. ++check: ++ ++# Check installed version. ++installcheck: ++ ++# Build info (none here). ++info: ++ ++# Build DVI (none here). ++dvi: ++ ++# Build PDF (none here). ++pdf: ++ ++# Build html (none here). ++html: ++ ++# Build TAGS (none here). ++TAGS: ++ ++.PHONY: check installcheck info dvi pdf html ++ ++# Installation rules. ++install: install-gnatlib ++ $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE) ++ ++install-strip: install ++ ++install-info: ++ ++install-pdf: ++ ++install-html: ++ ++.PHONY: install install-strip install-info install-pdf install-html ++ ++# Cleaning rules. ++mostlyclean: ++ $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean # $(MAKE) ++ ++clean: ++ $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean # $(MAKE) ++ ++distclean: ++ $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE) ++ $(RM) Makefile config.status config.log ++ ++maintainer-clean: ++ ++.PHONY: mostlyclean clean distclean maintainer-clean ++ ++# Rules for rebuilding this Makefile. ++Makefile: $(srcdir)/Makefile.in config.status ++ CONFIG_FILES=$@ ; \ ++ CONFIG_HEADERS= ; \ ++ $(SHELL) ./config.status ++ ++config.status: $(srcdir)/configure ++ $(SHELL) ./config.status --recheck ++ ++AUTOCONF = autoconf ++configure_deps = \ ++ $(srcdir)/configure.ac \ ++ $(srcdir)/../config/acx.m4 \ ++ $(srcdir)/../config/override.m4 \ ++ $(srcdir)/../config/multi.m4 ++ ++$(srcdir)/configure: @MAINT@ $(configure_deps) ++ cd $(srcdir) && $(AUTOCONF) ++ ++# Don't export variables to the environment, in order to not confuse ++# configure. ++.NOEXPORT: +Index: b/src/libada-sjlj/configure.ac +=================================================================== +--- /dev/null ++++ b/src/libada-sjlj/configure.ac +@@ -0,0 +1,152 @@ ++# Configure script for libada. ++# Copyright (C) 2003-2016 Free Software Foundation, Inc. ++# ++# This file is free software; you can redistribute it and/or modify it ++# under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3 of the License, or ++# (at your option) any later version. ++# ++# This program is distributed in the hope that it will be useful, but ++# WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++# General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with this program; see the file COPYING3. If not see ++# . ++ ++sinclude(../config/acx.m4) ++sinclude(../config/multi.m4) ++sinclude(../config/override.m4) ++sinclude(../config/picflag.m4) ++sinclude(../config/unwind_ipinfo.m4) ++ ++AC_INIT ++AC_PREREQ([2.64]) ++ ++AC_CONFIG_SRCDIR([Makefile.in]) ++ ++# Determine the host, build, and target systems ++AC_CANONICAL_BUILD ++AC_CANONICAL_HOST ++AC_CANONICAL_TARGET ++target_alias=${target_alias-$host_alias} ++ ++# Determine the noncanonical target name, for directory use. ++ACX_NONCANONICAL_TARGET ++ ++# Determine the target- and build-specific subdirectories ++GCC_TOPLEV_SUBDIRS ++ ++# Command-line options. ++# Very limited version of AC_MAINTAINER_MODE. ++AC_ARG_ENABLE([maintainer-mode], ++ [AC_HELP_STRING([--enable-maintainer-mode], ++ [enable make rules and dependencies not useful (and ++ sometimes confusing) to the casual installer])], ++ [case ${enable_maintainer_mode} in ++ yes) MAINT='' ;; ++ no) MAINT='#' ;; ++ *) AC_MSG_ERROR([--enable-maintainer-mode must be yes or no]) ;; ++ esac ++ maintainer_mode=${enableval}], ++ [MAINT='#']) ++AC_SUBST([MAINT])dnl ++ ++AM_ENABLE_MULTILIB(, ..) ++# Calculate toolexeclibdir ++# Also toolexecdir, though it's only used in toolexeclibdir ++case ${enable_version_specific_runtime_libs} in ++ yes) ++ # Need the gcc compiler version to know where to install libraries ++ # and header files if --enable-version-specific-runtime-libs option ++ # is selected. ++ toolexecdir='$(libdir)/gcc/$(target_alias)' ++ toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)' ++ ;; ++ no) ++ if test -n "$with_cross_host" && ++ test x"$with_cross_host" != x"no"; then ++ # Install a library built with a cross compiler in tooldir, not libdir. ++ toolexecdir='$(exec_prefix)/$(target_alias)' ++ toolexeclibdir='$(toolexecdir)/lib' ++ else ++ toolexecdir='$(libdir)/gcc-lib/$(target_alias)' ++ toolexeclibdir='$(libdir)' ++ fi ++ multi_os_directory=`$CC -print-multi-os-directory` ++ case $multi_os_directory in ++ .) ;; # Avoid trailing /. ++ *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;; ++ esac ++ ;; ++esac ++AC_SUBST(toolexecdir) ++AC_SUBST(toolexeclibdir) ++#TODO: toolexeclibdir is currently disregarded ++ ++# Check the compiler. ++# The same as in boehm-gc and libstdc++. Have to borrow it from there. ++# We must force CC to /not/ be precious variables; otherwise ++# the wrong, non-multilib-adjusted value will be used in multilibs. ++# As a side effect, we have to subst CFLAGS ourselves. ++ ++m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS]) ++m4_define([_AC_ARG_VAR_PRECIOUS],[]) ++AC_PROG_CC ++m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) ++ ++AC_SUBST(CFLAGS) ++ ++AC_ARG_ENABLE([shared], ++[AC_HELP_STRING([--disable-shared], ++ [don't provide a shared libgnat])], ++[ ++case $enable_shared in ++ yes | no) ;; ++ *) ++ enable_shared=no ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:," ++ for pkg in $enableval; do ++ case $pkg in ++ ada | libada) ++ enable_shared=yes ;; ++ esac ++ done ++ IFS="$ac_save_ifs" ++ ;; ++esac ++], [enable_shared=yes]) ++AC_SUBST([enable_shared]) ++ ++GCC_PICFLAG ++AC_SUBST([PICFLAG]) ++ ++# These must be passed down, or are needed by gcc/libgcc.mvars ++AC_PROG_AWK ++AC_PROG_LN_S ++ ++# Determine what GCC version number to use in filesystem paths. ++GCC_BASE_VER ++ ++# Determine what to build for 'gnatlib' ++if test ${enable_shared} = yes ; then ++ # Note that build=target is almost certainly the wrong test; FIXME ++ default_gnatlib_target="gnatlib-shared" ++else ++ default_gnatlib_target="gnatlib-plain" ++fi ++AC_SUBST([default_gnatlib_target]) ++ ++# Check for _Unwind_GetIPInfo ++GCC_CHECK_UNWIND_GETIPINFO ++have_getipinfo= ++if test x$have_unwind_getipinfo = xyes; then ++ have_getipinfo=-DHAVE_GETIPINFO ++fi ++AC_SUBST(have_getipinfo) ++ ++# Output: create a Makefile. ++AC_CONFIG_FILES([Makefile]) ++ ++AC_OUTPUT +Index: b/src/Makefile.def +=================================================================== +--- a/src/Makefile.def ++++ b/src/Makefile.def +@@ -197,6 +197,7 @@ target_modules = { module= libgnatvsn; n + missing= TAGS; + missing= install-info; + missing= installcheck; }; ++target_modules = { module= libada-sjlj; }; + target_modules = { module= libgomp; bootstrap= true; lib_path=.libs; }; + target_modules = { module= libitm; lib_path=.libs; }; + target_modules = { module= libatomic; lib_path=.libs; }; +@@ -393,6 +394,7 @@ dependencies = { module=all-libcpp; on=a + dependencies = { module=all-fixincludes; on=all-libiberty; }; + + dependencies = { module=all-target-libada; on=all-gcc; }; ++dependencies = { module=all-target-libada-sjlj; on=all-target-libada; }; + dependencies = { module=all-gnattools; on=all-target-libada; }; + dependencies = { module=all-gnattools; on=all-target-libstdc++-v3; }; + dependencies = { module=all-gnattools; on=all-target-libgnatvsn; }; +Index: b/src/configure.ac +=================================================================== +--- a/src/configure.ac ++++ b/src/configure.ac +@@ -170,6 +170,7 @@ target_libraries="target-libgcc \ + target-libffi \ + target-libobjc \ + target-libada \ ++ target-libada-sjlj \ + ${target_libiberty} \ + target-libgnatvsn \ + target-libgo" +@@ -456,7 +457,7 @@ AC_ARG_ENABLE(libada, + ENABLE_LIBADA=$enableval, + ENABLE_LIBADA=yes) + if test "${ENABLE_LIBADA}" != "yes" ; then +- noconfigdirs="$noconfigdirs target-libgnatvsn gnattools" ++ noconfigdirs="$noconfigdirs target-libgnatvsn gnattools target-libada-sjlj" + fi + + AC_ARG_ENABLE(libssp, +Index: b/src/gcc/ada/gcc-interface/Makefile.in +=================================================================== +--- a/src/gcc/ada/gcc-interface/Makefile.in ++++ b/src/gcc/ada/gcc-interface/Makefile.in +@@ -191,7 +191,7 @@ TOOLSCASE = + + # Multilib handling + MULTISUBDIR = +-RTSDIR = rts$(subst /,_,$(MULTISUBDIR)) ++RTSDIR := rts$(subst /,_,$(MULTISUBDIR)) + + # Link flags used to build gnat tools. By default we prefer to statically + # link with libgcc to avoid a dependency on shared libgcc (which is tricky +@@ -2673,6 +2673,26 @@ install-gnatlib: ../stamp-gnatlib-$(RTSD + cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.adb + cd $(DESTDIR)$(ADA_INCLUDE_DIR); $(CHMOD) a-wx *.ads + ++install-gnatlib-sjlj: ../stamp-gnatlib-$(RTSDIR) ++# Create the directory before deleting it, in case the directory is ++# a list of directories (as it may be on VMS). This ensures we are ++# deleting the right one. ++ -$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR_SJLJ) ++ -$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ) ++ $(RMDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR_SJLJ) ++ $(RMDIR) $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ) ++ -$(MKDIR) $(DESTDIR)$(ADA_RTL_OBJ_DIR_SJLJ) ++ -$(MKDIR) $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ) ++ for file in $(RTSDIR)/*.ali; do \ ++ $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_RTL_OBJ_DIR_SJLJ); \ ++ done ++ # This copy must be done preserving the date on the original file. ++ for file in $(RTSDIR)/*.ad?; do \ ++ $(INSTALL_DATA_DATE) $$file $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ); \ ++ done ++ cd $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ); $(CHMOD) a-wx *.adb ++ cd $(DESTDIR)$(ADA_INCLUDE_DIR_SJLJ); $(CHMOD) a-wx *.ads ++ + ../stamp-gnatlib2-$(RTSDIR): + $(RM) $(RTSDIR)/s-*.ali + $(RM) $(RTSDIR)/s-*$(objext) +@@ -2938,7 +2958,7 @@ gnatlib-shared: + # commenting the pragma instead of deleting the line, as the latter might + # result in getting multiple blank lines, hence possible style check errors. + gnatlib-sjlj: +- $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="" \ ++ $(MAKE) $(FLAGS_TO_PASS) EH_MECHANISM="" RTSDIR="$(RTSDIR)" \ + THREAD_KIND="$(THREAD_KIND)" ../stamp-gnatlib1-$(RTSDIR) + sed \ + -e 's/Frontend_Exceptions.*/Frontend_Exceptions : constant Boolean := True;/' \ +@@ -2947,6 +2967,7 @@ gnatlib-sjlj: + $(RTSDIR)/system.ads > $(RTSDIR)/s.ads + $(MV) $(RTSDIR)/s.ads $(RTSDIR)/system.ads + $(MAKE) $(FLAGS_TO_PASS) \ ++ RTSDIR="$(RTSDIR)" \ + EH_MECHANISM="" \ + GNATLIBFLAGS="$(GNATLIBFLAGS)" \ + GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \ +@@ -2998,6 +3019,8 @@ b_gnatm.o : b_gnatm.adb + + ADA_INCLUDE_DIR = $(libsubdir)/adainclude + ADA_RTL_OBJ_DIR = $(libsubdir)/adalib ++ADA_INCLUDE_DIR_SJLJ = $(libsubdir)/rts-sjlj/adainclude ++ADA_RTL_OBJ_DIR_SJLJ = $(libsubdir)/rts-sjlj/adalib + + # Special flags + +Index: b/src/gcc/ada/gcc-interface/config-lang.in +=================================================================== +--- a/src/gcc/ada/gcc-interface/config-lang.in ++++ b/src/gcc/ada/gcc-interface/config-lang.in +@@ -34,8 +34,8 @@ gtfiles="\$(srcdir)/ada/gcc-interface/ad + + outputs="ada/gcc-interface/Makefile ada/Makefile" + +-target_libs="target-libada target-libgnatvsn" +-lang_dirs="libada gnattools" ++target_libs="target-libada target-libgnatvsn target-libada-sjlj" ++lang_dirs="libada gnattools libada-sjlj" + + # Ada is not enabled by default for the time being. + build_by_default=no +Index: b/src/gcc/ada/gcc-interface/Make-lang.in +=================================================================== +--- a/src/gcc/ada/gcc-interface/Make-lang.in ++++ b/src/gcc/ada/gcc-interface/Make-lang.in +@@ -784,6 +784,7 @@ ada.install-common: + + install-gnatlib: + $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) install-gnatlib$(LIBGNAT_TARGET) ++ $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) RTSDIR="rts-sjlj" install-gnatlib-sjlj$(LIBGNAT_TARGET) + + install-gnatlib-obj: + $(MAKE) -C ada $(COMMON_FLAGS_TO_PASS) $(ADA_FLAGS_TO_PASS) install-gnatlib-obj diff --git a/debian/patches/ada-symbolic-tracebacks.diff b/debian/patches/ada-symbolic-tracebacks.diff new file mode 100644 index 0000000..ae8f402 --- /dev/null +++ b/debian/patches/ada-symbolic-tracebacks.diff @@ -0,0 +1,401 @@ +# DP: - Enable support for symbolic tracebacks in exceptions (delete the dummy +# DP: convert_addresses from adaint.c, and provide a real one separately.) + +Ported Jürgen Pfeifer's patch to enable symbolic tracebacks on Debian +GNU/Linux. + +The binary distribution of GNAT 3.15p comes with an old version of +binutils that includes a library, libaddr2line.a. This library does +not exist in recent versions of binutils. The patch works around this +by calling /usr/bin/addr2line (still part of binutils) and parsing the +output. See debian/convert_addresses.c for the gory details. + +I have modified convert_addresses.c to not use a shell script anymore; +Debian controls the version of binutils which is installed. Also, I +use execve instead of execle. + +-- +Ludovic Brenta. + +# ' make emacs highlighting happy + +Index: b/src/gcc/ada/gcc-interface/Makefile.in +=================================================================== +--- a/src/gcc/ada/gcc-interface/Makefile.in ++++ b/src/gcc/ada/gcc-interface/Makefile.in +@@ -270,7 +270,8 @@ + # Both . and srcdir are used, in that order, + # so that tm.h and config.h will be found in the compilation + # subdirectory rather than in the source directory. +-INCLUDES = -I- -I. -I.. -I$(srcdir)/ada -I$(srcdir) -I$(ftop_srcdir)/include $(GMPINC) ++INCLUDES = -iquote . -iquote .. -iquote $(srcdir)/ada -iquote $(srcdir) \ ++ -iquote $(ftop_srcdir)/include $(GMPINC) + + ADA_INCLUDES = -I- -I. -I$(srcdir)/ada + +@@ -2426,7 +2427,7 @@ + # library. LIBGNAT_OBJS is the list of object files for libgnat. + # thread.c is special as put into GNATRTL_TASKING_OBJS by Makefile.rtl + LIBGNAT_OBJS = adadecode.o adaint.o argv.o aux-io.o \ +- cal.o cio.o cstreams.o ctrl_c.o \ ++ cal.o cio.o convert_addresses.o cstreams.o ctrl_c.o \ + env.o errno.o exit.o expect.o final.o \ + init.o initialize.o locales.o mkdir.o \ + raise.o seh_init.o socket.o sysdep.o \ +@@ -3104,6 +3105,7 @@ + socket.o : socket.c gsocket.h + sysdep.o : sysdep.c + raise.o : raise.c raise.h ++convert_addresses.o : convert_addresses.c + sigtramp-armdroid.o : sigtramp-armdroid.c sigtramp.h + sigtramp-armvxw.o : sigtramp-armvxw.c sigtramp.h + sigtramp-ppcvxw.o : sigtramp-ppcvxw.c sigtramp.h +Index: b/src/gcc/ada/adaint.c +=================================================================== +--- a/src/gcc/ada/adaint.c ++++ b/src/gcc/ada/adaint.c +@@ -3608,35 +3608,6 @@ + } + #endif + +-#if defined (IS_CROSS) \ +- || (! ((defined (sparc) || defined (i386)) && defined (sun) \ +- && defined (__SVR4)) \ +- && ! (defined (linux) && (defined (i386) || defined (__x86_64__))) \ +- && ! (defined (linux) && defined (__ia64__)) \ +- && ! (defined (linux) && defined (powerpc)) \ +- && ! defined (__FreeBSD__) \ +- && ! defined (__Lynx__) \ +- && ! defined (__hpux__) \ +- && ! defined (__APPLE__) \ +- && ! defined (_AIX) \ +- && ! defined (VMS) \ +- && ! defined (__MINGW32__)) +- +-/* Dummy function to satisfy g-trasym.o. See the preprocessor conditional +- just above for a list of native platforms that provide a non-dummy +- version of this procedure in libaddr2line.a. */ +- +-void +-convert_addresses (const char *file_name ATTRIBUTE_UNUSED, +- void *addrs ATTRIBUTE_UNUSED, +- int n_addr ATTRIBUTE_UNUSED, +- void *buf ATTRIBUTE_UNUSED, +- int *len ATTRIBUTE_UNUSED) +-{ +- *len = 0; +-} +-#endif +- + #if defined (_WIN32) + int __gnat_argument_needs_quote = 1; + #else +Index: b/src/gcc/ada/convert_addresses.c +=================================================================== +--- /dev/null ++++ b/src/gcc/ada/convert_addresses.c +@@ -0,0 +1,159 @@ ++/* ++ Copyright (C) 1999 by Juergen Pfeifer ++ Ada for Linux Team (ALT) ++ ++ Permission is hereby granted, free of charge, to any person obtaining a ++ copy of this software and associated documentation files (the ++ "Software"), to deal in the Software without restriction, including ++ without limitation the rights to use, copy, modify, merge, publish, ++ distribute, distribute with modifications, sublicense, and/or sell ++ copies of the Software, and to permit persons to whom the Software is ++ furnished to do so, subject to the following conditions: ++ ++ The above copyright notice and this permission notice shall be included ++ in all copies or substantial portions of the Software. ++ ++ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ++ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. ++ IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, ++ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR ++ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR ++ THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++ ++ Except as contained in this notice, the name(s) of the above copyright ++ holders shall not be used in advertising or otherwise to promote the ++ sale, use or other dealings in this Software without prior written ++ authorization. ++*/ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define STDIN_FILENO 0 ++#define STDOUT_FILENO 1 ++#define MAX_LINE 1024 ++ ++#define CLOSE1 close(fd1[0]); close(fd1[1]) ++#define CLOSE2 close(fd2[0]); close(fd2[1]) ++#define RESTSIG sigaction(SIGPIPE,&oact,NULL) ++ ++void convert_addresses ++(const char const *file_name, ++ void* addrs[], ++ int n_addr, ++ char* buf, ++ int* len) ++{ ++ int max_len = *len; ++ pid_t child; ++ ++ struct sigaction act, oact; ++ ++ int fd1[2], fd2[2]; ++ ++ if (!file_name) { ++ return; ++ } ++ ++ *buf = 0; *len = 0; ++ act.sa_handler = SIG_IGN; ++ sigemptyset(&act.sa_mask); ++ act.sa_flags = 0; ++ if (sigaction(SIGPIPE,&act,&oact) < 0) ++ return; ++ ++ if (pipe(fd1) >= 0) { ++ if (pipe(fd2)>=0) { ++ if ((child = fork()) < 0) { ++ CLOSE1; CLOSE2; RESTSIG; ++ return; ++ } ++ else { ++ if (0==child) { ++ close(fd1[1]); ++ close(fd2[0]); ++ if (fd1[0] != STDIN_FILENO) { ++ if (dup2(fd1[0],STDIN_FILENO) != STDIN_FILENO) { ++ CLOSE1; CLOSE2; ++ } ++ close(fd1[0]); ++ } ++ if (fd2[1] != STDOUT_FILENO) { ++ if (dup2(fd2[1],STDOUT_FILENO) != STDOUT_FILENO) { ++ CLOSE1; CLOSE2; ++ } ++ close(fd2[1]); ++ } ++ { ++ /* As pointed out by Florian Weimer to me, it is a ++ security threat to call the script with a user defined ++ environment and using the path. That would be Trojans ++ pleasure. Therefore we use the absolute path to ++ addr2line and an empty environment. That should be ++ safe. ++ */ ++ char *file_name_for_execve = strdup (file_name); /* non-const */ ++ char *const argv[] = { "addr2line", ++ "-e", ++ file_name_for_execve, ++ "--demangle=gnat", ++ "--functions", ++ "--basenames", ++ NULL }; ++ char *const envp[] = { NULL }; ++ if (execve("/usr/bin/addr2line", argv, envp) < 0) { ++ CLOSE1; CLOSE2; ++ } ++ if (file_name_for_execve) { free (file_name_for_execve); } ++ } ++ } ++ else { ++ int i, n; ++ char hex[16]; ++ char line[MAX_LINE + 1]; ++ char *p; ++ char *s = buf; ++ ++ /* Parent context */ ++ close(fd1[0]); ++ close(fd2[1]); ++ ++ for(i=0; i < n_addr; i++) { ++ snprintf(hex,sizeof(hex),"%p\n",addrs[i]); ++ write(fd1[1],hex,strlen(hex)); ++ n = read(fd2[0],line,MAX_LINE); ++ if (n<=0) ++ break; ++ line[n]=0; ++ /* We have approx. 16 additional chars for "%p in " clause. ++ We use this info to prevent a buffer overrun. ++ */ ++ if (n + 16 + (*len) > max_len) ++ break; ++ p = strchr(line,'\n'); ++ if (p) { ++ if (*(p+1)) { ++ *p = 0; ++ *len += snprintf(s, (max_len - (*len)), "%p in %s at %s",addrs[i], line, p+1); ++ } ++ else { ++ *len += snprintf(s, (max_len - (*len)), "%p at %s",addrs[i], line); ++ } ++ s = buf + (*len); ++ } ++ } ++ close(fd1[1]); ++ close(fd2[0]); ++ } ++ } ++ } ++ else { ++ CLOSE1; ++ } ++ } ++ RESTSIG; ++} +Index: b/src/gcc/ada/g-trasym.adb +=================================================================== +--- a/src/gcc/ada/g-trasym.adb ++++ b/src/gcc/ada/g-trasym.adb +@@ -33,40 +33,110 @@ + -- is not supported. It returns tracebacks as lists of LF separated strings of + -- the form "0x..." corresponding to the addresses. + ++with System.Soft_Links; + with Ada.Exceptions.Traceback; use Ada.Exceptions.Traceback; +-with System.Address_Image; + + package body GNAT.Traceback.Symbolic is + ++ package TSL renames System.Soft_Links; ++ ++ -- To perform the raw addresses to symbolic form translation we rely on a ++ -- libaddr2line symbolizer which examines debug info from a provided ++ -- executable file name, and an absolute path is needed to ensure the file ++ -- is always found. This is "__gnat_locate_exec_on_path (gnat_argv [0])" ++ -- for our executable file, a fairly heavy operation so we cache the ++ -- result. ++ ++ Exename : System.Address; ++ -- Pointer to the name of the executable file to be used on all ++ -- invocations of the libaddr2line symbolization service. ++ ++ Exename_Resolved : Boolean := False; ++ -- Flag to indicate whether we have performed the executable file name ++ -- resolution already. Relying on a not null Exename for this purpose ++ -- would be potentially inefficient as this is what we will get if the ++ -- resolution attempt fails. ++ + ------------------------ + -- Symbolic_Traceback -- + ------------------------ + + function Symbolic_Traceback (Traceback : Tracebacks_Array) return String is ++ ++ procedure convert_addresses ++ (filename : System.Address; ++ addrs : System.Address; ++ n_addrs : Integer; ++ buf : System.Address; ++ len : System.Address); ++ pragma Import (C, convert_addresses, "convert_addresses"); ++ -- This is the procedure version of the Ada-aware addr2line. It places ++ -- in BUF a string representing the symbolic translation of the N_ADDRS ++ -- raw addresses provided in ADDRS, looked up in debug information from ++ -- FILENAME. LEN points to an integer which contains the size of the ++ -- BUF buffer at input and the result length at output. ++ -- ++ -- Note that this procedure is *not* thread-safe. ++ ++ type Argv_Array is array (0 .. 0) of System.Address; ++ gnat_argv : access Argv_Array; ++ pragma Import (C, gnat_argv, "gnat_argv"); ++ ++ function locate_exec_on_path ++ (c_exename : System.Address) return System.Address; ++ pragma Import (C, locate_exec_on_path, "__gnat_locate_exec_on_path"); ++ ++ B_Size : constant Integer := 256 * Traceback'Length; ++ Len : Integer := B_Size; ++ Res : String (1 .. B_Size); ++ ++ use type System.Address; ++ + begin ++ -- The symbolic translation of an empty set of addresses is an empty ++ -- string. ++ + if Traceback'Length = 0 then + return ""; ++ end if; + +- else +- declare +- Img : String := System.Address_Image (Traceback (Traceback'First)); ++ -- If our input set of raw addresses is not empty, resort to the ++ -- libaddr2line service to symbolize it all. + +- Result : String (1 .. (Img'Length + 3) * Traceback'Length); +- Last : Natural := 0; ++ -- Compute, cache and provide the absolute path to our executable file ++ -- name as the binary file where the relevant debug information is to be ++ -- found. If the executable file name resolution fails, we have no ++ -- sensible basis to invoke the symbolizer at all. ++ ++ -- Protect all this against concurrent accesses explicitly, as the ++ -- underlying services are potentially thread unsafe. ++ ++ TSL.Lock_Task.all; ++ ++ if not Exename_Resolved then ++ Exename := locate_exec_on_path (gnat_argv (0)); ++ Exename_Resolved := True; ++ end if; ++ ++ if Exename /= System.Null_Address then ++ Len := Res'Length; ++ convert_addresses ++ (Exename, Traceback'Address, Traceback'Length, ++ Res (1)'Address, Len'Address); ++ end if; ++ ++ TSL.Unlock_Task.all; + +- begin +- for J in Traceback'Range loop +- Img := System.Address_Image (Traceback (J)); +- Result (Last + 1 .. Last + 2) := "0x"; +- Last := Last + 2; +- Result (Last + 1 .. Last + Img'Length) := Img; +- Last := Last + Img'Length + 1; +- Result (Last) := ASCII.LF; +- end loop; ++ -- Return what the addr2line symbolizer has produced if we have called ++ -- it (the executable name resolution succeeded), or an empty string ++ -- otherwise. + +- return Result (1 .. Last); +- end; ++ if Exename /= System.Null_Address then ++ return Res (1 .. Len); ++ else ++ return ""; + end if; ++ + end Symbolic_Traceback; + + function Symbolic_Traceback (E : Exception_Occurrence) return String is +Index: b/src/gcc/ada/tracebak.c +=================================================================== +--- a/src/gcc/ada/tracebak.c ++++ b/src/gcc/ada/tracebak.c +@@ -425,7 +425,7 @@ + /* Starting with GCC 4.6, -fomit-frame-pointer is turned on by default for + 32-bit x86/Linux as well and DWARF 2 unwind tables are emitted instead. + See the x86-64 case below for the drawbacks with this approach. */ +-#if defined (linux) && (__GNUC__ * 10 + __GNUC_MINOR__ > 45) ++#if (defined (linux) || defined(__GNU__)) && (__GNUC__ * 10 + __GNUC_MINOR__ > 45) + #define USE_GCC_UNWINDER + #else + #define USE_GENERIC_UNWINDER diff --git a/debian/patches/ada-tools-move-ldflags.diff b/debian/patches/ada-tools-move-ldflags.diff new file mode 100644 index 0000000..336a315 --- /dev/null +++ b/debian/patches/ada-tools-move-ldflags.diff @@ -0,0 +1,40 @@ +Description: For Ada tools, move LDFLAGS from GCC_LINK to TOOLS_LIBS. + Gnatlink moves GCC_LINK linker options after other options, + probably so that standard libraries come after user libraries + in case --as-needed is activated. + However, if --as-needed is activated via LDFLAGS, it is appended via + GCC_LINK and comes too late on the eventual command line. + All GCC_LINKS expansions but one are followed by an expansion of + TOOLS_LIBS, so TOOLS_LIBS seems to be the right place for LDFLAGS. +Author: Nicolas Boulenguez +Forwarded: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81104 + +--- a/src/gcc/ada/gcc-interface/Makefile.in ++++ b/src/gcc/ada/gcc-interface/Makefile.in +@@ -247,7 +247,7 @@ + LIBDEPS = $(LIBINTL_DEP) $(LIBICONV_DEP) $(LIBBACKTRACE) $(LIBIBERTY) + # Default is no TGT_LIB; one might be passed down or something + TGT_LIB = +-TOOLS_LIBS = ../link.o ../targext.o ../../ggc-none.o ../../libcommon-target.a \ ++TOOLS_LIBS = $(LDFLAGS) ../link.o ../targext.o ../../ggc-none.o ../../libcommon-target.a \ + ../../libcommon.a ../../../libcpp/libcpp.a $(LIBGNAT) $(LIBINTL) $(LIBICONV) \ + ../$(LIBBACKTRACE) ../$(LIBIBERTY) $(SYSLIBS) $(TGT_LIB) + +@@ -2532,7 +2532,7 @@ + "GNATLINK=$(GNATLINK)" \ + "GNATBIND=$(GNATBIND)" + +-GCC_LINK=$(CXX) $(GCC_LINK_FLAGS) $(ADA_INCLUDES) $(LDFLAGS) ++GCC_LINK=$(CXX) $(GCC_LINK_FLAGS) $(ADA_INCLUDES) + + # Build directory for the tools. Let's copy the target-dependent + # sources using the same mechanism as for gnatlib. The other sources are +@@ -2630,7 +2630,7 @@ + ../../vxaddr2line$(exeext): ../stamp-tools + $(GNATMAKE) -c $(ADA_INCLUDES) vxaddr2line --GCC="$(CC) $(ALL_ADAFLAGS)" + $(GNATBIND) $(ADA_INCLUDES) $(GNATBIND_FLAGS) vxaddr2line +- $(GNATLINK) -v vxaddr2line -o $@ --GCC="$(GCC_LINK)" ../targext.o $(CLIB) ++ $(GNATLINK) -v vxaddr2line -o $@ --GCC="$(GCC_LINK)" ../targext.o $(CLIB) $(LDFLAGS) + + gnatmake-re: ../stamp-tools + $(GNATMAKE) -j0 $(ADA_INCLUDES) -u sdefault --GCC="$(CC) $(MOST_ADA_FLAGS)" diff --git a/debian/patches/alpha-ieee-doc.diff b/debian/patches/alpha-ieee-doc.diff new file mode 100644 index 0000000..0564158 --- /dev/null +++ b/debian/patches/alpha-ieee-doc.diff @@ -0,0 +1,24 @@ +# DP: #212912 +# DP: on alpha-linux, make -mieee default and add -mieee-disable switch +# DP: to turn default off (doc patch) + +--- + gcc/doc/invoke.texi | 7 +++++++ + 1 files changed, 7 insertions(+), 0 deletions(-) + +--- a/src/gcc/doc/invoke.texi ++++ b/src/gcc/doc/invoke.texi +@@ -9980,6 +9980,13 @@ able to correctly support denormalized numbers and exceptional IEEE + values such as not-a-number and plus/minus infinity. Other Alpha + compilers call this option @option{-ieee_with_no_inexact}. + ++DEBIAN SPECIFIC: This option is on by default for alpha-linux-gnu, unless ++@option{-ffinite-math-only} (which is part of the @option{-ffast-math} ++set) is specified, because the software functions in the GNU libc math ++libraries generate denormalized numbers, NaNs, and infs (all of which ++will cause a programs to SIGFPE when it attempts to use the results without ++@option{-mieee}). ++ + @item -mieee-with-inexact + @opindex mieee-with-inexact + This is like @option{-mieee} except the generated code also maintains diff --git a/debian/patches/alpha-ieee.diff b/debian/patches/alpha-ieee.diff new file mode 100644 index 0000000..40497fb --- /dev/null +++ b/debian/patches/alpha-ieee.diff @@ -0,0 +1,21 @@ +# DP: #212912 +# DP: on alpha-linux, make -mieee default and add -mieee-disable switch +# DP: to turn default off + +--- + gcc/config/alpha/alpha.c | 4 ++++ + 1 files changed, 4 insertions(+), 0 deletions(-) + +--- a/src/gcc/config/alpha/alpha.c ++++ b/src/gcc/config/alpha/alpha.c +@@ -259,6 +259,10 @@ + int line_size = 0, l1_size = 0, l2_size = 0; + int i; + ++ /* If not -ffinite-math-only, enable -mieee*/ ++ if (!flag_finite_math_only) ++ target_flags |= MASK_IEEE|MASK_IEEE_CONFORMANT; ++ + #ifdef SUBTARGET_OVERRIDE_OPTIONS + SUBTARGET_OVERRIDE_OPTIONS; + #endif diff --git a/debian/patches/alpha-no-ev4-directive.diff b/debian/patches/alpha-no-ev4-directive.diff new file mode 100644 index 0000000..d67498a --- /dev/null +++ b/debian/patches/alpha-no-ev4-directive.diff @@ -0,0 +1,32 @@ +# DP: never emit .ev4 directive. + +--- + gcc/config/alpha/alpha.c | 7 +++---- + 1 files changed, 3 insertions(+), 4 deletions(-) + +Index: b/src/gcc/config/alpha/alpha.c +=================================================================== +--- a/src/gcc/config/alpha/alpha.c ++++ b/src/gcc/config/alpha/alpha.c +@@ -9471,7 +9471,7 @@ alpha_file_start (void) + fputs ("\t.set nomacro\n", asm_out_file); + if (TARGET_SUPPORT_ARCH | TARGET_BWX | TARGET_MAX | TARGET_FIX | TARGET_CIX) + { +- const char *arch; ++ const char *arch = NULL; + + if (alpha_cpu == PROCESSOR_EV6 || TARGET_FIX || TARGET_CIX) + arch = "ev6"; +@@ -9481,10 +9481,9 @@ alpha_file_start (void) + arch = "ev56"; + else if (alpha_cpu == PROCESSOR_EV5) + arch = "ev5"; +- else +- arch = "ev4"; + +- fprintf (asm_out_file, "\t.arch %s\n", arch); ++ if (arch) ++ fprintf (asm_out_file, "\t.arch %s\n", arch); + } + } + diff --git a/debian/patches/arm-multilib-defaults.diff b/debian/patches/arm-multilib-defaults.diff new file mode 100644 index 0000000..a4ae6e2 --- /dev/null +++ b/debian/patches/arm-multilib-defaults.diff @@ -0,0 +1,92 @@ +# DP: Set MULTILIB_DEFAULTS for ARM multilib builds + +Index: b/src/gcc/config.gcc +=================================================================== +--- a/src/gcc/config.gcc ++++ b/src/gcc/config.gcc +@@ -3723,10 +3723,18 @@ case "${target}" in + done + + case "$with_float" in +- "" \ +- | soft | hard | softfp) ++ "") + # OK + ;; ++ soft) ++ tm_defines="${tm_defines} TARGET_CONFIGURED_FLOAT_ABI=0" ++ ;; ++ softfp) ++ tm_defines="${tm_defines} TARGET_CONFIGURED_FLOAT_ABI=1" ++ ;; ++ hard) ++ tm_defines="${tm_defines} TARGET_CONFIGURED_FLOAT_ABI=2" ++ ;; + *) + echo "Unknown floating point type used in --with-float=$with_float" 1>&2 + exit 1 +@@ -3760,6 +3768,9 @@ case "${target}" in + "" \ + | arm | thumb ) + #OK ++ if test "$with_mode" = thumb; then ++ tm_defines="${tm_defines} TARGET_CONFIGURED_THUMB_MODE=1" ++ fi + ;; + *) + echo "Unknown mode used in --with-mode=$with_mode" +Index: b/src/gcc/config/arm/linux-eabi.h +=================================================================== +--- a/src/gcc/config/arm/linux-eabi.h ++++ b/src/gcc/config/arm/linux-eabi.h +@@ -43,7 +43,21 @@ + target hardware. If you override this to use the hard-float ABI then + change the setting of GLIBC_DYNAMIC_LINKER_DEFAULT as well. */ + #undef TARGET_DEFAULT_FLOAT_ABI ++#ifdef TARGET_CONFIGURED_FLOAT_ABI ++#if TARGET_CONFIGURED_FLOAT_ABI == 2 ++#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_HARD ++#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=hard" ++#elif TARGET_CONFIGURED_FLOAT_ABI == 1 ++#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFTFP ++#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=softfp" ++#else ++#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT ++#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=soft" ++#endif ++#else + #define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT ++#define MULTILIB_DEFAULT_FLOAT_ABI "mfloat-abi=soft" ++#endif + + /* We default to the "aapcs-linux" ABI so that enums are int-sized by + default. */ +@@ -97,6 +111,28 @@ + #define MUSL_DYNAMIC_LINKER \ + "/lib/ld-musl-arm" MUSL_DYNAMIC_LINKER_E "%{mfloat-abi=hard:hf}.so.1" + ++/* Set the multilib defaults according the configuration, needed to ++ let gcc -print-multi-dir do the right thing. */ ++ ++#if TARGET_BIG_ENDIAN_DEFAULT ++#define MULTILIB_DEFAULT_ENDIAN "mbig-endian" ++#else ++#define MULTILIB_DEFAULT_ENDIAN "mlittle-endian" ++#endif ++ ++#ifndef TARGET_CONFIGURED_THUMB_MODE ++#define MULTILIB_DEFAULT_MODE "marm" ++#elif TARGET_CONFIGURED_THUMB_MODE == 1 ++#define MULTILIB_DEFAULT_MODE "mthumb" ++#else ++#define MULTILIB_DEFAULT_MODE "marm" ++#endif ++ ++#undef MULTILIB_DEFAULTS ++#define MULTILIB_DEFAULTS \ ++ { MULTILIB_DEFAULT_MODE, MULTILIB_DEFAULT_ENDIAN, \ ++ MULTILIB_DEFAULT_FLOAT_ABI, "mno-thumb-interwork" } ++ + /* At this point, bpabi.h will have clobbered LINK_SPEC. We want to + use the GNU/Linux version, not the generic BPABI version. */ + #undef LINK_SPEC diff --git a/debian/patches/arm-multilib-soft-cross.diff b/debian/patches/arm-multilib-soft-cross.diff new file mode 100644 index 0000000..bad15d0 --- /dev/null +++ b/debian/patches/arm-multilib-soft-cross.diff @@ -0,0 +1,27 @@ +# DP: ARM hard/soft float multilib support + +Index: b/src/gcc/config/arm/t-linux-eabi +=================================================================== +--- a/src/gcc/config/arm/t-linux-eabi ++++ b/src/gcc/config/arm/t-linux-eabi +@@ -21,6 +21,20 @@ + MULTILIB_OPTIONS = + MULTILIB_DIRNAMES = + ++ifeq ($(with_float),hard) ++MULTILIB_OPTIONS = mfloat-abi=soft/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float mfloat-abi?soft=mfloat-abi?softfp ++MULTILIB_OSDIRNAMES = ../libsf:arm-linux-gnueabi ../lib:arm-linux-gnueabihf ++else ++MULTILIB_OPTIONS = mfloat-abi=soft/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float mfloat-abi?soft=mfloat-abi?softfp ++MULTILIB_OSDIRNAMES = ../lib:arm-linux-gnueabi ../libhf:arm-linux-gnueabihf ++endif ++ + #MULTILIB_OPTIONS += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te + #MULTILIB_DIRNAMES += fa606te fa626te fmp626 fa726te + #MULTILIB_EXCEPTIONS += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te *mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te* diff --git a/debian/patches/arm-multilib-soft-float.diff b/debian/patches/arm-multilib-soft-float.diff new file mode 100644 index 0000000..18f51fb --- /dev/null +++ b/debian/patches/arm-multilib-soft-float.diff @@ -0,0 +1,26 @@ +--- a/src/gcc/config/arm/t-linux-eabi ++++ b/src/gcc/config/arm/t-linux-eabi +@@ -24,6 +24,23 @@ + MULTILIB_OPTIONS = + MULTILIB_DIRNAMES = + ++ifneq (,$(findstring MULTIARCH_DEFAULTS,$(tm_defines))) ++ifneq (,$(findstring __arm_linux_gnueabi__,$(tm_defines))) ++ MULTILIB_OPTIONS = mfloat-abi=softfp/mfloat-abi=hard/mfloat-abi=soft ++ MULTILIB_DIRNAMES = . hf soft-float ++ MULTILIB_EXCEPTIONS = ++ MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float ++ MULTILIB_OSDIRNAMES = ../../lib/arm-linux-gnueabi ../../lib/arm-linux-gnueabihf soft-float ++endif ++ifneq (,$(findstring __arm_linux_gnueabihf__,$(tm_defines))) ++ MULTILIB_OPTIONS = mfloat-abi=hard/mfloat-abi=softfp/mfloat-abi=soft ++ MULTILIB_DIRNAMES = . sf soft-float ++ MULTILIB_EXCEPTIONS = ++ MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float ++ MULTILIB_OSDIRNAMES = ../../lib/arm-linux-gnueabihf ../../lib/arm-linux-gnueabi soft-float ++endif ++endif ++ + #MULTILIB_OPTIONS += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te + #MULTILIB_DIRNAMES += fa606te fa626te fmp626 fa726te + #MULTILIB_EXCEPTIONS += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te *mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te* diff --git a/debian/patches/arm-multilib-soft.diff b/debian/patches/arm-multilib-soft.diff new file mode 100644 index 0000000..1e5c817 --- /dev/null +++ b/debian/patches/arm-multilib-soft.diff @@ -0,0 +1,27 @@ +# DP: ARM hard/soft float multilib support + +Index: b/src/gcc/config/arm/t-linux-eabi +=================================================================== +--- a/src/gcc/config/arm/t-linux-eabi ++++ b/src/gcc/config/arm/t-linux-eabi +@@ -23,6 +23,20 @@ + MULTILIB_OPTIONS = + MULTILIB_DIRNAMES = + ++ifeq ($(with_float),hard) ++MULTILIB_OPTIONS = mfloat-abi=soft/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float mfloat-abi?soft=mfloat-abi?softfp ++MULTILIB_OSDIRNAMES = arm-linux-gnueabi:arm-linux-gnueabi ../lib:arm-linux-gnueabihf ++else ++MULTILIB_OPTIONS = mfloat-abi=soft/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?soft=msoft-float mfloat-abi?soft=mfloat-abi?softfp ++MULTILIB_OSDIRNAMES = ../lib:arm-linux-gnueabi arm-linux-gnueabihf:arm-linux-gnueabihf ++endif ++ + #MULTILIB_OPTIONS += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te + #MULTILIB_DIRNAMES += fa606te fa626te fmp626 fa726te + #MULTILIB_EXCEPTIONS += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te *mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te* diff --git a/debian/patches/arm-multilib-softfp-cross.diff b/debian/patches/arm-multilib-softfp-cross.diff new file mode 100644 index 0000000..89ed142 --- /dev/null +++ b/debian/patches/arm-multilib-softfp-cross.diff @@ -0,0 +1,27 @@ +# DP: ARM hard/softfp float multilib support + +Index: b/src/gcc/config/arm/t-linux-eabi +=================================================================== +--- a/src/gcc/config/arm/t-linux-eabi 2011-01-03 20:52:22.000000000 +0000 ++++ b/src/gcc/config/arm/t-linux-eabi 2011-08-21 21:08:47.583351817 +0000 +@@ -24,6 +24,20 @@ + MULTILIB_OPTIONS = + MULTILIB_DIRNAMES = + ++ifeq ($(with_float),hard) ++MULTILIB_OPTIONS = mfloat-abi=softfp/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?softfp=msoft-float mfloat-abi?softfp=mfloat-abi?soft ++MULTILIB_OSDIRNAMES = ../libsf:arm-linux-gnueabi ../lib:arm-linux-gnueabihf ++else ++MULTILIB_OPTIONS = mfloat-abi=softfp/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?softfp=msoft-float mfloat-abi?softfp=mfloat-abi?soft ++MULTILIB_OSDIRNAMES = ../lib:arm-linux-gnueabi ../libhf:arm-linux-gnueabihf ++endif ++ + #MULTILIB_OPTIONS += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te + #MULTILIB_DIRNAMES += fa606te fa626te fmp626 fa726te + #MULTILIB_EXCEPTIONS += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te *mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te* diff --git a/debian/patches/arm-multilib-softfp.diff b/debian/patches/arm-multilib-softfp.diff new file mode 100644 index 0000000..f4268da --- /dev/null +++ b/debian/patches/arm-multilib-softfp.diff @@ -0,0 +1,27 @@ +# DP: ARM hard/softfp float multilib support + +Index: b/src/gcc/config/arm/t-linux-eabi +=================================================================== +--- a/src/gcc/config/arm/t-linux-eabi 2011-01-03 20:52:22.000000000 +0000 ++++ b/src/gcc/config/arm/t-linux-eabi 2011-08-21 21:08:47.583351817 +0000 +@@ -24,6 +24,20 @@ + MULTILIB_OPTIONS = + MULTILIB_DIRNAMES = + ++ifeq ($(with_float),hard) ++MULTILIB_OPTIONS = mfloat-abi=softfp/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?softfp=msoft-float mfloat-abi?softfp=mfloat-abi?soft ++MULTILIB_OSDIRNAMES = arm-linux-gnueabi:arm-linux-gnueabi ../lib:arm-linux-gnueabihf ++else ++MULTILIB_OPTIONS = mfloat-abi=softfp/mfloat-abi=hard ++MULTILIB_DIRNAMES = sf hf ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = mfloat-abi?hard=mhard-float mfloat-abi?softfp=msoft-float mfloat-abi?softfp=mfloat-abi?soft ++MULTILIB_OSDIRNAMES = ../lib:arm-linux-gnueabi arm-linux-gnueabihf:arm-linux-gnueabihf ++endif ++ + #MULTILIB_OPTIONS += mcpu=fa606te/mcpu=fa626te/mcpu=fmp626/mcpu=fa726te + #MULTILIB_DIRNAMES += fa606te fa626te fmp626 fa726te + #MULTILIB_EXCEPTIONS += *mthumb/*mcpu=fa606te *mthumb/*mcpu=fa626te *mthumb/*mcpu=fmp626 *mthumb/*mcpu=fa726te* diff --git a/debian/patches/bind_now_when_pie.diff b/debian/patches/bind_now_when_pie.diff new file mode 100644 index 0000000..4fe24fe --- /dev/null +++ b/debian/patches/bind_now_when_pie.diff @@ -0,0 +1,23 @@ +Author: Steve Beattie +Description: enable bind now by default when linking with pie by default + +--- + src/gcc/gcc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -936,7 +936,11 @@ proper position among the other output f + #ifndef LINK_PIE_SPEC + #ifdef HAVE_LD_PIE + #ifndef LD_PIE_SPEC ++#ifdef ACCEL_COMPILER + #define LD_PIE_SPEC "-pie" ++#else ++#define LD_PIE_SPEC "-pie -z now" ++#endif + #endif + #else + #define LD_PIE_SPEC "" diff --git a/debian/patches/bootstrap-no-unneeded-libs.diff b/debian/patches/bootstrap-no-unneeded-libs.diff new file mode 100644 index 0000000..4939110 --- /dev/null +++ b/debian/patches/bootstrap-no-unneeded-libs.diff @@ -0,0 +1,30 @@ +# DP: For bootstrap builds, don't build unneeded libstdc++ things +# DP: (debug library, PCH headers). + +# Please read ada-changes-in-autogen-output.diff about src/Makefile.[def|tpl]. + +--- a/src/Makefile.tpl ++++ b/src/Makefile.tpl +@@ -1060,7 +1060,9 @@ + --target=[+target_alias+] $${srcdiroption} [+ IF prev +]\ + --with-build-libsubdir=$(HOST_SUBDIR) [+ ENDIF prev +]\ + $(STAGE[+id+]_CONFIGURE_FLAGS)[+ IF extra_configure_flags +] \ +- [+extra_configure_flags+][+ ENDIF extra_configure_flags +] ++ [+extra_configure_flags+][+ ENDIF extra_configure_flags +] \ ++ [+ IF bootstrap_configure_flags +][+bootstrap_configure_flags+] \ ++ [+ ENDIF bootstrap_configure_flags +] + @endif [+prefix+][+module+]-bootstrap + [+ ENDFOR bootstrap_stage +] + [+ ENDIF bootstrap +] +--- a/src/Makefile.def ++++ b/src/Makefile.def +@@ -117,7 +117,8 @@ + target_modules = { module= libstdc++-v3; + bootstrap=true; + lib_path=src/.libs; +- raw_cxx=true; }; ++ raw_cxx=true; ++ bootstrap_configure_flags='--disable-libstdcxx-debug --disable-libstdcxx-pch'; }; + target_modules = { module= libmudflap; lib_path=.libs; }; + target_modules = { module= libsanitizer; lib_path=.libs; }; + target_modules = { module= libssp; lib_path=.libs; }; diff --git a/debian/patches/canonical-cpppath.diff b/debian/patches/canonical-cpppath.diff new file mode 100644 index 0000000..0e0090f --- /dev/null +++ b/debian/patches/canonical-cpppath.diff @@ -0,0 +1,36 @@ +# DP: Don't use any relative path names for the standard include paths. + +Index: b/src/gcc/incpath.c +=================================================================== +--- a/src/gcc/incpath.c ++++ b/src/gcc/incpath.c +@@ -171,6 +171,14 @@ add_standard_paths (const char *sysroot, + str = reconcat (str, str, dir_separator_str, + imultiarch, NULL); + } ++ { ++ char *rp = lrealpath (str); ++ if (rp) ++ { ++ free (str); ++ str = rp; ++ } ++ } + add_path (str, SYSTEM, p->cxx_aware, false); + } + } +@@ -245,6 +253,14 @@ add_standard_paths (const char *sysroot, + else + str = reconcat (str, str, dir_separator_str, imultiarch, NULL); + } ++ { ++ char *rp = lrealpath (str); ++ if (rp) ++ { ++ free (str); ++ str = rp; ++ } ++ } + + add_path (str, SYSTEM, p->cxx_aware, false); + } diff --git a/debian/patches/config-ml.diff b/debian/patches/config-ml.diff new file mode 100644 index 0000000..e9631bc --- /dev/null +++ b/debian/patches/config-ml.diff @@ -0,0 +1,54 @@ +# DP: - Disable some biarch libraries for biarch builds. +# DP: - Fix multilib builds on kernels which don't support all multilibs. + +Index: b/src/config-ml.in +=================================================================== +--- a/src/config-ml.in ++++ b/src/config-ml.in +@@ -475,6 +475,25 @@ powerpc*-*-* | rs6000*-*-*) + ;; + esac + ++if [ -z "$biarch_multidir_names" ]; then ++ biarch_multidir_names="libiberty libstdc++-v3 libgfortran libmudflap libssp libffi libobjc libgomp" ++ echo "WARNING: biarch_multidir_names is unset. Use default value:" ++ echo " $biarch_multidir_names" ++fi ++ml_srcbase=`basename $ml_realsrcdir` ++old_multidirs="${multidirs}" ++multidirs="" ++for x in ${old_multidirs}; do ++ case " $x " in ++ " 32 "|" n32 "|" x32 "|" 64 "|" hf "|" sf "|" m4-nofpu ") ++ case "$biarch_multidir_names" in ++ *"$ml_srcbase"*) multidirs="${multidirs} ${x}" ;; ++ esac ++ ;; ++ *) multidirs="${multidirs} ${x}" ;; ++ esac ++done ++ + # Remove extraneous blanks from multidirs. + # Tests like `if [ -n "$multidirs" ]' require it. + multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 's/[ ][ ]*/ /g'` +@@ -878,9 +897,19 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + fi + fi + ++ ml_configure_args= ++ for arg in ${ac_configure_args} ++ do ++ case $arg in ++ *CC=*) ml_configure_args=${ml_config_env} ;; ++ *CXX=*) ml_configure_args=${ml_config_env} ;; ++ *) ;; ++ esac ++ done ++ + if eval ${ml_config_env} ${ml_config_shell} ${ml_recprog} \ + --with-multisubdir=${ml_dir} --with-multisrctop=${multisrctop} \ +- "${ac_configure_args}" ${ml_config_env} ${ml_srcdiroption} ; then ++ "${ac_configure_args}" ${ml_configure_args} ${ml_config_env} ${ml_srcdiroption} ; then + true + else + exit 1 diff --git a/debian/patches/cross-biarch.diff b/debian/patches/cross-biarch.diff new file mode 100644 index 0000000..ed6c7f3 --- /dev/null +++ b/debian/patches/cross-biarch.diff @@ -0,0 +1,82 @@ +# DP: Fix the location of target's libs in cross-build for biarch + +Index: b/src/config-ml.in +=================================================================== +--- a/src/config-ml.in ++++ b/src/config-ml.in +@@ -533,7 +533,13 @@ multi-do: + else \ + if [ -d ../$${dir}/$${lib} ]; then \ + flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \ +- if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) \ ++ libsuffix_="$${dir}"; \ ++ if [ "$${dir}" = "n32" ]; then libsuffix_=32; fi; \ ++ if [ -n "$$($${compiler} -v 2>&1 |grep '^Target: mips')" ] && [ "$${dir}" = "32" ]; then libsuffix_=o32; fi; \ ++ if (cd ../$${dir}/$${lib}; $(MAKE) $(subst \ ++ -B$(build_tooldir)/lib/, \ ++ -B$(build_tooldir)/lib$${libsuffix_}/, \ ++ $(FLAGS_TO_PASS)) \ + CFLAGS="$(CFLAGS) $${flags}" \ + CCASFLAGS="$(CCASFLAGS) $${flags}" \ + FCFLAGS="$(FCFLAGS) $${flags}" \ +@@ -786,6 +792,15 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + GFORTRAN_=$GFORTRAN' ' + GOC_=$GOC' ' + else ++ if [ "${ml_dir}" = "." ]; then ++ FILTER_="s!X\\(.*\\)!\\1!p" ++ elif [ "${ml_dir}" = "n32" ]; then # mips n32 -> lib32 ++ FILTER_="s!X\\(.*\\)/!\\132/!p" ++ elif [ "${ml_dir}" = "32" ] && [ "$(echo ${host} |grep '^mips')" ]; then # mips o32 -> libo32 ++ FILTER_="s!X\\(.*\\)/!\\1o32/!p" ++ else ++ FILTER_="s!X\\(.*\\)/!\\1${ml_dir}/!p" ++ fi + # Create a regular expression that matches any string as long + # as ML_POPDIR. + popdir_rx=`echo "${ML_POPDIR}" | sed 's,.,.,g'` +@@ -794,6 +809,8 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + case $arg in + -[BIL]"${ML_POPDIR}"/*) + CC_="${CC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\1/p"`' ' ;; ++ -B*/lib/) ++ CC_="${CC_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + CC_="${CC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) +@@ -806,6 +823,8 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + case $arg in + -[BIL]"${ML_POPDIR}"/*) + CXX_="${CXX_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ -B*/lib/) ++ CXX_="${CXX_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + CXX_="${CXX_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) +@@ -818,6 +837,8 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + case $arg in + -[BIL]"${ML_POPDIR}"/*) + F77_="${F77_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ -B*/lib/) ++ F77_="${F77_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + F77_="${F77_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) +@@ -842,6 +865,8 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + case $arg in + -[BIL]"${ML_POPDIR}"/*) + GFORTRAN_="${GFORTRAN_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ -B*/lib/) ++ GFORTRAN_="${GFORTRAN_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + GFORTRAN_="${GFORTRAN_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) +@@ -854,6 +879,8 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + case $arg in + -[BIL]"${ML_POPDIR}"/*) + GOC_="${GOC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ -B*/lib/) ++ GOC_="${GOC_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + GOC_="${GOC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) diff --git a/debian/patches/cross-fixes.diff b/debian/patches/cross-fixes.diff new file mode 100644 index 0000000..cfe223f --- /dev/null +++ b/debian/patches/cross-fixes.diff @@ -0,0 +1,81 @@ +# DP: Fix the linker error when creating an xcc for ia64 + +--- + gcc/config/ia64/fde-glibc.c | 3 +++ + gcc/config/ia64/unwind-ia64.c | 3 ++- + gcc/unwind-compat.c | 2 ++ + gcc/unwind-generic.h | 2 ++ + 6 files changed, 14 insertions(+), 1 deletions(-) + +Index: b/src/libgcc/config/ia64/fde-glibc.c +=================================================================== +--- a/src/libgcc/config/ia64/fde-glibc.c ++++ b/src/libgcc/config/ia64/fde-glibc.c +@@ -28,6 +28,7 @@ + #ifndef _GNU_SOURCE + #define _GNU_SOURCE 1 + #endif ++#ifndef inhibit_libc + #include "config.h" + #include + #include +@@ -159,3 +160,5 @@ _Unwind_FindTableEntry (void *pc, unw_wo + + return data.ret; + } ++ ++#endif +Index: b/src/libgcc/config/ia64/unwind-ia64.c +=================================================================== +--- a/src/libgcc/config/ia64/unwind-ia64.c ++++ b/src/libgcc/config/ia64/unwind-ia64.c +@@ -26,6 +26,7 @@ + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . */ + ++#ifndef inhibit_libc + #include "tconfig.h" + #include "tsystem.h" + #include "coretypes.h" +@@ -2466,3 +2467,4 @@ alias (_Unwind_SetIP); + #endif + + #endif ++#endif +Index: b/src/libgcc/unwind-compat.c +=================================================================== +--- a/src/libgcc/unwind-compat.c ++++ b/src/libgcc/unwind-compat.c +@@ -23,6 +23,7 @@ + . */ + + #if defined (USE_GAS_SYMVER) && defined (USE_LIBUNWIND_EXCEPTIONS) ++#ifndef inhibit_libc + #include "tconfig.h" + #include "tsystem.h" + #include "unwind.h" +@@ -207,3 +208,4 @@ _Unwind_SetIP (struct _Unwind_Context *c + } + symver (_Unwind_SetIP, GCC_3.0); + #endif ++#endif +Index: b/src/libgcc/unwind-generic.h +=================================================================== +--- a/src/libgcc/unwind-generic.h ++++ b/src/libgcc/unwind-generic.h +@@ -221,6 +221,7 @@ _Unwind_SjLj_Resume_or_Rethrow (struct _ + compatible with the standard ABI for IA-64, we inline these. */ + + #ifdef __ia64__ ++#ifndef inhibit_libc + static inline _Unwind_Ptr + _Unwind_GetDataRelBase (struct _Unwind_Context *_C) + { +@@ -237,6 +238,7 @@ _Unwind_GetTextRelBase (struct _Unwind_C + + /* @@@ Retrieve the Backing Store Pointer of the given context. */ + extern _Unwind_Word _Unwind_GetBSP (struct _Unwind_Context *); ++#endif /* inhibit_libc */ + #else + extern _Unwind_Ptr _Unwind_GetDataRelBase (struct _Unwind_Context *); + extern _Unwind_Ptr _Unwind_GetTextRelBase (struct _Unwind_Context *); diff --git a/debian/patches/cross-install-location.diff b/debian/patches/cross-install-location.diff new file mode 100644 index 0000000..5e30cba --- /dev/null +++ b/debian/patches/cross-install-location.diff @@ -0,0 +1,378 @@ +Index: b/src/fixincludes/Makefile.in +=================================================================== +--- a/src/fixincludes/Makefile.in ++++ b/src/fixincludes/Makefile.in +@@ -52,9 +52,9 @@ target_noncanonical:=@target_noncanonica + gcc_version := $(shell cat $(srcdir)/../gcc/BASE-VER) + + # Directory in which the compiler finds libraries etc. +-libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version) ++libsubdir = $(libdir)/gcc-cross/$(target_noncanonical)/$(gcc_version) + # Directory in which the compiler finds executables +-libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) ++libexecsubdir = $(libexecdir)/gcc-cross/$(target_noncanonical)/$(gcc_version) + # Where our executable files go + itoolsdir = $(libexecsubdir)/install-tools + # Where our data files go +Index: b/src/libgfortran/Makefile.in +=================================================================== +--- a/src/libgfortran/Makefile.in ++++ b/src/libgfortran/Makefile.in +@@ -604,12 +604,12 @@ libgfortran_la_LDFLAGS = -version-info ` + + libgfortran_la_DEPENDENCIES = $(version_dep) libgfortran.spec $(LIBQUADLIB_DEP) + cafexeclib_LTLIBRARIES = libcaf_single.la +-cafexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR) ++cafexeclibdir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)$(MULTISUBDIR) + libcaf_single_la_SOURCES = caf/single.c + libcaf_single_la_LDFLAGS = -static + libcaf_single_la_DEPENDENCIES = caf/libcaf.h + libcaf_single_la_LINK = $(LINK) $(libcaf_single_la_LDFLAGS) +-@IEEE_SUPPORT_TRUE@fincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude ++@IEEE_SUPPORT_TRUE@fincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude + @IEEE_SUPPORT_TRUE@nodist_finclude_HEADERS = ieee_arithmetic.mod ieee_exceptions.mod ieee_features.mod + AM_CPPFLAGS = -iquote$(srcdir)/io -I$(srcdir)/$(MULTISRCTOP)../gcc \ + -I$(srcdir)/$(MULTISRCTOP)../gcc/config $(LIBQUADINCLUDE) \ +Index: b/src/libgfortran/Makefile.am +=================================================================== +--- a/src/libgfortran/Makefile.am ++++ b/src/libgfortran/Makefile.am +@@ -43,14 +43,14 @@ libgfortran_la_LDFLAGS = -version-info ` + libgfortran_la_DEPENDENCIES = $(version_dep) libgfortran.spec $(LIBQUADLIB_DEP) + + cafexeclib_LTLIBRARIES = libcaf_single.la +-cafexeclibdir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR) ++cafexeclibdir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)$(MULTISUBDIR) + libcaf_single_la_SOURCES = caf/single.c + libcaf_single_la_LDFLAGS = -static + libcaf_single_la_DEPENDENCIES = caf/libcaf.h + libcaf_single_la_LINK = $(LINK) $(libcaf_single_la_LDFLAGS) + + if IEEE_SUPPORT +-fincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude ++fincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude + nodist_finclude_HEADERS = ieee_arithmetic.mod ieee_exceptions.mod ieee_features.mod + endif + +Index: b/src/lto-plugin/Makefile.in +=================================================================== +--- a/src/lto-plugin/Makefile.in ++++ b/src/lto-plugin/Makefile.in +@@ -255,7 +255,7 @@ with_libiberty = @with_libiberty@ + ACLOCAL_AMFLAGS = -I .. -I ../config + AUTOMAKE_OPTIONS = no-dependencies + gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) +-libexecsubdir := $(libexecdir)/gcc/$(real_target_noncanonical)/$(gcc_version)$(accel_dir_suffix) ++libexecsubdir := $(libexecdir)/gcc-cross/$(real_target_noncanonical)/$(gcc_version)$(accel_dir_suffix) + AM_CPPFLAGS = -I$(top_srcdir)/../include $(DEFS) + AM_CFLAGS = @ac_lto_plugin_warn_cflags@ + AM_LDFLAGS = @ac_lto_plugin_ldflags@ +Index: b/src/lto-plugin/Makefile.am +=================================================================== +--- a/src/lto-plugin/Makefile.am ++++ b/src/lto-plugin/Makefile.am +@@ -5,7 +5,7 @@ AUTOMAKE_OPTIONS = no-dependencies + + gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + target_noncanonical := @target_noncanonical@ +-libexecsubdir := $(libexecdir)/gcc/$(real_target_noncanonical)/$(gcc_version)$(accel_dir_suffix) ++libexecsubdir := $(libexecdir)/gcc-cross/$(real_target_noncanonical)/$(gcc_version)$(accel_dir_suffix) + + AM_CPPFLAGS = -I$(top_srcdir)/../include $(DEFS) + AM_CFLAGS = @ac_lto_plugin_warn_cflags@ +Index: b/src/libitm/Makefile.in +=================================================================== +--- a/src/libitm/Makefile.in ++++ b/src/libitm/Makefile.in +@@ -334,8 +334,8 @@ SUBDIRS = testsuite + gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) + abi_version = -fabi-version=4 + search_path = $(addprefix $(top_srcdir)/config/, $(config_path)) $(top_srcdir) +-fincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/finclude +-libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++fincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/finclude ++libsubincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + AM_CPPFLAGS = $(addprefix -I, $(search_path)) + AM_CFLAGS = $(XCFLAGS) + AM_CXXFLAGS = $(XCFLAGS) -std=gnu++0x -funwind-tables -fno-exceptions \ +Index: b/src/libitm/Makefile.am +=================================================================== +--- a/src/libitm/Makefile.am ++++ b/src/libitm/Makefile.am +@@ -11,8 +11,8 @@ abi_version = -fabi-version=4 + config_path = @config_path@ + search_path = $(addprefix $(top_srcdir)/config/, $(config_path)) $(top_srcdir) + +-fincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/finclude +-libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++fincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/finclude ++libsubincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + + vpath % $(strip $(search_path)) + +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -4179,7 +4179,7 @@ process_command (unsigned int decoded_op + GCC_EXEC_PREFIX is typically a directory name with a trailing + / (which is ignored by make_relative_prefix), so append a + program name. */ +- char *tmp_prefix = concat (gcc_exec_prefix, "gcc", NULL); ++ char *tmp_prefix = concat (gcc_exec_prefix, "gcc-cross", NULL); + gcc_libexec_prefix = get_relative_prefix (tmp_prefix, + standard_exec_prefix, + standard_libexec_prefix); +@@ -4205,15 +4205,15 @@ process_command (unsigned int decoded_op + { + int len = strlen (gcc_exec_prefix); + +- if (len > (int) sizeof ("/lib/gcc/") - 1 ++ if (len > (int) sizeof ("/lib/gcc-cross/") - 1 + && (IS_DIR_SEPARATOR (gcc_exec_prefix[len-1]))) + { +- temp = gcc_exec_prefix + len - sizeof ("/lib/gcc/") + 1; ++ temp = gcc_exec_prefix + len - sizeof ("/lib/gcc-cross/") + 1; + if (IS_DIR_SEPARATOR (*temp) + && filename_ncmp (temp + 1, "lib", 3) == 0 + && IS_DIR_SEPARATOR (temp[4]) +- && filename_ncmp (temp + 5, "gcc", 3) == 0) +- len -= sizeof ("/lib/gcc/") - 1; ++ && filename_ncmp (temp + 5, "gcc-cross", 3) == 0) ++ len -= sizeof ("/lib/gcc-cross/") - 1; + } + + set_std_prefix (gcc_exec_prefix, len); +Index: b/src/gcc/Makefile.in +=================================================================== +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -592,9 +592,9 @@ libexecdir = @libexecdir@ + # -------- + + # Directory in which the compiler finds libraries etc. +-libsubdir = $(libdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) ++libsubdir = $(libdir)/gcc-cross/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) + # Directory in which the compiler finds executables +-libexecsubdir = $(libexecdir)/gcc/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) ++libexecsubdir = $(libexecdir)/gcc-cross/$(real_target_noncanonical)/$(version)$(accel_dir_suffix) + # Directory in which all plugin resources are installed + plugin_resourcesdir = $(libsubdir)/plugin + # Directory in which plugin headers are installed +@@ -2017,8 +2017,8 @@ prefix.o: $(FULLVER) + + DRIVER_DEFINES = \ + -DSTANDARD_STARTFILE_PREFIX=\"$(unlibsubdir)/\" \ +- -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \ +- -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc/\" \ ++ -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc-cross/\" \ ++ -DSTANDARD_LIBEXEC_PREFIX=\"$(libexecdir)/gcc-cross/\" \ + -DDEFAULT_TARGET_VERSION=\"$(version)\" \ + -DDEFAULT_REAL_TARGET_MACHINE=\"$(real_target_noncanonical)\" \ + -DDEFAULT_TARGET_MACHINE=\"$(target_noncanonical)\" \ +@@ -2671,7 +2671,7 @@ PREPROCESSOR_DEFINES = \ + -DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \ + -DNATIVE_SYSTEM_HEADER_DIR=\"$(NATIVE_SYSTEM_HEADER_DIR)\" \ + -DPREFIX=\"$(prefix)/\" \ +- -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \ ++ -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc-cross/\" \ + @TARGET_SYSTEM_ROOT_DEFINE@ + + CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(FULLVER_s) +Index: b/src/libssp/Makefile.in +=================================================================== +--- a/src/libssp/Makefile.in ++++ b/src/libssp/Makefile.in +@@ -287,7 +287,7 @@ gcc_version := $(shell cat $(top_srcdir) + @LIBSSP_USE_SYMVER_SUN_TRUE@@LIBSSP_USE_SYMVER_TRUE@version_dep = ssp.map-sun + AM_CFLAGS = -Wall + toolexeclib_LTLIBRARIES = libssp.la libssp_nonshared.la +-libsubincludedir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include ++libsubincludedir = $(libdir)/gcc-cross/$(target_noncanonical)/$(gcc_version)/include + nobase_libsubinclude_HEADERS = ssp/ssp.h ssp/string.h ssp/stdio.h ssp/unistd.h + libssp_la_SOURCES = \ + ssp.c gets-chk.c memcpy-chk.c memmove-chk.c mempcpy-chk.c \ +Index: b/src/libssp/Makefile.am +=================================================================== +--- a/src/libssp/Makefile.am ++++ b/src/libssp/Makefile.am +@@ -39,7 +39,7 @@ AM_CFLAGS = -Wall + toolexeclib_LTLIBRARIES = libssp.la libssp_nonshared.la + + target_noncanonical = @target_noncanonical@ +-libsubincludedir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/include ++libsubincludedir = $(libdir)/gcc-cross/$(target_noncanonical)/$(gcc_version)/include + nobase_libsubinclude_HEADERS = ssp/ssp.h ssp/string.h ssp/stdio.h ssp/unistd.h + + libssp_la_SOURCES = \ +Index: b/src/libquadmath/Makefile.in +=================================================================== +--- a/src/libquadmath/Makefile.in ++++ b/src/libquadmath/Makefile.in +@@ -354,7 +354,7 @@ AUTOMAKE_OPTIONS = 1.8 foreign + + @BUILD_LIBQUADMATH_TRUE@libquadmath_la_DEPENDENCIES = $(version_dep) $(libquadmath_la_LIBADD) + @BUILD_LIBQUADMATH_TRUE@nodist_libsubinclude_HEADERS = quadmath.h quadmath_weak.h +-@BUILD_LIBQUADMATH_TRUE@libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++@BUILD_LIBQUADMATH_TRUE@libsubincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + @BUILD_LIBQUADMATH_TRUE@libquadmath_la_SOURCES = \ + @BUILD_LIBQUADMATH_TRUE@ math/x2y2m1q.c math/isinf_nsq.c math/acoshq.c math/fmodq.c \ + @BUILD_LIBQUADMATH_TRUE@ math/acosq.c math/frexpq.c \ +Index: b/src/libquadmath/Makefile.am +=================================================================== +--- a/src/libquadmath/Makefile.am ++++ b/src/libquadmath/Makefile.am +@@ -41,7 +41,7 @@ libquadmath_la_LDFLAGS = -version-info ` + libquadmath_la_DEPENDENCIES = $(version_dep) $(libquadmath_la_LIBADD) + + nodist_libsubinclude_HEADERS = quadmath.h quadmath_weak.h +-libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++libsubincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + + libquadmath_la_SOURCES = \ + math/x2y2m1q.c math/isinf_nsq.c math/acoshq.c math/fmodq.c \ +Index: b/src/libobjc/Makefile.in +=================================================================== +--- a/src/libobjc/Makefile.in ++++ b/src/libobjc/Makefile.in +@@ -50,7 +50,7 @@ top_builddir = . + -include ../boehm-gc/threads.mk + + libdir = $(exec_prefix)/lib +-libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version) ++libsubdir = $(libdir)/gcc-cross/$(target_noncanonical)/$(gcc_version) + + # Multilib support variables. + MULTISRCTOP = +Index: b/src/libada/Makefile.in +=================================================================== +--- a/src/libada/Makefile.in ++++ b/src/libada/Makefile.in +@@ -68,7 +68,7 @@ GCC_DIR=$(MULTIBUILDTOP)../../$(host_sub + + target_noncanonical:=@target_noncanonical@ + version := $(shell @get_gcc_base_ver@ $(srcdir)/../gcc/BASE-VER) +-libsubdir := $(libdir)/gcc/$(target_noncanonical)/$(version)$(MULTISUBDIR) ++libsubdir := $(libdir)/gcc-cross/$(target_noncanonical)/$(version)$(MULTISUBDIR) + ADA_RTS_DIR=$(GCC_DIR)/ada/rts$(subst /,_,$(MULTISUBDIR)) + ADA_RTS_SUBDIR=./rts$(subst /,_,$(MULTISUBDIR)) + +Index: b/src/libgomp/Makefile.in +=================================================================== +--- a/src/libgomp/Makefile.in ++++ b/src/libgomp/Makefile.in +@@ -386,8 +386,8 @@ gcc_version := $(shell cat $(top_srcdir) + search_path = $(addprefix $(top_srcdir)/config/, $(config_path)) $(top_srcdir) \ + $(top_srcdir)/../include + +-fincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude +-libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++fincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude ++libsubincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + AM_CPPFLAGS = $(addprefix -I, $(search_path)) + AM_CFLAGS = $(XCFLAGS) + AM_LDFLAGS = $(XLDFLAGS) $(SECTION_LDFLAGS) $(OPT_LDFLAGS) +Index: b/src/libgomp/Makefile.am +=================================================================== +--- a/src/libgomp/Makefile.am ++++ b/src/libgomp/Makefile.am +@@ -10,8 +10,8 @@ config_path = @config_path@ + search_path = $(addprefix $(top_srcdir)/config/, $(config_path)) $(top_srcdir) \ + $(top_srcdir)/../include + +-fincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude +-libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++fincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/finclude ++libsubincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + + vpath % $(strip $(search_path)) + +Index: b/src/libgcc/Makefile.in +=================================================================== +--- a/src/libgcc/Makefile.in ++++ b/src/libgcc/Makefile.in +@@ -186,7 +186,7 @@ STRIP = @STRIP@ + STRIP_FOR_TARGET = $(STRIP) + + # Directory in which the compiler finds libraries etc. +-libsubdir = $(libdir)/gcc/$(real_host_noncanonical)/$(version)@accel_dir_suffix@ ++libsubdir = $(libdir)/gcc-cross/$(real_host_noncanonical)/$(version)@accel_dir_suffix@ + # Used to install the shared libgcc. + slibdir = @slibdir@ + # Maybe used for DLLs on Windows targets. +Index: b/src/libffi/include/Makefile.am +=================================================================== +--- a/src/libffi/include/Makefile.am ++++ b/src/libffi/include/Makefile.am +@@ -8,6 +8,6 @@ EXTRA_DIST=ffi.h.in + + # Where generated headers like ffitarget.h get installed. + gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) +-toollibffidir := $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++toollibffidir := $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + + toollibffi_HEADERS = ffi.h ffitarget.h +Index: b/src/libffi/include/Makefile.in +=================================================================== +--- a/src/libffi/include/Makefile.in ++++ b/src/libffi/include/Makefile.in +@@ -251,7 +251,7 @@ EXTRA_DIST = ffi.h.in + + # Where generated headers like ffitarget.h get installed. + gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER) +-toollibffidir := $(libdir)/gcc/$(target_alias)/$(gcc_version)/include ++toollibffidir := $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include + toollibffi_HEADERS = ffi.h ffitarget.h + all: all-am + +Index: b/src/libcc1/Makefile.am +=================================================================== +--- a/src/libcc1/Makefile.am ++++ b/src/libcc1/Makefile.am +@@ -35,7 +35,7 @@ libiberty = $(if $(wildcard $(libiberty_ + $(Wc)$(libiberty_normal))) + libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) + +-plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin ++plugindir = $(libdir)/gcc-cross/$(target_noncanonical)/$(gcc_version)/plugin + cc1libdir = $(libdir)/$(libsuffix) + + if ENABLE_PLUGIN +Index: b/src/libcc1/Makefile.in +=================================================================== +--- a/src/libcc1/Makefile.in ++++ b/src/libcc1/Makefile.in +@@ -290,7 +290,7 @@ libiberty = $(if $(wildcard $(libiberty_ + $(Wc)$(libiberty_normal))) + + libiberty_dep = $(patsubst $(Wc)%,%,$(libiberty)) +-plugindir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version)/plugin ++plugindir = $(libdir)/gcc-cross/$(target_noncanonical)/$(gcc_version)/plugin + cc1libdir = $(libdir)/$(libsuffix) + @ENABLE_PLUGIN_TRUE@plugin_LTLIBRARIES = libcc1plugin.la + @ENABLE_PLUGIN_TRUE@cc1lib_LTLIBRARIES = libcc1.la +Index: b/src/libsanitizer/Makefile.am +=================================================================== +--- a/src/libsanitizer/Makefile.am ++++ b/src/libsanitizer/Makefile.am +@@ -1,6 +1,6 @@ + ACLOCAL_AMFLAGS = -I .. -I ../config + +-sanincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include/sanitizer ++sanincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include/sanitizer + + nodist_saninclude_HEADERS = + +Index: b/src/libsanitizer/Makefile.in +=================================================================== +--- a/src/libsanitizer/Makefile.in ++++ b/src/libsanitizer/Makefile.in +@@ -285,7 +285,7 @@ top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + ACLOCAL_AMFLAGS = -I .. -I ../config +-sanincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include/sanitizer ++sanincludedir = $(libdir)/gcc-cross/$(target_alias)/$(gcc_version)/include/sanitizer + nodist_saninclude_HEADERS = $(am__append_1) + @SANITIZER_SUPPORTED_TRUE@SUBDIRS = sanitizer_common $(am__append_2) \ + @SANITIZER_SUPPORTED_TRUE@ $(am__append_3) lsan asan ubsan \ diff --git a/debian/patches/cross-no-locale-include.diff b/debian/patches/cross-no-locale-include.diff new file mode 100644 index 0000000..7b7c18a --- /dev/null +++ b/debian/patches/cross-no-locale-include.diff @@ -0,0 +1,17 @@ +# DP: Don't add /usr/local/include for cross compilers. Assume that +# DP: /usr/include is ready for multiarch, but not /usr/local/include. + +--- a/src/gcc/cppdefault.c ++++ b/src/gcc/cppdefault.c +@@ -66,8 +66,11 @@ + #ifdef LOCAL_INCLUDE_DIR + /* /usr/local/include comes before the fixincluded header files. */ + { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, ++#if 0 ++ /* Unsafe to assume that /usr/local/include is ready for multiarch. */ + { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 }, + #endif ++#endif + #ifdef PREFIX_INCLUDE_DIR + { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 }, + #endif diff --git a/debian/patches/disable-gdc-tests.diff b/debian/patches/disable-gdc-tests.diff new file mode 100644 index 0000000..ef9e21c --- /dev/null +++ b/debian/patches/disable-gdc-tests.diff @@ -0,0 +1,19 @@ +# DP: Disable D tests, hang on many buildds + +Index: b/src/gcc/d/Make-lang.in +=================================================================== +--- a/src/gcc/d/Make-lang.in ++++ b/src/gcc/d/Make-lang.in +@@ -148,9 +148,9 @@ d.srcman: doc/gdc.1 + # check targets. However, our DejaGNU framework requires 'check-gdc' as its + # entry point. We feed the former to the latter here. + check-d: check-gdc +-lang_checks += check-gdc +-lang_checks_parallelized += check-gdc +-check_gdc_parallelize = 10 ++#lang_checks += check-gdc ++#lang_checks_parallelized += check-gdc ++#check_gdc_parallelize = 10 + + # Install hooks. + diff --git a/debian/patches/g++-multiarch-incdir.diff b/debian/patches/g++-multiarch-incdir.diff new file mode 100644 index 0000000..5f463fa --- /dev/null +++ b/debian/patches/g++-multiarch-incdir.diff @@ -0,0 +1,119 @@ +# DP: Use /usr/include//c++/4.x as the include directory +# DP: for host dependent c++ header files. + +Index: b/src/libstdc++-v3/include/Makefile.am +=================================================================== +--- a/src/libstdc++-v3/include/Makefile.am ++++ b/src/libstdc++-v3/include/Makefile.am +@@ -924,7 +924,7 @@ endif + + host_srcdir = ${glibcxx_srcdir}/$(OS_INC_SRCDIR) + host_builddir = ./${host_alias}/bits +-host_installdir = ${gxx_include_dir}/${host_alias}$(MULTISUBDIR)/bits ++host_installdir = $(if $(shell $(CC) -print-multiarch),/usr/include/$(shell $(filter-out -m%,$(CC)) -print-multiarch)/c++/$(notdir ${gxx_include_dir})$(MULTISUBDIR)/bits,${gxx_include_dir}/${default_host_alias}$(MULTISUBDIR)/bits) + host_headers = \ + ${host_srcdir}/ctype_base.h \ + ${host_srcdir}/ctype_inline.h \ +Index: b/src/libstdc++-v3/include/Makefile.in +=================================================================== +--- a/src/libstdc++-v3/include/Makefile.in ++++ b/src/libstdc++-v3/include/Makefile.in +@@ -1209,7 +1209,7 @@ profile_impl_headers = \ + @GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE@c_compatibility_headers_extra = ${c_compatibility_headers} + host_srcdir = ${glibcxx_srcdir}/$(OS_INC_SRCDIR) + host_builddir = ./${host_alias}/bits +-host_installdir = ${gxx_include_dir}/${host_alias}$(MULTISUBDIR)/bits ++host_installdir = $(if $(shell $(CC) -print-multiarch),/usr/include/$(shell $(filter-out -m%,$(CC)) -print-multiarch)/c++/$(notdir ${gxx_include_dir})$(MULTISUBDIR)/bits,${gxx_include_dir}/${default_host_alias}$(MULTISUBDIR)/bits) + host_headers = \ + ${host_srcdir}/ctype_base.h \ + ${host_srcdir}/ctype_inline.h \ +Index: b/src/gcc/Makefile.in +=================================================================== +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -1150,6 +1150,7 @@ FLAGS_TO_PASS = \ + "prefix=$(prefix)" \ + "local_prefix=$(local_prefix)" \ + "gxx_include_dir=$(gcc_gxx_include_dir)" \ ++ "gxx_tool_include_dir=$(gcc_gxx_tool_include_dir)" \ + "build_tooldir=$(build_tooldir)" \ + "gcc_tooldir=$(gcc_tooldir)" \ + "bindir=$(bindir)" \ +@@ -1681,6 +1682,14 @@ ifneq ($(xmake_file),) + include $(xmake_file) + endif + ++# Directory in which the compiler finds target-dependent g++ includes. ++ifneq ($(call if_multiarch,non-empty),) ++ gcc_gxx_tool_include_dir = $(libsubdir)/$(libsubdir_to_prefix)include/$(MULTIARCH_DIRNAME)/c++/$(BASEVER_c) ++else ++ gcc_gxx_tool_include_dir = $(gcc_gxx_include_dir)/$(target_noncanonical) ++endif ++ ++ + # all-tree.def includes all the tree.def files. + all-tree.def: s-alltree; @true + s-alltree: Makefile +@@ -2768,7 +2777,7 @@ PREPROCESSOR_DEFINES = \ + -DFIXED_INCLUDE_DIR=\"$(libsubdir)/include-fixed\" \ + -DGPLUSPLUS_INCLUDE_DIR=\"$(gcc_gxx_include_dir)\" \ + -DGPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT=$(gcc_gxx_include_dir_add_sysroot) \ +- -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/$(target_noncanonical)\" \ ++ -DGPLUSPLUS_TOOL_INCLUDE_DIR=\"$(gcc_gxx_tool_include_dir)\" \ + -DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \ + -DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \ + -DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \ +Index: b/src/gcc/cppdefault.c +=================================================================== +--- a/src/gcc/cppdefault.c ++++ b/src/gcc/cppdefault.c +@@ -49,6 +49,8 @@ const struct default_include cpp_include + /* Pick up GNU C++ target-dependent include files. */ + { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, + GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, ++ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, ++ GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 2 }, + #endif + #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR + /* Pick up GNU C++ backward and deprecated include files. */ +Index: b/src/gcc/incpath.c +=================================================================== +--- a/src/gcc/incpath.c ++++ b/src/gcc/incpath.c +@@ -158,6 +158,18 @@ add_standard_paths (const char *sysroot, + } + str = reconcat (str, str, dir_separator_str, + imultiarch, NULL); ++ if (p->cplusplus && strstr (str, "/c++/")) ++ { ++ char *suffix = strstr (str, "/c++/"); ++ *suffix++ = '\0'; ++ suffix = xstrdup (suffix); ++ str = reconcat (str, str, dir_separator_str, ++ imultiarch, ++ dir_separator_str, suffix, NULL); ++ } ++ else ++ str = reconcat (str, str, dir_separator_str, ++ imultiarch, NULL); + } + add_path (str, SYSTEM, p->cxx_aware, false); + } +@@ -222,7 +234,16 @@ add_standard_paths (const char *sysroot, + free (str); + continue; + } +- str = reconcat (str, str, dir_separator_str, imultiarch, NULL); ++ if (p->cplusplus && strstr (str, "/c++/")) ++ { ++ char *suffix = strstr (str, "/c++/"); ++ *suffix++ = '\0'; ++ suffix = xstrdup (suffix); ++ str = reconcat (str, str, dir_separator_str, imultiarch, ++ dir_separator_str, suffix, NULL); ++ } ++ else ++ str = reconcat (str, str, dir_separator_str, imultiarch, NULL); + } + + add_path (str, SYSTEM, p->cxx_aware, false); diff --git a/debian/patches/gcc-as-needed-gold.diff b/debian/patches/gcc-as-needed-gold.diff new file mode 100644 index 0000000..fb3e57f --- /dev/null +++ b/debian/patches/gcc-as-needed-gold.diff @@ -0,0 +1,17 @@ +# DP: Use --push-state/--pop-state for gold as well when linking libtsan. + +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -700,10 +700,10 @@ + #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 diff --git a/debian/patches/gcc-as-needed.diff b/debian/patches/gcc-as-needed.diff new file mode 100644 index 0000000..04bb3b3 --- /dev/null +++ b/debian/patches/gcc-as-needed.diff @@ -0,0 +1,183 @@ +# DP: On linux targets pass --as-needed by default to the linker, but always +# DP: link the sanitizer libraries with --no-as-needed. + +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -568,8 +568,11 @@ proper position among the other output f + #ifdef LIBTSAN_EARLY_SPEC + #define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS + #elif defined(HAVE_LD_STATIC_DYNAMIC) +-#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION \ +- "} -ltsan %{static-libtsan:" LD_DYNAMIC_OPTION "}" \ ++#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \ ++ " %{!static-libtsan:%{!fuse-ld=gold:--push-state }--no-as-needed}" \ ++ " -ltsan " \ ++ " %{static-libtsan:" LD_DYNAMIC_OPTION "}" \ ++ " %{!static-libtsan:%{fuse-ld=gold:--as-needed;:--pop-state}}" \ + STATIC_LIBTSAN_LIBS + #else + #define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS +--- a/src/gcc/config/gnu-user.h ++++ b/src/gcc/config/gnu-user.h +@@ -124,13 +124,13 @@ + #define LIBASAN_EARLY_SPEC "%{!shared:libasan_preinit%O%s} " \ + "%{static-libasan:%{!shared:" \ + LD_STATIC_OPTION " --whole-archive -lasan --no-whole-archive " \ +- LD_DYNAMIC_OPTION "}}%{!static-libasan:-lasan}" ++ LD_DYNAMIC_OPTION "}}%{!static-libasan:%{!fuse-ld=gold:--push-state} --no-as-needed -lasan %{fuse-ld=gold:--as-needed;:--pop-state}}" + #undef LIBTSAN_EARLY_SPEC + #define LIBTSAN_EARLY_SPEC "%{static-libtsan:%{!shared:" \ + LD_STATIC_OPTION " --whole-archive -ltsan --no-whole-archive " \ +- LD_DYNAMIC_OPTION "}}%{!static-libtsan:-ltsan}" ++ LD_DYNAMIC_OPTION "}}%{!static-libtsan:%{!fuse-ld=gold:--push-state} --no-as-needed -ltsan %{fuse-ld=gold:--as-needed;:--pop-state}}" + #undef LIBLSAN_EARLY_SPEC + #define LIBLSAN_EARLY_SPEC "%{static-liblsan:%{!shared:" \ + LD_STATIC_OPTION " --whole-archive -llsan --no-whole-archive " \ +- LD_DYNAMIC_OPTION "}}%{!static-liblsan:-llsan}" ++ LD_DYNAMIC_OPTION "}}%{!static-liblsan:%{!fuse-ld=gold:--push-state} --no-as-needed -llsan %{fuse-ld=gold:--as-needed;:--pop-state}}" + #endif +Index: b/src/gcc/config/aarch64/aarch64-linux.h +=================================================================== +--- a/src/gcc/config/aarch64/aarch64-linux.h ++++ b/src/gcc/config/aarch64/aarch64-linux.h +@@ -36,6 +36,7 @@ + + #define LINUX_TARGET_LINK_SPEC "%{h*} \ + --hash-style=gnu \ ++ --as-needed \ + %{static:-Bstatic} \ + %{shared:-shared} \ + %{symbolic:-Bsymbolic} \ +Index: b/src/gcc/config/ia64/linux.h +=================================================================== +--- a/src/gcc/config/ia64/linux.h ++++ b/src/gcc/config/ia64/linux.h +@@ -58,7 +58,7 @@ do { \ + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC " --hash-style=gnu \ ++#define LINK_SPEC " --hash-style=gnu --as-needed \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/sparc/linux.h +=================================================================== +--- a/src/gcc/config/sparc/linux.h ++++ b/src/gcc/config/sparc/linux.h +@@ -86,7 +86,7 @@ extern const char *host_detect_local_cpu + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC "-m elf32_sparc --hash-style=gnu %{shared:-shared} \ ++#define LINK_SPEC "-m elf32_sparc --hash-style=gnu --as-needed %{shared:-shared} \ + %{!mno-relax:%{!r:-relax}} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/s390/linux.h +=================================================================== +--- a/src/gcc/config/s390/linux.h ++++ b/src/gcc/config/s390/linux.h +@@ -65,7 +65,7 @@ along with GCC; see the file COPYING3. + + #undef LINK_SPEC + #define LINK_SPEC \ +- "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=gnu \ ++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=gnu --as-needed \ + %{shared:-shared} \ + %{!shared: \ + %{static:-static} \ +Index: b/src/gcc/config/rs6000/linux64.h +=================================================================== +--- a/src/gcc/config/rs6000/linux64.h ++++ b/src/gcc/config/rs6000/linux64.h +@@ -466,12 +466,12 @@ extern int dot_symbols; + " -m elf64ppc") + #endif + +-#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --hash-style=gnu %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --hash-style=gnu --as-needed %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}} \ + %(link_os_extra_spec32)" + +-#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --hash-style=gnu %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --hash-style=gnu --as-needed %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}} \ + %(link_os_extra_spec64)" +Index: b/src/gcc/config/rs6000/sysv4.h +=================================================================== +--- a/src/gcc/config/rs6000/sysv4.h ++++ b/src/gcc/config/rs6000/sysv4.h +@@ -784,7 +784,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF + CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \ + MUSL_DYNAMIC_LINKER) + +-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=gnu %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=gnu --as-needed %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}" + +Index: b/src/gcc/config/i386/gnu-user64.h +=================================================================== +--- a/src/gcc/config/i386/gnu-user64.h ++++ b/src/gcc/config/i386/gnu-user64.h +@@ -57,6 +57,7 @@ see the files COPYING3 and COPYING.RUNTI + %{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \ + %{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \ + --hash-style=gnu \ ++ --as-needed \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/i386/gnu-user.h +=================================================================== +--- a/src/gcc/config/i386/gnu-user.h ++++ b/src/gcc/config/i386/gnu-user.h +@@ -74,7 +74,7 @@ along with GCC; see the file COPYING3. + { "link_emulation", GNU_USER_LINK_EMULATION },\ + { "dynamic_linker", GNU_USER_DYNAMIC_LINKER } + +-#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --hash-style=gnu %{shared:-shared} \ ++#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --hash-style=gnu --as-needed %{shared:-shared} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +Index: b/src/gcc/config/alpha/linux-elf.h +=================================================================== +--- a/src/gcc/config/alpha/linux-elf.h ++++ b/src/gcc/config/alpha/linux-elf.h +@@ -37,7 +37,7 @@ along with GCC; see the file COPYING3. + + #define ELF_DYNAMIC_LINKER GNU_USER_DYNAMIC_LINKER + +-#define LINK_SPEC "-m elf64alpha --hash-style=gnu %{G*} %{relax:-relax} \ ++#define LINK_SPEC "-m elf64alpha --hash-style=gnu --as-needed %{G*} %{relax:-relax} \ + %{O*:-O3} %{!O*:-O1} \ + %{shared:-shared} \ + %{!shared: \ +Index: b/src/gcc/config/arm/linux-elf.h +=================================================================== +--- a/src/gcc/config/arm/linux-elf.h ++++ b/src/gcc/config/arm/linux-elf.h +@@ -73,6 +73,7 @@ + %{!shared:-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \ + -X \ + --hash-style=gnu \ ++ --as-needed \ + %{mbig-endian:-EB} %{mlittle-endian:-EL}" \ + SUBTARGET_EXTRA_LINK_SPEC + +Index: b/src/gcc/config/mips/gnu-user.h +=================================================================== +--- a/src/gcc/config/mips/gnu-user.h ++++ b/src/gcc/config/mips/gnu-user.h +@@ -55,6 +55,7 @@ along with GCC; see the file COPYING3. + #undef GNU_USER_TARGET_LINK_SPEC + #define GNU_USER_TARGET_LINK_SPEC "\ + %{G*} %{EB} %{EL} %{mips*} %{shared} \ ++ -as-needed \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ diff --git a/debian/patches/gcc-auto-build.diff b/debian/patches/gcc-auto-build.diff new file mode 100644 index 0000000..c13e2d1 --- /dev/null +++ b/debian/patches/gcc-auto-build.diff @@ -0,0 +1,15 @@ +# DP: Fix cross building a native compiler. + +Index: b/src/gcc/configure.ac +=================================================================== +--- a/src/gcc/configure.ac ++++ b/src/gcc/configure.ac +@@ -1705,7 +1705,7 @@ else + # Clearing GMPINC is necessary to prevent host headers being + # used by the build compiler. Defining GENERATOR_FILE stops + # system.h from including gmp.h. +- CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \ ++ CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD} -DGENERATOR_FILE" \ + CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \ + LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \ + GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \ diff --git a/debian/patches/gcc-d-lang.diff b/debian/patches/gcc-d-lang.diff new file mode 100644 index 0000000..a214841 --- /dev/null +++ b/debian/patches/gcc-d-lang.diff @@ -0,0 +1,251 @@ +# DP: Add D options and specs for the gcc driver. + +Index: b/src/gcc/d/lang-specs.h +=================================================================== +--- /dev/null ++++ b/src/gcc/d/lang-specs.h +@@ -0,0 +1,31 @@ ++/* lang-specs.h -- D frontend for GCC. ++ Copyright (C) 2011, 2012 Free Software Foundation, Inc. ++ ++ GCC is free software; you can redistribute it and/or modify it under ++ the terms of the GNU General Public License as published by the Free ++ Software Foundation; either version 3, or (at your option) any later ++ version. ++ ++ GCC is distributed in the hope that it will be useful, but WITHOUT ANY ++ WARRANTY; without even the implied warranty of MERCHANTABILITY or ++ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++ for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with GCC; see the file COPYING3. If not see ++ . ++*/ ++ ++/* %{!M} probably doesn't make sense because we would need ++ to do that -- -MD and -MMD doesn't sound like a plan for D.... */ ++ ++{".d", "@d", 0, 1, 0 }, ++{".D", "@d", 0, 1, 0 }, ++{".dd", "@d", 0, 1, 0 }, ++{".DD", "@d", 0, 1, 0 }, ++{".di", "@d", 0, 1, 0 }, ++{".DI", "@d", 0, 1, 0 }, ++{"@d", ++ "%{!E:cc1d %i %(cc1_options) %(cc1d) %I %{nostdinc*} %{+e*} %{I*} %{J*}\ ++ %{M} %{MM} %{!fsyntax-only:%(invoke_as)}}", 0, 1, 0 }, ++ +Index: b/src/gcc/d/lang.opt +=================================================================== +--- /dev/null ++++ b/src/gcc/d/lang.opt +@@ -0,0 +1,208 @@ ++; GDC -- D front-end for GCC ++; Copyright (C) 2011, 2012 Free Software Foundation, Inc. ++; ++; This program is free software; you can redistribute it and/or modify ++; it under the terms of the GNU General Public License as published by ++; the Free Software Foundation; either version 2 of the License, or ++; (at your option) any later version. ++; ++; This program is distributed in the hope that it will be useful, ++; but WITHOUT ANY WARRANTY; without even the implied warranty of ++; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++; GNU General Public License for more details. ++; ++; You should have received a copy of the GNU General Public License ++; along with GCC; see the file COPYING3. If not see ++; . ++ ++Language ++D ++ ++debuglib= ++Driver Joined ++Debug library to use instead of phobos ++ ++defaultlib= ++Driver Joined ++Default library to use instead of phobos ++ ++fassert ++D ++Permit the use of the assert keyword ++ ++; For D: defaults to on ++fbounds-check ++D ++Generate code to check bounds before indexing arrays ++ ++fbuiltin ++D Var(flag_no_builtin, 0) ++Recognize built-in functions ++ ++fdebug ++D ++Compile in debug code ++ ++fdebug= ++D Joined RejectNegative ++-fdebug,-fdebug=,-fdebug= Compile in debug code, code <= level, or code identified by ident ++ ++fdeps= ++D Joined RejectNegative ++-fdeps= Write module dependencies to filename ++ ++fdoc ++D ++Generate documentation ++ ++fdoc-dir= ++D Joined RejectNegative ++-fdoc-dir= Write documentation file to docdir directory ++ ++fdoc-file= ++D Joined RejectNegative ++-fdoc-file= Write documentation file to filename ++ ++fdoc-inc= ++D Joined RejectNegative ++-fdoc-inc= Include a Ddoc macro file ++ ++fdump-source ++D RejectNegative ++Dump decoded UTF-8 text and source from HTML ++ ++fd-verbose ++D ++Print information about D language processing to stdout ++ ++fd-vtls ++D ++List all variables going into thread local storage ++ ++femit-templates ++D ++-femit-templates Emit templates code and data even if the linker cannot merge multiple copies ++ ++fignore-unknown-pragmas ++D ++Ignore unsupported pragmas ++ ++fin ++D ++Generate runtime code for in() contracts ++ ++fintfc ++Generate D interface files ++ ++fintfc-dir= ++D Joined RejectNegative ++-fintfc-dir= Write D interface files to directory ++ ++fintfc-file= ++D Joined RejectNegative ++-fintfc-file= Write D interface file to ++ ++finvariants ++D ++Generate runtime code for invariant()'s ++ ++fmake-deps= ++D Joined RejectNegative ++-fmake-deps= Write dependency output to the given file ++ ++fmake-mdeps= ++D Joined RejectNegative ++Like -fmake-deps= but ignore system modules ++ ++femit-moduleinfo ++D ++Generate ModuleInfo struct for output module ++ ++fonly= ++D Joined RejectNegative ++Process all modules specified on the command line, but only generate code for the module specified by the argument ++ ++fout ++D ++Generate runtime code for out() contracts ++ ++fproperty ++D ++Enforce property syntax ++ ++frelease ++D ++Compile release version ++ ++fsplit-dynamic-arrays ++D Var(flag_split_darrays) ++Split dynamic arrays into length and pointer when passing to functions ++ ++funittest ++D ++Compile in unittest code ++ ++fversion= ++D Joined RejectNegative ++-fversion= Compile in version code >= or identified by ++ ++fXf= ++D Joined RejectNegative ++-fXf= Write JSON file to ++ ++imultilib ++D Joined Separate ++-imultilib Set to be the multilib include subdirectory ++ ++iprefix ++D Joined Separate ++-iprefix Specify as a prefix for next two options ++ ++isysroot ++D Joined Separate ++-isysroot Set to be the system root directory ++ ++isystem ++D Joined Separate ++-isystem Add to the start of the system include path ++ ++I ++D Joined Separate ++-I Add to the end of the main include path ++ ++J ++D Joined Separate ++-J Put MODULE files in 'directory' ++ ++nophoboslib ++Driver ++Do not link the standard D library in the compilation ++ ++nostdinc ++D ++Do not search standard system include directories (those specified with -isystem will still be used) ++ ++static-libphobos ++Driver ++Link the standard D library statically in the compilation ++ ++Wall ++D ++; Documented in c.opt ++ ++Wcast-result ++D Warning Var(warn_cast_result) ++Warn about casts that will produce a null or nil result ++ ++Wdeprecated ++D ++; Documented in c.opt ++ ++Werror ++D ++; Documented in common.opt ++ ++Wunknown-pragmas ++D ++; Documented in c.opt ++ diff --git a/debian/patches/gcc-default-format-security.diff b/debian/patches/gcc-default-format-security.diff new file mode 100644 index 0000000..1e15979 --- /dev/null +++ b/debian/patches/gcc-default-format-security.diff @@ -0,0 +1,39 @@ +# DP: Turn on -Wformat -Wformat-security by default for C, C++, ObjC, ObjC++. + +Index: b/src/gcc/doc/invoke.texi +=================================================================== +--- a/src/gcc/doc/invoke.texi ++++ b/src/gcc/doc/invoke.texi +@@ -4119,6 +4119,11 @@ value is used and that might result in t + sufficient length or magnitude. + @end table + ++NOTE: In Ubuntu 8.10 and later versions this option is enabled by default ++for C, C++, ObjC, ObjC++. To disable, use @option{-Wno-format-security}, ++or disable all format warnings with @option{-Wformat=0}. To make format ++security warnings fatal, specify @option{-Werror=format-security}. ++ + @item -Wformat-y2k + @opindex Wformat-y2k + @opindex Wno-format-y2k +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -867,11 +867,14 @@ proper position among the other output f + #define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G" + #endif + ++/* no separate spec, just shove it into the ssp default spec */ ++#define FORMAT_SECURITY_SPEC "%{!Wformat:%{!Wformat=2:%{!Wformat=0:%{!Wall:-Wformat} %{!Wno-format-security:-Wformat-security}}}}" ++ + #ifndef SSP_DEFAULT_SPEC + #if defined(TARGET_LIBC_PROVIDES_SSP) && !defined(ACCEL_COMPILER) +-#define SSP_DEFAULT_SPEC "%{!fno-stack-protector:%{!fstack-protector-all:%{!ffreestanding:%{!nostdlib:-fstack-protector}}}}" ++#define SSP_DEFAULT_SPEC "%{!fno-stack-protector:%{!fstack-protector-all:%{!ffreestanding:%{!nostdlib:-fstack-protector}}}} " FORMAT_SECURITY_SPEC + #else +-#define SSP_DEFAULT_SPEC "" ++#define SSP_DEFAULT_SPEC FORMAT_SECURITY_SPEC + #endif + #endif + diff --git a/debian/patches/gcc-default-fortify-source.diff b/debian/patches/gcc-default-fortify-source.diff new file mode 100644 index 0000000..74d7ed0 --- /dev/null +++ b/debian/patches/gcc-default-fortify-source.diff @@ -0,0 +1,42 @@ +# DP: Turn on -D_FORTIFY_SOURCE=2 by default for C, C++, ObjC, ObjC++, +# DP: if the optimization level is > 0 + +--- + gcc/doc/invoke.texi | 6 ++++++ + gcc/c-family/c-cppbuiltin.c | 3 + + 2 files changed, 9 insertions(+), 0 deletions(-) + +Index: b/src/gcc/doc/invoke.texi +=================================================================== +--- a/src/gcc/doc/invoke.texi ++++ b/src/gcc/doc/invoke.texi +@@ -7105,6 +7105,12 @@ also turns on the following optimization + Please note the warning under @option{-fgcse} about + invoking @option{-O2} on programs that use computed gotos. + ++NOTE: In Ubuntu 8.10 and later versions, @option{-D_FORTIFY_SOURCE=2} is ++set by default, and is activated when @option{-O} is set to 2 or higher. ++This enables additional compile-time and run-time checks for several libc ++functions. To disable, specify either @option{-U_FORTIFY_SOURCE} or ++@option{-D_FORTIFY_SOURCE=0}. ++ + @item -O3 + @opindex O3 + Optimize yet more. @option{-O3} turns on all optimizations specified +Index: b/src/gcc/c-family/c-cppbuiltin.c +=================================================================== +--- a/src/gcc/c-family/c-cppbuiltin.c ++++ b/src/gcc/c-family/c-cppbuiltin.c +@@ -1335,6 +1335,12 @@ c_cpp_builtins (cpp_reader *pfile) + builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0); + builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0); + ++#if !defined(ACCEL_COMPILER) ++ /* Fortify Source enabled by default for optimization levels > 0 */ ++ if (optimize) ++ builtin_define_with_int_value ("_FORTIFY_SOURCE", 2); ++#endif ++ + /* Misc. */ + if (flag_gnu89_inline) + cpp_define (pfile, "__GNUC_GNU_INLINE__"); diff --git a/debian/patches/gcc-default-relro.diff b/debian/patches/gcc-default-relro.diff new file mode 100644 index 0000000..2d1cea8 --- /dev/null +++ b/debian/patches/gcc-default-relro.diff @@ -0,0 +1,45 @@ +# DP: Turn on -Wl,-z,relro by default. + +--- + gcc/doc/invoke.texi | 3 +++ + gcc/gcc.c | 1 + + 2 files changed, 4 insertions(+), 0 deletions(-) + +Index: b/src/gcc/doc/invoke.texi +=================================================================== +--- a/src/gcc/doc/invoke.texi ++++ b/src/gcc/doc/invoke.texi +@@ -11813,6 +11813,9 @@ For example, @option{-Wl,-Map,output.map + linker. When using the GNU linker, you can also get the same effect with + @option{-Wl,-Map=output.map}. + ++NOTE: In Ubuntu 8.10 and later versions, for LDFLAGS, the option ++@option{-Wl,-z,relro} is used. To disable, use @option{-Wl,-z,norelro}. ++ + @item -u @var{symbol} + @opindex u + Pretend the symbol @var{symbol} is undefined, to force linking of +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -1037,6 +1037,11 @@ proper position among the other output f + /* We pass any -flto flags on to the linker, which is expected + to understand them. In practice, this means it had better be collect2. */ + /* %{e*} includes -export-dynamic; see comment in common.opt. */ ++#if defined(ACCEL_COMPILER) ++# define RELRO_SPEC "" ++#else ++# define RELRO_SPEC "-z relro " ++#endif + #ifndef LINK_COMMAND_SPEC + #define LINK_COMMAND_SPEC "\ + %{!fsyntax-only:%{!c:%{!M:%{!MM:%{!E:%{!S:\ +@@ -1045,6 +1050,7 @@ proper position among the other output f + "%{flto|flto=*:% + + * gcc.c (offload_targets_default): New variable. + (process_command): Set it if -foffload is defaulted. + (driver::maybe_putenv_OFFLOAD_TARGETS): Add OFFLOAD_TARGET_DEFAULT=1 + into environment if -foffload has been defaulted. + * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define. + (compile_images_for_offload_targets): If OFFLOAD_TARGET_DEFAULT + is in the environment, don't fail if corresponding mkoffload + can't be found. Free and clear offload_names if no valid offload + is found. +libgomp/ + * target.c (gomp_load_plugin_for_device): If a plugin can't be + dlopened, assume it has no devices silently. + +--- a/src/gcc/gcc.c.jj 2017-01-17 10:28:40.000000000 +0100 ++++ b/src/gcc/gcc.c 2017-01-20 16:26:29.649962902 +0100 +@@ -290,6 +290,10 @@ static const char *spec_host_machine = D + + static char *offload_targets = NULL; + ++/* Set to true if -foffload has not been used and offload_targets ++ is set to the configured in default. */ ++static bool offload_targets_default; ++ + /* Nonzero if cross-compiling. + When -b is used, the value comes from the `specs' file. */ + +@@ -4457,7 +4461,10 @@ process_command (unsigned int decoded_op + /* If the user didn't specify any, default to all configured offload + targets. */ + if (ENABLE_OFFLOADING && offload_targets == NULL) +- handle_foffload_option (OFFLOAD_TARGETS); ++ { ++ handle_foffload_option (OFFLOAD_TARGETS); ++ offload_targets_default = true; ++ } + + if (output_file + && strcmp (output_file, "-") != 0 +@@ -7693,6 +7700,12 @@ driver::maybe_putenv_OFFLOAD_TARGETS () + obstack_grow (&collect_obstack, offload_targets, + strlen (offload_targets) + 1); + xputenv (XOBFINISH (&collect_obstack, char *)); ++ if (offload_targets_default) ++ { ++ obstack_grow (&collect_obstack, "OFFLOAD_TARGET_DEFAULT=1", ++ sizeof ("OFFLOAD_TARGET_DEFAULT=1") - 1); ++ xputenv (XOBFINISH (&collect_obstack, char *)); ++ } + } + + free (offload_targets); +--- a/src/gcc/lto-wrapper.c.jj 2017-01-01 12:45:34.000000000 +0100 ++++ b/src/gcc/lto-wrapper.c 2017-01-20 16:34:18.294016997 +0100 +@@ -52,6 +52,7 @@ along with GCC; see the file COPYING3. + /* Environment variable, used for passing the names of offload targets from GCC + driver to lto-wrapper. */ + #define OFFLOAD_TARGET_NAMES_ENV "OFFLOAD_TARGET_NAMES" ++#define OFFLOAD_TARGET_DEFAULT_ENV "OFFLOAD_TARGET_DEFAULT" + + enum lto_mode_d { + LTO_MODE_NONE, /* Not doing LTO. */ +@@ -790,8 +791,10 @@ compile_images_for_offload_targets (unsi + if (!target_names) + return; + unsigned num_targets = parse_env_var (target_names, &names, NULL); ++ const char *target_names_default = getenv (OFFLOAD_TARGET_DEFAULT_ENV); + + int next_name_entry = 0; ++ bool hsa_seen = false; + const char *compiler_path = getenv ("COMPILER_PATH"); + if (!compiler_path) + goto out; +@@ -804,18 +807,32 @@ compile_images_for_offload_targets (unsi + /* HSA does not use LTO-like streaming and a different compiler, skip + it. */ + if (strcmp (names[i], "hsa") == 0) +- continue; ++ { ++ hsa_seen = true; ++ continue; ++ } + + offload_names[next_name_entry] + = compile_offload_image (names[i], compiler_path, in_argc, in_argv, + compiler_opts, compiler_opt_count, + linker_opts, linker_opt_count); + if (!offload_names[next_name_entry]) +- fatal_error (input_location, +- "problem with building target image for %s\n", names[i]); ++ { ++ if (target_names_default != NULL) ++ continue; ++ fatal_error (input_location, ++ "problem with building target image for %s\n", ++ names[i]); ++ } + next_name_entry++; + } + ++ if (next_name_entry == 0 && !hsa_seen) ++ { ++ free (offload_names); ++ offload_names = NULL; ++ } ++ + out: + free_array_of_ptrs ((void **) names, num_targets); + } +--- a/src/libgomp/target.c.jj 2017-01-01 12:45:52.000000000 +0100 ++++ b/src/libgomp/target.c 2017-01-20 20:12:13.756710875 +0100 +@@ -2356,7 +2356,7 @@ gomp_load_plugin_for_device (struct gomp + + void *plugin_handle = dlopen (plugin_name, RTLD_LAZY); + if (!plugin_handle) +- goto dl_fail; ++ return 0; + + /* Check if all required functions are available in the plugin and store + their handlers. None of the symbols can legitimately be NULL, diff --git a/debian/patches/gcc-fuse-ld-lld-doc.diff b/debian/patches/gcc-fuse-ld-lld-doc.diff new file mode 100644 index 0000000..6483281 --- /dev/null +++ b/debian/patches/gcc-fuse-ld-lld-doc.diff @@ -0,0 +1,17 @@ +# DP: Allow to use lld with -fuse-ld=ld.lld (documentation) + +Index: gcc/doc/invoke.texi +=================================================================== +--- a/src/gcc/doc/invoke.texi (revision 246158) ++++ a/src/gcc/doc/invoke.texi (working copy) +@@ -10501,6 +10501,10 @@ + @opindex fuse-ld=gold + Use the @command{gold} linker instead of the default linker. + ++@item -fuse-ld=lld ++@opindex fuse-ld=lld ++Use the LLVM @command{lld} linker instead of the default linker. ++ + @cindex Libraries + @item -l@var{library} + @itemx -l @var{library} diff --git a/debian/patches/gcc-fuse-ld-lld.diff b/debian/patches/gcc-fuse-ld-lld.diff new file mode 100644 index 0000000..18a52cc --- /dev/null +++ b/debian/patches/gcc-fuse-ld-lld.diff @@ -0,0 +1,83 @@ +# DP: Allow to use lld with -fuse-ld=ld.lld + +Index: b/src/gcc/collect2.c +=================================================================== +--- a/src/gcc/collect2.c ++++ b/src/gcc/collect2.c +@@ -831,6 +831,7 @@ main (int argc, char **argv) + USE_PLUGIN_LD, + USE_GOLD_LD, + USE_BFD_LD, ++ USE_LLD_LD, + USE_LD_MAX + } selected_linker = USE_DEFAULT_LD; + static const char *const ld_suffixes[USE_LD_MAX] = +@@ -838,7 +839,8 @@ main (int argc, char **argv) + "ld", + PLUGIN_LD_SUFFIX, + "ld.gold", +- "ld.bfd" ++ "ld.bfd", ++ "ld.lld" + }; + static const char *const real_ld_suffix = "real-ld"; + static const char *const collect_ld_suffix = "collect-ld"; +@@ -1004,6 +1006,8 @@ main (int argc, char **argv) + selected_linker = USE_BFD_LD; + else if (strcmp (argv[i], "-fuse-ld=gold") == 0) + selected_linker = USE_GOLD_LD; ++ else if (strcmp (argv[i], "-fuse-ld=lld") == 0) ++ selected_linker = USE_LLD_LD; + + #ifdef COLLECT_EXPORT_LIST + /* These flags are position independent, although their order +@@ -1093,7 +1097,8 @@ main (int argc, char **argv) + /* Maybe we know the right file to use (if not cross). */ + ld_file_name = 0; + #ifdef DEFAULT_LINKER +- if (selected_linker == USE_BFD_LD || selected_linker == USE_GOLD_LD) ++ if (selected_linker == USE_BFD_LD || selected_linker == USE_GOLD_LD || ++ selected_linker == USE_LLD_LD) + { + char *linker_name; + # ifdef HOST_EXECUTABLE_SUFFIX +@@ -1307,7 +1312,7 @@ main (int argc, char **argv) + else if (!use_collect_ld + && strncmp (arg, "-fuse-ld=", 9) == 0) + { +- /* Do not pass -fuse-ld={bfd|gold} to the linker. */ ++ /* Do not pass -fuse-ld={bfd|gold|lld} to the linker. */ + ld1--; + ld2--; + } +Index: b/src/gcc/common.opt +=================================================================== +--- a/src/gcc/common.opt ++++ b/src/gcc/common.opt +@@ -2635,9 +2635,13 @@ Common Driver Negative(fuse-ld=gold) + Use the bfd linker instead of the default linker. + + fuse-ld=gold +-Common Driver Negative(fuse-ld=bfd) ++Common Driver Negative(fuse-ld=lld) + Use the gold linker instead of the default linker. + ++fuse-ld=lld ++Common Driver Negative(fuse-ld=bfd) ++Use the lld LLVM linker instead of the default linker. ++ + fuse-linker-plugin + Common Undocumented Var(flag_use_linker_plugin) + +Index: b/src/gcc/opts.c +=================================================================== +--- a/src/gcc/opts.c ++++ b/src/gcc/opts.c +@@ -2315,6 +2315,7 @@ common_handle_option (struct gcc_options + + case OPT_fuse_ld_bfd: + case OPT_fuse_ld_gold: ++ case OPT_fuse_ld_lld: + case OPT_fuse_linker_plugin: + /* No-op. Used by the driver and passed to us because it starts with f.*/ + break; diff --git a/debian/patches/gcc-gfdl-build.diff b/debian/patches/gcc-gfdl-build.diff new file mode 100644 index 0000000..0d57fcb --- /dev/null +++ b/debian/patches/gcc-gfdl-build.diff @@ -0,0 +1,39 @@ +# DP: Build a dummy s-tm-texi without access to the texinfo sources + +Index: b/src/gcc/Makefile.in +=================================================================== +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -2405,30 +2405,8 @@ s-tm-texi: $(srcdir)/doc/../doc/tm.texi + # \r is not portable to Solaris tr, therefore we have a special + # case for ASCII. We use \r for other encodings like EBCDIC. + s-tm-texi: build/genhooks$(build_exeext) $(srcdir)/doc/tm.texi.in +- $(RUN_GEN) build/genhooks$(build_exeext) -d \ +- $(srcdir)/doc/tm.texi.in > tmp-tm.texi +- case `echo X|tr X '\101'` in \ +- A) tr -d '\015' < tmp-tm.texi > tmp2-tm.texi ;; \ +- *) tr -d '\r' < tmp-tm.texi > tmp2-tm.texi ;; \ +- esac +- mv tmp2-tm.texi tmp-tm.texi +- $(SHELL) $(srcdir)/../move-if-change tmp-tm.texi tm.texi +- @if cmp -s $(srcdir)/doc/tm.texi tm.texi; then \ +- $(STAMP) $@; \ +- elif test $(srcdir)/doc/tm.texi -nt $(srcdir)/doc/tm.texi.in \ +- && ( test $(srcdir)/doc/tm.texi -nt $(srcdir)/target.def \ +- || test $(srcdir)/doc/tm.texi -nt $(srcdir)/c-family/c-target.def \ +- || test $(srcdir)/doc/tm.texi -nt $(srcdir)/common/common-target.def \ +- ); then \ +- echo >&2 ; \ +- echo You should edit $(srcdir)/doc/tm.texi.in rather than $(srcdir)/doc/tm.texi . >&2 ; \ +- false; \ +- else \ +- echo >&2 ; \ +- echo Verify that you have permission to grant a GFDL license for all >&2 ; \ +- echo new text in tm.texi, then copy it to $(srcdir)/doc/tm.texi. >&2 ; \ +- false; \ +- fi ++ cat $(srcdir)/doc/tm.texi.in > tmp-tm.texi ++ $(STAMP) $@ + + gimple-match.c: s-match gimple-match-head.c ; @true + generic-match.c: s-match generic-match-head.c ; @true diff --git a/debian/patches/gcc-hash-style-both.diff b/debian/patches/gcc-hash-style-both.diff new file mode 100644 index 0000000..175abe8 --- /dev/null +++ b/debian/patches/gcc-hash-style-both.diff @@ -0,0 +1,167 @@ +# DP: Link using --hash-style=both (alpha, amd64, armel, armhf, ia64, i386, powerpc, ppc64, s390, sparc) + +2006-07-11 Jakub Jelinek + + * config/i386/linux.h (LINK_SPEC): Add --hash-style=both. + * config/i386/linux64.h (LINK_SPEC): Likewise. + * config/rs6000/sysv4.h (LINK_OS_LINUX_SPEC): Likewise. + * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32, + LINK_OS_LINUX_SPEC64): Likewise. + * config/s390/linux.h (LINK_SPEC): Likewise. + * config/ia64/linux.h (LINK_SPEC): Likewise. + * config/sparc/linux.h (LINK_SPEC): Likewise. + * config/sparc/linux64.h (LINK_SPEC, LINK_ARCH32_SPEC, + LINK_ARCH64_SPEC): Likewise. + * config/alpha/linux-elf.h (LINK_SPEC): Likewise. + +2009-12-21 Matthias Klose + + * config/arm/linux-elf.h (LINK_SPEC): Add --hash-style=both. + +2012-11-17 Matthias Klose + + * config/aarch64/aarch64-linux.h (LINK_SPEC): Add --hash-style=both. + +--- + gcc/config/alpha/linux-elf.h | 2 +- + gcc/config/i386/linux.h | 2 +- + gcc/config/i386/linux64.h | 2 +- + gcc/config/ia64/linux.h | 2 +- + gcc/config/rs6000/linux64.h | 4 ++-- + gcc/config/rs6000/sysv4.h | 2 +- + gcc/config/s390/linux.h | 2 +- + gcc/config/sparc/linux.h | 2 +- + 8 files changed, 9 insertions(+), 9 deletions(-) + +Index: b/src/gcc/config/alpha/linux-elf.h +=================================================================== +--- a/src/gcc/config/alpha/linux-elf.h ++++ b/src/gcc/config/alpha/linux-elf.h +@@ -37,7 +37,7 @@ + + #define ELF_DYNAMIC_LINKER GNU_USER_DYNAMIC_LINKER + +-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ ++#define LINK_SPEC "-m elf64alpha --hash-style=both %{G*} %{relax:-relax} \ + %{O*:-O3} %{!O*:-O1} \ + %{shared:-shared} \ + %{!shared: \ +Index: b/src/gcc/config/ia64/linux.h +=================================================================== +--- a/src/gcc/config/ia64/linux.h ++++ b/src/gcc/config/ia64/linux.h +@@ -58,7 +58,7 @@ + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC "\ ++#define LINK_SPEC " --hash-style=both \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/rs6000/linux64.h +=================================================================== +--- a/src/gcc/config/rs6000/linux64.h ++++ b/src/gcc/config/rs6000/linux64.h +@@ -385,11 +385,11 @@ + " -m elf64ppc") + #endif + +-#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --hash-style=both %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}}" + +-#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --hash-style=both %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}" + +Index: b/src/gcc/config/rs6000/sysv4.h +=================================================================== +--- a/src/gcc/config/rs6000/sysv4.h ++++ b/src/gcc/config/rs6000/sysv4.h +@@ -788,7 +788,7 @@ + #define GNU_USER_DYNAMIC_LINKER \ + CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER) + +-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=both %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}" + +Index: b/src/gcc/config/s390/linux.h +=================================================================== +--- a/src/gcc/config/s390/linux.h ++++ b/src/gcc/config/s390/linux.h +@@ -65,7 +65,7 @@ + + #undef LINK_SPEC + #define LINK_SPEC \ +- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ ++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=both \ + %{shared:-shared} \ + %{!shared: \ + %{static:-static} \ +Index: b/src/gcc/config/sparc/linux.h +=================================================================== +--- a/src/gcc/config/sparc/linux.h ++++ b/src/gcc/config/sparc/linux.h +@@ -86,7 +86,7 @@ + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC "-m elf32_sparc %{shared:-shared} \ ++#define LINK_SPEC "-m elf32_sparc --hash-style=both %{shared:-shared} \ + %{!mno-relax:%{!r:-relax}} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/arm/linux-elf.h +=================================================================== +--- a/src/gcc/config/arm/linux-elf.h ++++ b/src/gcc/config/arm/linux-elf.h +@@ -67,6 +67,7 @@ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER "} \ + -X \ ++ --hash-style=both \ + %{mbig-endian:-EB} %{mlittle-endian:-EL}" \ + SUBTARGET_EXTRA_LINK_SPEC + +Index: b/src/gcc/config/i386/gnu-user.h +=================================================================== +--- a/src/gcc/config/i386/gnu-user.h ++++ b/src/gcc/config/i386/gnu-user.h +@@ -74,7 +74,7 @@ + { "link_emulation", GNU_USER_LINK_EMULATION },\ + { "dynamic_linker", GNU_USER_DYNAMIC_LINKER } + +-#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) %{shared:-shared} \ ++#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --hash-style=both %{shared:-shared} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +Index: b/src/gcc/config/i386/gnu-user64.h +=================================================================== +--- a/src/gcc/config/i386/gnu-user64.h ++++ b/src/gcc/config/i386/gnu-user64.h +@@ -56,6 +56,7 @@ + "%{" SPEC_64 ":-m " GNU_USER_LINK_EMULATION64 "} \ + %{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \ + %{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \ ++ --hash-style=both \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/aarch64/aarch64-linux.h +=================================================================== +--- a/src/gcc/config/aarch64/aarch64-linux.h ++++ b/src/gcc/config/aarch64/aarch64-linux.h +@@ -24,6 +24,7 @@ + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-aarch64.so.1" + + #define LINUX_TARGET_LINK_SPEC "%{h*} \ ++ --hash-style=both \ + %{static:-Bstatic} \ + %{shared:-shared} \ + %{symbolic:-Bsymbolic} \ diff --git a/debian/patches/gcc-hash-style-gnu.diff b/debian/patches/gcc-hash-style-gnu.diff new file mode 100644 index 0000000..a8b13d4 --- /dev/null +++ b/debian/patches/gcc-hash-style-gnu.diff @@ -0,0 +1,169 @@ +# DP: Link using --hash-style=gnu (aarch64, alpha, amd64, armel, armhf, ia64, +# DP: i386, powerpc, ppc64, s390, sparc) + +2006-07-11 Jakub Jelinek + + * config/i386/linux.h (LINK_SPEC): Add --hash-style=gnu. + * config/i386/linux64.h (LINK_SPEC): Likewise. + * config/rs6000/sysv4.h (LINK_OS_LINUX_SPEC): Likewise. + * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC32, + LINK_OS_LINUX_SPEC64): Likewise. + * config/s390/linux.h (LINK_SPEC): Likewise. + * config/ia64/linux.h (LINK_SPEC): Likewise. + * config/sparc/linux.h (LINK_SPEC): Likewise. + * config/sparc/linux64.h (LINK_SPEC, LINK_ARCH32_SPEC, + LINK_ARCH64_SPEC): Likewise. + * config/alpha/linux-elf.h (LINK_SPEC): Likewise. + +2009-12-21 Matthias Klose + + * config/arm/linux-elf.h (LINK_SPEC): Add --hash-style=gnu. + +2012-11-17 Matthias Klose + + * config/aarch64/aarch64-linux.h (LINK_SPEC): Add --hash-style=gnu. + +--- + gcc/config/alpha/linux-elf.h | 2 +- + gcc/config/i386/linux.h | 2 +- + gcc/config/i386/linux64.h | 2 +- + gcc/config/ia64/linux.h | 2 +- + gcc/config/rs6000/linux64.h | 4 ++-- + gcc/config/rs6000/sysv4.h | 2 +- + gcc/config/s390/linux.h | 2 +- + gcc/config/sparc/linux.h | 2 +- + 8 files changed, 9 insertions(+), 9 deletions(-) + +Index: b/src/gcc/config/alpha/linux-elf.h +=================================================================== +--- a/src/gcc/config/alpha/linux-elf.h ++++ b/src/gcc/config/alpha/linux-elf.h +@@ -37,7 +37,7 @@ along with GCC; see the file COPYING3. + + #define ELF_DYNAMIC_LINKER GNU_USER_DYNAMIC_LINKER + +-#define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax} \ ++#define LINK_SPEC "-m elf64alpha --hash-style=gnu %{G*} %{relax:-relax} \ + %{O*:-O3} %{!O*:-O1} \ + %{shared:-shared} \ + %{!shared: \ +Index: b/src/gcc/config/ia64/linux.h +=================================================================== +--- a/src/gcc/config/ia64/linux.h ++++ b/src/gcc/config/ia64/linux.h +@@ -58,7 +58,7 @@ do { \ + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC "\ ++#define LINK_SPEC " --hash-style=gnu \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/rs6000/linux64.h +=================================================================== +--- a/src/gcc/config/rs6000/linux64.h ++++ b/src/gcc/config/rs6000/linux64.h +@@ -469,12 +469,12 @@ extern int dot_symbols; + " -m elf64ppc") + #endif + +-#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC32 LINK_OS_LINUX_EMUL32 " --hash-style=gnu %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}} \ + %(link_os_extra_spec32)" + +-#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC64 LINK_OS_LINUX_EMUL64 " --hash-style=gnu %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}} \ + %(link_os_extra_spec64)" +Index: b/src/gcc/config/rs6000/sysv4.h +=================================================================== +--- a/src/gcc/config/rs6000/sysv4.h ++++ b/src/gcc/config/rs6000/sysv4.h +@@ -800,7 +800,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF + CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER, \ + MUSL_DYNAMIC_LINKER) + +-#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \ ++#define LINK_OS_LINUX_SPEC "-m elf32ppclinux --hash-style=gnu %{!shared: %{!static: \ + %{rdynamic:-export-dynamic} \ + -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}" + +Index: b/src/gcc/config/s390/linux.h +=================================================================== +--- a/src/gcc/config/s390/linux.h ++++ b/src/gcc/config/s390/linux.h +@@ -78,7 +78,7 @@ along with GCC; see the file COPYING3. + + #undef LINK_SPEC + #define LINK_SPEC \ +- "%{m31:-m elf_s390}%{m64:-m elf64_s390} \ ++ "%{m31:-m elf_s390}%{m64:-m elf64_s390} --hash-style=gnu \ + %{shared:-shared} \ + %{!shared: \ + %{static:-static} \ +Index: b/src/gcc/config/sparc/linux.h +=================================================================== +--- a/src/gcc/config/sparc/linux.h ++++ b/src/gcc/config/sparc/linux.h +@@ -86,7 +86,7 @@ extern const char *host_detect_local_cpu + #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2" + + #undef LINK_SPEC +-#define LINK_SPEC "-m elf32_sparc %{shared:-shared} \ ++#define LINK_SPEC "-m elf32_sparc --hash-style=gnu %{shared:-shared} \ + %{!mno-relax:%{!r:-relax}} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/arm/linux-elf.h +=================================================================== +--- a/src/gcc/config/arm/linux-elf.h ++++ b/src/gcc/config/arm/linux-elf.h +@@ -70,6 +70,7 @@ + %{rdynamic:-export-dynamic} \ + %{!shared:-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \ + -X \ ++ --hash-style=gnu \ + %{mbig-endian:-EB} %{mlittle-endian:-EL}" \ + SUBTARGET_EXTRA_LINK_SPEC + +Index: b/src/gcc/config/i386/gnu-user.h +=================================================================== +--- a/src/gcc/config/i386/gnu-user.h ++++ b/src/gcc/config/i386/gnu-user.h +@@ -74,7 +74,7 @@ along with GCC; see the file COPYING3. + { "link_emulation", GNU_USER_LINK_EMULATION },\ + { "dynamic_linker", GNU_USER_DYNAMIC_LINKER } + +-#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) %{shared:-shared} \ ++#define GNU_USER_TARGET_LINK_SPEC "-m %(link_emulation) --hash-style=gnu %{shared:-shared} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ +Index: b/src/gcc/config/i386/gnu-user64.h +=================================================================== +--- a/src/gcc/config/i386/gnu-user64.h ++++ b/src/gcc/config/i386/gnu-user64.h +@@ -56,6 +56,7 @@ see the files COPYING3 and COPYING.RUNTI + "%{" SPEC_64 ":-m " GNU_USER_LINK_EMULATION64 "} \ + %{" SPEC_32 ":-m " GNU_USER_LINK_EMULATION32 "} \ + %{" SPEC_X32 ":-m " GNU_USER_LINK_EMULATIONX32 "} \ ++ --hash-style=gnu \ + %{shared:-shared} \ + %{!shared: \ + %{!static: \ +Index: b/src/gcc/config/aarch64/aarch64-linux.h +=================================================================== +--- a/src/gcc/config/aarch64/aarch64-linux.h ++++ b/src/gcc/config/aarch64/aarch64-linux.h +@@ -35,6 +35,7 @@ + #define CPP_SPEC "%{pthread:-D_REENTRANT}" + + #define LINUX_TARGET_LINK_SPEC "%{h*} \ ++ --hash-style=gnu \ + %{static:-Bstatic} \ + %{shared:-shared} \ + %{symbolic:-Bsymbolic} \ diff --git a/debian/patches/gcc-ice-apport.diff b/debian/patches/gcc-ice-apport.diff new file mode 100644 index 0000000..480b442 --- /dev/null +++ b/debian/patches/gcc-ice-apport.diff @@ -0,0 +1,24 @@ +# DP: Report an ICE to apport (if apport is available +# DP: and the environment variable GCC_NOAPPORT is not set) + +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -6899,6 +6899,16 @@ do_report_bug (const char **new_argv, co + fflush(stderr); + free(cmd); + } ++ if (!env.get ("GCC_NOAPPORT") ++ && !access ("/usr/share/apport/gcc_ice_hook", R_OK | X_OK)) ++ { ++ char *cmd = XNEWVEC (char, 50 + strlen (*out_file) ++ + strlen (new_argv[0])); ++ sprintf (cmd, "/usr/share/apport/gcc_ice_hook %s %s", ++ new_argv[0], *out_file); ++ system (cmd); ++ free (cmd); ++ } + /* Make sure it is not deleted. */ + free (*out_file); + *out_file = NULL; diff --git a/debian/patches/gcc-ice-dump.diff b/debian/patches/gcc-ice-dump.diff new file mode 100644 index 0000000..29fc388 --- /dev/null +++ b/debian/patches/gcc-ice-dump.diff @@ -0,0 +1,41 @@ +# DP: For ICEs, dump the preprocessed source file to stderr +# DP: when in a distro build environment. + +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -3163,7 +3163,8 @@ execute (void) + /* For ICEs in cc1, cc1obj, cc1plus see if it is + reproducible or not. */ + const char *p; +- if (flag_report_bug ++ const char *deb_build_options = env.get("DEB_BUILD_OPTIONS"); ++ if ((flag_report_bug || deb_build_options) + && WEXITSTATUS (status) == ICE_EXIT_CODE + && i == 0 + && (p = strrchr (commands[0].argv[0], DIR_SEPARATOR)) +@@ -6881,8 +6882,23 @@ do_report_bug (const char **new_argv, co + + if (status == ATTEMPT_STATUS_SUCCESS) + { ++ const char *deb_build_options = env.get("DEB_BUILD_OPTIONS"); ++ + fnotice (stderr, "Preprocessed source stored into %s file," + " please attach this to your bugreport.\n", *out_file); ++ if (deb_build_options) ++ { ++ char *cmd = XNEWVEC (char, 50 + strlen (*out_file)); ++ ++ sprintf(cmd, "/usr/bin/awk '{print \"%d:\", $0}' %s >&2", getpid(), *out_file); ++ fprintf(stderr, "=== BEGIN GCC DUMP ===\n"); ++ fflush(stderr); ++ system(cmd); ++ fflush(stderr); ++ fprintf(stderr, "=== END GCC DUMP ===\n"); ++ fflush(stderr); ++ free(cmd); ++ } + /* Make sure it is not deleted. */ + free (*out_file); + *out_file = NULL; diff --git a/debian/patches/gcc-linaro-doc.diff b/debian/patches/gcc-linaro-doc.diff new file mode 100644 index 0000000..4810486 --- /dev/null +++ b/debian/patches/gcc-linaro-doc.diff @@ -0,0 +1,71 @@ +# DP: Changes for the Linaro 7-2017.07 snapshot (documentation). + +--- a/src/gcc/doc/install.texi ++++ b/src/gcc/doc/install.texi +@@ -1097,14 +1097,18 @@ for each target is given below. + + @table @code + @item arm*-*-* +-@var{list} is one of@code{default}, @code{aprofile} or @code{rmprofile}. +-Specifying @code{default} is equivalent to omitting this option, ie. only the +-default runtime library will be enabled. Specifying @code{aprofile} or +-@code{rmprofile} builds multilibs for a combination of ISA, architecture, +-FPU available and floating-point ABI. ++@var{list} is a comma separated list of @code{aprofile} and @code{rmprofile} ++to build multilibs for A or R and M architecture profiles respectively. Note ++that, due to some limitation of the current multilib framework, using the ++combined @code{aprofile,rmprofile} multilibs selects in some cases a less ++optimal multilib than when using the multilib profile for the architecture ++targetted. The special value @code{default} is also accepted and is equivalent ++to omitting the option, ie. only the default run-time library will be enabled. + + The table below gives the combination of ISAs, architectures, FPUs and + floating-point ABIs for which multilibs are built for each accepted value. ++The union of these options is considered when specifying both @code{aprofile} ++and @code{rmprofile}. + + @multitable @columnfractions .15 .28 .30 + @item Option @tab aprofile @tab rmprofile +--- a/src/gcc/doc/sourcebuild.texi ++++ b/src/gcc/doc/sourcebuild.texi +@@ -2274,6 +2274,11 @@ the codeset to convert to. + Skip the test if the target does not support profiling with option + @var{profopt}. + ++@item dg-require-stack-check @var{check} ++Skip the test if the target does not support the @code{-fstack-check} ++option. If @var{check} is @code{""}, support for @code{-fstack-check} ++is checked, for @code{-fstack-check=("@var{check}")} otherwise. ++ + @item dg-require-visibility @var{vis} + Skip the test if the target does not support the @code{visibility} attribute. + If @var{vis} is @code{""}, support for @code{visibility("hidden")} is +--- a/src/gcc/doc/tm.texi ++++ b/src/gcc/doc/tm.texi +@@ -3684,6 +3684,15 @@ such as the result of @code{get_frame_size ()} and the tables of + registers @code{df_regs_ever_live_p} and @code{call_used_regs}. + @end defmac + ++@deftypefn {Target Hook} void TARGET_COMPUTE_FRAME_LAYOUT (void) ++This target hook is called once each time the frame layout needs to be ++recalculated. The calculations can be cached by the target and can then ++be used by @code{INITIAL_ELIMINATION_OFFSET} instead of re-computing the ++layout on every invocation of that hook. This is particularly useful ++for targets that have an expensive frame layout function. Implementing ++this callback is optional. ++@end deftypefn ++ + @node Stack Arguments + @subsection Passing Function Arguments on the Stack + @cindex arguments on stack +--- a/src/gcc/doc/tm.texi.in ++++ b/src/gcc/doc/tm.texi.in +@@ -3213,6 +3213,8 @@ such as the result of @code{get_frame_size ()} and the tables of + registers @code{df_regs_ever_live_p} and @code{call_used_regs}. + @end defmac + ++@hook TARGET_COMPUTE_FRAME_LAYOUT ++ + @node Stack Arguments + @subsection Passing Function Arguments on the Stack + @cindex arguments on stack diff --git a/debian/patches/gcc-linaro-no-macros.diff b/debian/patches/gcc-linaro-no-macros.diff new file mode 100644 index 0000000..f09ecac --- /dev/null +++ b/debian/patches/gcc-linaro-no-macros.diff @@ -0,0 +1,92 @@ +# DP : Don't add the __LINARO_RELEASE__ and __LINARO_SPIN__ macros for distro builds. + +Index: b/src/gcc/cppbuiltin.c +=================================================================== +--- a/src/gcc/cppbuiltin.c ++++ b/src/gcc/cppbuiltin.c +@@ -53,41 +53,18 @@ parse_basever (int *major, int *minor, i + *patchlevel = s_patchlevel; + } + +-/* Parse a LINAROVER version string of the format "M.m-year.month[-spin][~dev]" +- to create Linaro release number YYYYMM and spin version. */ +-static void +-parse_linarover (int *release, int *spin) +-{ +- static int s_year = -1, s_month, s_spin; +- +- if (s_year == -1) +- if (sscanf (LINAROVER, "%*[^-]-%d.%d-%d", &s_year, &s_month, &s_spin) != 3) +- { +- sscanf (LINAROVER, "%*[^-]-%d.%d", &s_year, &s_month); +- s_spin = 0; +- } +- +- if (release) +- *release = s_year * 100 + s_month; +- +- if (spin) +- *spin = s_spin; +-} + + /* Define __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__ and __VERSION__. */ + static void + define__GNUC__ (cpp_reader *pfile) + { +- int major, minor, patchlevel, linaro_release, linaro_spin; ++ int major, minor, patchlevel; + + parse_basever (&major, &minor, &patchlevel); +- parse_linarover (&linaro_release, &linaro_spin); + cpp_define_formatted (pfile, "__GNUC__=%d", major); + cpp_define_formatted (pfile, "__GNUC_MINOR__=%d", minor); + cpp_define_formatted (pfile, "__GNUC_PATCHLEVEL__=%d", patchlevel); + cpp_define_formatted (pfile, "__VERSION__=\"%s\"", version_string); +- cpp_define_formatted (pfile, "__LINARO_RELEASE__=%d", linaro_release); +- cpp_define_formatted (pfile, "__LINARO_SPIN__=%d", linaro_spin); + cpp_define_formatted (pfile, "__ATOMIC_RELAXED=%d", MEMMODEL_RELAXED); + cpp_define_formatted (pfile, "__ATOMIC_SEQ_CST=%d", MEMMODEL_SEQ_CST); + cpp_define_formatted (pfile, "__ATOMIC_ACQUIRE=%d", MEMMODEL_ACQUIRE); +Index: b/src/gcc/Makefile.in +=================================================================== +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -845,12 +845,10 @@ BASEVER := $(srcdir)/BASE-VER # 4.x + DEVPHASE := $(srcdir)/DEV-PHASE # experimental, prerelease, "" + DATESTAMP := $(srcdir)/DATESTAMP # YYYYMMDD or empty + REVISION := $(srcdir)/REVISION # [BRANCH revision XXXXXX] +-LINAROVER := $(srcdir)/LINARO-VERSION # M.x-YYYY.MM[-S][~dev] + + BASEVER_c := $(shell cat $(BASEVER)) + DEVPHASE_c := $(shell cat $(DEVPHASE)) + DATESTAMP_c := $(shell cat $(DATESTAMP)) +-LINAROVER_c := $(shell cat $(LINAROVER)) + + ifeq (,$(wildcard $(REVISION))) + REVISION_c := +@@ -877,7 +875,6 @@ DATESTAMP_s := \ + "\"$(if $(DEVPHASE_c)$(filter-out 0,$(PATCHLEVEL_c)), $(DATESTAMP_c))\"" + PKGVERSION_s:= "\"@PKGVERSION@\"" + BUGURL_s := "\"@REPORT_BUGS_TO@\"" +-LINAROVER_s := "\"$(LINAROVER_c)\"" + + PKGVERSION := @PKGVERSION@ + BUGURL_TEXI := @REPORT_BUGS_TEXI@ +@@ -2804,9 +2801,8 @@ PREPROCESSOR_DEFINES = \ + -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \ + @TARGET_SYSTEM_ROOT_DEFINE@ + +-CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(BASEVER_s) \ +- -DLINAROVER=$(LINAROVER_s) +-cppbuiltin.o: $(BASEVER) $(LINAROVER) ++CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(BASEVER_s) ++cppbuiltin.o: $(BASEVER) + + CFLAGS-cppdefault.o += $(PREPROCESSOR_DEFINES) + +Index: b/src/gcc/LINARO-VERSION +=================================================================== +--- a/src/gcc/LINARO-VERSION ++++ /dev/null +@@ -1,1 +0,0 @@ +-Snapshot 7.1-2017.07 diff --git a/debian/patches/gcc-linaro-revert-r249596.diff b/debian/patches/gcc-linaro-revert-r249596.diff new file mode 100644 index 0000000..73f5517 --- /dev/null +++ b/debian/patches/gcc-linaro-revert-r249596.diff @@ -0,0 +1,38 @@ +Index: gcc/testsuite/gcc.target/arm/fpscr.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/arm/fpscr.c (revision 249596) ++++ a/src/gcc/testsuite/gcc.target/arm/fpscr.c (nonexistent) +@@ -1,16 +0,0 @@ +-/* Test the fpscr builtins. */ +- +-/* { dg-do compile } */ +-/* { dg-require-effective-target arm_fp_ok } */ +-/* { dg-skip-if "need fp instructions" { *-*-* } { "-mfloat-abi=soft" } { "" } } */ +-/* { dg-add-options arm_fp } */ +- +-void +-test_fpscr () +-{ +- volatile unsigned int status = __builtin_arm_get_fpscr (); +- __builtin_arm_set_fpscr (status); +-} +- +-/* { dg-final { scan-assembler "mrc\tp10, 7, r\[0-9\]+, cr1, cr0, 0" } } */ +-/* { dg-final { scan-assembler "mcr\tp10, 7, r\[0-9\]+, cr1, cr0, 0" } } */ +Index: gcc/config/arm/arm-builtins.c +=================================================================== +--- a/src/gcc/config/arm/arm-builtins.c (revision 249596) ++++ a/src/gcc/config/arm/arm-builtins.c (revision 249586) +@@ -1893,10 +1893,10 @@ + = build_function_type_list (unsigned_type_node, NULL); + + arm_builtin_decls[ARM_BUILTIN_GET_FPSCR] +- = add_builtin_function ("__builtin_arm_get_fpscr", ftype_get_fpscr, ++ = add_builtin_function ("__builtin_arm_ldfscr", ftype_get_fpscr, + ARM_BUILTIN_GET_FPSCR, BUILT_IN_MD, NULL, NULL_TREE); + arm_builtin_decls[ARM_BUILTIN_SET_FPSCR] +- = add_builtin_function ("__builtin_arm_set_fpscr", ftype_set_fpscr, ++ = add_builtin_function ("__builtin_arm_stfscr", ftype_set_fpscr, + ARM_BUILTIN_SET_FPSCR, BUILT_IN_MD, NULL, NULL_TREE); + } + diff --git a/debian/patches/gcc-linaro.diff b/debian/patches/gcc-linaro.diff new file mode 100644 index 0000000..60979e9 --- /dev/null +++ b/debian/patches/gcc-linaro.diff @@ -0,0 +1,4235 @@ +# DP: Changes for the Linaro 7-2017.07 snapshot. + +MSG=$(git log origin/linaro/gcc-7-branch --format=format:"%s" -n 1 --grep "Merge branches"); SVN=${MSG##* }; git log origin/gcc-7-branch --format=format:"%H" -n 1 --grep "gcc-7-branch@${SVN%.}" + +LANG=C git diff --no-renames d4064d4a3d1f9160d187e105d218c105b541f3c7 d19e70aba57b1bcc5093f3b62f853ff83e976c2e \ + | egrep -v '^(diff|index) ' \ + | filterdiff --strip=1 --addoldprefix=a/src/ --addnewprefix=b/src/ \ + | sed 's,a/src//dev/null,/dev/null,' + +--- /dev/null ++++ b/src/gcc/LINARO-VERSION +@@ -0,0 +1 @@ ++Snapshot 7.1-2017.07 +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -845,10 +845,12 @@ BASEVER := $(srcdir)/BASE-VER # 4.x.y + DEVPHASE := $(srcdir)/DEV-PHASE # experimental, prerelease, "" + DATESTAMP := $(srcdir)/DATESTAMP # YYYYMMDD or empty + REVISION := $(srcdir)/REVISION # [BRANCH revision XXXXXX] ++LINAROVER := $(srcdir)/LINARO-VERSION # M.x-YYYY.MM[-S][~dev] + + BASEVER_c := $(shell cat $(BASEVER)) + DEVPHASE_c := $(shell cat $(DEVPHASE)) + DATESTAMP_c := $(shell cat $(DATESTAMP)) ++LINAROVER_c := $(shell cat $(LINAROVER)) + + ifeq (,$(wildcard $(REVISION))) + REVISION_c := +@@ -875,6 +877,7 @@ DATESTAMP_s := \ + "\"$(if $(DEVPHASE_c)$(filter-out 0,$(PATCHLEVEL_c)), $(DATESTAMP_c))\"" + PKGVERSION_s:= "\"@PKGVERSION@\"" + BUGURL_s := "\"@REPORT_BUGS_TO@\"" ++LINAROVER_s := "\"$(LINAROVER_c)\"" + + PKGVERSION := @PKGVERSION@ + BUGURL_TEXI := @REPORT_BUGS_TEXI@ +@@ -2801,8 +2804,9 @@ PREPROCESSOR_DEFINES = \ + -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \ + @TARGET_SYSTEM_ROOT_DEFINE@ + +-CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(BASEVER_s) +-cppbuiltin.o: $(BASEVER) ++CFLAGS-cppbuiltin.o += $(PREPROCESSOR_DEFINES) -DBASEVER=$(BASEVER_s) \ ++ -DLINAROVER=$(LINAROVER_s) ++cppbuiltin.o: $(BASEVER) $(LINAROVER) + + CFLAGS-cppdefault.o += $(PREPROCESSOR_DEFINES) + +--- a/src/gcc/config.gcc ++++ b/src/gcc/config.gcc +@@ -3791,34 +3791,19 @@ case "${target}" in + # Add extra multilibs + if test "x$with_multilib_list" != x; then + arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'` +- case ${arm_multilibs} in +- aprofile) +- # Note that arm/t-aprofile is a +- # stand-alone make file fragment to be +- # used only with itself. We do not +- # specifically use the +- # TM_MULTILIB_OPTION framework because +- # this shorthand is more +- # pragmatic. +- tmake_profile_file="arm/t-aprofile" +- ;; +- rmprofile) +- # Note that arm/t-rmprofile is a +- # stand-alone make file fragment to be +- # used only with itself. We do not +- # specifically use the +- # TM_MULTILIB_OPTION framework because +- # this shorthand is more +- # pragmatic. +- tmake_profile_file="arm/t-rmprofile" +- ;; +- default) +- ;; +- *) +- echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2 +- exit 1 +- ;; +- esac ++ if test "x${arm_multilibs}" != xdefault ; then ++ for arm_multilib in ${arm_multilibs}; do ++ case ${arm_multilib} in ++ aprofile|rmprofile) ++ tmake_profile_file="arm/t-multilib" ++ ;; ++ *) ++ echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2 ++ exit 1 ++ ;; ++ esac ++ done ++ fi + + if test "x${tmake_profile_file}" != x ; then + # arm/t-aprofile and arm/t-rmprofile are only +@@ -3835,6 +3820,7 @@ case "${target}" in + fi + + tmake_file="${tmake_file} ${tmake_profile_file}" ++ TM_MULTILIB_CONFIG="$with_multilib_list" + fi + fi + ;; +--- a/src/gcc/config/aarch64/aarch64-protos.h ++++ b/src/gcc/config/aarch64/aarch64-protos.h +@@ -203,6 +203,16 @@ struct cpu_approx_modes + const unsigned int recip_sqrt; /* Reciprocal square root. */ + }; + ++/* Cache prefetch settings for prefetch-loop-arrays. */ ++struct cpu_prefetch_tune ++{ ++ const int num_slots; ++ const int l1_cache_size; ++ const int l1_cache_line_size; ++ const int l2_cache_size; ++ const int default_opt_level; ++}; ++ + struct tune_params + { + const struct cpu_cost_table *insn_extra_cost; +@@ -224,9 +234,6 @@ struct tune_params + int min_div_recip_mul_df; + /* Value for aarch64_case_values_threshold; or 0 for the default. */ + unsigned int max_case_values; +- /* Value for PARAM_L1_CACHE_LINE_SIZE; or 0 to use the default. */ +- unsigned int cache_line_size; +- + /* An enum specifying how to take into account CPU autoprefetch capabilities + during instruction scheduling: + - AUTOPREFETCHER_OFF: Do not take autoprefetch capabilities into account. +@@ -244,6 +251,10 @@ struct tune_params + } autoprefetcher_model; + + unsigned int extra_tuning_flags; ++ ++ /* Place prefetch struct pointer at the end to enable type checking ++ errors when tune_params misses elements (e.g., from erroneous merges). */ ++ const struct cpu_prefetch_tune *prefetch; + }; + + #define AARCH64_FUSION_PAIR(x, name) \ +@@ -301,6 +312,7 @@ extern struct tune_params aarch64_tune_params; + + HOST_WIDE_INT aarch64_initial_elimination_offset (unsigned, unsigned); + int aarch64_get_condition_code (rtx); ++bool aarch64_address_valid_for_prefetch_p (rtx, bool); + bool aarch64_bitmask_imm (HOST_WIDE_INT val, machine_mode); + unsigned HOST_WIDE_INT aarch64_and_split_imm1 (HOST_WIDE_INT val_in); + unsigned HOST_WIDE_INT aarch64_and_split_imm2 (HOST_WIDE_INT val_in); +@@ -311,6 +323,7 @@ bool aarch64_const_vec_all_same_int_p (rtx, HOST_WIDE_INT); + bool aarch64_constant_address_p (rtx); + bool aarch64_emit_approx_div (rtx, rtx, rtx); + bool aarch64_emit_approx_sqrt (rtx, rtx, bool); ++void aarch64_expand_call (rtx, rtx, bool); + bool aarch64_expand_movmem (rtx *); + bool aarch64_float_const_zero_rtx_p (rtx); + bool aarch64_function_arg_regno_p (unsigned); +--- a/src/gcc/config/aarch64/aarch64-simd.md ++++ b/src/gcc/config/aarch64/aarch64-simd.md +@@ -153,6 +153,19 @@ + (set_attr "length" "4,4,4,8,8,8,4")] + ) + ++;; When storing lane zero we can use the normal STR and its more permissive ++;; addressing modes. ++ ++(define_insn "aarch64_store_lane0" ++ [(set (match_operand: 0 "memory_operand" "=m") ++ (vec_select: (match_operand:VALL_F16 1 "register_operand" "w") ++ (parallel [(match_operand 2 "const_int_operand" "n")])))] ++ "TARGET_SIMD ++ && ENDIAN_LANE_N (mode, INTVAL (operands[2])) == 0" ++ "str\\t%1, %0" ++ [(set_attr "type" "neon_store1_1reg")] ++) ++ + (define_insn "load_pair" + [(set (match_operand:VD 0 "register_operand" "=w") + (match_operand:VD 1 "aarch64_mem_pair_operand" "Ump")) +@@ -561,18 +574,18 @@ + gcc_unreachable (); + } + } +- [(set_attr "type" "neon_from_gp, neon_ins, neon_load1_1reg")] ++ [(set_attr "type" "neon_from_gp, neon_ins, neon_load1_one_lane")] + ) + + (define_insn "*aarch64_simd_vec_copy_lane" +- [(set (match_operand:VALL 0 "register_operand" "=w") +- (vec_merge:VALL +- (vec_duplicate:VALL ++ [(set (match_operand:VALL_F16 0 "register_operand" "=w") ++ (vec_merge:VALL_F16 ++ (vec_duplicate:VALL_F16 + (vec_select: +- (match_operand:VALL 3 "register_operand" "w") ++ (match_operand:VALL_F16 3 "register_operand" "w") + (parallel + [(match_operand:SI 4 "immediate_operand" "i")]))) +- (match_operand:VALL 1 "register_operand" "0") ++ (match_operand:VALL_F16 1 "register_operand" "0") + (match_operand:SI 2 "immediate_operand" "i")))] + "TARGET_SIMD" + { +--- a/src/gcc/config/aarch64/aarch64.c ++++ b/src/gcc/config/aarch64/aarch64.c +@@ -193,10 +193,10 @@ static const struct aarch64_flag_desc aarch64_tuning_flags[] = + static const struct cpu_addrcost_table generic_addrcost_table = + { + { +- 0, /* hi */ ++ 1, /* hi */ + 0, /* si */ + 0, /* di */ +- 0, /* ti */ ++ 1, /* ti */ + }, + 0, /* pre_modify */ + 0, /* post_modify */ +@@ -526,6 +526,43 @@ static const cpu_approx_modes xgene1_approx_modes = + AARCH64_APPROX_ALL /* recip_sqrt */ + }; + ++/* Generic prefetch settings (which disable prefetch). */ ++static const cpu_prefetch_tune generic_prefetch_tune = ++{ ++ 0, /* num_slots */ ++ -1, /* l1_cache_size */ ++ -1, /* l1_cache_line_size */ ++ -1, /* l2_cache_size */ ++ -1 /* default_opt_level */ ++}; ++ ++static const cpu_prefetch_tune exynosm1_prefetch_tune = ++{ ++ 0, /* num_slots */ ++ -1, /* l1_cache_size */ ++ 64, /* l1_cache_line_size */ ++ -1, /* l2_cache_size */ ++ -1 /* default_opt_level */ ++}; ++ ++static const cpu_prefetch_tune qdf24xx_prefetch_tune = ++{ ++ 4, /* num_slots */ ++ 32, /* l1_cache_size */ ++ 64, /* l1_cache_line_size */ ++ 1024, /* l2_cache_size */ ++ 3 /* default_opt_level */ ++}; ++ ++static const cpu_prefetch_tune thunderx2t99_prefetch_tune = ++{ ++ 0, /* num_slots */ ++ -1, /* l1_cache_size */ ++ 64, /* l1_cache_line_size */ ++ -1, /* l2_cache_size */ ++ -1 /* default_opt_level */ ++}; ++ + static const struct tune_params generic_tunings = + { + &cortexa57_extra_costs, +@@ -538,17 +575,17 @@ static const struct tune_params generic_tunings = + 2, /* issue_rate */ + (AARCH64_FUSE_AES_AESMC), /* fusible_ops */ + 8, /* function_align. */ +- 8, /* jump_align. */ +- 4, /* loop_align. */ ++ 4, /* jump_align. */ ++ 8, /* loop_align. */ + 2, /* int_reassoc_width. */ + 4, /* fp_reassoc_width. */ + 1, /* vec_reassoc_width. */ + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ +- tune_params::AUTOPREFETCHER_OFF, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &generic_prefetch_tune + }; + + static const struct tune_params cortexa35_tunings = +@@ -564,7 +601,7 @@ static const struct tune_params cortexa35_tunings = + (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD + | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ + 16, /* function_align. */ +- 8, /* jump_align. */ ++ 4, /* jump_align. */ + 8, /* loop_align. */ + 2, /* int_reassoc_width. */ + 4, /* fp_reassoc_width. */ +@@ -572,9 +609,9 @@ static const struct tune_params cortexa35_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &generic_prefetch_tune + }; + + static const struct tune_params cortexa53_tunings = +@@ -590,7 +627,7 @@ static const struct tune_params cortexa53_tunings = + (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD + | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ + 16, /* function_align. */ +- 8, /* jump_align. */ ++ 4, /* jump_align. */ + 8, /* loop_align. */ + 2, /* int_reassoc_width. */ + 4, /* fp_reassoc_width. */ +@@ -598,9 +635,9 @@ static const struct tune_params cortexa53_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &generic_prefetch_tune + }; + + static const struct tune_params cortexa57_tunings = +@@ -616,7 +653,7 @@ static const struct tune_params cortexa57_tunings = + (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD + | AARCH64_FUSE_MOVK_MOVK), /* fusible_ops */ + 16, /* function_align. */ +- 8, /* jump_align. */ ++ 4, /* jump_align. */ + 8, /* loop_align. */ + 2, /* int_reassoc_width. */ + 4, /* fp_reassoc_width. */ +@@ -624,9 +661,9 @@ static const struct tune_params cortexa57_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_RENAME_FMA_REGS) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_RENAME_FMA_REGS), /* tune_flags. */ ++ &generic_prefetch_tune + }; + + static const struct tune_params cortexa72_tunings = +@@ -642,7 +679,7 @@ static const struct tune_params cortexa72_tunings = + (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD + | AARCH64_FUSE_MOVK_MOVK), /* fusible_ops */ + 16, /* function_align. */ +- 8, /* jump_align. */ ++ 4, /* jump_align. */ + 8, /* loop_align. */ + 2, /* int_reassoc_width. */ + 4, /* fp_reassoc_width. */ +@@ -650,9 +687,9 @@ static const struct tune_params cortexa72_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &generic_prefetch_tune + }; + + static const struct tune_params cortexa73_tunings = +@@ -668,7 +705,7 @@ static const struct tune_params cortexa73_tunings = + (AARCH64_FUSE_AES_AESMC | AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD + | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ + 16, /* function_align. */ +- 8, /* jump_align. */ ++ 4, /* jump_align. */ + 8, /* loop_align. */ + 2, /* int_reassoc_width. */ + 4, /* fp_reassoc_width. */ +@@ -676,11 +713,13 @@ static const struct tune_params cortexa73_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &generic_prefetch_tune + }; + ++ ++ + static const struct tune_params exynosm1_tunings = + { + &exynosm1_extra_costs, +@@ -701,9 +740,9 @@ static const struct tune_params exynosm1_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 48, /* max_case_values. */ +- 64, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &exynosm1_prefetch_tune + }; + + static const struct tune_params thunderx_tunings = +@@ -726,9 +765,9 @@ static const struct tune_params thunderx_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_OFF, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW), /* tune_flags. */ ++ &generic_prefetch_tune + }; + + static const struct tune_params xgene1_tunings = +@@ -751,9 +790,9 @@ static const struct tune_params xgene1_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 0, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_OFF, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &generic_prefetch_tune + }; + + static const struct tune_params qdf24xx_tunings = +@@ -777,9 +816,9 @@ static const struct tune_params qdf24xx_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 64, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_STRONG, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &qdf24xx_prefetch_tune + }; + + static const struct tune_params thunderx2t99_tunings = +@@ -802,9 +841,9 @@ static const struct tune_params thunderx2t99_tunings = + 2, /* min_div_recip_mul_sf. */ + 2, /* min_div_recip_mul_df. */ + 0, /* max_case_values. */ +- 64, /* cache_line_size. */ + tune_params::AUTOPREFETCHER_OFF, /* autoprefetcher_model. */ +- (AARCH64_EXTRA_TUNE_NONE) /* tune_flags. */ ++ (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ ++ &thunderx2t99_prefetch_tune + }; + + /* Support for fine-grained override of the tuning structures. */ +@@ -2683,11 +2722,19 @@ aarch64_emit_probe_stack_range (HOST_WIDE_INT first, HOST_WIDE_INT size) + plus_constant (Pmode, stack_pointer_rtx, -first)); + + /* LAST_ADDR = SP + FIRST + ROUNDED_SIZE. */ +- emit_set_insn (reg2, +- plus_constant (Pmode, stack_pointer_rtx, +- -(first + rounded_size))); +- +- ++ HOST_WIDE_INT adjustment = - (first + rounded_size); ++ if (! aarch64_uimm12_shift (adjustment)) ++ { ++ aarch64_internal_mov_immediate (reg2, GEN_INT (adjustment), ++ true, Pmode); ++ emit_set_insn (reg2, gen_rtx_PLUS (Pmode, stack_pointer_rtx, reg2)); ++ } ++ else ++ { ++ emit_set_insn (reg2, ++ plus_constant (Pmode, stack_pointer_rtx, adjustment)); ++ } ++ + /* Step 3: the loop + + do +@@ -4549,6 +4596,24 @@ aarch64_classify_address (struct aarch64_address_info *info, + } + } + ++/* Return true if the address X is valid for a PRFM instruction. ++ STRICT_P is true if we should do strict checking with ++ aarch64_classify_address. */ ++ ++bool ++aarch64_address_valid_for_prefetch_p (rtx x, bool strict_p) ++{ ++ struct aarch64_address_info addr; ++ ++ /* PRFM accepts the same addresses as DImode... */ ++ bool res = aarch64_classify_address (&addr, x, DImode, MEM, strict_p); ++ if (!res) ++ return false; ++ ++ /* ... except writeback forms. */ ++ return addr.type != ADDRESS_REG_WB; ++} ++ + bool + aarch64_symbolic_address_p (rtx x) + { +@@ -4633,6 +4698,50 @@ aarch64_fixed_condition_code_regs (unsigned int *p1, unsigned int *p2) + return true; + } + ++/* This function is used by the call expanders of the machine description. ++ RESULT is the register in which the result is returned. It's NULL for ++ "call" and "sibcall". ++ MEM is the location of the function call. ++ SIBCALL indicates whether this function call is normal call or sibling call. ++ It will generate different pattern accordingly. */ ++ ++void ++aarch64_expand_call (rtx result, rtx mem, bool sibcall) ++{ ++ rtx call, callee, tmp; ++ rtvec vec; ++ machine_mode mode; ++ ++ gcc_assert (MEM_P (mem)); ++ callee = XEXP (mem, 0); ++ mode = GET_MODE (callee); ++ gcc_assert (mode == Pmode); ++ ++ /* Decide if we should generate indirect calls by loading the ++ address of the callee into a register before performing ++ the branch-and-link. */ ++ if (SYMBOL_REF_P (callee) ++ ? (aarch64_is_long_call_p (callee) ++ || aarch64_is_noplt_call_p (callee)) ++ : !REG_P (callee)) ++ XEXP (mem, 0) = force_reg (mode, callee); ++ ++ call = gen_rtx_CALL (VOIDmode, mem, const0_rtx); ++ ++ if (result != NULL_RTX) ++ call = gen_rtx_SET (result, call); ++ ++ if (sibcall) ++ tmp = ret_rtx; ++ else ++ tmp = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, LR_REGNUM)); ++ ++ vec = gen_rtvec (2, call, tmp); ++ call = gen_rtx_PARALLEL (VOIDmode, vec); ++ ++ aarch64_emit_call_insn (call); ++} ++ + /* Emit call insn with PAT and do aarch64-specific handling. */ + + void +@@ -4705,7 +4814,7 @@ aarch64_select_cc_mode (RTX_CODE code, rtx x, rtx y) + the comparison will have to be swapped when we emit the assembly + code. */ + if ((GET_MODE (x) == SImode || GET_MODE (x) == DImode) +- && (REG_P (y) || GET_CODE (y) == SUBREG) ++ && (REG_P (y) || GET_CODE (y) == SUBREG || y == const0_rtx) + && (GET_CODE (x) == ASHIFT || GET_CODE (x) == ASHIFTRT + || GET_CODE (x) == LSHIFTRT + || GET_CODE (x) == ZERO_EXTEND || GET_CODE (x) == SIGN_EXTEND)) +@@ -7482,17 +7591,13 @@ cost_plus: + case UMOD: + if (speed) + { ++ /* Slighly prefer UMOD over SMOD. */ + if (VECTOR_MODE_P (mode)) + *cost += extra_cost->vect.alu; + else if (GET_MODE_CLASS (mode) == MODE_INT) + *cost += (extra_cost->mult[mode == DImode].add +- + extra_cost->mult[mode == DImode].idiv); +- else if (mode == DFmode) +- *cost += (extra_cost->fp[1].mult +- + extra_cost->fp[1].div); +- else if (mode == SFmode) +- *cost += (extra_cost->fp[0].mult +- + extra_cost->fp[0].div); ++ + extra_cost->mult[mode == DImode].idiv ++ + (code == MOD ? 1 : 0)); + } + return false; /* All arguments need to be in registers. */ + +@@ -7506,7 +7611,9 @@ cost_plus: + else if (GET_MODE_CLASS (mode) == MODE_INT) + /* There is no integer SQRT, so only DIV and UDIV can get + here. */ +- *cost += extra_cost->mult[mode == DImode].idiv; ++ *cost += (extra_cost->mult[mode == DImode].idiv ++ /* Slighly prefer UDIV over SDIV. */ ++ + (code == DIV ? 1 : 0)); + else + *cost += extra_cost->fp[mode == DFmode].div; + } +@@ -8687,12 +8794,38 @@ aarch64_override_options_internal (struct gcc_options *opts) + opts->x_param_values, + global_options_set.x_param_values); + +- /* Set the L1 cache line size. */ +- if (selected_cpu->tune->cache_line_size != 0) ++ /* Set up parameters to be used in prefetching algorithm. Do not ++ override the defaults unless we are tuning for a core we have ++ researched values for. */ ++ if (aarch64_tune_params.prefetch->num_slots > 0) ++ maybe_set_param_value (PARAM_SIMULTANEOUS_PREFETCHES, ++ aarch64_tune_params.prefetch->num_slots, ++ opts->x_param_values, ++ global_options_set.x_param_values); ++ if (aarch64_tune_params.prefetch->l1_cache_size >= 0) ++ maybe_set_param_value (PARAM_L1_CACHE_SIZE, ++ aarch64_tune_params.prefetch->l1_cache_size, ++ opts->x_param_values, ++ global_options_set.x_param_values); ++ if (aarch64_tune_params.prefetch->l1_cache_line_size >= 0) + maybe_set_param_value (PARAM_L1_CACHE_LINE_SIZE, +- selected_cpu->tune->cache_line_size, ++ aarch64_tune_params.prefetch->l1_cache_line_size, + opts->x_param_values, + global_options_set.x_param_values); ++ if (aarch64_tune_params.prefetch->l2_cache_size >= 0) ++ maybe_set_param_value (PARAM_L2_CACHE_SIZE, ++ aarch64_tune_params.prefetch->l2_cache_size, ++ opts->x_param_values, ++ global_options_set.x_param_values); ++ ++ /* Enable sw prefetching at specified optimization level for ++ CPUS that have prefetch. Lower optimization level threshold by 1 ++ when profiling is enabled. */ ++ if (opts->x_flag_prefetch_loop_arrays < 0 ++ && !opts->x_optimize_size ++ && aarch64_tune_params.prefetch->default_opt_level >= 0 ++ && opts->x_optimize >= aarch64_tune_params.prefetch->default_opt_level) ++ opts->x_flag_prefetch_loop_arrays = 1; + + aarch64_override_options_after_change_1 (opts); + } +@@ -11647,6 +11780,57 @@ aarch64_expand_vector_init (rtx target, rtx vals) + return; + } + ++ enum insn_code icode = optab_handler (vec_set_optab, mode); ++ gcc_assert (icode != CODE_FOR_nothing); ++ ++ /* If there are only variable elements, try to optimize ++ the insertion using dup for the most common element ++ followed by insertions. */ ++ ++ /* The algorithm will fill matches[*][0] with the earliest matching element, ++ and matches[X][1] with the count of duplicate elements (if X is the ++ earliest element which has duplicates). */ ++ ++ if (n_var == n_elts && n_elts <= 16) ++ { ++ int matches[16][2] = {0}; ++ for (int i = 0; i < n_elts; i++) ++ { ++ for (int j = 0; j <= i; j++) ++ { ++ if (rtx_equal_p (XVECEXP (vals, 0, i), XVECEXP (vals, 0, j))) ++ { ++ matches[i][0] = j; ++ matches[j][1]++; ++ break; ++ } ++ } ++ } ++ int maxelement = 0; ++ int maxv = 0; ++ for (int i = 0; i < n_elts; i++) ++ if (matches[i][1] > maxv) ++ { ++ maxelement = i; ++ maxv = matches[i][1]; ++ } ++ ++ /* Create a duplicate of the most common element. */ ++ rtx x = copy_to_mode_reg (inner_mode, XVECEXP (vals, 0, maxelement)); ++ aarch64_emit_move (target, gen_rtx_VEC_DUPLICATE (mode, x)); ++ ++ /* Insert the rest. */ ++ for (int i = 0; i < n_elts; i++) ++ { ++ rtx x = XVECEXP (vals, 0, i); ++ if (matches[i][0] == maxelement) ++ continue; ++ x = copy_to_mode_reg (inner_mode, x); ++ emit_insn (GEN_FCN (icode) (target, x, GEN_INT (i))); ++ } ++ return; ++ } ++ + /* Initialise a vector which is part-variable. We want to first try + to build those lanes which are constant in the most efficient way we + can. */ +@@ -11680,10 +11864,6 @@ aarch64_expand_vector_init (rtx target, rtx vals) + } + + /* Insert the variable lanes directly. */ +- +- enum insn_code icode = optab_handler (vec_set_optab, mode); +- gcc_assert (icode != CODE_FOR_nothing); +- + for (int i = 0; i < n_elts; i++) + { + rtx x = XVECEXP (vals, 0, i); +@@ -12049,6 +12229,17 @@ aarch64_split_compare_and_swap (rtx operands[]) + mode = GET_MODE (mem); + model = memmodel_from_int (INTVAL (model_rtx)); + ++ /* When OLDVAL is zero and we want the strong version we can emit a tighter ++ loop: ++ .label1: ++ LD[A]XR rval, [mem] ++ CBNZ rval, .label2 ++ ST[L]XR scratch, newval, [mem] ++ CBNZ scratch, .label1 ++ .label2: ++ CMP rval, 0. */ ++ bool strong_zero_p = !is_weak && oldval == const0_rtx; ++ + label1 = NULL; + if (!is_weak) + { +@@ -12065,11 +12256,21 @@ aarch64_split_compare_and_swap (rtx operands[]) + else + aarch64_emit_load_exclusive (mode, rval, mem, model_rtx); + +- cond = aarch64_gen_compare_reg (NE, rval, oldval); +- x = gen_rtx_NE (VOIDmode, cond, const0_rtx); +- x = gen_rtx_IF_THEN_ELSE (VOIDmode, x, +- gen_rtx_LABEL_REF (Pmode, label2), pc_rtx); +- aarch64_emit_unlikely_jump (gen_rtx_SET (pc_rtx, x)); ++ if (strong_zero_p) ++ { ++ x = gen_rtx_NE (VOIDmode, rval, const0_rtx); ++ x = gen_rtx_IF_THEN_ELSE (VOIDmode, x, ++ gen_rtx_LABEL_REF (Pmode, label2), pc_rtx); ++ aarch64_emit_unlikely_jump (gen_rtx_SET (pc_rtx, x)); ++ } ++ else ++ { ++ cond = aarch64_gen_compare_reg (NE, rval, oldval); ++ x = gen_rtx_NE (VOIDmode, cond, const0_rtx); ++ x = gen_rtx_IF_THEN_ELSE (VOIDmode, x, ++ gen_rtx_LABEL_REF (Pmode, label2), pc_rtx); ++ aarch64_emit_unlikely_jump (gen_rtx_SET (pc_rtx, x)); ++ } + + aarch64_emit_store_exclusive (mode, scratch, mem, newval, model_rtx); + +@@ -12088,7 +12289,15 @@ aarch64_split_compare_and_swap (rtx operands[]) + } + + emit_label (label2); +- ++ /* If we used a CBNZ in the exchange loop emit an explicit compare with RVAL ++ to set the condition flags. If this is not used it will be removed by ++ later passes. */ ++ if (strong_zero_p) ++ { ++ cond = gen_rtx_REG (CCmode, CC_REGNUM); ++ x = gen_rtx_COMPARE (CCmode, rval, const0_rtx); ++ emit_insn (gen_rtx_SET (cond, x)); ++ } + /* Emit any final barrier needed for a __sync operation. */ + if (is_mm_sync (model)) + aarch64_emit_post_barrier (model); +--- a/src/gcc/config/aarch64/aarch64.md ++++ b/src/gcc/config/aarch64/aarch64.md +@@ -519,27 +519,31 @@ + ) + + (define_insn "prefetch" +- [(prefetch (match_operand:DI 0 "register_operand" "r") ++ [(prefetch (match_operand:DI 0 "aarch64_prefetch_operand" "Dp") + (match_operand:QI 1 "const_int_operand" "") + (match_operand:QI 2 "const_int_operand" ""))] + "" + { +- const char * pftype[2][4] = ++ const char * pftype[2][4] = + { +- {"prfm\\tPLDL1STRM, %a0", +- "prfm\\tPLDL3KEEP, %a0", +- "prfm\\tPLDL2KEEP, %a0", +- "prfm\\tPLDL1KEEP, %a0"}, +- {"prfm\\tPSTL1STRM, %a0", +- "prfm\\tPSTL3KEEP, %a0", +- "prfm\\tPSTL2KEEP, %a0", +- "prfm\\tPSTL1KEEP, %a0"}, ++ {"prfm\\tPLDL1STRM, %0", ++ "prfm\\tPLDL3KEEP, %0", ++ "prfm\\tPLDL2KEEP, %0", ++ "prfm\\tPLDL1KEEP, %0"}, ++ {"prfm\\tPSTL1STRM, %0", ++ "prfm\\tPSTL3KEEP, %0", ++ "prfm\\tPSTL2KEEP, %0", ++ "prfm\\tPSTL1KEEP, %0"}, + }; + + int locality = INTVAL (operands[2]); + + gcc_assert (IN_RANGE (locality, 0, 3)); + ++ /* PRFM accepts the same addresses as a 64-bit LDR so wrap ++ the address into a DImode MEM so that aarch64_print_operand knows ++ how to print it. */ ++ operands[0] = gen_rtx_MEM (DImode, operands[0]); + return pftype[INTVAL(operands[1])][locality]; + } + [(set_attr "type" "load1")] +@@ -713,12 +717,6 @@ + ;; Subroutine calls and sibcalls + ;; ------------------------------------------------------------------- + +-(define_expand "call_internal" +- [(parallel [(call (match_operand 0 "memory_operand" "") +- (match_operand 1 "general_operand" "")) +- (use (match_operand 2 "" "")) +- (clobber (reg:DI LR_REGNUM))])]) +- + (define_expand "call" + [(parallel [(call (match_operand 0 "memory_operand" "") + (match_operand 1 "general_operand" "")) +@@ -727,57 +725,22 @@ + "" + " + { +- rtx callee, pat; +- +- /* In an untyped call, we can get NULL for operand 2. */ +- if (operands[2] == NULL) +- operands[2] = const0_rtx; +- +- /* Decide if we should generate indirect calls by loading the +- 64-bit address of the callee into a register before performing +- the branch-and-link. */ +- callee = XEXP (operands[0], 0); +- if (GET_CODE (callee) == SYMBOL_REF +- ? (aarch64_is_long_call_p (callee) +- || aarch64_is_noplt_call_p (callee)) +- : !REG_P (callee)) +- XEXP (operands[0], 0) = force_reg (Pmode, callee); +- +- pat = gen_call_internal (operands[0], operands[1], operands[2]); +- aarch64_emit_call_insn (pat); ++ aarch64_expand_call (NULL_RTX, operands[0], false); + DONE; + }" + ) + +-(define_insn "*call_reg" +- [(call (mem:DI (match_operand:DI 0 "register_operand" "r")) ++(define_insn "*call_insn" ++ [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "r, Usf")) + (match_operand 1 "" "")) +- (use (match_operand 2 "" "")) + (clobber (reg:DI LR_REGNUM))] + "" +- "blr\\t%0" +- [(set_attr "type" "call")] +-) +- +-(define_insn "*call_symbol" +- [(call (mem:DI (match_operand:DI 0 "" "")) +- (match_operand 1 "" "")) +- (use (match_operand 2 "" "")) +- (clobber (reg:DI LR_REGNUM))] +- "GET_CODE (operands[0]) == SYMBOL_REF +- && !aarch64_is_long_call_p (operands[0]) +- && !aarch64_is_noplt_call_p (operands[0])" +- "bl\\t%a0" +- [(set_attr "type" "call")] ++ "@ ++ blr\\t%0 ++ bl\\t%a0" ++ [(set_attr "type" "call, call")] + ) + +-(define_expand "call_value_internal" +- [(parallel [(set (match_operand 0 "" "") +- (call (match_operand 1 "memory_operand" "") +- (match_operand 2 "general_operand" ""))) +- (use (match_operand 3 "" "")) +- (clobber (reg:DI LR_REGNUM))])]) +- + (define_expand "call_value" + [(parallel [(set (match_operand 0 "" "") + (call (match_operand 1 "memory_operand" "") +@@ -787,60 +750,23 @@ + "" + " + { +- rtx callee, pat; +- +- /* In an untyped call, we can get NULL for operand 3. */ +- if (operands[3] == NULL) +- operands[3] = const0_rtx; +- +- /* Decide if we should generate indirect calls by loading the +- 64-bit address of the callee into a register before performing +- the branch-and-link. */ +- callee = XEXP (operands[1], 0); +- if (GET_CODE (callee) == SYMBOL_REF +- ? (aarch64_is_long_call_p (callee) +- || aarch64_is_noplt_call_p (callee)) +- : !REG_P (callee)) +- XEXP (operands[1], 0) = force_reg (Pmode, callee); +- +- pat = gen_call_value_internal (operands[0], operands[1], operands[2], +- operands[3]); +- aarch64_emit_call_insn (pat); ++ aarch64_expand_call (operands[0], operands[1], false); + DONE; + }" + ) + +-(define_insn "*call_value_reg" ++(define_insn "*call_value_insn" + [(set (match_operand 0 "" "") +- (call (mem:DI (match_operand:DI 1 "register_operand" "r")) ++ (call (mem:DI (match_operand:DI 1 "aarch64_call_insn_operand" "r, Usf")) + (match_operand 2 "" ""))) +- (use (match_operand 3 "" "")) + (clobber (reg:DI LR_REGNUM))] + "" +- "blr\\t%1" +- [(set_attr "type" "call")] +- +-) +- +-(define_insn "*call_value_symbol" +- [(set (match_operand 0 "" "") +- (call (mem:DI (match_operand:DI 1 "" "")) +- (match_operand 2 "" ""))) +- (use (match_operand 3 "" "")) +- (clobber (reg:DI LR_REGNUM))] +- "GET_CODE (operands[1]) == SYMBOL_REF +- && !aarch64_is_long_call_p (operands[1]) +- && !aarch64_is_noplt_call_p (operands[1])" +- "bl\\t%a1" +- [(set_attr "type" "call")] ++ "@ ++ blr\\t%1 ++ bl\\t%a1" ++ [(set_attr "type" "call, call")] + ) + +-(define_expand "sibcall_internal" +- [(parallel [(call (match_operand 0 "memory_operand" "") +- (match_operand 1 "general_operand" "")) +- (return) +- (use (match_operand 2 "" ""))])]) +- + (define_expand "sibcall" + [(parallel [(call (match_operand 0 "memory_operand" "") + (match_operand 1 "general_operand" "")) +@@ -848,29 +774,11 @@ + (use (match_operand 2 "" ""))])] + "" + { +- rtx pat; +- rtx callee = XEXP (operands[0], 0); +- if (!REG_P (callee) +- && ((GET_CODE (callee) != SYMBOL_REF) +- || aarch64_is_noplt_call_p (callee))) +- XEXP (operands[0], 0) = force_reg (Pmode, callee); +- +- if (operands[2] == NULL_RTX) +- operands[2] = const0_rtx; +- +- pat = gen_sibcall_internal (operands[0], operands[1], operands[2]); +- aarch64_emit_call_insn (pat); ++ aarch64_expand_call (NULL_RTX, operands[0], true); + DONE; + } + ) + +-(define_expand "sibcall_value_internal" +- [(parallel [(set (match_operand 0 "" "") +- (call (match_operand 1 "memory_operand" "") +- (match_operand 2 "general_operand" ""))) +- (return) +- (use (match_operand 3 "" ""))])]) +- + (define_expand "sibcall_value" + [(parallel [(set (match_operand 0 "" "") + (call (match_operand 1 "memory_operand" "") +@@ -879,19 +787,7 @@ + (use (match_operand 3 "" ""))])] + "" + { +- rtx pat; +- rtx callee = XEXP (operands[1], 0); +- if (!REG_P (callee) +- && ((GET_CODE (callee) != SYMBOL_REF) +- || aarch64_is_noplt_call_p (callee))) +- XEXP (operands[1], 0) = force_reg (Pmode, callee); +- +- if (operands[3] == NULL_RTX) +- operands[3] = const0_rtx; +- +- pat = gen_sibcall_value_internal (operands[0], operands[1], operands[2], +- operands[3]); +- aarch64_emit_call_insn (pat); ++ aarch64_expand_call (operands[0], operands[1], true); + DONE; + } + ) +@@ -899,8 +795,7 @@ + (define_insn "*sibcall_insn" + [(call (mem:DI (match_operand:DI 0 "aarch64_call_insn_operand" "Ucs, Usf")) + (match_operand 1 "" "")) +- (return) +- (use (match_operand 2 "" ""))] ++ (return)] + "SIBLING_CALL_P (insn)" + "@ + br\\t%0 +@@ -913,8 +808,7 @@ + (call (mem:DI + (match_operand:DI 1 "aarch64_call_insn_operand" "Ucs, Usf")) + (match_operand 2 "" ""))) +- (return) +- (use (match_operand 3 "" ""))] ++ (return)] + "SIBLING_CALL_P (insn)" + "@ + br\\t%1 +@@ -1026,8 +920,8 @@ + ) + + (define_insn_and_split "*movsi_aarch64" +- [(set (match_operand:SI 0 "nonimmediate_operand" "=r,k,r,r,r,r,*w,m, m,r,r ,*w, r,*w") +- (match_operand:SI 1 "aarch64_mov_operand" " r,r,k,M,n,m, m,rZ,*w,S,Ush,rZ,*w,*w"))] ++ [(set (match_operand:SI 0 "nonimmediate_operand" "=r,k,r,r,r,r,*w,m, m,r,r ,*w,r,*w") ++ (match_operand:SI 1 "aarch64_mov_operand" " r,r,k,M,n,m, m,rZ,*w,Usa,Ush,rZ,w,*w"))] + "(register_operand (operands[0], SImode) + || aarch64_reg_or_zero (operands[1], SImode))" + "@ +@@ -1058,8 +952,8 @@ + ) + + (define_insn_and_split "*movdi_aarch64" +- [(set (match_operand:DI 0 "nonimmediate_operand" "=r,k,r,r,r,r,*w,m, m,r,r, *w, r,*w,w") +- (match_operand:DI 1 "aarch64_mov_operand" " r,r,k,N,n,m, m,rZ,*w,S,Ush,rZ,*w,*w,Dd"))] ++ [(set (match_operand:DI 0 "nonimmediate_operand" "=r,k,r,r,r,r,*w,m, m,r,r, *w,r,*w,w") ++ (match_operand:DI 1 "aarch64_mov_operand" " r,r,k,N,n,m, m,rZ,*w,Usa,Ush,rZ,w,*w,Dd"))] + "(register_operand (operands[0], DImode) + || aarch64_reg_or_zero (operands[1], DImode))" + "@ +@@ -2340,6 +2234,55 @@ + [(set_attr "type" "alus_sreg")] + ) + ++(define_insn "sub3_compare1_imm" ++ [(set (reg:CC CC_REGNUM) ++ (compare:CC ++ (match_operand:GPI 1 "register_operand" "r") ++ (match_operand:GPI 3 "const_int_operand" "n"))) ++ (set (match_operand:GPI 0 "register_operand" "=r") ++ (plus:GPI (match_dup 1) ++ (match_operand:GPI 2 "aarch64_sub_immediate" "J")))] ++ "INTVAL (operands[3]) == -INTVAL (operands[2])" ++ "subs\\t%0, %1, #%n2" ++ [(set_attr "type" "alus_sreg")] ++) ++ ++(define_peephole2 ++ [(set (match_operand:GPI 0 "register_operand") ++ (minus:GPI (match_operand:GPI 1 "aarch64_reg_or_zero") ++ (match_operand:GPI 2 "aarch64_reg_or_zero"))) ++ (set (reg:CC CC_REGNUM) ++ (compare:CC ++ (match_dup 1) ++ (match_dup 2)))] ++ "!reg_overlap_mentioned_p (operands[0], operands[1]) ++ && !reg_overlap_mentioned_p (operands[0], operands[2])" ++ [(const_int 0)] ++ { ++ emit_insn (gen_sub3_compare1 (operands[0], operands[1], ++ operands[2])); ++ DONE; ++ } ++) ++ ++(define_peephole2 ++ [(set (match_operand:GPI 0 "register_operand") ++ (plus:GPI (match_operand:GPI 1 "register_operand") ++ (match_operand:GPI 2 "aarch64_sub_immediate"))) ++ (set (reg:CC CC_REGNUM) ++ (compare:CC ++ (match_dup 1) ++ (match_operand:GPI 3 "const_int_operand")))] ++ "!reg_overlap_mentioned_p (operands[0], operands[1]) ++ && INTVAL (operands[3]) == -INTVAL (operands[2])" ++ [(const_int 0)] ++ { ++ emit_insn (gen_sub3_compare1_imm (operands[0], operands[1], ++ operands[2], operands[3])); ++ DONE; ++ } ++) ++ + (define_insn "*sub__" + [(set (match_operand:GPI 0 "register_operand" "=r") + (minus:GPI (match_operand:GPI 3 "register_operand" "r") +@@ -5030,14 +4973,16 @@ + (match_operand:SF 2 "register_operand")] + "TARGET_FLOAT && TARGET_SIMD" + { +- rtx mask = gen_reg_rtx (DImode); ++ rtx v_bitmask = gen_reg_rtx (V2SImode); + + /* Juggle modes to get us in to a vector mode for BSL. */ +- rtx op1 = lowpart_subreg (V2SFmode, operands[1], SFmode); ++ rtx op1 = lowpart_subreg (DImode, operands[1], SFmode); + rtx op2 = lowpart_subreg (V2SFmode, operands[2], SFmode); + rtx tmp = gen_reg_rtx (V2SFmode); +- emit_move_insn (mask, GEN_INT (HOST_WIDE_INT_1U << 31)); +- emit_insn (gen_aarch64_simd_bslv2sf (tmp, mask, op2, op1)); ++ emit_move_insn (v_bitmask, ++ aarch64_simd_gen_const_vector_dup (V2SImode, ++ HOST_WIDE_INT_M1U << 31)); ++ emit_insn (gen_aarch64_simd_bslv2sf (tmp, v_bitmask, op2, op1)); + emit_move_insn (operands[0], lowpart_subreg (SFmode, tmp, V2SFmode)); + DONE; + } +--- a/src/gcc/config/aarch64/atomics.md ++++ b/src/gcc/config/aarch64/atomics.md +@@ -25,7 +25,7 @@ + (match_operand:ALLI 1 "register_operand" "") ;; val out + (match_operand:ALLI 2 "aarch64_sync_memory_operand" "") ;; memory + (match_operand:ALLI 3 "general_operand" "") ;; expected +- (match_operand:ALLI 4 "register_operand" "") ;; desired ++ (match_operand:ALLI 4 "aarch64_reg_or_zero" "") ;; desired + (match_operand:SI 5 "const_int_operand") ;; is_weak + (match_operand:SI 6 "const_int_operand") ;; mod_s + (match_operand:SI 7 "const_int_operand")] ;; mod_f +@@ -45,7 +45,7 @@ + (set (match_dup 1) + (unspec_volatile:SHORT + [(match_operand:SI 2 "aarch64_plus_operand" "rI") ;; expected +- (match_operand:SHORT 3 "register_operand" "r") ;; desired ++ (match_operand:SHORT 3 "aarch64_reg_or_zero" "rZ") ;; desired + (match_operand:SI 4 "const_int_operand") ;; is_weak + (match_operand:SI 5 "const_int_operand") ;; mod_s + (match_operand:SI 6 "const_int_operand")] ;; mod_f +@@ -69,7 +69,7 @@ + (set (match_dup 1) + (unspec_volatile:GPI + [(match_operand:GPI 2 "aarch64_plus_operand" "rI") ;; expect +- (match_operand:GPI 3 "register_operand" "r") ;; desired ++ (match_operand:GPI 3 "aarch64_reg_or_zero" "rZ") ;; desired + (match_operand:SI 4 "const_int_operand") ;; is_weak + (match_operand:SI 5 "const_int_operand") ;; mod_s + (match_operand:SI 6 "const_int_operand")] ;; mod_f +@@ -534,7 +534,7 @@ + (unspec_volatile:SI [(const_int 0)] UNSPECV_SX)) + (set (match_operand:ALLI 1 "aarch64_sync_memory_operand" "=Q") + (unspec_volatile:ALLI +- [(match_operand:ALLI 2 "register_operand" "r") ++ [(match_operand:ALLI 2 "aarch64_reg_or_zero" "rZ") + (match_operand:SI 3 "const_int_operand")] + UNSPECV_SX))] + "" +--- a/src/gcc/config/aarch64/constraints.md ++++ b/src/gcc/config/aarch64/constraints.md +@@ -98,6 +98,14 @@ + (and (match_code "high") + (match_test "aarch64_valid_symref (XEXP (op, 0), GET_MODE (XEXP (op, 0)))"))) + ++(define_constraint "Usa" ++ "@internal ++ A constraint that matches an absolute symbolic address that can be ++ loaded by a single ADR." ++ (and (match_code "const,symbol_ref,label_ref") ++ (match_test "aarch64_symbolic_address_p (op)") ++ (match_test "aarch64_mov_operand_p (op, GET_MODE (op))"))) ++ + (define_constraint "Uss" + "@internal + A constraint that matches an immediate shift constant in SImode." +@@ -118,7 +126,8 @@ + (define_constraint "Usf" + "@internal Usf is a symbol reference under the context where plt stub allowed." + (and (match_code "symbol_ref") +- (match_test "!aarch64_is_noplt_call_p (op)"))) ++ (match_test "!(aarch64_is_noplt_call_p (op) ++ || aarch64_is_long_call_p (op))"))) + + (define_constraint "UsM" + "@internal +@@ -214,3 +223,8 @@ + A constraint that matches an immediate operand valid for AdvSIMD scalar." + (and (match_code "const_int") + (match_test "aarch64_simd_imm_scalar_p (op, GET_MODE (op))"))) ++ ++(define_address_constraint "Dp" ++ "@internal ++ An address valid for a prefetch instruction." ++ (match_test "aarch64_address_valid_for_prefetch_p (op, true)")) +--- a/src/gcc/config/aarch64/predicates.md ++++ b/src/gcc/config/aarch64/predicates.md +@@ -77,6 +77,10 @@ + (define_predicate "aarch64_fp_vec_pow2" + (match_test "aarch64_vec_fpconst_pow_of_2 (op) > 0")) + ++(define_predicate "aarch64_sub_immediate" ++ (and (match_code "const_int") ++ (match_test "aarch64_uimm12_shift (-INTVAL (op))"))) ++ + (define_predicate "aarch64_plus_immediate" + (and (match_code "const_int") + (ior (match_test "aarch64_uimm12_shift (INTVAL (op))") +@@ -165,6 +169,9 @@ + (match_test "aarch64_legitimate_address_p (mode, XEXP (op, 0), PARALLEL, + 0)"))) + ++(define_predicate "aarch64_prefetch_operand" ++ (match_test "aarch64_address_valid_for_prefetch_p (op, false)")) ++ + (define_predicate "aarch64_valid_symref" + (match_code "const, symbol_ref, label_ref") + { +--- a/src/gcc/config/aarch64/thunderx2t99.md ++++ b/src/gcc/config/aarch64/thunderx2t99.md +@@ -441,3 +441,23 @@ + (and (eq_attr "tune" "thunderx2t99") + (eq_attr "type" "neon_store2_one_lane,neon_store2_one_lane_q")) + "thunderx2t99_ls01,thunderx2t99_f01") ++ ++;; Crypto extensions. ++ ++(define_insn_reservation "thunderx2t99_aes" 5 ++ (and (eq_attr "tune" "thunderx2t99") ++ (eq_attr "type" "crypto_aese,crypto_aesmc")) ++ "thunderx2t99_f1") ++ ++(define_insn_reservation "thunderx2t99_sha" 7 ++ (and (eq_attr "tune" "thunderx2t99") ++ (eq_attr "type" "crypto_sha1_fast,crypto_sha1_xor,crypto_sha1_slow,\ ++ crypto_sha256_fast,crypto_sha256_slow")) ++ "thunderx2t99_f1") ++ ++;; CRC extension. ++ ++(define_insn_reservation "thunderx2t99_crc" 4 ++ (and (eq_attr "tune" "thunderx2t99") ++ (eq_attr "type" "crc")) ++ "thunderx2t99_i1") +--- a/src/gcc/config/arm/aarch-common-protos.h ++++ b/src/gcc/config/arm/aarch-common-protos.h +@@ -30,7 +30,9 @@ extern bool aarch_rev16_p (rtx); + extern bool aarch_rev16_shleft_mask_imm_p (rtx, machine_mode); + extern bool aarch_rev16_shright_mask_imm_p (rtx, machine_mode); + extern int arm_early_load_addr_dep (rtx, rtx); ++extern int arm_early_load_addr_dep_ptr (rtx, rtx); + extern int arm_early_store_addr_dep (rtx, rtx); ++extern int arm_early_store_addr_dep_ptr (rtx, rtx); + extern int arm_mac_accumulator_is_mul_result (rtx, rtx); + extern int arm_mac_accumulator_is_result (rtx, rtx); + extern int arm_no_early_alu_shift_dep (rtx, rtx); +--- a/src/gcc/config/arm/aarch-common.c ++++ b/src/gcc/config/arm/aarch-common.c +@@ -241,6 +241,24 @@ arm_early_load_addr_dep (rtx producer, rtx consumer) + return reg_overlap_mentioned_p (value, addr); + } + ++/* Return nonzero if the CONSUMER instruction (a load) does need ++ a Pmode PRODUCER's value to calculate the address. */ ++ ++int ++arm_early_load_addr_dep_ptr (rtx producer, rtx consumer) ++{ ++ rtx value = arm_find_sub_rtx_with_code (PATTERN (producer), SET, false); ++ rtx addr = arm_find_sub_rtx_with_code (PATTERN (consumer), SET, false); ++ ++ if (!value || !addr || !MEM_P (SET_SRC (value))) ++ return 0; ++ ++ value = SET_DEST (value); ++ addr = SET_SRC (addr); ++ ++ return GET_MODE (value) == Pmode && reg_overlap_mentioned_p (value, addr); ++} ++ + /* Return nonzero if the CONSUMER instruction (an ALU op) does not + have an early register shift value or amount dependency on the + result of PRODUCER. */ +@@ -336,6 +354,24 @@ arm_early_store_addr_dep (rtx producer, rtx consumer) + return !arm_no_early_store_addr_dep (producer, consumer); + } + ++/* Return nonzero if the CONSUMER instruction (a store) does need ++ a Pmode PRODUCER's value to calculate the address. */ ++ ++int ++arm_early_store_addr_dep_ptr (rtx producer, rtx consumer) ++{ ++ rtx value = arm_find_sub_rtx_with_code (PATTERN (producer), SET, false); ++ rtx addr = arm_find_sub_rtx_with_code (PATTERN (consumer), SET, false); ++ ++ if (!value || !addr || !MEM_P (SET_SRC (value))) ++ return 0; ++ ++ value = SET_DEST (value); ++ addr = SET_DEST (addr); ++ ++ return GET_MODE (value) == Pmode && reg_overlap_mentioned_p (value, addr); ++} ++ + /* Return non-zero iff the consumer (a multiply-accumulate or a + multiple-subtract instruction) has an accumulator dependency on the + result of the producer and no other dependency on that result. It +--- a/src/gcc/config/arm/aarch-cost-tables.h ++++ b/src/gcc/config/arm/aarch-cost-tables.h +@@ -154,7 +154,7 @@ const struct cpu_cost_table cortexa53_extra_costs = + COSTS_N_INSNS (1), /* extend. */ + COSTS_N_INSNS (1), /* add. */ + COSTS_N_INSNS (1), /* extend_add. */ +- COSTS_N_INSNS (7) /* idiv. */ ++ COSTS_N_INSNS (9) /* idiv. */ + }, + /* MULT DImode */ + { +--- a/src/gcc/config/arm/arm-builtins.c ++++ b/src/gcc/config/arm/arm-builtins.c +@@ -3058,15 +3058,15 @@ arm_expand_builtin (tree exp, + } + + for (i = 0, d = bdesc_2arg; i < ARRAY_SIZE (bdesc_2arg); i++, d++) +- if (d->code == (const enum arm_builtins) fcode) ++ if (d->code == (enum arm_builtins) fcode) + return arm_expand_binop_builtin (d->icode, exp, target); + + for (i = 0, d = bdesc_1arg; i < ARRAY_SIZE (bdesc_1arg); i++, d++) +- if (d->code == (const enum arm_builtins) fcode) ++ if (d->code == (enum arm_builtins) fcode) + return arm_expand_unop_builtin (d->icode, exp, target, 0); + + for (i = 0, d = bdesc_3arg; i < ARRAY_SIZE (bdesc_3arg); i++, d++) +- if (d->code == (const enum arm_builtins) fcode) ++ if (d->code == (enum arm_builtins) fcode) + return arm_expand_ternop_builtin (d->icode, exp, target); + + /* @@@ Should really do something sensible here. */ +--- a/src/gcc/config/arm/arm.c ++++ b/src/gcc/config/arm/arm.c +@@ -85,6 +85,7 @@ static bool arm_const_not_ok_for_debug_p (rtx); + static int arm_needs_doubleword_align (machine_mode, const_tree); + static int arm_compute_static_chain_stack_bytes (void); + static arm_stack_offsets *arm_get_frame_offsets (void); ++static void arm_compute_frame_layout (void); + static void arm_add_gc_roots (void); + static int arm_gen_constant (enum rtx_code, machine_mode, rtx, + unsigned HOST_WIDE_INT, rtx, rtx, int, int); +@@ -680,6 +681,9 @@ static const struct attribute_spec arm_attribute_table[] = + #undef TARGET_SCALAR_MODE_SUPPORTED_P + #define TARGET_SCALAR_MODE_SUPPORTED_P arm_scalar_mode_supported_p + ++#undef TARGET_COMPUTE_FRAME_LAYOUT ++#define TARGET_COMPUTE_FRAME_LAYOUT arm_compute_frame_layout ++ + #undef TARGET_FRAME_POINTER_REQUIRED + #define TARGET_FRAME_POINTER_REQUIRED arm_frame_pointer_required + +@@ -4009,6 +4013,10 @@ use_simple_return_p (void) + { + arm_stack_offsets *offsets; + ++ /* Note this function can be called before or after reload. */ ++ if (!reload_completed) ++ arm_compute_frame_layout (); ++ + offsets = arm_get_frame_offsets (); + return offsets->outgoing_args != 0; + } +@@ -9285,6 +9293,10 @@ arm_rtx_costs_internal (rtx x, enum rtx_code code, enum rtx_code outer_code, + *cost += COSTS_N_INSNS (speed_p ? extra_cost->mult[0].idiv : 0); + else + *cost = LIBCALL_COST (2); ++ ++ /* Make the cost of sdiv more expensive so when both sdiv and udiv are ++ possible udiv is prefered. */ ++ *cost += (code == DIV ? COSTS_N_INSNS (1) : 0); + return false; /* All arguments must be in registers. */ + + case MOD: +@@ -9307,7 +9319,9 @@ arm_rtx_costs_internal (rtx x, enum rtx_code code, enum rtx_code outer_code, + + /* Fall-through. */ + case UMOD: +- *cost = LIBCALL_COST (2); ++ /* Make the cost of sdiv more expensive so when both sdiv and udiv are ++ possible udiv is prefered. */ ++ *cost = LIBCALL_COST (2) + (code == MOD ? COSTS_N_INSNS (1) : 0); + return false; /* All arguments must be in registers. */ + + case ROTATE: +@@ -16857,9 +16871,10 @@ compute_not_to_clear_mask (tree arg_type, rtx arg_rtx, int regno, + return not_to_clear_mask; + } + +-/* Saves callee saved registers, clears callee saved registers and caller saved +- registers not used to pass arguments before a cmse_nonsecure_call. And +- restores the callee saved registers after. */ ++/* Clears caller saved registers not used to pass arguments before a ++ cmse_nonsecure_call. Saving, clearing and restoring of callee saved ++ registers is done in __gnu_cmse_nonsecure_call libcall. ++ See libgcc/config/arm/cmse_nonsecure_call.S. */ + + static void + cmse_nonsecure_call_clear_caller_saved (void) +@@ -19094,7 +19109,7 @@ arm_compute_static_chain_stack_bytes (void) + + /* Compute a bit mask of which registers need to be + saved on the stack for the current function. +- This is used by arm_get_frame_offsets, which may add extra registers. */ ++ This is used by arm_compute_frame_layout, which may add extra registers. */ + + static unsigned long + arm_compute_save_reg_mask (void) +@@ -20728,12 +20743,25 @@ any_sibcall_could_use_r3 (void) + alignment. */ + + ++/* Return cached stack offsets. */ ++ ++static arm_stack_offsets * ++arm_get_frame_offsets (void) ++{ ++ struct arm_stack_offsets *offsets; ++ ++ offsets = &cfun->machine->stack_offsets; ++ ++ return offsets; ++} ++ ++ + /* Calculate stack offsets. These are used to calculate register elimination + offsets and in prologue/epilogue code. Also calculates which registers + should be saved. */ + +-static arm_stack_offsets * +-arm_get_frame_offsets (void) ++static void ++arm_compute_frame_layout (void) + { + struct arm_stack_offsets *offsets; + unsigned long func_type; +@@ -20744,9 +20772,6 @@ arm_get_frame_offsets (void) + + offsets = &cfun->machine->stack_offsets; + +- if (reload_completed) +- return offsets; +- + /* Initially this is the size of the local variables. It will translated + into an offset once we have determined the size of preceding data. */ + frame_size = ROUND_UP_WORD (get_frame_size ()); +@@ -20811,7 +20836,7 @@ arm_get_frame_offsets (void) + { + offsets->outgoing_args = offsets->soft_frame; + offsets->locals_base = offsets->soft_frame; +- return offsets; ++ return; + } + + /* Ensure SFP has the correct alignment. */ +@@ -20887,8 +20912,6 @@ arm_get_frame_offsets (void) + offsets->outgoing_args += 4; + gcc_assert (!(offsets->outgoing_args & 7)); + } +- +- return offsets; + } + + +@@ -21522,7 +21545,7 @@ arm_expand_prologue (void) + { + /* If no coprocessor registers are being pushed and we don't have + to worry about a frame pointer then push extra registers to +- create the stack frame. This is done is a way that does not ++ create the stack frame. This is done in a way that does not + alter the frame layout, so is independent of the epilogue. */ + int n; + int frame; +@@ -28225,17 +28248,32 @@ arm_expand_compare_and_swap (rtx operands[]) + gcc_unreachable (); + } + +- switch (mode) ++ if (TARGET_THUMB1) + { +- case QImode: gen = gen_atomic_compare_and_swapqi_1; break; +- case HImode: gen = gen_atomic_compare_and_swaphi_1; break; +- case SImode: gen = gen_atomic_compare_and_swapsi_1; break; +- case DImode: gen = gen_atomic_compare_and_swapdi_1; break; +- default: +- gcc_unreachable (); ++ switch (mode) ++ { ++ case QImode: gen = gen_atomic_compare_and_swapt1qi_1; break; ++ case HImode: gen = gen_atomic_compare_and_swapt1hi_1; break; ++ case SImode: gen = gen_atomic_compare_and_swapt1si_1; break; ++ case DImode: gen = gen_atomic_compare_and_swapt1di_1; break; ++ default: ++ gcc_unreachable (); ++ } ++ } ++ else ++ { ++ switch (mode) ++ { ++ case QImode: gen = gen_atomic_compare_and_swap32qi_1; break; ++ case HImode: gen = gen_atomic_compare_and_swap32hi_1; break; ++ case SImode: gen = gen_atomic_compare_and_swap32si_1; break; ++ case DImode: gen = gen_atomic_compare_and_swap32di_1; break; ++ default: ++ gcc_unreachable (); ++ } + } + +- bdst = TARGET_THUMB1 ? bval : gen_rtx_REG (CCmode, CC_REGNUM); ++ bdst = TARGET_THUMB1 ? bval : gen_rtx_REG (CC_Zmode, CC_REGNUM); + emit_insn (gen (bdst, rval, mem, oldval, newval, is_weak, mod_s, mod_f)); + + if (mode == QImode || mode == HImode) +--- a/src/gcc/config/arm/arm.h ++++ b/src/gcc/config/arm/arm.h +@@ -682,7 +682,7 @@ extern int arm_arch_cmse; + /* Standard register usage. */ + + /* Register allocation in ARM Procedure Call Standard +- (S - saved over call). ++ (S - saved over call, F - Frame-related). + + r0 * argument word/integer result + r1-r3 argument word +--- a/src/gcc/config/arm/arm_neon.h ++++ b/src/gcc/config/arm/arm_neon.h +@@ -17069,14 +17069,22 @@ __extension__ extern __inline float16x4_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vadd_f16 (float16x4_t __a, float16x4_t __b) + { ++#ifdef __FAST_MATH__ ++ return __a + __b; ++#else + return __builtin_neon_vaddv4hf (__a, __b); ++#endif + } + + __extension__ extern __inline float16x8_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vaddq_f16 (float16x8_t __a, float16x8_t __b) + { ++#ifdef __FAST_MATH__ ++ return __a + __b; ++#else + return __builtin_neon_vaddv8hf (__a, __b); ++#endif + } + + __extension__ extern __inline uint16x4_t +@@ -17587,7 +17595,11 @@ __extension__ extern __inline float16x4_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vmul_f16 (float16x4_t __a, float16x4_t __b) + { ++#ifdef __FAST_MATH__ ++ return __a * __b; ++#else + return __builtin_neon_vmulfv4hf (__a, __b); ++#endif + } + + __extension__ extern __inline float16x4_t +@@ -17608,7 +17620,11 @@ __extension__ extern __inline float16x8_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vmulq_f16 (float16x8_t __a, float16x8_t __b) + { ++#ifdef __FAST_MATH__ ++ return __a * __b; ++#else + return __builtin_neon_vmulfv8hf (__a, __b); ++#endif + } + + __extension__ extern __inline float16x8_t +@@ -17804,14 +17820,22 @@ __extension__ extern __inline float16x4_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vsub_f16 (float16x4_t __a, float16x4_t __b) + { ++#ifdef __FAST_MATH__ ++ return __a - __b; ++#else + return __builtin_neon_vsubv4hf (__a, __b); ++#endif + } + + __extension__ extern __inline float16x8_t + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + vsubq_f16 (float16x8_t __a, float16x8_t __b) + { ++#ifdef __FAST_MATH__ ++ return __a - __b; ++#else + return __builtin_neon_vsubv8hf (__a, __b); ++#endif + } + + #endif /* __ARM_FEATURE_VECTOR_FP16_ARITHMETIC. */ +--- a/src/gcc/config/arm/cortex-a53.md ++++ b/src/gcc/config/arm/cortex-a53.md +@@ -254,6 +254,16 @@ + "cortex_a53_store*" + "arm_no_early_store_addr_dep") + ++;; Model a bypass for load to load/store address. ++ ++(define_bypass 3 "cortex_a53_load1" ++ "cortex_a53_load*" ++ "arm_early_load_addr_dep_ptr") ++ ++(define_bypass 3 "cortex_a53_load1" ++ "cortex_a53_store*" ++ "arm_early_store_addr_dep_ptr") ++ + ;; Model a GP->FP register move as similar to stores. + + (define_bypass 0 "cortex_a53_alu*,cortex_a53_shift*" +--- a/src/gcc/config/arm/iterators.md ++++ b/src/gcc/config/arm/iterators.md +@@ -45,6 +45,9 @@ + ;; A list of the 32bit and 64bit integer modes + (define_mode_iterator SIDI [SI DI]) + ++;; A list of atomic compare and swap success return modes ++(define_mode_iterator CCSI [(CC_Z "TARGET_32BIT") (SI "TARGET_THUMB1")]) ++ + ;; A list of modes which the VFP unit can handle + (define_mode_iterator SDF [(SF "") (DF "TARGET_VFP_DOUBLE")]) + +@@ -411,6 +414,10 @@ + ;; Mode attributes + ;;---------------------------------------------------------------------------- + ++;; Determine name of atomic compare and swap from success result mode. This ++;; distinguishes between 16-bit Thumb and 32-bit Thumb/ARM. ++(define_mode_attr arch [(CC_Z "32") (SI "t1")]) ++ + ;; Determine element size suffix from vector mode. + (define_mode_attr MMX_char [(V8QI "b") (V4HI "h") (V2SI "w") (DI "d")]) + +--- a/src/gcc/config/arm/neon.md ++++ b/src/gcc/config/arm/neon.md +@@ -505,6 +505,23 @@ + (const_string "neon_add")))] + ) + ++;; As with SFmode, full support for HFmode vector arithmetic is only available ++;; when flag-unsafe-math-optimizations is enabled. ++ ++(define_insn "add3" ++ [(set ++ (match_operand:VH 0 "s_register_operand" "=w") ++ (plus:VH ++ (match_operand:VH 1 "s_register_operand" "w") ++ (match_operand:VH 2 "s_register_operand" "w")))] ++ "TARGET_NEON_FP16INST && flag_unsafe_math_optimizations" ++ "vadd.\t%0, %1, %2" ++ [(set (attr "type") ++ (if_then_else (match_test "") ++ (const_string "neon_fp_addsub_s") ++ (const_string "neon_add")))] ++) ++ + (define_insn "add3_fp16" + [(set + (match_operand:VH 0 "s_register_operand" "=w") +@@ -557,6 +574,17 @@ + (const_string "neon_sub")))] + ) + ++(define_insn "sub3" ++ [(set ++ (match_operand:VH 0 "s_register_operand" "=w") ++ (minus:VH ++ (match_operand:VH 1 "s_register_operand" "w") ++ (match_operand:VH 2 "s_register_operand" "w")))] ++ "TARGET_NEON_FP16INST && flag_unsafe_math_optimizations" ++ "vsub.\t%0, %1, %2" ++ [(set_attr "type" "neon_sub")] ++) ++ + (define_insn "sub3_fp16" + [(set + (match_operand:VH 0 "s_register_operand" "=w") +@@ -664,8 +692,17 @@ + [(set_attr "type" "neon_fp_mla_s")] + ) + +-;; There is limited support for unsafe-math optimizations using the NEON FP16 +-;; arithmetic instructions, so only the intrinsic is currently supported. ++(define_insn "fma4" ++ [(set (match_operand:VH 0 "register_operand" "=w") ++ (fma:VH ++ (match_operand:VH 1 "register_operand" "w") ++ (match_operand:VH 2 "register_operand" "w") ++ (match_operand:VH 3 "register_operand" "0")))] ++ "TARGET_NEON_FP16INST && flag_unsafe_math_optimizations" ++ "vfma.\\t%0, %1, %2" ++ [(set_attr "type" "neon_fp_mla_s")] ++) ++ + (define_insn "fma4_intrinsic" + [(set (match_operand:VH 0 "register_operand" "=w") + (fma:VH +@@ -2175,6 +2212,17 @@ + (const_string "neon_mul_")))] + ) + ++(define_insn "mul3" ++ [(set ++ (match_operand:VH 0 "s_register_operand" "=w") ++ (mult:VH ++ (match_operand:VH 1 "s_register_operand" "w") ++ (match_operand:VH 2 "s_register_operand" "w")))] ++ "TARGET_NEON_FP16INST && flag_unsafe_math_optimizations" ++ "vmul.f16\t%0, %1, %2" ++ [(set_attr "type" "neon_mul_")] ++) ++ + (define_insn "neon_vmulf" + [(set + (match_operand:VH 0 "s_register_operand" "=w") +--- a/src/gcc/config/arm/sync.md ++++ b/src/gcc/config/arm/sync.md +@@ -191,9 +191,9 @@ + + ;; Constraints of this pattern must be at least as strict as those of the + ;; cbranchsi operations in thumb1.md and aim to be as permissive. +-(define_insn_and_split "atomic_compare_and_swap_1" +- [(set (match_operand 0 "cc_register_operand" "=&c,&l,&l,&l") ;; bool out +- (unspec_volatile:CC_Z [(const_int 0)] VUNSPEC_ATOMIC_CAS)) ++(define_insn_and_split "atomic_compare_and_swap_1" ++ [(set (match_operand:CCSI 0 "cc_register_operand" "=&c,&l,&l,&l") ;; bool out ++ (unspec_volatile:CCSI [(const_int 0)] VUNSPEC_ATOMIC_CAS)) + (set (match_operand:SI 1 "s_register_operand" "=&r,&l,&0,&l*h") ;; val out + (zero_extend:SI + (match_operand:NARROW 2 "mem_noofs_operand" "+Ua,Ua,Ua,Ua"))) ;; memory +@@ -223,9 +223,9 @@ + + ;; Constraints of this pattern must be at least as strict as those of the + ;; cbranchsi operations in thumb1.md and aim to be as permissive. +-(define_insn_and_split "atomic_compare_and_swap_1" +- [(set (match_operand 0 "cc_register_operand" "=&c,&l,&l,&l") ;; bool out +- (unspec_volatile:CC_Z [(const_int 0)] VUNSPEC_ATOMIC_CAS)) ++(define_insn_and_split "atomic_compare_and_swap_1" ++ [(set (match_operand:CCSI 0 "cc_register_operand" "=&c,&l,&l,&l") ;; bool out ++ (unspec_volatile:CCSI [(const_int 0)] VUNSPEC_ATOMIC_CAS)) + (set (match_operand:SIDI 1 "s_register_operand" "=&r,&l,&0,&l*h") ;; val out + (match_operand:SIDI 2 "mem_noofs_operand" "+Ua,Ua,Ua,Ua")) ;; memory + (set (match_dup 2) +--- a/src/gcc/config/arm/t-aprofile ++++ b/src/gcc/config/arm/t-aprofile +@@ -24,30 +24,13 @@ + # have their default values during the configure step. We enforce + # this during the top-level configury. + +-MULTILIB_OPTIONS = +-MULTILIB_DIRNAMES = +-MULTILIB_EXCEPTIONS = +-MULTILIB_MATCHES = +-MULTILIB_REUSE = ++# Arch and FPU variants to build libraries with + +-# We have the following hierachy: +-# ISA: A32 (.) or T32 (thumb) +-# Architecture: ARMv7-A (v7-a), ARMv7VE (v7ve), or ARMv8-A (v8-a). +-# FPU: VFPv3-D16 (fpv3), NEONv1 (simdv1), VFPv4-D16 (fpv4), +-# NEON-VFPV4 (simdvfpv4), NEON for ARMv8 (simdv8), or None (.). +-# Float-abi: Soft (.), softfp (softfp), or hard (hardfp). ++MULTI_ARCH_OPTS_A = march=armv7-a/march=armv7ve/march=armv8-a ++MULTI_ARCH_DIRS_A = v7-a v7ve v8-a + +-MULTILIB_OPTIONS += mthumb +-MULTILIB_DIRNAMES += thumb +- +-MULTILIB_OPTIONS += march=armv7-a/march=armv7ve/march=armv8-a +-MULTILIB_DIRNAMES += v7-a v7ve v8-a +- +-MULTILIB_OPTIONS += mfpu=vfpv3-d16/mfpu=neon/mfpu=vfpv4-d16/mfpu=neon-vfpv4/mfpu=neon-fp-armv8 +-MULTILIB_DIRNAMES += fpv3 simdv1 fpv4 simdvfpv4 simdv8 +- +-MULTILIB_OPTIONS += mfloat-abi=softfp/mfloat-abi=hard +-MULTILIB_DIRNAMES += softfp hard ++MULTI_FPU_OPTS_A = mfpu=vfpv3-d16/mfpu=neon/mfpu=vfpv4-d16/mfpu=neon-vfpv4/mfpu=neon-fp-armv8 ++MULTI_FPU_DIRS_A = fpv3 simdv1 fpv4 simdvfpv4 simdv8 + + + # Option combinations to build library with +@@ -71,7 +54,11 @@ MULTILIB_REQUIRED += *march=armv8-a + MULTILIB_REQUIRED += *march=armv8-a/mfpu=neon-fp-armv8/mfloat-abi=* + + ++# Matches ++ + # CPU Matches ++MULTILIB_MATCHES += march?armv7-a=mcpu?marvell-pj4 ++MULTILIB_MATCHES += march?armv7-a=mcpu?generic-armv7-a + MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a8 + MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a9 + MULTILIB_MATCHES += march?armv7-a=mcpu?cortex-a5 +--- /dev/null ++++ b/src/gcc/config/arm/t-multilib +@@ -0,0 +1,69 @@ ++# Copyright (C) 2016 Free Software Foundation, Inc. ++# ++# This file is part of GCC. ++# ++# GCC is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3, or (at your option) ++# any later version. ++# ++# GCC is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GCC; see the file COPYING3. If not see ++# . ++ ++# This is a target makefile fragment that attempts to get ++# multilibs built for the range of CPU's, FPU's and ABI's that ++# are relevant for the ARM architecture. It should not be used in ++# conjunction with another make file fragment and assumes --with-arch, ++# --with-cpu, --with-fpu, --with-float, --with-mode have their default ++# values during the configure step. We enforce this during the ++# top-level configury. ++ ++MULTILIB_OPTIONS = ++MULTILIB_DIRNAMES = ++MULTILIB_EXCEPTIONS = ++MULTILIB_MATCHES = ++MULTILIB_REUSE = ++ ++comma := , ++tm_multilib_list := $(subst $(comma), ,$(TM_MULTILIB_CONFIG)) ++ ++HAS_APROFILE := $(filter aprofile,$(tm_multilib_list)) ++HAS_RMPROFILE := $(filter rmprofile,$(tm_multilib_list)) ++ ++ifneq (,$(HAS_APROFILE)) ++include $(srcdir)/config/arm/t-aprofile ++endif ++ifneq (,$(HAS_RMPROFILE)) ++include $(srcdir)/config/arm/t-rmprofile ++endif ++SEP := $(and $(HAS_APROFILE),$(HAS_RMPROFILE),/) ++ ++ ++# We have the following hierachy: ++# ISA: A32 (.) or T16/T32 (thumb) ++# Architecture: ARMv6-M (v6-m), ARMv7-M (v7-m), ARMv7E-M (v7e-m), ++# ARMv7 (v7-ar), ARMv7-A (v7-a), ARMv7VE (v7ve), ++# ARMv8-M Baseline (v8-m.base), ARMv8-M Mainline (v8-m.main) ++# or ARMv8-A (v8-a). ++# FPU: VFPv3-D16 (fpv3), NEONv1 (simdv1), FPV4-SP-D16 (fpv4-sp), ++# VFPv4-D16 (fpv4), NEON-VFPV4 (simdvfpv4), FPV5-SP-D16 (fpv5-sp), ++# VFPv5-D16 (fpv5), NEON for ARMv8 (simdv8), or None (.). ++# Float-abi: Soft (.), softfp (softfp), or hard (hard). ++ ++MULTILIB_OPTIONS += mthumb ++MULTILIB_DIRNAMES += thumb ++ ++MULTILIB_OPTIONS += $(MULTI_ARCH_OPTS_A)$(SEP)$(MULTI_ARCH_OPTS_RM) ++MULTILIB_DIRNAMES += $(MULTI_ARCH_DIRS_A) $(MULTI_ARCH_DIRS_RM) ++ ++MULTILIB_OPTIONS += $(MULTI_FPU_OPTS_A)$(SEP)$(MULTI_FPU_OPTS_RM) ++MULTILIB_DIRNAMES += $(MULTI_FPU_DIRS_A) $(MULTI_FPU_DIRS_RM) ++ ++MULTILIB_OPTIONS += mfloat-abi=softfp/mfloat-abi=hard ++MULTILIB_DIRNAMES += softfp hard +--- a/src/gcc/config/arm/t-rmprofile ++++ b/src/gcc/config/arm/t-rmprofile +@@ -24,33 +24,14 @@ + # values during the configure step. We enforce this during the + # top-level configury. + +-MULTILIB_OPTIONS = +-MULTILIB_DIRNAMES = +-MULTILIB_EXCEPTIONS = +-MULTILIB_MATCHES = +-MULTILIB_REUSE = + +-# We have the following hierachy: +-# ISA: A32 (.) or T16/T32 (thumb). +-# Architecture: ARMv6S-M (v6-m), ARMv7-M (v7-m), ARMv7E-M (v7e-m), +-# ARMv8-M Baseline (v8-m.base) or ARMv8-M Mainline (v8-m.main). +-# FPU: VFPv3-D16 (fpv3), FPV4-SP-D16 (fpv4-sp), FPV5-SP-D16 (fpv5-sp), +-# VFPv5-D16 (fpv5), or None (.). +-# Float-abi: Soft (.), softfp (softfp), or hard (hardfp). ++# Arch and FPU variants to build libraries with + +-# Options to build libraries with ++MULTI_ARCH_OPTS_RM = march=armv6s-m/march=armv7-m/march=armv7e-m/march=armv7/march=armv8-m.base/march=armv8-m.main ++MULTI_ARCH_DIRS_RM = v6-m v7-m v7e-m v7-ar v8-m.base v8-m.main + +-MULTILIB_OPTIONS += mthumb +-MULTILIB_DIRNAMES += thumb +- +-MULTILIB_OPTIONS += march=armv6s-m/march=armv7-m/march=armv7e-m/march=armv7/march=armv8-m.base/march=armv8-m.main +-MULTILIB_DIRNAMES += v6-m v7-m v7e-m v7-ar v8-m.base v8-m.main +- +-MULTILIB_OPTIONS += mfpu=vfpv3-d16/mfpu=fpv4-sp-d16/mfpu=fpv5-sp-d16/mfpu=fpv5-d16 +-MULTILIB_DIRNAMES += fpv3 fpv4-sp fpv5-sp fpv5 +- +-MULTILIB_OPTIONS += mfloat-abi=softfp/mfloat-abi=hard +-MULTILIB_DIRNAMES += softfp hard ++MULTI_FPU_OPTS_RM = mfpu=vfpv3-d16/mfpu=fpv4-sp-d16/mfpu=fpv5-sp-d16/mfpu=fpv5-d16 ++MULTI_FPU_DIRS_RM = fpv3 fpv4-sp fpv5-sp fpv5 + + + # Option combinations to build library with +--- a/src/gcc/configure ++++ b/src/gcc/configure +@@ -1717,7 +1717,8 @@ Optional Packages: + --with-stabs arrange to use stabs instead of host debug format + --with-dwarf2 force the default debug format to be DWARF 2 + --with-specs=SPECS add SPECS to driver command-line processing +- --with-pkgversion=PKG Use PKG in the version string in place of "GCC" ++ --with-pkgversion=PKG Use PKG in the version string in place of "Linaro ++ GCC `cat $srcdir/LINARO-VERSION`" + --with-bugurl=URL Direct users to URL to report a bug + --with-multilib-list select multilibs (AArch64, SH and x86-64 only) + --with-gnu-ld assume the C compiler uses GNU ld default=no +@@ -7637,7 +7638,7 @@ if test "${with_pkgversion+set}" = set; then : + *) PKGVERSION="($withval) " ;; + esac + else +- PKGVERSION="(GCC) " ++ PKGVERSION="(Linaro GCC `cat $srcdir/LINARO-VERSION`) " + + fi + +@@ -18433,7 +18434,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 18436 "configure" ++#line 18437 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +@@ -18539,7 +18540,7 @@ else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +-#line 18542 "configure" ++#line 18543 "configure" + #include "confdefs.h" + + #if HAVE_DLFCN_H +--- a/src/gcc/configure.ac ++++ b/src/gcc/configure.ac +@@ -929,7 +929,7 @@ AC_ARG_WITH(specs, + ) + AC_SUBST(CONFIGURE_SPECS) + +-ACX_PKGVERSION([GCC]) ++ACX_PKGVERSION([Linaro GCC `cat $srcdir/LINARO-VERSION`]) + ACX_BUGURL([https://gcc.gnu.org/bugs/]) + + # Sanity check enable_languages in case someone does not run the toplevel +--- a/src/gcc/cppbuiltin.c ++++ b/src/gcc/cppbuiltin.c +@@ -53,18 +53,41 @@ parse_basever (int *major, int *minor, int *patchlevel) + *patchlevel = s_patchlevel; + } + ++/* Parse a LINAROVER version string of the format "M.m-year.month[-spin][~dev]" ++ to create Linaro release number YYYYMM and spin version. */ ++static void ++parse_linarover (int *release, int *spin) ++{ ++ static int s_year = -1, s_month, s_spin; ++ ++ if (s_year == -1) ++ if (sscanf (LINAROVER, "%*[^-]-%d.%d-%d", &s_year, &s_month, &s_spin) != 3) ++ { ++ sscanf (LINAROVER, "%*[^-]-%d.%d", &s_year, &s_month); ++ s_spin = 0; ++ } ++ ++ if (release) ++ *release = s_year * 100 + s_month; ++ ++ if (spin) ++ *spin = s_spin; ++} + + /* Define __GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__ and __VERSION__. */ + static void + define__GNUC__ (cpp_reader *pfile) + { +- int major, minor, patchlevel; ++ int major, minor, patchlevel, linaro_release, linaro_spin; + + parse_basever (&major, &minor, &patchlevel); ++ parse_linarover (&linaro_release, &linaro_spin); + cpp_define_formatted (pfile, "__GNUC__=%d", major); + cpp_define_formatted (pfile, "__GNUC_MINOR__=%d", minor); + cpp_define_formatted (pfile, "__GNUC_PATCHLEVEL__=%d", patchlevel); + cpp_define_formatted (pfile, "__VERSION__=\"%s\"", version_string); ++ cpp_define_formatted (pfile, "__LINARO_RELEASE__=%d", linaro_release); ++ cpp_define_formatted (pfile, "__LINARO_SPIN__=%d", linaro_spin); + cpp_define_formatted (pfile, "__ATOMIC_RELAXED=%d", MEMMODEL_RELAXED); + cpp_define_formatted (pfile, "__ATOMIC_SEQ_CST=%d", MEMMODEL_SEQ_CST); + cpp_define_formatted (pfile, "__ATOMIC_ACQUIRE=%d", MEMMODEL_ACQUIRE); +--- a/src/gcc/dbgcnt.def ++++ b/src/gcc/dbgcnt.def +@@ -174,6 +174,7 @@ DEBUG_COUNTER (merged_ipa_icf) + DEBUG_COUNTER (postreload_cse) + DEBUG_COUNTER (pre) + DEBUG_COUNTER (pre_insn) ++DEBUG_COUNTER (prefetch) + DEBUG_COUNTER (registered_jump_thread) + DEBUG_COUNTER (sched2_func) + DEBUG_COUNTER (sched_block) +--- a/src/gcc/expr.c ++++ b/src/gcc/expr.c +@@ -8838,6 +8838,15 @@ expand_expr_real_2 (sepops ops, rtx target, machine_mode tmode, + end_sequence (); + unsigned uns_cost = seq_cost (uns_insns, speed_p); + unsigned sgn_cost = seq_cost (sgn_insns, speed_p); ++ ++ /* If costs are the same then use as tie breaker the other ++ other factor. */ ++ if (uns_cost == sgn_cost) ++ { ++ uns_cost = seq_cost (uns_insns, !speed_p); ++ sgn_cost = seq_cost (sgn_insns, !speed_p); ++ } ++ + if (uns_cost < sgn_cost || (uns_cost == sgn_cost && unsignedp)) + { + emit_insn (uns_insns); +--- a/src/gcc/gimple-fold.c ++++ b/src/gcc/gimple-fold.c +@@ -3252,6 +3252,28 @@ gimple_fold_builtin_acc_on_device (gimple_stmt_iterator *gsi, tree arg0) + return true; + } + ++/* Fold realloc (0, n) -> malloc (n). */ ++ ++static bool ++gimple_fold_builtin_realloc (gimple_stmt_iterator *gsi) ++{ ++ gimple *stmt = gsi_stmt (*gsi); ++ tree arg = gimple_call_arg (stmt, 0); ++ tree size = gimple_call_arg (stmt, 1); ++ ++ if (operand_equal_p (arg, null_pointer_node, 0)) ++ { ++ tree fn_malloc = builtin_decl_implicit (BUILT_IN_MALLOC); ++ if (fn_malloc) ++ { ++ gcall *repl = gimple_build_call (fn_malloc, 1, size); ++ replace_call_with_call_and_fold (gsi, repl); ++ return true; ++ } ++ } ++ return false; ++} ++ + /* Fold the non-target builtin at *GSI and return whether any simplification + was made. */ + +@@ -3410,6 +3432,9 @@ gimple_fold_builtin (gimple_stmt_iterator *gsi) + case BUILT_IN_ACC_ON_DEVICE: + return gimple_fold_builtin_acc_on_device (gsi, + gimple_call_arg (stmt, 0)); ++ case BUILT_IN_REALLOC: ++ return gimple_fold_builtin_realloc (gsi); ++ + default:; + } + +--- a/src/gcc/lra-constraints.c ++++ b/src/gcc/lra-constraints.c +@@ -5394,6 +5394,29 @@ choose_split_class (enum reg_class allocno_class, + #endif + } + ++/* Copy any equivalence information from ORIGINAL_REGNO to NEW_REGNO. ++ It only makes sense to call this function if NEW_REGNO is always ++ equal to ORIGINAL_REGNO. */ ++ ++static void ++lra_copy_reg_equiv (unsigned int new_regno, unsigned int original_regno) ++{ ++ if (!ira_reg_equiv[original_regno].defined_p) ++ return; ++ ++ ira_expand_reg_equiv (); ++ ira_reg_equiv[new_regno].defined_p = true; ++ if (ira_reg_equiv[original_regno].memory) ++ ira_reg_equiv[new_regno].memory ++ = copy_rtx (ira_reg_equiv[original_regno].memory); ++ if (ira_reg_equiv[original_regno].constant) ++ ira_reg_equiv[new_regno].constant ++ = copy_rtx (ira_reg_equiv[original_regno].constant); ++ if (ira_reg_equiv[original_regno].invariant) ++ ira_reg_equiv[new_regno].invariant ++ = copy_rtx (ira_reg_equiv[original_regno].invariant); ++} ++ + /* Do split transformations for insn INSN, which defines or uses + ORIGINAL_REGNO. NEXT_USAGE_INSNS specifies which instruction in + the EBB next uses ORIGINAL_REGNO; it has the same form as the +@@ -5515,6 +5538,7 @@ split_reg (bool before_p, int original_regno, rtx_insn *insn, + new_reg = lra_create_new_reg (mode, original_reg, rclass, "split"); + reg_renumber[REGNO (new_reg)] = hard_regno; + } ++ int new_regno = REGNO (new_reg); + save = emit_spill_move (true, new_reg, original_reg); + if (NEXT_INSN (save) != NULL_RTX && !call_save_p) + { +@@ -5523,7 +5547,7 @@ split_reg (bool before_p, int original_regno, rtx_insn *insn, + fprintf + (lra_dump_file, + " Rejecting split %d->%d resulting in > 2 save insns:\n", +- original_regno, REGNO (new_reg)); ++ original_regno, new_regno); + dump_rtl_slim (lra_dump_file, save, NULL, -1, 0); + fprintf (lra_dump_file, + " ))))))))))))))))))))))))))))))))))))))))))))))))\n"); +@@ -5538,18 +5562,24 @@ split_reg (bool before_p, int original_regno, rtx_insn *insn, + fprintf (lra_dump_file, + " Rejecting split %d->%d " + "resulting in > 2 restore insns:\n", +- original_regno, REGNO (new_reg)); ++ original_regno, new_regno); + dump_rtl_slim (lra_dump_file, restore, NULL, -1, 0); + fprintf (lra_dump_file, + " ))))))))))))))))))))))))))))))))))))))))))))))))\n"); + } + return false; + } ++ /* Transfer equivalence information to the spill register, so that ++ if we fail to allocate the spill register, we have the option of ++ rematerializing the original value instead of spilling to the stack. */ ++ if (!HARD_REGISTER_NUM_P (original_regno) ++ && mode == PSEUDO_REGNO_MODE (original_regno)) ++ lra_copy_reg_equiv (new_regno, original_regno); + after_p = usage_insns[original_regno].after_p; +- lra_reg_info[REGNO (new_reg)].restore_rtx = regno_reg_rtx[original_regno]; +- bitmap_set_bit (&check_only_regs, REGNO (new_reg)); ++ lra_reg_info[new_regno].restore_rtx = regno_reg_rtx[original_regno]; ++ bitmap_set_bit (&check_only_regs, new_regno); + bitmap_set_bit (&check_only_regs, original_regno); +- bitmap_set_bit (&lra_split_regs, REGNO (new_reg)); ++ bitmap_set_bit (&lra_split_regs, new_regno); + for (;;) + { + if (GET_CODE (next_usage_insns) != INSN_LIST) +@@ -5565,7 +5595,7 @@ split_reg (bool before_p, int original_regno, rtx_insn *insn, + if (lra_dump_file != NULL) + { + fprintf (lra_dump_file, " Split reuse change %d->%d:\n", +- original_regno, REGNO (new_reg)); ++ original_regno, new_regno); + dump_insn_slim (lra_dump_file, as_a (usage_insn)); + } + } +--- a/src/gcc/lra-eliminations.c ++++ b/src/gcc/lra-eliminations.c +@@ -1196,6 +1196,8 @@ update_reg_eliminate (bitmap insns_with_changed_offsets) + struct lra_elim_table *ep, *ep1; + HARD_REG_SET temp_hard_reg_set; + ++ targetm.compute_frame_layout (); ++ + /* Clear self elimination offsets. */ + for (ep = reg_eliminate; ep < ®_eliminate[NUM_ELIMINABLE_REGS]; ep++) + self_elim_offsets[ep->from] = 0; +--- a/src/gcc/reload1.c ++++ b/src/gcc/reload1.c +@@ -3821,6 +3821,7 @@ verify_initial_elim_offsets (void) + if (!num_eliminable) + return true; + ++ targetm.compute_frame_layout (); + for (ep = reg_eliminate; ep < ®_eliminate[NUM_ELIMINABLE_REGS]; ep++) + { + INITIAL_ELIMINATION_OFFSET (ep->from, ep->to, t); +@@ -3838,6 +3839,7 @@ set_initial_elim_offsets (void) + { + struct elim_table *ep = reg_eliminate; + ++ targetm.compute_frame_layout (); + for (; ep < ®_eliminate[NUM_ELIMINABLE_REGS]; ep++) + { + INITIAL_ELIMINATION_OFFSET (ep->from, ep->to, ep->initial_offset); +--- a/src/gcc/simplify-rtx.c ++++ b/src/gcc/simplify-rtx.c +@@ -3345,19 +3345,21 @@ simplify_binary_operation_1 (enum rtx_code code, machine_mode mode, + && UINTVAL (trueop0) == GET_MODE_MASK (mode) + && ! side_effects_p (op1)) + return op0; ++ ++ canonicalize_shift: + /* Given: + scalar modes M1, M2 + scalar constants c1, c2 + size (M2) > size (M1) + c1 == size (M2) - size (M1) + optimize: +- (ashiftrt:M1 (subreg:M1 (lshiftrt:M2 (reg:M2) (const_int )) ++ ([a|l]shiftrt:M1 (subreg:M1 (lshiftrt:M2 (reg:M2) (const_int )) + ) + (const_int )) + to: +- (subreg:M1 (ashiftrt:M2 (reg:M2) (const_int )) ++ (subreg:M1 ([a|l]shiftrt:M2 (reg:M2) (const_int )) + ). */ +- if (code == ASHIFTRT ++ if ((code == ASHIFTRT || code == LSHIFTRT) + && !VECTOR_MODE_P (mode) + && SUBREG_P (op0) + && CONST_INT_P (op1) +@@ -3374,13 +3376,13 @@ simplify_binary_operation_1 (enum rtx_code code, machine_mode mode, + rtx tmp = GEN_INT (INTVAL (XEXP (SUBREG_REG (op0), 1)) + + INTVAL (op1)); + machine_mode inner_mode = GET_MODE (SUBREG_REG (op0)); +- tmp = simplify_gen_binary (ASHIFTRT, ++ tmp = simplify_gen_binary (code, + GET_MODE (SUBREG_REG (op0)), + XEXP (SUBREG_REG (op0), 0), + tmp); + return lowpart_subreg (mode, tmp, inner_mode); + } +- canonicalize_shift: ++ + if (SHIFT_COUNT_TRUNCATED && CONST_INT_P (op1)) + { + val = INTVAL (op1) & (GET_MODE_PRECISION (mode) - 1); +--- a/src/gcc/target.def ++++ b/src/gcc/target.def +@@ -5395,6 +5395,18 @@ five otherwise. This is best for most machines.", + unsigned int, (void), + default_case_values_threshold) + ++/* Optional callback to advise the target to compute the frame layout. */ ++DEFHOOK ++(compute_frame_layout, ++ "This target hook is called once each time the frame layout needs to be\n\ ++recalculated. The calculations can be cached by the target and can then\n\ ++be used by @code{INITIAL_ELIMINATION_OFFSET} instead of re-computing the\n\ ++layout on every invocation of that hook. This is particularly useful\n\ ++for targets that have an expensive frame layout function. Implementing\n\ ++this callback is optional.", ++ void, (void), ++ hook_void_void) ++ + /* Return true if a function must have and use a frame pointer. */ + DEFHOOK + (frame_pointer_required, +--- a/src/gcc/testsuite/g++.dg/other/i386-9.C ++++ b/src/gcc/testsuite/g++.dg/other/i386-9.C +@@ -2,6 +2,7 @@ + // Testcase by Zdenek Sojka + + // { dg-do run { target i?86-*-* x86_64-*-* } } ++/* { dg-require-stack-check "" } */ + // { dg-options "-Os -mpreferred-stack-boundary=5 -fstack-check -fno-omit-frame-pointer" } + + int main() +--- /dev/null ++++ b/src/gcc/testsuite/gcc.c-torture/compile/stack-check-1.c +@@ -0,0 +1,4 @@ ++/* { dg-require-effective-target untyped_assembly } */ ++/* { dg-require-stack-check "" } */ ++/* { dg-additional-options "-fstack-check" } */ ++#include "20031023-1.c" +--- a/src/gcc/testsuite/gcc.c-torture/execute/pr78622.c ++++ b/src/gcc/testsuite/gcc.c-torture/execute/pr78622.c +@@ -1,6 +1,7 @@ + /* PR middle-end/78622 - [7 Regression] -Wformat-overflow/-fprintf-return-value + incorrect with overflow/wrapping + { dg-skip-if "Requires %hhd format" { hppa*-*-hpux* } { "*" } { "" } } ++ { dg-require-effective-target c99_runtime } + { dg-additional-options "-Wformat-overflow=2" } */ + + __attribute__((noinline, noclone)) int +--- a/src/gcc/testsuite/gcc.dg/graphite/run-id-pr47653.c ++++ b/src/gcc/testsuite/gcc.dg/graphite/run-id-pr47653.c +@@ -1,3 +1,4 @@ ++/* { dg-require-stack-check "generic" } */ + /* { dg-options "-O -fstack-check=generic -ftree-pre -fgraphite-identity" } */ + /* nvptx doesn't expose a stack. */ + /* { dg-skip-if "" { nvptx-*-* } { "*" } { "" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.dg/lsr-div1.c +@@ -0,0 +1,57 @@ ++/* Test division by const int generates only one shift. */ ++/* { dg-do run } */ ++/* { dg-options "-O2 -fdump-rtl-combine-all" } */ ++/* { dg-options "-O2 -fdump-rtl-combine-all -mtune=cortex-a53" { target aarch64*-*-* } } */ ++/* { dg-require-effective-target int32plus } */ ++ ++extern void abort (void); ++ ++#define NOINLINE __attribute__((noinline)) ++ ++static NOINLINE int ++f1 (unsigned int n) ++{ ++ return n % 0x33; ++} ++ ++static NOINLINE int ++f2 (unsigned int n) ++{ ++ return n % 0x12; ++} ++ ++int ++main () ++{ ++ int a = 0xaaaaaaaa; ++ int b = 0x55555555; ++ int c; ++ c = f1 (a); ++ if (c != 0x11) ++ abort (); ++ c = f1 (b); ++ if (c != 0x22) ++ abort (); ++ c = f2 (a); ++ if (c != 0xE) ++ abort (); ++ c = f2 (b); ++ if (c != 0x7) ++ abort (); ++ return 0; ++} ++ ++/* Following replacement pattern of intger division by constant, GCC is expected ++ to generate UMULL and (x)SHIFTRT. This test checks that considering division ++ by const 0x33, gcc generates a single LSHIFTRT by 37, instead of ++ two - LSHIFTRT by 32 and LSHIFTRT by 5. */ ++ ++/* { dg-final { scan-rtl-dump "\\(set \\(subreg:DI \\(reg:SI" "combine" { target aarch64*-*-* } } } */ ++/* { dg-final { scan-rtl-dump "\\(lshiftrt:DI \\(reg:DI" "combine" { target aarch64*-*-* } } } */ ++/* { dg-final { scan-rtl-dump "\\(const_int 37 " "combine" { target aarch64*-*-* } } } */ ++ ++/* Similarly, considering division by const 0x12, gcc generates a ++ single LSHIFTRT by 34, instead of two - LSHIFTRT by 32 and LSHIFTRT by 2. */ ++ ++/* { dg-final { scan-rtl-dump "\\(const_int 34 " "combine" { target aarch64*-*-* } } } */ ++ +--- a/src/gcc/testsuite/gcc.dg/pr47443.c ++++ b/src/gcc/testsuite/gcc.dg/pr47443.c +@@ -1,5 +1,6 @@ + /* PR tree-optimization/47443 */ + /* { dg-do compile } */ ++/* { dg-require-stack-check "generic" } */ + /* { dg-options "-O -fstack-check=generic" } */ + + static inline int bar (char *c, int i) +--- a/src/gcc/testsuite/gcc.dg/pr48134.c ++++ b/src/gcc/testsuite/gcc.dg/pr48134.c +@@ -1,4 +1,5 @@ + /* { dg-do compile } */ ++/* { dg-require-stack-check "specific" } */ + /* { dg-options "-O2 -fstack-check=specific -fno-tree-dse -fno-tree-fre -fno-tree-loop-optimize -g" } */ + + struct S +--- a/src/gcc/testsuite/gcc.dg/pr70017.c ++++ b/src/gcc/testsuite/gcc.dg/pr70017.c +@@ -1,4 +1,5 @@ + /* { dg-do compile } */ ++/* { dg-require-stack-check "generic" } */ + /* { dg-options "-fstack-check=generic" } */ + + /* Check that the expected warning is issued for large frames. */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/pr79697.c +@@ -0,0 +1,21 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -fdump-tree-gimple -fdump-tree-cddce-details -fdump-tree-optimized" } */ ++ ++void f(void) ++{ ++ __builtin_strdup ("abc"); ++} ++ ++void g(void) ++{ ++ __builtin_strndup ("abc", 3); ++} ++ ++void h(void) ++{ ++ __builtin_realloc (0, 10); ++} ++ ++/* { dg-final { scan-tree-dump "Deleting : __builtin_strdup" "cddce1" } } */ ++/* { dg-final { scan-tree-dump "Deleting : __builtin_strndup" "cddce1" } } */ ++/* { dg-final { scan-tree-dump "__builtin_malloc" "gimple" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/atomic_cmp_exchange_zero_reg_1.c +@@ -0,0 +1,12 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++int ++foo (int *a) ++{ ++ int x = 3; ++ return __atomic_compare_exchange_n (a, &x, 0, 1, __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE); ++} ++ ++/* { dg-final { scan-assembler "stxr\\tw\[0-9\]+, wzr,.*" } } */ ++/* { dg-final { scan-assembler-not "mov\\tw\[0-9\]+, 0" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/atomic_cmp_exchange_zero_strong_1.c +@@ -0,0 +1,12 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++int ++foo (int *a) ++{ ++ int x = 0; ++ return __atomic_compare_exchange_n (a, &x, 4, 0, ++ __ATOMIC_ACQUIRE, __ATOMIC_ACQUIRE); ++} ++ ++/* { dg-final { scan-assembler-times "cbnz\\tw\[0-9\]+" 2 } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/cmp_shifted_reg_1.c +@@ -0,0 +1,11 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2 " } */ ++ ++int f3 (int x, int y) ++{ ++ int res = x << 3; ++ return res != 0; ++} ++ ++/* We should combine the shift and compare */ ++/* { dg-final { scan-assembler "cmp\.*\twzr, w\[0-9\]+, lsl 3" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/hfmode_ins_1.c +@@ -0,0 +1,21 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++/* Check that we can perform this in a single INS without doing any DUPs. */ ++ ++#include ++ ++float16x8_t ++foo (float16x8_t a, float16x8_t b) ++{ ++ return vsetq_lane_f16 (vgetq_lane_f16 (b, 2), a, 3); ++} ++ ++float16x4_t ++bar (float16x4_t a, float16x4_t b) ++{ ++ return vset_lane_f16 (vget_lane_f16 (b, 2), a, 3); ++} ++ ++/* { dg-final { scan-assembler-times "ins\\t" 2 } } */ ++/* { dg-final { scan-assembler-not "dup\\t" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/prfm_imm_offset_1.c +@@ -0,0 +1,18 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++/* Check that we can generate the immediate-offset addressing ++ mode for PRFM. */ ++ ++#define ARRSIZE 65 ++int *bad_addr[ARRSIZE]; ++ ++void ++prefetch_for_read (void) ++{ ++ int i; ++ for (i = 0; i < ARRSIZE; i++) ++ __builtin_prefetch (bad_addr[i] + 2, 0, 0); ++} ++ ++/* { dg-final { scan-assembler-times "prfm.*\\\[x\[0-9\]+, 8\\\]" 1 } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/sdiv_costs_1.c +@@ -0,0 +1,38 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O3" } */ ++ ++/* Both sdiv and udiv can be used here, so prefer udiv. */ ++int f1 (unsigned char *p) ++{ ++ return 100 / p[1]; ++} ++ ++int f2 (unsigned char *p, unsigned short x) ++{ ++ return x / p[0]; ++} ++ ++int f3 (unsigned char *p, int x) ++{ ++ x &= 0x7fffffff; ++ return x / p[0]; ++} ++ ++int f5 (unsigned char *p, unsigned short x) ++{ ++ return x % p[0]; ++} ++ ++/* This should only generate signed divisions. */ ++int f4 (unsigned char *p) ++{ ++ return -100 / p[1]; ++} ++ ++int f6 (unsigned char *p, short x) ++{ ++ return x % p[0]; ++} ++ ++/* { dg-final { scan-assembler-times "udiv\tw\[0-9\]+, w\[0-9\]+" 4 } } */ ++/* { dg-final { scan-assembler-times "sdiv\tw\[0-9\]+, w\[0-9\]+" 2 } } */ +--- a/src/gcc/testsuite/gcc.target/aarch64/spellcheck_1.c ++++ b/src/gcc/testsuite/gcc.target/aarch64/spellcheck_1.c +@@ -3,7 +3,7 @@ + __attribute__((target ("arch=armv8-a-typo"))) void + foo () + { ++ /* { dg-message "valid arguments are: \[^\n\r]*; did you mean 'armv8-a'?" "" { target *-*-* } .-1 } */ ++ /* { dg-error "unknown value 'armv8-a-typo' for 'arch' target attribute" "" { target *-*-* } .-2 } */ ++ /* { dg-error "target attribute 'arch=armv8-a-typo' is invalid" "" { target *-*-* } .-3 } */ + } +-/* { dg-message "valid arguments are: \[^\n\r]*; did you mean 'armv8-a'?" "" { target *-*-* } 5 } */ +-/* { dg-error "unknown value 'armv8-a-typo' for 'arch' target attribute" "" { target *-*-* } 5 } */ +-/* { dg-error "target attribute 'arch=armv8-a-typo' is invalid" "" { target *-*-* } 5 } */ +--- a/src/gcc/testsuite/gcc.target/aarch64/spellcheck_2.c ++++ b/src/gcc/testsuite/gcc.target/aarch64/spellcheck_2.c +@@ -3,7 +3,7 @@ + __attribute__((target ("cpu=cortex-a57-typo"))) void + foo () + { ++ /* { dg-message "valid arguments are: \[^\n\r]*; did you mean 'cortex-a57?" "" { target *-*-* } .-1 } */ ++ /* { dg-error "unknown value 'cortex-a57-typo' for 'cpu' target attribute" "" { target *-*-* } .-2 } */ ++ /* { dg-error "target attribute 'cpu=cortex-a57-typo' is invalid" "" { target *-*-* } .-3 } */ + } +-/* { dg-message "valid arguments are: \[^\n\r]*; did you mean 'cortex-a57?" "" { target *-*-* } 5 } */ +-/* { dg-error "unknown value 'cortex-a57-typo' for 'cpu' target attribute" "" { target *-*-* } 5 } */ +-/* { dg-error "target attribute 'cpu=cortex-a57-typo' is invalid" "" { target *-*-* } 5 } */ +--- a/src/gcc/testsuite/gcc.target/aarch64/spellcheck_3.c ++++ b/src/gcc/testsuite/gcc.target/aarch64/spellcheck_3.c +@@ -3,7 +3,7 @@ + __attribute__((target ("tune=cortex-a57-typo"))) void + foo () + { ++ /* { dg-message "valid arguments are: \[^\n\r]*; did you mean 'cortex-a57?" "" { target *-*-* } .-1 } */ ++ /* { dg-error "unknown value 'cortex-a57-typo' for 'tune' target attribute" "" { target *-*-* } .-2 } */ ++ /* { dg-error "target attribute 'tune=cortex-a57-typo' is invalid" "" { target *-*-* } .-3 } */ + } +-/* { dg-message "valid arguments are: \[^\n\r]*; did you mean 'cortex-a57?" "" { target *-*-* } 5 } */ +-/* { dg-error "unknown value 'cortex-a57-typo' for 'tune' target attribute" "" { target *-*-* } 5 } */ +-/* { dg-error "target attribute 'tune=cortex-a57-typo' is invalid" "" { target *-*-* } 5 } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/spill_1.c +@@ -0,0 +1,18 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++typedef int v4si __attribute__ ((vector_size (16))); ++ ++void bar (void); ++void ++foo (void) ++{ ++ v4si x = { 1, 1, 1, 1 }; ++ asm ("# %0" :: "w" (x)); ++ bar (); ++ asm ("# %0" :: "w" (x)); ++} ++ ++/* { dg-final { scan-assembler-times {\tmovi\tv[0-9]+\.4s,} 2 } } */ ++/* { dg-final { scan-assembler-not {\tldr\t} } } */ ++/* { dg-final { scan-assembler-not {\tstr\t} } } */ +--- a/src/gcc/testsuite/gcc.target/aarch64/stack-checking.c ++++ b/src/gcc/testsuite/gcc.target/aarch64/stack-checking.c +@@ -1,4 +1,5 @@ + /* { dg-do run { target { *-*-linux* } } } */ ++/* { dg-require-stack-check "" } */ + /* { dg-options "-fstack-check" } */ + + int main(void) +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/store_lane0_str_1.c +@@ -0,0 +1,54 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++typedef int v2si __attribute__ ((vector_size (8))); ++typedef float v2sf __attribute__ ((vector_size (8))); ++typedef short v4hi __attribute__ ((vector_size (8))); ++typedef __fp16 v4hf __attribute__ ((vector_size (8))); ++typedef char v8qi __attribute__ ((vector_size (8))); ++ ++typedef int v4si __attribute__ ((vector_size (16))); ++typedef float v4sf __attribute__ ((vector_size (16))); ++typedef short v8hi __attribute__ ((vector_size (16))); ++typedef __fp16 v8hf __attribute__ ((vector_size (16))); ++typedef char v16qi __attribute__ ((vector_size (16))); ++typedef long long v2di __attribute__ ((vector_size (16))); ++typedef double v2df __attribute__ ((vector_size (16))); ++ ++#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ ++#define LANE(N) (N - 1) ++#else ++#define LANE(N) 0 ++#endif ++ ++#define FUNC(T, E, N) \ ++void \ ++store_lane_##T (T x, E *y) \ ++{ \ ++ y[0] = x[N - 1 - LANE (N)]; \ ++ y[3] = x[LANE (N)]; \ ++} ++ ++FUNC (v2si, int, 2) ++FUNC (v2sf, float, 2) ++FUNC (v4hi, short, 4) ++FUNC (v4hf, __fp16, 4) ++FUNC (v8qi, char, 8) ++ ++FUNC (v4si, int, 4) ++FUNC (v4sf, float, 4) ++FUNC (v8hi, short, 8) ++FUNC (v8hf, __fp16, 8) ++FUNC (v16qi, char, 16) ++FUNC (v2di, long long, 2) ++FUNC (v2df, double, 2) ++ ++/* When storing lane zero of a vector we can use the scalar STR instruction ++ that supports more addressing modes. */ ++ ++/* { dg-final { scan-assembler-times "str\ts\[0-9\]+" 4 } } */ ++/* { dg-final { scan-assembler-times "str\tb\[0-9\]+" 2 } } */ ++/* { dg-final { scan-assembler-times "str\th\[0-9\]+" 4 } } */ ++/* { dg-final { scan-assembler-times "str\td\[0-9\]+" 2 } } */ ++/* { dg-final { scan-assembler-not "umov" } } */ ++/* { dg-final { scan-assembler-not "dup" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/subs_compare_1.c +@@ -0,0 +1,15 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++int ++foo (int a, int b) ++{ ++ int x = a - b; ++ if (a <= b) ++ return x; ++ else ++ return 0; ++} ++ ++/* { dg-final { scan-assembler-times "subs\\tw\[0-9\]+, w\[0-9\]+, w\[0-9\]+" 1 } } */ ++/* { dg-final { scan-assembler-not "cmp\\tw\[0-9\]+, w\[0-9\]+" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/subs_compare_2.c +@@ -0,0 +1,15 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++int ++foo (int a, int b) ++{ ++ int x = a - 4; ++ if (a < 4) ++ return x; ++ else ++ return 0; ++} ++ ++/* { dg-final { scan-assembler-times "subs\\tw\[0-9\]+, w\[0-9\]+, #4" 1 } } */ ++/* { dg-final { scan-assembler-not "cmp\\tw\[0-9\]+, w\[0-9\]+" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/vect-init-1.c +@@ -0,0 +1,12 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++#define vector __attribute__((vector_size(16))) ++ ++vector float combine (float a, float b, float c, float d) ++{ ++ return (vector float) { a, b, c, d }; ++} ++ ++/* { dg-final { scan-assembler-not "movi\t" } } */ ++/* { dg-final { scan-assembler-not "orr\t" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/vect-init-2.c +@@ -0,0 +1,12 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++#define vector __attribute__((vector_size(16))) ++ ++vector float combine (float a, float b, float d) ++{ ++ return (vector float) { a, b, a, d }; ++} ++ ++/* { dg-final { scan-assembler-not "movi\t" } } */ ++/* { dg-final { scan-assembler-not "orr\t" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/vect-init-3.c +@@ -0,0 +1,12 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++#define vector __attribute__((vector_size(16))) ++ ++vector float combine (float a, float b) ++{ ++ return (vector float) { a, b, a, b }; ++} ++ ++/* { dg-final { scan-assembler-not "movi\t" } } */ ++/* { dg-final { scan-assembler-not "orr\t" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/vect-init-4.c +@@ -0,0 +1,12 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++#define vector __attribute__((vector_size(16))) ++ ++vector float combine (float a, float b) ++{ ++ return (vector float) { a, b, b, a }; ++} ++ ++/* { dg-final { scan-assembler-not "movi\t" } } */ ++/* { dg-final { scan-assembler-not "orr\t" } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/aarch64/vect-init-5.c +@@ -0,0 +1,12 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++#define vector __attribute__((vector_size(16))) ++ ++vector float combine (float a, float b) ++{ ++ return (vector float) { a, b, a, a }; ++} ++ ++/* { dg-final { scan-assembler-not "movi\t" } } */ ++/* { dg-final { scan-assembler-not "orr\t" } } */ +--- a/src/gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-1.c ++++ b/src/gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-1.c +@@ -3,7 +3,8 @@ + /* { dg-options "-O2 -ffast-math" } */ + /* { dg-add-options arm_v8_2a_fp16_neon } */ + +-/* Test instructions generated for half-precision arithmetic. */ ++/* Test instructions generated for half-precision arithmetic with ++ unsafe-math-optimizations enabled. */ + + typedef __fp16 float16_t; + typedef __simd64_float16_t float16x4_t; +@@ -90,9 +91,18 @@ TEST_CMP (greaterthanqual, >=, int16x8_t, float16x8_t) + /* { dg-final { scan-assembler-times {vneg\.f16\tq[0-9]+, q[0-9]+} 1 } } */ + /* { dg-final { scan-assembler-times {vabs\.f16\ts[0-9]+, s[0-9]+} 2 } } */ + +-/* { dg-final { scan-assembler-times {vadd\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ +-/* { dg-final { scan-assembler-times {vsub\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ +-/* { dg-final { scan-assembler-times {vmul\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ ++/* { dg-final { scan-assembler-times {vadd\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vadd\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vadd\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++/* { dg-final { scan-assembler-times {vsub\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vsub\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vsub\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++/* { dg-final { scan-assembler-times {vmul\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vmul\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vmul\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ + /* { dg-final { scan-assembler-times {vdiv\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ + /* { dg-final { scan-assembler-times {vcmp\.f32\ts[0-9]+, s[0-9]+} 26 } } */ + /* { dg-final { scan-assembler-times {vcmpe\.f32\ts[0-9]+, s[0-9]+} 52 } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/armv8_2-fp16-arith-2.c +@@ -0,0 +1,109 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target arm_v8_2a_fp16_neon_ok } */ ++/* { dg-options "-O2 -fno-fast-math" } */ ++/* { dg-add-options arm_v8_2a_fp16_neon } */ ++ ++/* Test instructions generated for half-precision arithmetic without ++ unsafe-math-optimizations. */ ++ ++typedef __fp16 float16_t; ++typedef __simd64_float16_t float16x4_t; ++typedef __simd128_float16_t float16x8_t; ++ ++typedef short int16x4_t __attribute__ ((vector_size (8))); ++typedef short int int16x8_t __attribute__ ((vector_size (16))); ++ ++float16_t ++fp16_abs (float16_t a) ++{ ++ return (a < 0) ? -a : a; ++} ++ ++#define TEST_UNOP(NAME, OPERATOR, TY) \ ++ TY test_##NAME##_##TY (TY a) \ ++ { \ ++ return OPERATOR (a); \ ++ } ++ ++#define TEST_BINOP(NAME, OPERATOR, TY) \ ++ TY test_##NAME##_##TY (TY a, TY b) \ ++ { \ ++ return a OPERATOR b; \ ++ } ++ ++#define TEST_CMP(NAME, OPERATOR, RTY, TY) \ ++ RTY test_##NAME##_##TY (TY a, TY b) \ ++ { \ ++ return a OPERATOR b; \ ++ } ++ ++/* Scalars. */ ++ ++TEST_UNOP (neg, -, float16_t) ++TEST_UNOP (abs, fp16_abs, float16_t) ++ ++TEST_BINOP (add, +, float16_t) ++TEST_BINOP (sub, -, float16_t) ++TEST_BINOP (mult, *, float16_t) ++TEST_BINOP (div, /, float16_t) ++ ++TEST_CMP (equal, ==, int, float16_t) ++TEST_CMP (unequal, !=, int, float16_t) ++TEST_CMP (lessthan, <, int, float16_t) ++TEST_CMP (greaterthan, >, int, float16_t) ++TEST_CMP (lessthanequal, <=, int, float16_t) ++TEST_CMP (greaterthanqual, >=, int, float16_t) ++ ++/* Vectors of size 4. */ ++ ++TEST_UNOP (neg, -, float16x4_t) ++ ++TEST_BINOP (add, +, float16x4_t) ++TEST_BINOP (sub, -, float16x4_t) ++TEST_BINOP (mult, *, float16x4_t) ++TEST_BINOP (div, /, float16x4_t) ++ ++TEST_CMP (equal, ==, int16x4_t, float16x4_t) ++TEST_CMP (unequal, !=, int16x4_t, float16x4_t) ++TEST_CMP (lessthan, <, int16x4_t, float16x4_t) ++TEST_CMP (greaterthan, >, int16x4_t, float16x4_t) ++TEST_CMP (lessthanequal, <=, int16x4_t, float16x4_t) ++TEST_CMP (greaterthanqual, >=, int16x4_t, float16x4_t) ++ ++/* Vectors of size 8. */ ++ ++TEST_UNOP (neg, -, float16x8_t) ++ ++TEST_BINOP (add, +, float16x8_t) ++TEST_BINOP (sub, -, float16x8_t) ++TEST_BINOP (mult, *, float16x8_t) ++TEST_BINOP (div, /, float16x8_t) ++ ++TEST_CMP (equal, ==, int16x8_t, float16x8_t) ++TEST_CMP (unequal, !=, int16x8_t, float16x8_t) ++TEST_CMP (lessthan, <, int16x8_t, float16x8_t) ++TEST_CMP (greaterthan, >, int16x8_t, float16x8_t) ++TEST_CMP (lessthanequal, <=, int16x8_t, float16x8_t) ++TEST_CMP (greaterthanqual, >=, int16x8_t, float16x8_t) ++ ++/* { dg-final { scan-assembler-times {vneg\.f16\ts[0-9]+, s[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vneg\.f16\td[0-9]+, d[0-9]+} 1 } } */ ++/* { dg-final { scan-assembler-times {vneg\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++/* { dg-final { scan-assembler-times {vadd\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ ++/* { dg-final { scan-assembler-times {vsub\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ ++/* { dg-final { scan-assembler-times {vmul\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ ++/* { dg-final { scan-assembler-times {vdiv\.f16\ts[0-9]+, s[0-9]+, s[0-9]+} 13 } } */ ++/* { dg-final { scan-assembler-times {vcmp\.f32\ts[0-9]+, s[0-9]+} 26 } } */ ++ ++/* { dg-final { scan-assembler-times {vcmpe\.f32\ts[0-9]+, s[0-9]+} 52 } } */ ++/* { dg-final { scan-assembler-times {vcmpe\.f32\ts[0-9]+, #0} 2 } } */ ++ ++/* { dg-final { scan-assembler-not {vabs\.f16} } } */ ++ ++/* { dg-final { scan-assembler-not {vadd\.f32} } } */ ++/* { dg-final { scan-assembler-not {vsub\.f32} } } */ ++/* { dg-final { scan-assembler-not {vmul\.f32} } } */ ++/* { dg-final { scan-assembler-not {vdiv\.f32} } } */ ++/* { dg-final { scan-assembler-not {vcmp\.f16} } } */ ++/* { dg-final { scan-assembler-not {vcmpe\.f16} } } */ +--- a/src/gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-1.c ++++ b/src/gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-1.c +@@ -137,7 +137,7 @@ + } + + VCMP1_TEST (vceqz) +-/* { dg-final { scan-assembler-times {vceq\.f16\td[0-9]+, d[0-0]+, #0} 1 } } */ ++/* { dg-final { scan-assembler-times {vceq\.f16\td[0-9]+, d[0-9]+, #0} 1 } } */ + /* { dg-final { scan-assembler-times {vceq\.f16\tq[0-9]+, q[0-9]+, #0} 1 } } */ + + VCMP1_TEST (vcgtz) +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-2.c +@@ -0,0 +1,491 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target arm_v8_2a_fp16_neon_ok } */ ++/* { dg-options "-O2 -ffast-math" } */ ++/* { dg-add-options arm_v8_2a_fp16_neon } */ ++ ++/* Test instructions generated for the FP16 vector intrinsics with ++ -ffast-math */ ++ ++#include ++ ++#define MSTRCAT(L, str) L##str ++ ++#define UNOP_TEST(insn) \ ++ float16x4_t \ ++ MSTRCAT (test_##insn, _16x4) (float16x4_t a) \ ++ { \ ++ return MSTRCAT (insn, _f16) (a); \ ++ } \ ++ float16x8_t \ ++ MSTRCAT (test_##insn, _16x8) (float16x8_t a) \ ++ { \ ++ return MSTRCAT (insn, q_f16) (a); \ ++ } ++ ++#define BINOP_TEST(insn) \ ++ float16x4_t \ ++ MSTRCAT (test_##insn, _16x4) (float16x4_t a, float16x4_t b) \ ++ { \ ++ return MSTRCAT (insn, _f16) (a, b); \ ++ } \ ++ float16x8_t \ ++ MSTRCAT (test_##insn, _16x8) (float16x8_t a, float16x8_t b) \ ++ { \ ++ return MSTRCAT (insn, q_f16) (a, b); \ ++ } ++ ++#define BINOP_LANE_TEST(insn, I) \ ++ float16x4_t \ ++ MSTRCAT (test_##insn##_lane, _16x4) (float16x4_t a, float16x4_t b) \ ++ { \ ++ return MSTRCAT (insn, _lane_f16) (a, b, I); \ ++ } \ ++ float16x8_t \ ++ MSTRCAT (test_##insn##_lane, _16x8) (float16x8_t a, float16x4_t b) \ ++ { \ ++ return MSTRCAT (insn, q_lane_f16) (a, b, I); \ ++ } ++ ++#define BINOP_LANEQ_TEST(insn, I) \ ++ float16x4_t \ ++ MSTRCAT (test_##insn##_laneq, _16x4) (float16x4_t a, float16x8_t b) \ ++ { \ ++ return MSTRCAT (insn, _laneq_f16) (a, b, I); \ ++ } \ ++ float16x8_t \ ++ MSTRCAT (test_##insn##_laneq, _16x8) (float16x8_t a, float16x8_t b) \ ++ { \ ++ return MSTRCAT (insn, q_laneq_f16) (a, b, I); \ ++ } \ ++ ++#define BINOP_N_TEST(insn) \ ++ float16x4_t \ ++ MSTRCAT (test_##insn##_n, _16x4) (float16x4_t a, float16_t b) \ ++ { \ ++ return MSTRCAT (insn, _n_f16) (a, b); \ ++ } \ ++ float16x8_t \ ++ MSTRCAT (test_##insn##_n, _16x8) (float16x8_t a, float16_t b) \ ++ { \ ++ return MSTRCAT (insn, q_n_f16) (a, b); \ ++ } ++ ++#define TERNOP_TEST(insn) \ ++ float16_t \ ++ MSTRCAT (test_##insn, _16) (float16_t a, float16_t b, float16_t c) \ ++ { \ ++ return MSTRCAT (insn, h_f16) (a, b, c); \ ++ } \ ++ float16x4_t \ ++ MSTRCAT (test_##insn, _16x4) (float16x4_t a, float16x4_t b, \ ++ float16x4_t c) \ ++ { \ ++ return MSTRCAT (insn, _f16) (a, b, c); \ ++ } \ ++ float16x8_t \ ++ MSTRCAT (test_##insn, _16x8) (float16x8_t a, float16x8_t b, \ ++ float16x8_t c) \ ++ { \ ++ return MSTRCAT (insn, q_f16) (a, b, c); \ ++ } ++ ++#define VCMP1_TEST(insn) \ ++ uint16x4_t \ ++ MSTRCAT (test_##insn, _16x4) (float16x4_t a) \ ++ { \ ++ return MSTRCAT (insn, _f16) (a); \ ++ } \ ++ uint16x8_t \ ++ MSTRCAT (test_##insn, _16x8) (float16x8_t a) \ ++ { \ ++ return MSTRCAT (insn, q_f16) (a); \ ++ } ++ ++#define VCMP2_TEST(insn) \ ++ uint16x4_t \ ++ MSTRCAT (test_##insn, _16x4) (float16x4_t a, float16x4_t b) \ ++ { \ ++ return MSTRCAT (insn, _f16) (a, b); \ ++ } \ ++ uint16x8_t \ ++ MSTRCAT (test_##insn, _16x8) (float16x8_t a, float16x8_t b) \ ++ { \ ++ return MSTRCAT (insn, q_f16) (a, b); \ ++ } ++ ++#define VCVT_TEST(insn, TY, TO, FR) \ ++ MSTRCAT (TO, 16x4_t) \ ++ MSTRCAT (test_##insn, TY) (MSTRCAT (FR, 16x4_t) a) \ ++ { \ ++ return MSTRCAT (insn, TY) (a); \ ++ } \ ++ MSTRCAT (TO, 16x8_t) \ ++ MSTRCAT (test_##insn##_q, TY) (MSTRCAT (FR, 16x8_t) a) \ ++ { \ ++ return MSTRCAT (insn, q##TY) (a); \ ++ } ++ ++#define VCVT_N_TEST(insn, TY, TO, FR) \ ++ MSTRCAT (TO, 16x4_t) \ ++ MSTRCAT (test_##insn##_n, TY) (MSTRCAT (FR, 16x4_t) a) \ ++ { \ ++ return MSTRCAT (insn, _n##TY) (a, 1); \ ++ } \ ++ MSTRCAT (TO, 16x8_t) \ ++ MSTRCAT (test_##insn##_n_q, TY) (MSTRCAT (FR, 16x8_t) a) \ ++ { \ ++ return MSTRCAT (insn, q_n##TY) (a, 1); \ ++ } ++ ++VCMP1_TEST (vceqz) ++/* { dg-final { scan-assembler-times {vceq\.f16\td[0-9]+, d[0-9]+, #0} 1 } } */ ++/* { dg-final { scan-assembler-times {vceq\.f16\tq[0-9]+, q[0-9]+, #0} 1 } } */ ++ ++VCMP1_TEST (vcgtz) ++/* { dg-final { scan-assembler-times {vcgt\.f16\td[0-9]+, d[0-9]+, #0} 1 } } */ ++/* { dg-final { scan-assembler-times {vceq\.f16\tq[0-9]+, q[0-9]+, #0} 1 } } */ ++ ++VCMP1_TEST (vcgez) ++/* { dg-final { scan-assembler-times {vcge\.f16\td[0-9]+, d[0-9]+, #0} 1 } } */ ++/* { dg-final { scan-assembler-times {vcge\.f16\tq[0-9]+, q[0-9]+, #0} 1 } } */ ++ ++VCMP1_TEST (vcltz) ++/* { dg-final { scan-assembler-times {vclt.f16\td[0-9]+, d[0-9]+, #0} 1 } } */ ++/* { dg-final { scan-assembler-times {vclt.f16\tq[0-9]+, q[0-9]+, #0} 1 } } */ ++ ++VCMP1_TEST (vclez) ++/* { dg-final { scan-assembler-times {vcle\.f16\td[0-9]+, d[0-9]+, #0} 1 } } */ ++/* { dg-final { scan-assembler-times {vcle\.f16\tq[0-9]+, q[0-9]+, #0} 1 } } */ ++ ++VCVT_TEST (vcvt, _f16_s16, float, int) ++VCVT_N_TEST (vcvt, _f16_s16, float, int) ++/* { dg-final { scan-assembler-times {vcvt\.f16\.s16\td[0-9]+, d[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.f16\.s16\tq[0-9]+, q[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.f16\.s16\td[0-9]+, d[0-9]+, #1} 1 } } ++ { dg-final { scan-assembler-times {vcvt\.f16\.s16\tq[0-9]+, q[0-9]+, #1} 1 } } */ ++ ++VCVT_TEST (vcvt, _f16_u16, float, uint) ++VCVT_N_TEST (vcvt, _f16_u16, float, uint) ++/* { dg-final { scan-assembler-times {vcvt\.f16\.u16\td[0-9]+, d[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.f16\.u16\tq[0-9]+, q[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.f16\.u16\td[0-9]+, d[0-9]+, #1} 1 } } ++ { dg-final { scan-assembler-times {vcvt\.f16\.u16\tq[0-9]+, q[0-9]+, #1} 1 } } */ ++ ++VCVT_TEST (vcvt, _s16_f16, int, float) ++VCVT_N_TEST (vcvt, _s16_f16, int, float) ++/* { dg-final { scan-assembler-times {vcvt\.s16\.f16\td[0-9]+, d[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.s16\.f16\tq[0-9]+, q[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.s16\.f16\td[0-9]+, d[0-9]+, #1} 1 } } ++ { dg-final { scan-assembler-times {vcvt\.s16\.f16\tq[0-9]+, q[0-9]+, #1} 1 } } */ ++ ++VCVT_TEST (vcvt, _u16_f16, uint, float) ++VCVT_N_TEST (vcvt, _u16_f16, uint, float) ++/* { dg-final { scan-assembler-times {vcvt\.u16\.f16\td[0-9]+, d[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.u16\.f16\tq[0-9]+, q[0-9]+} 2 } } ++ { dg-final { scan-assembler-times {vcvt\.u16\.f16\td[0-9]+, d[0-9]+, #1} 1 } } ++ { dg-final { scan-assembler-times {vcvt\.u16\.f16\tq[0-9]+, q[0-9]+, #1} 1 } } */ ++ ++VCVT_TEST (vcvta, _s16_f16, int, float) ++/* { dg-final { scan-assembler-times {vcvta\.s16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvta\.s16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++VCVT_TEST (vcvta, _u16_f16, uint, float) ++/* { dg-final { scan-assembler-times {vcvta\.u16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvta\.u16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++VCVT_TEST (vcvtm, _s16_f16, int, float) ++/* { dg-final { scan-assembler-times {vcvtm\.s16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvtm\.s16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++VCVT_TEST (vcvtm, _u16_f16, uint, float) ++/* { dg-final { scan-assembler-times {vcvtm\.u16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvtm\.u16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++VCVT_TEST (vcvtn, _s16_f16, int, float) ++/* { dg-final { scan-assembler-times {vcvtn\.s16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvtn\.s16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++VCVT_TEST (vcvtn, _u16_f16, uint, float) ++/* { dg-final { scan-assembler-times {vcvtn\.u16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvtn\.u16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++VCVT_TEST (vcvtp, _s16_f16, int, float) ++/* { dg-final { scan-assembler-times {vcvtp\.s16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvtp\.s16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++VCVT_TEST (vcvtp, _u16_f16, uint, float) ++/* { dg-final { scan-assembler-times {vcvtp\.u16\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcvtp\.u16\.f16\tq[0-9]+, q[0-9]+} 1 } } ++*/ ++ ++UNOP_TEST (vabs) ++/* { dg-final { scan-assembler-times {vabs\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vabs\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vneg) ++/* { dg-final { scan-assembler-times {vneg\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vneg\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrecpe) ++/* { dg-final { scan-assembler-times {vrecpe\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrecpe\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrnd) ++/* { dg-final { scan-assembler-times {vrintz\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrintz\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrnda) ++/* { dg-final { scan-assembler-times {vrinta\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrinta\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrndm) ++/* { dg-final { scan-assembler-times {vrintm\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrintm\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrndn) ++/* { dg-final { scan-assembler-times {vrintn\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrintn\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrndp) ++/* { dg-final { scan-assembler-times {vrintp\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrintp\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrndx) ++/* { dg-final { scan-assembler-times {vrintx\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrintx\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++UNOP_TEST (vrsqrte) ++/* { dg-final { scan-assembler-times {vrsqrte\.f16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrsqrte\.f16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vadd) ++/* { dg-final { scan-assembler-times {vadd\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vadd\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vabd) ++/* { dg-final { scan-assembler-times {vabd\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vabd\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vcage) ++/* { dg-final { scan-assembler-times {vacge\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vacge\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vcagt) ++/* { dg-final { scan-assembler-times {vacgt\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vacgt\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vcale) ++/* { dg-final { scan-assembler-times {vacle\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vacle\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vcalt) ++/* { dg-final { scan-assembler-times {vaclt\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vaclt\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vceq) ++/* { dg-final { scan-assembler-times {vceq\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vceq\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vcge) ++/* { dg-final { scan-assembler-times {vcge\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcge\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vcgt) ++/* { dg-final { scan-assembler-times {vcgt\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcgt\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vcle) ++/* { dg-final { scan-assembler-times {vcle\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vcle\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++VCMP2_TEST (vclt) ++/* { dg-final { scan-assembler-times {vclt\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vclt\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vmax) ++/* { dg-final { scan-assembler-times {vmax\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vmax\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vmin) ++/* { dg-final { scan-assembler-times {vmin\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vmin\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vmaxnm) ++/* { dg-final { scan-assembler-times {vmaxnm\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vmaxnm\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vminnm) ++/* { dg-final { scan-assembler-times {vminnm\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vminnm\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vmul) ++/* { dg-final { scan-assembler-times {vmul\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 3 } } ++ { dg-final { scan-assembler-times {vmul\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++BINOP_LANE_TEST (vmul, 2) ++/* { dg-final { scan-assembler-times {vmul\.f16\td[0-9]+, d[0-9]+, d[0-9]+\[2\]} 1 } } ++ { dg-final { scan-assembler-times {vmul\.f16\tq[0-9]+, q[0-9]+, d[0-9]+\[2\]} 1 } } */ ++BINOP_N_TEST (vmul) ++/* { dg-final { scan-assembler-times {vmul\.f16\td[0-9]+, d[0-9]+, d[0-9]+\[0\]} 1 } } ++ { dg-final { scan-assembler-times {vmul\.f16\tq[0-9]+, q[0-9]+, d[0-9]+\[0\]} 1 } }*/ ++ ++float16x4_t ++test_vpadd_16x4 (float16x4_t a, float16x4_t b) ++{ ++ return vpadd_f16 (a, b); ++} ++/* { dg-final { scan-assembler-times {vpadd\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } */ ++ ++float16x4_t ++test_vpmax_16x4 (float16x4_t a, float16x4_t b) ++{ ++ return vpmax_f16 (a, b); ++} ++/* { dg-final { scan-assembler-times {vpmax\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } */ ++ ++float16x4_t ++test_vpmin_16x4 (float16x4_t a, float16x4_t b) ++{ ++ return vpmin_f16 (a, b); ++} ++/* { dg-final { scan-assembler-times {vpmin\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } */ ++ ++BINOP_TEST (vsub) ++/* { dg-final { scan-assembler-times {vsub\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vsub\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vrecps) ++/* { dg-final { scan-assembler-times {vrecps\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrecps\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++BINOP_TEST (vrsqrts) ++/* { dg-final { scan-assembler-times {vrsqrts\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrsqrts\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++TERNOP_TEST (vfma) ++/* { dg-final { scan-assembler-times {vfma\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vfma\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++TERNOP_TEST (vfms) ++/* { dg-final { scan-assembler-times {vfms\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vfms\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++float16x4_t ++test_vmov_n_f16 (float16_t a) ++{ ++ return vmov_n_f16 (a); ++} ++ ++float16x4_t ++test_vdup_n_f16 (float16_t a) ++{ ++ return vdup_n_f16 (a); ++} ++/* { dg-final { scan-assembler-times {vdup\.16\td[0-9]+, r[0-9]+} 2 } } */ ++ ++float16x8_t ++test_vmovq_n_f16 (float16_t a) ++{ ++ return vmovq_n_f16 (a); ++} ++ ++float16x8_t ++test_vdupq_n_f16 (float16_t a) ++{ ++ return vdupq_n_f16 (a); ++} ++/* { dg-final { scan-assembler-times {vdup\.16\tq[0-9]+, r[0-9]+} 2 } } */ ++ ++float16x4_t ++test_vdup_lane_f16 (float16x4_t a) ++{ ++ return vdup_lane_f16 (a, 1); ++} ++/* { dg-final { scan-assembler-times {vdup\.16\td[0-9]+, d[0-9]+\[1\]} 1 } } */ ++ ++float16x8_t ++test_vdupq_lane_f16 (float16x4_t a) ++{ ++ return vdupq_lane_f16 (a, 1); ++} ++/* { dg-final { scan-assembler-times {vdup\.16\tq[0-9]+, d[0-9]+\[1\]} 1 } } */ ++ ++float16x4_t ++test_vext_f16 (float16x4_t a, float16x4_t b) ++{ ++ return vext_f16 (a, b, 1); ++} ++/* { dg-final { scan-assembler-times {vext\.16\td[0-9]+, d[0-9]+, d[0-9]+, #1} 1 } } */ ++ ++float16x8_t ++test_vextq_f16 (float16x8_t a, float16x8_t b) ++{ ++ return vextq_f16 (a, b, 1); ++} ++/* { dg-final { scan-assembler-times {vext\.16\tq[0-9]+, q[0-9]+, q[0-9]+, #1} 1 } } */ ++ ++UNOP_TEST (vrev64) ++/* { dg-final { scan-assembler-times {vrev64\.16\td[0-9]+, d[0-9]+} 1 } } ++ { dg-final { scan-assembler-times {vrev64\.16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++float16x4_t ++test_vbsl16x4 (uint16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vbsl_f16 (a, b, c); ++} ++/* { dg-final { scan-assembler-times {vbsl\td[0-9]+, d[0-9]+, d[0-9]+} 1 } } */ ++ ++float16x8_t ++test_vbslq16x8 (uint16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vbslq_f16 (a, b, c); ++} ++/*{ dg-final { scan-assembler-times {vbsl\tq[0-9]+, q[0-9]+, q[0-9]+} 1 } } */ ++ ++float16x4x2_t ++test_vzip16x4 (float16x4_t a, float16x4_t b) ++{ ++ return vzip_f16 (a, b); ++} ++/* { dg-final { scan-assembler-times {vzip\.16\td[0-9]+, d[0-9]+} 1 } } */ ++ ++float16x8x2_t ++test_vzipq16x8 (float16x8_t a, float16x8_t b) ++{ ++ return vzipq_f16 (a, b); ++} ++/*{ dg-final { scan-assembler-times {vzip\.16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++float16x4x2_t ++test_vuzp16x4 (float16x4_t a, float16x4_t b) ++{ ++ return vuzp_f16 (a, b); ++} ++/* { dg-final { scan-assembler-times {vuzp\.16\td[0-9]+, d[0-9]+} 1 } } */ ++ ++float16x8x2_t ++test_vuzpq16x8 (float16x8_t a, float16x8_t b) ++{ ++ return vuzpq_f16 (a, b); ++} ++/*{ dg-final { scan-assembler-times {vuzp\.16\tq[0-9]+, q[0-9]+} 1 } } */ ++ ++float16x4x2_t ++test_vtrn16x4 (float16x4_t a, float16x4_t b) ++{ ++ return vtrn_f16 (a, b); ++} ++/* { dg-final { scan-assembler-times {vtrn\.16\td[0-9]+, d[0-9]+} 1 } } */ ++ ++float16x8x2_t ++test_vtrnq16x8 (float16x8_t a, float16x8_t b) ++{ ++ return vtrnq_f16 (a, b); ++} ++/*{ dg-final { scan-assembler-times {vtrn\.16\tq[0-9]+, q[0-9]+} 1 } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/armv8_2-fp16-neon-3.c +@@ -0,0 +1,108 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target arm_v8_2a_fp16_neon_ok } */ ++/* { dg-options "-O2 -ffast-math" } */ ++/* { dg-add-options arm_v8_2a_fp16_neon } */ ++ ++/* Test compiler use of FP16 FMA/FMS instructions with -ffast-math. */ ++ ++#include ++ ++float16x4_t ++test_vfma_1 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vadd_f16 (vmul_f16 (a, b), c); ++} ++ ++float16x4_t ++test_vfma_2 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vsub_f16 (vmul_f16 (a, b), vneg_f16 (c)); ++} ++ ++float16x4_t ++test_vfma_3 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vsub_f16 (vmul_f16 (vneg_f16 (a), vneg_f16 (b)), vneg_f16 (c)); ++} ++ ++float16x4_t ++test_vfma_4 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vsub_f16 (vmul_f16 (a, b), vneg_f16 (c)); ++} ++/* { dg-final { scan-assembler-times {vfma\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 4 } } */ ++ ++float16x8_t ++test_vfmaq_1 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vaddq_f16 (vmulq_f16 (a, b), c); ++} ++ ++float16x8_t ++test_vfmaq_2 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vsubq_f16 (vmulq_f16 (a, b), vnegq_f16 (c)); ++} ++ ++float16x8_t ++test_vfmaq_3 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vsubq_f16 (vmulq_f16 (vnegq_f16 (a), vnegq_f16 (b)), vnegq_f16 (c)); ++} ++ ++float16x8_t ++test_vfmaq_4 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vsubq_f16 (vmulq_f16 (a, b), vnegq_f16 (c)); ++} ++/* { dg-final { scan-assembler-times {vfma\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 4 } } */ ++ ++float16x4_t ++test_vfms_1 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vsub_f16 (c, vmul_f16 (a, b)); ++} ++ ++float16x4_t ++test_vfms_2 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vsub_f16 (a, vmul_f16 (b, c)); ++} ++ ++float16x4_t ++test_vfms_3 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vadd_f16 (vmul_f16 (vneg_f16 (a), b), c); ++} ++ ++float16x4_t ++test_vfms_4 (float16x4_t a, float16x4_t b, float16x4_t c) ++{ ++ return vadd_f16 (vmul_f16 (a, vneg_f16 (b)), c); ++} ++/* { dg-final { scan-assembler-times {vfms\.f16\td[0-9]+, d[0-9]+, d[0-9]+} 4 } } */ ++ ++float16x8_t ++test_vfmsq_1 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vsubq_f16 (c, vmulq_f16 (a, b)); ++} ++ ++float16x8_t ++test_vfmsq_2 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vsubq_f16 (a, vmulq_f16 (b, c)); ++} ++ ++float16x8_t ++test_vfmsq_3 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vaddq_f16 (vmulq_f16 (vnegq_f16 (a), b), c); ++} ++ ++float16x8_t ++test_vfmsq_4 (float16x8_t a, float16x8_t b, float16x8_t c) ++{ ++ return vaddq_f16 (vmulq_f16 (a, vnegq_f16 (b)), c); ++} ++/* { dg-final { scan-assembler-times {vfms\.f16\tq[0-9]+, q[0-9]+, q[0-9]+} 4 } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/movdi_movt.c +@@ -0,0 +1,18 @@ ++/* { dg-do compile { target { arm_cortex_m && { arm_thumb2_ok || arm_thumb1_movt_ok } } } } */ ++/* { dg-options "-O2 -mslow-flash-data" } */ ++ ++unsigned long long ++movdi_1 (int a) ++{ ++ return 0xF0F00000LLU; ++} ++ ++unsigned long long ++movdi_2 (int a) ++{ ++ return 0xF0F0000000000000LLU; ++} ++ ++/* Accept r1 because big endian targets put the low bits in the highest ++ numbered register of a pair. */ ++/* { dg-final { scan-assembler-times "movt\tr\[01\], 61680" 2 } } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/movsi_movt.c +@@ -0,0 +1,10 @@ ++/* { dg-do compile { target { arm_cortex_m && { arm_thumb2_ok || arm_thumb1_movt_ok } } } } */ ++/* { dg-options "-O2 -mslow-flash-data" } */ ++ ++unsigned ++movsi (void) ++{ ++ return 0xF0F00000U; ++} ++ ++/* { dg-final { scan-assembler-times "movt\tr0, 61680" 1 } } */ +--- a/src/gcc/testsuite/gcc.target/arm/pr69180.c ++++ b/src/gcc/testsuite/gcc.target/arm/pr69180.c +@@ -8,9 +8,10 @@ + #pragma GCC target ("fpu=neon-fp-armv8") + + #define __ARM_NEON_FP 0 ++/* { dg-warning ".__ARM_NEON_FP. redefined" "" { target *-*-* } .-1 } */ ++ + #define __ARM_FP 0 +-#define __ARM_FEATURE_LDREX 0 ++/* { dg-warning ".__ARM_FP. redefined" "" { target *-*-* } .-1 } */ + +-/* { dg-warning ".__ARM_NEON_FP. redefined" "" { target *-*-* } 10 } */ +-/* { dg-warning ".__ARM_FP. redefined" "" { target *-*-* } 11 } */ +-/* { dg-warning ".__ARM_FEATURE_LDREX. redefined" "" { target *-*-* } 12 } */ ++#define __ARM_FEATURE_LDREX 0 ++/* { dg-warning ".__ARM_FEATURE_LDREX. redefined" "" { target *-*-* } .-1 } */ +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/sdiv_costs_1.c +@@ -0,0 +1,38 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O3 -march=armv8-a" } */ ++ ++/* Both sdiv and udiv can be used here, so prefer udiv. */ ++int f1 (unsigned char *p) ++{ ++ return 100 / p[1]; ++} ++ ++int f2 (unsigned char *p, unsigned short x) ++{ ++ return x / p[0]; ++} ++ ++int f3 (unsigned char *p, int x) ++{ ++ x &= 0x7fffffff; ++ return x / p[0]; ++} ++ ++int f5 (unsigned char *p, unsigned short x) ++{ ++ return x % p[0]; ++} ++ ++/* This should only generate signed divisions. */ ++int f4 (unsigned char *p) ++{ ++ return -100 / p[1]; ++} ++ ++int f6 (unsigned char *p, short x) ++{ ++ return x % p[0]; ++} ++ ++/* { dg-final { scan-assembler-times "udiv\tr\[0-9\]+, r\[0-9\]+, r\[0-9\]+" 4 } } */ ++/* { dg-final { scan-assembler-times "sdiv\tr\[0-9\]+, r\[0-9\]+, r\[0-9\]+" 2 } } */ +--- a/src/gcc/testsuite/gcc.target/arm/stack-checking.c ++++ b/src/gcc/testsuite/gcc.target/arm/stack-checking.c +@@ -1,6 +1,6 @@ + /* { dg-do run { target { *-*-linux* } } } */ ++/* { dg-require-stack-check "" } */ + /* { dg-options "-fstack-check" } */ +-/* { dg-skip-if "" { arm_thumb1 } } */ + + int main(void) + { +--- /dev/null ++++ b/src/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-1.c +@@ -0,0 +1,73 @@ ++/* The option -mslow-flash-data is just for performance tuning, it ++ doesn't totally disable the use of literal pools. But for below ++ simple cases, the use of literal pool should be replaced by ++ movw/movt or read-only constant pool. */ ++ ++/* { dg-do compile } */ ++/* { dg-require-effective-target arm_cortex_m } */ ++/* { dg-require-effective-target arm_thumb2_ok } */ ++/* { dg-options "-O2 -mthumb -mslow-flash-data" } */ ++ ++float sf; ++double df; ++long long l; ++static char *p = "Hello World"; ++ ++float ++testsf (float *p) ++{ ++ if (*p > 1.1234f) ++ return 2.1234f; ++ else ++ return 3.1234f; ++} ++ ++double ++testdf (double *p) ++{ ++ if (*p > 4.1234) ++ return 2.1234; ++ else ++ return 3.1234; ++} ++ ++long long ++testll (long long *p) ++{ ++ if (*p > 0x123456789ABCDEFll) ++ return 0x111111111ll; ++ else ++ return 0x222222222ll; ++} ++ ++char * ++testchar () ++{ ++ return p + 4; ++} ++ ++int ++foo (int a, int b) ++{ ++ int i; ++ volatile int *labelref = &&label1; ++ ++ if (a > b) ++ { ++ while (i < b) ++ { ++ a += *labelref; ++ i += 1; ++ } ++ goto *labelref; ++ } ++ else ++ b = b + 3; ++ ++ a = a * b; ++ ++label1: ++ return a + b; ++} ++ ++/* { dg-final { scan-assembler-not "\\.(float|l\\?double|\d?byte|short|int|long|quad|word)\\s+\[^.\]" } } */ +--- a/src/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data.c ++++ b/src//dev/null +@@ -1,73 +0,0 @@ +-/* The option -mslow-flash-data is just for performance tuning, it +- doesn't totally disable the use of literal pools. But for below +- simple cases, the use of literal pool should be replaced by +- movw/movt or read-only constant pool. */ +- +-/* { dg-do compile } */ +-/* { dg-require-effective-target arm_cortex_m } */ +-/* { dg-require-effective-target arm_thumb2_ok } */ +-/* { dg-options "-O2 -mthumb -mslow-flash-data" } */ +- +-float sf; +-double df; +-long long l; +-static char *p = "Hello World"; +- +-float +-testsf (float *p) +-{ +- if (*p > 1.1234f) +- return 2.1234f; +- else +- return 3.1234f; +-} +- +-double +-testdf (double *p) +-{ +- if (*p > 4.1234) +- return 2.1234; +- else +- return 3.1234; +-} +- +-long long +-testll (long long *p) +-{ +- if (*p > 0x123456789ABCDEFll) +- return 0x111111111ll; +- else +- return 0x222222222ll; +-} +- +-char * +-testchar () +-{ +- return p + 4; +-} +- +-int +-foo (int a, int b) +-{ +- int i; +- volatile int *labelref = &&label1; +- +- if (a > b) +- { +- while (i < b) +- { +- a += *labelref; +- i += 1; +- } +- goto *labelref; +- } +- else +- b = b + 3; +- +- a = a * b; +- +-label1: +- return a + b; +-} +- +-/* { dg-final { scan-assembler-not "\\.(float|l\\?double|\d?byte|short|int|long|quad|word)\\s+\[^.\]" } } */ +--- a/src/gcc/testsuite/gcc.target/i386/pr48723.c ++++ b/src/gcc/testsuite/gcc.target/i386/pr48723.c +@@ -1,4 +1,5 @@ + /* { dg-do compile } */ ++/* { dg-require-stack-check "" } */ + /* { dg-options "-fstack-check -mavx" } */ + + struct S0 +--- a/src/gcc/testsuite/gcc.target/i386/pr55672.c ++++ b/src/gcc/testsuite/gcc.target/i386/pr55672.c +@@ -1,4 +1,5 @@ + /* { dg-do compile } */ ++/* { dg-require-stack-check "generic" } */ + /* { dg-options "-O -fstack-check=generic" } */ + + int main () +--- a/src/gcc/testsuite/gcc.target/i386/pr67265-2.c ++++ b/src/gcc/testsuite/gcc.target/i386/pr67265-2.c +@@ -1,4 +1,5 @@ + /* { dg-do compile } */ ++/* { dg-require-stack-check "" } */ + /* { dg-options "-O -fstack-check" } */ + + void foo (int n) +--- a/src/gcc/testsuite/gcc.target/i386/pr67265.c ++++ b/src/gcc/testsuite/gcc.target/i386/pr67265.c +@@ -2,6 +2,7 @@ + /* Reduced testcase by Johannes Dewender */ + + /* { dg-do compile } */ ++/* { dg-require-stack-check "" } */ + /* { dg-options "-O -fstack-check -fPIC" } */ + + int a, b, c, d, e; +--- a/src/gcc/testsuite/gnat.dg/opt49.adb ++++ b/src/gcc/testsuite/gnat.dg/opt49.adb +@@ -1,4 +1,5 @@ + -- { dg-do run } ++-- { dg-require-stack-check "" } + -- { dg-options "-O -fstack-check" } + + procedure Opt49 is +--- a/src/gcc/testsuite/gnat.dg/stack_check1.adb ++++ b/src/gcc/testsuite/gnat.dg/stack_check1.adb +@@ -1,4 +1,5 @@ + -- { dg-do run } ++-- { dg-require-stack-check "" } + -- { dg-options "-fstack-check" } + + -- This test requires architecture- and OS-specific support code for unwinding +--- a/src/gcc/testsuite/gnat.dg/stack_check2.adb ++++ b/src/gcc/testsuite/gnat.dg/stack_check2.adb +@@ -1,4 +1,5 @@ + -- { dg-do run } ++-- { dg-require-stack-check "" } + -- { dg-options "-fstack-check" } + + -- This test requires architecture- and OS-specific support code for unwinding +--- a/src/gcc/testsuite/gnat.dg/stack_check3.adb ++++ b/src/gcc/testsuite/gnat.dg/stack_check3.adb +@@ -1,4 +1,5 @@ + -- { dg-do compile } ++-- { dg-require-stack-check "" } + -- { dg-options "-O -fstack-check" } + + package body Stack_Check3 is +--- a/src/gcc/testsuite/lib/target-supports-dg.exp ++++ b/src/gcc/testsuite/lib/target-supports-dg.exp +@@ -265,6 +265,21 @@ proc dg-require-linker-plugin { args } { + } + } + ++# If this target does not support the "stack-check" option, skip this ++# test. ++ ++proc dg-require-stack-check { args } { ++ set stack_check_available [ check_stack_check_available [lindex $args 1 ] ] ++ if { $stack_check_available == -1 } { ++ upvar name name ++ unresolved "$name" ++ } ++ if { $stack_check_available != 1 } { ++ upvar dg-do-what dg-do-what ++ set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] ++ } ++} ++ + # Add any target-specific flags needed for accessing the given list + # of features. This must come after all dg-options. + +--- a/src/gcc/testsuite/lib/target-supports.exp ++++ b/src/gcc/testsuite/lib/target-supports.exp +@@ -1029,6 +1029,17 @@ proc check_effective_target_fstack_protector {} { + } "-fstack-protector"] + } + ++# Return 1 if the target supports -fstack-check or -fstack-check=$stack_kind ++proc check_stack_check_available { stack_kind } { ++ if [string match "" $stack_kind] then { ++ set stack_opt "-fstack-check" ++ } else { set stack_opt "-fstack-check=$stack_kind" } ++ ++ return [check_no_compiler_messages stack_check executable { ++ int main (void) { return 0; } ++ } "$stack_opt"] ++} ++ + # Return 1 if compilation with -freorder-blocks-and-partition is error-free + # for trivial code, 0 otherwise. As some targets (ARM for example) only + # warn when -fprofile-use is also supplied we test that combination too. +--- a/src/gcc/tree-ssa-dce.c ++++ b/src/gcc/tree-ssa-dce.c +@@ -233,6 +233,8 @@ mark_stmt_if_obviously_necessary (gimple *stmt, bool aggressive) + case BUILT_IN_CALLOC: + case BUILT_IN_ALLOCA: + case BUILT_IN_ALLOCA_WITH_ALIGN: ++ case BUILT_IN_STRDUP: ++ case BUILT_IN_STRNDUP: + return; + + default:; +--- a/src/gcc/tree-ssa-loop-prefetch.c ++++ b/src/gcc/tree-ssa-loop-prefetch.c +@@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see + #include "tree-inline.h" + #include "tree-data-ref.h" + #include "diagnostic-core.h" ++#include "dbgcnt.h" + + /* This pass inserts prefetch instructions to optimize cache usage during + accesses to arrays in loops. It processes loops sequentially and: +@@ -227,6 +228,7 @@ struct mem_ref_group + tree step; /* Step of the reference. */ + struct mem_ref *refs; /* References in the group. */ + struct mem_ref_group *next; /* Next group of references. */ ++ unsigned int uid; /* Group UID, used only for debugging. */ + }; + + /* Assigned to PREFETCH_BEFORE when all iterations are to be prefetched. */ +@@ -269,6 +271,7 @@ struct mem_ref + unsigned reuse_distance; /* The amount of data accessed before the first + reuse of this value. */ + struct mem_ref *next; /* The next reference in the group. */ ++ unsigned int uid; /* Ref UID, used only for debugging. */ + unsigned write_p : 1; /* Is it a write? */ + unsigned independent_p : 1; /* True if the reference is independent on + all other references inside the loop. */ +@@ -290,11 +293,8 @@ dump_mem_details (FILE *file, tree base, tree step, + else + print_generic_expr (file, step, TDF_TREE); + fprintf (file, ")\n"); +- fprintf (file, " delta "); +- fprintf (file, HOST_WIDE_INT_PRINT_DEC, delta); +- fprintf (file, "\n"); +- fprintf (file, " %s\n", write_p ? "write" : "read"); +- fprintf (file, "\n"); ++ fprintf (file, " delta " HOST_WIDE_INT_PRINT_DEC "\n", delta); ++ fprintf (file, " %s\n\n", write_p ? "write" : "read"); + } + + /* Dumps information about reference REF to FILE. */ +@@ -302,12 +302,9 @@ dump_mem_details (FILE *file, tree base, tree step, + static void + dump_mem_ref (FILE *file, struct mem_ref *ref) + { +- fprintf (file, "Reference %p:\n", (void *) ref); +- +- fprintf (file, " group %p ", (void *) ref->group); +- +- dump_mem_details (file, ref->group->base, ref->group->step, ref->delta, +- ref->write_p); ++ fprintf (file, "reference %u:%u (", ref->group->uid, ref->uid); ++ print_generic_expr (file, ref->mem, TDF_SLIM); ++ fprintf (file, ")\n"); + } + + /* Finds a group with BASE and STEP in GROUPS, or creates one if it does not +@@ -316,6 +313,9 @@ dump_mem_ref (FILE *file, struct mem_ref *ref) + static struct mem_ref_group * + find_or_create_group (struct mem_ref_group **groups, tree base, tree step) + { ++ /* Global count for setting struct mem_ref_group->uid. */ ++ static unsigned int last_mem_ref_group_uid = 0; ++ + struct mem_ref_group *group; + + for (; *groups; groups = &(*groups)->next) +@@ -335,6 +335,7 @@ find_or_create_group (struct mem_ref_group **groups, tree base, tree step) + group->base = base; + group->step = step; + group->refs = NULL; ++ group->uid = ++last_mem_ref_group_uid; + group->next = *groups; + *groups = group; + +@@ -348,11 +349,14 @@ static void + record_ref (struct mem_ref_group *group, gimple *stmt, tree mem, + HOST_WIDE_INT delta, bool write_p) + { ++ unsigned int last_mem_ref_uid = 0; + struct mem_ref **aref; + + /* Do not record the same address twice. */ + for (aref = &group->refs; *aref; aref = &(*aref)->next) + { ++ last_mem_ref_uid = (*aref)->uid; ++ + /* It does not have to be possible for write reference to reuse the read + prefetch, or vice versa. */ + if (!WRITE_CAN_USE_READ_PREFETCH +@@ -381,9 +385,16 @@ record_ref (struct mem_ref_group *group, gimple *stmt, tree mem, + (*aref)->next = NULL; + (*aref)->independent_p = false; + (*aref)->storent_p = false; ++ (*aref)->uid = last_mem_ref_uid + 1; + + if (dump_file && (dump_flags & TDF_DETAILS)) +- dump_mem_ref (dump_file, *aref); ++ { ++ dump_mem_ref (dump_file, *aref); ++ ++ fprintf (dump_file, " group %u ", group->uid); ++ dump_mem_details (dump_file, group->base, group->step, delta, ++ write_p); ++ } + } + + /* Release memory references in GROUPS. */ +@@ -938,7 +949,7 @@ prune_group_by_reuse (struct mem_ref_group *group) + + if (dump_file && (dump_flags & TDF_DETAILS)) + { +- fprintf (dump_file, "Reference %p:", (void *) ref_pruned); ++ dump_mem_ref (dump_file, ref_pruned); + + if (ref_pruned->prefetch_before == PREFETCH_ALL + && ref_pruned->prefetch_mod == 1) +@@ -986,8 +997,8 @@ should_issue_prefetch_p (struct mem_ref *ref) + if (ref->prefetch_before != PREFETCH_ALL) + { + if (dump_file && (dump_flags & TDF_DETAILS)) +- fprintf (dump_file, "Ignoring %p due to prefetch_before\n", +- (void *) ref); ++ fprintf (dump_file, "Ignoring reference %u:%u due to prefetch_before\n", ++ ref->group->uid, ref->uid); + return false; + } + +@@ -995,7 +1006,7 @@ should_issue_prefetch_p (struct mem_ref *ref) + if (ref->storent_p) + { + if (dump_file && (dump_flags & TDF_DETAILS)) +- fprintf (dump_file, "Ignoring nontemporal store %p\n", (void *) ref); ++ fprintf (dump_file, "Ignoring nontemporal store reference %u:%u\n", ref->group->uid, ref->uid); + return false; + } + +@@ -1058,7 +1069,14 @@ schedule_prefetches (struct mem_ref_group *groups, unsigned unroll_factor, + if (2 * remaining_prefetch_slots < prefetch_slots) + continue; + ++ /* Stop prefetching if debug counter is activated. */ ++ if (!dbg_cnt (prefetch)) ++ continue; ++ + ref->issue_prefetch_p = true; ++ if (dump_file && (dump_flags & TDF_DETAILS)) ++ fprintf (dump_file, "Decided to issue prefetch for reference %u:%u\n", ++ ref->group->uid, ref->uid); + + if (remaining_prefetch_slots <= prefetch_slots) + return true; +@@ -1122,9 +1140,9 @@ issue_prefetch_ref (struct mem_ref *ref, unsigned unroll_factor, unsigned ahead) + bool nontemporal = ref->reuse_distance >= L2_CACHE_SIZE_BYTES; + + if (dump_file && (dump_flags & TDF_DETAILS)) +- fprintf (dump_file, "Issued%s prefetch for %p.\n", ++ fprintf (dump_file, "Issued%s prefetch for reference %u:%u.\n", + nontemporal ? " nontemporal" : "", +- (void *) ref); ++ ref->group->uid, ref->uid); + + bsi = gsi_for_stmt (ref->stmt); + +@@ -1144,8 +1162,8 @@ issue_prefetch_ref (struct mem_ref *ref, unsigned unroll_factor, unsigned ahead) + delta = (ahead + ap * ref->prefetch_mod) * + int_cst_value (ref->group->step); + addr = fold_build_pointer_plus_hwi (addr_base, delta); +- addr = force_gimple_operand_gsi (&bsi, unshare_expr (addr), true, NULL, +- true, GSI_SAME_STMT); ++ addr = force_gimple_operand_gsi (&bsi, unshare_expr (addr), true, ++ NULL, true, GSI_SAME_STMT); + } + else + { +@@ -1229,8 +1247,8 @@ mark_nontemporal_store (struct mem_ref *ref) + return false; + + if (dump_file && (dump_flags & TDF_DETAILS)) +- fprintf (dump_file, "Marked reference %p as a nontemporal store.\n", +- (void *) ref); ++ fprintf (dump_file, "Marked reference %u:%u as a nontemporal store.\n", ++ ref->group->uid, ref->uid); + + gimple_assign_set_nontemporal_move (ref->stmt, true); + ref->storent_p = true; +@@ -1340,7 +1358,7 @@ should_unroll_loop_p (struct loop *loop, struct tree_niter_desc *desc, + + /* Determine the coefficient by that unroll LOOP, from the information + contained in the list of memory references REFS. Description of +- umber of iterations of LOOP is stored to DESC. NINSNS is the number of ++ number of iterations of LOOP is stored to DESC. NINSNS is the number of + insns of the LOOP. EST_NITER is the estimated number of iterations of + the loop, or -1 if no estimate is available. */ + +@@ -1715,8 +1733,8 @@ determine_loop_nest_reuse (struct loop *loop, struct mem_ref_group *refs, + fprintf (dump_file, "Reuse distances:\n"); + for (gr = refs; gr; gr = gr->next) + for (ref = gr->refs; ref; ref = ref->next) +- fprintf (dump_file, " ref %p distance %u\n", +- (void *) ref, ref->reuse_distance); ++ fprintf (dump_file, " reference %u:%u distance %u\n", ++ ref->group->uid, ref->uid, ref->reuse_distance); + } + + return true; +--- a/src/libgcc/config.host ++++ b/src/libgcc/config.host +@@ -231,6 +231,10 @@ case ${host} in + ;; + esac + ;; ++*-*-fuchsia*) ++ tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-fuchsia" ++ extra_parts="crtbegin.o crtend.o" ++ ;; + *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu) + tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux" + extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" +@@ -342,6 +346,10 @@ aarch64*-*-freebsd*) + tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp t-crtfm" + md_unwind_header=aarch64/freebsd-unwind.h + ;; ++aarch64*-*-fuchsia*) ++ tmake_file="${tmake_file} ${cpu_type}/t-aarch64" ++ tmake_file="${tmake_file} ${cpu_type}/t-softfp t-softfp" ++ ;; + aarch64*-*-linux*) + extra_parts="$extra_parts crtfastmath.o" + md_unwind_header=aarch64/linux-unwind.h +@@ -394,6 +402,12 @@ arm*-*-freebsd*) # ARM FreeBSD EABI + unwind_header=config/arm/unwind-arm.h + tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" + ;; ++arm*-*-fuchsia*) ++ tmake_file="${tmake_file} arm/t-arm arm/t-elf arm/t-bpabi" ++ tmake_file="${tmake_file} arm/tsoftfp t-softfp" ++ tm_file="${tm_file} arm/bpabi-lib.h" ++ unwind_header=config/arm/unwind-arm.h ++ ;; + arm*-*-netbsdelf*) + tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover" + ;; +@@ -588,6 +602,9 @@ i[34567]86-*-elf*) + x86_64-*-elf* | x86_64-*-rtems*) + tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic" + ;; ++x86_64-*-fuchsia*) ++ tmake_file="$tmake_file t-libgcc-pic" ++ ;; + i[34567]86-*-dragonfly*) + tmake_file="${tmake_file} i386/t-dragonfly i386/t-crtstuff" + md_unwind_header=i386/dragonfly-unwind.h +--- a/src/libgcc/config/arm/unwind-arm.h ++++ b/src/libgcc/config/arm/unwind-arm.h +@@ -49,7 +49,7 @@ extern "C" { + return 0; + + #if (defined(linux) && !defined(__uClinux__)) || defined(__NetBSD__) \ +- || defined(__FreeBSD__) ++ || defined(__FreeBSD__) || defined(__fuchsia__) + /* Pc-relative indirect. */ + #define _GLIBCXX_OVERRIDE_TTYPE_ENCODING (DW_EH_PE_pcrel | DW_EH_PE_indirect) + tmp += ptr; +--- /dev/null ++++ b/src/libgcc/config/t-slibgcc-fuchsia +@@ -0,0 +1,44 @@ ++# Copyright (C) 2017 Free Software Foundation, Inc. ++# ++# This file is part of GCC. ++# ++# GCC is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3, or (at your option) ++# any later version. ++# ++# GCC is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GCC; see the file COPYING3. If not see ++# . ++ ++# Fuchsia-specific shared library overrides. ++ ++SHLIB_LDFLAGS = -Wl,--soname=$(SHLIB_SONAME) \ ++ $(LDFLAGS) ++# Copyright (C) 2017 Free Software Foundation, Inc. ++# ++# This file is part of GCC. ++# ++# GCC is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 3, or (at your option) ++# any later version. ++# ++# GCC is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GCC; see the file COPYING3. If not see ++# . ++ ++# Fuchsia-specific shared library overrides. ++ ++SHLIB_LDFLAGS = -Wl,--soname=$(SHLIB_SONAME) \ ++ $(LDFLAGS) diff --git a/debian/patches/gcc-multiarch.diff b/debian/patches/gcc-multiarch.diff new file mode 100644 index 0000000..472f080 --- /dev/null +++ b/debian/patches/gcc-multiarch.diff @@ -0,0 +1,254 @@ +# DP: - Remaining multiarch patches, not yet submitted upstream. +# DP: - Add MULTIARCH_DIRNAME definitions for multilib configurations, +# DP: which are used for the non-multilib builds. + +2013-06-12 Matthias Klose + + * config/i386/t-linux64: Set MULTIARCH_DIRNAME. + * config/i386/t-kfreebsd: Set MULTIARCH_DIRNAME. + * config.gcc (i[34567]86-*-linux* | x86_64-*-linux*): Prepend + i386/t-linux to $tmake_file; + set default ABI to N64 for mips64el. + * config/mips/t-linux64: Set MULTIARCH_DIRNAME. + * config/rs6000/t-linux64: Set MULTIARCH_DIRNAME. + * config/s390/t-linux64: Set MULTIARCH_DIRNAME. + * config/sparc/t-linux64: Set MULTIARCH_DIRNAME. + * src/gcc/config/mips/mips.h: (/usr)/lib as default path. + +Index: b/src/gcc/config/sh/t-linux +=================================================================== +--- a/src/gcc/config/sh/t-linux ++++ b/src/gcc/config/sh/t-linux +@@ -1,2 +1,10 @@ + MULTILIB_DIRNAMES= + MULTILIB_MATCHES = ++ ++ifneq (,$(findstring sh4,$(target))) ++MULTILIB_OSDIRNAMES = .:sh4-linux-gnu sh4_nofpu-linux-gnu:sh4-linux-gnu ++MULTIARCH_DIRNAME = $(call if_multiarch,sh4-linux-gnu) ++else ++MULTILIB_OSDIRNAMES = .:sh3-linux-gnu sh3_nofpu-linux-gnu:sh3-linux-gnu ++MULTIARCH_DIRNAME = $(call if_multiarch,sh3-linux-gnu) ++endif +Index: b/src/gcc/config/sparc/t-linux64 +=================================================================== +--- a/src/gcc/config/sparc/t-linux64 ++++ b/src/gcc/config/sparc/t-linux64 +@@ -27,3 +27,5 @@ MULTILIB_OPTIONS = m64/m32 + MULTILIB_DIRNAMES = 64 32 + MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:sparc64-linux-gnu) + MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:sparc-linux-gnu) ++ ++MULTIARCH_DIRNAME = $(call if_multiarch,sparc$(if $(findstring 64,$(target)),64)-linux-gnu) +Index: b/src/gcc/config/s390/t-linux64 +=================================================================== +--- a/src/gcc/config/s390/t-linux64 ++++ b/src/gcc/config/s390/t-linux64 +@@ -9,3 +9,5 @@ MULTILIB_OPTIONS = m64/m31 + MULTILIB_DIRNAMES = 64 32 + MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:s390x-linux-gnu) + MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:s390-linux-gnu) ++ ++MULTIARCH_DIRNAME = $(call if_multiarch,s390$(if $(findstring s390x,$(target)),x)-linux-gnu) +Index: b/src/gcc/config/rs6000/t-linux64 +=================================================================== +--- a/src/gcc/config/rs6000/t-linux64 ++++ b/src/gcc/config/rs6000/t-linux64 +@@ -31,6 +31,8 @@ MULTILIB_EXTRA_OPTS := + MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu) + MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu) + ++MULTIARCH_DIRNAME = $(call if_multiarch,powerpc$(if $(findstring 64,$(target)),64)-linux-gnu) ++ + rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c + $(COMPILE) $< + $(POSTCOMPILE) +Index: b/src/gcc/config/i386/t-linux64 +=================================================================== +--- a/src/gcc/config/i386/t-linux64 ++++ b/src/gcc/config/i386/t-linux64 +@@ -36,3 +36,13 @@ MULTILIB_DIRNAMES = $(patsubst m%, %, + MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) + MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu) + MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) ++ ++ifneq (,$(findstring x86_64,$(target))) ++ ifneq (,$(findstring biarchx32.h,$(tm_include_list))) ++ MULTIARCH_DIRNAME = $(call if_multiarch,x86_64-linux-gnux32) ++ else ++ MULTIARCH_DIRNAME = $(call if_multiarch,x86_64-linux-gnu) ++ endif ++else ++ MULTIARCH_DIRNAME = $(call if_multiarch,i386-linux-gnu) ++endif +Index: b/src/gcc/config/i386/t-kfreebsd +=================================================================== +--- a/src/gcc/config/i386/t-kfreebsd ++++ b/src/gcc/config/i386/t-kfreebsd +@@ -1,5 +1,9 @@ +-MULTIARCH_DIRNAME = $(call if_multiarch,i386-kfreebsd-gnu) ++ifeq (,$(MULTIARCH_DIRNAME)) ++ MULTIARCH_DIRNAME = $(call if_multiarch,i386-kfreebsd-gnu) ++endif + + # MULTILIB_OSDIRNAMES are set in t-linux64. + KFREEBSD_OS = $(filter kfreebsd%, $(word 3, $(subst -, ,$(target)))) + MULTILIB_OSDIRNAMES := $(filter-out mx32=%,$(subst linux,$(KFREEBSD_OS),$(MULTILIB_OSDIRNAMES))) ++ ++MULTIARCH_DIRNAME := $(subst linux,$(KFREEBSD_OS),$(MULTIARCH_DIRNAME)) +Index: b/src/gcc/config/mips/t-linux64 +=================================================================== +--- a/src/gcc/config/mips/t-linux64 ++++ b/src/gcc/config/mips/t-linux64 +@@ -18,9 +18,22 @@ + + MULTILIB_OPTIONS = mabi=n32/mabi=32/mabi=64 + MULTILIB_DIRNAMES = n32 32 64 ++MIPS_R6 = $(if $(findstring r6, $(firstword $(subst -, ,$(target)))),r6) ++MIPS_32 = $(if $(findstring r6, $(firstword $(subst -, ,$(target)))),32) ++MIPS_ISA = $(if $(findstring r6, $(firstword $(subst -, ,$(target)))),isa) + MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el) + MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft) + MULTILIB_OSDIRNAMES = \ + ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ + ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ + ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) ++ ++ifneq (,$(findstring abin32,$(target))) ++MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) ++else ++ifneq (,$(findstring abi64,$(target))) ++MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) ++else ++MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_ISA)$(MIPS_32)$(MIPS_R6)$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) ++endif ++endif +Index: b/src/gcc/config.gcc +=================================================================== +--- a/src/gcc/config.gcc ++++ b/src/gcc/config.gcc +@@ -2095,6 +2095,11 @@ mips*-*-linux*) # Linux MIPS, either + target_cpu_default=MASK_SOFT_FLOAT_ABI + enable_mips_multilibs="yes" + ;; ++ mipsisa64r6*-*-linux-gnuabi64) ++ default_mips_abi=64 ++ default_mips_arch=mips64r6 ++ enable_mips_multilibs="yes" ++ ;; + mipsisa64r6*-*-linux*) + default_mips_abi=n32 + default_mips_arch=mips64r6 +@@ -2105,6 +2110,10 @@ mips*-*-linux*) # Linux MIPS, either + default_mips_arch=mips64r2 + enable_mips_multilibs="yes" + ;; ++ mips64*-*-linux-gnuabi64 | mipsisa64*-*-linux-gnuabi64) ++ default_mips_abi=64 ++ enable_mips_multilibs="yes" ++ ;; + mips64*-*-linux* | mipsisa64*-*-linux*) + default_mips_abi=n32 + enable_mips_multilibs="yes" +@@ -3060,6 +3069,16 @@ powerpc*-*-* | rs6000-*-*) + tm_file="${tm_file} rs6000/option-defaults.h" + esac + ++# non-glibc systems ++case ${target} in ++*-linux-musl*) ++ tmake_file="${tmake_file} t-musl" ++ ;; ++*-linux-uclibc*) ++ tmake_file="${tmake_file} t-uclibc" ++ ;; ++esac ++ + # Build mkoffload tool + case ${target} in + *-intelmic-* | *-intelmicemul-*) +@@ -4507,7 +4526,7 @@ case ${target} in + i[34567]86-*-darwin* | x86_64-*-darwin*) + ;; + i[34567]86-*-linux* | x86_64-*-linux*) +- tmake_file="$tmake_file i386/t-linux" ++ tmake_file="i386/t-linux $tmake_file" + ;; + i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu) + tmake_file="$tmake_file i386/t-kfreebsd" +Index: b/src/gcc/config/aarch64/t-aarch64-linux +=================================================================== +--- a/src/gcc/config/aarch64/t-aarch64-linux ++++ b/src/gcc/config/aarch64/t-aarch64-linux +@@ -22,7 +22,7 @@ LIB1ASMSRC = aarch64/lib1funcs.asm + LIB1ASMFUNCS = _aarch64_sync_cache_range + + AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be) +-MULTILIB_OSDIRNAMES = mabi.lp64=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) +-MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) ++MULTILIB_OSDIRNAMES = mabi.lp64=../lib$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu) ++MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)_ilp32-linux-gnu) + +-MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32 ++MULTIARCH_DIRNAME = $(call if_multiarch,aarch64$(AARCH_BE)-linux-gnu) +Index: b/src/gcc/config/mips/mips.h +=================================================================== +--- a/src/gcc/config/mips/mips.h ++++ b/src/gcc/config/mips/mips.h +@@ -3499,16 +3499,6 @@ struct GTY(()) machine_function { + #define PMODE_INSN(NAME, ARGS) \ + (Pmode == SImode ? NAME ## _si ARGS : NAME ## _di ARGS) + +-/* If we are *not* using multilibs and the default ABI is not ABI_32 we +- need to change these from /lib and /usr/lib. */ +-#if MIPS_ABI_DEFAULT == ABI_N32 +-#define STANDARD_STARTFILE_PREFIX_1 "/lib32/" +-#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib32/" +-#elif MIPS_ABI_DEFAULT == ABI_64 +-#define STANDARD_STARTFILE_PREFIX_1 "/lib64/" +-#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib64/" +-#endif +- + /* Load store bonding is not supported by micromips and fix_24k. The + performance can be degraded for those targets. Hence, do not bond for + micromips or fix_24k. */ +Index: b/src/gcc/config/tilegx/t-tilegx +=================================================================== +--- a/src/gcc/config/tilegx/t-tilegx ++++ b/src/gcc/config/tilegx/t-tilegx +@@ -1,6 +1,7 @@ + MULTILIB_OPTIONS = m64/m32 + MULTILIB_DIRNAMES = 64 32 +-MULTILIB_OSDIRNAMES = ../lib ../lib32 ++MULTILIB_OSDIRNAMES = ../lib$(call if_multiarch,:tilegx-linux-gnu) ../lib32$(call if_multiarch,:tilegx32-linux-gnu) ++MULTIARCH_DIRNAME = $(call if_multiarch,tilegx-linux-gnu) + + LIBGCC = stmp-multilib + INSTALL_LIBGCC = install-multilib +Index: b/src/gcc/Makefile.in +=================================================================== +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -521,7 +521,7 @@ SYSTEM_HEADER_DIR = `echo @SYSTEM_HEADER + STMP_FIXINC = @STMP_FIXINC@ + + # Test to see whether exists in the system header files. +-LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h ] ++LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/limits.h -o -f $(SYSTEM_HEADER_DIR)/$(MULTIARCH_DIRNAME)/limits.h ] + + # Directory for prefix to system directories, for + # each of $(system_prefix)/usr/include, $(system_prefix)/usr/lib, etc. +Index: b/src/gcc/config/t-musl +=================================================================== +--- /dev/null ++++ b/src/gcc/config/t-musl +@@ -0,0 +1,2 @@ ++MULTIARCH_DIRNAME := $(subst -linux-gnu,-linux-musl,$(MULTIARCH_DIRNAME)) ++MULTILIB_OSDIRNAMES := $(subst -linux-gnu,-linux-musl,$(MULTILIB_OSDIRNAMES)) +Index: b/src/gcc/config/t-uclibc +=================================================================== +--- /dev/null ++++ b/src/gcc/config/t-uclibc +@@ -0,0 +1,2 @@ ++MULTIARCH_DIRNAME := $(subst -linux-gnu,-linux-uclibc,$(MULTIARCH_DIRNAME)) ++MULTILIB_OSDIRNAMES := $(subst -linux-gnu,-linux-uclibc,$(MULTILIB_OSDIRNAMES)) diff --git a/debian/patches/gcc-multilib-multiarch.diff b/debian/patches/gcc-multilib-multiarch.diff new file mode 100644 index 0000000..a26e69d --- /dev/null +++ b/debian/patches/gcc-multilib-multiarch.diff @@ -0,0 +1,126 @@ +# DP: Don't auto-detect multilib osdirnames. + +Index: b/src/gcc/config/sparc/t-linux64 +=================================================================== +--- a/src/gcc/config/sparc/t-linux64 ++++ b/src/gcc/config/sparc/t-linux64 +@@ -25,7 +25,12 @@ + + MULTILIB_OPTIONS = m64/m32 + MULTILIB_DIRNAMES = 64 32 ++ifneq (,$(findstring sparc64,$(target))) ++MULTILIB_OSDIRNAMES = ../lib$(call if_multiarch,:sparc64-linux-gnu) ++MULTILIB_OSDIRNAMES += ../lib32$(call if_multiarch,:sparc-linux-gnu) ++else + MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:sparc64-linux-gnu) +-MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:sparc-linux-gnu) ++MULTILIB_OSDIRNAMES += ../lib$(call if_multiarch,:sparc-linux-gnu) ++endif + + MULTIARCH_DIRNAME = $(call if_multiarch,sparc$(if $(findstring 64,$(target)),64)-linux-gnu) +Index: b/src/gcc/config/s390/t-linux64 +=================================================================== +--- a/src/gcc/config/s390/t-linux64 ++++ b/src/gcc/config/s390/t-linux64 +@@ -7,7 +7,12 @@ + + MULTILIB_OPTIONS = m64/m31 + MULTILIB_DIRNAMES = 64 32 ++ifneq (,$(findstring s390x,$(target))) ++MULTILIB_OSDIRNAMES = ../lib$(call if_multiarch,:s390x-linux-gnu) ++MULTILIB_OSDIRNAMES += ../lib32$(call if_multiarch,:s390-linux-gnu) ++else + MULTILIB_OSDIRNAMES = ../lib64$(call if_multiarch,:s390x-linux-gnu) +-MULTILIB_OSDIRNAMES += $(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:s390-linux-gnu) ++MULTILIB_OSDIRNAMES += ../lib$(call if_multiarch,:s390-linux-gnu) ++endif + + MULTIARCH_DIRNAME = $(call if_multiarch,s390$(if $(findstring s390x,$(target)),x)-linux-gnu) +Index: b/src/gcc/config/rs6000/t-linux64 +=================================================================== +--- a/src/gcc/config/rs6000/t-linux64 ++++ b/src/gcc/config/rs6000/t-linux64 +@@ -28,8 +28,13 @@ + MULTILIB_OPTIONS := m64/m32 + MULTILIB_DIRNAMES := 64 32 + MULTILIB_EXTRA_OPTS := ++ifneq (,$(findstring powerpc64,$(target))) ++MULTILIB_OSDIRNAMES := m64=../lib$(call if_multiarch,:powerpc64-linux-gnu) ++MULTILIB_OSDIRNAMES += m32=../lib32$(call if_multiarch,:powerpc-linux-gnu) ++else + MULTILIB_OSDIRNAMES := m64=../lib64$(call if_multiarch,:powerpc64-linux-gnu) +-MULTILIB_OSDIRNAMES += m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:powerpc-linux-gnu) ++MULTILIB_OSDIRNAMES += m32=../lib$(call if_multiarch,:powerpc-linux-gnu) ++endif + + MULTIARCH_DIRNAME = $(call if_multiarch,powerpc$(if $(findstring 64,$(target)),64)-linux-gnu) + +Index: b/src/gcc/config/i386/t-linux64 +=================================================================== +--- a/src/gcc/config/i386/t-linux64 ++++ b/src/gcc/config/i386/t-linux64 +@@ -33,9 +33,19 @@ + comma=, + MULTILIB_OPTIONS = $(subst $(comma),/,$(TM_MULTILIB_CONFIG)) + MULTILIB_DIRNAMES = $(patsubst m%, %, $(subst /, ,$(MULTILIB_OPTIONS))) ++ifneq (,$(findstring gnux32,$(target))) + MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) +-MULTILIB_OSDIRNAMES+= m32=$(if $(wildcard $(shell echo $(SYSTEM_HEADER_DIR))/../../usr/lib32),../lib32,../lib)$(call if_multiarch,:i386-linux-gnu) ++MULTILIB_OSDIRNAMES+= m32=../lib32$(call if_multiarch,:i386-linux-gnu) ++MULTILIB_OSDIRNAMES+= mx32=../lib$(call if_multiarch,:x86_64-linux-gnux32) ++else ifneq (,$(findstring x86_64,$(target))) ++MULTILIB_OSDIRNAMES = m64=../lib$(call if_multiarch,:x86_64-linux-gnu) ++MULTILIB_OSDIRNAMES+= m32=../lib32$(call if_multiarch,:i386-linux-gnu) + MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) ++else ++MULTILIB_OSDIRNAMES = m64=../lib64$(call if_multiarch,:x86_64-linux-gnu) ++MULTILIB_OSDIRNAMES+= m32=../lib$(call if_multiarch,:i386-linux-gnu) ++MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32) ++endif + + ifneq (,$(findstring x86_64,$(target))) + ifneq (,$(findstring biarchx32.h,$(tm_include_list))) +Index: b/src/gcc/config/mips/t-linux64 +=================================================================== +--- a/src/gcc/config/mips/t-linux64 ++++ b/src/gcc/config/mips/t-linux64 +@@ -23,10 +23,23 @@ MIPS_32 = $(if $(findstring r6, $(firstw + MIPS_ISA = $(if $(findstring r6, $(firstword $(subst -, ,$(target)))),isa) + MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el) + MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft) ++ ++ifneq (,$(findstring gnuabi64,$(target))) ++MULTILIB_OSDIRNAMES = \ ++ ../lib32$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ ++ ../libo32$(call if_multiarch,:mips$(MIPS_ISA)$(MIPS_32)$(MIPS_R6)$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ ++ ../lib$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) ++else ifneq (,$(findstring gnuabin32,$(target))) ++MULTILIB_OSDIRNAMES = \ ++ ../lib$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ ++ ../libo32$(call if_multiarch,:mips$(MIPS_ISA)$(MIPS_32)$(MIPS_R6)$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ ++ ../lib64$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) ++else + MULTILIB_OSDIRNAMES = \ +- ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ +- ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ +- ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) ++ ../lib32$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \ ++ ../lib$(call if_multiarch,:mips$(MIPS_ISA)$(MIPS_32)$(MIPS_R6)$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \ ++ ../lib64$(call if_multiarch,:mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT)) ++endif + + ifneq (,$(findstring abin32,$(target))) + MULTIARCH_DIRNAME = $(call if_multiarch,mips$(MIPS_ISA)64$(MIPS_R6)$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) +Index: b/src/gcc/config/rs6000/t-linux +=================================================================== +--- a/src/gcc/config/rs6000/t-linux ++++ b/src/gcc/config/rs6000/t-linux +@@ -2,7 +2,7 @@ + # or soft-float. + ifeq (,$(filter $(with_cpu),$(SOFT_FLOAT_CPUS))$(findstring soft,$(with_float))) + ifneq (,$(findstring powerpc64,$(target))) +-MULTILIB_OSDIRNAMES := .=../lib64$(call if_multiarch,:powerpc64-linux-gnu) ++MULTILIB_OSDIRNAMES := .=../lib$(call if_multiarch,:powerpc64-linux-gnu) + else + ifneq (,$(findstring spe,$(target))) + MULTIARCH_DIRNAME := powerpc-linux-gnuspe$(if $(findstring 8548,$(with_cpu)),,v1) diff --git a/debian/patches/gcc-target-include-asm.diff b/debian/patches/gcc-target-include-asm.diff new file mode 100644 index 0000000..a4cac53 --- /dev/null +++ b/debian/patches/gcc-target-include-asm.diff @@ -0,0 +1,15 @@ +# DP: Search $(builddir)/sys-include for the asm header files + +Index: b/src/configure.ac +=================================================================== +--- a/src/configure.ac ++++ b/src/configure.ac +@@ -3156,7 +3156,7 @@ fi + # being built; programs in there won't even run. + if test "${build}" = "${host}" && test -d ${srcdir}/gcc; then + # Search for pre-installed headers if nothing else fits. +- FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include' ++ FLAGS_FOR_TARGET=$FLAGS_FOR_TARGET' -B$(build_tooldir)/bin/ -B$(build_tooldir)/lib/ -isystem $(build_tooldir)/include -isystem $(build_tooldir)/sys-include -isystem $(CURDIR)/sys-include' + fi + + if test "x${use_gnu_ld}" = x && diff --git a/debian/patches/gcc-textdomain.diff b/debian/patches/gcc-textdomain.diff new file mode 100644 index 0000000..a056ab3 --- /dev/null +++ b/debian/patches/gcc-textdomain.diff @@ -0,0 +1,96 @@ +# DP: Set gettext's domain and textdomain to the versioned package name. + +Index: b/src/gcc/intl.c +=================================================================== +--- a/src/gcc/intl.c ++++ b/src/gcc/intl.c +@@ -55,8 +55,8 @@ gcc_init_libintl (void) + setlocale (LC_ALL, ""); + #endif + +- (void) bindtextdomain ("gcc", LOCALEDIR); +- (void) textdomain ("gcc"); ++ (void) bindtextdomain ("gcc-7", LOCALEDIR); ++ (void) textdomain ("gcc-7"); + + /* Opening quotation mark. */ + open_quote = _("`"); +Index: b/src/gcc/Makefile.in +=================================================================== +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -4116,8 +4116,8 @@ install-po: + dir=$(localedir)/$$lang/LC_MESSAGES; \ + echo $(mkinstalldirs) $(DESTDIR)$$dir; \ + $(mkinstalldirs) $(DESTDIR)$$dir || exit 1; \ +- echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \ +- $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc.mo; \ ++ echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc-7.mo; \ ++ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/gcc-7.mo; \ + done + + # Rule for regenerating the message template (gcc.pot). +Index: b/src/libcpp/init.c +=================================================================== +--- a/src/libcpp/init.c ++++ b/src/libcpp/init.c +@@ -155,7 +155,7 @@ init_library (void) + init_trigraph_map (); + + #ifdef ENABLE_NLS +- (void) bindtextdomain (PACKAGE, LOCALEDIR); ++ (void) bindtextdomain (PACKAGE PACKAGE_SUFFIX, LOCALEDIR); + #endif + } + } +Index: b/src/libcpp/system.h +=================================================================== +--- a/src/libcpp/system.h ++++ b/src/libcpp/system.h +@@ -280,7 +280,7 @@ extern int errno; + #endif + + #ifndef _ +-# define _(msgid) dgettext (PACKAGE, msgid) ++# define _(msgid) dgettext (PACKAGE PACKAGE_SUFFIX, msgid) + #endif + + #ifndef N_ +Index: b/src/libcpp/Makefile.in +=================================================================== +--- a/src/libcpp/Makefile.in ++++ b/src/libcpp/Makefile.in +@@ -49,6 +49,7 @@ LDFLAGS = @LDFLAGS@ + LIBICONV = @LIBICONV@ + LIBINTL = @LIBINTL@ + PACKAGE = @PACKAGE@ ++PACKAGE_SUFFIX = -7 + RANLIB = @RANLIB@ + SHELL = @SHELL@ + USED_CATALOGS = @USED_CATALOGS@ +@@ -72,10 +73,12 @@ depcomp = $(SHELL) $(srcdir)/../depcomp + + INCLUDES = -I$(srcdir) -I. -I$(srcdir)/../include @INCINTL@ \ + -I$(srcdir)/include ++DEBCPPFLAGS += -DPACKAGE_SUFFIX=\"$(strip $(PACKAGE_SUFFIX))\" + +-ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS) $(PICFLAG) ++ALL_CFLAGS = $(CFLAGS) $(WARN_CFLAGS) $(INCLUDES) $(CPPFLAGS) $(PICFLAG) \ ++ $(DEBCPPFLAGS) + ALL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(NOEXCEPTION_FLAGS) $(INCLUDES) \ +- $(CPPFLAGS) $(PICFLAG) ++ $(CPPFLAGS) $(PICFLAG) $(DEBCPPFLAGS) + + # The name of the compiler to use. + COMPILER = $(CXX) +@@ -164,8 +167,8 @@ install-strip install: all installdirs + else continue; \ + fi; \ + dir=$(localedir)/$$lang/LC_MESSAGES; \ +- echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ +- $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \ ++ echo $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE)$(PACKAGE_SUFFIX).mo; \ ++ $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE)$(PACKAGE_SUFFIX).mo; \ + done + + mostlyclean: diff --git a/debian/patches/gdc-7-doc.diff b/debian/patches/gdc-7-doc.diff new file mode 100644 index 0000000..6a9f167 --- /dev/null +++ b/debian/patches/gdc-7-doc.diff @@ -0,0 +1,106 @@ +# DP: This implements D language support in the GCC back end, and adds +# DP: relevant documentation about the GDC front end (documentation part). + +Index: b/src/gcc/doc/frontends.texi +=================================================================== +--- a/src/gcc/doc/frontends.texi ++++ b/src/gcc/doc/frontends.texi +@@ -9,6 +9,7 @@ + @cindex GNU Compiler Collection + @cindex GNU C Compiler + @cindex Ada ++@cindex D + @cindex Fortran + @cindex Go + @cindex Objective-C +@@ -16,7 +17,7 @@ + GCC stands for ``GNU Compiler Collection''. GCC is an integrated + distribution of compilers for several major programming languages. These + languages currently include C, C++, Objective-C, Objective-C++, +-Fortran, Ada, Go, and BRIG (HSAIL). ++Fortran, Ada, Go, D, and BRIG (HSAIL). + + The abbreviation @dfn{GCC} has multiple meanings in common use. The + current official meaning is ``GNU Compiler Collection'', which refers +Index: b/src/gcc/doc/install.texi +=================================================================== +--- a/src/gcc/doc/install.texi ++++ b/src/gcc/doc/install.texi +@@ -1617,12 +1617,12 @@ their runtime libraries should be built. + grep ^language= */config-lang.in + @end smallexample + Currently, you can use any of the following: +-@code{all}, @code{ada}, @code{c}, @code{c++}, @code{fortran}, ++@code{all}, @code{ada}, @code{c}, @code{c++}, @code{d}, @code{fortran}, + @code{go}, @code{jit}, @code{lto}, @code{objc}, @code{obj-c++}. + Building the Ada compiler has special requirements, see below. + If you do not pass this flag, or specify the option @code{all}, then all + default languages available in the @file{gcc} sub-tree will be configured. +-Ada, Go, Jit, and Objective-C++ are not default languages. LTO is not a ++Ada, D, Go, Jit, and Objective-C++ are not default languages. LTO is not a + default language, but is built by default because @option{--enable-lto} is + enabled by default. The other languages are default languages. + +Index: b/src/gcc/doc/invoke.texi +=================================================================== +--- a/src/gcc/doc/invoke.texi ++++ b/src/gcc/doc/invoke.texi +@@ -1349,6 +1349,15 @@ called @dfn{specs}. + Ada source code file containing a library unit body (a subprogram or + package body). Such files are also called @dfn{bodies}. + ++@item @var{file}.d ++D source code file. ++ ++@item @var{file}.di ++D interface code file. ++ ++@item @var{file}.dd ++D documentation code file. ++ + @c GCC also knows about some suffixes for languages not yet included: + @c Pascal: + @c @var{file}.p +@@ -1384,6 +1393,7 @@ objective-c objective-c-header objecti + objective-c++ objective-c++-header objective-c++-cpp-output + assembler assembler-with-cpp + ada ++d + f77 f77-cpp-input f95 f95-cpp-input + go + brig +Index: b/src/gcc/doc/sourcebuild.texi +=================================================================== +--- a/src/gcc/doc/sourcebuild.texi ++++ b/src/gcc/doc/sourcebuild.texi +@@ -106,6 +106,9 @@ The Objective-C and Objective-C++ runtim + @item libquadmath + The runtime support library for quad-precision math operations. + ++@item libphobos ++The D standard runtime library. ++ + @item libssp + The Stack protector runtime library. + +Index: b/src/gcc/doc/standards.texi +=================================================================== +--- a/src/gcc/doc/standards.texi ++++ b/src/gcc/doc/standards.texi +@@ -309,6 +309,16 @@ capability is typically utilized to impl + finalization extension for a gcc supported processor. HSA standards are + freely available at @uref{http://www.hsafoundation.com/standards/}. + ++@section D language ++ ++The D language is under development as of this writing; see the ++@uref{http://dlang.org/@/language-reference.html, current language ++reference}. At present the current major version of D is 2.0, and ++there is no way to describe the language supported by GCC in terms of ++a specific minor version. In general GCC follows the D frontend ++releases closely, and any given GCC release will support the current ++language as of the date that the release was frozen. ++ + @section References for Other Languages + + @xref{Top, GNAT Reference Manual, About This Guide, gnat_rm, diff --git a/debian/patches/gdc-7.diff b/debian/patches/gdc-7.diff new file mode 100644 index 0000000..76c2efd --- /dev/null +++ b/debian/patches/gdc-7.diff @@ -0,0 +1,139 @@ +# DP: This implements D language support in the GCC back end, and adds +# DP: relevant documentation about the GDC front end (code part). + +Index: b/src/gcc/config/darwin.h +=================================================================== +--- a/src/gcc/config/darwin.h ++++ b/src/gcc/config/darwin.h +@@ -49,6 +49,10 @@ see the files COPYING3 and COPYING.RUNTI + /* Suppress g++ attempt to link in the math library automatically. */ + #define MATH_LIBRARY "" + ++/* Suppress gdc attempt to link in the thread and time library automatically. */ ++#define THREAD_LIBRARY "" ++#define TIME_LIBRARY "" ++ + /* We have atexit. */ + + #define HAVE_ATEXIT +Index: b/src/gcc/config/i386/cygming.h +=================================================================== +--- a/src/gcc/config/i386/cygming.h ++++ b/src/gcc/config/i386/cygming.h +@@ -181,6 +181,10 @@ along with GCC; see the file COPYING3. + + #undef MATH_LIBRARY + #define MATH_LIBRARY "" ++#undef THREAD_LIBRARY ++#define THREAD_LIBRARY "" ++#undef TIME_LIBRARY ++#define TIME_LIBRARY "" + + #undef TARGET_LIBC_HAS_FUNCTION + #define TARGET_LIBC_HAS_FUNCTION no_c99_libc_has_function +Index: b/src/gcc/config/linux-android.h +=================================================================== +--- a/src/gcc/config/linux-android.h ++++ b/src/gcc/config/linux-android.h +@@ -57,3 +57,9 @@ + + #define ANDROID_ENDFILE_SPEC \ + "%{shared: crtend_so%O%s;: crtend_android%O%s}" ++ ++/* Suppress gdc attempt to link in the thread and time library automatically. */ ++#if ANDROID_DEFAULT ++# define THREAD_LIBRARY "" ++# define TIME_LIBRARY "" ++#endif +Index: b/src/gcc/config/rs6000/rs6000.c +=================================================================== +--- a/src/gcc/config/rs6000/rs6000.c ++++ b/src/gcc/config/rs6000/rs6000.c +@@ -31548,7 +31548,8 @@ rs6000_output_function_epilogue (FILE *f + if (lang_GNU_C () + || ! strcmp (language_string, "GNU GIMPLE") + || ! strcmp (language_string, "GNU Go") +- || ! strcmp (language_string, "libgccjit")) ++ || ! strcmp (language_string, "libgccjit") ++ || ! strcmp (language_string, "GNU D")) + i = 0; + else if (! strcmp (language_string, "GNU F77") + || lang_GNU_Fortran ()) +Index: b/src/gcc/dwarf2out.c +=================================================================== +--- a/src/gcc/dwarf2out.c ++++ b/src/gcc/dwarf2out.c +@@ -5079,6 +5079,16 @@ is_ada (void) + return lang == DW_LANG_Ada95 || lang == DW_LANG_Ada83; + } + ++/* Return TRUE if the language is D. */ ++ ++static inline bool ++is_dlang (void) ++{ ++ unsigned int lang = get_AT_unsigned (comp_unit_die (), DW_AT_language); ++ ++ return lang == DW_LANG_D; ++} ++ + /* Remove the specified attribute if present. Return TRUE if removal + was successful. */ + +@@ -23594,6 +23604,8 @@ gen_compile_unit_die (const char *filena + language = DW_LANG_ObjC; + else if (strcmp (language_string, "GNU Objective-C++") == 0) + language = DW_LANG_ObjC_plus_plus; ++ else if (strcmp (language_string, "GNU D") == 0) ++ language = DW_LANG_D; + else if (dwarf_version >= 5 || !dwarf_strict) + { + if (strcmp (language_string, "GNU Go") == 0) +@@ -25158,7 +25170,7 @@ declare_in_namespace (tree thing, dw_die + + if (ns_context != context_die) + { +- if (is_fortran ()) ++ if (is_fortran () || is_dlang ()) + return ns_context; + if (DECL_P (thing)) + gen_decl_die (thing, NULL, NULL, ns_context); +@@ -25181,7 +25193,7 @@ gen_namespace_die (tree decl, dw_die_ref + { + /* Output a real namespace or module. */ + context_die = setup_namespace_context (decl, comp_unit_die ()); +- namespace_die = new_die (is_fortran () ++ namespace_die = new_die (is_fortran () || is_dlang () + ? DW_TAG_module : DW_TAG_namespace, + context_die, decl); + /* For Fortran modules defined in different CU don't add src coords. */ +@@ -25248,7 +25260,7 @@ gen_decl_die (tree decl, tree origin, st + break; + + case CONST_DECL: +- if (!is_fortran () && !is_ada ()) ++ if (!is_fortran () && !is_ada () && !is_dlang ()) + { + /* The individual enumerators of an enum type get output when we output + the Dwarf representation of the relevant enum type itself. */ +@@ -25795,7 +25807,7 @@ dwarf2out_decl (tree decl) + case CONST_DECL: + if (debug_info_level <= DINFO_LEVEL_TERSE) + return; +- if (!is_fortran () && !is_ada ()) ++ if (!is_fortran () && !is_ada () && !is_dlang ()) + return; + if (TREE_STATIC (decl) && decl_function_context (decl)) + context_die = lookup_decl_die (DECL_CONTEXT (decl)); +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -1307,6 +1307,7 @@ static const struct compiler default_com + {".java", "#Java", 0, 0, 0}, {".class", "#Java", 0, 0, 0}, + {".zip", "#Java", 0, 0, 0}, {".jar", "#Java", 0, 0, 0}, + {".go", "#Go", 0, 1, 0}, ++ {".d", "#D", 0, 1, 0}, {".dd", "#D", 0, 1, 0}, {".di", "#D", 0, 1, 0}, + /* Next come the entries for C. */ + {".c", "@c", 0, 0, 1}, + {"@c", diff --git a/debian/patches/gdc-cross-biarch.diff b/debian/patches/gdc-cross-biarch.diff new file mode 100644 index 0000000..24dd5bc --- /dev/null +++ b/debian/patches/gdc-cross-biarch.diff @@ -0,0 +1,13 @@ +# DP: Fix the location of target's libs in cross-build for biarch + +--- a/src/config-ml.in ++++ b/src/config-ml.in +@@ -891,6 +915,8 @@ + case $arg in + -[BIL]"${ML_POPDIR}"/*) + GDC_="${GDC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ -B*/lib/) ++ GDC_="${GDC_}"`echo "X${arg}" | sed -n "$FILTER_"`' ' ;; + "${ML_POPDIR}"/*) + GDC_="${GDC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; + *) diff --git a/debian/patches/gdc-cross-install-location.diff b/debian/patches/gdc-cross-install-location.diff new file mode 100644 index 0000000..b83a2d4 --- /dev/null +++ b/debian/patches/gdc-cross-install-location.diff @@ -0,0 +1,28 @@ +Index: b/src/libphobos/configure.ac +=================================================================== +--- a/src/libphobos/configure.ac ++++ b/src/libphobos/configure.ac +@@ -118,6 +118,8 @@ + AC_SUBST([DRUNTIME_SOVERSION]) + AC_SUBST([PHOBOS_SOVERSION]) + ++# trigger rebuild of the configure file ++ + # Set default flags (after DRUNTIME_WERROR!) + if test -z "$DFLAGS"; then + DFLAGS="-Wall $WERROR_FLAG -g -frelease -O2" +Index: b/src/libphobos/m4/druntime.m4 +=================================================================== +--- a/src/libphobos/m4/druntime.m4 ++++ b/src/libphobos/m4/druntime.m4 +@@ -78,7 +78,7 @@ AC_DEFUN([DRUNTIME_INSTALL_DIRECTORIES], + AC_SUBST(toolexeclibdir) + + # Default case for install directory for D sources files. +- gdc_include_dir='${libdir}/gcc/${target_alias}'/${d_gcc_ver}/include/d ++ gdc_include_dir='${libdir}/gcc-cross/${target_alias}'/${d_gcc_ver}/include/d + AC_SUBST(gdc_include_dir) + ]) + +--- gcc/src/libphobos/configure.ac~ 2017-05-03 13:31:07.175437754 +0200 ++++ gcc/src/libphobos/configure.ac 2017-05-03 13:33:19.905663189 +0200 diff --git a/debian/patches/gdc-driver-nophobos.diff b/debian/patches/gdc-driver-nophobos.diff new file mode 100644 index 0000000..1f076e2 --- /dev/null +++ b/debian/patches/gdc-driver-nophobos.diff @@ -0,0 +1,28 @@ +# DP: Modify gdc driver to have no libphobos by default. + +Index: b/src/gcc/d/d-lang.cc +=================================================================== +--- a/src/gcc/d/d-lang.cc ++++ b/src/gcc/d/d-lang.cc +@@ -198,7 +198,7 @@ static void + d_init_options_struct(gcc_options *opts) + { + // GCC options +- opts->x_flag_exceptions = 1; ++ opts->x_flag_exceptions = 0; + + // Avoid range issues for complex multiply and divide. + opts->x_flag_complex_method = 2; +Index: b/src/gcc/d/d-spec.c +=================================================================== +--- a/src/gcc/d/d-spec.c ++++ b/src/gcc/d/d-spec.c +@@ -62,7 +62,7 @@ static int library = 0; + + /* If true, use the standard D runtime library when linking with + standard libraries. */ +-static bool need_phobos = true; ++static bool need_phobos = false; + + void + lang_specific_driver (cl_decoded_option **in_decoded_options, diff --git a/debian/patches/gdc-frontend-posix.diff b/debian/patches/gdc-frontend-posix.diff new file mode 100644 index 0000000..3c70021 --- /dev/null +++ b/debian/patches/gdc-frontend-posix.diff @@ -0,0 +1,15 @@ +# DP: Fix build of the D frontend on the Hurd and KFreeBSD. + +Index: b/src/gcc/d/dfrontend/object.h +=================================================================== +--- a/src/gcc/d/dfrontend/object.h ++++ b/src/gcc/d/dfrontend/object.h +@@ -10,7 +10,7 @@ + #ifndef OBJECT_H + #define OBJECT_H + +-#define POSIX (__linux__ || __APPLE__ || __FreeBSD__ || __OpenBSD__ || __sun) ++#define POSIX (__linux__ || __GLIBC__ || __gnu_hurd__ || __APPLE__ || __FreeBSD__ || __OpenBSD__ || __sun) + + #if __DMC__ + #pragma once diff --git a/debian/patches/gdc-libphobos-build.diff b/debian/patches/gdc-libphobos-build.diff new file mode 100644 index 0000000..2b6c907 --- /dev/null +++ b/debian/patches/gdc-libphobos-build.diff @@ -0,0 +1,950 @@ +# DP: This implements building of libphobos library in GCC. + +# Please read ada-changes-in-autogen-output.diff about src/Makefile.[def|tpl]. + +Index: b/src/Makefile.def +=================================================================== +--- a/src/Makefile.def ++++ b/src/Makefile.def +@@ -167,6 +167,7 @@ target_modules = { module= libgfortran; + target_modules = { module= libobjc; }; + target_modules = { module= libgo; }; + target_modules = { module= libhsail-rt; }; ++target_modules = { module= libphobos; }; + target_modules = { module= libtermcap; no_check=true; + missing=mostlyclean; + missing=clean; +@@ -312,6 +313,7 @@ flags_to_pass = { flag= FLAGS_FOR_TARGET + flags_to_pass = { flag= GFORTRAN_FOR_TARGET ; }; + flags_to_pass = { flag= GOC_FOR_TARGET ; }; + flags_to_pass = { flag= GOCFLAGS_FOR_TARGET ; }; ++flags_to_pass = { flag= GDC_FOR_TARGET ; }; + flags_to_pass = { flag= LD_FOR_TARGET ; }; + flags_to_pass = { flag= LIPO_FOR_TARGET ; }; + flags_to_pass = { flag= LDFLAGS_FOR_TARGET ; }; +@@ -583,6 +585,8 @@ dependencies = { module=configure-target + dependencies = { module=all-target-libgo; on=all-target-libbacktrace; }; + dependencies = { module=all-target-libgo; on=all-target-libffi; }; + dependencies = { module=all-target-libgo; on=all-target-libatomic; }; ++dependencies = { module=configure-target-libphobos; on=configure-target-zlib; }; ++dependencies = { module=all-target-libphobos; on=all-target-zlib; }; + dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; }; + dependencies = { module=configure-target-liboffloadmic; on=configure-target-libgomp; }; + dependencies = { module=configure-target-libsanitizer; on=all-target-libstdc++-v3; }; +@@ -637,6 +641,8 @@ languages = { language=go; gcc-check-tar + lib-check-target=check-target-libgo; }; + languages = { language=brig; gcc-check-target=check-brig; + lib-check-target=check-target-libhsail-rt; }; ++languages = { language=d; gcc-check-target=check-d; ++ lib-check-target=check-target-libphobos; }; + + // Toplevel bootstrap + bootstrap_stage = { id=1 ; }; +Index: b/src/Makefile.tpl +=================================================================== +--- a/src/Makefile.tpl ++++ b/src/Makefile.tpl +@@ -159,6 +159,7 @@ BUILD_EXPORTS = \ + GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ + GOC="$(GOC_FOR_BUILD)"; export GOC; \ + GOCFLAGS="$(GOCFLAGS_FOR_BUILD)"; export GOCFLAGS; \ ++ GDC="$(GDC_FOR_BUILD)"; export GDC; \ + DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \ + LD="$(LD_FOR_BUILD)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \ +@@ -195,6 +196,7 @@ HOST_EXPORTS = \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + GFORTRAN="$(GFORTRAN)"; export GFORTRAN; \ + GOC="$(GOC)"; export GOC; \ ++ GDC="$(GDC)"; export GDC; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ +@@ -281,6 +283,7 @@ BASE_TARGET_EXPORTS = \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GFORTRAN="$(GFORTRAN_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GFORTRAN; \ + GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \ ++ GDC="$(GDC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GDC; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ +@@ -345,6 +348,7 @@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ + DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@ + GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@ + GOC_FOR_BUILD = @GOC_FOR_BUILD@ ++GDC_FOR_BUILD = @GDC_FOR_BUILD@ + LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ + LD_FOR_BUILD = @LD_FOR_BUILD@ + NM_FOR_BUILD = @NM_FOR_BUILD@ +@@ -484,6 +488,7 @@ CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_ + RAW_CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @RAW_CXX_FOR_TARGET@ + GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) @GFORTRAN_FOR_TARGET@ + GOC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GOC_FOR_TARGET@ ++GDC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GDC_FOR_TARGET@ + DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@ + LD_FOR_TARGET=@LD_FOR_TARGET@ + +@@ -609,6 +614,7 @@ EXTRA_HOST_FLAGS = \ + 'DLLTOOL=$(DLLTOOL)' \ + 'GFORTRAN=$(GFORTRAN)' \ + 'GOC=$(GOC)' \ ++ 'GDC=$(GDC)' \ + 'LD=$(LD)' \ + 'LIPO=$(LIPO)' \ + 'NM=$(NM)' \ +@@ -665,6 +671,7 @@ EXTRA_TARGET_FLAGS = \ + 'GFORTRAN=$$(GFORTRAN_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ + 'GOC=$$(GOC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ + 'GOCFLAGS=$$(GOCFLAGS_FOR_TARGET)' \ ++ 'GDC=$$(GDC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ + 'LD=$(COMPILER_LD_FOR_TARGET)' \ + 'LDFLAGS=$$(LDFLAGS_FOR_TARGET)' \ + 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \ +Index: b/src/config-ml.in +=================================================================== +--- a/src/config-ml.in ++++ b/src/config-ml.in +@@ -512,6 +512,7 @@ multi-do: + prefix="$(prefix)" \ + exec_prefix="$(exec_prefix)" \ + GOCFLAGS="$(GOCFLAGS) $${flags}" \ ++ GDCFLAGS="$(GDCFLAGS) $${flags}" \ + CXXFLAGS="$(CXXFLAGS) $${flags}" \ + LIBCFLAGS="$(LIBCFLAGS) $${flags}" \ + LIBCXXFLAGS="$(LIBCXXFLAGS) $${flags}" \ +@@ -746,6 +747,7 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + fi + done + ml_config_env='CC="${CC_}$flags" CXX="${CXX_}$flags" F77="${F77_}$flags" GFORTRAN="${GFORTRAN_}$flags" GOC="${GOC_}$flags"' ++ ml_config_env='CC="${CC_}$flags" CXX="${CXX_}$flags" F77="${F77_}$flags" GFORTRAN="${GFORTRAN_}$flags" GOC="${GOC_}$flags" GDC="${GDC_}$flags"' + + if [ "${with_target_subdir}" = "." ]; then + CC_=$CC' ' +@@ -753,6 +755,7 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + F77_=$F77' ' + GFORTRAN_=$GFORTRAN' ' + GOC_=$GOC' ' ++ GDC_=$GDC' ' + else + # Create a regular expression that matches any string as long + # as ML_POPDIR. +@@ -817,6 +820,18 @@ if [ -n "${multidirs}" ] && [ -z "${ml_n + esac + done + ++ GDC_= ++ for arg in ${GDC}; do ++ case $arg in ++ -[BIL]"${ML_POPDIR}"/*) ++ GDC_="${GDC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ "${ML_POPDIR}"/*) ++ GDC_="${GDC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; ++ *) ++ GDC_="${GDC_}${arg} " ;; ++ esac ++ done ++ + if test "x${LD_LIBRARY_PATH+set}" = xset; then + LD_LIBRARY_PATH_= + for arg in `echo "$LD_LIBRARY_PATH" | tr ':' ' '`; do +Index: b/src/config/multi.m4 +=================================================================== +--- a/src/config/multi.m4 ++++ b/src/config/multi.m4 +@@ -64,4 +64,5 @@ multi_basedir="$multi_basedir" + CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + CC="$CC" + CXX="$CXX" +-GFORTRAN="$GFORTRAN"])])dnl ++GFORTRAN="$GFORTRAN" ++GDC="$GDC"])])dnl +Index: b/src/configure.ac +=================================================================== +--- a/src/configure.ac ++++ b/src/configure.ac +@@ -173,7 +173,9 @@ target_libraries="target-libgcc \ + target-libada-sjlj \ + ${target_libiberty} \ + target-libgnatvsn \ +- target-libgo" ++ target-libgo \ ++ target-zlib \ ++ target-libphobos" + + # these tools are built using the target libraries, and are intended to + # run only in the target environment +@@ -1283,6 +1285,7 @@ if test "${build}" != "${host}" ; then + CXX_FOR_BUILD=${CXX_FOR_BUILD-g++} + GFORTRAN_FOR_BUILD=${GFORTRAN_FOR_BUILD-gfortran} + GOC_FOR_BUILD=${GOC_FOR_BUILD-gccgo} ++ GDC_FOR_BUILD=${GDC_FOR_BUILD-gdc} + DLLTOOL_FOR_BUILD=${DLLTOOL_FOR_BUILD-dlltool} + LD_FOR_BUILD=${LD_FOR_BUILD-ld} + NM_FOR_BUILD=${NM_FOR_BUILD-nm} +@@ -1296,6 +1299,7 @@ else + CXX_FOR_BUILD="\$(CXX)" + GFORTRAN_FOR_BUILD="\$(GFORTRAN)" + GOC_FOR_BUILD="\$(GOC)" ++ GDC_FOR_BUILD="\$(GDC)" + DLLTOOL_FOR_BUILD="\$(DLLTOOL)" + LD_FOR_BUILD="\$(LD)" + NM_FOR_BUILD="\$(NM)" +@@ -3225,6 +3229,7 @@ AC_SUBST(CXX_FOR_BUILD) + AC_SUBST(DLLTOOL_FOR_BUILD) + AC_SUBST(GFORTRAN_FOR_BUILD) + AC_SUBST(GOC_FOR_BUILD) ++AC_SUBST(GDC_FOR_BUILD) + AC_SUBST(LDFLAGS_FOR_BUILD) + AC_SUBST(LD_FOR_BUILD) + AC_SUBST(NM_FOR_BUILD) +@@ -3334,6 +3339,7 @@ NCN_STRICT_CHECK_TARGET_TOOLS(CXX_FOR_TA + NCN_STRICT_CHECK_TARGET_TOOLS(GCC_FOR_TARGET, gcc, ${CC_FOR_TARGET}) + NCN_STRICT_CHECK_TARGET_TOOLS(GFORTRAN_FOR_TARGET, gfortran) + NCN_STRICT_CHECK_TARGET_TOOLS(GOC_FOR_TARGET, gccgo) ++NCN_STRICT_CHECK_TARGET_TOOLS(GDC_FOR_TARGET, gdc) + + ACX_CHECK_INSTALLED_TARGET_TOOL(AR_FOR_TARGET, ar) + ACX_CHECK_INSTALLED_TARGET_TOOL(AS_FOR_TARGET, as) +@@ -3367,6 +3373,8 @@ GCC_TARGET_TOOL(gfortran, GFORTRAN_FOR_T + [gcc/gfortran -B$$r/$(HOST_SUBDIR)/gcc/], fortran) + GCC_TARGET_TOOL(gccgo, GOC_FOR_TARGET, GOC, + [gcc/gccgo -B$$r/$(HOST_SUBDIR)/gcc/], go) ++GCC_TARGET_TOOL(gdc, GDC_FOR_TARGET, GDC, ++ [gcc/gdc -B$$r/$(HOST_SUBDIR)/gcc/], d) + GCC_TARGET_TOOL(ld, LD_FOR_TARGET, LD, [ld/ld-new]) + GCC_TARGET_TOOL(lipo, LIPO_FOR_TARGET, LIPO) + GCC_TARGET_TOOL(nm, NM_FOR_TARGET, NM, [binutils/nm-new]) +Index: b/src/Makefile.in +=================================================================== +--- a/src/Makefile.in ++++ b/src/Makefile.in +@@ -156,6 +156,7 @@ BUILD_EXPORTS = \ + GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ + GOC="$(GOC_FOR_BUILD)"; export GOC; \ + GOCFLAGS="$(GOCFLAGS_FOR_BUILD)"; export GOCFLAGS; \ ++ GDC="$(GDC_FOR_BUILD)"; export GDC; \ + DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \ + LD="$(LD_FOR_BUILD)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \ +@@ -192,6 +193,7 @@ HOST_EXPORTS = \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + GFORTRAN="$(GFORTRAN)"; export GFORTRAN; \ + GOC="$(GOC)"; export GOC; \ ++ GDC="$(GDC)"; export GDC; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ +@@ -278,6 +280,7 @@ BASE_TARGET_EXPORTS = \ + CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ + GFORTRAN="$(GFORTRAN_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GFORTRAN; \ + GOC="$(GOC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GOC; \ ++ GDC="$(GDC_FOR_TARGET) $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export GDC; \ + DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ + LD="$(COMPILER_LD_FOR_TARGET)"; export LD; \ + LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ +@@ -342,6 +345,7 @@ CXX_FOR_BUILD = @CXX_FOR_BUILD@ + DLLTOOL_FOR_BUILD = @DLLTOOL_FOR_BUILD@ + GFORTRAN_FOR_BUILD = @GFORTRAN_FOR_BUILD@ + GOC_FOR_BUILD = @GOC_FOR_BUILD@ ++GDC_FOR_BUILD = @GDC_FOR_BUILD@ + LDFLAGS_FOR_BUILD = @LDFLAGS_FOR_BUILD@ + LD_FOR_BUILD = @LD_FOR_BUILD@ + NM_FOR_BUILD = @NM_FOR_BUILD@ +@@ -551,6 +555,7 @@ CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @CXX_ + RAW_CXX_FOR_TARGET=$(STAGE_CC_WRAPPER) @RAW_CXX_FOR_TARGET@ + GFORTRAN_FOR_TARGET=$(STAGE_CC_WRAPPER) @GFORTRAN_FOR_TARGET@ + GOC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GOC_FOR_TARGET@ ++GDC_FOR_TARGET=$(STAGE_CC_WRAPPER) @GDC_FOR_TARGET@ + DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@ + LD_FOR_TARGET=@LD_FOR_TARGET@ + +@@ -774,6 +779,7 @@ BASE_FLAGS_TO_PASS = \ + "GFORTRAN_FOR_TARGET=$(GFORTRAN_FOR_TARGET)" \ + "GOC_FOR_TARGET=$(GOC_FOR_TARGET)" \ + "GOCFLAGS_FOR_TARGET=$(GOCFLAGS_FOR_TARGET)" \ ++ "GDC_FOR_TARGET=$(GDC_FOR_TARGET)" \ + "LD_FOR_TARGET=$(LD_FOR_TARGET)" \ + "LIPO_FOR_TARGET=$(LIPO_FOR_TARGET)" \ + "LDFLAGS_FOR_TARGET=$(LDFLAGS_FOR_TARGET)" \ +@@ -833,6 +839,7 @@ EXTRA_HOST_FLAGS = \ + 'DLLTOOL=$(DLLTOOL)' \ + 'GFORTRAN=$(GFORTRAN)' \ + 'GOC=$(GOC)' \ ++ 'GDC=$(GDC)' \ + 'LD=$(LD)' \ + 'LIPO=$(LIPO)' \ + 'NM=$(NM)' \ +@@ -889,6 +896,7 @@ EXTRA_TARGET_FLAGS = \ + 'GFORTRAN=$$(GFORTRAN_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ + 'GOC=$$(GOC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ + 'GOCFLAGS=$$(GOCFLAGS_FOR_TARGET)' \ ++ 'GDC=$$(GDC_FOR_TARGET) $$(XGCC_FLAGS_FOR_TARGET) $$(TFLAGS)' \ + 'LD=$(COMPILER_LD_FOR_TARGET)' \ + 'LDFLAGS=$$(LDFLAGS_FOR_TARGET)' \ + 'LIBCFLAGS=$$(LIBCFLAGS_FOR_TARGET)' \ +@@ -992,6 +1000,7 @@ configure-target: \ + maybe-configure-target-libobjc \ + maybe-configure-target-libgo \ + maybe-configure-target-libhsail-rt \ ++ maybe-configure-target-libphobos \ + maybe-configure-target-libtermcap \ + maybe-configure-target-winsup \ + maybe-configure-target-libgloss \ +@@ -1158,6 +1167,7 @@ all-target: maybe-all-target-libgfortran + all-target: maybe-all-target-libobjc + all-target: maybe-all-target-libgo + all-target: maybe-all-target-libhsail-rt ++all-target: maybe-all-target-libphobos + all-target: maybe-all-target-libtermcap + all-target: maybe-all-target-winsup + all-target: maybe-all-target-libgloss +@@ -1251,6 +1261,7 @@ info-target: maybe-info-target-libgfortr + info-target: maybe-info-target-libobjc + info-target: maybe-info-target-libgo + info-target: maybe-info-target-libhsail-rt ++info-target: maybe-info-target-libphobos + info-target: maybe-info-target-libtermcap + info-target: maybe-info-target-winsup + info-target: maybe-info-target-libgloss +@@ -1337,6 +1348,7 @@ dvi-target: maybe-dvi-target-libgfortran + dvi-target: maybe-dvi-target-libobjc + dvi-target: maybe-dvi-target-libgo + dvi-target: maybe-dvi-target-libhsail-rt ++dvi-target: maybe-dvi-target-libphobos + dvi-target: maybe-dvi-target-libtermcap + dvi-target: maybe-dvi-target-winsup + dvi-target: maybe-dvi-target-libgloss +@@ -1423,6 +1435,7 @@ pdf-target: maybe-pdf-target-libgfortran + pdf-target: maybe-pdf-target-libobjc + pdf-target: maybe-pdf-target-libgo + pdf-target: maybe-pdf-target-libhsail-rt ++pdf-target: maybe-pdf-target-libphobos + pdf-target: maybe-pdf-target-libtermcap + pdf-target: maybe-pdf-target-winsup + pdf-target: maybe-pdf-target-libgloss +@@ -1509,6 +1522,7 @@ html-target: maybe-html-target-libgfortr + html-target: maybe-html-target-libobjc + html-target: maybe-html-target-libgo + html-target: maybe-html-target-libhsail-rt ++html-target: maybe-html-target-libphobos + html-target: maybe-html-target-libtermcap + html-target: maybe-html-target-winsup + html-target: maybe-html-target-libgloss +@@ -1595,6 +1609,7 @@ TAGS-target: maybe-TAGS-target-libgfortr + TAGS-target: maybe-TAGS-target-libobjc + TAGS-target: maybe-TAGS-target-libgo + TAGS-target: maybe-TAGS-target-libhsail-rt ++TAGS-target: maybe-TAGS-target-libphobos + TAGS-target: maybe-TAGS-target-libtermcap + TAGS-target: maybe-TAGS-target-winsup + TAGS-target: maybe-TAGS-target-libgloss +@@ -1681,6 +1696,7 @@ install-info-target: maybe-install-info- + install-info-target: maybe-install-info-target-libobjc + install-info-target: maybe-install-info-target-libgo + install-info-target: maybe-install-info-target-libhsail-rt ++install-info-target: maybe-install-info-target-libphobos + install-info-target: maybe-install-info-target-libtermcap + install-info-target: maybe-install-info-target-winsup + install-info-target: maybe-install-info-target-libgloss +@@ -1767,6 +1783,7 @@ install-pdf-target: maybe-install-pdf-ta + install-pdf-target: maybe-install-pdf-target-libobjc + install-pdf-target: maybe-install-pdf-target-libgo + install-pdf-target: maybe-install-pdf-target-libhsail-rt ++install-pdf-target: maybe-install-pdf-target-libphobos + install-pdf-target: maybe-install-pdf-target-libtermcap + install-pdf-target: maybe-install-pdf-target-winsup + install-pdf-target: maybe-install-pdf-target-libgloss +@@ -1853,6 +1870,7 @@ install-html-target: maybe-install-html- + install-html-target: maybe-install-html-target-libobjc + install-html-target: maybe-install-html-target-libgo + install-html-target: maybe-install-html-target-libhsail-rt ++install-html-target: maybe-install-html-target-libphobos + install-html-target: maybe-install-html-target-libtermcap + install-html-target: maybe-install-html-target-winsup + install-html-target: maybe-install-html-target-libgloss +@@ -1939,6 +1957,7 @@ installcheck-target: maybe-installcheck- + installcheck-target: maybe-installcheck-target-libobjc + installcheck-target: maybe-installcheck-target-libgo + installcheck-target: maybe-installcheck-target-libhsail-rt ++installcheck-target: maybe-installcheck-target-libphobos + installcheck-target: maybe-installcheck-target-libtermcap + installcheck-target: maybe-installcheck-target-winsup + installcheck-target: maybe-installcheck-target-libgloss +@@ -2025,6 +2044,7 @@ mostlyclean-target: maybe-mostlyclean-ta + mostlyclean-target: maybe-mostlyclean-target-libobjc + mostlyclean-target: maybe-mostlyclean-target-libgo + mostlyclean-target: maybe-mostlyclean-target-libhsail-rt ++mostlyclean-target: maybe-mostlyclean-target-libphobos + mostlyclean-target: maybe-mostlyclean-target-libtermcap + mostlyclean-target: maybe-mostlyclean-target-winsup + mostlyclean-target: maybe-mostlyclean-target-libgloss +@@ -2111,6 +2131,7 @@ clean-target: maybe-clean-target-libgfor + clean-target: maybe-clean-target-libobjc + clean-target: maybe-clean-target-libgo + clean-target: maybe-clean-target-libhsail-rt ++clean-target: maybe-clean-target-libphobos + clean-target: maybe-clean-target-libtermcap + clean-target: maybe-clean-target-winsup + clean-target: maybe-clean-target-libgloss +@@ -2197,6 +2218,7 @@ distclean-target: maybe-distclean-target + distclean-target: maybe-distclean-target-libobjc + distclean-target: maybe-distclean-target-libgo + distclean-target: maybe-distclean-target-libhsail-rt ++distclean-target: maybe-distclean-target-libphobos + distclean-target: maybe-distclean-target-libtermcap + distclean-target: maybe-distclean-target-winsup + distclean-target: maybe-distclean-target-libgloss +@@ -2283,6 +2305,7 @@ maintainer-clean-target: maybe-maintaine + maintainer-clean-target: maybe-maintainer-clean-target-libobjc + maintainer-clean-target: maybe-maintainer-clean-target-libgo + maintainer-clean-target: maybe-maintainer-clean-target-libhsail-rt ++maintainer-clean-target: maybe-maintainer-clean-target-libphobos + maintainer-clean-target: maybe-maintainer-clean-target-libtermcap + maintainer-clean-target: maybe-maintainer-clean-target-winsup + maintainer-clean-target: maybe-maintainer-clean-target-libgloss +@@ -2425,6 +2448,7 @@ check-target: \ + maybe-check-target-libobjc \ + maybe-check-target-libgo \ + maybe-check-target-libhsail-rt \ ++ maybe-check-target-libphobos \ + maybe-check-target-libtermcap \ + maybe-check-target-winsup \ + maybe-check-target-libgloss \ +@@ -2607,6 +2631,7 @@ install-target: \ + maybe-install-target-libobjc \ + maybe-install-target-libgo \ + maybe-install-target-libhsail-rt \ ++ maybe-install-target-libphobos \ + maybe-install-target-libtermcap \ + maybe-install-target-winsup \ + maybe-install-target-libgloss \ +@@ -2713,6 +2738,7 @@ install-strip-target: \ + maybe-install-strip-target-libobjc \ + maybe-install-strip-target-libgo \ + maybe-install-strip-target-libhsail-rt \ ++ maybe-install-strip-target-libphobos \ + maybe-install-strip-target-libtermcap \ + maybe-install-strip-target-winsup \ + maybe-install-strip-target-libgloss \ +@@ -46570,6 +46596,464 @@ maintainer-clean-target-libhsail-rt: + + + ++.PHONY: configure-target-libphobos maybe-configure-target-libphobos ++maybe-configure-target-libphobos: ++@if gcc-bootstrap ++configure-target-libphobos: stage_current ++@endif gcc-bootstrap ++@if target-libphobos ++maybe-configure-target-libphobos: configure-target-libphobos ++configure-target-libphobos: ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ echo "Checking multilib configuration for libphobos..."; \ ++ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos; \ ++ $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/libphobos/multilib.tmp 2> /dev/null; \ ++ if test -r $(TARGET_SUBDIR)/libphobos/multilib.out; then \ ++ if cmp -s $(TARGET_SUBDIR)/libphobos/multilib.tmp $(TARGET_SUBDIR)/libphobos/multilib.out; then \ ++ rm -f $(TARGET_SUBDIR)/libphobos/multilib.tmp; \ ++ else \ ++ rm -f $(TARGET_SUBDIR)/libphobos/Makefile; \ ++ mv $(TARGET_SUBDIR)/libphobos/multilib.tmp $(TARGET_SUBDIR)/libphobos/multilib.out; \ ++ fi; \ ++ else \ ++ mv $(TARGET_SUBDIR)/libphobos/multilib.tmp $(TARGET_SUBDIR)/libphobos/multilib.out; \ ++ fi; \ ++ test ! -f $(TARGET_SUBDIR)/libphobos/Makefile || exit 0; \ ++ $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/libphobos; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo Configuring in $(TARGET_SUBDIR)/libphobos; \ ++ cd "$(TARGET_SUBDIR)/libphobos" || exit 1; \ ++ case $(srcdir) in \ ++ /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \ ++ *) topdir=`echo $(TARGET_SUBDIR)/libphobos/ | \ ++ sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \ ++ esac; \ ++ module_srcdir=libphobos; \ ++ rm -f no-such-file || : ; \ ++ CONFIG_SITE=no-such-file $(SHELL) \ ++ $$s/$$module_srcdir/configure \ ++ --srcdir=$${topdir}/$$module_srcdir \ ++ $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \ ++ --target=${target_alias} \ ++ || exit 1 ++@endif target-libphobos ++ ++ ++ ++ ++ ++.PHONY: all-target-libphobos maybe-all-target-libphobos ++maybe-all-target-libphobos: ++@if gcc-bootstrap ++all-target-libphobos: stage_current ++@endif gcc-bootstrap ++@if target-libphobos ++TARGET-target-libphobos=all ++maybe-all-target-libphobos: all-target-libphobos ++all-target-libphobos: configure-target-libphobos ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) \ ++ $(TARGET-target-libphobos)) ++@endif target-libphobos ++ ++ ++ ++ ++ ++.PHONY: check-target-libphobos maybe-check-target-libphobos ++maybe-check-target-libphobos: ++@if target-libphobos ++maybe-check-target-libphobos: check-target-libphobos ++ ++check-target-libphobos: ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) check) ++ ++@endif target-libphobos ++ ++.PHONY: install-target-libphobos maybe-install-target-libphobos ++maybe-install-target-libphobos: ++@if target-libphobos ++maybe-install-target-libphobos: install-target-libphobos ++ ++install-target-libphobos: installdirs ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) ++ ++@endif target-libphobos ++ ++.PHONY: install-strip-target-libphobos maybe-install-strip-target-libphobos ++maybe-install-strip-target-libphobos: ++@if target-libphobos ++maybe-install-strip-target-libphobos: install-strip-target-libphobos ++ ++install-strip-target-libphobos: installdirs ++ @: $(MAKE); $(unstage) ++ @r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(TARGET_FLAGS_TO_PASS) install-strip) ++ ++@endif target-libphobos ++ ++# Other targets (info, dvi, pdf, etc.) ++ ++.PHONY: maybe-info-target-libphobos info-target-libphobos ++maybe-info-target-libphobos: ++@if target-libphobos ++maybe-info-target-libphobos: info-target-libphobos ++ ++info-target-libphobos: \ ++ configure-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing info in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ info) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-dvi-target-libphobos dvi-target-libphobos ++maybe-dvi-target-libphobos: ++@if target-libphobos ++maybe-dvi-target-libphobos: dvi-target-libphobos ++ ++dvi-target-libphobos: \ ++ configure-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing dvi in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ dvi) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-pdf-target-libphobos pdf-target-libphobos ++maybe-pdf-target-libphobos: ++@if target-libphobos ++maybe-pdf-target-libphobos: pdf-target-libphobos ++ ++pdf-target-libphobos: \ ++ configure-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing pdf in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ pdf) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-html-target-libphobos html-target-libphobos ++maybe-html-target-libphobos: ++@if target-libphobos ++maybe-html-target-libphobos: html-target-libphobos ++ ++html-target-libphobos: \ ++ configure-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing html in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ html) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-TAGS-target-libphobos TAGS-target-libphobos ++maybe-TAGS-target-libphobos: ++@if target-libphobos ++maybe-TAGS-target-libphobos: TAGS-target-libphobos ++ ++TAGS-target-libphobos: \ ++ configure-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing TAGS in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ TAGS) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-install-info-target-libphobos install-info-target-libphobos ++maybe-install-info-target-libphobos: ++@if target-libphobos ++maybe-install-info-target-libphobos: install-info-target-libphobos ++ ++install-info-target-libphobos: \ ++ configure-target-libphobos \ ++ info-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing install-info in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ install-info) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-install-pdf-target-libphobos install-pdf-target-libphobos ++maybe-install-pdf-target-libphobos: ++@if target-libphobos ++maybe-install-pdf-target-libphobos: install-pdf-target-libphobos ++ ++install-pdf-target-libphobos: \ ++ configure-target-libphobos \ ++ pdf-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing install-pdf in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ install-pdf) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-install-html-target-libphobos install-html-target-libphobos ++maybe-install-html-target-libphobos: ++@if target-libphobos ++maybe-install-html-target-libphobos: install-html-target-libphobos ++ ++install-html-target-libphobos: \ ++ configure-target-libphobos \ ++ html-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing install-html in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ install-html) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-installcheck-target-libphobos installcheck-target-libphobos ++maybe-installcheck-target-libphobos: ++@if target-libphobos ++maybe-installcheck-target-libphobos: installcheck-target-libphobos ++ ++installcheck-target-libphobos: \ ++ configure-target-libphobos ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing installcheck in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ installcheck) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-mostlyclean-target-libphobos mostlyclean-target-libphobos ++maybe-mostlyclean-target-libphobos: ++@if target-libphobos ++maybe-mostlyclean-target-libphobos: mostlyclean-target-libphobos ++ ++mostlyclean-target-libphobos: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing mostlyclean in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ mostlyclean) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-clean-target-libphobos clean-target-libphobos ++maybe-clean-target-libphobos: ++@if target-libphobos ++maybe-clean-target-libphobos: clean-target-libphobos ++ ++clean-target-libphobos: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing clean in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ clean) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-distclean-target-libphobos distclean-target-libphobos ++maybe-distclean-target-libphobos: ++@if target-libphobos ++maybe-distclean-target-libphobos: distclean-target-libphobos ++ ++distclean-target-libphobos: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing distclean in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ distclean) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++.PHONY: maybe-maintainer-clean-target-libphobos maintainer-clean-target-libphobos ++maybe-maintainer-clean-target-libphobos: ++@if target-libphobos ++maybe-maintainer-clean-target-libphobos: maintainer-clean-target-libphobos ++ ++maintainer-clean-target-libphobos: ++ @: $(MAKE); $(unstage) ++ @[ -f $(TARGET_SUBDIR)/libphobos/Makefile ] || exit 0; \ ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(NORMAL_TARGET_EXPORTS) \ ++ echo "Doing maintainer-clean in $(TARGET_SUBDIR)/libphobos"; \ ++ for flag in $(EXTRA_TARGET_FLAGS); do \ ++ eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ ++ done; \ ++ (cd $(TARGET_SUBDIR)/libphobos && \ ++ $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ ++ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ ++ "RANLIB=$${RANLIB}" \ ++ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \ ++ maintainer-clean) \ ++ || exit 1 ++ ++@endif target-libphobos ++ ++ ++ ++ ++ + .PHONY: configure-target-libtermcap maybe-configure-target-libtermcap + maybe-configure-target-libtermcap: + @if gcc-bootstrap +@@ -51864,6 +52348,14 @@ check-gcc-brig: + (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-brig); + check-brig: check-gcc-brig check-target-libhsail-rt + ++.PHONY: check-gcc-d check-d ++check-gcc-d: ++ r=`${PWD_COMMAND}`; export r; \ ++ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ ++ $(HOST_EXPORTS) \ ++ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-d); ++check-d: check-gcc-d check-target-libphobos ++ + + # The gcc part of install-no-fixedincludes, which relies on an intimate + # knowledge of how a number of gcc internal targets (inter)operate. Delegate. +@@ -54742,6 +55234,7 @@ configure-target-libgfortran: stage_last + configure-target-libobjc: stage_last + configure-target-libgo: stage_last + configure-target-libhsail-rt: stage_last ++configure-target-libphobos: stage_last + configure-target-libtermcap: stage_last + configure-target-winsup: stage_last + configure-target-libgloss: stage_last +@@ -54777,6 +55270,7 @@ configure-target-libgfortran: maybe-all- + configure-target-libobjc: maybe-all-gcc + configure-target-libgo: maybe-all-gcc + configure-target-libhsail-rt: maybe-all-gcc ++configure-target-libphobos: maybe-all-gcc + configure-target-libtermcap: maybe-all-gcc + configure-target-winsup: maybe-all-gcc + configure-target-libgloss: maybe-all-gcc +@@ -55803,6 +56297,8 @@ configure-target-libgo: maybe-all-target + all-target-libgo: maybe-all-target-libbacktrace + all-target-libgo: maybe-all-target-libffi + all-target-libgo: maybe-all-target-libatomic ++configure-target-libphobos: maybe-configure-target-zlib ++all-target-libphobos: maybe-all-target-zlib + configure-target-libstdc++-v3: maybe-configure-target-libgomp + + configure-stage1-target-libstdc++-v3: maybe-configure-stage1-target-libgomp +@@ -55930,6 +56426,7 @@ configure-target-libgfortran: maybe-all- + configure-target-libobjc: maybe-all-target-libgcc + configure-target-libgo: maybe-all-target-libgcc + configure-target-libhsail-rt: maybe-all-target-libgcc ++configure-target-libphobos: maybe-all-target-libgcc + configure-target-libtermcap: maybe-all-target-libgcc + configure-target-winsup: maybe-all-target-libgcc + configure-target-libgloss: maybe-all-target-libgcc +@@ -55973,6 +56470,8 @@ configure-target-libgo: maybe-all-target + + configure-target-libhsail-rt: maybe-all-target-newlib maybe-all-target-libgloss + ++configure-target-libphobos: maybe-all-target-newlib maybe-all-target-libgloss ++ + configure-target-libtermcap: maybe-all-target-newlib maybe-all-target-libgloss + + configure-target-winsup: maybe-all-target-newlib maybe-all-target-libgloss diff --git a/debian/patches/gdc-multiarch.diff b/debian/patches/gdc-multiarch.diff new file mode 100644 index 0000000..1925e1a --- /dev/null +++ b/debian/patches/gdc-multiarch.diff @@ -0,0 +1,17 @@ +# DP: Set the D target include directory to a multiarch location. + +--- a/src/gcc/d/Make-lang.in ++++ b/src/gcc/d/Make-lang.in +@@ -61,7 +61,11 @@ + $(D_DMD_H) + + +-gcc_d_target_include_dir=$(gcc_d_include_dir)/$(target_noncanonical) ++ifneq (,$(MULTIARCH_DIRNAME)) ++ gcc_d_target_include_dir = /usr/include/$(MULTIARCH_DIRNAME)/d/$(version) ++else ++ gcc_d_target_include_dir=$(gcc_d_include_dir)/$(target_noncanonical) ++endif + + # Name of phobos library + D_LIBPHOBOS = -DLIBPHOBOS=\"gphobos2\" diff --git a/debian/patches/gdc-profiledbuild.diff b/debian/patches/gdc-profiledbuild.diff new file mode 100644 index 0000000..fb49c4b --- /dev/null +++ b/debian/patches/gdc-profiledbuild.diff @@ -0,0 +1,21 @@ +# DP: Don't build gdc build tools idgen and impcnvgen with profiling flags + +Index: b/src/gcc/d/Make-lang.in +=================================================================== +--- a/src/gcc/d/Make-lang.in ++++ b/src/gcc/d/Make-lang.in +@@ -256,6 +256,14 @@ d/idgen: d/idgen.dmdgen.o + d/impcvgen: d/impcnvgen.dmdgen.o + +$(LINKER_FOR_BUILD) $(BUILD_LINKER_FLAGS) $(BUILD_LDFLAGS) -o $@ $^ + ++d/idgen.dmdgen.o: d/dfrontend/idgen.c ++ $(filter-out -fprofile-%,$(DMD_COMPILE)) $(D_INCLUDES) $< ++ $(POSTCOMPILE) ++ ++d/impcnvgen.dmdgen.o: $(srcdir)/d/dfrontend/impcnvgen.c ++ $(filter-out -fprofile-%,$(DMDGEN_COMPILE)) $(D_INCLUDES) $< ++ $(POSTCOMPILE) ++ + # Generated sources. + d/id.c: d/idgen + cd d && ./idgen diff --git a/debian/patches/gdc-sparc-fix.diff b/debian/patches/gdc-sparc-fix.diff new file mode 100644 index 0000000..026388e --- /dev/null +++ b/debian/patches/gdc-sparc-fix.diff @@ -0,0 +1,12 @@ +# DP: Fix gdc build on sparc. + +--- a/src/gcc/d/d-target.cc ++++ b/src/gcc/d/d-target.cc +@@ -18,6 +18,7 @@ + #include "config.h" + #include "system.h" + #include "coretypes.h" ++#include "memmodel.h" + + #include "dfrontend/aggregate.h" + #include "dfrontend/module.h" diff --git a/debian/patches/gdc-texinfo.diff b/debian/patches/gdc-texinfo.diff new file mode 100644 index 0000000..1cab170 --- /dev/null +++ b/debian/patches/gdc-texinfo.diff @@ -0,0 +1,55 @@ +# DP: Add macros for the gdc texinfo documentation. + +Index: b/src/gcc/d/gdc.texi +=================================================================== +--- a/src/gcc/d/gdc.texi ++++ b/src/gcc/d/gdc.texi +@@ -57,6 +57,22 @@ man page gfdl(7). + @insertcopying + @end ifinfo + ++@macro versionsubtitle ++@ifclear DEVELOPMENT ++@subtitle For @sc{gcc} version @value{version-GCC} ++@end ifclear ++@ifset DEVELOPMENT ++@subtitle For @sc{gcc} version @value{version-GCC} (pre-release) ++@end ifset ++@ifset VERSION_PACKAGE ++@sp 1 ++@subtitle @value{VERSION_PACKAGE} ++@end ifset ++@c Even if there are no authors, the second titlepage line should be ++@c forced to the bottom of the page. ++@vskip 0pt plus 1filll ++@end macro ++ + @titlepage + @title The GNU D Compiler + @versionsubtitle +@@ -139,6 +155,25 @@ the options specific to @command{gdc}. + * Environment Variables:: Environment variables that affect @command{gdc}. + @end menu + ++@macro gcctabopt{body} ++@code{\body\} ++@end macro ++@macro gccoptlist{body} ++@smallexample ++\body\ ++@end smallexample ++@end macro ++@c Makeinfo handles the above macro OK, TeX needs manual line breaks; ++@c they get lost at some point in handling the macro. But if @macro is ++@c used here rather than @alias, it produces double line breaks. ++@iftex ++@alias gol = * ++@end iftex ++@ifnottex ++@macro gol ++@end macro ++@end ifnottex ++ + @c man begin OPTIONS + + @node Input and Output files diff --git a/debian/patches/gdc-updates.diff b/debian/patches/gdc-updates.diff new file mode 100644 index 0000000..35f102c --- /dev/null +++ b/debian/patches/gdc-updates.diff @@ -0,0 +1,30 @@ +# DP: gdc updates up to 20160115. + + * Make-lang.in (d-warn): Filter out -Wmissing-format-attribute. + +Index: b/src/gcc/d/Make-lang.in +=================================================================== +--- a/src/gcc/d/Make-lang.in ++++ b/src/gcc/d/Make-lang.in +@@ -46,7 +46,7 @@ gdc-cross$(exeext): gdc$(exeext) + cp gdc$(exeext) gdc-cross$(exeext) + + # Filter out pedantic and virtual overload warnings. +-d-warn = $(filter-out -pedantic -Woverloaded-virtual, $(STRICT_WARN)) ++d-warn = $(filter-out -pedantic -Woverloaded-virtual -Wmissing-format-attribute, $(STRICT_WARN)) + + # D Frontend has slightly relaxed warnings compared to rest of GDC. + DMD_WARN_CXXFLAGS = -Wno-deprecated -Wstrict-aliasing -Wuninitialized +Index: b/src/libphobos/src/std/internal/math/gammafunction.d +=================================================================== +--- a/src/libphobos/src/std/internal/math/gammafunction.d ++++ b/src/libphobos/src/std/internal/math/gammafunction.d +@@ -437,7 +437,7 @@ real logGamma(real x) + if ( p == q ) + return real.infinity; + int intpart = cast(int)(p); +- real sgngam = 1; ++ real sgngam = 1.0L; + if ( (intpart & 1) == 0 ) + sgngam = -1; + z = q - p; diff --git a/debian/patches/gdc-versym-cpu.diff b/debian/patches/gdc-versym-cpu.diff new file mode 100644 index 0000000..911c8a1 --- /dev/null +++ b/debian/patches/gdc-versym-cpu.diff @@ -0,0 +1,379 @@ +# DP: Implements D CPU version conditions. + +This implements the following versions: +* D_HardFloat +* D_SoftFloat + +for all supported architectures. And these where appropriate: +* ARM +** ARM_Thumb +** ARM_HardFloat +** ARM_SoftFloat +** ARM_SoftFP +* AArch64 +* Alpha +** Alpha_SoftFloat +** Alpha_HardFloat +* X86 +* X86_64 +** D_X32 +* IA64 +* MIPS32 +* MIPS64 +** MIPS_O32 +** MIPS_O64 +** MIPS_N32 +** MIPS_N64 +** MIPS_EABI +** MIPS_HardFloat +** MIPS_SoftFloat +* HPPA +* HPPA64 +* PPC +* PPC64 +** PPC_HardFloat +** PPC_SoftFloat +* S390 +* S390X +* SH +* SH64 +* SPARC +* SPARC64 +* SPARC_V8Plus +** SPARC_HardFloat +** SPARC_SoftFloat + +Index: b/src/gcc/config/aarch64/aarch64.h +=================================================================== +--- a/src/gcc/config/aarch64/aarch64.h ++++ b/src/gcc/config/aarch64/aarch64.h +@@ -26,6 +26,14 @@ + #define TARGET_CPU_CPP_BUILTINS() \ + aarch64_cpu_cpp_builtins (pfile) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do \ ++ { \ ++ builtin_define ("AArch64"); \ ++ builtin_define ("D_HardFloat"); \ ++ } while (0) ++ + + + #define REGISTER_TARGET_PRAGMAS() aarch64_register_pragmas () +Index: b/src/gcc/config/alpha/alpha.h +=================================================================== +--- a/src/gcc/config/alpha/alpha.h ++++ b/src/gcc/config/alpha/alpha.h +@@ -72,6 +72,23 @@ along with GCC; see the file COPYING3. + SUBTARGET_LANGUAGE_CPP_BUILTINS(); \ + } while (0) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do \ ++ { \ ++ builtin_define ("Alpha"); \ ++ if (TARGET_SOFT_FP) \ ++ { \ ++ builtin_define ("D_SoftFloat"); \ ++ builtin_define ("Alpha_SoftFloat"); \ ++ } \ ++ else \ ++ { \ ++ builtin_define ("D_HardFloat"); \ ++ builtin_define ("Alpha_HardFloat"); \ ++ } \ ++} while (0) ++ + #ifndef SUBTARGET_LANGUAGE_CPP_BUILTINS + #define SUBTARGET_LANGUAGE_CPP_BUILTINS() \ + do \ +Index: b/src/gcc/config/arm/arm.h +=================================================================== +--- a/src/gcc/config/arm/arm.h ++++ b/src/gcc/config/arm/arm.h +@@ -47,6 +47,31 @@ extern char arm_arch_name[]; + /* Target CPU builtins. */ + #define TARGET_CPU_CPP_BUILTINS() arm_cpu_cpp_builtins (pfile) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do \ ++ { \ ++ builtin_define ("ARM"); \ ++ \ ++ if (TARGET_THUMB || TARGET_THUMB2) \ ++ builtin_define ("ARM_Thumb"); \ ++ \ ++ if (TARGET_HARD_FLOAT_ABI) \ ++ builtin_define ("ARM_HardFloat"); \ ++ else \ ++ { \ ++ if(TARGET_SOFT_FLOAT) \ ++ builtin_define ("ARM_SoftFloat"); \ ++ else if(TARGET_HARD_FLOAT) \ ++ builtin_define ("ARM_SoftFP"); \ ++ } \ ++ \ ++ if(TARGET_SOFT_FLOAT) \ ++ builtin_define ("D_SoftFloat"); \ ++ else if(TARGET_HARD_FLOAT) \ ++ builtin_define ("D_HardFloat"); \ ++ } while (0) ++ + #include "config/arm/arm-opts.h" + + /* The processor for which instructions should be scheduled. */ +Index: b/src/gcc/config/i386/i386.h +=================================================================== +--- a/src/gcc/config/i386/i386.h ++++ b/src/gcc/config/i386/i386.h +@@ -669,6 +669,24 @@ extern const char *host_detect_local_cpu + /* Target CPU builtins. */ + #define TARGET_CPU_CPP_BUILTINS() ix86_target_macros () + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do { \ ++ if (TARGET_64BIT) \ ++ { \ ++ builtin_define("X86_64"); \ ++ if (TARGET_X32) \ ++ builtin_define("D_X32"); \ ++ } \ ++ else \ ++ builtin_define("X86"); \ ++ \ ++ if (TARGET_80387) \ ++ builtin_define("D_HardFloat"); \ ++ else \ ++ builtin_define("D_SoftFloat"); \ ++ } while (0) ++ + /* Target Pragmas. */ + #define REGISTER_TARGET_PRAGMAS() ix86_register_pragmas () + +Index: b/src/gcc/config/ia64/ia64.h +=================================================================== +--- a/src/gcc/config/ia64/ia64.h ++++ b/src/gcc/config/ia64/ia64.h +@@ -40,6 +40,13 @@ do { \ + builtin_define("__BIG_ENDIAN__"); \ + } while (0) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++do { \ ++ builtin_define ("IA64"); \ ++ builtin_define ("D_HardFloat"); \ ++} while (0) ++ + #ifndef SUBTARGET_EXTRA_SPECS + #define SUBTARGET_EXTRA_SPECS + #endif +Index: b/src/gcc/config/mips/mips.h +=================================================================== +--- a/src/gcc/config/mips/mips.h ++++ b/src/gcc/config/mips/mips.h +@@ -644,6 +644,54 @@ struct mips_cpu_info { + } \ + while (0) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do \ ++ { \ ++ if (TARGET_64BIT) \ ++ builtin_define("MIPS64"); \ ++ else \ ++ builtin_define("MIPS32"); \ ++ \ ++ switch (mips_abi) \ ++ { \ ++ case ABI_32: \ ++ builtin_define("MIPS_O32"); \ ++ break; \ ++ \ ++ case ABI_O64: \ ++ builtin_define("MIPS_O64"); \ ++ break; \ ++ \ ++ case ABI_N32: \ ++ builtin_define("MIPS_N32"); \ ++ break; \ ++ \ ++ case ABI_64: \ ++ builtin_define("MIPS_N64"); \ ++ break; \ ++ \ ++ case ABI_EABI: \ ++ builtin_define("MIPS_EABI"); \ ++ break; \ ++ \ ++ default: \ ++ gcc_unreachable(); \ ++ } \ ++ \ ++ if (TARGET_HARD_FLOAT_ABI) \ ++ { \ ++ builtin_define("MIPS_HardFloat"); \ ++ builtin_define("D_HardFloat"); \ ++ } \ ++ else if (TARGET_SOFT_FLOAT_ABI) \ ++ { \ ++ builtin_define("MIPS_SoftFloat"); \ ++ builtin_define("D_SoftFloat"); \ ++ } \ ++ } \ ++ while (0) ++ + /* Default target_flags if no switches are specified */ + + #ifndef TARGET_DEFAULT +Index: b/src/gcc/config/pa/pa.h +=================================================================== +--- a/src/gcc/config/pa/pa.h ++++ b/src/gcc/config/pa/pa.h +@@ -179,6 +179,20 @@ do { \ + builtin_define("_PA_RISC1_0"); \ + } while (0) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++do { \ ++ if(TARGET_64BIT) \ ++ builtin_define("HPPA64"); \ ++ else \ ++ builtin_define("HPPA"); \ ++ \ ++ if(TARGET_SOFT_FLOAT) \ ++ builtin_define ("D_SoftFloat"); \ ++ else \ ++ builtin_define ("D_HardFloat"); \ ++} while (0) ++ + /* An old set of OS defines for various BSD-like systems. */ + #define TARGET_OS_CPP_BUILTINS() \ + do \ +Index: b/src/gcc/config/rs6000/rs6000.h +=================================================================== +--- a/src/gcc/config/rs6000/rs6000.h ++++ b/src/gcc/config/rs6000/rs6000.h +@@ -822,6 +822,28 @@ extern unsigned char rs6000_recip_bits[] + #define TARGET_CPU_CPP_BUILTINS() \ + rs6000_cpu_cpp_builtins (pfile) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do \ ++ { \ ++ if (TARGET_64BIT) \ ++ builtin_define ("PPC64"); \ ++ else \ ++ builtin_define ("PPC"); \ ++ \ ++ if (TARGET_HARD_FLOAT) \ ++ { \ ++ builtin_define ("PPC_HardFloat"); \ ++ builtin_define ("D_HardFloat"); \ ++ } \ ++ else if (TARGET_SOFT_FLOAT) \ ++ { \ ++ builtin_define ("PPC_SoftFloat"); \ ++ builtin_define ("D_SoftFloat"); \ ++ } \ ++ } \ ++ while (0) ++ + /* This is used by rs6000_cpu_cpp_builtins to indicate the byte order + we're compiling for. Some configurations may need to override it. */ + #define RS6000_CPU_CPP_ENDIAN_BUILTINS() \ +Index: b/src/gcc/config/s390/s390.h +=================================================================== +--- a/src/gcc/config/s390/s390.h ++++ b/src/gcc/config/s390/s390.h +@@ -194,6 +194,22 @@ enum processor_flags + /* Target CPU builtins. */ + #define TARGET_CPU_CPP_BUILTINS() s390_cpu_cpp_builtins (pfile) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do \ ++ { \ ++ if (TARGET_64BIT) \ ++ builtin_define ("S390X"); \ ++ else \ ++ builtin_define ("S390"); \ ++ \ ++ if(TARGET_SOFT_FLOAT) \ ++ builtin_define ("D_SoftFloat"); \ ++ else if(TARGET_HARD_FLOAT) \ ++ builtin_define ("D_HardFloat"); \ ++ } \ ++ while (0) ++ + #ifdef DEFAULT_TARGET_64BIT + #define TARGET_DEFAULT (MASK_64BIT | MASK_ZARCH | MASK_HARD_DFP \ + | MASK_OPT_HTM | MASK_OPT_VX) +Index: b/src/gcc/config/sh/sh.h +=================================================================== +--- a/src/gcc/config/sh/sh.h ++++ b/src/gcc/config/sh/sh.h +@@ -31,6 +31,19 @@ extern int code_for_indirect_jump_scratc + + #define TARGET_CPU_CPP_BUILTINS() sh_cpu_cpp_builtins (pfile) + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++ do \ ++ { \ ++ builtin_define ("SH"); \ ++ \ ++ if (TARGET_FPU_ANY) \ ++ builtin_define ("D_HardFloat"); \ ++ else \ ++ builtin_define ("D_SoftFloat"); \ ++ } \ ++ while (0) ++ + /* Value should be nonzero if functions must have frame pointers. + Zero means the frame pointer need not be set up (and parms may be accessed + via the stack pointer) in functions that seem suitable. */ +Index: b/src/gcc/config/sparc/sparc.h +=================================================================== +--- a/src/gcc/config/sparc/sparc.h ++++ b/src/gcc/config/sparc/sparc.h +@@ -27,6 +27,31 @@ along with GCC; see the file COPYING3. + + #define TARGET_CPU_CPP_BUILTINS() sparc_target_macros () + ++/* Target CPU builtins for D. */ ++#define TARGET_CPU_D_BUILTINS() \ ++do \ ++ { \ ++ if (TARGET_64BIT) \ ++ builtin_define ("SPARC64"); \ ++ else \ ++ builtin_define ("SPARC"); \ ++ \ ++ if(TARGET_V8PLUS) \ ++ builtin_define ("SPARC_V8Plus"); \ ++ \ ++ if(TARGET_FPU) \ ++ { \ ++ builtin_define ("D_HardFloat"); \ ++ builtin_define ("SPARC_HardFloat"); \ ++ } \ ++ else \ ++ { \ ++ builtin_define ("D_SoftFloat"); \ ++ builtin_define ("SPARC_SoftFloat"); \ ++ } \ ++ } \ ++ while (0) ++ + /* Specify this in a cover file to provide bi-architecture (32/64) support. */ + /* #define SPARC_BI_ARCH */ + diff --git a/debian/patches/gdc-versym-os.diff b/debian/patches/gdc-versym-os.diff new file mode 100644 index 0000000..9fe64c1 --- /dev/null +++ b/debian/patches/gdc-versym-os.diff @@ -0,0 +1,409 @@ +# DP: Implements D OS version conditions. + +This implements the following official versions: +* Windows +** Win32 +** Win64 +** Cygwin +** MinGW +* linux +* OSX +* FreeBSD +* OpenBSD +* NetBSD +* Solaris +* Posix +* AIX +* SysV4 +* Hurd +* Android + +These gdc specific versions are also implemented: +* GNU_MinGW64 (for mingw-w64) +* GNU_OpenSolaris (for opensolaris) +* GNU_GLibc (implemented for linux & bsd & opensolaris) +* GNU_UCLibc (implemented for linux) +* GNU_Bionic (implemented for linux) + +These official OS versions are not implemented: +* DragonFlyBSD +* BSD (other BSDs) +* Haiku +* SkyOS +* SysV3 + +Index: b/src/gcc/config/alpha/linux.h +=================================================================== +--- a/src/gcc/config/alpha/linux.h ++++ b/src/gcc/config/alpha/linux.h +@@ -33,6 +33,16 @@ along with GCC; see the file COPYING3. + builtin_define ("_GNU_SOURCE"); \ + } while (0) + ++#undef TARGET_OS_D_BUILTINS ++#define TARGET_OS_D_BUILTINS() \ ++ do { \ ++ if (OPTION_GLIBC) \ ++ builtin_define ("GNU_GLibc"); \ ++ \ ++ builtin_define ("linux"); \ ++ builtin_define ("Posix"); \ ++ } while (0) ++ + #undef LIB_SPEC + #define LIB_SPEC \ + "%{pthread:-lpthread} \ +Index: b/src/gcc/config/arm/linux-eabi.h +=================================================================== +--- a/src/gcc/config/arm/linux-eabi.h ++++ b/src/gcc/config/arm/linux-eabi.h +@@ -30,6 +30,15 @@ + } \ + while (false) + ++#undef TARGET_OS_D_BUILTINS ++#define TARGET_OS_D_BUILTINS() \ ++ do \ ++ { \ ++ TARGET_GENERIC_LINUX_OS_D_BUILTINS(); \ ++ ANDROID_TARGET_OS_D_BUILTINS(); \ ++ } \ ++ while (false) ++ + /* We default to a soft-float ABI so that binaries can run on all + target hardware. If you override this to use the hard-float ABI then + change the setting of GLIBC_DYNAMIC_LINKER_DEFAULT as well. */ +Index: b/src/gcc/config/darwin.h +=================================================================== +--- a/src/gcc/config/darwin.h ++++ b/src/gcc/config/darwin.h +@@ -972,4 +972,10 @@ extern void darwin_driver_init (unsigned + #define DEF_LD64 LD64_VERSION + #endif + ++#define TARGET_OS_D_BUILTINS() \ ++ do { \ ++ builtin_define ("OSX"); \ ++ builtin_define ("Posix"); \ ++ } while (0) ++ + #endif /* CONFIG_DARWIN_H */ +Index: b/src/gcc/config/freebsd.h +=================================================================== +--- a/src/gcc/config/freebsd.h ++++ b/src/gcc/config/freebsd.h +@@ -32,6 +32,13 @@ along with GCC; see the file COPYING3. + #undef TARGET_OS_CPP_BUILTINS + #define TARGET_OS_CPP_BUILTINS() FBSD_TARGET_OS_CPP_BUILTINS() + ++#undef TARGET_OS_D_BUILTINS ++#define TARGET_OS_D_BUILTINS() \ ++ do { \ ++ builtin_define ("FreeBSD"); \ ++ builtin_define ("Posix"); \ ++ } while (0) ++ + #undef CPP_SPEC + #define CPP_SPEC FBSD_CPP_SPEC + +Index: b/src/gcc/config/gnu.h +=================================================================== +--- a/src/gcc/config/gnu.h ++++ b/src/gcc/config/gnu.h +@@ -31,3 +31,11 @@ along with GCC. If not, see . symlink, and having a +# DP: /usr directory like the other ports. So this patch should NOT go +# DP: upstream. + +--- + config.gcc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/src/gcc/config.gcc (révision 182461) ++++ b/src/gcc/config.gcc (copie de travail) +@@ -583,7 +583,7 @@ + *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-kopensolaris*-gnu) + :;; + *-*-gnu*) +- native_system_header_dir=/include ++ # native_system_header_dir=/include + ;; + esac + # glibc / uclibc / bionic switch. diff --git a/debian/patches/ignore-pie-specs-when-not-enabled.diff b/debian/patches/ignore-pie-specs-when-not-enabled.diff new file mode 100644 index 0000000..8f5cc09 --- /dev/null +++ b/debian/patches/ignore-pie-specs-when-not-enabled.diff @@ -0,0 +1,56 @@ +# DP: Ignore dpkg's pie specs when pie is not enabled. + +Index: b/src/gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c ++++ b/src/gcc/gcc.c +@@ -3715,6 +3715,36 @@ handle_foffload_option (const char *arg) + } + } + ++static bool ignore_pie_specs_when_not_enabled(const char *envvar, ++ const char *specname) ++{ ++ const char *envval = secure_getenv(envvar); ++ char *hardening; ++ bool ignore; ++ ++ if (strstr (specname, "/pie-compile.specs") == NULL ++ && strstr (specname, "/pie-link.specs") == NULL) ++ return false; ++ if (envval == NULL || strstr (envval, "hardening=") == NULL) ++ return true; ++ ignore = true; ++ hardening = (char *) xmalloc (strlen(envval) + 1); ++ strcpy (hardening, strstr (envval, "hardening=")); ++ if (strchr (hardening, ' ')) ++ *strchr (hardening, ' ') = '\0'; ++ if (strstr(hardening, "+all")) ++ { ++ if (strstr(hardening, "-pie") == NULL) ++ ignore = false; ++ } ++ else if (strstr(hardening, "+pie")) ++ { ++ ignore = false; ++ } ++ free (hardening); ++ return ignore; ++} ++ + /* Handle a driver option; arguments and return value as for + handle_option. */ + +@@ -3989,6 +4019,12 @@ driver_handle_option (struct gcc_options + break; + + case OPT_specs_: ++ if (ignore_pie_specs_when_not_enabled("DEB_BUILD_MAINT_OPTIONS", arg) ++ && ignore_pie_specs_when_not_enabled("DEB_BUILD_OPTIONS", arg)) ++ { ++ inform (0, "pie specs %s ignored when pie is not enabled", arg); ++ return true; ++ } + { + struct user_specs *user = XNEW (struct user_specs); + diff --git a/debian/patches/kfreebsd-unwind.diff b/debian/patches/kfreebsd-unwind.diff new file mode 100644 index 0000000..261fe00 --- /dev/null +++ b/debian/patches/kfreebsd-unwind.diff @@ -0,0 +1,48 @@ +# DP: DWARF2 EH unwinding support for AMD x86-64 and x86 KFreeBSD. + +Index: b/src/libgcc/config.host +=================================================================== +--- a/src/libgcc/config.host ++++ b/src/libgcc/config.host +@@ -620,7 +620,13 @@ i[34567]86-*-linux*) + tm_file="${tm_file} i386/elf-lib.h" + md_unwind_header=i386/linux-unwind.h + ;; +-i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu) ++i[34567]86-*-kfreebsd*-gnu) ++ extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" ++ tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules" ++ tm_file="${tm_file} i386/elf-lib.h" ++ md_unwind_header=i386/freebsd-unwind.h ++ ;; ++i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu) + extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" + tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules" + tm_file="${tm_file} i386/elf-lib.h" +@@ -635,6 +641,7 @@ x86_64-*-kfreebsd*-gnu) + extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" + tmake_file="${tmake_file} i386/t-crtpc t-crtfm i386/t-crtstuff t-dfprules" + tm_file="${tm_file} i386/elf-lib.h" ++ md_unwind_header=i386/freebsd-unwind.h + ;; + i[34567]86-pc-msdosdjgpp*) + ;; +Index: b/src/libgcc/config/i386/freebsd-unwind.h +=================================================================== +--- a/src/libgcc/config/i386/freebsd-unwind.h ++++ b/src/libgcc/config/i386/freebsd-unwind.h +@@ -26,6 +26,8 @@ see the files COPYING3 and COPYING.RUNTI + /* Do code reading to identify a signal frame, and set the frame + state data appropriately. See unwind-dw2.c for the structs. */ + ++#ifndef inhibit_libc ++ + #include + #include + #include +@@ -171,3 +173,5 @@ x86_freebsd_fallback_frame_state + return _URC_NO_REASON; + } + #endif /* ifdef __x86_64__ */ ++ ++#endif /* ifndef inhibit_libc */ diff --git a/debian/patches/libasan-sparc.diff b/debian/patches/libasan-sparc.diff new file mode 100644 index 0000000..4b52ac2 --- /dev/null +++ b/debian/patches/libasan-sparc.diff @@ -0,0 +1,163 @@ +# DP: Re-apply sanitizer patch for sparc, dropped upstream + +# don't remove, this is regularly overwritten, see PR sanitizer/63958. + +libsanitizer/ + +2014-10-14 David S. Miller + + * sanitizer_common/sanitizer_platform_limits_linux.cc (time_t): + Define at __kernel_time_t, as needed for sparc. + (struct __old_kernel_stat): Don't check if __sparc__ is defined. + * libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h + (__sanitizer): Define struct___old_kernel_stat_sz, + struct_kernel_stat_sz, and struct_kernel_stat64_sz for sparc. + (__sanitizer_ipc_perm): Adjust for sparc targets. + (__sanitizer_shmid_ds): Likewsie. + (__sanitizer_sigaction): Likewsie. + (IOC_SIZE): Likewsie. + +Index: libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +=================================================================== +--- a/src/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h (revision 216223) ++++ a/src/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h (revision 216224) +@@ -72,6 +72,14 @@ + const unsigned struct_kernel_stat_sz = 144; + #endif + const unsigned struct_kernel_stat64_sz = 104; ++#elif defined(__sparc__) && defined(__arch64__) ++ const unsigned struct___old_kernel_stat_sz = 0; ++ const unsigned struct_kernel_stat_sz = 104; ++ const unsigned struct_kernel_stat64_sz = 144; ++#elif defined(__sparc__) && !defined(__arch64__) ++ const unsigned struct___old_kernel_stat_sz = 0; ++ const unsigned struct_kernel_stat_sz = 64; ++ const unsigned struct_kernel_stat64_sz = 104; + #endif + struct __sanitizer_perf_event_attr { + unsigned type; +@@ -94,7 +102,7 @@ + + #if defined(__powerpc64__) + const unsigned struct___old_kernel_stat_sz = 0; +-#else ++#elif !defined(__sparc__) + const unsigned struct___old_kernel_stat_sz = 32; + #endif + +@@ -173,6 +181,18 @@ + unsigned short __pad1; + unsigned long __unused1; + unsigned long __unused2; ++#elif defined(__sparc__) ++# if defined(__arch64__) ++ unsigned mode; ++ unsigned short __pad1; ++# else ++ unsigned short __pad1; ++ unsigned short mode; ++ unsigned short __pad2; ++# endif ++ unsigned short __seq; ++ unsigned long long __unused1; ++ unsigned long long __unused2; + #else + unsigned short mode; + unsigned short __pad1; +@@ -190,6 +210,26 @@ + + struct __sanitizer_shmid_ds { + __sanitizer_ipc_perm shm_perm; ++ #if defined(__sparc__) ++ # if !defined(__arch64__) ++ u32 __pad1; ++ # endif ++ long shm_atime; ++ # if !defined(__arch64__) ++ u32 __pad2; ++ # endif ++ long shm_dtime; ++ # if !defined(__arch64__) ++ u32 __pad3; ++ # endif ++ long shm_ctime; ++ uptr shm_segsz; ++ int shm_cpid; ++ int shm_lpid; ++ unsigned long shm_nattch; ++ unsigned long __glibc_reserved1; ++ unsigned long __glibc_reserved2; ++ #else + #ifndef __powerpc__ + uptr shm_segsz; + #elif !defined(__powerpc64__) +@@ -227,6 +267,7 @@ + uptr __unused4; + uptr __unused5; + #endif ++#endif + }; + #elif SANITIZER_FREEBSD + struct __sanitizer_ipc_perm { +@@ -523,9 +564,13 @@ + #else + __sanitizer_sigset_t sa_mask; + #ifndef __mips__ ++#if defined(__sparc__) ++ unsigned long sa_flags; ++#else + int sa_flags; + #endif + #endif ++#endif + #if SANITIZER_LINUX + void (*sa_restorer)(); + #endif +@@ -745,7 +790,7 @@ + + #define IOC_NRBITS 8 + #define IOC_TYPEBITS 8 +-#if defined(__powerpc__) || defined(__powerpc64__) || defined(__mips__) ++#if defined(__powerpc__) || defined(__powerpc64__) || defined(__mips__) || defined(__sparc__) + #define IOC_SIZEBITS 13 + #define IOC_DIRBITS 3 + #define IOC_NONE 1U +@@ -775,7 +820,17 @@ + #define IOC_DIR(nr) (((nr) >> IOC_DIRSHIFT) & IOC_DIRMASK) + #define IOC_TYPE(nr) (((nr) >> IOC_TYPESHIFT) & IOC_TYPEMASK) + #define IOC_NR(nr) (((nr) >> IOC_NRSHIFT) & IOC_NRMASK) ++ ++#if defined(__sparc__) ++// In sparc the 14 bits SIZE field overlaps with the ++// least significant bit of DIR, so either IOC_READ or ++// IOC_WRITE shall be 1 in order to get a non-zero SIZE. ++# define IOC_SIZE(nr) \ ++ ((((((nr) >> 29) & 0x7) & (4U|2U)) == 0)? \ ++ 0 : (((nr) >> 16) & 0x3fff)) ++#else + #define IOC_SIZE(nr) (((nr) >> IOC_SIZESHIFT) & IOC_SIZEMASK) ++#endif + + extern unsigned struct_arpreq_sz; + extern unsigned struct_ifreq_sz; +Index: libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc +=================================================================== +--- a/src/libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc (revision 216223) ++++ a/src/libsanitizer/sanitizer_common/sanitizer_platform_limits_linux.cc (revision 216224) +@@ -36,6 +36,7 @@ + #define uid_t __kernel_uid_t + #define gid_t __kernel_gid_t + #define off_t __kernel_off_t ++#define time_t __kernel_time_t + // This header seems to contain the definitions of _kernel_ stat* structs. + #include + #undef ino_t +@@ -60,7 +61,7 @@ + } // namespace __sanitizer + + #if !defined(__powerpc64__) && !defined(__x86_64__) && !defined(__aarch64__)\ +- && !defined(__mips__) ++ && !defined(__mips__) && !defined(__sparc__) + COMPILER_CHECK(struct___old_kernel_stat_sz == sizeof(struct __old_kernel_stat)); + #endif + diff --git a/debian/patches/libcilkrts-targets.diff b/debian/patches/libcilkrts-targets.diff new file mode 100644 index 0000000..6449f84 --- /dev/null +++ b/debian/patches/libcilkrts-targets.diff @@ -0,0 +1,21 @@ +# DP: Disable libcilkrts on KFreeBSD and the Hurd. See #734973. + +Index: b/src/libcilkrts/configure.tgt +=================================================================== +--- a/src/libcilkrts/configure.tgt ++++ b/src/libcilkrts/configure.tgt +@@ -57,3 +57,14 @@ esac + + # Disable libcilkrts on non POSIX hosted systems. + . ${srcdir}/../config/target-posix ++ ++# Disable libcilkrts on KFreeBSD and the Hurd. ++if test x$enable_libcilkrts = x ; then ++ case "${target}" in ++ *-*-linux*) ++ ;; ++ *-*-gnu* | *-*-k*bsd*-gnu) ++ UNSUPPORTED=1 ++ ;; ++ esac ++fi diff --git a/debian/patches/libffi-mips.diff b/debian/patches/libffi-mips.diff new file mode 100644 index 0000000..37b669a --- /dev/null +++ b/debian/patches/libffi-mips.diff @@ -0,0 +1,703 @@ +# DP: Backport Mips go closure support, taken from libffi issue #197. + +--- a/src/libffi/src/mips/ffi.c ++++ b/src/libffi/src/mips/ffi.c +@@ -581,14 +581,15 @@ ffi_status ffi_prep_cif_machdep(ffi_cif *cif) + /* Low level routine for calling O32 functions */ + extern int ffi_call_O32(void (*)(char *, extended_cif *, int, int), + extended_cif *, unsigned, +- unsigned, unsigned *, void (*)(void)); ++ unsigned, unsigned *, void (*)(void), void *closure); + + /* Low level routine for calling N32 functions */ + extern int ffi_call_N32(void (*)(char *, extended_cif *, int, int), + extended_cif *, unsigned, +- unsigned, void *, void (*)(void)); ++ unsigned, void *, void (*)(void), void *closure); + +-void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) ++void ffi_call_int(ffi_cif *cif, void (*fn)(void), void *rvalue, ++ void **avalue, void *closure) + { + extended_cif ecif; + +@@ -610,7 +611,7 @@ void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) + case FFI_O32: + case FFI_O32_SOFT_FLOAT: + ffi_call_O32(ffi_prep_args, &ecif, cif->bytes, +- cif->flags, ecif.rvalue, fn); ++ cif->flags, ecif.rvalue, fn, closure); + break; + #endif + +@@ -642,7 +643,7 @@ void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) + #endif + } + ffi_call_N32(ffi_prep_args, &ecif, cif->bytes, +- cif->flags, rvalue_copy, fn); ++ cif->flags, rvalue_copy, fn, closure); + if (copy_rvalue) + memcpy(ecif.rvalue, rvalue_copy + copy_offset, cif->rtype->size); + } +@@ -655,11 +656,27 @@ void ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) + } + } + ++void ++ffi_call(ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue) ++{ ++ ffi_call_int (cif, fn, rvalue, avalue, NULL); ++} ++ ++void ++ffi_call_go (ffi_cif *cif, void (*fn)(void), void *rvalue, ++ void **avalue, void *closure) ++{ ++ ffi_call_int (cif, fn, rvalue, avalue, closure); ++} ++ ++ + #if FFI_CLOSURES + #if defined(FFI_MIPS_O32) + extern void ffi_closure_O32(void); ++extern void ffi_go_closure_O32(void); + #else + extern void ffi_closure_N32(void); ++extern void ffi_go_closure_N32(void); + #endif /* FFI_MIPS_O32 */ + + ffi_status +@@ -762,17 +779,17 @@ ffi_prep_closure_loc (ffi_closure *closure, + * Based on the similar routine for sparc. + */ + int +-ffi_closure_mips_inner_O32 (ffi_closure *closure, ++ffi_closure_mips_inner_O32 (ffi_cif *cif, ++ void (*fun)(ffi_cif*, void*, void**, void*), ++ void *user_data, + void *rvalue, ffi_arg *ar, + double *fpr) + { +- ffi_cif *cif; + void **avaluep; + ffi_arg *avalue; + ffi_type **arg_types; + int i, avn, argn, seen_int; + +- cif = closure->cif; + avalue = alloca (cif->nargs * sizeof (ffi_arg)); + avaluep = alloca (cif->nargs * sizeof (ffi_arg)); + +@@ -840,7 +857,7 @@ ffi_closure_mips_inner_O32 (ffi_closure *closure, + } + + /* Invoke the closure. */ +- (closure->fun) (cif, rvalue, avaluep, closure->user_data); ++ fun(cif, rvalue, avaluep, user_data); + + if (cif->abi == FFI_O32_SOFT_FLOAT) + { +@@ -916,11 +933,12 @@ copy_struct_N32(char *target, unsigned offset, ffi_abi abi, ffi_type *type, + * + */ + int +-ffi_closure_mips_inner_N32 (ffi_closure *closure, ++ffi_closure_mips_inner_N32 (ffi_cif *cif, ++ void (*fun)(ffi_cif*, void*, void**, void*), ++ void *user_data, + void *rvalue, ffi_arg *ar, + ffi_arg *fpr) + { +- ffi_cif *cif; + void **avaluep; + ffi_arg *avalue; + ffi_type **arg_types; +@@ -928,7 +946,6 @@ ffi_closure_mips_inner_N32 (ffi_closure *closure, + int soft_float; + ffi_arg *argp; + +- cif = closure->cif; + soft_float = cif->abi == FFI_N64_SOFT_FLOAT + || cif->abi == FFI_N32_SOFT_FLOAT; + avalue = alloca (cif->nargs * sizeof (ffi_arg)); +@@ -1040,11 +1057,49 @@ ffi_closure_mips_inner_N32 (ffi_closure *closure, + } + + /* Invoke the closure. */ +- (closure->fun) (cif, rvalue, avaluep, closure->user_data); ++ fun (cif, rvalue, avaluep, user_data); + + return cif->flags >> (FFI_FLAG_BITS * 8); + } + + #endif /* FFI_MIPS_N32 */ + ++#if defined(FFI_MIPS_O32) ++extern void ffi_closure_O32(void); ++extern void ffi_go_closure_O32(void); ++#else ++extern void ffi_closure_N32(void); ++extern void ffi_go_closure_N32(void); ++#endif /* FFI_MIPS_O32 */ ++ ++ffi_status ++ffi_prep_go_closure (ffi_go_closure* closure, ffi_cif* cif, ++ void (*fun)(ffi_cif*,void*,void**,void*)) ++{ ++ void * fn; ++ ++#if defined(FFI_MIPS_O32) ++ if (cif->abi != FFI_O32 && cif->abi != FFI_O32_SOFT_FLOAT) ++ return FFI_BAD_ABI; ++ fn = ffi_go_closure_O32; ++#else ++#if _MIPS_SIM ==_ABIN32 ++ if (cif->abi != FFI_N32 ++ && cif->abi != FFI_N32_SOFT_FLOAT) ++ return FFI_BAD_ABI; ++#else ++ if (cif->abi != FFI_N64 ++ && cif->abi != FFI_N64_SOFT_FLOAT) ++ return FFI_BAD_ABI; ++#endif ++ fn = ffi_go_closure_N32; ++#endif /* FFI_MIPS_O32 */ ++ ++ closure->tramp = (void *)fn; ++ closure->cif = cif; ++ closure->fun = fun; ++ ++ return FFI_OK; ++} ++ + #endif /* FFI_CLOSURES */ +--- a/src/libffi/src/mips/ffitarget.h ++++ b/src/libffi/src/mips/ffitarget.h +@@ -231,12 +231,14 @@ typedef enum ffi_abi { + + #if defined(FFI_MIPS_O32) + #define FFI_CLOSURES 1 ++#define FFI_GO_CLOSURES 1 + #define FFI_TRAMPOLINE_SIZE 20 + #else + /* N32/N64. */ + # define FFI_CLOSURES 1 ++#define FFI_GO_CLOSURES 1 + #if _MIPS_SIM==_ABI64 +-#define FFI_TRAMPOLINE_SIZE 52 ++#define FFI_TRAMPOLINE_SIZE 56 + #else + #define FFI_TRAMPOLINE_SIZE 20 + #endif +--- a/src/libffi/src/mips/n32.S ++++ b/src/libffi/src/mips/n32.S +@@ -37,8 +37,12 @@ + #define flags a3 + #define raddr a4 + #define fn a5 ++#define closure a6 + +-#define SIZEOF_FRAME ( 8 * FFI_SIZEOF_ARG ) ++/* Note: to keep stack 16 byte aligned we need even number slots ++ used 9 slots here ++*/ ++#define SIZEOF_FRAME ( 10 * FFI_SIZEOF_ARG ) + + #ifdef __GNUC__ + .abicalls +@@ -49,24 +53,25 @@ + .globl ffi_call_N32 + .ent ffi_call_N32 + ffi_call_N32: +-.LFB3: ++.LFB0: + .frame $fp, SIZEOF_FRAME, ra + .mask 0xc0000000,-FFI_SIZEOF_ARG + .fmask 0x00000000,0 + + # Prologue + SUBU $sp, SIZEOF_FRAME # Frame size +-.LCFI0: ++.LCFI00: + REG_S $fp, SIZEOF_FRAME - 2*FFI_SIZEOF_ARG($sp) # Save frame pointer + REG_S ra, SIZEOF_FRAME - 1*FFI_SIZEOF_ARG($sp) # Save return address +-.LCFI1: ++.LCFI01: + move $fp, $sp +-.LCFI3: ++.LCFI02: + move t9, callback # callback function pointer + REG_S bytes, 2*FFI_SIZEOF_ARG($fp) # bytes + REG_S flags, 3*FFI_SIZEOF_ARG($fp) # flags + REG_S raddr, 4*FFI_SIZEOF_ARG($fp) # raddr + REG_S fn, 5*FFI_SIZEOF_ARG($fp) # fn ++ REG_S closure, 6*FFI_SIZEOF_ARG($fp) # closure + + # Allocate at least 4 words in the argstack + move v0, bytes +@@ -198,6 +203,9 @@ callit: + # Load the function pointer + REG_L t9, 5*FFI_SIZEOF_ARG($fp) + ++ # install the static chain(t7=$15) ++ REG_L t7, 6*FFI_SIZEOF_ARG($fp) ++ + # If the return value pointer is NULL, assume no return value. + REG_L t5, 4*FFI_SIZEOF_ARG($fp) + beqz t5, noretval +@@ -346,7 +354,7 @@ epilogue: + ADDU $sp, SIZEOF_FRAME # Fix stack pointer + j ra + +-.LFE3: ++.LFE0: + .end ffi_call_N32 + + /* ffi_closure_N32. Expects address of the passed-in ffi_closure in t0 +@@ -406,6 +414,41 @@ epilogue: + #define GP_OFF2 (0 * FFI_SIZEOF_ARG) + + .align 2 ++ .globl ffi_go_closure_N32 ++ .ent ffi_go_closure_N32 ++ffi_go_closure_N32: ++.LFB1: ++ .frame $sp, SIZEOF_FRAME2, ra ++ .mask 0x90000000,-(SIZEOF_FRAME2 - RA_OFF2) ++ .fmask 0x00000000,0 ++ SUBU $sp, SIZEOF_FRAME2 ++.LCFI10: ++ .cpsetup t9, GP_OFF2, ffi_go_closure_N32 ++ REG_S ra, RA_OFF2($sp) # Save return address ++.LCFI11: ++ ++ REG_S a0, A0_OFF2($sp) ++ REG_S a1, A1_OFF2($sp) ++ REG_S a2, A2_OFF2($sp) ++ REG_S a3, A3_OFF2($sp) ++ REG_S a4, A4_OFF2($sp) ++ REG_S a5, A5_OFF2($sp) ++ ++ # Call ffi_closure_mips_inner_N32 to do the real work. ++ LA t9, ffi_closure_mips_inner_N32 ++ REG_L a0, 8($15) # cif ++ REG_L a1, 16($15) # fun ++ move a2, t7 # userdata=closure ++ ADDU a3, $sp, V0_OFF2 # rvalue ++ ADDU a4, $sp, A0_OFF2 # ar ++ ADDU a5, $sp, F12_OFF2 # fpr ++ ++ b $do_closure ++ ++.LFE1: ++ .end ffi_go_closure_N32 ++ ++ .align 2 + .globl ffi_closure_N32 + .ent ffi_closure_N32 + ffi_closure_N32: +@@ -414,18 +457,29 @@ ffi_closure_N32: + .mask 0x90000000,-(SIZEOF_FRAME2 - RA_OFF2) + .fmask 0x00000000,0 + SUBU $sp, SIZEOF_FRAME2 +-.LCFI5: ++.LCFI20: + .cpsetup t9, GP_OFF2, ffi_closure_N32 + REG_S ra, RA_OFF2($sp) # Save return address +-.LCFI6: +- # Store all possible argument registers. If there are more than +- # fit in registers, then they were stored on the stack. ++.LCFI21: + REG_S a0, A0_OFF2($sp) + REG_S a1, A1_OFF2($sp) + REG_S a2, A2_OFF2($sp) + REG_S a3, A3_OFF2($sp) + REG_S a4, A4_OFF2($sp) + REG_S a5, A5_OFF2($sp) ++ ++ # Call ffi_closure_mips_inner_N32 to do the real work. ++ LA t9, ffi_closure_mips_inner_N32 ++ REG_L a0, 56($12) # cif ++ REG_L a1, 64($12) # fun ++ REG_L a2, 72($12) # user_data ++ ADDU a3, $sp, V0_OFF2 ++ ADDU a4, $sp, A0_OFF2 ++ ADDU a5, $sp, F12_OFF2 ++ ++$do_closure: ++ # Store all possible argument registers. If there are more than ++ # fit in registers, then they were stored on the stack. + REG_S a6, A6_OFF2($sp) + REG_S a7, A7_OFF2($sp) + +@@ -439,12 +493,6 @@ ffi_closure_N32: + s.d $f18, F18_OFF2($sp) + s.d $f19, F19_OFF2($sp) + +- # Call ffi_closure_mips_inner_N32 to do the real work. +- LA t9, ffi_closure_mips_inner_N32 +- move a0, $12 # Pointer to the ffi_closure +- ADDU a1, $sp, V0_OFF2 +- ADDU a2, $sp, A0_OFF2 +- ADDU a3, $sp, F12_OFF2 + jalr t9 + + # Return flags are in v0 +@@ -531,46 +579,66 @@ cls_epilogue: + .align EH_FRAME_ALIGN + .LECIE1: + +-.LSFDE1: +- .4byte .LEFDE1-.LASFDE1 # length. +-.LASFDE1: +- .4byte .LASFDE1-.Lframe1 # CIE_pointer. +- FDE_ADDR_BYTES .LFB3 # initial_location. +- FDE_ADDR_BYTES .LFE3-.LFB3 # address_range. ++.LSFDE0: ++ .4byte .LEFDE0-.LASFDE0 # length. ++.LASFDE0: ++ .4byte .LASFDE0-.Lframe1 # CIE_pointer. ++ FDE_ADDR_BYTES .LFB0 # initial_location. ++ FDE_ADDR_BYTES .LFE0-.LFB0 # address_range. + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte .LCFI0-.LFB3 # to .LCFI0 ++ .4byte .LCFI00-.LFB0 # to .LCFI00 + .byte 0xe # DW_CFA_def_cfa_offset + .uleb128 SIZEOF_FRAME # adjust stack.by SIZEOF_FRAME + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte .LCFI1-.LCFI0 # to .LCFI1 ++ .4byte .LCFI01-.LCFI00 # to .LCFI01 + .byte 0x9e # DW_CFA_offset of $fp + .uleb128 2*FFI_SIZEOF_ARG/4 # + .byte 0x9f # DW_CFA_offset of ra + .uleb128 1*FFI_SIZEOF_ARG/4 # + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte .LCFI3-.LCFI1 # to .LCFI3 ++ .4byte .LCFI02-.LCFI01 # to .LCFI02 + .byte 0xd # DW_CFA_def_cfa_register + .uleb128 0x1e # in $fp + .align EH_FRAME_ALIGN ++.LEFDE0: ++ ++.LSFDE1: ++ .4byte .LEFDE1-.LASFDE1 # length ++.LASFDE1: ++ .4byte .LASFDE1-.Lframe1 # CIE_pointer. ++ FDE_ADDR_BYTES .LFB1 # initial_location. ++ FDE_ADDR_BYTES .LFE1-.LFB1 # address_range. ++ .byte 0x4 # DW_CFA_advance_loc4 ++ .4byte .LCFI10-.LFB1 # to .LCFI10 ++ .byte 0xe # DW_CFA_def_cfa_offset ++ .uleb128 SIZEOF_FRAME2 # adjust stack.by SIZEOF_FRAME ++ .byte 0x4 # DW_CFA_advance_loc4 ++ .4byte .LCFI11-.LCFI10 # to .LCFI11 ++ .byte 0x9c # DW_CFA_offset of $gp ($28) ++ .uleb128 (SIZEOF_FRAME2 - GP_OFF2)/4 ++ .byte 0x9f # DW_CFA_offset of ra ($31) ++ .uleb128 (SIZEOF_FRAME2 - RA_OFF2)/4 ++ .align EH_FRAME_ALIGN + .LEFDE1: +-.LSFDE3: +- .4byte .LEFDE3-.LASFDE3 # length +-.LASFDE3: +- .4byte .LASFDE3-.Lframe1 # CIE_pointer. ++ ++.LSFDE2: ++ .4byte .LEFDE2-.LASFDE2 # length ++.LASFDE2: ++ .4byte .LASFDE2-.Lframe1 # CIE_pointer. + FDE_ADDR_BYTES .LFB2 # initial_location. + FDE_ADDR_BYTES .LFE2-.LFB2 # address_range. + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte .LCFI5-.LFB2 # to .LCFI5 ++ .4byte .LCFI20-.LFB2 # to .LCFI20 + .byte 0xe # DW_CFA_def_cfa_offset + .uleb128 SIZEOF_FRAME2 # adjust stack.by SIZEOF_FRAME + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte .LCFI6-.LCFI5 # to .LCFI6 ++ .4byte .LCFI21-.LCFI20 # to .LCFI21 + .byte 0x9c # DW_CFA_offset of $gp ($28) + .uleb128 (SIZEOF_FRAME2 - GP_OFF2)/4 + .byte 0x9f # DW_CFA_offset of ra ($31) + .uleb128 (SIZEOF_FRAME2 - RA_OFF2)/4 + .align EH_FRAME_ALIGN +-.LEFDE3: ++.LEFDE2: + #endif /* __GNUC__ */ + + #endif +--- a/src/libffi/src/mips/o32.S ++++ b/src/libffi/src/mips/o32.S +@@ -50,14 +50,14 @@ ffi_call_O32: + $LFB0: + # Prologue + SUBU $sp, SIZEOF_FRAME # Frame size +-$LCFI0: ++$LCFI00: + REG_S $fp, FP_OFF($sp) # Save frame pointer +-$LCFI1: ++$LCFI01: + REG_S ra, RA_OFF($sp) # Save return address +-$LCFI2: ++$LCFI02: + move $fp, $sp + +-$LCFI3: ++$LCFI03: + move t9, callback # callback function pointer + REG_S flags, A3_OFF($fp) # flags + +@@ -132,6 +132,9 @@ pass_f_d: + l.d $f14, 2*FFI_SIZEOF_ARG($sp) # passing double and float + + call_it: ++ # Load the static chain pointer ++ REG_L t7, SIZEOF_FRAME + 6*FFI_SIZEOF_ARG($fp) ++ + # Load the function pointer + REG_L t9, SIZEOF_FRAME + 5*FFI_SIZEOF_ARG($fp) + +@@ -204,13 +207,15 @@ $LFE0: + -8 - f14 (le low, be high) + -9 - f12 (le high, be low) + -10 - f12 (le low, be high) +- -11 - Called function a3 save +- -12 - Called function a2 save +- -13 - Called function a1 save +- -14 - Called function a0 save, our sp and fp point here ++ -11 - Called function a5 save ++ -12 - Called function a4 save ++ -13 - Called function a3 save ++ -14 - Called function a2 save ++ -15 - Called function a1 save ++ -16 - Called function a0 save, our sp and fp point here + */ + +-#define SIZEOF_FRAME2 (14 * FFI_SIZEOF_ARG) ++#define SIZEOF_FRAME2 (16 * FFI_SIZEOF_ARG) + #define A3_OFF2 (SIZEOF_FRAME2 + 3 * FFI_SIZEOF_ARG) + #define A2_OFF2 (SIZEOF_FRAME2 + 2 * FFI_SIZEOF_ARG) + #define A1_OFF2 (SIZEOF_FRAME2 + 1 * FFI_SIZEOF_ARG) +@@ -225,13 +230,71 @@ $LFE0: + #define FA_1_0_OFF2 (SIZEOF_FRAME2 - 8 * FFI_SIZEOF_ARG) + #define FA_0_1_OFF2 (SIZEOF_FRAME2 - 9 * FFI_SIZEOF_ARG) + #define FA_0_0_OFF2 (SIZEOF_FRAME2 - 10 * FFI_SIZEOF_ARG) ++#define CALLED_A5_OFF2 (SIZEOF_FRAME2 - 11 * FFI_SIZEOF_ARG) ++#define CALLED_A4_OFF2 (SIZEOF_FRAME2 - 12 * FFI_SIZEOF_ARG) + + .text ++ ++ .align 2 ++ .globl ffi_go_closure_O32 ++ .ent ffi_go_closure_O32 ++ffi_go_closure_O32: ++$LFB1: ++ # Prologue ++ .frame $fp, SIZEOF_FRAME2, ra ++ .set noreorder ++ .cpload t9 ++ .set reorder ++ SUBU $sp, SIZEOF_FRAME2 ++ .cprestore GP_OFF2 ++$LCFI10: ++ ++ REG_S $16, S0_OFF2($sp) # Save s0 ++ REG_S $fp, FP_OFF2($sp) # Save frame pointer ++ REG_S ra, RA_OFF2($sp) # Save return address ++$LCFI11: ++ ++ move $fp, $sp ++$LCFI12: ++ ++ REG_S a0, A0_OFF2($fp) ++ REG_S a1, A1_OFF2($fp) ++ REG_S a2, A2_OFF2($fp) ++ REG_S a3, A3_OFF2($fp) ++ ++ # Load ABI enum to s0 ++ REG_L $16, 4($15) # cif ++ REG_L $16, 0($16) # abi is first member. ++ ++ li $13, 1 # FFI_O32 ++ bne $16, $13, 1f # Skip fp save if FFI_O32_SOFT_FLOAT ++ ++ # Store all possible float/double registers. ++ s.d $f12, FA_0_0_OFF2($fp) ++ s.d $f14, FA_1_0_OFF2($fp) ++1: ++ # prepare arguments for ffi_closure_mips_inner_O32 ++ REG_L a0, 4($15) # cif ++ REG_L a1, 8($15) # fun ++ move a2, $15 # user_data = go closure ++ addu a3, $fp, V0_OFF2 # rvalue ++ ++ addu t9, $fp, A0_OFF2 # ar ++ REG_S t9, CALLED_A4_OFF2($fp) ++ ++ addu t9, $fp, FA_0_0_OFF2 #fpr ++ REG_S t9, CALLED_A5_OFF2($fp) ++ ++ b $do_closure ++ ++$LFE1: ++ .end ffi_go_closure_O32 ++ + .align 2 + .globl ffi_closure_O32 + .ent ffi_closure_O32 + ffi_closure_O32: +-$LFB1: ++$LFB2: + # Prologue + .frame $fp, SIZEOF_FRAME2, ra + .set noreorder +@@ -239,14 +302,14 @@ $LFB1: + .set reorder + SUBU $sp, SIZEOF_FRAME2 + .cprestore GP_OFF2 +-$LCFI4: ++$LCFI20: + REG_S $16, S0_OFF2($sp) # Save s0 + REG_S $fp, FP_OFF2($sp) # Save frame pointer + REG_S ra, RA_OFF2($sp) # Save return address +-$LCFI6: ++$LCFI21: + move $fp, $sp + +-$LCFI7: ++$LCFI22: + # Store all possible argument registers. If there are more than + # four arguments, then they are stored above where we put a3. + REG_S a0, A0_OFF2($fp) +@@ -265,12 +328,21 @@ $LCFI7: + s.d $f12, FA_0_0_OFF2($fp) + s.d $f14, FA_1_0_OFF2($fp) + 1: +- # Call ffi_closure_mips_inner_O32 to do the work. ++ # prepare arguments for ffi_closure_mips_inner_O32 ++ REG_L a0, 20($12) # cif pointer follows tramp. ++ REG_L a1, 24($12) # fun ++ REG_L a2, 28($12) # user_data ++ addu a3, $fp, V0_OFF2 # rvalue ++ ++ addu t9, $fp, A0_OFF2 # ar ++ REG_S t9, CALLED_A4_OFF2($fp) ++ ++ addu t9, $fp, FA_0_0_OFF2 #fpr ++ REG_S t9, CALLED_A5_OFF2($fp) ++ ++$do_closure: + la t9, ffi_closure_mips_inner_O32 +- move a0, $12 # Pointer to the ffi_closure +- addu a1, $fp, V0_OFF2 +- addu a2, $fp, A0_OFF2 +- addu a3, $fp, FA_0_0_OFF2 ++ # Call ffi_closure_mips_inner_O32 to do the work. + jalr t9 + + # Load the return value into the appropriate register. +@@ -300,7 +372,7 @@ closure_done: + REG_L ra, RA_OFF2($sp) # Restore return address + ADDU $sp, SIZEOF_FRAME2 + j ra +-$LFE1: ++$LFE2: + .end ffi_closure_O32 + + /* DWARF-2 unwind info. */ +@@ -322,6 +394,7 @@ $LSCIE0: + .uleb128 0x0 + .align 2 + $LECIE0: ++ + $LSFDE0: + .4byte $LEFDE0-$LASFDE0 # FDE Length + $LASFDE0: +@@ -330,11 +403,11 @@ $LASFDE0: + .4byte $LFE0-$LFB0 # FDE address range + .uleb128 0x0 # Augmentation size + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI0-$LFB0 ++ .4byte $LCFI00-$LFB0 + .byte 0xe # DW_CFA_def_cfa_offset + .uleb128 0x18 + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI2-$LCFI0 ++ .4byte $LCFI01-$LCFI00 + .byte 0x11 # DW_CFA_offset_extended_sf + .uleb128 0x1e # $fp + .sleb128 -2 # SIZEOF_FRAME2 - 2*FFI_SIZEOF_ARG($sp) +@@ -342,12 +415,13 @@ $LASFDE0: + .uleb128 0x1f # $ra + .sleb128 -1 # SIZEOF_FRAME2 - 1*FFI_SIZEOF_ARG($sp) + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI3-$LCFI2 ++ .4byte $LCFI02-$LCFI01 + .byte 0xc # DW_CFA_def_cfa + .uleb128 0x1e + .uleb128 0x18 + .align 2 + $LEFDE0: ++ + $LSFDE1: + .4byte $LEFDE1-$LASFDE1 # FDE Length + $LASFDE1: +@@ -356,11 +430,11 @@ $LASFDE1: + .4byte $LFE1-$LFB1 # FDE address range + .uleb128 0x0 # Augmentation size + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI4-$LFB1 ++ .4byte $LCFI10-$LFB1 + .byte 0xe # DW_CFA_def_cfa_offset +- .uleb128 0x38 ++ .uleb128 SIZEOF_FRAME2 + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI6-$LCFI4 ++ .4byte $LCFI11-$LCFI10 + .byte 0x11 # DW_CFA_offset_extended_sf + .uleb128 0x10 # $16 + .sleb128 -3 # SIZEOF_FRAME2 - 3*FFI_SIZEOF_ARG($sp) +@@ -371,11 +445,41 @@ $LASFDE1: + .uleb128 0x1f # $ra + .sleb128 -1 # SIZEOF_FRAME2 - 1*FFI_SIZEOF_ARG($sp) + .byte 0x4 # DW_CFA_advance_loc4 +- .4byte $LCFI7-$LCFI6 ++ .4byte $LCFI12-$LCFI11 + .byte 0xc # DW_CFA_def_cfa + .uleb128 0x1e +- .uleb128 0x38 ++ .uleb128 SIZEOF_FRAME2 + .align 2 + $LEFDE1: + ++$LSFDE2: ++ .4byte $LEFDE2-$LASFDE2 # FDE Length ++$LASFDE2: ++ .4byte $LASFDE2-$Lframe0 # FDE CIE offset ++ .4byte $LFB2 # FDE initial location ++ .4byte $LFE2-$LFB2 # FDE address range ++ .uleb128 0x0 # Augmentation size ++ .byte 0x4 # DW_CFA_advance_loc4 ++ .4byte $LCFI20-$LFB2 ++ .byte 0xe # DW_CFA_def_cfa_offset ++ .uleb128 SIZEOF_FRAME2 ++ .byte 0x4 # DW_CFA_advance_loc4 ++ .4byte $LCFI21-$LCFI20 ++ .byte 0x11 # DW_CFA_offset_extended_sf ++ .uleb128 0x10 # $16 ++ .sleb128 -3 # SIZEOF_FRAME2 - 3*FFI_SIZEOF_ARG($sp) ++ .byte 0x11 # DW_CFA_offset_extended_sf ++ .uleb128 0x1e # $fp ++ .sleb128 -2 # SIZEOF_FRAME2 - 2*FFI_SIZEOF_ARG($sp) ++ .byte 0x11 # DW_CFA_offset_extended_sf ++ .uleb128 0x1f # $ra ++ .sleb128 -1 # SIZEOF_FRAME2 - 1*FFI_SIZEOF_ARG($sp) ++ .byte 0x4 # DW_CFA_advance_loc4 ++ .4byte $LCFI22-$LCFI21 ++ .byte 0xc # DW_CFA_def_cfa ++ .uleb128 0x1e ++ .uleb128 SIZEOF_FRAME2 ++ .align 2 ++$LEFDE2: ++ + #endif diff --git a/debian/patches/libffi-pax.diff b/debian/patches/libffi-pax.diff new file mode 100644 index 0000000..e8666f8 --- /dev/null +++ b/debian/patches/libffi-pax.diff @@ -0,0 +1,161 @@ +From 757876336c183f5b20b6620d674cc9817fd0d280 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20B=C3=BChler?= +Date: Wed, 7 Sep 2016 15:50:54 +0200 +Subject: [PATCH 2/2] always check for PaX MPROTECT on linux, make EMUTRAMP + experimental + +- ffi_prep_closure_loc doesn't necessarily generate trampolines recognized by + PaX EMUTRAMP handler; there is no way to check before, and it isn't working +on x86-64 right now -> experimental +- if MPROTECT is enabled use the same workaround as is used for SELinux (double + mmap()) +--- + configure.ac | 11 +++++++--- + src/closures.c | 68 +++++++++++++++++++++++++++++++++++++++------------------- + 2 files changed, 54 insertions(+), 25 deletions(-) + +--- a/src/libffi/configure.ac ++++ b/src/libffi/configure.ac +@@ -177,12 +177,17 @@ + ;; + esac + +-# On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC. ++# On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC; ++# if EMUTRAMP is active too ffi could try mapping without PROT_EXEC, ++# but the kernel needs to recognize the trampoline generated by ffi. ++# Otherwise fallback to double mmap trick. + AC_ARG_ENABLE(pax_emutramp, +- [ --enable-pax_emutramp enable pax emulated trampolines, for we can't use PROT_EXEC], ++ [ --enable-pax_emutramp enable pax emulated trampolines (experimental)], + if test "$enable_pax_emutramp" = "yes"; then ++ AC_MSG_WARN([EMUTRAMP is experimental only. Use --enable-pax_emutramp=experimental to enforce.]) ++ elif test "$enable_pax_emutramp" = "experimental"; then + AC_DEFINE(FFI_MMAP_EXEC_EMUTRAMP_PAX, 1, +- [Define this if you want to enable pax emulated trampolines]) ++ [Define this if you want to enable pax emulated trampolines (experimental)]) + fi) + + FFI_EXEC_TRAMPOLINE_TABLE=0 +--- a/src/libffi/src/closures.c ++++ b/src/libffi/src/closures.c +@@ -53,14 +53,18 @@ + # endif + #endif + +-#if FFI_MMAP_EXEC_WRIT && !defined FFI_MMAP_EXEC_SELINUX +-# ifdef __linux__ ++#if FFI_MMAP_EXEC_WRIT && defined __linux__ ++# if !defined FFI_MMAP_EXEC_SELINUX + /* When defined to 1 check for SELinux and if SELinux is active, + don't attempt PROT_EXEC|PROT_WRITE mapping at all, as that + might cause audit messages. */ + # define FFI_MMAP_EXEC_SELINUX 1 +-# endif +-#endif ++# endif /* !defined FFI_MMAP_EXEC_SELINUX */ ++# if !defined FFI_MMAP_PAX ++/* Also check for PaX MPROTECT */ ++# define FFI_MMAP_PAX 1 ++# endif /* !defined FFI_MMAP_PAX */ ++#endif /* FFI_MMAP_EXEC_WRIT && defined __linux__ */ + + #if FFI_CLOSURES + +@@ -172,14 +176,18 @@ + + #endif /* !FFI_MMAP_EXEC_SELINUX */ + +-/* On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC. */ +-#ifdef FFI_MMAP_EXEC_EMUTRAMP_PAX ++/* On PaX enable kernels that have MPROTECT enabled we can't use PROT_EXEC. */ ++#if defined FFI_MMAP_PAX + #include + +-static int emutramp_enabled = -1; ++enum { ++ PAX_MPROTECT = (1 << 0), ++ PAX_EMUTRAMP = (1 << 1), ++}; ++static int cached_pax_flags = -1; + + static int +-emutramp_enabled_check (void) ++pax_flags_check (void) + { + char *buf = NULL; + size_t len = 0; +@@ -193,9 +201,10 @@ + while (getline (&buf, &len, f) != -1) + if (!strncmp (buf, "PaX:", 4)) + { +- char emutramp; +- if (sscanf (buf, "%*s %*c%c", &emutramp) == 1) +- ret = (emutramp == 'E'); ++ if (NULL != strchr (buf + 4, 'M')) ++ ret |= PAX_MPROTECT; ++ if (NULL != strchr (buf + 4, 'E')) ++ ret |= PAX_EMUTRAMP; + break; + } + free (buf); +@@ -203,9 +212,13 @@ + return ret; + } + +-#define is_emutramp_enabled() (emutramp_enabled >= 0 ? emutramp_enabled \ +- : (emutramp_enabled = emutramp_enabled_check ())) +-#endif /* FFI_MMAP_EXEC_EMUTRAMP_PAX */ ++#define get_pax_flags() (cached_pax_flags >= 0 ? cached_pax_flags \ ++ : (cached_pax_flags = pax_flags_check ())) ++#define has_pax_flags(flags) ((flags) == ((flags) & get_pax_flags ())) ++#define is_mprotect_enabled() (has_pax_flags (PAX_MPROTECT)) ++#define is_emutramp_enabled() (has_pax_flags (PAX_EMUTRAMP)) ++ ++#endif /* defined FFI_MMAP_PAX */ + + #elif defined (__CYGWIN__) || defined(__INTERIX) + +@@ -216,9 +229,10 @@ + + #endif /* !defined(X86_WIN32) && !defined(X86_WIN64) */ + +-#ifndef FFI_MMAP_EXEC_EMUTRAMP_PAX +-#define is_emutramp_enabled() 0 +-#endif /* FFI_MMAP_EXEC_EMUTRAMP_PAX */ ++#if !defined FFI_MMAP_PAX ++# define is_mprotect_enabled() 0 ++# define is_emutramp_enabled() 0 ++#endif /* !defined FFI_MMAP_PAX */ + + /* Declare all functions defined in dlmalloc.c as static. */ + static void *dlmalloc(size_t); +@@ -525,13 +539,23 @@ + printf ("mapping in %zi\n", length); + #endif + +- if (execfd == -1 && is_emutramp_enabled ()) ++ /* -1 != execfd hints that we already decided to use dlmmap_locked ++ last time. */ ++ if (execfd == -1 && is_mprotect_enabled ()) + { +- ptr = mmap (start, length, prot & ~PROT_EXEC, flags, fd, offset); +- return ptr; ++#ifdef FFI_MMAP_EXEC_EMUTRAMP_PAX ++ if (is_emutramp_enabled ()) ++ { ++ /* emutramp requires the kernel recognizing the trampoline pattern ++ generated by ffi_prep_closure_loc; there is no way to test ++ in advance whether this will work, so this is experimental. */ ++ ptr = mmap (start, length, prot & ~PROT_EXEC, flags, fd, offset); ++ return ptr; ++ } ++#endif ++ /* fallback to dlmmap_locked. */ + } +- +- if (execfd == -1 && !is_selinux_enabled ()) ++ else if (execfd == -1 && !is_selinux_enabled ()) + { + ptr = mmap (start, length, prot | PROT_EXEC, flags, fd, offset); + diff --git a/debian/patches/libffi-race-condition.diff b/debian/patches/libffi-race-condition.diff new file mode 100644 index 0000000..686ec79 --- /dev/null +++ b/debian/patches/libffi-race-condition.diff @@ -0,0 +1,33 @@ +From 48d2e46528fb6e621d95a7fa194069fd136b712d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Stefan=20B=C3=BChler?= +Date: Wed, 7 Sep 2016 15:49:48 +0200 +Subject: [PATCH 1/2] dlmmap_locked always needs locking as it always modifies + execsize + +--- + src/closures.c | 13 ++++--------- + 1 file changed, 4 insertions(+), 9 deletions(-) + +--- a/src/libffi/src/closures.c ++++ b/src/libffi/src/closures.c +@@ -568,16 +568,11 @@ + MREMAP_DUP and prot at this point. */ + } + +- if (execsize == 0 || execfd == -1) +- { +- pthread_mutex_lock (&open_temp_exec_file_mutex); +- ptr = dlmmap_locked (start, length, prot, flags, offset); +- pthread_mutex_unlock (&open_temp_exec_file_mutex); ++ pthread_mutex_lock (&open_temp_exec_file_mutex); ++ ptr = dlmmap_locked (start, length, prot, flags, offset); ++ pthread_mutex_unlock (&open_temp_exec_file_mutex); + +- return ptr; +- } +- +- return dlmmap_locked (start, length, prot, flags, offset); ++ return ptr; + } + + /* Release memory at the given address, as well as the corresponding diff --git a/debian/patches/libffi-ro-eh_frame_sect.diff b/debian/patches/libffi-ro-eh_frame_sect.diff new file mode 100644 index 0000000..c860143 --- /dev/null +++ b/debian/patches/libffi-ro-eh_frame_sect.diff @@ -0,0 +1,15 @@ +# DP: PR libffi/47248, force a read only eh frame section. + +Index: b/src/libffi/configure.ac +=================================================================== +--- a/src/libffi/configure.ac ++++ b/src/libffi/configure.ac +@@ -275,6 +275,8 @@ if test "x$GCC" = "xyes"; then + libffi_cv_hidden_visibility_attribute=yes + fi + fi ++ # FIXME: see PR libffi/47248 ++ libffi_cv_ro_eh_frame=yes + rm -f conftest.* + ]) + if test $libffi_cv_hidden_visibility_attribute = yes; then diff --git a/debian/patches/libgo-revert-timeout-exp.diff b/debian/patches/libgo-revert-timeout-exp.diff new file mode 100644 index 0000000..b74eaed --- /dev/null +++ b/debian/patches/libgo-revert-timeout-exp.diff @@ -0,0 +1,12 @@ +Index: b/src/libgo/testsuite/lib/libgo.exp +=================================================================== +--- a/src/libgo/testsuite/lib/libgo.exp ++++ b/src/libgo/testsuite/lib/libgo.exp +@@ -46,7 +46,6 @@ load_gcc_lib wrapper.exp + load_gcc_lib target-supports.exp + load_gcc_lib target-utils.exp + load_gcc_lib gcc-defs.exp +-load_gcc_lib timeout.exp + load_gcc_lib go.exp + + proc libgo_init { args } { diff --git a/debian/patches/libgo-s390x-default-isa.diff b/debian/patches/libgo-s390x-default-isa.diff new file mode 100644 index 0000000..944a17a --- /dev/null +++ b/debian/patches/libgo-s390x-default-isa.diff @@ -0,0 +1,11 @@ +--- a/src/libgo/go/cmd/go/build.go ++++ b/src/libgo/go/cmd/go/build.go +@@ -3276,7 +3276,7 @@ + case "arm": + return []string{"-marm"} // not thumb + case "s390x": +- return []string{"-m64", "-march=z196"} ++ return []string{"-m64"} + case "mips64", "mips64le": + return []string{"-mabi=64"} + case "mips", "mipsle": diff --git a/debian/patches/libgo-setcontext-config.diff b/debian/patches/libgo-setcontext-config.diff new file mode 100644 index 0000000..64e0042 --- /dev/null +++ b/debian/patches/libgo-setcontext-config.diff @@ -0,0 +1,21 @@ +# DP: libgo: Overwrite the setcontext_clobbers_tls check on mips* + +Index: b/src/libgo/configure.ac +=================================================================== +--- a/src/libgo/configure.ac ++++ b/src/libgo/configure.ac +@@ -843,6 +843,14 @@ main () + CFLAGS="$CFLAGS_hold" + LIBS="$LIBS_hold" + ]) ++dnl overwrite for the mips* 64bit multilibs, fails on some buildds ++if test "$libgo_cv_lib_setcontext_clobbers_tls" = "yes"; then ++ case "$target" in ++ mips*-linux-*) ++ AC_MSG_WARN([FIXME: overwrite setcontext_clobbers_tls for $target:$ptr_type_size]) ++ libgo_cv_lib_setcontext_clobbers_tls=no ;; ++ esac ++fi + if test "$libgo_cv_lib_setcontext_clobbers_tls" = "yes"; then + AC_DEFINE(SETCONTEXT_CLOBBERS_TLS, 1, + [Define if setcontext clobbers TLS variables]) diff --git a/debian/patches/libgo-testsuite.diff b/debian/patches/libgo-testsuite.diff new file mode 100644 index 0000000..7f5584d --- /dev/null +++ b/debian/patches/libgo-testsuite.diff @@ -0,0 +1,38 @@ +# DP: Only run the libgo testsuite for flags configured in RUNTESTFLAGS + +Index: b/src/libgo/Makefile.am +=================================================================== +--- a/src/libgo/Makefile.am ++++ b/src/libgo/Makefile.am +@@ -948,7 +948,12 @@ CHECK = \ + $(MKDIR_P) $(@D); \ + rm -f $@-testsum $@-testlog; \ + files=`$(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/$(@D) --extrafiles="$(extra_go_files_$(subst /,_,$(@D)))" $(matchargs_$(subst /,_,$(@D)))`; \ +- if test "$(USE_DEJAGNU)" = "yes"; then \ ++ run_check=yes; \ ++ MULTILIBDIR="$(MULTILIBDIR)"; \ ++ case "$$MULTILIBDIR" in /64|/x32) \ ++ echo "$$RUNTESTFLAGS" | grep -q "$${MULTILIBDIR\#/*}" || run_check=; \ ++ esac; \ ++ if test "$$run_check" = "yes"; then \ + $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --testname="$(@D)" $(GOTESTFLAGS); \ + elif test "$(GOBENCH)" != ""; then \ + $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --bench="$(GOBENCH)" $(GOTESTFLAGS); \ +Index: b/src/libgo/Makefile.in +=================================================================== +--- a/src/libgo/Makefile.in ++++ b/src/libgo/Makefile.in +@@ -1104,7 +1104,12 @@ CHECK = \ + $(MKDIR_P) $(@D); \ + rm -f $@-testsum $@-testlog; \ + files=`$(SHELL) $(srcdir)/match.sh --goarch=$(GOARCH) --goos=$(GOOS) --srcdir=$(srcdir)/go/$(@D) --extrafiles="$(extra_go_files_$(subst /,_,$(@D)))" $(matchargs_$(subst /,_,$(@D)))`; \ +- if test "$(USE_DEJAGNU)" = "yes"; then \ ++ run_check=yes; \ ++ MULTILIBDIR="$(MULTILIBDIR)"; \ ++ case "$$MULTILIBDIR" in /64|/x32) \ ++ echo "$$RUNTESTFLAGS" | grep -q "$${MULTILIBDIR\#/*}" || run_check=; \ ++ esac; \ ++ if test "$$run_check" = "yes"; then \ + $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --dejagnu=yes --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --testname="$(@D)" $(GOTESTFLAGS); \ + elif test "$(GOBENCH)" != ""; then \ + $(SHELL) $(srcdir)/testsuite/gotest --goarch=$(GOARCH) --goos=$(GOOS) --basedir=$(srcdir) --srcdir=$(srcdir)/go/$(@D) --pkgpath="$(@D)" --pkgfiles="$$files" --bench="$(GOBENCH)" $(GOTESTFLAGS); \ diff --git a/debian/patches/libgomp-kfreebsd-testsuite.diff b/debian/patches/libgomp-kfreebsd-testsuite.diff new file mode 100644 index 0000000..acac273 --- /dev/null +++ b/debian/patches/libgomp-kfreebsd-testsuite.diff @@ -0,0 +1,16 @@ +# DP: Disable lock-2.c test on kfreebsd-* + +Index: b/src/libgomp/testsuite/libgomp.c/lock-2.c +=================================================================== +--- a/src/libgomp/testsuite/libgomp.c/lock-2.c ++++ b/src/libgomp/testsuite/libgomp.c/lock-2.c +@@ -4,6 +4,9 @@ + int + main (void) + { ++#ifdef __FreeBSD_kernel__ ++ return 1; ++#endif + int l = 0; + omp_nest_lock_t lock; + omp_init_nest_lock (&lock); diff --git a/debian/patches/libgomp-omp_h-multilib.diff b/debian/patches/libgomp-omp_h-multilib.diff new file mode 100644 index 0000000..e93f55b --- /dev/null +++ b/debian/patches/libgomp-omp_h-multilib.diff @@ -0,0 +1,28 @@ +# DP: Fix up omp.h for multilibs. + +2008-06-09 Jakub Jelinek + + * omp.h.in (omp_nest_lock_t): Fix up for Linux multilibs. + +2015-03-25 Matthias Klose + + * omp.h.in (omp_nest_lock_t): Limit the fix Linux. + +Index: b/src/libgomp/omp.h.in +=================================================================== +--- a/src/libgomp/omp.h.in ++++ b/src/libgomp/omp.h.in +@@ -40,8 +40,13 @@ typedef struct + + typedef struct + { ++#if defined(__linux__) ++ unsigned char _x[8 + sizeof (void *)] ++ __attribute__((__aligned__(sizeof (void *)))); ++#else + unsigned char _x[@OMP_NEST_LOCK_SIZE@] + __attribute__((__aligned__(@OMP_NEST_LOCK_ALIGN@))); ++#endif + } omp_nest_lock_t; + #endif + diff --git a/debian/patches/libitm-no-fortify-source.diff b/debian/patches/libitm-no-fortify-source.diff new file mode 100644 index 0000000..8f15964 --- /dev/null +++ b/debian/patches/libitm-no-fortify-source.diff @@ -0,0 +1,19 @@ +# DP: Build libitm with -U_FORTIFY_SOURCE on x86 and x86_64. + +Index: b/src/libitm/configure.tgt +=================================================================== +--- a/src/libitm/configure.tgt ++++ b/src/libitm/configure.tgt +@@ -119,6 +119,12 @@ case "${target_cpu}" in + ;; + esac + ++# FIXME: ftbfs with -D_FORTIFY_SOURCE (error: invalid use of '__builtin_va_arg_pack ()) ++case "${target}" in ++ *-*-linux*) ++ XCFLAGS="${XCFLAGS} -U_FORTIFY_SOURCE" ++esac ++ + # For the benefit of top-level configure, determine if the cpu is supported. + test -d ${srcdir}/config/$ARCH || UNSUPPORTED=1 + diff --git a/debian/patches/libjit-ldflags.diff b/debian/patches/libjit-ldflags.diff new file mode 100644 index 0000000..0473867 --- /dev/null +++ b/debian/patches/libjit-ldflags.diff @@ -0,0 +1,13 @@ +Index: b/src/gcc/jit/Make-lang.in +=================================================================== +--- a/src/gcc/jit/Make-lang.in ++++ b/src/gcc/jit/Make-lang.in +@@ -86,7 +86,7 @@ $(LIBGCCJIT_FILENAME): $(jit_OBJS) \ + $(CPPLIB) $(LIBDECNUMBER) $(LIBS) $(BACKENDLIBS) \ + $(EXTRA_GCC_OBJS) \ + -Wl,--version-script=$(srcdir)/jit/libgccjit.map \ +- -Wl,-soname,$(LIBGCCJIT_SONAME) ++ -Wl,-soname,$(LIBGCCJIT_SONAME) $(LDFLAGS) + + $(LIBGCCJIT_SONAME_SYMLINK): $(LIBGCCJIT_FILENAME) + ln -sf $(LIBGCCJIT_FILENAME) $(LIBGCCJIT_SONAME_SYMLINK) diff --git a/debian/patches/libphobos-zlib.diff b/debian/patches/libphobos-zlib.diff new file mode 100644 index 0000000..1aa8282 --- /dev/null +++ b/debian/patches/libphobos-zlib.diff @@ -0,0 +1,74 @@ +# DP: Build zlib in any case to have a fall back for missing libz multilibs + +Index: b/src/libphobos/configure.ac +=================================================================== +--- a/src/libphobos/configure.ac ++++ b/src/libphobos/configure.ac +@@ -104,6 +104,7 @@ WITH_LOCAL_DRUNTIME([ + + DRUNTIME_LIBBACKTRACE_SETUP + DRUNTIME_INSTALL_DIRECTORIES ++dnl fake change to regenerate the configure file + + # Add dependencies for libgphobos.spec file + LIBS="$LIBS $LIBADD_DLOPEN" +Index: b/src/libphobos/m4/druntime/libraries.m4 +=================================================================== +--- a/src/libphobos/m4/druntime/libraries.m4 ++++ b/src/libphobos/m4/druntime/libraries.m4 +@@ -39,18 +39,44 @@ AC_DEFUN([DRUNTIME_LIBRARIES_ZLIB], + [ + AC_ARG_WITH(target-system-zlib, + AS_HELP_STRING([--with-target-system-zlib], +- [use installed libz (default: no)])) ++ [use installed libz (default: no)]), ++ [system_zlib=yes],[system_zlib=no]) + +- system_zlib=false +- AS_IF([test "x$with_target_system_zlib" = "xyes"], [ +- AC_CHECK_LIB([z], [deflate], [ +- system_zlib=yes +- ], [ +- AC_MSG_ERROR([System zlib not found])]) +- ], [ +- AC_MSG_CHECKING([for zlib]) +- AC_MSG_RESULT([just compiled]) +- ]) ++ AC_MSG_CHECKING([for system zlib]) ++ save_LIBS=$LIBS ++ LIBS="$LIBS -lz" ++ dnl the link test is not good enough for ARM32 multilib detection, ++ dnl first check to link, then to run ++ AC_LANG_PUSH(C) ++ AC_LINK_IFELSE( ++ [AC_LANG_PROGRAM([#include ],[gzopen("none", "rb")])], ++ [ ++ AC_RUN_IFELSE([AC_LANG_SOURCE([[ ++ #include ++ int main() { ++ gzFile file = gzopen("none", "rb"); ++ return 0; ++ } ++ ]])], ++ [system_zlib_found=yes], ++ [system_zlib_found=no], ++ dnl no system zlib for cross builds ... ++ [system_zlib_found=no] ++ ) ++ ], ++ [system_zlib_found=no]) ++ LIBS=$save_LIBS ++ if test x$system_zlib = xyes; then ++ if test x$system_zlib_found = xyes; then ++ AC_MSG_RESULT([found]) ++ else ++ AC_MSG_RESULT([not found, disabled]) ++ system_zlib=no ++ fi ++ else ++ AC_MSG_RESULT([not enabled]) ++ fi ++ AC_LANG_POP + + AM_CONDITIONAL([DRUNTIME_ZLIB_SYSTEM], [test "$with_target_system_zlib" = yes]) + ]) diff --git a/debian/patches/libstdc++-doclink.diff b/debian/patches/libstdc++-doclink.diff new file mode 100644 index 0000000..c402fc9 --- /dev/null +++ b/debian/patches/libstdc++-doclink.diff @@ -0,0 +1,75 @@ +# DP: adjust hrefs to point to the local documentation + +--- + libstdc++-v3/doc/doxygen/mainpage.html | 10 +++++----- + 1 files changed, 5 insertions(+), 5 deletions(-) + +Index: b/src/libstdc++-v3/doc/doxygen/mainpage.html +=================================================================== +--- a/src/libstdc++-v3/doc/doxygen/mainpage.html ++++ b/src/libstdc++-v3/doc/doxygen/mainpage.html +@@ -27,10 +27,10 @@ +

Generated on @DATE@.

+ +

There are two types of documentation for libstdc++. One is the +- distribution documentation, which can be read online +- here +- or offline from the file doc/html/index.html in the library source +- directory. ++ distribution documentation, which can be read ++ offline in the documentation directory ++ or ++ online. +

+ +

The other type is the source documentation, of which this is the first page. +@@ -81,9 +81,10 @@ + This style guide can also be viewed on the web. + +

License, Copyright, and Other Lawyerly Verbosity

+-

The libstdc++ documentation is released under +- +- these terms. ++

The libstdc++ documentation is released under these terms ++ (read offline or ++ read online. ++ ). +

+

Part of the generated documentation involved comments and notes from + SGI, who says we gotta say this: +Index: b/src/libstdc++-v3/doc/html/api.html +=================================================================== +--- a/src/libstdc++-v3/doc/html/api.html ++++ b/src/libstdc++-v3/doc/html/api.html +@@ -20,6 +20,8 @@ + member functions for the library classes, finding out what is in a + particular include file, looking at inheritance diagrams, etc. +

++The API documentation, rendered into HTML, can be viewed offline. ++

+ The API documentation, rendered into HTML, can be viewed online + for each GCC release + and +@@ -38,4 +40,4 @@ +

+ In addition, a rendered set of man pages are available in the same + location specified above. Start with C++Intro(3). +-

+\ No newline at end of file ++

+Index: b/src/libstdc++-v3/doc/xml/api.xml +=================================================================== +--- a/src/libstdc++-v3/doc/xml/api.xml ++++ b/src/libstdc++-v3/doc/xml/api.xml +@@ -40,6 +40,11 @@ + + + ++ The source-level documentation for this release can be viewed offline. ++ ++ ++ ++ + The API documentation, rendered into HTML, can be viewed online + for each GCC release + and diff --git a/debian/patches/libstdc++-man-3cxx.diff b/debian/patches/libstdc++-man-3cxx.diff new file mode 100644 index 0000000..de2e36b --- /dev/null +++ b/debian/patches/libstdc++-man-3cxx.diff @@ -0,0 +1,67 @@ +# DP: Install libstdc++ man pages with suffix .3cxx instead of .3 + +Index: b/src/libstdc++-v3/doc/doxygen/user.cfg.in +=================================================================== +--- a/src/libstdc++-v3/doc/doxygen/user.cfg.in ++++ b/src/libstdc++-v3/doc/doxygen/user.cfg.in +@@ -1968,7 +1968,7 @@ MAN_OUTPUT = man + # The default value is: .3. + # This tag requires that the tag GENERATE_MAN is set to YES. + +-MAN_EXTENSION = .3 ++MAN_EXTENSION = .3cxx + + # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it + # will generate one additional man file for each entity documented in the real +Index: b/src/libstdc++-v3/scripts/run_doxygen +=================================================================== +--- a/src/libstdc++-v3/scripts/run_doxygen ++++ b/src/libstdc++-v3/scripts/run_doxygen +@@ -243,6 +243,9 @@ fi + if $do_man; then + echo :: + echo :: Fixing up the man pages... ++mkdir -p $outdir/man/man3 ++mv $outdir/man/man3cxx/* $outdir/man/man3/ ++rmdir $outdir/man/man3cxx + cd $outdir/man/man3 + + # File names with embedded spaces (EVIL!) need to be....? renamed or removed? +@@ -264,7 +267,7 @@ rm -f *.h.3 *.hpp.3 *config* *.cc.3 *.tc + # and I'm off getting coffee then anyhow, so I didn't care enough to make + # this super-fast. + g++ ${srcdir}/doc/doxygen/stdheader.cc -o ./stdheader +-problematic=`egrep -l '#include <.*_.*>' [a-z]*.3` ++problematic=`egrep -l '#include <.*_.*>' [a-z]*.3 [a-z]*.3cxx` + for f in $problematic; do + # this is also slow, but safe and easy to debug + oldh=`sed -n '/fC#include .*/\1/p' $f` +@@ -277,7 +280,7 @@ rm stdheader + # Some of the pages for generated modules have text that confuses certain + # implementations of man(1), e.g. on GNU/Linux. We need to have another + # top-level *roff tag to /stop/ the .SH NAME entry. +-problematic=`egrep --files-without-match '^\.SH SYNOPSIS' [A-Z]*.3` ++problematic=`egrep --files-without-match '^\.SH SYNOPSIS' [A-Z]*.3cxx` + #problematic='Containers.3 Sequences.3 Assoc_containers.3 Iterator_types.3' + + for f in $problematic; do +@@ -291,7 +294,7 @@ a\ + done + + # Also, break this (generated) line up. It's ugly as sin. +-problematic=`grep -l '[^^]Definition at line' *.3` ++problematic=`grep -l '[^^]Definition at line' *.3 *.3cxx` + for f in $problematic; do + sed 's/Definition at line/\ + .PP\ +@@ -408,8 +411,8 @@ for f in ios streambuf istream ostream i + istringstream ostringstream stringstream filebuf ifstream \ + ofstream fstream string; + do +- echo ".so man3/std::basic_${f}.3" > std::${f}.3 +- echo ".so man3/std::basic_${f}.3" > std::w${f}.3 ++ echo ".so man3/std::basic_${f}.3cxx" > std::${f}.3cxx ++ echo ".so man3/std::basic_${f}.3cxx" > std::w${f}.3cxx + done + + echo :: diff --git a/debian/patches/libstdc++-no-testsuite.diff b/debian/patches/libstdc++-no-testsuite.diff new file mode 100644 index 0000000..771bf7a --- /dev/null +++ b/debian/patches/libstdc++-no-testsuite.diff @@ -0,0 +1,12 @@ +# DP: Don't run the libstdc++ testsuite on arm, hppa and mipsel (timeouts on the buildds) + +--- a/src/libstdc++-v3/testsuite/Makefile.in ++++ b/src/libstdc++-v3/testsuite/Makefile.in +@@ -567,6 +567,7 @@ + + # Run the testsuite in normal mode. + check-DEJAGNU $(check_DEJAGNU_normal_targets): check-DEJAGNU%: site.exp ++ case "$(target)" in arm*|hppa*|mipsel*) exit 0;; esac; \ + $(if $*,@)AR="$(AR)"; export AR; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + if [ -z "$*" ] && [ "$(filter -j, $(MFLAGS))" = "-j" ]; then \ diff --git a/debian/patches/libstdc++-nothumb-check.diff b/debian/patches/libstdc++-nothumb-check.diff new file mode 100644 index 0000000..6c665a2 --- /dev/null +++ b/debian/patches/libstdc++-nothumb-check.diff @@ -0,0 +1,38 @@ +# DP: Don't run the libstdc++-v3 testsuite in thumb mode on armel + +Index: testsuite/Makefile.in +=================================================================== +--- a/src/libstdc++-v3/testsuite/Makefile.in (revision 156820) ++++ b/src/libstdc++-v3/testsuite/Makefile.in (working copy) +@@ -583,6 +583,8 @@ + srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \ + EXPECT=$(EXPECT); export EXPECT; \ + runtest=$(RUNTEST); \ ++ runtestflags="`echo '$(RUNTESTFLAGS)' | sed 's/,-marm/-marm/'`"; \ ++ case "$$runtestflags" in *\\{\\}) runtestflags=; esac; \ + if [ -z "$$runtest" ]; then runtest=runtest; fi; \ + tool=libstdc++; \ + dirs=; \ +@@ -590,7 +592,7 @@ + normal0) \ + if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ + $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) \ +- $(RUNTESTFLAGS) abi.exp; \ ++ $$runtestflags abi.exp; \ + else echo "WARNING: could not find \`runtest'" 1>&2; :;\ + fi; \ + dirs="`cd $$srcdir; echo [013-9][0-9]_*/* [abep]*/*`";; \ +@@ -605,11 +607,11 @@ + if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ + if [ -n "$$dirs" ]; then \ + $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) \ +- $(RUNTESTFLAGS) \ ++ $$runtestflags \ + "conformance.exp=`echo $$dirs | sed 's/ /* /g;s/$$/*/'`"; \ + else \ + $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) \ +- $(RUNTESTFLAGS); \ ++ $$runtestflags; \ + fi; \ + else echo "WARNING: could not find \`runtest'" 1>&2; :;\ + fi diff --git a/debian/patches/libstdc++-pic.diff b/debian/patches/libstdc++-pic.diff new file mode 100644 index 0000000..3a3c89e --- /dev/null +++ b/debian/patches/libstdc++-pic.diff @@ -0,0 +1,95 @@ +# DP: Build and install libstdc++_pic.a library. + +Index: b/src/libstdc++-v3/src/Makefile.am +=================================================================== +--- a/src/libstdc++-v3/src/Makefile.am ++++ b/src/libstdc++-v3/src/Makefile.am +@@ -311,10 +311,12 @@ if GLIBCXX_BUILD_DEBUG + STAMP_DEBUG = build-debug + STAMP_INSTALL_DEBUG = install-debug + CLEAN_DEBUG = debug ++STAMP_INSTALL_PIC = install-pic + else + STAMP_DEBUG = + STAMP_INSTALL_DEBUG = + CLEAN_DEBUG = ++STAMP_INSTALL_PIC = + endif + + # Build a debug variant. +@@ -349,6 +351,7 @@ build-debug: stamp-debug + mv Makefile Makefile.tmp; \ + sed -e 's,all-local: all-once,all-local:,' \ + -e 's,install-data-local: install-data-once,install-data-local:,' \ ++ -e 's,install-exec-local:.*,install-exec-local:,' \ + -e '/vpath/!s,src/c,src/debug/c,' \ + < Makefile.tmp > Makefile ; \ + rm -f Makefile.tmp ; \ +@@ -359,3 +362,8 @@ build-debug: stamp-debug + install-debug: build-debug + (cd ${debugdir} && $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \ + toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) ; ++ ++install-exec-local: $(STAMP_INSTALL_PIC) ++$(STAMP_INSTALL_PIC): ++ $(MKDIR_P) $(DESTDIR)$(toolexeclibdir) ++ $(INSTALL_DATA) .libs/libstdc++convenience.a $(DESTDIR)$(toolexeclibdir)/libstdc++_pic.a +Index: b/src/libstdc++-v3/src/Makefile.in +=================================================================== +--- a/src/libstdc++-v3/src/Makefile.in ++++ b/src/libstdc++-v3/src/Makefile.in +@@ -534,6 +534,8 @@ CXXLINK = \ + @GLIBCXX_BUILD_DEBUG_TRUE@STAMP_INSTALL_DEBUG = install-debug + @GLIBCXX_BUILD_DEBUG_FALSE@CLEAN_DEBUG = + @GLIBCXX_BUILD_DEBUG_TRUE@CLEAN_DEBUG = debug ++@GLIBCXX_BUILD_DEBUG_FALSE@STAMP_INSTALL_PIC = ++@GLIBCXX_BUILD_DEBUG_TRUE@STAMP_INSTALL_PIC = install-pic + + # Build a debug variant. + # Take care to fix all possibly-relative paths. +@@ -832,7 +834,7 @@ install-dvi: install-dvi-recursive + + install-dvi-am: + +-install-exec-am: install-toolexeclibLTLIBRARIES ++install-exec-am: install-exec-local install-toolexeclibLTLIBRARIES + + install-html: install-html-recursive + +@@ -883,11 +885,11 @@ uninstall-am: uninstall-toolexeclibLTLIB + distclean-libtool distclean-tags dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ + install-data-local install-dvi install-dvi-am install-exec \ +- install-exec-am install-html install-html-am install-info \ +- install-info-am install-man install-pdf install-pdf-am \ +- install-ps install-ps-am install-strip \ +- install-toolexeclibLTLIBRARIES installcheck installcheck-am \ +- installdirs installdirs-am maintainer-clean \ ++ install-exec-am install-exec-local install-html \ ++ install-html-am install-info install-info-am install-man \ ++ install-pdf install-pdf-am install-ps install-ps-am \ ++ install-strip install-toolexeclibLTLIBRARIES installcheck \ ++ installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am \ +@@ -1020,6 +1022,7 @@ build-debug: stamp-debug + mv Makefile Makefile.tmp; \ + sed -e 's,all-local: all-once,all-local:,' \ + -e 's,install-data-local: install-data-once,install-data-local:,' \ ++ -e 's,install-exec-local:.*,install-exec-local:,' \ + -e '/vpath/!s,src/c,src/debug/c,' \ + < Makefile.tmp > Makefile ; \ + rm -f Makefile.tmp ; \ +@@ -1031,6 +1034,11 @@ install-debug: build-debug + (cd ${debugdir} && $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \ + toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install) ; + ++install-exec-local: $(STAMP_INSTALL_PIC) ++$(STAMP_INSTALL_PIC): ++ $(MKDIR_P) $(DESTDIR)$(toolexeclibdir) ++ $(INSTALL_DATA) .libs/libstdc++convenience.a $(DESTDIR)$(toolexeclibdir)/libstdc++_pic.a ++ + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: diff --git a/debian/patches/libstdc++-test-installed.diff b/debian/patches/libstdc++-test-installed.diff new file mode 100644 index 0000000..b73e8a8 --- /dev/null +++ b/debian/patches/libstdc++-test-installed.diff @@ -0,0 +1,78 @@ +# DP: Add support to run the libstdc++-v3 testsuite using the +# DP: installed shared libraries. + +Index: b/src/libstdc++-v3/testsuite/lib/libstdc++.exp +=================================================================== +--- a/src/libstdc++-v3/testsuite/lib/libstdc++.exp ++++ b/src/libstdc++-v3/testsuite/lib/libstdc++.exp +@@ -37,6 +37,12 @@ + # the last thing before testing begins. This can be defined in, e.g., + # ~/.dejagnurc or $DEJAGNU. + ++set test_installed 0 ++if [info exists env(TEST_INSTALLED)] { ++ verbose -log "test installed libstdc++-v3" ++ set test_installed 1 ++} ++ + proc load_gcc_lib { filename } { + global srcdir loaded_libs + +@@ -101,6 +107,7 @@ proc libstdc++_init { testfile } { + global tool_timeout + global DEFAULT_CXXFLAGS + global STATIC_LIBCXXFLAGS ++ global test_installed + + # We set LC_ALL and LANG to C so that we get the same error + # messages as expected. +@@ -120,6 +127,9 @@ proc libstdc++_init { testfile } { + + set blddir [lookfor_file [get_multilibs] libstdc++-v3] + set flags_file "${blddir}/scripts/testsuite_flags" ++ if {$test_installed} { ++ set flags_file "${blddir}/scripts/testsuite_flags.installed" ++ } + set shlib_ext [get_shlib_extension] + v3track flags_file 2 + +@@ -154,7 +164,11 @@ proc libstdc++_init { testfile } { + + # Locate libgcc.a so we don't need to account for different values of + # SHLIB_EXT on different platforms +- set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a] ++ if {$test_installed} { ++ set gccdir "" ++ } else { ++ set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a] ++ } + if {$gccdir != ""} { + set gccdir [file dirname $gccdir] + append ld_library_path_tmp ":${gccdir}" +@@ -163,7 +177,11 @@ proc libstdc++_init { testfile } { + + # Locate libgomp. This is only required for parallel mode. + set v3-libgomp 0 +- set libgompdir [lookfor_file $blddir/../libgomp .libs/libgomp.$shlib_ext] ++ if {$test_installed} { ++ set libgompdir "" ++ } else { ++ set libgompdir [lookfor_file $blddir/../libgomp .libs/libgomp.$shlib_ext] ++ } + if {$libgompdir != ""} { + set v3-libgomp 1 + set libgompdir [file dirname $libgompdir] +@@ -185,7 +203,12 @@ proc libstdc++_init { testfile } { + + # Locate libstdc++ shared library. (ie libstdc++.so.) + set v3-sharedlib 0 +- set sharedlibdir [lookfor_file $blddir src/.libs/libstdc++.$shlib_ext] ++ if {$test_installed} { ++ set sharedlibdir "" ++ set v3-sharedlib 1 ++ } else { ++ set sharedlibdir [lookfor_file $blddir src/.libs/libstdc++.$shlib_ext] ++ } + if {$sharedlibdir != ""} { + if { ([string match "*-*-gnu*" $target_triplet] + || [string match "*-*-linux*" $target_triplet] diff --git a/debian/patches/linaro-issue2575.diff b/debian/patches/linaro-issue2575.diff new file mode 100644 index 0000000..97bf780 --- /dev/null +++ b/debian/patches/linaro-issue2575.diff @@ -0,0 +1,16 @@ +# DP: Fix ICE in tree_to_shwi, Linaro issue #2575. + +--- a/src/gcc/varasm.c ++++ b/src/gcc/varasm.c +@@ -6777,8 +6777,9 @@ + anchor range to reduce the amount of instructions require to refer + to the entire declaration. */ + if (decl && DECL_SIZE (decl) +- && tree_to_shwi (DECL_SIZE (decl)) +- >= (targetm.max_anchor_offset * BITS_PER_UNIT)) ++ && (!tree_fits_shwi_p (DECL_SIZE (decl)) ++ || tree_to_shwi (DECL_SIZE (decl)) ++ >= (targetm.max_anchor_offset * BITS_PER_UNIT))) + return false; + + } diff --git a/debian/patches/note-gnu-stack.diff b/debian/patches/note-gnu-stack.diff new file mode 100644 index 0000000..866895b --- /dev/null +++ b/debian/patches/note-gnu-stack.diff @@ -0,0 +1,139 @@ +# DP: Add .note.GNU-stack sections for gcc's crt files, libffi and boehm-gc +# DP: Taken from FC. + +gcc/ + +2004-09-20 Jakub Jelinek + + * config/rs6000/ppc-asm.h: Add .note.GNU-stack section also + on ppc64-linux. + + * config/ia64/lib1funcs.asm: Add .note.GNU-stack section on + ia64-linux. + * config/ia64/crtbegin.asm: Likewise. + * config/ia64/crtend.asm: Likewise. + * config/ia64/crti.asm: Likewise. + * config/ia64/crtn.asm: Likewise. + +2004-05-14 Jakub Jelinek + + * config/ia64/linux.h (TARGET_ASM_FILE_END): Define. + +libffi/ + +2007-05-11 Daniel Jacobowitz + + * src/arm/sysv.S: Fix ARM comment marker. + +2005-02-08 Jakub Jelinek + + * src/alpha/osf.S: Add .note.GNU-stack on Linux. + * src/s390/sysv.S: Likewise. + * src/powerpc/linux64.S: Likewise. + * src/powerpc/linux64_closure.S: Likewise. + * src/powerpc/ppc_closure.S: Likewise. + * src/powerpc/sysv.S: Likewise. + * src/x86/unix64.S: Likewise. + * src/x86/sysv.S: Likewise. + * src/sparc/v8.S: Likewise. + * src/sparc/v9.S: Likewise. + * src/m68k/sysv.S: Likewise. + * src/ia64/unix.S: Likewise. + * src/arm/sysv.S: Likewise. + +--- + gcc/config/ia64/linux.h | 3 +++ + gcc/config/rs6000/ppc-asm.h | 2 +- + libgcc/config/ia64/crtbegin.S | 4 ++++ + libgcc/config/ia64/crtend.S | 4 ++++ + libgcc/config/ia64/crti.S | 4 ++++ + libgcc/config/ia64/crtn.S | 4 ++++ + libgcc/config/ia64/lib1funcs.S | 4 ++++ + 9 files changed, 39 insertions(+), 13 deletions(-) + +Index: b/src/libgcc/config/ia64/crtbegin.S +=================================================================== +--- a/src/libgcc/config/ia64/crtbegin.S ++++ b/src/libgcc/config/ia64/crtbegin.S +@@ -185,3 +185,7 @@ __do_global_dtors_aux: + .weak __cxa_finalize + #endif + .weak _Jv_RegisterClasses ++ ++#ifdef __linux__ ++.section .note.GNU-stack; .previous ++#endif +Index: b/src/libgcc/config/ia64/crtend.S +=================================================================== +--- a/src/libgcc/config/ia64/crtend.S ++++ b/src/libgcc/config/ia64/crtend.S +@@ -114,3 +114,7 @@ __do_global_ctors_aux: + + br.ret.sptk.many rp + .endp __do_global_ctors_aux ++ ++#ifdef __linux__ ++.section .note.GNU-stack; .previous ++#endif +Index: b/src/libgcc/config/ia64/crti.S +=================================================================== +--- a/src/libgcc/config/ia64/crti.S ++++ b/src/libgcc/config/ia64/crti.S +@@ -51,3 +51,7 @@ _fini: + .body + + # end of crti.S ++ ++#ifdef __linux__ ++.section .note.GNU-stack; .previous ++#endif +Index: b/src/libgcc/config/ia64/crtn.S +=================================================================== +--- a/src/libgcc/config/ia64/crtn.S ++++ b/src/libgcc/config/ia64/crtn.S +@@ -41,3 +41,7 @@ + br.ret.sptk.many b0 + + # end of crtn.S ++ ++#ifdef __linux__ ++.section .note.GNU-stack; .previous ++#endif +Index: b/src/libgcc/config/ia64/lib1funcs.S +=================================================================== +--- a/src/libgcc/config/ia64/lib1funcs.S ++++ b/src/libgcc/config/ia64/lib1funcs.S +@@ -793,3 +793,7 @@ __floattitf: + .endp __floattitf + #endif + #endif ++ ++#ifdef __linux__ ++.section .note.GNU-stack; .previous ++#endif +Index: b/src/gcc/config/ia64/linux.h +=================================================================== +--- a/src/gcc/config/ia64/linux.h ++++ b/src/gcc/config/ia64/linux.h +@@ -79,5 +79,8 @@ do { \ + #undef TARGET_INIT_LIBFUNCS + #define TARGET_INIT_LIBFUNCS ia64_soft_fp_init_libfuncs + ++#undef TARGET_ASM_FILE_END ++#define TARGET_ASM_FILE_END file_end_indicate_exec_stack ++ + /* Define this to be nonzero if static stack checking is supported. */ + #define STACK_CHECK_STATIC_BUILTIN 1 +Index: b/src/gcc/config/rs6000/ppc-asm.h +=================================================================== +--- a/src/gcc/config/rs6000/ppc-asm.h ++++ b/src/gcc/config/rs6000/ppc-asm.h +@@ -375,7 +375,7 @@ GLUE(.L,name): \ + #endif + #endif + +-#if defined __linux__ && !defined __powerpc64__ ++#if defined __linux__ + .section .note.GNU-stack + .previous + #endif diff --git a/debian/patches/powerpc_nofprs.diff b/debian/patches/powerpc_nofprs.diff new file mode 100644 index 0000000..7b4b204 --- /dev/null +++ b/debian/patches/powerpc_nofprs.diff @@ -0,0 +1,75 @@ +--- a/src/libgcc/config/rs6000/crtsavfpr.S ++++ b/src/libgcc/config/rs6000/crtsavfpr.S +@@ -33,6 +33,7 @@ + + /* On PowerPC64 Linux, these functions are provided by the linker. */ + #ifndef __powerpc64__ ++#ifndef __NO_FPRS__ + + /* Routines for saving floating point registers, called by the compiler. */ + /* Called with r11 pointing to the stack header word of the caller of the */ +@@ -79,3 +80,4 @@ + CFI_ENDPROC + + #endif ++#endif +--- a/src/libgcc/config/rs6000/crtresfpr.S ++++ b/src/libgcc/config/rs6000/crtresfpr.S +@@ -33,6 +33,7 @@ + + /* On PowerPC64 Linux, these functions are provided by the linker. */ + #ifndef __powerpc64__ ++#ifndef __NO_FPRS__ + + /* Routines for restoring floating point registers, called by the compiler. */ + /* Called with r11 pointing to the stack header word of the caller of the */ +@@ -79,3 +80,4 @@ + CFI_ENDPROC + + #endif ++#endif +--- a/src/libgcc/config/rs6000/crtresxfpr.S ++++ b/src/libgcc/config/rs6000/crtresxfpr.S +@@ -33,6 +33,7 @@ + + /* On PowerPC64 Linux, these functions are provided by the linker. */ + #ifndef __powerpc64__ ++#ifndef __NO_FPRS__ + + /* Routines for restoring floating point registers, called by the compiler. */ + /* Called with r11 pointing to the stack header word of the caller of the */ +@@ -124,3 +125,4 @@ + CFI_ENDPROC + + #endif ++#endif +--- a/src/libgcc/config/rs6000/crtsavevr.S 2013-03-13 22:25:25.802681336 +0000 ++++ b/src/libgcc/config/rs6000/crtsavevr.S 2013-03-13 22:26:21.054695066 +0000 +@@ -24,6 +24,7 @@ + + /* On PowerPC64 Linux, these functions are provided by the linker. */ + #ifndef __powerpc64__ ++#ifndef __NO_FPRS__ + + #undef __ALTIVEC__ + #define __ALTIVEC__ 1 +@@ -85,3 +86,4 @@ + CFI_ENDPROC + + #endif ++#endif +--- a/src/libgcc/config/rs6000/crtrestvr.S 2013-03-13 22:25:28.394681980 +0000 ++++ b/src/libgcc/config/rs6000/crtrestvr.S 2013-03-13 22:26:21.058695067 +0000 +@@ -24,6 +24,7 @@ + + /* On PowerPC64 Linux, these functions are provided by the linker. */ + #ifndef __powerpc64__ ++#ifndef __NO_FPRS__ + + #undef __ALTIVEC__ + #define __ALTIVEC__ 1 +@@ -85,3 +86,4 @@ + CFI_ENDPROC + + #endif ++#endif diff --git a/debian/patches/powerpc_remove_many.diff b/debian/patches/powerpc_remove_many.diff new file mode 100644 index 0000000..e50df0c --- /dev/null +++ b/debian/patches/powerpc_remove_many.diff @@ -0,0 +1,32 @@ +# DP: Subject: [PATCH] remove -many on __SPE__ target +# DP: this helps to to detect opcodes which are not part of the current +# DP: CPU because without -many gas won't touch them. This currently could +# DP: break the kernel build as the 603 on steroids cpus use performance +# DP: counter opcodes which are not available on the steroid less 603 core. + +--- a/src/gcc/config/rs6000/rs6000.h ++++ b/src/gcc/config/rs6000/rs6000.h +@@ -98,6 +98,12 @@ + #define ASM_CPU_476_SPEC "-mpower4" + #endif + ++#ifndef __SPE__ ++#define ASM_CPU_SPU_MANY_NOT_SPE "-many" ++#else ++#define ASM_CPU_SPU_MANY_NOT_SPE ++#endif ++ + /* Common ASM definitions used by ASM_SPEC among the various targets for + handling -mcpu=xxx switches. There is a parallel list in driver-rs6000.c to + provide the default assembler options if the user uses -mcpu=native, so if +@@ -170,7 +176,8 @@ + %{mcpu=e500mc64: -me500mc64} \ + %{maltivec: -maltivec} \ + %{mvsx: -mvsx %{!maltivec: -maltivec} %{!mcpu*: %(asm_cpu_power7)}} \ + %{mpower8-vector|mcrypto|mdirect-move|mhtm: %{!mcpu*: %(asm_cpu_power8)}} \ +--many" ++" \ ++ASM_CPU_SPU_MANY_NOT_SPE + + #define CPP_DEFAULT_SPEC "" + diff --git a/debian/patches/pr39491.diff b/debian/patches/pr39491.diff new file mode 100644 index 0000000..4c51820 --- /dev/null +++ b/debian/patches/pr39491.diff @@ -0,0 +1,132 @@ +# DP: Proposed patch for PR libstdc++/39491. + +2009-04-16 Benjamin Kosnik + + * src/math_stubs_long_double.cc (__signbitl): Add for hppa linux only. + +Index: a/src/libstdc++-v3/src/math_stubs_long_double.cc +=================================================================== +--- a/src/libstdc++-v3/src/math_stubs_long_double.cc (revision 146216) ++++ b/src/libstdc++-v3/src/math_stubs_long_double.cc (working copy) +@@ -213,4 +221,111 @@ + return tanh((double) x); + } + #endif ++ ++ // From libmath/signbitl.c ++ // XXX ABI mistakenly exported ++#if defined (__hppa__) && defined (__linux__) ++# include ++# include ++ ++typedef unsigned int U_int32_t __attribute ((mode (SI))); ++typedef int Int32_t __attribute ((mode (SI))); ++typedef unsigned int U_int64_t __attribute ((mode (DI))); ++typedef int Int64_t __attribute ((mode (DI))); ++ ++#if BYTE_ORDER == BIG_ENDIAN ++typedef union ++{ ++ long double value; ++ struct ++ { ++ unsigned int sign_exponent:16; ++ unsigned int empty:16; ++ U_int32_t msw; ++ U_int32_t lsw; ++ } parts; ++} ieee_long_double_shape_type; ++#endif ++#if BYTE_ORDER == LITTLE_ENDIAN ++typedef union ++{ ++ long double value; ++ struct ++ { ++ U_int32_t lsw; ++ U_int32_t msw; ++ unsigned int sign_exponent:16; ++ unsigned int empty:16; ++ } parts; ++} ieee_long_double_shape_type; ++#endif ++ ++/* Get int from the exponent of a long double. */ ++#define GET_LDOUBLE_EXP(exp,d) \ ++do { \ ++ ieee_long_double_shape_type ge_u; \ ++ ge_u.value = (d); \ ++ (exp) = ge_u.parts.sign_exponent; \ ++} while (0) ++ ++#if BYTE_ORDER == BIG_ENDIAN ++typedef union ++{ ++ long double value; ++ struct ++ { ++ U_int64_t msw; ++ U_int64_t lsw; ++ } parts64; ++ struct ++ { ++ U_int32_t w0, w1, w2, w3; ++ } parts32; ++} ieee_quad_double_shape_type; ++#endif ++ ++#if BYTE_ORDER == LITTLE_ENDIAN ++typedef union ++{ ++ long double value; ++ struct ++ { ++ U_int64_t lsw; ++ U_int64_t msw; ++ } parts64; ++ struct ++ { ++ U_int32_t w3, w2, w1, w0; ++ } parts32; ++} ieee_quad_double_shape_type; ++#endif ++ ++/* Get most significant 64 bit int from a quad long double. */ ++#define GET_LDOUBLE_MSW64(msw,d) \ ++do { \ ++ ieee_quad_double_shape_type qw_u; \ ++ qw_u.value = (d); \ ++ (msw) = qw_u.parts64.msw; \ ++} while (0) ++ ++int ++__signbitl (long double x) ++{ ++#if LDBL_MANT_DIG == 113 ++ Int64_t msw; ++ ++ GET_LDOUBLE_MSW64 (msw, x); ++ return msw < 0; ++#else ++ Int32_t e; ++ ++ GET_LDOUBLE_EXP (e, x); ++ return e & 0x8000; ++#endif ++} ++#endif ++ ++#ifndef _GLIBCXX_HAVE___SIGNBITL ++ ++#endif + } // extern "C" +--- a/src/libstdc++-v3/config/abi/pre/gnu.ver~ 2009-04-10 01:23:07.000000000 +0200 ++++ b/src/libstdc++-v3/config/abi/pre/gnu.ver 2009-04-21 16:24:24.000000000 +0200 +@@ -635,6 +635,7 @@ + sqrtf; + sqrtl; + copysignf; ++ __signbitl; + + # GLIBCXX_ABI compatibility only. + # std::string diff --git a/debian/patches/pr47818.diff b/debian/patches/pr47818.diff new file mode 100644 index 0000000..fb98f2b --- /dev/null +++ b/debian/patches/pr47818.diff @@ -0,0 +1,26 @@ +Description: allow pragma Assert with No_Implementation_Pragmas restriction. +Author: Eugeniy Meshcheryakov +Forwarded: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47818 + +Index: b/src/gcc/ada/sem_prag.adb +=================================================================== +--- a/src/gcc/ada/sem_prag.adb ++++ b/src/gcc/ada/sem_prag.adb +@@ -16864,7 +16864,16 @@ package body Sem_Prag is + Typ_Arg : Node_Id; + + begin +- GNAT_Pragma; ++ -- This could be a rewritten pragma Assert. If it is the case ++ -- then don't check restrictions, because they are different for ++ -- pragma Assert and were already checked. ++ ++ if Nkind (Original_Node (N)) /= N_Pragma ++ or else Pragma_Name (Original_Node (N)) /= Name_Assert ++ then ++ GNAT_Pragma; ++ end if; ++ + Check_At_Least_N_Arguments (2); + Check_At_Most_N_Arguments (3); + Check_Optional_Identifier (Arg1, Name_Entity); diff --git a/debian/patches/pr66368.diff b/debian/patches/pr66368.diff new file mode 100644 index 0000000..33a08c1 --- /dev/null +++ b/debian/patches/pr66368.diff @@ -0,0 +1,26 @@ +# DP: PR go/66368, build libgo with -fno-stack-protector + +Index: b/src/libgo/Makefile.am +=================================================================== +--- a/src/libgo/Makefile.am ++++ b/src/libgo/Makefile.am +@@ -41,6 +41,7 @@ AM_CPPFLAGS = -I $(srcdir)/runtime $(LIB + ACLOCAL_AMFLAGS = -I ./config -I ../config + + AM_CFLAGS = -fexceptions -fnon-call-exceptions -fplan9-extensions \ ++ -fno-stack-protector \ + $(SPLIT_STACK) $(WARN_CFLAGS) \ + $(STRINGOPS_FLAG) $(HWCAP_CFLAGS) $(OSCFLAGS) \ + -I $(srcdir)/../libgcc -I $(srcdir)/../libbacktrace \ +Index: b/src/libgo/Makefile.in +=================================================================== +--- a/src/libgo/Makefile.in ++++ b/src/libgo/Makefile.in +@@ -458,6 +458,7 @@ WARN_CFLAGS = $(WARN_FLAGS) $(WERROR) + AM_CPPFLAGS = -I $(srcdir)/runtime $(LIBFFIINCS) $(PTHREAD_CFLAGS) + ACLOCAL_AMFLAGS = -I ./config -I ../config + AM_CFLAGS = -fexceptions -fnon-call-exceptions -fplan9-extensions \ ++ -fno-stack-protector \ + $(SPLIT_STACK) $(WARN_CFLAGS) \ + $(STRINGOPS_FLAG) $(HWCAP_CFLAGS) $(OSCFLAGS) \ + -I $(srcdir)/../libgcc -I $(srcdir)/../libbacktrace \ diff --git a/debian/patches/pr67590.diff b/debian/patches/pr67590.diff new file mode 100644 index 0000000..317d48d --- /dev/null +++ b/debian/patches/pr67590.diff @@ -0,0 +1,38 @@ +# DP: Fix PR67590, setting objdump macro. + +Index: b/src/libcc1/configure.ac +=================================================================== +--- a/src/libcc1/configure.ac ++++ b/src/libcc1/configure.ac +@@ -72,6 +72,31 @@ if test "$GXX" = yes; then + fi + AC_SUBST(libsuffix) + ++# Figure out what objdump we will be using. ++AS_VAR_SET_IF(gcc_cv_objdump,, [ ++if test -f $gcc_cv_binutils_srcdir/configure.ac \ ++ && test -f ../binutils/Makefile \ ++ && test x$build = x$host; then ++ # Single tree build which includes binutils. ++ gcc_cv_objdump=../binutils/objdump$build_exeext ++elif test -x objdump$build_exeext; then ++ gcc_cv_objdump=./objdump$build_exeext ++elif ( set dummy $OBJDUMP_FOR_TARGET; test -x $[2] ); then ++ gcc_cv_objdump="$OBJDUMP_FOR_TARGET" ++else ++ AC_PATH_PROG(gcc_cv_objdump, $OBJDUMP_FOR_TARGET) ++fi]) ++ ++AC_MSG_CHECKING(what objdump to use) ++if test "$gcc_cv_objdump" = ../binutils/objdump$build_exeext; then ++ # Single tree build which includes binutils. ++ AC_MSG_RESULT(newly built objdump) ++elif test x$gcc_cv_objdump = x; then ++ AC_MSG_RESULT(not found) ++else ++ AC_MSG_RESULT($gcc_cv_objdump) ++fi ++ + dnl Test for -lsocket and -lnsl. Copied from libgo/configure.ac. + AC_CACHE_CHECK([for socket libraries], libcc1_cv_lib_sockets, + [libcc1_cv_lib_sockets= diff --git a/debian/patches/pr67899.diff b/debian/patches/pr67899.diff new file mode 100644 index 0000000..0f2ebd0 --- /dev/null +++ b/debian/patches/pr67899.diff @@ -0,0 +1,31 @@ +# DP: Proposed patch for PR sanitizer/67899 + +Index: b/src/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +=================================================================== +--- a/src/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/src/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -606,11 +606,10 @@ namespace __sanitizer { + #else + __sanitizer_sigset_t sa_mask; + #ifndef __mips__ +-#if defined(__sparc__) +- unsigned long sa_flags; +-#else +- int sa_flags; ++#if defined(__sparc__) && defined(__arch64__) ++ int __pad; + #endif ++ int sa_flags; + #endif + #endif + #if SANITIZER_LINUX +@@ -640,7 +639,8 @@ namespace __sanitizer { + void (*handler)(int signo); + void (*sigaction)(int signo, void *info, void *ctx); + }; +- unsigned long sa_flags; ++ int __pad; ++ int sa_flags; + void (*sa_restorer)(void); + __sanitizer_kernel_sigset_t sa_mask; + }; diff --git a/debian/patches/pr81723.diff b/debian/patches/pr81723.diff new file mode 100644 index 0000000..e4b21d8 --- /dev/null +++ b/debian/patches/pr81723.diff @@ -0,0 +1,204 @@ +# DP: Fix PR tree-optimization/81723, taken from the trunk. + +gcc/ + +2017-08-08 Richard Biener + + PR tree-optimization/81723 + * tree-vect-slp.c (struct bst_traits): New hash traits. + (bst_fail): New global. + (vect_build_slp_tree_2): New worker, split out from ... + (vect_build_slp_tree): ... this now wrapping it with using + bst_fail set to cache SLP tree build fails. Properly handle + max_tree_size. + (vect_analyze_slp_instance): Allocate and free bst_fail. + +gcc/testsuite/ + +2017-08-08 Richard Biener + + PR tree-optimization/81723 + * gfortran.dg/pr81723.f: New testcase. + + +--- a/src/gcc/testsuite/gfortran.dg/pr81723.f ++++ a/src/gcc/testsuite/gfortran.dg/pr81723.f +@@ -0,0 +1,56 @@ ++! { dg-do compile } ++! { dg-options "-O3 -fno-automatic" } ++ ++ FUNCTION WWERF(Z) ++ ++ IMPLICIT DOUBLE PRECISION (A-H,O-Z) ++ COMPLEX*16 WWERF ++ COMPLEX*16 Z,ZH,R(37),S,T,V,W ++ ++ PARAMETER (Z1 = 1, HF = Z1/2, Z10 = 10) ++ PARAMETER (C1 = 74/Z10, C2 = 83/Z10, C3 = Z10/32, C4 = 16/Z10) ++ PARAMETER (C = 1.12837 91670 95512 57D0, P = (2*C4)**33) ++ ++ DOUBLE PRECISION GREAL,GIMAG,XARG,YARG ++ COMPLEX*16 ZARG,GCONJG,GCMPLX ++ GREAL( ZARG)=DREAL( ZARG) ++ GIMAG( ZARG)=DIMAG( ZARG) ++ GCONJG(ZARG)=DCONJG(ZARG) ++ GCMPLX(XARG,YARG)=DCMPLX(XARG,YARG) ++ ++ X=Z ++ Y=GIMAG(Z) ++ XA=ABS(X) ++ YA=ABS(Y) ++ IF(YA .LT. C1 .AND. XA .LT. C2) THEN ++ ZH=GCMPLX(YA+C4,XA) ++ R(37)=0 ++ DO 1 N = 36,1,-1 ++ T=ZH+N*GCONJG(R(N+1)) ++ 1 R(N)=HF*T/(GREAL(T)**2+GIMAG(T)**2) ++ XL=P ++ S=0 ++ DO 2 N = 33,1,-1 ++ XL=C3*XL ++ 2 S=R(N)*(S+XL) ++ V=C*S ++ ELSE ++ ZH=GCMPLX(YA,XA) ++ R(1)=0 ++ DO 3 N = 9,1,-1 ++ T=ZH+N*GCONJG(R(1)) ++ 3 R(1)=HF*T/(GREAL(T)**2+GIMAG(T)**2) ++ V=C*R(1) ++ END IF ++ IF(YA .EQ. 0) V=GCMPLX(EXP(-XA**2),GIMAG(V)) ++ IF(Y .LT. 0) THEN ++ V=2*EXP(-GCMPLX(XA,YA)**2)-V ++ IF(X .GT. 0) V=GCONJG(V) ++ ELSE ++ IF(X .LT. 0) V=GCONJG(V) ++ END IF ++ ++ WWERF=V ++ ++ RETURN ++ END +--- a/src/gcc/tree-vect-slp.c ++++ b/src/gcc/tree-vect-slp.c +@@ -908,14 +908,51 @@ + return true; + } + +-/* Recursively build an SLP tree starting from NODE. +- Fail (and return a value not equal to zero) if def-stmts are not +- isomorphic, require data permutation or are of unsupported types of +- operation. Otherwise, return 0. +- The value returned is the depth in the SLP tree where a mismatch +- was found. */ ++/* Traits for the hash_set to record failed SLP builds for a stmt set. ++ Note we never remove apart from at destruction time so we do not ++ need a special value for deleted that differs from empty. */ ++struct bst_traits ++{ ++ typedef vec value_type; ++ typedef vec compare_type; ++ static inline hashval_t hash (value_type); ++ static inline bool equal (value_type existing, value_type candidate); ++ static inline bool is_empty (value_type x) { return !x.exists (); } ++ static inline bool is_deleted (value_type x) { return !x.exists (); } ++ static inline void mark_empty (value_type &x) { x.release (); } ++ static inline void mark_deleted (value_type &x) { x.release (); } ++ static inline void remove (value_type &x) { x.release (); } ++}; ++inline hashval_t ++bst_traits::hash (value_type x) ++{ ++ inchash::hash h; ++ for (unsigned i = 0; i < x.length (); ++i) ++ h.add_int (gimple_uid (x[i])); ++ return h.end (); ++} ++inline bool ++bst_traits::equal (value_type existing, value_type candidate) ++{ ++ if (existing.length () != candidate.length ()) ++ return false; ++ for (unsigned i = 0; i < existing.length (); ++i) ++ if (existing[i] != candidate[i]) ++ return false; ++ return true; ++} + ++static hash_set , bst_traits> *bst_fail; ++ + static slp_tree ++vect_build_slp_tree_2 (vec_info *vinfo, ++ vec stmts, unsigned int group_size, ++ unsigned int *max_nunits, ++ vec *loads, ++ bool *matches, unsigned *npermutes, unsigned *tree_size, ++ unsigned max_tree_size); ++ ++static slp_tree + vect_build_slp_tree (vec_info *vinfo, + vec stmts, unsigned int group_size, + unsigned int *max_nunits, +@@ -923,6 +960,39 @@ + bool *matches, unsigned *npermutes, unsigned *tree_size, + unsigned max_tree_size) + { ++ if (bst_fail->contains (stmts)) ++ return NULL; ++ slp_tree res = vect_build_slp_tree_2 (vinfo, stmts, group_size, max_nunits, ++ loads, matches, npermutes, tree_size, ++ max_tree_size); ++ /* When SLP build fails for stmts record this, otherwise SLP build ++ can be exponential in time when we allow to construct parts from ++ scalars, see PR81723. */ ++ if (! res) ++ { ++ vec x; ++ x.create (stmts.length ()); ++ x.splice (stmts); ++ bst_fail->add (x); ++ } ++ return res; ++} ++ ++/* Recursively build an SLP tree starting from NODE. ++ Fail (and return a value not equal to zero) if def-stmts are not ++ isomorphic, require data permutation or are of unsupported types of ++ operation. Otherwise, return 0. ++ The value returned is the depth in the SLP tree where a mismatch ++ was found. */ ++ ++static slp_tree ++vect_build_slp_tree_2 (vec_info *vinfo, ++ vec stmts, unsigned int group_size, ++ unsigned int *max_nunits, ++ vec *loads, ++ bool *matches, unsigned *npermutes, unsigned *tree_size, ++ unsigned max_tree_size) ++{ + unsigned nops, i, this_tree_size = 0, this_max_nunits = *max_nunits; + gimple *stmt; + slp_tree node; +@@ -1014,6 +1084,9 @@ + + stmt = stmts[0]; + ++ if (tree_size) ++ max_tree_size -= *tree_size; ++ + /* Create SLP_TREE nodes for the definition node/s. */ + FOR_EACH_VEC_ELT (oprnds_info, i, oprnd_info) + { +@@ -1933,9 +2006,11 @@ + /* Build the tree for the SLP instance. */ + bool *matches = XALLOCAVEC (bool, group_size); + unsigned npermutes = 0; ++ bst_fail = new hash_set , bst_traits> (); + node = vect_build_slp_tree (vinfo, scalar_stmts, group_size, + &max_nunits, &loads, matches, &npermutes, + NULL, max_tree_size); ++ delete bst_fail; + if (node != NULL) + { + /* Calculate the unrolling factor based on the smallest type. */ diff --git a/debian/patches/rename-info-files.diff b/debian/patches/rename-info-files.diff new file mode 100644 index 0000000..3019775 --- /dev/null +++ b/debian/patches/rename-info-files.diff @@ -0,0 +1,710 @@ +# DP: Allow transformations on info file names. Reference the +# DP: transformed info file names in the texinfo files. + + +2004-02-17 Matthias Klose + +gcc/ChangeLog: + * Makefile.in: Allow transformations on info file names. + Define MAKEINFODEFS, macros to pass transformated info file + names to makeinfo. + * doc/cpp.texi: Use macros defined in MAKEINFODEFS for references. + * doc/cppinternals.texi: Likewise. + * doc/extend.texi: Likewise. + * doc/gcc.texi: Likewise. + * doc/gccint.texi: Likewise. + * doc/invoke.texi: Likewise. + * doc/libgcc.texi: Likewise. + * doc/makefile.texi: Likewise. + * doc/passes.texi: Likewise. + * doc/sourcebuild.texi: Likewise. + * doc/standards.texi: Likewise. + * doc/trouble.texi: Likewise. + +gcc/fortran/ChangeLog: + * Make-lang.in: Allow transformations on info file names. + Pass macros of transformated info file defined in MAKEINFODEFS + names to makeinfo. + * gfortran.texi: Use macros defined in MAKEINFODEFS for references. + +Index: b/src/gcc/fortran/gfortran.texi +=================================================================== +--- a/src/gcc/fortran/gfortran.texi ++++ b/src/gcc/fortran/gfortran.texi +@@ -101,7 +101,7 @@ Texts being (a) (see below), and with th + @ifinfo + @dircategory Software development + @direntry +-* gfortran: (gfortran). The GNU Fortran Compiler. ++* @value{fngfortran}: (@value{fngfortran}). The GNU Fortran Compiler. + @end direntry + This file documents the use and the internals of + the GNU Fortran compiler, (@command{gfortran}). +Index: b/src/gcc/fortran/Make-lang.in +=================================================================== +--- a/src/gcc/fortran/Make-lang.in ++++ b/src/gcc/fortran/Make-lang.in +@@ -114,7 +114,8 @@ fortran.tags: force + cd $(srcdir)/fortran; etags -o TAGS.sub *.c *.h; \ + etags --include TAGS.sub --include ../TAGS.sub + +-fortran.info: doc/gfortran.info doc/gfc-internals.info ++INFO_FORTRAN_NAME = $(shell echo gfortran|sed '$(program_transform_name)') ++fortran.info: doc/$(INFO_FORTRAN_NAME).info + fortran.dvi: doc/gfortran.dvi doc/gfc-internals.dvi + + F95_HTMLFILES = $(build_htmldir)/gfortran +@@ -181,10 +182,10 @@ GFORTRAN_TEXI = \ + $(srcdir)/doc/include/gcc-common.texi \ + gcc-vers.texi + +-doc/gfortran.info: $(GFORTRAN_TEXI) ++doc/$(INFO_FORTRAN_NAME).info: $(GFORTRAN_TEXI) + if [ x$(BUILD_INFO) = xinfo ]; then \ + rm -f doc/gfortran.info-*; \ +- $(MAKEINFO) -I $(srcdir)/doc/include -I $(srcdir)/fortran \ ++ $(MAKEINFO) $(MAKEINFODEFS) -I $(srcdir)/doc/include -I $(srcdir)/fortran \ + -o $@ $<; \ + else true; fi + +@@ -249,7 +250,7 @@ fortran.install-common: install-finclude + + fortran.install-plugin: + +-fortran.install-info: $(DESTDIR)$(infodir)/gfortran.info ++fortran.install-info: $(DESTDIR)$(infodir)/$(INFO_FORTRAN_NAME).info + + fortran.install-man: $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext) + +@@ -267,7 +268,7 @@ fortran.uninstall: + rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_INSTALL_NAME)$(exeext); \ + rm -rf $(DESTDIR)$(man1dir)/$(GFORTRAN_INSTALL_NAME)$(man1ext); \ + rm -rf $(DESTDIR)$(bindir)/$(GFORTRAN_TARGET_INSTALL_NAME)$(exeext); \ +- rm -rf $(DESTDIR)$(infodir)/gfortran.info* ++ rm -rf $(DESTDIR)$(infodir)/$(INFO_FORTRAN_NAME).info* + + # + # Clean hooks: +Index: b/src/gcc/Makefile.in +=================================================================== +--- a/src/gcc/Makefile.in ++++ b/src/gcc/Makefile.in +@@ -3066,8 +3066,31 @@ install-no-fixedincludes: + + doc: $(BUILD_INFO) $(GENERATED_MANPAGES) + +-INFOFILES = doc/cpp.info doc/gcc.info doc/gccint.info \ +- doc/gccinstall.info doc/cppinternals.info ++INFO_CPP_NAME = $(shell echo cpp|sed '$(program_transform_name)') ++INFO_GCC_NAME = $(shell echo gcc|sed '$(program_transform_name)') ++INFO_GXX_NAME = $(shell echo g++|sed '$(program_transform_name)') ++INFO_GCCINT_NAME = $(shell echo gccint|sed '$(program_transform_name)') ++INFO_GCCINSTALL_NAME = $(shell echo gccinstall|sed '$(program_transform_name)') ++INFO_CPPINT_NAME = $(shell echo cppinternals|sed '$(program_transform_name)') ++ ++INFO_FORTRAN_NAME = $(shell echo gfortran|sed '$(program_transform_name)') ++INFO_GCCGO_NAME = $(shell echo gccgo|sed '$(program_transform_name)') ++ ++INFOFILES = doc/$(INFO_CPP_NAME).info doc/$(INFO_GCC_NAME).info \ ++ doc/$(INFO_GCCINT_NAME).info \ ++ doc/$(INFO_GCCINSTALL_NAME).info doc/$(INFO_CPPINT_NAME).info ++ ++MAKEINFODEFS = -D 'fncpp $(INFO_CPP_NAME)' \ ++ -D 'fngcc $(INFO_GCC_NAME)' \ ++ -D 'fngcov $(INFO_GCC_NAME)' \ ++ -D 'fngcovtool $(INFO_GCC_NAME)' \ ++ -D 'fngcovdump $(INFO_GCC_NAME)' \ ++ -D 'fngxx $(INFO_GXX_NAME)' \ ++ -D 'fngccint $(INFO_GCCINT_NAME)' \ ++ -D 'fngccinstall $(INFO_GCCINSTALL_NAME)' \ ++ -D 'fncppint $(INFO_CPPINT_NAME)' \ ++ -D 'fngfortran $(INFO_FORTRAN_NAME)' \ ++ -D 'fngccgo $(INFO_GCCGO_NAME)' + + info: $(INFOFILES) lang.info @GENINSRC@ srcinfo lang.srcinfo + +@@ -3114,7 +3137,20 @@ gcc-vers.texi: $(BASEVER) $(DEVPHASE) + if [ -n "$(PKGVERSION)" ]; then \ + echo "@set VERSION_PACKAGE $(PKGVERSION)" >> $@T; \ + fi +- echo "@set BUGURL $(BUGURL_TEXI)" >> $@T; \ ++ echo "@set BUGURL $(BUGURL_TEXI)" >> $@T ++ ( \ ++ echo '@set fncpp $(INFO_CPP_NAME)'; \ ++ echo '@set fngcc $(INFO_GCC_NAME)'; \ ++ echo '@set fngcov $(INFO_GCC_NAME)'; \ ++ echo '@set fngcovtool $(INFO_GCC_NAME)'; \ ++ echo '@set fngcovdump $(INFO_GCC_NAME)'; \ ++ echo '@set fngxx $(INFO_GXX_NAME)'; \ ++ echo '@set fngccint $(INFO_GCCINT_NAME)'; \ ++ echo '@set fngccinstall $(INFO_GCCINSTALL_NAME)'; \ ++ echo '@set fncppint $(INFO_CPPINT_NAME)'; \ ++ echo '@set fngfortran $(INFO_FORTRAN_NAME)'; \ ++ echo '@set fngccgo $(INFO_GCCGO_NAME)'; \ ++ ) >> $@T + mv -f $@T $@ + + +@@ -3122,21 +3158,41 @@ gcc-vers.texi: $(BASEVER) $(DEVPHASE) + # patterns. To use them, put each of the specific targets with its + # specific dependencies but no build commands. + +-doc/cpp.info: $(TEXI_CPP_FILES) +-doc/gcc.info: $(TEXI_GCC_FILES) +-doc/gccint.info: $(TEXI_GCCINT_FILES) +-doc/cppinternals.info: $(TEXI_CPPINT_FILES) +- ++# Generic entry to handle info files, which are not renamed (currently Ada) + doc/%.info: %.texi + if [ x$(BUILD_INFO) = xinfo ]; then \ + $(MAKEINFO) $(MAKEINFOFLAGS) -I . -I $(gcc_docdir) \ + -I $(gcc_docdir)/include -o $@ $<; \ + fi + ++doc/$(INFO_CPP_NAME).info: $(TEXI_CPP_FILES) ++ if [ x$(BUILD_INFO) = xinfo ]; then \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \ ++ -I $(gcc_docdir)/include -o $@ $<; \ ++ fi ++ ++doc/$(INFO_GCC_NAME).info: $(TEXI_GCC_FILES) ++ if [ x$(BUILD_INFO) = xinfo ]; then \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \ ++ -I $(gcc_docdir)/include -o $@ $<; \ ++ fi ++ ++doc/$(INFO_GCCINT_NAME).info: $(TEXI_GCCINT_FILES) ++ if [ x$(BUILD_INFO) = xinfo ]; then \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \ ++ -I $(gcc_docdir)/include -o $@ $<; \ ++ fi ++ ++doc/$(INFO_CPPINT_NAME).info: $(TEXI_CPPINT_FILES) ++ if [ x$(BUILD_INFO) = xinfo ]; then \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \ ++ -I $(gcc_docdir)/include -o $@ $<; \ ++ fi ++ + # Duplicate entry to handle renaming of gccinstall.info +-doc/gccinstall.info: $(TEXI_GCCINSTALL_FILES) ++doc/$(INFO_GCCINSTALL_NAME).info: $(TEXI_GCCINSTALL_FILES) + if [ x$(BUILD_INFO) = xinfo ]; then \ +- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \ + -I $(gcc_docdir)/include -o $@ $<; \ + fi + +@@ -3555,11 +3611,11 @@ install-driver: installdirs xgcc$(exeext + # $(INSTALL_DATA) might be a relative pathname, so we can't cd into srcdir + # to do the install. + install-info:: doc installdirs \ +- $(DESTDIR)$(infodir)/cpp.info \ +- $(DESTDIR)$(infodir)/gcc.info \ +- $(DESTDIR)$(infodir)/cppinternals.info \ +- $(DESTDIR)$(infodir)/gccinstall.info \ +- $(DESTDIR)$(infodir)/gccint.info \ ++ $(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info \ ++ $(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info \ ++ $(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info \ ++ $(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info \ ++ $(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info \ + lang.install-info + + $(DESTDIR)$(infodir)/%.info: doc/%.info installdirs +@@ -3780,8 +3836,11 @@ uninstall: lang.uninstall + -rm -rf $(DESTDIR)$(bindir)/$(GCOV_INSTALL_NAME)$(exeext) + -rm -rf $(DESTDIR)$(man1dir)/$(GCC_INSTALL_NAME)$(man1ext) + -rm -rf $(DESTDIR)$(man1dir)/cpp$(man1ext) +- -rm -f $(DESTDIR)$(infodir)/cpp.info* $(DESTDIR)$(infodir)/gcc.info* +- -rm -f $(DESTDIR)$(infodir)/cppinternals.info* $(DESTDIR)$(infodir)/gccint.info* ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_CPP_NAME).info* ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCC_NAME).info* ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_CPPINT_NAME).info* ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINT_NAME).info* ++ -rm -f $(DESTDIR)$(infodir)/$(INFO_GCCINSTALL_NAME).info* + for i in ar nm ranlib ; do \ + install_name=`echo gcc-$$i|sed '$(program_transform_name)'`$(exeext) ;\ + target_install_name=$(target_noncanonical)-`echo gcc-$$i|sed '$(program_transform_name)'`$(exeext) ; \ +Index: b/src/gcc/ada/gnat-style.texi +=================================================================== +--- a/src/gcc/ada/gnat-style.texi ++++ b/src/gcc/ada/gnat-style.texi +@@ -31,7 +31,7 @@ Texts. A copy of the license is include + + @dircategory Software development + @direntry +-* gnat-style: (gnat-style). GNAT Coding Style ++* gnat-style: (gnat-style-6). GNAT Coding Style + @end direntry + + @macro syntax{element} +Index: b/src/gcc/ada/gnat_rm.texi +=================================================================== +--- a/src/gcc/ada/gnat_rm.texi ++++ b/src/gcc/ada/gnat_rm.texi +@@ -12,7 +12,7 @@ + @finalout + @dircategory GNU Ada Tools + @direntry +-* gnat_rm: (gnat_rm.info). gnat_rm ++* GNAT Reference Manual: (gnat_rm-6). Reference Manual for GNU Ada tools. + @end direntry + + @definfoenclose strong,`,' +Index: b/src/gcc/doc/invoke.texi +=================================================================== +--- a/src/gcc/doc/invoke.texi ++++ b/src/gcc/doc/invoke.texi +@@ -11604,7 +11604,7 @@ One of the standard libraries bypassed b + @option{-nodefaultlibs} is @file{libgcc.a}, a library of internal subroutines + which GCC uses to overcome shortcomings of particular machines, or special + needs for some languages. +-(@xref{Interface,,Interfacing to GCC Output,gccint,GNU Compiler ++(@xref{Interface,,Interfacing to GCC Output,@value{fngccint},GNU Compiler + Collection (GCC) Internals}, + for more discussion of @file{libgcc.a}.) + In most cases, you need @file{libgcc.a} even when you want to avoid +@@ -11613,7 +11613,7 @@ or @option{-nodefaultlibs} you should us + This ensures that you have no unresolved references to internal GCC + library subroutines. + (An example of such an internal subroutine is @code{__main}, used to ensure C++ +-constructors are called; @pxref{Collect2,,@code{collect2}, gccint, ++constructors are called; @pxref{Collect2,,@code{collect2}, @value{fngccint}, + GNU Compiler Collection (GCC) Internals}.) + + @item -pie +@@ -26506,7 +26506,7 @@ Note that you can also specify places to + @option{-B}, @option{-I} and @option{-L} (@pxref{Directory Options}). These + take precedence over places specified using environment variables, which + in turn take precedence over those specified by the configuration of GCC@. +-@xref{Driver,, Controlling the Compilation Driver @file{gcc}, gccint, ++@xref{Driver,, Controlling the Compilation Driver @file{gcc}, @value{fngccint}, + GNU Compiler Collection (GCC) Internals}. + + @table @env +@@ -26666,7 +26666,7 @@ the headers it contains change. + + A precompiled header file is searched for when @code{#include} is + seen in the compilation. As it searches for the included file +-(@pxref{Search Path,,Search Path,cpp,The C Preprocessor}) the ++(@pxref{Search Path,,Search Path,@value{fncpp},The C Preprocessor}) the + compiler looks for a precompiled header in each directory just before it + looks for the include file in that directory. The name searched for is + the name specified in the @code{#include} with @samp{.gch} appended. If +Index: b/src/gcc/doc/extend.texi +=================================================================== +--- a/src/gcc/doc/extend.texi ++++ b/src/gcc/doc/extend.texi +@@ -21802,7 +21802,7 @@ want to write code that checks whether t + test for the GNU compiler the same way as for C programs: check for a + predefined macro @code{__GNUC__}. You can also use @code{__GNUG__} to + test specifically for GNU C++ (@pxref{Common Predefined Macros,, +-Predefined Macros,cpp,The GNU C Preprocessor}). ++Predefined Macros,@value{fncpp},The GNU C Preprocessor}). + + @menu + * C++ Volatiles:: What constitutes an access to a volatile object. +Index: b/src/gcc/doc/standards.texi +=================================================================== +--- a/src/gcc/doc/standards.texi ++++ b/src/gcc/doc/standards.texi +@@ -315,5 +315,5 @@ freely available at @uref{http://www.hsa + GNAT Reference Manual}, for information on standard + conformance and compatibility of the Ada compiler. + +-@xref{Standards,,Standards, gfortran, The GNU Fortran Compiler}, for details ++@xref{Standards,,Standards, @value{fngfortran}, The GNU Fortran Compiler}, for details + of standards supported by GNU Fortran. +Index: b/src/gcc/doc/libgcc.texi +=================================================================== +--- a/src/gcc/doc/libgcc.texi ++++ b/src/gcc/doc/libgcc.texi +@@ -24,7 +24,7 @@ that needs them. + GCC will also generate calls to C library routines, such as + @code{memcpy} and @code{memset}, in some cases. The set of routines + that GCC may possibly use is documented in @ref{Other +-Builtins,,,gcc, Using the GNU Compiler Collection (GCC)}. ++Builtins,,,@value{fngcc}, Using the GNU Compiler Collection (GCC)}. + + These routines take arguments and return values of a specific machine + mode, not a specific C type. @xref{Machine Modes}, for an explanation +Index: b/src/gcc/doc/gccint.texi +=================================================================== +--- a/src/gcc/doc/gccint.texi ++++ b/src/gcc/doc/gccint.texi +@@ -49,7 +49,7 @@ Texts being (a) (see below), and with th + @ifnottex + @dircategory Software development + @direntry +-* gccint: (gccint). Internals of the GNU Compiler Collection. ++* @value{fngccint}: (@value{fngccint}). Internals of the GNU Compiler Collection. + @end direntry + This file documents the internals of the GNU compilers. + @sp 1 +@@ -81,7 +81,7 @@ write front ends for new languages. It + @value{VERSION_PACKAGE} + @end ifset + version @value{version-GCC}. The use of the GNU compilers is documented in a +-separate manual. @xref{Top,, Introduction, gcc, Using the GNU ++separate manual. @xref{Top,, Introduction, @value{fngcc}, Using the GNU + Compiler Collection (GCC)}. + + This manual is mainly a reference manual rather than a tutorial. It +Index: b/src/gcc/doc/cpp.texi +=================================================================== +--- a/src/gcc/doc/cpp.texi ++++ b/src/gcc/doc/cpp.texi +@@ -50,7 +50,7 @@ This manual contains no Invariant Sectio + @ifinfo + @dircategory Software development + @direntry +-* Cpp: (cpp). The GNU C preprocessor. ++* @value{fncpp}: (@value{fncpp}). The GNU C preprocessor. + @end direntry + @end ifinfo + +Index: b/src/gcc/doc/gcc.texi +=================================================================== +--- a/src/gcc/doc/gcc.texi ++++ b/src/gcc/doc/gcc.texi +@@ -127,7 +127,7 @@ version @value{version-GCC}. + The internals of the GNU compilers, including how to port them to new + targets and some information about how to write front ends for new + languages, are documented in a separate manual. @xref{Top,, +-Introduction, gccint, GNU Compiler Collection (GCC) Internals}. ++Introduction, @value{fngccint}, GNU Compiler Collection (GCC) Internals}. + + @menu + * G++ and GCC:: You can compile C or C++ programs. +Index: b/src/gcc/doc/install.texi +=================================================================== +--- a/src/gcc/doc/install.texi ++++ b/src/gcc/doc/install.texi +@@ -94,7 +94,7 @@ Free Documentation License}''. + @end ifinfo + @dircategory Software development + @direntry +-* gccinstall: (gccinstall). Installing the GNU Compiler Collection. ++* @value{fngccinstall}: (@value{fngccinstall}). Installing the GNU Compiler Collection. + @end direntry + + @c Part 3 Titlepage and Copyright +Index: b/src/gcc/doc/cppinternals.texi +=================================================================== +--- a/src/gcc/doc/cppinternals.texi ++++ b/src/gcc/doc/cppinternals.texi +@@ -7,7 +7,7 @@ + @ifinfo + @dircategory Software development + @direntry +-* Cpplib: (cppinternals). Cpplib internals. ++* @value{fncppint}: (@value{fncppint}). Cpplib internals. + @end direntry + @end ifinfo + +Index: b/src/libgomp/libgomp.texi +=================================================================== +--- a/src/libgomp/libgomp.texi ++++ b/src/libgomp/libgomp.texi +@@ -31,7 +31,7 @@ texts being (a) (see below), and with th + @ifinfo + @dircategory GNU Libraries + @direntry +-* libgomp: (libgomp). GNU Offloading and Multi Processing Runtime Library. ++* @value{fnlibgomp}: (@value{fnlibgomp}). GNU Offloading and Multi Processing Runtime Library. + @end direntry + + This manual documents libgomp, the GNU Offloading and Multi Processing +Index: b/src/libgomp/Makefile.in +=================================================================== +--- a/src/libgomp/Makefile.in ++++ b/src/libgomp/Makefile.in +@@ -487,7 +487,8 @@ info_TEXINFOS = libgomp.texi + + # AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO]) + @BUILD_INFO_TRUE@STAMP_BUILD_INFO = stamp-build-info +-CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libgomp.info ++INFO_LIBGOMP_NAME = $(shell echo libgomp|sed '$(program_transform_name)') ++CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) $(INFO_LIBGOMP_NAME).info + MAINTAINERCLEANFILES = $(srcdir)/libgomp.info + all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive +@@ -1302,15 +1303,16 @@ env.lo: libgomp_f.h + env.o: libgomp_f.h + + all-local: $(STAMP_GENINSRC) +- +-stamp-geninsrc: libgomp.info +- cp -p $(top_builddir)/libgomp.info $(srcdir)/libgomp.info ++stamp-geninsrc: $(INFO_LIBGOMP_NAME).info ++ cp -p $(top_builddir)/$(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.info + @touch $@ + +-libgomp.info: $(STAMP_BUILD_INFO) ++libgomp.info: $(INFO_LIBGOMP_NAME).info ++ [ "$(INFO_LIBGOMP_NAME).info" = libgomp.info ] || cp $(INFO_LIBGOMP_NAME).info libgomp.info ++$(INFO_LIBGOMP_NAME).info: $(STAMP_BUILD_INFO) + + stamp-build-info: libgomp.texi +- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libgomp.info $(srcdir)/libgomp.texi ++ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibgomp $(INFO_LIBGOMP_NAME)' -I $(srcdir) -o $(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.texi + @touch $@ + + # Tell versions [3.59,3.63) of GNU make to not export all variables. +Index: b/src/libgomp/Makefile.am +=================================================================== +--- a/src/libgomp/Makefile.am ++++ b/src/libgomp/Makefile.am +@@ -125,16 +125,19 @@ endif + + all-local: $(STAMP_GENINSRC) + +-stamp-geninsrc: libgomp.info +- cp -p $(top_builddir)/libgomp.info $(srcdir)/libgomp.info ++INFO_LIBGOMP_NAME = $(shell echo libgomp|sed '$(program_transform_name)') ++stamp-geninsrc: $(INFO_LIBGOMP_NAME).info ++ cp -p $(top_builddir)/$(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.info + @touch $@ + +-libgomp.info: $(STAMP_BUILD_INFO) ++libgomp.info: $(INFO_LIBGOMP_NAME).info ++ cp $(INFO_LIBGOMP_NAME).info libgomp.info ++$(INFO_LIBGOMP_NAME).info: $(STAMP_BUILD_INFO) + + stamp-build-info: libgomp.texi +- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libgomp.info $(srcdir)/libgomp.texi ++ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -D 'fnlibgomp $(INFO_LIBGOMP_NAME)' -I $(srcdir) -o $(INFO_LIBGOMP_NAME).info $(srcdir)/libgomp.texi + @touch $@ + + +-CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libgomp.info ++CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) $(INFO_LIBGOMP_NAME).info + MAINTAINERCLEANFILES = $(srcdir)/libgomp.info +Index: b/src/libitm/libitm.texi +=================================================================== +--- a/src/libitm/libitm.texi ++++ b/src/libitm/libitm.texi +@@ -20,7 +20,7 @@ Free Documentation License''. + @ifinfo + @dircategory GNU Libraries + @direntry +-* libitm: (libitm). GNU Transactional Memory Library ++* @value{fnlibitm}: (@value{fnlibitm}). GNU Transactional Memory Library + @end direntry + + This manual documents the GNU Transactional Memory Library. +Index: b/src/libitm/Makefile.am +=================================================================== +--- a/src/libitm/Makefile.am ++++ b/src/libitm/Makefile.am +@@ -107,14 +107,17 @@ endif + + all-local: $(STAMP_GENINSRC) + +-stamp-geninsrc: libitm.info +- cp -p $(top_builddir)/libitm.info $(srcdir)/libitm.info ++INFO_LIBITM_NAME = $(shell echo libitm|sed '$(program_transform_name)') ++stamp-geninsrc: $(INFO_LIBITM_NAME).info ++ cp -p $(top_builddir)/$(INFO_LIBITM_NAME).info $(srcdir)/libitm.info + @touch $@ + +-libitm.info: $(STAMP_BUILD_INFO) ++libitm.info: $(INFO_LIBITM_NAME).info ++ cp $(INFO_LIBITM_NAME).info libitm.info ++$(INFO_LIBITM_NAME).info: $(STAMP_BUILD_INFO) + + stamp-build-info: libitm.texi +- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libitm.info $(srcdir)/libitm.texi ++ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -D 'fnlibitm $(INFO_LIBITM_NAME)'-o $(INFO_LIBITM_NAME).info $(srcdir)/libitm.texi + @touch $@ + + +Index: b/src/libitm/Makefile.in +=================================================================== +--- a/src/libitm/Makefile.in ++++ b/src/libitm/Makefile.in +@@ -1105,14 +1105,17 @@ vpath % $(strip $(search_path)) + + all-local: $(STAMP_GENINSRC) + +-stamp-geninsrc: libitm.info +- cp -p $(top_builddir)/libitm.info $(srcdir)/libitm.info ++INFO_LIBITM_NAME = $(shell echo libitm|sed '$(program_transform_name)') ++stamp-geninsrc: $(INFO_LIBITM_NAME).info ++ cp -p $(top_builddir)/$(INFO_LIBITM_NAME).info $(srcdir)/libitm.info + @touch $@ + +-libitm.info: $(STAMP_BUILD_INFO) ++libitm.info: $(INFO_LIBITM_NAME).info ++ cp $(INFO_LIBITM_NAME).info libitm.info ++$(INFO_LIBITM_NAME).info: $(STAMP_BUILD_INFO) + + stamp-build-info: libitm.texi +- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libitm.info $(srcdir)/libitm.texi ++ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -D 'fnlibitm $(INFO_LIBITM_NAME)' -o $(INFO_LIBITM_NAME).info $(srcdir)/libitm.texi + @touch $@ + + # Tell versions [3.59,3.63) of GNU make to not export all variables. +Index: b/src/gcc/go/Make-lang.in +=================================================================== +--- a/src/gcc/go/Make-lang.in ++++ b/src/gcc/go/Make-lang.in +@@ -89,10 +89,11 @@ GO_TEXI_FILES = \ + $(gcc_docdir)/include/gcc-common.texi \ + gcc-vers.texi + +-doc/gccgo.info: $(GO_TEXI_FILES) ++INFO_GCCGO_NAME = $(shell echo gccgo|sed '$(program_transform_name)') ++doc/$(INFO_GCCGO_NAME).info: $(GO_TEXI_FILES) + if test "x$(BUILD_INFO)" = xinfo; then \ +- rm -f doc/gccgo.info*; \ +- $(MAKEINFO) $(MAKEINFOFLAGS) -I $(gcc_docdir) \ ++ rm -f doc/$(INFO_GCCGO_NAME).info*; \ ++ $(MAKEINFO) $(MAKEINFOFLAGS) $(MAKEINFODEFS) -I $(gcc_docdir) \ + -I $(gcc_docdir)/include -o $@ $<; \ + else true; fi + +@@ -118,7 +119,7 @@ gccgo.pod: go/gccgo.texi + go.all.cross: gccgo-cross$(exeext) + go.start.encap: gccgo$(exeext) + go.rest.encap: +-go.info: doc/gccgo.info ++go.info: doc/$(INFO_GCCGO_NAME).info + go.dvi: doc/gccgo.dvi + go.pdf: doc/gccgo.pdf + go.html: $(build_htmldir)/go/index.html +@@ -154,7 +155,7 @@ go.install-common: installdirs + + go.install-plugin: + +-go.install-info: $(DESTDIR)$(infodir)/gccgo.info ++go.install-info: $(DESTDIR)$(infodir)/$(INFO_GCCGO_NAME).info + + go.install-pdf: doc/gccgo.pdf + @$(NORMAL_INSTALL) +@@ -194,7 +195,7 @@ go.uninstall: + rm -rf $(DESTDIR)$(bindir)/$(GCCGO_INSTALL_NAME)$(exeext) + rm -rf $(DESTDIR)$(man1dir)/$(GCCGO_INSTALL_NAME)$(man1ext) + rm -rf $(DESTDIR)$(bindir)/$(GCCGO_TARGET_INSTALL_NAME)$(exeext) +- rm -rf $(DESTDIR)$(infodir)/gccgo.info* ++ rm -rf $(DESTDIR)$(infodir)/$(INFO_GCCGO_NAME).info* + + # Clean hooks. + +Index: b/src/gcc/go/gccgo.texi +=================================================================== +--- a/src/gcc/go/gccgo.texi ++++ b/src/gcc/go/gccgo.texi +@@ -50,7 +50,7 @@ man page gfdl(7). + @format + @dircategory Software development + @direntry +-* Gccgo: (gccgo). A GCC-based compiler for the Go language ++* @value{fngccgo}: (@value{fngccgo}). A GCC-based compiler for the Go language + @end direntry + @end format + +@@ -124,7 +124,7 @@ and the Info entries for @file{gccgo} an + + The @command{gccgo} command is a frontend to @command{gcc} and + supports many of the same options. @xref{Option Summary, , Option +-Summary, gcc, Using the GNU Compiler Collection (GCC)}. This manual ++Summary, @value{fngcc}, Using the GNU Compiler Collection (GCC)}. This manual + only documents the options specific to @command{gccgo}. + + The @command{gccgo} command may be used to compile Go source code into +Index: b/src/libquadmath/libquadmath.texi +=================================================================== +--- a/src/libquadmath/libquadmath.texi ++++ b/src/libquadmath/libquadmath.texi +@@ -25,7 +25,7 @@ copy and modify this GNU manual. + @ifinfo + @dircategory GNU Libraries + @direntry +-* libquadmath: (libquadmath). GCC Quad-Precision Math Library ++* @value{fnlibquadmath}: (@value{fnlibquadmath}). GCC Quad-Precision Math Library + @end direntry + + This manual documents the GCC Quad-Precision Math Library API. +Index: b/src/libquadmath/Makefile.am +=================================================================== +--- a/src/libquadmath/Makefile.am ++++ b/src/libquadmath/Makefile.am +@@ -133,22 +133,24 @@ endif + + all-local: $(STAMP_GENINSRC) + +-stamp-geninsrc: libquadmath.info +- cp -p $(top_builddir)/libquadmath.info $(srcdir)/libquadmath.info ++INFO_LIBQMATH_NAME = $(shell echo libquadmath|sed '$(program_transform_name)') ++ ++stamp-geninsrc: $(INFO_LIBQMATH_NAME).info ++ cp -p $(top_builddir)/$(INFO_LIBQMATH_NAME).info $(srcdir)/libquadmath.info + @touch $@ + + stamp-build-info: libquadmath.texi $(libquadmath_TEXINFOS) +- $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libquadmath.info $(srcdir)/libquadmath.texi ++ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o $(INFO_LIBQMATH_NAME).info $(srcdir)/libquadmath.texi + @touch $@ + +-CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libquadmath.info +-MAINTAINERCLEANFILES = $(srcdir)/libquadmath.info ++CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) $(INFO_LIBQMATH_NAME).info ++MAINTAINERCLEANFILES = $(srcdir)/$(INFO_LIBQMATH_NAME).info + + endif BUILD_LIBQUADMATH + + # Unconditionally override this target, so that automake's definition + # does not wrongly interfere. +-libquadmath.info: $(STAMP_BUILD_INFO) ++$(INFO_LIBQMATH_NAME).info: $(STAMP_BUILD_INFO) + + + # Automake Documentation: +Index: b/src/libquadmath/Makefile.in +=================================================================== +--- a/src/libquadmath/Makefile.in ++++ b/src/libquadmath/Makefile.in +@@ -193,7 +193,8 @@ MULTIDIRS = + MULTISUBDIR = + MULTIDO = true + MULTICLEAN = true +-INFO_DEPS = libquadmath.info ++INFO_LIBQMATH_NAME = $(shell echo libquadmath|sed '$(program_transform_name)') ++INFO_DEPS = $(INFO_LIBQMATH_NAME).info + am__TEXINFO_TEX_DIR = $(srcdir)/../gcc/doc/include + DVIS = libquadmath.dvi + PDFS = libquadmath.pdf +@@ -436,8 +437,8 @@ AUTOMAKE_OPTIONS = 1.8 foreign + + # AM_CONDITIONAL on configure check ACX_CHECK_PROG_VER([MAKEINFO]) + @BUILD_INFO_TRUE@@BUILD_LIBQUADMATH_TRUE@STAMP_BUILD_INFO = stamp-build-info +-@BUILD_LIBQUADMATH_TRUE@CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) libquadmath.info +-@BUILD_LIBQUADMATH_TRUE@MAINTAINERCLEANFILES = $(srcdir)/libquadmath.info ++@BUILD_LIBQUADMATH_TRUE@CLEANFILES = $(STAMP_GENINSRC) $(STAMP_BUILD_INFO) $(INFO_LIBQMATH_NAME).info ++@BUILD_LIBQUADMATH_TRUE@MAINTAINERCLEANFILES = $(srcdir)/$(INFO_LIBQMATH_NAME).info + + # Automake Documentation: + # If your package has Texinfo files in many directories, you can use the +@@ -1518,17 +1519,17 @@ uninstall-am: uninstall-dvi-am uninstall + + @BUILD_LIBQUADMATH_TRUE@all-local: $(STAMP_GENINSRC) + +-@BUILD_LIBQUADMATH_TRUE@stamp-geninsrc: libquadmath.info +-@BUILD_LIBQUADMATH_TRUE@ cp -p $(top_builddir)/libquadmath.info $(srcdir)/libquadmath.info ++@BUILD_LIBQUADMATH_TRUE@stamp-geninsrc: $(INFO_LIBQMATH_NAME).info ++@BUILD_LIBQUADMATH_TRUE@ cp -p $(top_builddir)/$(INFO_LIBQMATH_NAME).info $(srcdir)/$(INFO_LIBQMATH_NAME).info + @BUILD_LIBQUADMATH_TRUE@ @touch $@ + + @BUILD_LIBQUADMATH_TRUE@stamp-build-info: libquadmath.texi $(libquadmath_TEXINFOS) +-@BUILD_LIBQUADMATH_TRUE@ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o libquadmath.info $(srcdir)/libquadmath.texi ++@BUILD_LIBQUADMATH_TRUE@ $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) -o $(INFO_LIBQMATH_NAME).info $(srcdir)/libquadmath.texi + @BUILD_LIBQUADMATH_TRUE@ @touch $@ + + # Unconditionally override this target, so that automake's definition + # does not wrongly interfere. +-libquadmath.info: $(STAMP_BUILD_INFO) ++$(INFO_LIBQMATH_NAME).info: $(STAMP_BUILD_INFO) + + libquadmath-vers.texi: + echo "@set BUGURL $(REPORT_BUGS_TEXI)" > $@ diff --git a/debian/patches/skip-bootstrap-multilib.diff b/debian/patches/skip-bootstrap-multilib.diff new file mode 100644 index 0000000..80ab31c --- /dev/null +++ b/debian/patches/skip-bootstrap-multilib.diff @@ -0,0 +1,49 @@ +# DP: Skip non-default multilib and libstdc++-v3 debug builds in bootstrap builds + +Index: b/src/config-ml.in +=================================================================== +--- a/src/config-ml.in ++++ b/src/config-ml.in +@@ -479,6 +479,17 @@ esac + # Tests like `if [ -n "$multidirs" ]' require it. + multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 's/[ ][ ]*/ /g'` + ++# stage1 and stage2 builds of the non-default multilib configurations ++# are not needed; skip these to save some build time. ++if [ -f ../../stage_final ] && [ -f ../../stage_current ]; then ++ stage_final=`cat ../../stage_final` ++ stage_current=`cat ../../stage_current` ++ if [ "$stage_current" != "$stage_final" ]; then ++ echo "Skip `basename $ml_realsrcdir` non-default multilibs for bootstrap stage $stage_current" ++ multidirs= ++ fi ++fi ++ + # Add code to library's top level makefile to handle building the multilib + # subdirs. + +Index: b/src/libstdc++-v3/acinclude.m4 +=================================================================== +--- a/src/libstdc++-v3/acinclude.m4 ++++ b/src/libstdc++-v3/acinclude.m4 +@@ -2895,7 +2895,20 @@ dnl + AC_DEFUN([GLIBCXX_ENABLE_DEBUG], [ + AC_MSG_CHECKING([for additional debug build]) + GLIBCXX_ENABLE(libstdcxx-debug,$1,,[build extra debug library]) ++ if test x$enable_libstdcxx_debug = xyes; then ++ if test -f $toplevel_builddir/../stage_final && test -f $toplevel_builddir/../stage_current; then ++ stage_final=`cat $toplevel_builddir/../stage_final` ++ stage_current=`cat $toplevel_builddir/../stage_current` ++ if test x$stage_current != x$stage_final ; then ++ skip_debug_build=yes ++ enable_libstdcxx_debug=no ++ fi ++ fi ++ fi + AC_MSG_RESULT($enable_libstdcxx_debug) ++ if test x$skip_debug_build = xyes ; then ++ AC_MSG_NOTICE([Skip libstdc++-v3 debug build for bootstrap stage $stage_current]) ++ fi + GLIBCXX_CONDITIONAL(GLIBCXX_BUILD_DEBUG, test $enable_libstdcxx_debug = yes) + ]) + diff --git a/debian/patches/sparc64-biarch-long-double-128.diff b/debian/patches/sparc64-biarch-long-double-128.diff new file mode 100644 index 0000000..8cf8e2d --- /dev/null +++ b/debian/patches/sparc64-biarch-long-double-128.diff @@ -0,0 +1,35 @@ +# DP: Fix --with-long-double-128 for sparc32 when defaulting to 64-bit. + +On sparc, the --with-long-double-128 option doesn't change anything for +a 64-bit compiler, as it always default to 128-bit long doubles. For +a 32/64-bit compiler defaulting to 32-bit this correctly control the +size of long double of the 32-bit compiler, however for a 32/64-bit +compiler defaulting to 64-bit, the built-in specs force the +-mlong-double-64 option. This makes the option useless in this case. + +The patch below fixes that by removing the -mlong-double-64 from the +built-in spec, using the default instead. + +Changelog gcc/ + +2013-12-04 Aurelien Jarno + + * config/sparc/linux64.h (CC1_SPEC): When defaulting to 64-bit, + don't force -mlong-double-64 when -m32 or -mv8plus is given. + +Index: b/src/gcc/config/sparc/linux64.h +=================================================================== +--- a/src/gcc/config/sparc/linux64.h ++++ b/src/gcc/config/sparc/linux64.h +@@ -154,9 +154,9 @@ extern const char *host_detect_local_cpu + #else + #define CC1_SPEC "%{profile:-p} \ + %{m32:%{m64:%emay not use both -m32 and -m64}} \ +-%{m32:-mptr32 -mno-stack-bias %{!mlong-double-128:-mlong-double-64} \ ++%{m32:-mptr32 -mno-stack-bias \ + %{!mcpu*:-mcpu=cypress}} \ +-%{mv8plus:-mptr32 -mno-stack-bias %{!mlong-double-128:-mlong-double-64} \ ++%{mv8plus:-mptr32 -mno-stack-bias \ + %{!mcpu*:-mcpu=v9}} \ + %{!m32:%{!mcpu*:-mcpu=ultrasparc}} \ + %{!mno-vis:%{!m32:%{!mcpu=v9:-mvis}}} \ diff --git a/debian/patches/svn-doc-updates.diff b/debian/patches/svn-doc-updates.diff new file mode 100644 index 0000000..fe0b32e --- /dev/null +++ b/debian/patches/svn-doc-updates.diff @@ -0,0 +1,6 @@ +# DP: updates from the 6 branch upto 2017xxyy (documentation). + +svn diff svn://gcc.gnu.org/svn/gcc/tags/gcc_7_1_0_release svn://gcc.gnu.org/svn/gcc/branches/gcc-5-branch \ + | sed -r 's,^--- (\S+)\t(\S+)(.*)$,--- a/src/\1\t\2,;s,^\+\+\+ (\S+)\t(\S+)(.*)$,+++ b/src/\1\t\2,' \ + | awk '/^Index:.*\.texi/ {skip=0; print; next} /^Index:/ {skip=1; next} skip==0' + diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff new file mode 100644 index 0000000..745de99 --- /dev/null +++ b/debian/patches/svn-updates.diff @@ -0,0 +1,97602 @@ +# DP: updates from the 7 branch upto 20170808 (r250964). + +last_update() +{ + cat > ${dir}LAST_UPDATED ++ ++ PR c++/81130 ++ * testsuite/libgomp.c++/pr81130.C: New test. ++ ++2017-06-02 Jakub Jelinek ++ ++ Backported from mainline ++ 2017-05-30 Jakub Jelinek ++ ++ PR libgomp/80822 ++ * config/linux/affinity.c (gomp_affinity_init_level_1): New function. ++ (gomp_affinity_init_level): Use it. Always analyze the core and thread ++ sibling lists, depending on level just pick up what CPUs to put ++ together into a place vs. whether add multiple ordered places. ++ ++2017-05-26 Jakub Jelinek ++ ++ Backported from mainline ++ 2017-05-22 Jakub Jelinek ++ ++ PR middle-end/80809 ++ * testsuite/libgomp.c/pr80809-2.c: New test. ++ * testsuite/libgomp.c/pr80809-3.c: New test. ++ ++ PR middle-end/80809 ++ * testsuite/libgomp.c/pr80809-1.c: New test. ++ ++ PR middle-end/80853 ++ * testsuite/libgomp.c/pr80853.c: New test. ++ + 2017-05-02 Release Manager + + * GCC 7.1.0 released. +Index: libgomp/testsuite/libgomp.c++/pr81130.C +=================================================================== +--- a/src/libgomp/testsuite/libgomp.c++/pr81130.C (.../tags/gcc_7_1_0_release) ++++ b/src/libgomp/testsuite/libgomp.c++/pr81130.C (.../branches/gcc-7-branch) +@@ -0,0 +1,41 @@ ++// PR c++/81130 ++// { dg-do run } ++ ++struct A ++{ ++ A (); ++ ~A (); ++ int a; ++}; ++ ++A::A () ++{ ++ a = 0; ++} ++ ++A::~A () ++{ ++} ++ ++struct B ++{ ++ A b; ++ int c; ++ B () : c (1) ++ { ++#pragma omp parallel shared (b, c) num_threads (2) ++#pragma omp master ++ { ++ b.a++; ++ c += 2; ++ } ++ } ++}; ++ ++int ++main () ++{ ++ B v; ++ if (v.b.a != 1 || v.c != 3) ++ __builtin_abort (); ++} +Index: libgomp/testsuite/libgomp.c/pr80809-1.c +=================================================================== +--- a/src/libgomp/testsuite/libgomp.c/pr80809-1.c (.../tags/gcc_7_1_0_release) ++++ b/src/libgomp/testsuite/libgomp.c/pr80809-1.c (.../branches/gcc-7-branch) +@@ -0,0 +1,29 @@ ++/* PR middle-end/80809 */ ++/* { dg-do run } */ ++ ++__attribute__((noinline, noclone)) void ++foo (int x) ++{ ++ int i, j, v[x], *w[16]; ++ for (i = 0; i < x; i++) ++ v[i] = i; ++#pragma omp parallel ++#pragma omp single ++ for (i = 0; i < 16; i++) ++ /* Make sure v is implicitly determined shared in task, because it ++ is shared on the parallel. */ ++#pragma omp task private (j) ++ w[i] = v; ++ for (i = 0; i < 16; i++) ++ if (w[i] != v) ++ __builtin_abort (); ++} ++ ++int ++main () ++{ ++ foo (4); ++ foo (27); ++ foo (196); ++ return 0; ++} +Index: libgomp/testsuite/libgomp.c/pr80853.c +=================================================================== +--- a/src/libgomp/testsuite/libgomp.c/pr80853.c (.../tags/gcc_7_1_0_release) ++++ b/src/libgomp/testsuite/libgomp.c/pr80853.c (.../branches/gcc-7-branch) +@@ -0,0 +1,29 @@ ++/* PR middle-end/80853 */ ++/* { dg-do run } */ ++ ++__attribute__((noinline, noclone)) void ++foo (int *p) ++{ ++ #pragma omp for reduction(+:p[:4]) ++ for (int i = 0; i < 64; i++) ++ { ++ p[0] += i; ++ p[1] += i / 2; ++ p[2] += 2 * i; ++ p[3] += 3 * i; ++ } ++} ++ ++int ++main () ++{ ++ int p[4] = { 0, 0, 0, 0 }; ++ #pragma omp parallel ++ foo (p); ++ if (p[0] != 63 * 64 / 2 ++ || p[1] != 31 * 32 ++ || p[2] != 63 * 64 ++ || p[3] != 3 * 63 * 64 / 2) ++ __builtin_abort (); ++ return 0; ++} +Index: libgomp/testsuite/libgomp.c/pr80809-2.c +=================================================================== +--- a/src/libgomp/testsuite/libgomp.c/pr80809-2.c (.../tags/gcc_7_1_0_release) ++++ b/src/libgomp/testsuite/libgomp.c/pr80809-2.c (.../branches/gcc-7-branch) +@@ -0,0 +1,35 @@ ++/* PR middle-end/80809 */ ++/* { dg-do run } */ ++ ++__attribute__((noinline, noclone)) void ++foo (int x) ++{ ++ int i, v[x], w[16]; ++ for (i = 0; i < x; i++) ++ v[i] = i; ++ for (i = 0; i < 16; i++) ++ w[i] = 0; ++#pragma omp parallel ++#pragma omp single ++ for (i = 0; i < 16; i++) ++#pragma omp task firstprivate (v) ++ { ++ int j; ++ for (j = 0; j < x; j++) ++ v[j] += i; ++ for (j = 0; j < x; j++) ++ w[i] += v[j]; ++ } ++ for (i = 0; i < 16; i++) ++ if (w[i] != (x - 1) * x / 2 + x * i) ++ __builtin_abort (); ++} ++ ++int ++main () ++{ ++ foo (4); ++ foo (27); ++ foo (196); ++ return 0; ++} +Index: libgomp/testsuite/libgomp.c/pr80809-3.c +=================================================================== +--- a/src/libgomp/testsuite/libgomp.c/pr80809-3.c (.../tags/gcc_7_1_0_release) ++++ b/src/libgomp/testsuite/libgomp.c/pr80809-3.c (.../branches/gcc-7-branch) +@@ -0,0 +1,42 @@ ++/* PR middle-end/80809 */ ++/* { dg-do run } */ ++ ++__attribute__((noinline, noclone)) void ++foo (int x) ++{ ++ int i, v[x], w[16]; ++ for (i = 0; i < x; i++) ++ v[i] = i; ++ for (i = 0; i < 16; i++) ++ w[i] = 0; ++#pragma omp parallel ++#pragma omp single ++ { ++ int z[x]; ++ for (i = 0; i < x; i++) ++ z[0] = 0; ++ for (i = 0; i < 16; i++) ++#pragma omp task firstprivate (z) firstprivate (v) ++ { ++ int j; ++ for (j = 0; j < x; j++) ++ z[j] = i; ++ for (j = 0; j < x; j++) ++ v[j] += z[j]; ++ for (j = 0; j < x; j++) ++ w[i] += v[j]; ++ } ++ } ++ for (i = 0; i < 16; i++) ++ if (w[i] != (x - 1) * x / 2 + x * i) ++ __builtin_abort (); ++} ++ ++int ++main () ++{ ++ foo (4); ++ foo (27); ++ foo (196); ++ return 0; ++} +Index: libgomp/config/linux/affinity.c +=================================================================== +--- a/src/libgomp/config/linux/affinity.c (.../tags/gcc_7_1_0_release) ++++ b/src/libgomp/config/linux/affinity.c (.../branches/gcc-7-branch) +@@ -222,10 +222,87 @@ + return true; + } + ++static void ++gomp_affinity_init_level_1 (int level, int this_level, unsigned long count, ++ cpu_set_t *copy, char *name, bool quiet) ++{ ++ size_t prefix_len = sizeof ("/sys/devices/system/cpu/cpu") - 1; ++ FILE *f; ++ char *line = NULL; ++ size_t linelen = 0; ++ unsigned long i, max = 8 * gomp_cpuset_size; ++ ++ for (i = 0; i < max && gomp_places_list_len < count; i++) ++ if (CPU_ISSET_S (i, gomp_cpuset_size, copy)) ++ { ++ sprintf (name + prefix_len, "%lu/topology/%s_siblings_list", ++ i, this_level == 3 ? "core" : "thread"); ++ f = fopen (name, "r"); ++ if (f == NULL) ++ { ++ CPU_CLR_S (i, gomp_cpuset_size, copy); ++ continue; ++ } ++ if (getline (&line, &linelen, f) > 0) ++ { ++ char *p = line; ++ void *pl = gomp_places_list[gomp_places_list_len]; ++ if (level == this_level) ++ gomp_affinity_init_place (pl); ++ while (*p && *p != '\n') ++ { ++ unsigned long first, last; ++ errno = 0; ++ first = strtoul (p, &p, 10); ++ if (errno) ++ break; ++ last = first; ++ if (*p == '-') ++ { ++ errno = 0; ++ last = strtoul (p + 1, &p, 10); ++ if (errno || last < first) ++ break; ++ } ++ for (; first <= last; first++) ++ if (!CPU_ISSET_S (first, gomp_cpuset_size, copy)) ++ continue; ++ else if (this_level == 3 && level < this_level) ++ gomp_affinity_init_level_1 (level, 2, count, copy, ++ name, quiet); ++ else ++ { ++ if (level == 1) ++ { ++ pl = gomp_places_list[gomp_places_list_len]; ++ gomp_affinity_init_place (pl); ++ } ++ if (gomp_affinity_add_cpus (pl, first, 1, 0, true)) ++ { ++ CPU_CLR_S (first, gomp_cpuset_size, copy); ++ if (level == 1) ++ gomp_places_list_len++; ++ } ++ } ++ if (*p == ',') ++ ++p; ++ } ++ if (level == this_level ++ && !CPU_ISSET_S (i, gomp_cpuset_size, copy)) ++ gomp_places_list_len++; ++ CPU_CLR_S (i, gomp_cpuset_size, copy); ++ } ++ fclose (f); ++ } ++ free (line); ++} ++ + bool + gomp_affinity_init_level (int level, unsigned long count, bool quiet) + { +- unsigned long i, max = 8 * gomp_cpuset_size; ++ char name[sizeof ("/sys/devices/system/cpu/cpu/topology/" ++ "thread_siblings_list") + 3 * sizeof (unsigned long)]; ++ cpu_set_t *copy; + + if (gomp_cpusetp) + { +@@ -238,90 +315,20 @@ + gomp_places_list_len = 0; + if (gomp_places_list == NULL) + return false; +- /* SMT (threads). */ +- if (level == 1) ++ ++ copy = gomp_alloca (gomp_cpuset_size); ++ strcpy (name, "/sys/devices/system/cpu/cpu"); ++ memcpy (copy, gomp_cpusetp, gomp_cpuset_size); ++ gomp_affinity_init_level_1 (level, 3, count, copy, name, quiet); ++ if (gomp_places_list_len == 0) + { +- for (i = 0; i < max && gomp_places_list_len < count; i++) +- if (CPU_ISSET_S (i, gomp_cpuset_size, gomp_cpusetp)) +- { +- gomp_affinity_init_place (gomp_places_list[gomp_places_list_len]); +- gomp_affinity_add_cpus (gomp_places_list[gomp_places_list_len], +- i, 1, 0, true); +- ++gomp_places_list_len; +- } +- return true; ++ if (!quiet) ++ gomp_error ("Error reading core/socket topology"); ++ free (gomp_places_list); ++ gomp_places_list = NULL; ++ return false; + } +- else +- { +- char name[sizeof ("/sys/devices/system/cpu/cpu/topology/" +- "thread_siblings_list") + 3 * sizeof (unsigned long)]; +- size_t prefix_len = sizeof ("/sys/devices/system/cpu/cpu") - 1; +- cpu_set_t *copy = gomp_alloca (gomp_cpuset_size); +- FILE *f; +- char *line = NULL; +- size_t linelen = 0; +- +- memcpy (name, "/sys/devices/system/cpu/cpu", prefix_len); +- memcpy (copy, gomp_cpusetp, gomp_cpuset_size); +- for (i = 0; i < max && gomp_places_list_len < count; i++) +- if (CPU_ISSET_S (i, gomp_cpuset_size, copy)) +- { +- sprintf (name + prefix_len, "%lu/topology/%s_siblings_list", +- i, level == 2 ? "thread" : "core"); +- f = fopen (name, "r"); +- if (f != NULL) +- { +- if (getline (&line, &linelen, f) > 0) +- { +- char *p = line; +- bool seen_i = false; +- void *pl = gomp_places_list[gomp_places_list_len]; +- gomp_affinity_init_place (pl); +- while (*p && *p != '\n') +- { +- unsigned long first, last; +- errno = 0; +- first = strtoul (p, &p, 10); +- if (errno) +- break; +- last = first; +- if (*p == '-') +- { +- errno = 0; +- last = strtoul (p + 1, &p, 10); +- if (errno || last < first) +- break; +- } +- for (; first <= last; first++) +- if (CPU_ISSET_S (first, gomp_cpuset_size, copy) +- && gomp_affinity_add_cpus (pl, first, 1, 0, +- true)) +- { +- CPU_CLR_S (first, gomp_cpuset_size, copy); +- if (first == i) +- seen_i = true; +- } +- if (*p == ',') +- ++p; +- } +- if (seen_i) +- gomp_places_list_len++; +- } +- fclose (f); +- } +- } +- if (gomp_places_list_len == 0) +- { +- if (!quiet) +- gomp_error ("Error reading %s topology", +- level == 2 ? "core" : "socket"); +- free (gomp_places_list); +- gomp_places_list = NULL; +- return false; +- } +- return true; +- } +- return false; ++ return true; + } + + void +Index: libquadmath/ChangeLog +=================================================================== +--- a/src/libquadmath/ChangeLog (.../tags/gcc_7_1_0_release) ++++ b/src/libquadmath/ChangeLog (.../branches/gcc-7-branch) +@@ -1,3 +1,8 @@ ++2017-07-20 Jakub Jelinek ++ ++ PR libquadmath/65757 ++ * math/roundq.c: Cherry-pick upstream glibc 2015-04-28 change. ++ + 2017-05-02 Release Manager + + * GCC 7.1.0 released. +Index: libquadmath/math/roundq.c +=================================================================== +--- a/src/libquadmath/math/roundq.c (.../tags/gcc_7_1_0_release) ++++ b/src/libquadmath/math/roundq.c (.../branches/gcc-7-branch) +@@ -1,5 +1,5 @@ + /* Round __float128 to integer away from zero. +- Copyright (C) 1997, 1999 Free Software Foundation, Inc. ++ Copyright (C) 1997-2017 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Ulrich Drepper , 1997 and + Jakub Jelinek , 1999. +@@ -32,7 +32,7 @@ + + GET_FLT128_WORDS64 (i0, i1, x); + j0 = ((i0 >> 48) & 0x7fff) - 0x3fff; +- if (j0 < 31) ++ if (j0 < 48) + { + if (j0 < 0) + { +Index: libsanitizer/sanitizer_common/sanitizer_linux.cc +=================================================================== +--- a/src/libsanitizer/sanitizer_common/sanitizer_linux.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libsanitizer/sanitizer_common/sanitizer_linux.cc (.../branches/gcc-7-branch) +@@ -605,8 +605,7 @@ + } + #endif + +-uptr internal_sigaltstack(const struct sigaltstack *ss, +- struct sigaltstack *oss) { ++uptr internal_sigaltstack(const void *ss, void *oss) { + return internal_syscall(SYSCALL(sigaltstack), (uptr)ss, (uptr)oss); + } + +Index: libsanitizer/sanitizer_common/sanitizer_linux.h +=================================================================== +--- a/src/libsanitizer/sanitizer_common/sanitizer_linux.h (.../tags/gcc_7_1_0_release) ++++ b/src/libsanitizer/sanitizer_common/sanitizer_linux.h (.../branches/gcc-7-branch) +@@ -19,7 +19,6 @@ + #include "sanitizer_platform_limits_posix.h" + + struct link_map; // Opaque type returned by dlopen(). +-struct sigaltstack; + + namespace __sanitizer { + // Dirent structure for getdents(). Note that this structure is different from +@@ -28,8 +27,7 @@ + + // Syscall wrappers. + uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count); +-uptr internal_sigaltstack(const struct sigaltstack* ss, +- struct sigaltstack* oss); ++uptr internal_sigaltstack(const void* ss, void* oss); + uptr internal_sigprocmask(int how, __sanitizer_sigset_t *set, + __sanitizer_sigset_t *oldset); + +Index: libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc +=================================================================== +--- a/src/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libsanitizer/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc (.../branches/gcc-7-branch) +@@ -273,7 +273,7 @@ + + // Alternate stack for signal handling. + InternalScopedBuffer handler_stack_memory(kHandlerStackSize); +- struct sigaltstack handler_stack; ++ stack_t handler_stack; + internal_memset(&handler_stack, 0, sizeof(handler_stack)); + handler_stack.ss_sp = handler_stack_memory.data(); + handler_stack.ss_size = kHandlerStackSize; +Index: libsanitizer/ChangeLog +=================================================================== +--- a/src/libsanitizer/ChangeLog (.../tags/gcc_7_1_0_release) ++++ b/src/libsanitizer/ChangeLog (.../branches/gcc-7-branch) +@@ -1,3 +1,14 @@ ++2017-07-17 Jakub Jelinek ++ ++ Backported from mainline ++ 2017-07-14 Jakub Jelinek ++ ++ PR sanitizer/81066 ++ * sanitizer_common/sanitizer_linux.h: Cherry-pick upstream r307969. ++ * sanitizer_common/sanitizer_linux.cc: Likewise. ++ * sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc: Likewise. ++ * tsan/tsan_platform_linux.cc: Likewise. ++ + 2017-05-02 Release Manager + + * GCC 7.1.0 released. +Index: libsanitizer/tsan/tsan_platform_linux.cc +=================================================================== +--- a/src/libsanitizer/tsan/tsan_platform_linux.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libsanitizer/tsan/tsan_platform_linux.cc (.../branches/gcc-7-branch) +@@ -287,7 +287,7 @@ + int ExtractResolvFDs(void *state, int *fds, int nfd) { + #if SANITIZER_LINUX && !SANITIZER_ANDROID + int cnt = 0; +- __res_state *statp = (__res_state*)state; ++ struct __res_state *statp = (struct __res_state*)state; + for (int i = 0; i < MAXNS && cnt < nfd; i++) { + if (statp->_u._ext.nsaddrs[i] && statp->_u._ext.nssocks[i] != -1) + fds[cnt++] = statp->_u._ext.nssocks[i]; +Index: libstdc++-v3/configure +=================================================================== +--- a/src/libstdc++-v3/configure (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/configure (.../branches/gcc-7-branch) +@@ -79268,7 +79268,7 @@ + fi + + # For libtool versioning info, format is CURRENT:REVISION:AGE +-libtool_VERSION=6:23:0 ++libtool_VERSION=6:24:0 + + # Everything parsed; figure out what files and settings to use. + case $enable_symvers in +Index: libstdc++-v3/doc/xml/manual/mt_allocator.xml +=================================================================== +--- a/src/libstdc++-v3/doc/xml/manual/mt_allocator.xml (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/xml/manual/mt_allocator.xml (.../branches/gcc-7-branch) +@@ -307,7 +307,7 @@ + as part of a container's constructor. However, this assumption is + implementation-specific, and subject to change. For an example of a + pool that frees memory, see the following +- ++ + example. + + +Index: libstdc++-v3/doc/xml/manual/allocator.xml +=================================================================== +--- a/src/libstdc++-v3/doc/xml/manual/allocator.xml (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/xml/manual/allocator.xml (.../branches/gcc-7-branch) +@@ -185,8 +185,8 @@ + Over multiple iterations, various STL container + objects have elements inserted to some maximum amount. A variety + of allocators are tested. +- Test source for sequence +- and associative ++ Test source for sequence ++ and associative + containers. + + +@@ -201,7 +201,7 @@ + on a per-thread basis, as well as measuring thread contention + for memory resources. + Test source +- here. ++ here. + + + +@@ -211,9 +211,9 @@ + + + Test source for +- sequence ++ sequence + and +- associative ++ associative + containers. + + +Index: libstdc++-v3/doc/xml/manual/intro.xml +=================================================================== +--- a/src/libstdc++-v3/doc/xml/manual/intro.xml (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/xml/manual/intro.xml (.../branches/gcc-7-branch) +@@ -1119,6 +1119,29 @@ + arguments and store them directly as the target object. + + ++ 2802: ++ Add noexcept to several shared_ptr related ++ functions ++ ++ ++ Add noexcept. ++ ++ ++ 2873: ++ shared_ptr constructor requirements for a deleter ++ ++ ++ Use rvalues for deleters. ++ ++ ++ 2942: ++ LWG 2873's resolution missed ++ weak_ptr::owner_before ++ ++ ++ Add noexcept. ++ ++ + + + +Index: libstdc++-v3/doc/xml/manual/abi.xml +=================================================================== +--- a/src/libstdc++-v3/doc/xml/manual/abi.xml (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/xml/manual/abi.xml (.../branches/gcc-7-branch) +@@ -264,6 +264,9 @@ + GCC 4.8.3: libstdc++.so.6.0.19 + GCC 4.9.0: libstdc++.so.6.0.20 + GCC 5.1.0: libstdc++.so.6.0.21 ++ GCC 6.1.0: libstdc++.so.6.0.22 ++ GCC 7.1.0: libstdc++.so.6.0.23 ++ GCC 7.2.0: libstdc++.so.6.0.24 + + + Note 1: Error should be libstdc++.so.3.0.3. +@@ -331,6 +334,8 @@ + GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8 + GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9 + GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10 ++ GCC 7.1.0: GLIBCXX_3.4.23, CXXABI_1.3.11 ++ GCC 7.2.0: GLIBCXX_3.4.24, CXXABI_1.3.11 + + + +Index: libstdc++-v3/doc/xml/manual/status_cxx2017.xml +=================================================================== +--- a/src/libstdc++-v3/doc/xml/manual/status_cxx2017.xml (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/xml/manual/status_cxx2017.xml (.../branches/gcc-7-branch) +@@ -878,7 +878,6 @@ + + + +- + + + N4519 +@@ -885,7 +884,7 @@ + + + Source-Code Information Capture +- N ++ Y + Library Fundamentals 2 TS + + +Index: libstdc++-v3/doc/xml/manual/build_hacking.xml +=================================================================== +--- a/src/libstdc++-v3/doc/xml/manual/build_hacking.xml (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/xml/manual/build_hacking.xml (.../branches/gcc-7-branch) +@@ -474,6 +474,14 @@ + latestp variable). + + ++ ++Add the library (libstdc++.so.6.0.X) ++and symbols versions ++(GLIBCXX_3.4.X and CXXABI_1.3.Y) ++to the History section in ++doc/xml/manual/abi.xml at the relevant places. ++ ++ + + + +Index: libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml +=================================================================== +--- a/src/libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml (.../branches/gcc-7-branch) +@@ -89,7 +89,7 @@ + + + The graphic below show the results for the native +- and collision-chaining hash types the the function ++ and collision-chaining hash types the function + applied being a text find timing test using + find. + +Index: libstdc++-v3/doc/xml/manual/policy_data_structures.xml +=================================================================== +--- a/src/libstdc++-v3/doc/xml/manual/policy_data_structures.xml (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/xml/manual/policy_data_structures.xml (.../branches/gcc-7-branch) +@@ -169,7 +169,7 @@ + push and pop operations, differs from the + others in terms of its invalidation guarantees. Other design + decisions also impact the cost and placement of the overhead, at the +- expense of more difference in the the kinds of operations that the ++ expense of more difference in the kinds of operations that the + underlying data structure can support. These differences pose a + challenge when creating a uniform interface for priority queues. + +Index: libstdc++-v3/doc/xml/manual/appendix_contributing.xml +=================================================================== +--- a/src/libstdc++-v3/doc/xml/manual/appendix_contributing.xml (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/xml/manual/appendix_contributing.xml (.../branches/gcc-7-branch) +@@ -358,7 +358,9 @@ + library. Support for "make check" and "make check-install" is + complete, and runs through all the subdirectories here when this + command is issued from the build directory. Please note that +- "make check" requires DejaGNU 1.4 or later to be installed. ++ "make check" requires DejaGnu 1.4 or later to be installed, ++ or for extra permutations ++ DejaGnu 1.5.3 or later. + + + +@@ -898,7 +900,7 @@ + Examples: _S_max_elements _S_default_value + + Don't use names in the same scope that differ only in the prefix, +- e.g. _S_top and _M_top. See BADNAMES for a list of forbidden names. ++ e.g. _S_top and _M_top. See BADNAMES for a list of forbidden names. + (The most tempting of these seem to be and "_T" and "__sz".) + + Names must never have "__" internally; it would confuse name +Index: libstdc++-v3/doc/xml/manual/test.xml +=================================================================== +--- a/src/libstdc++-v3/doc/xml/manual/test.xml (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/xml/manual/test.xml (.../branches/gcc-7-branch) +@@ -569,7 +569,7 @@ + For example, to run the tests with + + you could use: +- make RUNTESTFLAGS=--target_board=unix/-O1/-D_GLIBCXX_ASSERTIONS ++ make check RUNTESTFLAGS=--target_board=unix/-O1/-D_GLIBCXX_ASSERTIONS + + + +@@ -577,7 +577,7 @@ + tests multiple times in different variations. For example, to run the + entire testsuite three times using but with + different options: +- make 'RUNTESTFLAGS=--target_board=unix/-O3\"{-std=gnu++98,-std=gnu++11,-std=gnu++14}\"' ++ make check 'RUNTESTFLAGS=--target_board=unix/-O3\"{-std=gnu++98,-std=gnu++11,-std=gnu++14}\"' + N.B. that set of variations could also be written as + unix/-O3\"{-std=gnu++98,-std=gnu++11,}\" so that + the third variation would use the default for +Index: libstdc++-v3/doc/html/manual/status.html +=================================================================== +--- a/src/libstdc++-v3/doc/html/manual/status.html (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/html/manual/status.html (.../branches/gcc-7-branch) +@@ -824,11 +824,11 @@ + + N4502 + +- Support for the C++ Detection Idiom, V2 YLibrary Fundamentals 2 TS ++ Support for the C++ Detection Idiom, V2 YLibrary Fundamentals 2 TS + + N4519 + +- Source-Code Information Capture NLibrary Fundamentals 2 TS ++ Source-Code Information Capture YLibrary Fundamentals 2 TS + + N4521 + +Index: libstdc++-v3/doc/html/manual/policy_data_structures.html +=================================================================== +--- a/src/libstdc++-v3/doc/html/manual/policy_data_structures.html (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/html/manual/policy_data_structures.html (.../branches/gcc-7-branch) +@@ -172,7 +172,7 @@ + push and pop operations, differs from the + others in terms of its invalidation guarantees. Other design + decisions also impact the cost and placement of the overhead, at the +- expense of more difference in the the kinds of operations that the ++ expense of more difference in the kinds of operations that the + underlying data structure can support. These differences pose a + challenge when creating a uniform interface for priority queues. +

Goals

+Index: libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html +=================================================================== +--- a/src/libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/html/manual/policy_based_data_structures_test.html (.../branches/gcc-7-branch) +@@ -43,7 +43,7 @@ +

+ Results +

The graphic below show the results for the native +- and collision-chaining hash types the the function ++ and collision-chaining hash types the function + applied being a text find timing test using + find. +

+Index: libstdc++-v3/doc/html/manual/abi.html +=================================================================== +--- a/src/libstdc++-v3/doc/html/manual/abi.html (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/html/manual/abi.html (.../branches/gcc-7-branch) +@@ -110,7 +110,7 @@ + has the same filename and DT_SONAME as the + preceding release. +

It is versioned as follows: +-

  • GCC 3.0.0: libstdc++.so.3.0.0

  • GCC 3.0.1: libstdc++.so.3.0.1

  • GCC 3.0.2: libstdc++.so.3.0.2

  • GCC 3.0.3: libstdc++.so.3.0.2 (See Note 1)

  • GCC 3.0.4: libstdc++.so.3.0.4

  • GCC 3.1.0: libstdc++.so.4.0.0 (Incompatible with previous)

  • GCC 3.1.1: libstdc++.so.4.0.1

  • GCC 3.2.0: libstdc++.so.5.0.0 (Incompatible with previous)

  • GCC 3.2.1: libstdc++.so.5.0.1

  • GCC 3.2.2: libstdc++.so.5.0.2

  • GCC 3.2.3: libstdc++.so.5.0.3 (See Note 2)

  • GCC 3.3.0: libstdc++.so.5.0.4

  • GCC 3.3.1: libstdc++.so.5.0.5

  • GCC 3.4.0: libstdc++.so.6.0.0 (Incompatible with previous)

  • GCC 3.4.1: libstdc++.so.6.0.1

  • GCC 3.4.2: libstdc++.so.6.0.2

  • GCC 3.4.3: libstdc++.so.6.0.3

  • GCC 4.0.0: libstdc++.so.6.0.4

  • GCC 4.0.1: libstdc++.so.6.0.5

  • GCC 4.0.2: libstdc++.so.6.0.6

  • GCC 4.0.3: libstdc++.so.6.0.7

  • GCC 4.1.0: libstdc++.so.6.0.7

  • GCC 4.1.1: libstdc++.so.6.0.8

  • GCC 4.2.0: libstdc++.so.6.0.9

  • GCC 4.2.1: libstdc++.so.6.0.9 (See Note 3)

  • GCC 4.2.2: libstdc++.so.6.0.9

  • GCC 4.3.0: libstdc++.so.6.0.10

  • GCC 4.4.0: libstdc++.so.6.0.11

  • GCC 4.4.1: libstdc++.so.6.0.12

  • GCC 4.4.2: libstdc++.so.6.0.13

  • GCC 4.5.0: libstdc++.so.6.0.14

  • GCC 4.6.0: libstdc++.so.6.0.15

  • GCC 4.6.1: libstdc++.so.6.0.16

  • GCC 4.7.0: libstdc++.so.6.0.17

  • GCC 4.8.0: libstdc++.so.6.0.18

  • GCC 4.8.3: libstdc++.so.6.0.19

  • GCC 4.9.0: libstdc++.so.6.0.20

  • GCC 5.1.0: libstdc++.so.6.0.21

++

  • GCC 3.0.0: libstdc++.so.3.0.0

  • GCC 3.0.1: libstdc++.so.3.0.1

  • GCC 3.0.2: libstdc++.so.3.0.2

  • GCC 3.0.3: libstdc++.so.3.0.2 (See Note 1)

  • GCC 3.0.4: libstdc++.so.3.0.4

  • GCC 3.1.0: libstdc++.so.4.0.0 (Incompatible with previous)

  • GCC 3.1.1: libstdc++.so.4.0.1

  • GCC 3.2.0: libstdc++.so.5.0.0 (Incompatible with previous)

  • GCC 3.2.1: libstdc++.so.5.0.1

  • GCC 3.2.2: libstdc++.so.5.0.2

  • GCC 3.2.3: libstdc++.so.5.0.3 (See Note 2)

  • GCC 3.3.0: libstdc++.so.5.0.4

  • GCC 3.3.1: libstdc++.so.5.0.5

  • GCC 3.4.0: libstdc++.so.6.0.0 (Incompatible with previous)

  • GCC 3.4.1: libstdc++.so.6.0.1

  • GCC 3.4.2: libstdc++.so.6.0.2

  • GCC 3.4.3: libstdc++.so.6.0.3

  • GCC 4.0.0: libstdc++.so.6.0.4

  • GCC 4.0.1: libstdc++.so.6.0.5

  • GCC 4.0.2: libstdc++.so.6.0.6

  • GCC 4.0.3: libstdc++.so.6.0.7

  • GCC 4.1.0: libstdc++.so.6.0.7

  • GCC 4.1.1: libstdc++.so.6.0.8

  • GCC 4.2.0: libstdc++.so.6.0.9

  • GCC 4.2.1: libstdc++.so.6.0.9 (See Note 3)

  • GCC 4.2.2: libstdc++.so.6.0.9

  • GCC 4.3.0: libstdc++.so.6.0.10

  • GCC 4.4.0: libstdc++.so.6.0.11

  • GCC 4.4.1: libstdc++.so.6.0.12

  • GCC 4.4.2: libstdc++.so.6.0.13

  • GCC 4.5.0: libstdc++.so.6.0.14

  • GCC 4.6.0: libstdc++.so.6.0.15

  • GCC 4.6.1: libstdc++.so.6.0.16

  • GCC 4.7.0: libstdc++.so.6.0.17

  • GCC 4.8.0: libstdc++.so.6.0.18

  • GCC 4.8.3: libstdc++.so.6.0.19

  • GCC 4.9.0: libstdc++.so.6.0.20

  • GCC 5.1.0: libstdc++.so.6.0.21

  • GCC 6.1.0: libstdc++.so.6.0.22

  • GCC 7.1.0: libstdc++.so.6.0.23

  • GCC 7.2.0: libstdc++.so.6.0.24

+ Note 1: Error should be libstdc++.so.3.0.3. +

+ Note 2: Not strictly required. +@@ -128,7 +128,7 @@ + GLIBCPP_3.2 for symbols that were introduced in the GCC 3.2.0 + release.) If a particular release is not listed, it has the same + version labels as the preceding release. +-

  • GCC 3.0.0: (Error, not versioned)

  • GCC 3.0.1: (Error, not versioned)

  • GCC 3.0.2: (Error, not versioned)

  • GCC 3.0.3: (Error, not versioned)

  • GCC 3.0.4: (Error, not versioned)

  • GCC 3.1.0: GLIBCPP_3.1, CXXABI_1

  • GCC 3.1.1: GLIBCPP_3.1, CXXABI_1

  • GCC 3.2.0: GLIBCPP_3.2, CXXABI_1.2

  • GCC 3.2.1: GLIBCPP_3.2.1, CXXABI_1.2

  • GCC 3.2.2: GLIBCPP_3.2.2, CXXABI_1.2

  • GCC 3.2.3: GLIBCPP_3.2.2, CXXABI_1.2

  • GCC 3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1

  • GCC 3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1

  • GCC 3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1

  • GCC 3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1

  • GCC 3.4.0: GLIBCXX_3.4, CXXABI_1.3

  • GCC 3.4.1: GLIBCXX_3.4.1, CXXABI_1.3

  • GCC 3.4.2: GLIBCXX_3.4.2

  • GCC 3.4.3: GLIBCXX_3.4.3

  • GCC 4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1

  • GCC 4.0.1: GLIBCXX_3.4.5

  • GCC 4.0.2: GLIBCXX_3.4.6

  • GCC 4.0.3: GLIBCXX_3.4.7

  • GCC 4.1.1: GLIBCXX_3.4.8

  • GCC 4.2.0: GLIBCXX_3.4.9

  • GCC 4.3.0: GLIBCXX_3.4.10, CXXABI_1.3.2

  • GCC 4.4.0: GLIBCXX_3.4.11, CXXABI_1.3.3

  • GCC 4.4.1: GLIBCXX_3.4.12, CXXABI_1.3.3

  • GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3

  • GCC 4.5.0: GLIBCXX_3.4.14, CXXABI_1.3.4

  • GCC 4.6.0: GLIBCXX_3.4.15, CXXABI_1.3.5

  • GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5

  • GCC 4.7.0: GLIBCXX_3.4.17, CXXABI_1.3.6

  • GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7

  • GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7

  • GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8

  • GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9

  • GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10

  • Incremental bumping of a compiler pre-defined macro, ++

    • GCC 3.0.0: (Error, not versioned)

    • GCC 3.0.1: (Error, not versioned)

    • GCC 3.0.2: (Error, not versioned)

    • GCC 3.0.3: (Error, not versioned)

    • GCC 3.0.4: (Error, not versioned)

    • GCC 3.1.0: GLIBCPP_3.1, CXXABI_1

    • GCC 3.1.1: GLIBCPP_3.1, CXXABI_1

    • GCC 3.2.0: GLIBCPP_3.2, CXXABI_1.2

    • GCC 3.2.1: GLIBCPP_3.2.1, CXXABI_1.2

    • GCC 3.2.2: GLIBCPP_3.2.2, CXXABI_1.2

    • GCC 3.2.3: GLIBCPP_3.2.2, CXXABI_1.2

    • GCC 3.3.0: GLIBCPP_3.2.2, CXXABI_1.2.1

    • GCC 3.3.1: GLIBCPP_3.2.3, CXXABI_1.2.1

    • GCC 3.3.2: GLIBCPP_3.2.3, CXXABI_1.2.1

    • GCC 3.3.3: GLIBCPP_3.2.3, CXXABI_1.2.1

    • GCC 3.4.0: GLIBCXX_3.4, CXXABI_1.3

    • GCC 3.4.1: GLIBCXX_3.4.1, CXXABI_1.3

    • GCC 3.4.2: GLIBCXX_3.4.2

    • GCC 3.4.3: GLIBCXX_3.4.3

    • GCC 4.0.0: GLIBCXX_3.4.4, CXXABI_1.3.1

    • GCC 4.0.1: GLIBCXX_3.4.5

    • GCC 4.0.2: GLIBCXX_3.4.6

    • GCC 4.0.3: GLIBCXX_3.4.7

    • GCC 4.1.1: GLIBCXX_3.4.8

    • GCC 4.2.0: GLIBCXX_3.4.9

    • GCC 4.3.0: GLIBCXX_3.4.10, CXXABI_1.3.2

    • GCC 4.4.0: GLIBCXX_3.4.11, CXXABI_1.3.3

    • GCC 4.4.1: GLIBCXX_3.4.12, CXXABI_1.3.3

    • GCC 4.4.2: GLIBCXX_3.4.13, CXXABI_1.3.3

    • GCC 4.5.0: GLIBCXX_3.4.14, CXXABI_1.3.4

    • GCC 4.6.0: GLIBCXX_3.4.15, CXXABI_1.3.5

    • GCC 4.6.1: GLIBCXX_3.4.16, CXXABI_1.3.5

    • GCC 4.7.0: GLIBCXX_3.4.17, CXXABI_1.3.6

    • GCC 4.8.0: GLIBCXX_3.4.18, CXXABI_1.3.7

    • GCC 4.8.3: GLIBCXX_3.4.19, CXXABI_1.3.7

    • GCC 4.9.0: GLIBCXX_3.4.20, CXXABI_1.3.8

    • GCC 5.1.0: GLIBCXX_3.4.21, CXXABI_1.3.9

    • GCC 6.1.0: GLIBCXX_3.4.22, CXXABI_1.3.10

    • GCC 7.1.0: GLIBCXX_3.4.23, CXXABI_1.3.11

    • GCC 7.2.0: GLIBCXX_3.4.24, CXXABI_1.3.11

  • Incremental bumping of a compiler pre-defined macro, + __GXX_ABI_VERSION. This macro is defined as the version of the + compiler v3 ABI, with g++ 3.0 being version 100. This macro will + be automatically defined whenever g++ is used (the curious can +Index: libstdc++-v3/doc/html/manual/bugs.html +=================================================================== +--- a/src/libstdc++-v3/doc/html/manual/bugs.html (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/html/manual/bugs.html (.../branches/gcc-7-branch) +@@ -504,4 +504,18 @@ + +

    Remove special handling for reference_wrapper + arguments and store them directly as the target object. ++

    2802: ++ Add noexcept to several shared_ptr related ++ functions ++ ++

    Add noexcept. ++

    2873: ++ shared_ptr constructor requirements for a deleter ++ ++

    Use rvalues for deleters. ++

    2942: ++ LWG 2873's resolution missed ++ weak_ptr::owner_before ++ ++

    Add noexcept. +

  • +\ No newline at end of file +Index: libstdc++-v3/doc/html/manual/memory.html +=================================================================== +--- a/src/libstdc++-v3/doc/html/manual/memory.html (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/html/manual/memory.html (.../branches/gcc-7-branch) +@@ -119,8 +119,8 @@ + Over multiple iterations, various STL container + objects have elements inserted to some maximum amount. A variety + of allocators are tested. +- Test source for sequence +- and associative ++ Test source for sequence ++ and associative + containers. +

  • + Insertion and erasure in a multi-threaded environment. +@@ -129,14 +129,14 @@ + on a per-thread basis, as well as measuring thread contention + for memory resources. + Test source +- here. ++ here. +

  • + A threaded producer/consumer model. +

    + Test source for +- sequence ++ sequence + and +- associative ++ associative + containers. +

  • + The current default choice for +Index: libstdc++-v3/doc/html/manual/source_organization.html +=================================================================== +--- a/src/libstdc++-v3/doc/html/manual/source_organization.html (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/html/manual/source_organization.html (.../branches/gcc-7-branch) +@@ -70,7 +70,9 @@ + library. Support for "make check" and "make check-install" is + complete, and runs through all the subdirectories here when this + command is issued from the build directory. Please note that +- "make check" requires DejaGNU 1.4 or later to be installed. ++ "make check" requires DejaGnu 1.4 or later to be installed, ++ or for extra permutations ++ DejaGnu 1.5.3 or later. +

    + Other subdirectories contain variant versions of certain files + that are meant to be copied or linked by the configure script. +Index: libstdc++-v3/doc/html/manual/appendix_porting.html +=================================================================== +--- a/src/libstdc++-v3/doc/html/manual/appendix_porting.html (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/html/manual/appendix_porting.html (.../branches/gcc-7-branch) +@@ -329,6 +329,12 @@ + file to add the new versions to the known_versions list, + and update the checks for the latest versions that set the + latestp variable). ++

  • ++Add the library (libstdc++.so.6.0.X) ++and symbols versions ++(GLIBCXX_3.4.X and CXXABI_1.3.Y) ++to the History section in ++doc/xml/manual/abi.xml at the relevant places. +

  • + Once the new symbol version has been added you can add the names of your new + symbols in the new version node: +Index: libstdc++-v3/doc/html/manual/test.html +=================================================================== +--- a/src/libstdc++-v3/doc/html/manual/test.html (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/html/manual/test.html (.../branches/gcc-7-branch) +@@ -327,13 +327,13 @@ + For example, to run the tests with + -O1 -D_GLIBCXX_ASSERTIONS + you could use: +-

        make RUNTESTFLAGS=--target_board=unix/-O1/-D_GLIBCXX_ASSERTIONS

    ++

        make check RUNTESTFLAGS=--target_board=unix/-O1/-D_GLIBCXX_ASSERTIONS

    +

    + The --target_board option can also be used to run the + tests multiple times in different variations. For example, to run the + entire testsuite three times using -O3 but with + different -std options: +-

        make 'RUNTESTFLAGS=--target_board=unix/-O3\"{-std=gnu++98,-std=gnu++11,-std=gnu++14}\"'

    ++

        make check 'RUNTESTFLAGS=--target_board=unix/-O3\"{-std=gnu++98,-std=gnu++11,-std=gnu++14}\"'

    + N.B. that set of variations could also be written as + unix/-O3\"{-std=gnu++98,-std=gnu++11,}\" so that + the third variation would use the default for -std +Index: libstdc++-v3/doc/html/manual/mt_allocator_impl.html +=================================================================== +--- a/src/libstdc++-v3/doc/html/manual/mt_allocator_impl.html (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/html/manual/mt_allocator_impl.html (.../branches/gcc-7-branch) +@@ -155,6 +155,6 @@ + as part of a container's constructor. However, this assumption is + implementation-specific, and subject to change. For an example of a + pool that frees memory, see the following +- ++ + example. +

    +\ No newline at end of file +Index: libstdc++-v3/doc/html/manual/source_code_style.html +=================================================================== +--- a/src/libstdc++-v3/doc/html/manual/source_code_style.html (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/doc/html/manual/source_code_style.html (.../branches/gcc-7-branch) +@@ -478,7 +478,7 @@ +       Examples: _S_max_elements  _S_default_value
    +
    +       Don't use names in the same scope that differ only in the prefix,
    +-      e.g. _S_top and _M_top. See BADNAMES for a list of forbidden names.
    ++      e.g. _S_top and _M_top. See BADNAMES for a list of forbidden names.
    +       (The most tempting of these seem to be and "_T" and "__sz".)
    +
    +       Names must never have "__" internally; it would confuse name
    +Index: libstdc++-v3/include/Makefile.in +=================================================================== +--- a/src/libstdc++-v3/include/Makefile.in (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/Makefile.in (.../branches/gcc-7-branch) +@@ -971,6 +971,7 @@ + ${experimental_srcdir}/ratio \ + ${experimental_srcdir}/regex \ + ${experimental_srcdir}/set \ ++ ${experimental_srcdir}/source_location \ + ${experimental_srcdir}/string \ + ${experimental_srcdir}/string_view \ + ${experimental_srcdir}/system_error \ +Index: libstdc++-v3/include/std/utility +=================================================================== +--- a/src/libstdc++-v3/include/std/utility (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/std/utility (.../branches/gcc-7-branch) +@@ -89,6 +89,8 @@ + + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 2770. tuple_size specialization is not SFINAE compatible ++ ++#if __cplusplus <= 201402L + template + struct __tuple_size_cv_impl { }; + +@@ -106,7 +108,26 @@ + + template + struct tuple_size : __tuple_size_cv_impl<_Tp> { }; ++#else ++ template::type, ++ typename = typename enable_if::value>::type, ++ size_t = tuple_size<_Tp>::value> ++ using __enable_if_has_tuple_size = _Tp; + ++ template ++ struct tuple_size> ++ : public tuple_size<_Tp> { }; ++ ++ template ++ struct tuple_size> ++ : public tuple_size<_Tp> { }; ++ ++ template ++ struct tuple_size> ++ : public tuple_size<_Tp> { }; ++#endif ++ + /// Gives the type of the ith element of a given tuple type. + template + struct tuple_element; +Index: libstdc++-v3/include/std/future +=================================================================== +--- a/src/libstdc++-v3/include/std/future (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/std/future (.../branches/gcc-7-branch) +@@ -471,7 +471,6 @@ + // Used by std::promise to copy construct the result. + typename promise<_Res>::_Ptr_type operator()() const + { +- _State_baseV2::_S_check(_M_promise->_M_future); + _M_promise->_M_storage->_M_set(*_M_arg); + return std::move(_M_promise->_M_storage); + } +@@ -486,7 +485,6 @@ + // Used by std::promise to move construct the result. + typename promise<_Res>::_Ptr_type operator()() const + { +- _State_baseV2::_S_check(_M_promise->_M_future); + _M_promise->_M_storage->_M_set(std::move(*_M_arg)); + return std::move(_M_promise->_M_storage); + } +@@ -494,6 +492,18 @@ + _Res* _M_arg; + }; + ++ // set void ++ template ++ struct _Setter<_Res, void> ++ { ++ static_assert(is_void<_Res>::value, "Only used for promise"); ++ ++ typename promise<_Res>::_Ptr_type operator()() const ++ { return std::move(_M_promise->_M_storage); } ++ ++ promise<_Res>* _M_promise; ++ }; ++ + struct __exception_ptr_tag { }; + + // set exceptions +@@ -503,7 +513,6 @@ + // Used by std::promise to store an exception as the result. + typename promise<_Res>::_Ptr_type operator()() const + { +- _State_baseV2::_S_check(_M_promise->_M_future); + _M_promise->_M_storage->_M_error = *_M_ex; + return std::move(_M_promise->_M_storage); + } +@@ -516,6 +525,7 @@ + static _Setter<_Res, _Arg&&> + __setter(promise<_Res>* __prom, _Arg&& __arg) + { ++ _S_check(__prom->_M_future); + return _Setter<_Res, _Arg&&>{ __prom, std::__addressof(__arg) }; + } + +@@ -523,9 +533,18 @@ + static _Setter<_Res, __exception_ptr_tag> + __setter(exception_ptr& __ex, promise<_Res>* __prom) + { ++ _S_check(__prom->_M_future); + return _Setter<_Res, __exception_ptr_tag>{ __prom, &__ex }; + } + ++ template ++ static _Setter<_Res, void> ++ __setter(promise<_Res>* __prom) ++ { ++ _S_check(__prom->_M_future); ++ return _Setter<_Res, void>{ __prom }; ++ } ++ + template + static void + _S_check(const shared_ptr<_Tp>& __p) +@@ -1027,6 +1046,7 @@ + typedef __future_base::_Result<_Res> _Res_type; + typedef __future_base::_Ptr<_Res_type> _Ptr_type; + template friend class _State::_Setter; ++ friend _State; + + shared_ptr<_State> _M_future; + _Ptr_type _M_storage; +@@ -1137,6 +1157,7 @@ + typedef __future_base::_Result<_Res&> _Res_type; + typedef __future_base::_Ptr<_Res_type> _Ptr_type; + template friend class _State::_Setter; ++ friend _State; + + shared_ptr<_State> _M_future; + _Ptr_type _M_storage; +@@ -1226,6 +1247,7 @@ + typedef __future_base::_Result _Res_type; + typedef __future_base::_Ptr<_Res_type> _Ptr_type; + template friend class _State::_Setter; ++ friend _State; + + shared_ptr<_State> _M_future; + _Ptr_type _M_storage; +@@ -1286,7 +1308,9 @@ + { return future(_M_future); } + + // Setting the result +- void set_value(); ++ void ++ set_value() ++ { _M_future->_M_set_result(_State::__setter(this)); } + + void + set_exception(exception_ptr __p) +@@ -1293,7 +1317,8 @@ + { _M_future->_M_set_result(_State::__setter(__p, this)); } + + void +- set_value_at_thread_exit(); ++ set_value_at_thread_exit() ++ { _M_future->_M_set_delayed_result(_State::__setter(this), _M_future); } + + void + set_exception_at_thread_exit(exception_ptr __p) +@@ -1303,30 +1328,6 @@ + } + }; + +- // set void +- template<> +- struct __future_base::_State_base::_Setter +- { +- promise::_Ptr_type operator()() const +- { +- _State_base::_S_check(_M_promise->_M_future); +- return std::move(_M_promise->_M_storage); +- } +- +- promise* _M_promise; +- }; +- +- inline void +- promise::set_value() +- { _M_future->_M_set_result(_State::_Setter{ this }); } +- +- inline void +- promise::set_value_at_thread_exit() +- { +- _M_future->_M_set_delayed_result(_State::_Setter{this}, +- _M_future); +- } +- + template + struct __future_base::_Task_setter + { +Index: libstdc++-v3/include/std/mutex +=================================================================== +--- a/src/libstdc++-v3/include/std/mutex (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/std/mutex (.../branches/gcc-7-branch) +@@ -557,7 +557,7 @@ + } + + #if __cplusplus > 201402L +-#define __cpp_lib_scoped_lock 201703 ++#define __cpp_lib_scoped_lock 201707 + /** @brief A scoped lock type for multiple lockable objects. + * + * A scoped_lock controls mutex ownership within a scope, releasing +@@ -570,7 +570,7 @@ + explicit scoped_lock(_MutexTypes&... __m) : _M_devices(std::tie(__m...)) + { std::lock(__m...); } + +- explicit scoped_lock(_MutexTypes&... __m, adopt_lock_t) noexcept ++ explicit scoped_lock(adopt_lock_t, _MutexTypes&... __m) noexcept + : _M_devices(std::tie(__m...)) + { } // calling thread owns mutex + +@@ -609,7 +609,7 @@ + explicit scoped_lock(mutex_type& __m) : _M_device(__m) + { _M_device.lock(); } + +- explicit scoped_lock(mutex_type& __m, adopt_lock_t) noexcept ++ explicit scoped_lock(adopt_lock_t, mutex_type& __m) noexcept + : _M_device(__m) + { } // calling thread owns mutex + +Index: libstdc++-v3/include/std/functional +=================================================================== +--- a/src/libstdc++-v3/include/std/functional (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/std/functional (.../branches/gcc-7-branch) +@@ -135,6 +135,12 @@ + _GLIBCXX_MEM_FN_TRAITS(&, true_type, false_type) + _GLIBCXX_MEM_FN_TRAITS(&&, false_type, true_type) + ++#if __cplusplus > 201402L ++_GLIBCXX_MEM_FN_TRAITS(noexcept, true_type, true_type) ++_GLIBCXX_MEM_FN_TRAITS(& noexcept, true_type, false_type) ++_GLIBCXX_MEM_FN_TRAITS(&& noexcept, false_type, true_type) ++#endif ++ + #undef _GLIBCXX_MEM_FN_TRAITS + #undef _GLIBCXX_MEM_FN_TRAITS2 + +Index: libstdc++-v3/include/std/istream +=================================================================== +--- a/src/libstdc++-v3/include/std/istream (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/std/istream (.../branches/gcc-7-branch) +@@ -908,20 +908,39 @@ + ws(basic_istream<_CharT, _Traits>& __is); + + #if __cplusplus >= 201103L ++ template ++ basic_istream<_Ch, _Up>& ++ __is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*); + ++ template ++ struct __is_convertible_to_basic_istream_impl ++ { ++ using __istream_type = void; ++ }; ++ + template ++ using __do_is_convertible_to_basic_istream_impl = ++ decltype(__is_convertible_to_basic_istream_test ++ (declval::type*>())); ++ ++ template ++ struct __is_convertible_to_basic_istream_impl ++ <_Tp, ++ __void_t<__do_is_convertible_to_basic_istream_impl<_Tp>>> ++ { ++ using __istream_type = ++ __do_is_convertible_to_basic_istream_impl<_Tp>; ++ }; ++ ++ template + struct __is_convertible_to_basic_istream ++ : __is_convertible_to_basic_istream_impl<_Tp> + { +- template +- static basic_istream<_Ch, _Up>& __check(basic_istream<_Ch, _Up>*); +- +- static void __check(...); + public: +- using istream_type = +- decltype(__check(declval::type*>())); +- using type = __not_>; ++ using type = __not_::__istream_type>>; + constexpr static bool value = type::value; +- }; ++ }; + + template + struct __is_extractable : false_type {}; +@@ -932,6 +951,11 @@ + >> declval<_Tp>())>> + : true_type {}; + ++ template ++ using __rvalue_istream_type = ++ typename __is_convertible_to_basic_istream< ++ _Istream>::__istream_type; ++ + // [27.7.1.6] Rvalue stream extraction + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 2328. Rvalue stream extraction should use perfect forwarding +@@ -949,13 +973,15 @@ + inline + typename enable_if<__and_<__not_>, + __is_convertible_to_basic_istream<_Istream>, +- __is_extractable<_Istream&, _Tp&&>>::value, +- typename __is_convertible_to_basic_istream< +- _Istream>::istream_type>::type ++ __is_extractable< ++ __rvalue_istream_type<_Istream>, ++ _Tp&&>>::value, ++ __rvalue_istream_type<_Istream>>::type + operator>>(_Istream&& __is, _Tp&& __x) + { +- __is >> std::forward<_Tp>(__x); +- return __is; ++ __rvalue_istream_type<_Istream> __ret_is = __is; ++ __ret_is >> std::forward<_Tp>(__x); ++ return __ret_is; + } + #endif // C++11 + +Index: libstdc++-v3/include/std/variant +=================================================================== +--- a/src/libstdc++-v3/include/std/variant (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/std/variant (.../branches/gcc-7-branch) +@@ -44,6 +44,9 @@ + #include + #include + #include ++#include ++#include ++#include + + namespace std _GLIBCXX_VISIBILITY(default) + { +@@ -238,30 +241,32 @@ + // Various functions as "vtable" entries, where those vtables are used by + // polymorphic operations. + template +- constexpr void ++ void + __erased_ctor(void* __lhs, void* __rhs) +- { ::new (__lhs) remove_reference_t<_Lhs>(__ref_cast<_Rhs>(__rhs)); } ++ { ++ using _Type = remove_reference_t<_Lhs>; ++ ::new (__lhs) _Type(__variant::__ref_cast<_Rhs>(__rhs)); ++ } + + template +- constexpr void ++ void + __erased_dtor(_Variant&& __v) +- { +- auto&& __element = __get<_Np>(std::forward<_Variant>(__v)); +- using _Type = std::remove_reference_t; +- __element.~_Type(); +- } ++ { std::_Destroy(std::__addressof(__get<_Np>(__v))); } + + template +- constexpr void ++ void + __erased_assign(void* __lhs, void* __rhs) +- { __ref_cast<_Lhs>(__lhs) = __ref_cast<_Rhs>(__rhs); } ++ { ++ __variant::__ref_cast<_Lhs>(__lhs) = __variant::__ref_cast<_Rhs>(__rhs); ++ } + + template +- constexpr void ++ void + __erased_swap(void* __lhs, void* __rhs) + { + using std::swap; +- swap(__ref_cast<_Lhs>(__lhs), __ref_cast<_Rhs>(__rhs)); ++ swap(__variant::__ref_cast<_Lhs>(__lhs), ++ __variant::__ref_cast<_Rhs>(__rhs)); + } + + #define _VARIANT_RELATION_FUNCTION_TEMPLATE(__OP, __NAME) \ +@@ -283,11 +288,11 @@ + #undef _VARIANT_RELATION_FUNCTION_TEMPLATE + + template +- constexpr size_t ++ size_t + __erased_hash(void* __t) + { + return std::hash>>{}( +- __ref_cast<_Tp>(__t)); ++ __variant::__ref_cast<_Tp>(__t)); + } + + // Defines members and ctors. +@@ -936,9 +941,10 @@ + noexcept((is_nothrow_move_constructible_v<_Types> && ...)) = default; + + template, variant>>, ++ typename = enable_if_t<(sizeof...(_Types)>0)>, + typename = enable_if_t<__exactly_once<__accepted_type<_Tp&&>> +- && is_constructible_v<__accepted_type<_Tp&&>, _Tp&&> +- && !is_same_v, variant>>> ++ && is_constructible_v<__accepted_type<_Tp&&>, _Tp&&>>> + constexpr + variant(_Tp&& __t) + noexcept(is_nothrow_constructible_v<__accepted_type<_Tp&&>, _Tp&&>) +Index: libstdc++-v3/include/std/ostream +=================================================================== +--- a/src/libstdc++-v3/include/std/ostream (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/std/ostream (.../branches/gcc-7-branch) +@@ -613,20 +613,40 @@ + { return __os.flush(); } + + #if __cplusplus >= 201103L ++ template ++ basic_ostream<_Ch, _Up>& ++ __is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*); ++ ++ template ++ struct __is_convertible_to_basic_ostream_impl ++ { ++ using __ostream_type = void; ++ }; ++ + template ++ using __do_is_convertible_to_basic_ostream_impl = ++ decltype(__is_convertible_to_basic_ostream_test ++ (declval::type*>())); ++ ++ template ++ struct __is_convertible_to_basic_ostream_impl ++ <_Tp, ++ __void_t<__do_is_convertible_to_basic_ostream_impl<_Tp>>> ++ { ++ using __ostream_type = ++ __do_is_convertible_to_basic_ostream_impl<_Tp>; ++ }; ++ ++ template + struct __is_convertible_to_basic_ostream +- { +- template +- static basic_ostream<_Ch, _Up>& __check(basic_ostream<_Ch, _Up>*); ++ : __is_convertible_to_basic_ostream_impl<_Tp> ++ { ++ public: ++ using type = __not_::__ostream_type>>; ++ constexpr static bool value = type::value; ++ }; + +- static void __check(...); +- public: +- using ostream_type = +- decltype(__check(declval::type*>())); +- using type = __not_>; +- constexpr static bool value = type::value; +- }; +- + template + struct __is_insertable : false_type {}; + +@@ -636,6 +656,11 @@ + << declval())>> + : true_type {}; + ++ template ++ using __rvalue_ostream_type = ++ typename __is_convertible_to_basic_ostream< ++ _Ostream>::__ostream_type; ++ + /** + * @brief Generic inserter for rvalue stream + * @param __os An input stream. +@@ -650,13 +675,15 @@ + inline + typename enable_if<__and_<__not_>, + __is_convertible_to_basic_ostream<_Ostream>, +- __is_insertable<_Ostream&, const _Tp&>>::value, +- typename __is_convertible_to_basic_ostream< +- _Ostream>::ostream_type>::type ++ __is_insertable< ++ __rvalue_ostream_type<_Ostream>, ++ const _Tp&>>::value, ++ __rvalue_ostream_type<_Ostream>>::type + operator<<(_Ostream&& __os, const _Tp& __x) + { +- __os << __x; +- return __os; ++ __rvalue_ostream_type<_Ostream> __ret_os = __os; ++ __ret_os << __x; ++ return __ret_os; + } + #endif // C++11 + +Index: libstdc++-v3/include/experimental/memory_resource +=================================================================== +--- a/src/libstdc++-v3/include/experimental/memory_resource (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/experimental/memory_resource (.../branches/gcc-7-branch) +@@ -168,8 +168,9 @@ + template //used here + void construct(_Tp1* __p, _Args&&... __args) + { +- auto __use_tag = __use_alloc<_Tp1, memory_resource*, +- _Args...>(this->resource()); ++ memory_resource* const __resource = this->resource(); ++ auto __use_tag ++ = __use_alloc<_Tp1, memory_resource*, _Args...>(__resource); + _M_construct(__use_tag, __p, std::forward<_Args>(__args)...); + } + +@@ -180,10 +181,11 @@ + tuple<_Args1...> __x, + tuple<_Args2...> __y) + { ++ memory_resource* const __resource = this->resource(); + auto __x_use_tag = +- __use_alloc<_Tp1, memory_resource*, _Args1...>(this->resource()); ++ __use_alloc<_Tp1, memory_resource*, _Args1...>(__resource); + auto __y_use_tag = +- __use_alloc<_Tp2, memory_resource*, _Args2...>(this->resource()); ++ __use_alloc<_Tp2, memory_resource*, _Args2...>(__resource); + + ::new(__p) std::pair<_Tp1, _Tp2>(piecewise_construct, + _M_construct_p(__x_use_tag, __x), +Index: libstdc++-v3/include/experimental/source_location +=================================================================== +--- a/src/libstdc++-v3/include/experimental/source_location (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/experimental/source_location (.../branches/gcc-7-branch) +@@ -0,0 +1,86 @@ ++// -*- C++ -*- ++ ++// Copyright (C) 2015 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// Under Section 7 of GPL version 3, you are granted additional ++// permissions described in the GCC Runtime Library Exception, version ++// 3.1, as published by the Free Software Foundation. ++ ++// You should have received a copy of the GNU General Public License and ++// a copy of the GCC Runtime Library Exception along with this program; ++// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++// . ++ ++/** @file experimental/source_location ++ * This is a TS C++ Library header. ++ */ ++ ++#ifndef _GLIBCXX_EXPERIMENTAL_SRCLOC ++#define _GLIBCXX_EXPERIMENTAL_SRCLOC 1 ++ ++#include ++ ++namespace std { ++namespace experimental { ++inline namespace fundamentals_v2 { ++_GLIBCXX_BEGIN_NAMESPACE_VERSION ++ ++#define __cpp_lib_experimental_source_location 201505 ++ ++ struct source_location ++ { ++#ifndef _GLIBCXX_USE_C99_STDINT_TR1 ++ private: ++ using uint_least32_t = unsigned; ++ public: ++#endif ++ ++ // 14.1.2, source_location creation ++ static constexpr source_location ++ current(const char* __file = __builtin_FILE(), ++ const char* __func = __builtin_FUNCTION(), ++ int __line = __builtin_LINE(), ++ int __col = 0) noexcept ++ { ++ source_location __loc; ++ __loc._M_file = __file; ++ __loc._M_func = __func; ++ __loc._M_line = __line; ++ __loc._M_col = __col; ++ return __loc; ++ } ++ ++ constexpr source_location() noexcept ++ : _M_file("unknown"), _M_func(_M_file), _M_line(0), _M_col(0) ++ { } ++ ++ // 14.1.3, source_location field access ++ constexpr uint_least32_t line() const noexcept { return _M_line; } ++ constexpr uint_least32_t column() const noexcept { return _M_col; } ++ constexpr const char* file_name() const noexcept { return _M_file; } ++ constexpr const char* function_name() const noexcept { return _M_func; } ++ ++ private: ++ const char* _M_file; ++ const char* _M_func; ++ uint_least32_t _M_line; ++ uint_least32_t _M_col; ++ }; ++ ++_GLIBCXX_END_NAMESPACE_VERSION ++} // namespace fundamentals_v2 ++} // namespace experimental ++} // namespace std ++ ++#endif +Index: libstdc++-v3/include/bits/shared_ptr.h +=================================================================== +--- a/src/libstdc++-v3/include/bits/shared_ptr.h (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/bits/shared_ptr.h (.../branches/gcc-7-branch) +@@ -144,7 +144,7 @@ + template> + shared_ptr(_Yp* __p, _Deleter __d) +- : __shared_ptr<_Tp>(__p, __d) { } ++ : __shared_ptr<_Tp>(__p, std::move(__d)) { } + + /** + * @brief Construct a %shared_ptr that owns a null pointer +@@ -161,7 +161,7 @@ + */ + template + shared_ptr(nullptr_t __p, _Deleter __d) +- : __shared_ptr<_Tp>(__p, __d) { } ++ : __shared_ptr<_Tp>(__p, std::move(__d)) { } + + /** + * @brief Construct a %shared_ptr that owns the pointer @a __p +@@ -181,7 +181,7 @@ + template> + shared_ptr(_Yp* __p, _Deleter __d, _Alloc __a) +- : __shared_ptr<_Tp>(__p, __d, std::move(__a)) { } ++ : __shared_ptr<_Tp>(__p, std::move(__d), std::move(__a)) { } + + /** + * @brief Construct a %shared_ptr that owns a null pointer +@@ -200,7 +200,7 @@ + */ + template + shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a) +- : __shared_ptr<_Tp>(__p, __d, std::move(__a)) { } ++ : __shared_ptr<_Tp>(__p, std::move(__d), std::move(__a)) { } + + // Aliasing constructor + +Index: libstdc++-v3/include/bits/regex_compiler.h +=================================================================== +--- a/src/libstdc++-v3/include/bits/regex_compiler.h (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/bits/regex_compiler.h (.../branches/gcc-7-branch) +@@ -209,9 +209,10 @@ + const typename _TraitsT::locale_type& __loc, + regex_constants::syntax_option_type __flags) + { +- basic_string __str(__first, __last); +- return __compile_nfa(__str.data(), __str.data() + __str.size(), __loc, +- __flags); ++ using char_type = typename _TraitsT::char_type; ++ const basic_string __str(__first, __last); ++ return __compile_nfa(__str.data(), ++ __str.data() + __str.size(), __loc, __flags); + } + + // [28.13.14] +Index: libstdc++-v3/include/bits/locale_conv.h +=================================================================== +--- a/src/libstdc++-v3/include/bits/locale_conv.h (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/bits/locale_conv.h (.../branches/gcc-7-branch) +@@ -375,7 +375,7 @@ + protected: + int + sync() +- { return _M_buf && _M_conv_put() && _M_buf->pubsync() ? 0 : -1; } ++ { return _M_buf && _M_conv_put() && !_M_buf->pubsync() ? 0 : -1; } + + typename _Wide_streambuf::int_type + overflow(typename _Wide_streambuf::int_type __out) +@@ -482,6 +482,7 @@ + { + if (_M_buf->sputn(__p, __n) < __n) + return false; ++ return true; + } + + // convert the put area and write to the byte stream buffer +Index: libstdc++-v3/include/bits/stl_uninitialized.h +=================================================================== +--- a/src/libstdc++-v3/include/bits/stl_uninitialized.h (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/bits/stl_uninitialized.h (.../branches/gcc-7-branch) +@@ -831,77 +831,54 @@ + inline void + uninitialized_default_construct(_ForwardIterator __first, + _ForwardIterator __last) +- { +- __uninitialized_default_novalue(__first, __last); +- } ++ { ++ __uninitialized_default_novalue(__first, __last); ++ } + + template + inline _ForwardIterator + uninitialized_default_construct_n(_ForwardIterator __first, _Size __count) +- { +- return __uninitialized_default_novalue_n(__first, __count); +- } ++ { ++ return __uninitialized_default_novalue_n(__first, __count); ++ } + + template + inline void + uninitialized_value_construct(_ForwardIterator __first, + _ForwardIterator __last) +- { +- return __uninitialized_default(__first, __last); +- } ++ { ++ return __uninitialized_default(__first, __last); ++ } + + template + inline _ForwardIterator + uninitialized_value_construct_n(_ForwardIterator __first, _Size __count) +- { +- return __uninitialized_default_n(__first, __count); +- } ++ { ++ return __uninitialized_default_n(__first, __count); ++ } + + template + inline _ForwardIterator + uninitialized_move(_InputIterator __first, _InputIterator __last, + _ForwardIterator __result) +- { +- return std::uninitialized_copy +- (_GLIBCXX_MAKE_MOVE_ITERATOR(__first), +- _GLIBCXX_MAKE_MOVE_ITERATOR(__last), __result); +- } ++ { ++ return std::uninitialized_copy ++ (_GLIBCXX_MAKE_MOVE_ITERATOR(__first), ++ _GLIBCXX_MAKE_MOVE_ITERATOR(__last), __result); ++ } + + template + inline pair<_InputIterator, _ForwardIterator> + uninitialized_move_n(_InputIterator __first, _Size __count, + _ForwardIterator __result) +- { +- auto __res = std::__uninitialized_copy_n_pair +- (_GLIBCXX_MAKE_MOVE_ITERATOR(__first), +- __count, __result); +- return {__res.first.base(), __res.second}; +- } +- +- template +- inline void +- destroy_at(_Tp* __location) +- { +- std::_Destroy(__location); +- } +- +- template +- inline void +- destroy(_ForwardIterator __first, _ForwardIterator __last) +- { +- std::_Destroy(__first, __last); +- } +- +- template +- inline _ForwardIterator +- destroy_n(_ForwardIterator __first, _Size __count) +- { +- return std::_Destroy_n(__first, __count); +- } +- ++ { ++ auto __res = std::__uninitialized_copy_n_pair ++ (_GLIBCXX_MAKE_MOVE_ITERATOR(__first), ++ __count, __result); ++ return {__res.first.base(), __res.second}; ++ } + #endif + +- + _GLIBCXX_END_NAMESPACE_VERSION + } // namespace + +Index: libstdc++-v3/include/bits/node_handle.h +=================================================================== +--- a/src/libstdc++-v3/include/bits/node_handle.h (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/bits/node_handle.h (.../branches/gcc-7-branch) +@@ -280,8 +280,8 @@ + template + struct _Node_insert_return + { ++ _Iterator position = _Iterator(); + bool inserted = false; +- _Iterator position = _Iterator(); + _NodeHandle node; + + template +@@ -305,22 +305,6 @@ + } + }; + +- template +- struct tuple_size<_Node_insert_return<_Iterator, _NodeHandle>> +- : integral_constant { }; +- +- template +- struct tuple_element<0, _Node_insert_return<_Iterator, _NodeHandle>> +- { using type = bool; }; +- +- template +- struct tuple_element<1, _Node_insert_return<_Iterator, _NodeHandle>> +- { using type = _Iterator; }; +- +- template +- struct tuple_element<2, _Node_insert_return<_Iterator, _NodeHandle>> +- { using type = _NodeHandle; }; +- + _GLIBCXX_END_NAMESPACE_VERSION + } // namespace std + +Index: libstdc++-v3/include/bits/stl_algo.h +=================================================================== +--- a/src/libstdc++-v3/include/bits/stl_algo.h (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/bits/stl_algo.h (.../branches/gcc-7-branch) +@@ -4258,6 +4258,20 @@ + __gnu_cxx::__ops::__iter_comp_val(__binary_pred, __val)); + } + ++#if __cplusplus > 201402L ++ /** @brief Search a sequence using a Searcher object. ++ * ++ * @param __first A forward iterator. ++ * @param __last A forward iterator. ++ * @param __searcher A callable object. ++ * @return @p __searcher(__first,__last).first ++ */ ++ template ++ inline _ForwardIterator ++ search(_ForwardIterator __first, _ForwardIterator __last, ++ const _Searcher& __searcher) ++ { return __searcher(__first, __last).first; } ++#endif + + /** + * @brief Perform an operation on a sequence. +@@ -5809,8 +5823,9 @@ + "sample size must be an integer type"); + + typename iterator_traits<_PopulationIterator>::difference_type __d = __n; +- return std::__sample(__first, __last, __pop_cat{}, __out, __samp_cat{}, +- __d, std::forward<_UniformRandomBitGenerator>(__g)); ++ return _GLIBCXX_STD_A:: ++ __sample(__first, __last, __pop_cat{}, __out, __samp_cat{}, __d, ++ std::forward<_UniformRandomBitGenerator>(__g)); + } + #endif // C++17 + #endif // C++14 +Index: libstdc++-v3/include/bits/shared_ptr_base.h +=================================================================== +--- a/src/libstdc++-v3/include/bits/shared_ptr_base.h (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/bits/shared_ptr_base.h (.../branches/gcc-7-branch) +@@ -411,6 +411,7 @@ + struct _Sp_ebo_helper<_Nm, _Tp, true> : private _Tp + { + explicit _Sp_ebo_helper(const _Tp& __tp) : _Tp(__tp) { } ++ explicit _Sp_ebo_helper(_Tp&& __tp) : _Tp(std::move(__tp)) { } + + static _Tp& + _S_get(_Sp_ebo_helper& __eboh) { return static_cast<_Tp&>(__eboh); } +@@ -421,6 +422,7 @@ + struct _Sp_ebo_helper<_Nm, _Tp, false> + { + explicit _Sp_ebo_helper(const _Tp& __tp) : _M_tp(__tp) { } ++ explicit _Sp_ebo_helper(_Tp&& __tp) : _M_tp(std::move(__tp)) { } + + static _Tp& + _S_get(_Sp_ebo_helper& __eboh) +@@ -441,7 +443,7 @@ + + public: + _Impl(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept +- : _M_ptr(__p), _Del_base(__d), _Alloc_base(__a) ++ : _M_ptr(__p), _Del_base(std::move(__d)), _Alloc_base(__a) + { } + + _Deleter& _M_del() noexcept { return _Del_base::_S_get(*this); } +@@ -455,11 +457,11 @@ + + // __d(__p) must not throw. + _Sp_counted_deleter(_Ptr __p, _Deleter __d) noexcept +- : _M_impl(__p, __d, _Alloc()) { } ++ : _M_impl(__p, std::move(__d), _Alloc()) { } + + // __d(__p) must not throw. + _Sp_counted_deleter(_Ptr __p, _Deleter __d, const _Alloc& __a) noexcept +- : _M_impl(__p, __d, __a) { } ++ : _M_impl(__p, std::move(__d), __a) { } + + ~_Sp_counted_deleter() noexcept { } + +@@ -1083,7 +1085,7 @@ + + template> + __shared_ptr(_Yp* __p, _Deleter __d) +- : _M_ptr(__p), _M_refcount(__p, __d) ++ : _M_ptr(__p), _M_refcount(__p, std::move(__d)) + { + static_assert(__is_invocable<_Deleter&, _Yp*&>::value, + "deleter expression d(p) is well-formed"); +@@ -1093,7 +1095,7 @@ + template> + __shared_ptr(_Yp* __p, _Deleter __d, _Alloc __a) +- : _M_ptr(__p), _M_refcount(__p, __d, std::move(__a)) ++ : _M_ptr(__p), _M_refcount(__p, std::move(__d), std::move(__a)) + { + static_assert(__is_invocable<_Deleter&, _Yp*&>::value, + "deleter expression d(p) is well-formed"); +@@ -1102,12 +1104,12 @@ + + template + __shared_ptr(nullptr_t __p, _Deleter __d) +- : _M_ptr(0), _M_refcount(__p, __d) ++ : _M_ptr(0), _M_refcount(__p, std::move(__d)) + { } + + template + __shared_ptr(nullptr_t __p, _Deleter __d, _Alloc __a) +- : _M_ptr(0), _M_refcount(__p, __d, std::move(__a)) ++ : _M_ptr(0), _M_refcount(__p, std::move(__d), std::move(__a)) + { } + + template +@@ -1244,12 +1246,12 @@ + template + _SafeConv<_Yp> + reset(_Yp* __p, _Deleter __d) +- { __shared_ptr(__p, __d).swap(*this); } ++ { __shared_ptr(__p, std::move(__d)).swap(*this); } + + template + _SafeConv<_Yp> + reset(_Yp* __p, _Deleter __d, _Alloc __a) +- { __shared_ptr(__p, __d, std::move(__a)).swap(*this); } ++ { __shared_ptr(__p, std::move(__d), std::move(__a)).swap(*this); } + + element_type* + get() const noexcept +@@ -1275,12 +1277,12 @@ + + template + bool +- owner_before(__shared_ptr<_Tp1, _Lp> const& __rhs) const ++ owner_before(__shared_ptr<_Tp1, _Lp> const& __rhs) const noexcept + { return _M_refcount._M_less(__rhs._M_refcount); } + + template + bool +- owner_before(__weak_ptr<_Tp1, _Lp> const& __rhs) const ++ owner_before(__weak_ptr<_Tp1, _Lp> const& __rhs) const noexcept + { return _M_refcount._M_less(__rhs._M_refcount); } + + #if __cpp_rtti +@@ -1693,12 +1695,12 @@ + + template + bool +- owner_before(const __shared_ptr<_Tp1, _Lp>& __rhs) const ++ owner_before(const __shared_ptr<_Tp1, _Lp>& __rhs) const noexcept + { return _M_refcount._M_less(__rhs._M_refcount); } + + template + bool +- owner_before(const __weak_ptr<_Tp1, _Lp>& __rhs) const ++ owner_before(const __weak_ptr<_Tp1, _Lp>& __rhs) const noexcept + { return _M_refcount._M_less(__rhs._M_refcount); } + + void +@@ -1743,15 +1745,15 @@ + struct _Sp_owner_less : public binary_function<_Tp, _Tp, bool> + { + bool +- operator()(const _Tp& __lhs, const _Tp& __rhs) const ++ operator()(const _Tp& __lhs, const _Tp& __rhs) const noexcept + { return __lhs.owner_before(__rhs); } + + bool +- operator()(const _Tp& __lhs, const _Tp1& __rhs) const ++ operator()(const _Tp& __lhs, const _Tp1& __rhs) const noexcept + { return __lhs.owner_before(__rhs); } + + bool +- operator()(const _Tp1& __lhs, const _Tp& __rhs) const ++ operator()(const _Tp1& __lhs, const _Tp& __rhs) const noexcept + { return __lhs.owner_before(__rhs); } + }; + +@@ -1760,7 +1762,7 @@ + { + template + auto +- operator()(const _Tp& __lhs, const _Up& __rhs) const ++ operator()(const _Tp& __lhs, const _Up& __rhs) const noexcept + -> decltype(__lhs.owner_before(__rhs)) + { return __lhs.owner_before(__rhs); } + +Index: libstdc++-v3/include/bits/std_function.h +=================================================================== +--- a/src/libstdc++-v3/include/bits/std_function.h (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/bits/std_function.h (.../branches/gcc-7-branch) +@@ -438,7 +438,7 @@ + * The newly-created %function contains the target of @a __x + * (if it has one). + */ +- function(function&& __x) : _Function_base() ++ function(function&& __x) noexcept : _Function_base() + { + __x.swap(*this); + } +@@ -495,7 +495,7 @@ + * object, then this operation will not throw an %exception. + */ + function& +- operator=(function&& __x) ++ operator=(function&& __x) noexcept + { + function(std::move(__x)).swap(*this); + return *this; +Index: libstdc++-v3/include/bits/stl_construct.h +=================================================================== +--- a/src/libstdc++-v3/include/bits/stl_construct.h (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/bits/stl_construct.h (.../branches/gcc-7-branch) +@@ -128,6 +128,11 @@ + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _Value_type; ++#if __cplusplus >= 201103L ++ // A deleted destructor is trivial, this ensures we reject such types: ++ static_assert(is_destructible<_Value_type>::value, ++ "value type is destructible"); ++#endif + std::_Destroy_aux<__has_trivial_destructor(_Value_type)>:: + __destroy(__first, __last); + } +@@ -151,10 +156,10 @@ + template + static _ForwardIterator + __destroy_n(_ForwardIterator __first, _Size __count) +- { +- std::advance(__first, __count); +- return __first; +- } ++ { ++ std::advance(__first, __count); ++ return __first; ++ } + }; + + /** +@@ -168,6 +173,11 @@ + { + typedef typename iterator_traits<_ForwardIterator>::value_type + _Value_type; ++#if __cplusplus >= 201103L ++ // A deleted destructor is trivial, this ensures we reject such types: ++ static_assert(is_destructible<_Value_type>::value, ++ "value type is destructible"); ++#endif + return std::_Destroy_n_aux<__has_trivial_destructor(_Value_type)>:: + __destroy_n(__first, __count); + } +@@ -196,6 +206,29 @@ + _Destroy(__first, __last); + } + ++#if __cplusplus > 201402L ++ template ++ inline void ++ destroy_at(_Tp* __location) ++ { ++ std::_Destroy(__location); ++ } ++ ++ template ++ inline void ++ destroy(_ForwardIterator __first, _ForwardIterator __last) ++ { ++ std::_Destroy(__first, __last); ++ } ++ ++ template ++ inline _ForwardIterator ++ destroy_n(_ForwardIterator __first, _Size __count) ++ { ++ return std::_Destroy_n(__first, __count); ++ } ++#endif ++ + _GLIBCXX_END_NAMESPACE_VERSION + } // namespace std + +Index: libstdc++-v3/include/bits/uses_allocator.h +=================================================================== +--- a/src/libstdc++-v3/include/bits/uses_allocator.h (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/bits/uses_allocator.h (.../branches/gcc-7-branch) +@@ -109,6 +109,11 @@ + __ret._M_a = std::__addressof(__a); + return __ret; + } ++ ++ template ++ void ++ __use_alloc(const _Alloc&&) = delete; ++ + #if __cplusplus > 201402L + template + inline constexpr bool uses_allocator_v = +Index: libstdc++-v3/include/bits/stl_tree.h +=================================================================== +--- a/src/libstdc++-v3/include/bits/stl_tree.h (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/bits/stl_tree.h (.../branches/gcc-7-branch) +@@ -808,7 +808,9 @@ + + #if __cplusplus > 201402L + using node_type = _Node_handle<_Key, _Val, _Node_allocator>; +- using insert_return_type = _Node_insert_return; ++ using insert_return_type = _Node_insert_return< ++ conditional_t, const_iterator, iterator>, ++ node_type>; + #endif + + pair<_Base_ptr, _Base_ptr> +Index: libstdc++-v3/include/Makefile.am +=================================================================== +--- a/src/libstdc++-v3/include/Makefile.am (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/include/Makefile.am (.../branches/gcc-7-branch) +@@ -679,6 +679,7 @@ + ${experimental_srcdir}/ratio \ + ${experimental_srcdir}/regex \ + ${experimental_srcdir}/set \ ++ ${experimental_srcdir}/source_location \ + ${experimental_srcdir}/string \ + ${experimental_srcdir}/string_view \ + ${experimental_srcdir}/system_error \ +Index: libstdc++-v3/libsupc++/eh_alloc.cc +=================================================================== +--- a/src/libstdc++-v3/libsupc++/eh_alloc.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/libsupc++/eh_alloc.cc (.../branches/gcc-7-branch) +@@ -194,13 +194,17 @@ + allocated_entry *e = reinterpret_cast + (reinterpret_cast (data) - offsetof (allocated_entry, data)); + std::size_t sz = e->size; +- if (!first_free_entry) ++ if (!first_free_entry ++ || (reinterpret_cast (e) + sz ++ < reinterpret_cast (first_free_entry))) + { +- // If the free list is empty just put the entry there. ++ // If the free list is empty or the entry is before the ++ // first element and cannot be merged with it add it as ++ // the first free entry. + free_entry *f = reinterpret_cast (e); + new (f) free_entry; + f->size = sz; +- f->next = NULL; ++ f->next = first_free_entry; + first_free_entry = f; + } + else if (reinterpret_cast (e) + sz +@@ -224,9 +228,17 @@ + > reinterpret_cast (e) + sz); + fe = &(*fe)->next) + ; ++ // If we can merge the next block into us do so and continue ++ // with the cases below. ++ if (reinterpret_cast (e) + sz ++ == reinterpret_cast ((*fe)->next)) ++ { ++ sz += (*fe)->next->size; ++ (*fe)->next = (*fe)->next->next; ++ } + if (reinterpret_cast (*fe) + (*fe)->size + == reinterpret_cast (e)) +- /* Merge with the freelist entry. */ ++ // Merge with the freelist entry. + (*fe)->size += sz; + else + { +Index: libstdc++-v3/ChangeLog +=================================================================== +--- a/src/libstdc++-v3/ChangeLog (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/ChangeLog (.../branches/gcc-7-branch) +@@ -1,3 +1,297 @@ ++2017-07-26 Richard Biener ++ ++ Backport from mainline ++ 2017-06-02 Richard Biener ++ Markus Eisenmann ++ ++ PR libstdc++/80721 ++ * libsupc++/eh_alloc.cc (pool::free): Keep list properly ++ sorted and add missing freelist item merging cases. ++ ++2017-07-25 Jonathan Wakely ++ ++ Backport from mainline ++ 2017-06-09 Jonathan Wakely ++ ++ * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes. ++ * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters ++ (LWG 2802). ++ * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter ++ (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise. ++ * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New. ++ ++ Backport from mainline ++ 2017-06-05 Jonathan Wakely ++ ++ * include/bits/shared_ptr_base.h (__shared_ptr::owner_before) ++ (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept ++ specifiers as per LWG 2873 and LWG 2942. ++ * testsuite/20_util/owner_less/noexcept.cc: New. ++ * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test ++ noexcept guarantees. ++ * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise. ++ ++ Backport from mainline ++ 2017-04-28 Jonathan Wakely ++ ++ PR libstdc++/80553 ++ * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static ++ assertions to ensure type is destructible. ++ (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h. ++ * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n): ++ Move to stl_construct.h. ++ * testsuite/20_util/specialized_algorithms/memory_management_tools/ ++ destroy_neg.cc: New test. ++ * testsuite/23_containers/vector/cons/destructible_neg.cc: New test. ++ ++ Backport from mainline ++ 2017-05-16 Jonathan Wakely ++ ++ * configure: Regenerate. ++ * doc/xml/manual/status_cxx2017.xml: Update status table. ++ * doc/html/*: Regenerate. ++ * include/Makefile.am: Add new header. ++ * include/Makefile.in: Regenerate. ++ * include/experimental/source_location: New header implementing N4519. ++ * testsuite/experimental/source_location/1.cc: New test. ++ ++ Backport from mainline ++ 2017-07-06 Jonathan Wakely ++ ++ * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add ++ deleted overload to prevent dangling references to rvalues. ++ * include/experimental/memory_resource ++ (polymorphic_allocator::construct): Do not call __use_alloc with ++ rvalue arguments. ++ ++ Backport from mainline ++ 2017-06-08 Jonathan Wakely ++ ++ PR libstdc++/81017 ++ * include/bits/std_function.h (function::function(function&&)) ++ (function::operator=(funtion&&)): Add noexcept. ++ * testsuite/20_util/function/assign/move.cc: Check for noexcept. ++ * testsuite/20_util/function/cons/move.cc: Likewise. ++ ++ Backport from mainline ++ 2017-07-15 Jonathan Wakely ++ ++ * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter ++ as per P0739R0. ++ * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments. ++ * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction ++ with std::adopt_lock_t. ++ * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check ++ feature-test macro. ++ ++ Backport from mainline ++ 2017-07-14 Jason Merrill ++ Jonathan Wakely ++ ++ * include/std/variant (variant::variant(_Tp&&)): Constrain to remove ++ the constructor for empty variants from the candidate functions ++ during class template argument deduction. ++ * testsuite/20_util/variant/deduction.cc: New. ++ ++ Backport from mainline ++ 2017-06-02 Jonathan Wakely ++ ++ PR libstdc++/80939 ++ * include/std/variant (__erased_ctor, __erased_assign, __erased_swap) ++ (__erased_hash): Remove constexpr specifier and qualify calls to ++ __ref_cast. ++ (__erased_dtor): Remove constexpr specifier and use _Destroy. ++ ++ Backport from mainline ++ 2017-05-20 Tim Shen ++ ++ PR libstdc++/80737 ++ * include/std/variant(variant::variant): SFINAE on is_same first. ++ * testsuite/20_util/variant/any.cc: test case. ++ ++2017-07-11 Jonathan Wakely ++ ++ Backport from mainline ++ 2017-04-21 Jonathan Wakely ++ ++ PR libstdc++/80316 ++ * include/std/future (_State_baseV2::_Setter::operator()): Remove ++ _S_check calls that are done after the pointer to the shared state is ++ already dereferenced. ++ (_State_baseV2::_Setter<_Res, void>): Define specialization for void ++ as partial specialization so it can be defined within the definition ++ of _State_baseV2. ++ (_State_baseV2::__setter): Call _S_check. ++ (_State_baseV2::__setter(promise*)): Add overload for use by ++ promise::set_value and promise::set_value_at_thread_exit. ++ (promise, promise, promise): Make _State a friend. ++ (_State_baseV2::_Setter): Remove explicit specialization. ++ (promise::set_value, promise::set_value_at_thread_exit): ++ Use new __setter overload. ++ * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test. ++ * testsuite/30_threads/promise/members/set_exception.cc: Test ++ promise and promise specializations. ++ * testsuite/30_threads/promise/members/set_exception2.cc: Likewise. ++ Test for no_state error condition. ++ * testsuite/30_threads/promise/members/set_value2.cc: Likewise. ++ ++2017-06-27 Jonathan Wakely ++ ++ PR libstdc++/81221 ++ * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not ++ std. ++ * testsuite/25_algorithms/sample/81221.cc: New. ++ ++2017-06-21 Ville Voutilainen ++ ++ Backport from mainline ++ 2017-06-21 Ville Voutilainen ++ ++ PR libstdc++/80675 ++ PR libstdc++/80940 ++ * include/std/istream: ++ (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New. ++ (__do_is_convertible_to_basic_istream_impl): Likewise. ++ (__is_convertible_to_basic_istream_impl): Likewise. ++ (__is_convertible_to_basic_istream): Use the new base. ++ (__rvalue_istream_type): New. ++ (operator>>(_Istream&&, _Tp&&)): Use the new helper alias ++ for the SFINAE check, convert to the helper alias type before ++ doing the actual extraction. ++ * include/std/ostream: ++ (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New. ++ (__do_is_convertible_to_basic_ostream_impl): Likewise. ++ (__is_convertible_to_basic_ostream_impl): Likewise. ++ (__is_convertible_to_basic_ostream): Use the new base. ++ (__rvalue_ostream_type): New. ++ (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias ++ for the SFINAE check, convert to the helper alias type before ++ doing the actual insertion. ++ * testsuite/27_io/rvalue_streams-2.cc: Add new tests. ++ ++2017-06-21 Uros Bizjak ++ ++ * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update. ++ ++2017-06-21 Jonathan Wakely ++ ++ PR libstdc++/81092 ++ * configure: Regenerate. ++ ++2017-06-19 Rainer Orth ++ ++ * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate. ++ * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise. ++ * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise. ++ * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise. ++ * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise. ++ * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt: ++ Likewise. ++ * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise. ++ * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt: ++ Likewise. ++ ++2017-06-18 H.J. Lu ++ ++ PR libstdc++/81092 ++ * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated. ++ ++2017-06-16 Jakub Jelinek ++ ++ PR libstdc++/81092 ++ * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. ++ ++2017-06-16 Jonathan Wakely ++ ++ * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition. ++ * testsuite/22_locale/conversions/buffer/2.cc: New. ++ ++ * doc/xml/manual/appendix_contributing.xml: Link to the list of bad ++ names, and link to the test docs and note higher DejaGnu version ++ requirement. ++ * doc/xml/manual/allocator.xml: Fix ViewCVS URLs. ++ * doc/xml/manual/mt_allocator.xml: Likewise. ++ * doc/xml/manual/test.xml: Correct instructions on running tests. ++ * doc/html/*: Regenerate. ++ ++ PR libstdc++/81092 ++ * acinclude.m4: Bump libtool_VERSION. ++ * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update. ++ * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. ++ * config/abi/pre/gnu.ver: Add wstring constructor symbols to new ++ GLIBCXX_3.4.24 version. ++ * doc/xml/manual/abi.xml: Document new versions. ++ * doc/html/*: Regenerate. ++ * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object ++ constructors to ensure required symbols are exported. ++ * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise. ++ * testsuite/util/testsuite_abi.cc: Add new version. ++ ++ * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing ++ return statement. ++ * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc: ++ Return void. ++ * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc: ++ Likewise. ++ * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add ++ missing return statements. ++ * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc: ++ Likewise. ++ * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc: ++ Return void. ++ * testsuite/special_functions/14_expint/pr68397.cc: Likewise. ++ ++2017-06-07 Jonathan Wakely ++ ++ PR libstdc++/81002 ++ * include/bits/regex_compiler.h (__compile_nfa): Add template argument ++ list to specify traits type. ++ * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New. ++ ++2017-05-19 Jonathan Wakely ++ ++ PR libstdc++/80796 ++ * include/bits/stl_algo.h (search): Add new overload for C++17. ++ * testsuite/25_algorithms/search/searcher.cc: New. ++ ++2017-05-18 Jonathan Wakely ++ ++ PR libstdc++/80478 ++ * include/std/functional (_Mem_fn_traits_base): Add specializations ++ for noexcept member function types. ++ * testsuite/20_util/function_objects/mem_fn/80478.cc: New test. ++ ++2017-05-18 Jonathan Wakely ++ ++ * doc/xml/manual/policy_data_structures.xml: Fix typo. ++ * doc/xml/manual/test_policy_data_structures.xml: Likewise. ++ * doc/html/*: Regenerate. ++ ++ * doc/xml/manual/abi.xml: Document latest library versions. ++ * doc/xml/manual/build_hacking.xml: Document requirement to update ++ abi.xml when bumping library versions. ++ * doc/html/*: Regenerate. ++ ++2017-05-15 Jonathan Wakely ++ ++ PR libstdc++/80761 ++ * include/bits/node_handle.h (_Node_insert_return): Reorder members. ++ (tuple_size, tuple_element): Remove partial specializations. ++ * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use ++ const_iterator for std::set. ++ * testsuite/23_containers/map/modifiers/extract.cc: New. ++ * testsuite/23_containers/set/modifiers/extract.cc: New. ++ * testsuite/23_containers/unordered_map/modifiers/extract.cc: New. ++ * testsuite/23_containers/unordered_set/modifiers/extract.cc: New. ++ ++2017-05-12 Jonathan Wakely ++ ++ PR libstdc++/78939 ++ * include/std/utility (tuple_size) [__cplusplus > 201402L]: ++ Only define partial specializations when tuple_size::value is ++ valid. ++ * testsuite/20_util/tuple/78939.cc: New. ++ + 2017-05-02 Release Manager + + * GCC 7.1.0 released. +Index: libstdc++-v3/testsuite/25_algorithms/search/searcher.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/25_algorithms/search/searcher.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/25_algorithms/search/searcher.cc (.../branches/gcc-7-branch) +@@ -0,0 +1,47 @@ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++// { dg-options "-std=gnu++17" } ++// { dg-do run { target c++1z } } ++ ++#include ++#include ++ ++struct nocopy ++{ ++ nocopy() = default; ++ nocopy(const nocopy&) = delete; ++ nocopy& operator=(const nocopy&) = delete; ++ ++ struct P { int* first; }; ++ ++ P operator()(int* f, int* l) const { return {f}; } ++}; ++ ++void ++test01() ++{ ++ int i[] = { 1, 2 }; ++ auto res = std::search(i, i + 2, nocopy{}); ++ VERIFY( res == i ); ++} ++ ++int ++main() ++{ ++ test01(); ++} +Index: libstdc++-v3/testsuite/25_algorithms/sample/81221.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/25_algorithms/sample/81221.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/25_algorithms/sample/81221.cc (.../branches/gcc-7-branch) +@@ -0,0 +1,22 @@ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++// { dg-options "-std=gnu++17" } ++// { dg-do compile { target c++1z } } ++// { dg-require-parallel-mode "" } ++ ++#include +Index: libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/iter.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/iter.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/28_regex/basic_regex/ctors/basic/iter.cc (.../branches/gcc-7-branch) +@@ -0,0 +1,30 @@ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++// { dg-do compile { target c++11 } } ++ ++#include ++#include ++ ++void ++test01() ++{ ++ char s[] = ""; ++ __gnu_test::test_container c(s); ++ std::regex r1(c.begin(), c.end()); ++ std::regex r2(c.begin(), c.end(), std::regex_constants::grep); ++} +Index: libstdc++-v3/testsuite/30_threads/scoped_lock/cons/deduction.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/30_threads/scoped_lock/cons/deduction.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/30_threads/scoped_lock/cons/deduction.cc (.../branches/gcc-7-branch) +@@ -51,3 +51,28 @@ + std::scoped_lock l2(m2, m3); + check_type>(l2); + } ++ ++void ++test02() ++{ ++ std::scoped_lock l0(std::adopt_lock); ++ check_type>(l0); ++ ++ struct BasicLockable { ++ void lock() { } ++ void unlock() { } ++ } m1; ++ ++ std::scoped_lock l1(std::adopt_lock, m1); ++ check_type>(l1); ++ ++ struct Lockable { ++ void lock() { } ++ void unlock() { } ++ bool try_lock() { return true; } ++ } m2; ++ ++ std::mutex m3; ++ std::scoped_lock l2(std::adopt_lock, m2, m3); ++ check_type>(l2); ++} +Index: libstdc++-v3/testsuite/30_threads/scoped_lock/cons/1.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/30_threads/scoped_lock/cons/1.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/30_threads/scoped_lock/cons/1.cc (.../branches/gcc-7-branch) +@@ -79,7 +79,7 @@ + + try + { +- std::scoped_lock l(m, std::adopt_lock); ++ std::scoped_lock l(std::adopt_lock, m); + } + catch (...) + { +@@ -113,7 +113,7 @@ + + try + { +- std::scoped_lock, Lockable<2>> l(m1, m2, std::adopt_lock); ++ std::scoped_lock, Lockable<2>> l(std::adopt_lock, m1, m2); + VERIFY( m1.m.locked ); + VERIFY( m2.m.locked ); + } +Index: libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/typedefs.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/typedefs.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/30_threads/scoped_lock/requirements/typedefs.cc (.../branches/gcc-7-branch) +@@ -25,6 +25,12 @@ + + #include + ++#ifndef __cpp_lib_scoped_lock ++# error "Feature-test macro for scoped_lock missing" ++#elif __cpp_lib_scoped_lock != 201707 ++# error "Feature-test macro for scoped_lock has wrong value" ++#endif ++ + void test01() + { + // Check for required typedefs +Index: libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc (.../branches/gcc-7-branch) +@@ -21,10 +21,13 @@ + // with this library; see the file COPYING3. If not see + // . + ++// Test that promise::set_exception throws when required. + + #include + #include + ++// Check for promise_already_satisfied error conditions. ++ + void test01() + { + bool test = false; +@@ -83,9 +86,187 @@ + VERIFY( test ); + } + ++void test03() ++{ ++ bool test = false; ++ ++ std::promise p1; ++ std::future f1 = p1.get_future(); ++ ++ p1.set_exception(std::make_exception_ptr(0)); ++ ++ try ++ { ++ p1.set_exception(std::make_exception_ptr(1)); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == ++ std::make_error_code(std::future_errc::promise_already_satisfied)); ++ test = true; ++ } ++ ++ try ++ { ++ f1.get(); ++ test = false; ++ } ++ catch(int i) ++ { ++ VERIFY( i == 0 ); ++ } ++ ++ VERIFY( test ); ++} ++ ++void test04() ++{ ++ bool test = false; ++ ++ std::promise p1; ++ std::future f1 = p1.get_future(); ++ ++ int i = 2; ++ p1.set_value(i); ++ ++ try ++ { ++ p1.set_exception(std::make_exception_ptr(0)); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == ++ std::make_error_code(std::future_errc::promise_already_satisfied)); ++ test = true; ++ } ++ ++ VERIFY( test ); ++} ++ ++void test05() ++{ ++ bool test = false; ++ ++ std::promise p1; ++ std::future f1 = p1.get_future(); ++ ++ p1.set_exception(std::make_exception_ptr(0)); ++ ++ try ++ { ++ p1.set_exception(std::make_exception_ptr(1)); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == ++ std::make_error_code(std::future_errc::promise_already_satisfied)); ++ test = true; ++ } ++ ++ try ++ { ++ f1.get(); ++ test = false; ++ } ++ catch(int i) ++ { ++ VERIFY( i == 0 ); ++ } ++ ++ VERIFY( test ); ++} ++ ++void test06() ++{ ++ bool test = false; ++ ++ std::promise p1; ++ std::future f1 = p1.get_future(); ++ ++ p1.set_value(); ++ ++ try ++ { ++ p1.set_exception(std::make_exception_ptr(0)); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == ++ std::make_error_code(std::future_errc::promise_already_satisfied)); ++ test = true; ++ } ++ ++ VERIFY( test ); ++} ++ ++// Check for no_state error condition (PR libstdc++/80316) ++ ++void test07() ++{ ++ using namespace std; ++ ++ promise p1; ++ promise p2(std::move(p1)); ++ try ++ { ++ p1.set_exception(std::make_exception_ptr(1)); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == make_error_code(future_errc::no_state)); ++ } ++} ++ ++void test08() ++{ ++ using namespace std; ++ ++ promise p1; ++ promise p2(std::move(p1)); ++ try ++ { ++ int i = 0; ++ p1.set_exception(std::make_exception_ptr(1)); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == make_error_code(future_errc::no_state)); ++ } ++} ++ ++void test09() ++{ ++ using namespace std; ++ ++ promise p1; ++ promise p2(std::move(p1)); ++ try ++ { ++ p1.set_exception(std::make_exception_ptr(1)); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == make_error_code(future_errc::no_state)); ++ } ++} ++ + int main() + { + test01(); + test02(); ++ test03(); ++ test04(); ++ test05(); ++ test06(); ++ test07(); ++ test08(); ++ test09(); + return 0; + } +Index: libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit2.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit2.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/30_threads/promise/members/at_thread_exit2.cc (.../branches/gcc-7-branch) +@@ -0,0 +1,167 @@ ++// { dg-do run { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-gnu* *-*-solaris* *-*-cygwin *-*-rtems* *-*-darwin* powerpc-ibm-aix* } } ++// { dg-options "-pthread" { target *-*-freebsd* *-*-dragonfly* *-*-netbsd* *-*-linux* *-*-gnu* *-*-solaris* powerpc-ibm-aix* } } ++// { dg-require-effective-target c++11 } ++// { dg-require-cstdint "" } ++// { dg-require-gthreads "" } ++ ++// Copyright (C) 2014-2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++// Test set_value_at_thread_exit error conditions ++ ++#include ++#include ++ ++void test01() ++{ ++ std::promise p1; ++ p1.set_value(1); ++ try ++ { ++ p1.set_value_at_thread_exit(2); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY( e.code() == std::future_errc::promise_already_satisfied ); ++ } ++ try ++ { ++ p1.set_exception_at_thread_exit(std::make_exception_ptr(3)); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY( e.code() == std::future_errc::promise_already_satisfied ); ++ } ++ ++ std::promise p2(std::move(p1)); ++ try ++ { ++ p1.set_value_at_thread_exit(2); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY( e.code() == std::future_errc::no_state ); ++ } ++ try ++ { ++ p1.set_exception_at_thread_exit(std::make_exception_ptr(3)); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY( e.code() == std::future_errc::no_state ); ++ } ++} ++ ++void test02() ++{ ++ std::promise p1; ++ int i = 1; ++ p1.set_value(i); ++ try ++ { ++ p1.set_value_at_thread_exit(i); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY( e.code() == std::future_errc::promise_already_satisfied ); ++ } ++ try ++ { ++ p1.set_exception_at_thread_exit(std::make_exception_ptr(3)); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY( e.code() == std::future_errc::promise_already_satisfied ); ++ } ++ ++ std::promise p2(std::move(p1)); ++ try ++ { ++ int i = 0; ++ p1.set_value_at_thread_exit(i); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY( e.code() == std::future_errc::no_state ); ++ } ++ try ++ { ++ p1.set_exception_at_thread_exit(std::make_exception_ptr(3)); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY( e.code() == std::future_errc::no_state ); ++ } ++} ++ ++void test03() ++{ ++ std::promise p1; ++ int i = 0; ++ p1.set_value(); ++ try { ++ p1.set_value_at_thread_exit(); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY( e.code() == std::future_errc::promise_already_satisfied ); ++ } ++ try ++ { ++ p1.set_exception_at_thread_exit(std::make_exception_ptr(3)); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY( e.code() == std::future_errc::promise_already_satisfied ); ++ } ++ ++ std::promise p2(std::move(p1)); ++ try { ++ p1.set_value_at_thread_exit(); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY( e.code() == std::future_errc::no_state ); ++ } ++ try ++ { ++ p1.set_exception_at_thread_exit(std::make_exception_ptr(3)); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY( e.code() == std::future_errc::no_state ); ++ } ++} ++ ++int main() ++{ ++ test01(); ++ test02(); ++ test03(); ++} +Index: libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc (.../branches/gcc-7-branch) +@@ -21,6 +21,7 @@ + // with this library; see the file COPYING3. If not see + // . + ++// Test that promise::set_exception stores an exception. + + #include + #include +@@ -48,8 +49,56 @@ + VERIFY( !f1.valid() ); + } + ++void test02() ++{ ++ bool test = false; ++ ++ std::promise p1; ++ std::future f1 = p1.get_future(); ++ ++ VERIFY( f1.valid() ); ++ ++ p1.set_exception(std::make_exception_ptr(0)); ++ ++ try ++ { ++ f1.get(); ++ } ++ catch (int) ++ { ++ test = true; ++ } ++ VERIFY( test ); ++ VERIFY( !f1.valid() ); ++} ++ ++void test03() ++{ ++ bool test = false; ++ ++ std::promise p1; ++ std::future f1 = p1.get_future(); ++ ++ VERIFY( f1.valid() ); ++ ++ p1.set_exception(std::make_exception_ptr(0)); ++ ++ try ++ { ++ f1.get(); ++ } ++ catch (int) ++ { ++ test = true; ++ } ++ VERIFY( test ); ++ VERIFY( !f1.valid() ); ++} ++ + int main() + { + test01(); ++ test02(); ++ test03(); + return 0; + } +Index: libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc (.../branches/gcc-7-branch) +@@ -21,10 +21,13 @@ + // with this library; see the file COPYING3. If not see + // . + ++// Test that promise::set_value throws when required. + + #include + #include + ++// Check for promise_already_satisfied error conditions. ++ + void test01() + { + bool test = false; +@@ -79,9 +82,298 @@ + VERIFY( test ); + } + ++void test03() ++{ ++ bool test = false; ++ ++ std::promise p1; ++ std::future f1 = p1.get_future(); ++ ++ p1.set_exception(std::make_exception_ptr(4)); ++ ++ try ++ { ++ p1.set_value(3); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == ++ std::make_error_code(std::future_errc::promise_already_satisfied)); ++ test = true; ++ } ++ ++ std::chrono::milliseconds delay(1); ++ VERIFY( f1.wait_for(delay) == std::future_status::ready ); ++ test = false; ++ try ++ { ++ f1.get(); ++ VERIFY( false ); ++ } ++ catch (int e) ++ { ++ VERIFY(e == 4 ); ++ test = true; ++ } ++ ++ VERIFY( test ); ++} ++ ++void test04() ++{ ++ bool test = false; ++ ++ std::promise p1; ++ std::future f1 = p1.get_future(); ++ ++ int i = 1; ++ p1.set_value(i); ++ ++ try ++ { ++ p1.set_value(i); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == ++ std::make_error_code(std::future_errc::promise_already_satisfied)); ++ test = true; ++ } ++ ++ std::chrono::milliseconds delay(1); ++ VERIFY( f1.wait_for(delay) == std::future_status::ready ); ++ VERIFY( f1.get() == 1 ); ++ VERIFY( test ); ++} ++ ++void test05() ++{ ++ bool test = false; ++ ++ std::promise p1; ++ std::future f1 = p1.get_future(); ++ ++ int i = 3; ++ p1.set_value(i); ++ ++ try ++ { ++ p1.set_exception(std::make_exception_ptr(4)); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == ++ std::make_error_code(std::future_errc::promise_already_satisfied)); ++ test = true; ++ } ++ ++ std::chrono::milliseconds delay(1); ++ VERIFY( f1.wait_for(delay) == std::future_status::ready ); ++ VERIFY( f1.get() == 3 ); ++ VERIFY( test ); ++} ++ ++void test06() ++{ ++ bool test = false; ++ ++ std::promise p1; ++ std::future f1 = p1.get_future(); ++ ++ p1.set_exception(std::make_exception_ptr(4)); ++ ++ try ++ { ++ int i = 3; ++ p1.set_value(i); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == ++ std::make_error_code(std::future_errc::promise_already_satisfied)); ++ test = true; ++ } ++ ++ std::chrono::milliseconds delay(1); ++ VERIFY( f1.wait_for(delay) == std::future_status::ready ); ++ test = false; ++ try ++ { ++ f1.get(); ++ VERIFY( false ); ++ } ++ catch (int e) ++ { ++ VERIFY(e == 4 ); ++ test = true; ++ } ++ ++ VERIFY( test ); ++} ++ ++void test07() ++{ ++ bool test = false; ++ ++ std::promise p1; ++ std::future f1 = p1.get_future(); ++ ++ p1.set_value(); ++ ++ try ++ { ++ p1.set_value(); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == ++ std::make_error_code(std::future_errc::promise_already_satisfied)); ++ test = true; ++ } ++ ++ std::chrono::milliseconds delay(1); ++ VERIFY( f1.wait_for(delay) == std::future_status::ready ); ++ f1.get(); ++ VERIFY( test ); ++} ++ ++void test08() ++{ ++ bool test = false; ++ ++ std::promise p1; ++ std::future f1 = p1.get_future(); ++ ++ p1.set_value(); ++ ++ try ++ { ++ p1.set_exception(std::make_exception_ptr(4)); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == ++ std::make_error_code(std::future_errc::promise_already_satisfied)); ++ test = true; ++ } ++ ++ std::chrono::milliseconds delay(1); ++ VERIFY( f1.wait_for(delay) == std::future_status::ready ); ++ f1.get(); ++ VERIFY( test ); ++} ++ ++void test09() ++{ ++ bool test = false; ++ ++ std::promise p1; ++ std::future f1 = p1.get_future(); ++ ++ p1.set_exception(std::make_exception_ptr(4)); ++ ++ try ++ { ++ p1.set_value(); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == ++ std::make_error_code(std::future_errc::promise_already_satisfied)); ++ test = true; ++ } ++ ++ std::chrono::milliseconds delay(1); ++ VERIFY( f1.wait_for(delay) == std::future_status::ready ); ++ test = false; ++ try ++ { ++ f1.get(); ++ VERIFY( false ); ++ } ++ catch (int e) ++ { ++ VERIFY(e == 4 ); ++ test = true; ++ } ++ ++ VERIFY( test ); ++} ++ ++// Check for no_state error condition (PR libstdc++/80316) ++ ++void test10() ++{ ++ using namespace std; ++ ++ promise p1; ++ promise p2(std::move(p1)); ++ try ++ { ++ p1.set_value(1); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == make_error_code(future_errc::no_state)); ++ } ++} ++ ++void test11() ++{ ++ using namespace std; ++ ++ promise p1; ++ promise p2(std::move(p1)); ++ try ++ { ++ int i = 0; ++ p1.set_value(i); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == make_error_code(future_errc::no_state)); ++ } ++} ++ ++void test12() ++{ ++ using namespace std; ++ ++ promise p1; ++ promise p2(std::move(p1)); ++ try ++ { ++ p1.set_value(); ++ VERIFY( false ); ++ } ++ catch (std::future_error& e) ++ { ++ VERIFY(e.code() == make_error_code(future_errc::no_state)); ++ } ++} ++ + int main() + { + test01(); + test02(); ++ test03(); ++ test04(); ++ test05(); ++ test06(); ++ test07(); ++ test08(); ++ test09(); ++ test10(); ++ test11(); ++ test12(); + return 0; + } +Index: libstdc++-v3/testsuite/22_locale/conversions/buffer/2.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/22_locale/conversions/buffer/2.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/22_locale/conversions/buffer/2.cc (.../branches/gcc-7-branch) +@@ -0,0 +1,39 @@ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++// { dg-do run { target c++11 } } ++ ++#include ++#include ++#include ++ ++void ++test01() ++{ ++ struct Cvt : std::codecvt { }; ++ std::stringstream ss; ++ std::wbuffer_convert cvt(ss.rdbuf()); ++ auto p = ss.std::ios::rdbuf(&cvt); ++ ss << "hello"; ++ VERIFY( ss.flush().good() ); ++ ss.std::ios::rdbuf(p); ++} ++ ++int main() ++{ ++ test01(); ++} +Index: libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc (.../branches/gcc-7-branch) +@@ -38,10 +38,12 @@ + { + val = other.val; + other.moved_from_assign = true; ++ return *this; + } + Val& operator=(const Val& other) + { + val = other.val; ++ return *this; + } + }; + +Index: libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/extract.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/extract.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/23_containers/unordered_map/modifiers/extract.cc (.../branches/gcc-7-branch) +@@ -136,6 +136,17 @@ + static_assert( is_same_v ); + } + ++void ++test04() ++{ ++ // Check order of members in insert_return_type ++ auto [pos, ins, node] = test_type::insert_return_type{}; ++ using std::is_same_v; ++ static_assert( is_same_v ); ++ static_assert( is_same_v ); ++ static_assert( is_same_v ); ++} ++ + int + main() + { +Index: libstdc++-v3/testsuite/23_containers/set/modifiers/extract.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/23_containers/set/modifiers/extract.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/23_containers/set/modifiers/extract.cc (.../branches/gcc-7-branch) +@@ -126,6 +126,17 @@ + static_assert( is_same_v ); + } + ++void ++test04() ++{ ++ // Check order of members in insert_return_type ++ auto [pos, ins, node] = test_type::insert_return_type{}; ++ using std::is_same_v; ++ static_assert( is_same_v ); ++ static_assert( is_same_v ); ++ static_assert( is_same_v ); ++} ++ + int + main() + { +Index: libstdc++-v3/testsuite/23_containers/vector/cons/destructible_neg.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_neg.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_neg.cc (.../branches/gcc-7-branch) +@@ -0,0 +1,44 @@ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++// { dg-do compile { target c++11 } } ++ ++#include ++ ++// PR libstdc++/80553 ++ ++struct DeletedDtor { ++ ~DeletedDtor() = delete; ++}; ++ ++class PrivateDtor { ++ ~PrivateDtor() { } ++}; ++ ++void ++test01() ++{ ++ std::vector v; // { dg-error "here" } ++} ++ ++void ++test02() ++{ ++ std::vector v; // { dg-error "here" } ++} ++ ++// { dg-error "value type is destructible" "" { target *-*-* } 0 } +Index: libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/extract.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/extract.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/extract.cc (.../branches/gcc-7-branch) +@@ -128,6 +128,17 @@ + static_assert( is_same_v ); + } + ++void ++test04() ++{ ++ // Check order of members in insert_return_type ++ auto [pos, ins, node] = test_type::insert_return_type{}; ++ using std::is_same_v; ++ static_assert( is_same_v ); ++ static_assert( is_same_v ); ++ static_assert( is_same_v ); ++} ++ + int + main() + { +Index: libstdc++-v3/testsuite/23_containers/map/modifiers/insert_or_assign/1.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/23_containers/map/modifiers/insert_or_assign/1.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/23_containers/map/modifiers/insert_or_assign/1.cc (.../branches/gcc-7-branch) +@@ -39,10 +39,12 @@ + { + val = other.val; + other.moved_from_assign = true; ++ return *this; + } + Val& operator=(const Val& other) + { + val = other.val; ++ return *this; + } + }; + +Index: libstdc++-v3/testsuite/23_containers/map/modifiers/extract.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/23_containers/map/modifiers/extract.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/23_containers/map/modifiers/extract.cc (.../branches/gcc-7-branch) +@@ -135,6 +135,17 @@ + static_assert( is_same_v ); + } + ++void ++test04() ++{ ++ // Check order of members in insert_return_type ++ auto [pos, ins, node] = test_type::insert_return_type{}; ++ using std::is_same_v; ++ static_assert( is_same_v ); ++ static_assert( is_same_v ); ++ static_assert( is_same_v ); ++} ++ + int + main() + { +Index: libstdc++-v3/testsuite/27_io/rvalue_streams-2.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/27_io/rvalue_streams-2.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/27_io/rvalue_streams-2.cc (.../branches/gcc-7-branch) +@@ -24,7 +24,51 @@ + void operator<<(std::ostream&, const A&) { } + void operator>>(std::istream&, A&) { } + ++class MyStream : private std::ostream, private std::istream ++{ ++public: ++ MyStream& operator <<(const char*) ++ { ++ return *this; ++ } ++ MyStream& operator >>(int&) ++ { ++ return *this; ++ } ++}; ++ ++class MyStream2 ++{ ++public: ++ MyStream2& operator <<(const char*) ++ { ++ return *this; ++ } ++ MyStream2& operator >>(int&) ++ { ++ return *this; ++ } ++private: ++ operator std::ostream&(); ++ operator std::istream&(); ++}; ++ ++struct X { }; ++ ++std::ostream& operator<<(std::ostream& os, const X&) { return os; } ++std::istream& operator>>(std::istream& is, X&&) { return is; } ++ ++struct O : std::ostream { }; ++ ++void operator<<(O&, X) = delete; ++ ++struct I : std::istream { }; ++ ++void operator>>(I&, X) = delete; ++ + // PR libstdc++/65543 ++// PR libstdc++/80675 ++// PR libstdc++/80940 + int main() + { + A a; +@@ -31,4 +75,13 @@ + + std::ostringstream() << a; + std::istringstream() >> a; ++ MyStream stream{}; ++ stream << "aaa"; ++ int msi; ++ stream >> msi; ++ MyStream2 stream2{}; ++ stream2 << "aaa"; ++ stream2 >> msi; ++ O{} << X{}; ++ I{} >> X{}; + } +Index: libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc (.../branches/gcc-7-branch) +@@ -50,7 +50,7 @@ + VERIFY(is.fail()); + } + +-bool test12() ++void test12() + { + test12_aux(true); + test12_aux(true); +Index: libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc (.../branches/gcc-7-branch) +@@ -22,7 +22,7 @@ + #include + #include + +-bool ++void + test01() + { + typedef std::wstring_view::size_type csize_type; +Index: libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/1.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/1.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/1.cc (.../branches/gcc-7-branch) +@@ -22,7 +22,7 @@ + #include + #include + +-bool ++void + test01() + { + typedef std::string_view::size_type csize_type; +Index: libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/8.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/8.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/8.cc (.../branches/gcc-7-branch) +@@ -15,16 +15,31 @@ + // with this library; see the file COPYING3. If not see + // . + ++// { dg-options "-O0" } + // { dg-do run { target c++11 } } + + #include + #include + ++struct TestBaseObjCtor : std::wstring ++{ ++ template ++ TestBaseObjCtor(Args&&... args) ++ : std::wstring(std::forward(args)...) ++ { } ++}; ++ + template + std::size_t + construct(Args&&... args) + { +- return std::wstring( std::forward(args)... ).length(); ++ // Use static_cast to produce either an lvalue or prvalue, ++ // so args... not left in moved-from state and can be reused below: ++ TestBaseObjCtor as_base_obj( static_cast(args)... ); ++ ++ std::wstring as_complete_obj( std::forward(args)... ); ++ ++ return as_complete_obj.length(); + } + + void +Index: libstdc++-v3/testsuite/21_strings/basic_string/cons/char/8.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/8.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/8.cc (.../branches/gcc-7-branch) +@@ -15,16 +15,31 @@ + // with this library; see the file COPYING3. If not see + // . + ++// { dg-options "-O0" } + // { dg-do run { target c++11 } } + + #include + #include + ++struct TestBaseObjCtor : std::string ++{ ++ template ++ TestBaseObjCtor(Args&&... args) ++ : std::string(std::forward(args)...) ++ { } ++}; ++ + template + std::size_t + construct(Args&&... args) + { +- return std::string( std::forward(args)... ).length(); ++ // Use static_cast to produce either an lvalue or prvalue, ++ // so args... not left in moved-from state and can be reused below: ++ TestBaseObjCtor as_base_obj( static_cast(args)... ); ++ ++ std::string as_complete_obj( std::forward(args)... ); ++ ++ return as_complete_obj.length(); + } + + void +Index: libstdc++-v3/testsuite/experimental/source_location/1.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/experimental/source_location/1.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/experimental/source_location/1.cc (.../branches/gcc-7-branch) +@@ -0,0 +1,117 @@ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++// { dg-do run { target c++14 } } ++ ++#include ++#include ++#include ++ ++using std::experimental::source_location; ++using std::experimental::string_view; ++ ++void ++test01() ++{ ++ constexpr source_location loc = source_location::current(); ++ static_assert( loc.line() == 30 ); ++ // static_assert( loc.column() == 35 ); ++ VERIFY( loc.file_name() == __FILE__ ); ++ VERIFY( loc.function_name() == string_view(__FUNCTION__) ); ++} ++ ++struct S { ++ string_view func; ++ source_location loc = source_location::current(); ++ ++ S(source_location loc = source_location::current()) ++ : func(__FUNCTION__), loc(loc) // values of loc will be from call-site ++ {} ++ ++ S(int) ++ : func(__FUNCTION__) // values of loc should be hereabouts ++ {} ++}; ++ ++void test02() ++{ ++ S s0; ++ VERIFY( s0.loc.line() == 52 ); ++ // static_assert( s0.loc.column() == 7 ); ++ VERIFY( s0.loc.file_name() == __FILE__ ); ++ VERIFY( s0.loc.function_name() == string_view(__FUNCTION__) ); ++ ++ S s1(1); ++ VERIFY( s1.loc.line() == 46 ); ++ VERIFY( s1.loc.file_name() == __FILE__ ); ++ VERIFY( s1.loc.function_name() == s1.func ); ++} ++ ++source_location f(source_location a = source_location::current()) { ++ return a; ++} ++ ++source_location g(string_view& func) { ++ source_location a = source_location::current(); ++ func = __FUNCTION__; ++ return a; ++} ++ ++void test03() ++{ ++ auto loc = f(); // f's first argument corresponds to this line of code ++ VERIFY( loc.line() == 76 ); ++ // static_assert( loc.column() == 16 ); ++ VERIFY( loc.file_name() == __FILE__ ); ++ VERIFY( loc.function_name() == string_view(__FUNCTION__) ); ++ ++ source_location c = source_location::current(); ++ loc = f(c); // f's first argument gets the same values as c, above ++ VERIFY( loc.line() == 82 ); ++ // static_assert( loc.column() == 23 ); ++ VERIFY( loc.file_name() == __FILE__ ); ++ VERIFY( loc.function_name() == string_view(__FUNCTION__) ); ++ ++ string_view func; ++ loc = g(func); ++ VERIFY( loc.line() == 69 ); ++ // static_assert( loc.column() == 23 ); ++ VERIFY( loc.file_name() == __FILE__ ); ++ VERIFY( loc.function_name() == func ); ++} ++ ++void ++test04() ++{ ++ using std::is_same; ++ using std::uint_least32_t; ++ auto loc = source_location::current(); ++ static_assert(is_same::value, ""); ++ static_assert(is_same::value, ""); ++ static_assert(is_same::value, ""); ++ static_assert(is_same::value, ""); ++ static_assert(is_same::value, ""); ++} ++ ++int ++main() ++{ ++ test01(); ++ test02(); ++ test03(); ++ test04(); ++} +Index: libstdc++-v3/testsuite/util/testsuite_abi.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/util/testsuite_abi.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/util/testsuite_abi.cc (.../branches/gcc-7-branch) +@@ -204,6 +204,7 @@ + known_versions.push_back("GLIBCXX_LDBL_3.4.21"); + known_versions.push_back("GLIBCXX_3.4.22"); + known_versions.push_back("GLIBCXX_3.4.23"); ++ known_versions.push_back("GLIBCXX_3.4.24"); + known_versions.push_back("CXXABI_1.3"); + known_versions.push_back("CXXABI_LDBL_1.3"); + known_versions.push_back("CXXABI_1.3.1"); +@@ -234,7 +235,7 @@ + test.version_status = symbol::incompatible; + + // Check that added symbols are added in the latest pre-release version. +- bool latestp = (test.version_name == "GLIBCXX_3.4.23" ++ bool latestp = (test.version_name == "GLIBCXX_3.4.24" + || test.version_name == "CXXABI_1.3.11" + || test.version_name == "CXXABI_FLOAT128" + || test.version_name == "CXXABI_TM_1"); +Index: libstdc++-v3/testsuite/20_util/owner_less/noexcept.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/20_util/owner_less/noexcept.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/20_util/owner_less/noexcept.cc (.../branches/gcc-7-branch) +@@ -0,0 +1,40 @@ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++// { dg-do compile { target c++11 } } ++ ++#include ++ ++const std::shared_ptr si; ++const std::weak_ptr wi; ++const std::owner_less> osi; ++static_assert( noexcept(osi(si, si)), "" ); ++static_assert( noexcept(osi(si, wi)), "" ); ++static_assert( noexcept(osi(wi, si)), "" ); ++const std::owner_less> owi; ++static_assert( noexcept(owi(wi, wi)), "" ); ++static_assert( noexcept(owi(si, wi)), "" ); ++static_assert( noexcept(owi(wi, si)), "" ); ++const std::shared_ptr sl; ++const std::weak_ptr wc; ++const std::owner_less ov; ++static_assert( noexcept(ov(si, si)), "" ); ++static_assert( noexcept(ov(si, sl)), "" ); ++static_assert( noexcept(ov(sl, si)), "" ); ++static_assert( noexcept(ov(si, wc)), "" ); ++static_assert( noexcept(ov(wc, si)), "" ); ++static_assert( noexcept(ov(wc, wi)), "" ); +Index: libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg2802.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg2802.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/20_util/shared_ptr/cons/lwg2802.cc (.../branches/gcc-7-branch) +@@ -0,0 +1,51 @@ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++// { dg-do compile { target c++11 } } ++ ++#include ++ ++// LWG 2802. shared_ptr constructor requirements for a deleter ++ ++struct D ++{ ++ D() { } ++ D(D&&) { } ++ void operator()(int* p) const { delete p; } ++}; ++ ++std::allocator a; ++ ++std::shared_ptr s1((int*)nullptr, D()); ++std::shared_ptr s2((int*)nullptr, D(), a); ++std::shared_ptr s3(nullptr, D()); ++std::shared_ptr s4(nullptr, D(), a); ++ ++void test01() ++{ ++ s1.reset((int*)nullptr, D()); ++ s1.reset((int*)nullptr, D(), a); ++} ++ ++struct D2 final ++{ ++ D2() { } ++ D2(D2&&) { } ++ void operator()(int* p) const { delete p; } ++}; ++ ++std::shared_ptr s5(nullptr, D2()); +Index: libstdc++-v3/testsuite/20_util/shared_ptr/observers/owner_before.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/20_util/shared_ptr/observers/owner_before.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/20_util/shared_ptr/observers/owner_before.cc (.../branches/gcc-7-branch) +@@ -67,6 +67,12 @@ + VERIFY( !a1.owner_before(w1) && !w1.owner_before(a1) ); + std::weak_ptr w2(a2); + VERIFY( !b1.owner_before(w2) && !w2.owner_before(b1) ); ++ ++ static_assert( noexcept(a1.owner_before(a0)), "" ); ++ static_assert( noexcept(a1.owner_before(b1)), "" ); ++ static_assert( noexcept(b1.owner_before(a1)), "" ); ++ static_assert( noexcept(a1.owner_before(w1)), "" ); ++ static_assert( noexcept(b1.owner_before(w1)), "" ); + } + + // Aliasing +Index: libstdc++-v3/testsuite/20_util/function/assign/move.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/20_util/function/assign/move.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/20_util/function/assign/move.cc (.../branches/gcc-7-branch) +@@ -38,11 +38,12 @@ + fo2 = (std::move(fo)); + VERIFY( static_cast(fo2) ); + VERIFY( fo2() == 2 ); ++ ++ static_assert(std::is_nothrow_move_assignable::value, ++ "PR libstdc++/81017"); + } + + int main() + { + test01(); +- +- return 0; + } +Index: libstdc++-v3/testsuite/20_util/function/cons/move.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/20_util/function/cons/move.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/20_util/function/cons/move.cc (.../branches/gcc-7-branch) +@@ -36,11 +36,12 @@ + function fo2(std::move(fo)); + VERIFY( static_cast(fo2) ); + VERIFY( fo2() == 2 ); ++ ++ static_assert(std::is_nothrow_move_constructible::value, ++ "PR libstdc++/81017"); + } + + int main() + { + test01(); +- +- return 0; + } +Index: libstdc++-v3/testsuite/20_util/function_objects/mem_fn/80478.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/20_util/function_objects/mem_fn/80478.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/20_util/function_objects/mem_fn/80478.cc (.../branches/gcc-7-branch) +@@ -0,0 +1,27 @@ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++// { dg-options "-std=gnu++17" } ++// { dg-do compile { target c++1z } } ++ ++#include ++ ++struct X { ++ void f() noexcept { } ++}; ++ ++auto f = std::mem_fn(&X::f); +Index: libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc (.../branches/gcc-7-branch) +@@ -0,0 +1,50 @@ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++// { dg-options "-std=gnu++17" } ++// { dg-do compile { target c++1z } } ++ ++#include ++ ++// This has a trivial destructor, but should not be destructible! ++struct DeletedDtor { ++ ~DeletedDtor() = delete; ++}; ++ ++void ++test01() ++{ ++ alignas(DeletedDtor) unsigned char buf[sizeof(DeletedDtor)]; ++ auto p = ::new (buf) DeletedDtor(); ++ std::destroy(p, p + 1); // { dg-error "here" } ++ std::destroy_n(p, 1); // { dg-error "here" } ++} ++ ++class PrivateDtor { ++ ~PrivateDtor() { } ++}; ++ ++void ++test02() ++{ ++ alignas(PrivateDtor) unsigned char buf[sizeof(PrivateDtor)]; ++ auto p = ::new (buf) PrivateDtor(); ++ std::destroy(p, p + 1); // { dg-error "here" } ++ std::destroy_n(p, 1); // { dg-error "here" } ++} ++ ++// { dg-error "value type is destructible" "" { target *-*-* } 0 } +Index: libstdc++-v3/testsuite/20_util/variant/deduction.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/20_util/variant/deduction.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/20_util/variant/deduction.cc (.../branches/gcc-7-branch) +@@ -0,0 +1,39 @@ ++// { dg-options "-std=gnu++17" } ++// { dg-do compile { target c++1z } } ++ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++#include ++ ++template struct require_same; ++template struct require_same { using type = void; }; ++ ++template ++ typename require_same::type ++ check_type(U&) { } ++ ++void ++test01() ++{ ++ std::variant x(3); ++ ++ std::variant copy = x; ++ check_type(copy); ++ std::variant move = std::move(x); ++ check_type(move); ++} +Index: libstdc++-v3/testsuite/20_util/variant/any.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/20_util/variant/any.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/20_util/variant/any.cc (.../branches/gcc-7-branch) +@@ -0,0 +1,31 @@ ++// { dg-options "-std=gnu++17" } ++// { dg-do compile } ++ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++#include ++#include ++ ++struct A { std::variant a; }; ++ ++void Bar(const A&); ++ ++void Foo() { ++ A a; ++ Bar(a); ++} +Index: libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc (.../branches/gcc-7-branch) +@@ -27,7 +27,7 @@ + + // 20.6.6.3.5 weak_ptr observers [util.smartptr.weak.obs] + +-int ++void + test01() + { + // test empty weak_ptrs compare equivalent +@@ -38,11 +38,14 @@ + std::shared_ptr p3; + VERIFY( !p1.owner_before(p3) && !p3.owner_before(p1) ); + +- return 0; ++ static_assert( noexcept(p1.owner_before(p1)), "" ); ++ static_assert( noexcept(p1.owner_before(p2)), "" ); ++ static_assert( noexcept(p1.owner_before(p3)), "" ); ++ static_assert( noexcept(p2.owner_before(p1)), "" ); + } + + +-int ++void + test02() + { + std::shared_ptr a0; +@@ -60,8 +63,6 @@ + + std::shared_ptr b1(new B); + VERIFY( w1.owner_before(b1) || b1.owner_before(w1) ); +- +- return 0; + } + + int +Index: libstdc++-v3/testsuite/20_util/tuple/78939.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/20_util/tuple/78939.cc (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/testsuite/20_util/tuple/78939.cc (.../branches/gcc-7-branch) +@@ -0,0 +1,49 @@ ++// Copyright (C) 2017 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// . ++ ++// { dg-options "-std=gnu++17" } ++// { dg-do compile { target c++1z } } ++ ++// PR libstdc++/78939 ++ ++#include ++ ++struct A { int i, j; }; ++ ++int ++test01() ++{ ++ A a{}; ++ const auto [i, j] = a; ++ return i + j; ++} ++ ++int ++test02() ++{ ++ A a{}; ++ volatile auto [i, j] = a; ++ return i + j; ++} ++ ++int ++test03() ++{ ++ A a{}; ++ const volatile auto [i, j] = a; ++ return i + j; ++} +Index: libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt +=================================================================== +--- a/src/libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt (.../branches/gcc-7-branch) +@@ -1329,6 +1329,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -1342,6 +1343,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -4002,6 +4004,7 @@ + OBJECT:0:GLIBCXX_3.4.21 + OBJECT:0:GLIBCXX_3.4.22 + OBJECT:0:GLIBCXX_3.4.23 ++OBJECT:0:GLIBCXX_3.4.24 + OBJECT:0:GLIBCXX_3.4.3 + OBJECT:0:GLIBCXX_3.4.4 + OBJECT:0:GLIBCXX_3.4.5 +Index: libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt +=================================================================== +--- a/src/libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt (.../branches/gcc-7-branch) +@@ -1329,6 +1329,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -1342,6 +1343,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -4002,6 +4004,7 @@ + OBJECT:0:GLIBCXX_3.4.21 + OBJECT:0:GLIBCXX_3.4.22 + OBJECT:0:GLIBCXX_3.4.23 ++OBJECT:0:GLIBCXX_3.4.24 + OBJECT:0:GLIBCXX_3.4.3 + OBJECT:0:GLIBCXX_3.4.4 + OBJECT:0:GLIBCXX_3.4.5 +Index: libstdc++-v3/config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt +=================================================================== +--- a/src/libstdc++-v3/config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt (.../branches/gcc-7-branch) +@@ -3962,6 +3962,7 @@ + OBJECT:0:GLIBCXX_3.4.21 + OBJECT:0:GLIBCXX_3.4.22 + OBJECT:0:GLIBCXX_3.4.23 ++OBJECT:0:GLIBCXX_3.4.24 + OBJECT:0:GLIBCXX_3.4.3 + OBJECT:0:GLIBCXX_3.4.4 + OBJECT:0:GLIBCXX_3.4.5 +Index: libstdc++-v3/config/abi/post/sparc-solaris2.10/baseline_symbols.txt +=================================================================== +--- a/src/libstdc++-v3/config/abi/post/sparc-solaris2.10/baseline_symbols.txt (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/config/abi/post/sparc-solaris2.10/baseline_symbols.txt (.../branches/gcc-7-branch) +@@ -1310,6 +1310,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -1323,6 +1324,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -3960,6 +3962,7 @@ + OBJECT:0:GLIBCXX_3.4.21 + OBJECT:0:GLIBCXX_3.4.22 + OBJECT:0:GLIBCXX_3.4.23 ++OBJECT:0:GLIBCXX_3.4.24 + OBJECT:0:GLIBCXX_3.4.3 + OBJECT:0:GLIBCXX_3.4.4 + OBJECT:0:GLIBCXX_3.4.5 +Index: libstdc++-v3/config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt +=================================================================== +--- a/src/libstdc++-v3/config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt (.../branches/gcc-7-branch) +@@ -3964,6 +3964,7 @@ + OBJECT:0:GLIBCXX_3.4.21 + OBJECT:0:GLIBCXX_3.4.22 + OBJECT:0:GLIBCXX_3.4.23 ++OBJECT:0:GLIBCXX_3.4.24 + OBJECT:0:GLIBCXX_3.4.3 + OBJECT:0:GLIBCXX_3.4.4 + OBJECT:0:GLIBCXX_3.4.5 +Index: libstdc++-v3/config/abi/post/sparc-solaris2.11/baseline_symbols.txt +=================================================================== +--- a/src/libstdc++-v3/config/abi/post/sparc-solaris2.11/baseline_symbols.txt (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/config/abi/post/sparc-solaris2.11/baseline_symbols.txt (.../branches/gcc-7-branch) +@@ -1310,6 +1310,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -1323,6 +1324,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -3962,6 +3964,7 @@ + OBJECT:0:GLIBCXX_3.4.21 + OBJECT:0:GLIBCXX_3.4.22 + OBJECT:0:GLIBCXX_3.4.23 ++OBJECT:0:GLIBCXX_3.4.24 + OBJECT:0:GLIBCXX_3.4.3 + OBJECT:0:GLIBCXX_3.4.4 + OBJECT:0:GLIBCXX_3.4.5 +Index: libstdc++-v3/config/abi/post/i386-solaris2.10/baseline_symbols.txt +=================================================================== +--- a/src/libstdc++-v3/config/abi/post/i386-solaris2.10/baseline_symbols.txt (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/config/abi/post/i386-solaris2.10/baseline_symbols.txt (.../branches/gcc-7-branch) +@@ -1310,6 +1310,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -1323,6 +1324,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -3961,6 +3963,7 @@ + OBJECT:0:GLIBCXX_3.4.21 + OBJECT:0:GLIBCXX_3.4.22 + OBJECT:0:GLIBCXX_3.4.23 ++OBJECT:0:GLIBCXX_3.4.24 + OBJECT:0:GLIBCXX_3.4.3 + OBJECT:0:GLIBCXX_3.4.4 + OBJECT:0:GLIBCXX_3.4.5 +Index: libstdc++-v3/config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt +=================================================================== +--- a/src/libstdc++-v3/config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt (.../branches/gcc-7-branch) +@@ -3963,6 +3963,7 @@ + OBJECT:0:GLIBCXX_3.4.21 + OBJECT:0:GLIBCXX_3.4.22 + OBJECT:0:GLIBCXX_3.4.23 ++OBJECT:0:GLIBCXX_3.4.24 + OBJECT:0:GLIBCXX_3.4.3 + OBJECT:0:GLIBCXX_3.4.4 + OBJECT:0:GLIBCXX_3.4.5 +Index: libstdc++-v3/config/abi/post/i386-solaris2.11/baseline_symbols.txt +=================================================================== +--- a/src/libstdc++-v3/config/abi/post/i386-solaris2.11/baseline_symbols.txt (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/config/abi/post/i386-solaris2.11/baseline_symbols.txt (.../branches/gcc-7-branch) +@@ -1310,6 +1310,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -1323,6 +1324,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -3963,6 +3965,7 @@ + OBJECT:0:GLIBCXX_3.4.21 + OBJECT:0:GLIBCXX_3.4.22 + OBJECT:0:GLIBCXX_3.4.23 ++OBJECT:0:GLIBCXX_3.4.24 + OBJECT:0:GLIBCXX_3.4.3 + OBJECT:0:GLIBCXX_3.4.4 + OBJECT:0:GLIBCXX_3.4.5 +Index: libstdc++-v3/config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt +=================================================================== +--- a/src/libstdc++-v3/config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt (.../branches/gcc-7-branch) +@@ -3965,6 +3965,7 @@ + OBJECT:0:GLIBCXX_3.4.21 + OBJECT:0:GLIBCXX_3.4.22 + OBJECT:0:GLIBCXX_3.4.23 ++OBJECT:0:GLIBCXX_3.4.24 + OBJECT:0:GLIBCXX_3.4.3 + OBJECT:0:GLIBCXX_3.4.4 + OBJECT:0:GLIBCXX_3.4.5 +Index: libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt +=================================================================== +--- a/src/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt (.../branches/gcc-7-branch) +@@ -1471,6 +1471,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwmRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mRKS1_@@GLIBCXX_3.4.23 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mm@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_mmRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -1484,6 +1485,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwmRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mRKS1_@@GLIBCXX_3.4.23 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mm@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_mmRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -1726,6 +1728,7 @@ + FUNC:_ZNSsC1EPKcmRKSaIcE@@GLIBCXX_3.4 + FUNC:_ZNSsC1ERKSaIcE@@GLIBCXX_3.4 + FUNC:_ZNSsC1ERKSs@@GLIBCXX_3.4 ++FUNC:_ZNSsC1ERKSsmRKSaIcE@@GLIBCXX_3.4.23 + FUNC:_ZNSsC1ERKSsmm@@GLIBCXX_3.4 + FUNC:_ZNSsC1ERKSsmmRKSaIcE@@GLIBCXX_3.4 + FUNC:_ZNSsC1ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11 +@@ -1739,6 +1742,7 @@ + FUNC:_ZNSsC2EPKcmRKSaIcE@@GLIBCXX_3.4 + FUNC:_ZNSsC2ERKSaIcE@@GLIBCXX_3.4 + FUNC:_ZNSsC2ERKSs@@GLIBCXX_3.4 ++FUNC:_ZNSsC2ERKSsmRKSaIcE@@GLIBCXX_3.4.23 + FUNC:_ZNSsC2ERKSsmm@@GLIBCXX_3.4 + FUNC:_ZNSsC2ERKSsmmRKSaIcE@@GLIBCXX_3.4 + FUNC:_ZNSsC2ESt16initializer_listIcERKSaIcE@@GLIBCXX_3.4.11 +@@ -2382,6 +2386,7 @@ + FUNC:_ZNSt15_List_node_base9_M_unhookEv@@GLIBCXX_3.4.14 + FUNC:_ZNSt15__exception_ptr13exception_ptr4swapERS0_@@CXXABI_1.3.3 + FUNC:_ZNSt15__exception_ptr13exception_ptrC1EMS0_FvvE@@CXXABI_1.3.3 ++FUNC:_ZNSt15__exception_ptr13exception_ptrC1EPv@@CXXABI_1.3.11 + FUNC:_ZNSt15__exception_ptr13exception_ptrC1ERKS0_@@CXXABI_1.3.3 + FUNC:_ZNSt15__exception_ptr13exception_ptrC1Ev@@CXXABI_1.3.3 + FUNC:_ZNSt15__exception_ptr13exception_ptrC2EMS0_FvvE@@CXXABI_1.3.3 +@@ -3068,6 +3073,7 @@ + FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS3_@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_RKS3_@@GLIBCXX_3.4.21 ++FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_mRKS3_@@GLIBCXX_3.4.23 + FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_mm@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_mmRKS3_@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21 +@@ -3083,6 +3089,7 @@ + FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS3_@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_RKS3_@@GLIBCXX_3.4.21 ++FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_mRKS3_@@GLIBCXX_3.4.23 + FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_mm@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_mmRKS3_@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ESt16initializer_listIcERKS3_@@GLIBCXX_3.4.21 +@@ -3209,6 +3216,7 @@ + FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS3_@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_RKS3_@@GLIBCXX_3.4.21 ++FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_mRKS3_@@GLIBCXX_3.4.23 + FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_mm@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ERKS4_mmRKS3_@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21 +@@ -3224,6 +3232,7 @@ + FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS3_@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_RKS3_@@GLIBCXX_3.4.21 ++FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_mRKS3_@@GLIBCXX_3.4.23 + FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_mm@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ERKS4_mmRKS3_@@GLIBCXX_3.4.21 + FUNC:_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS3_@@GLIBCXX_3.4.21 +@@ -4114,14 +4123,24 @@ + FUNC:_ZTv0_n24_NSt9strstreamD1Ev@@GLIBCXX_3.4 + FUNC:_ZdaPv@@GLIBCXX_3.4 + FUNC:_ZdaPvRKSt9nothrow_t@@GLIBCXX_3.4 ++FUNC:_ZdaPvSt11align_val_t@@CXXABI_1.3.11 ++FUNC:_ZdaPvSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11 + FUNC:_ZdaPvm@@CXXABI_1.3.9 ++FUNC:_ZdaPvmSt11align_val_t@@CXXABI_1.3.11 + FUNC:_ZdlPv@@GLIBCXX_3.4 + FUNC:_ZdlPvRKSt9nothrow_t@@GLIBCXX_3.4 ++FUNC:_ZdlPvSt11align_val_t@@CXXABI_1.3.11 ++FUNC:_ZdlPvSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11 + FUNC:_ZdlPvm@@CXXABI_1.3.9 ++FUNC:_ZdlPvmSt11align_val_t@@CXXABI_1.3.11 + FUNC:_Znam@@GLIBCXX_3.4 + FUNC:_ZnamRKSt9nothrow_t@@GLIBCXX_3.4 ++FUNC:_ZnamSt11align_val_t@@CXXABI_1.3.11 ++FUNC:_ZnamSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11 + FUNC:_Znwm@@GLIBCXX_3.4 + FUNC:_ZnwmRKSt9nothrow_t@@GLIBCXX_3.4 ++FUNC:_ZnwmSt11align_val_t@@CXXABI_1.3.11 ++FUNC:_ZnwmSt11align_val_tRKSt9nothrow_t@@CXXABI_1.3.11 + FUNC:__atomic_flag_for_address@@GLIBCXX_3.4.11 + FUNC:__atomic_flag_wait_explicit@@GLIBCXX_3.4.11 + FUNC:__cxa_allocate_dependent_exception@@CXXABI_1.3.6 +@@ -4142,6 +4161,7 @@ + FUNC:__cxa_guard_abort@@CXXABI_1.3 + FUNC:__cxa_guard_acquire@@CXXABI_1.3 + FUNC:__cxa_guard_release@@CXXABI_1.3 ++FUNC:__cxa_init_primary_exception@@CXXABI_1.3.11 + FUNC:__cxa_pure_virtual@@CXXABI_1.3 + FUNC:__cxa_rethrow@@CXXABI_1.3 + FUNC:__cxa_thread_atexit@@CXXABI_1.3.7 +@@ -4189,6 +4209,7 @@ + OBJECT:0:CXXABI_1.3 + OBJECT:0:CXXABI_1.3.1 + OBJECT:0:CXXABI_1.3.10 ++OBJECT:0:CXXABI_1.3.11 + OBJECT:0:CXXABI_1.3.2 + OBJECT:0:CXXABI_1.3.3 + OBJECT:0:CXXABI_1.3.4 +@@ -4216,6 +4237,7 @@ + OBJECT:0:GLIBCXX_3.4.21 + OBJECT:0:GLIBCXX_3.4.22 + OBJECT:0:GLIBCXX_3.4.23 ++OBJECT:0:GLIBCXX_3.4.24 + OBJECT:0:GLIBCXX_3.4.3 + OBJECT:0:GLIBCXX_3.4.4 + OBJECT:0:GLIBCXX_3.4.5 +Index: libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt +=================================================================== +--- a/src/libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt (.../branches/gcc-7-branch) +@@ -1329,6 +1329,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -1342,6 +1343,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -4002,6 +4004,7 @@ + OBJECT:0:GLIBCXX_3.4.21 + OBJECT:0:GLIBCXX_3.4.22 + OBJECT:0:GLIBCXX_3.4.23 ++OBJECT:0:GLIBCXX_3.4.24 + OBJECT:0:GLIBCXX_3.4.3 + OBJECT:0:GLIBCXX_3.4.4 + OBJECT:0:GLIBCXX_3.4.5 +Index: libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt +=================================================================== +--- a/src/libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt (.../branches/gcc-7-branch) +@@ -1329,6 +1329,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC1ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -1342,6 +1343,7 @@ + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2EPKwjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_@@GLIBCXX_3.4 ++FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jRKS1_@@GLIBCXX_3.4.24 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jj@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ERKS2_jjRKS1_@@GLIBCXX_3.4 + FUNC:_ZNSbIwSt11char_traitsIwESaIwEEC2ESt16initializer_listIwERKS1_@@GLIBCXX_3.4.11 +@@ -4002,6 +4004,7 @@ + OBJECT:0:GLIBCXX_3.4.21 + OBJECT:0:GLIBCXX_3.4.22 + OBJECT:0:GLIBCXX_3.4.23 ++OBJECT:0:GLIBCXX_3.4.24 + OBJECT:0:GLIBCXX_3.4.3 + OBJECT:0:GLIBCXX_3.4.4 + OBJECT:0:GLIBCXX_3.4.5 +Index: libstdc++-v3/config/abi/pre/gnu.ver +=================================================================== +--- a/src/libstdc++-v3/config/abi/pre/gnu.ver (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/config/abi/pre/gnu.ver (.../branches/gcc-7-branch) +@@ -1953,6 +1953,7 @@ + # basic_string::basic_string(const basic_string&, size_type, const A&) + _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EEC[12]ERKS4_[jmy]RKS3_; + _ZNSsC[12]ERKSs[jmy]RKSaIcE; ++ # This should have been _[jmy]RKS1_ not _mRKS1_ (PR libstdc++/81092): + _ZNSbIwSt11char_traitsIwESaIwEEC[12]ERKS2_mRKS1_; + + #ifndef HAVE_EXCEPTION_PTR_SINCE_GCC46 +@@ -1967,6 +1968,13 @@ + + } GLIBCXX_3.4.22; + ++GLIBCXX_3.4.24 { ++ ++ # These should have been in GLIBCXX_3.4.23 (PR libstdc++/81092): ++ _ZNSbIwSt11char_traitsIwESaIwEEC[12]ERKS2_[jy]RKS1_; ++ ++} GLIBCXX_3.4.23; ++ + # Symbols in the support library (libsupc++) have their own tag. + CXXABI_1.3 { + +Index: libstdc++-v3/acinclude.m4 +=================================================================== +--- a/src/libstdc++-v3/acinclude.m4 (.../tags/gcc_7_1_0_release) ++++ b/src/libstdc++-v3/acinclude.m4 (.../branches/gcc-7-branch) +@@ -3750,7 +3750,7 @@ + fi + + # For libtool versioning info, format is CURRENT:REVISION:AGE +-libtool_VERSION=6:23:0 ++libtool_VERSION=6:24:0 + + # Everything parsed; figure out what files and settings to use. + case $enable_symvers in +Index: lto-plugin/ChangeLog +=================================================================== +--- a/src/lto-plugin/ChangeLog (.../tags/gcc_7_1_0_release) ++++ b/src/lto-plugin/ChangeLog (.../branches/gcc-7-branch) +@@ -1,3 +1,12 @@ ++2017-07-26 Georg-Johann Lay ++ ++ Backport from 2017-07-21 trunk r250428. ++ ++ PR lto/81487 ++ * lto-plugin.c (claim_file_handler): Use xasprintf instead of ++ asprintf. ++ [hi!=0]: Swap hi and lo arguments supplied to xasprintf. ++ + 2017-05-02 Release Manager + + * GCC 7.1.0 released. +Index: lto-plugin/lto-plugin.c +=================================================================== +--- a/src/lto-plugin/lto-plugin.c (.../tags/gcc_7_1_0_release) ++++ b/src/lto-plugin/lto-plugin.c (.../branches/gcc-7-branch) +@@ -975,17 +975,16 @@ + + if (file->offset != 0) + { +- char *objname; + /* We pass the offset of the actual file, not the archive header. + Can't use PRIx64, because that's C99, so we have to print the +- 64-bit hex int as two 32-bit ones. */ +- int lo, hi, t; ++ 64-bit hex int as two 32-bit ones. Use xasprintf instead of ++ asprintf because asprintf doesn't work as expected on some older ++ mingw32 hosts. */ ++ int lo, hi; + lo = file->offset & 0xffffffff; + hi = ((int64_t)file->offset >> 32) & 0xffffffff; +- t = hi ? asprintf (&objname, "%s@0x%x%08x", file->name, lo, hi) +- : asprintf (&objname, "%s@0x%x", file->name, lo); +- check (t >= 0, LDPL_FATAL, "asprintf failed"); +- lto_file.name = objname; ++ lto_file.name = hi ? xasprintf ("%s@0x%x%08x", file->name, hi, lo) ++ : xasprintf ("%s@0x%x", file->name, lo); + } + else + { +Index: maintainer-scripts/ChangeLog +=================================================================== +--- a/src/maintainer-scripts/ChangeLog (.../tags/gcc_7_1_0_release) ++++ b/src/maintainer-scripts/ChangeLog (.../branches/gcc-7-branch) +@@ -1,3 +1,18 @@ ++2017-05-23 Matthias Klose ++ ++ * gcc_release (XZ): Default to xz --best. ++ ++2017-05-18 Matthias Klose ++ ++ * gcc_release (build_gzip): Build xz tarball instead of bz2 tarball. ++ (build_diffs): Handle building diffs from either bz2 or xz tarballs, ++ compress diffs using xz instead of bz2. ++ (build_diff): Likewise. ++ (upload_files): Check for *.xz files instead of *.bz2 files. ++ (announce_snapshot): Announce xz tarball instead of bz2 tarball. ++ (XZ): New definition. ++ (): Look for both bz2 and xz compressed old tarballs. ++ + 2017-05-02 Release Manager + + * GCC 7.1.0 released. +@@ -19,7 +34,7 @@ + + 2016-09-04 Gerald Pfeifer + +- PR documentation/50642 ++ PR documentation/50642 + * update_web_docs_svn (CSS): Introduce. + Have generated files refer to it. + +Index: maintainer-scripts/gcc_release +=================================================================== +--- a/src/maintainer-scripts/gcc_release (.../tags/gcc_7_1_0_release) ++++ b/src/maintainer-scripts/gcc_release (.../branches/gcc-7-branch) +@@ -221,7 +221,7 @@ + # Create a "MD5SUMS" file to use for checking the validity of the release. + echo \ + "# This file contains the MD5 checksums of the files in the +-# gcc-"${RELEASE}".tar.bz2 tarball. ++# gcc-"${RELEASE}".tar.xz tarball. + # + # Besides verifying that all files in the tarball were correctly expanded, + # it also can be used to determine if any files have changed since the +@@ -244,11 +244,11 @@ + + build_tarfile() { + # Get the name of the destination tar file. +- TARFILE="$1.tar.bz2" ++ TARFILE="$1.tar.xz" + shift + + # Build the tar file itself. +- (${TAR} cf - "$@" | ${BZIP2} > ${TARFILE}) || \ ++ (${TAR} cf - "$@" | ${XZ} > ${TARFILE}) || \ + error "Could not build tarfile" + FILE_LIST="${FILE_LIST} ${TARFILE}" + } +@@ -273,8 +273,8 @@ + # Build .gz files. + build_gzip() { + for f in ${FILE_LIST}; do +- target=${f%.bz2}.gz +- (${BZIP2} -d -c $f | ${GZIP} > ${target}) || error "Could not create ${target}" ++ target=${f%.xz}.gz ++ (${XZ} -d -c $f | ${GZIP} > ${target}) || error "Could not create ${target}" + done + } + +@@ -282,12 +282,19 @@ + build_diffs() { + old_dir=${1%/*} + old_file=${1##*/} +- old_vers=${old_file%.tar.bz2} ++ case "$old_file" in ++ *.tar.xz) old_vers=${old_file%.tar.xz};; ++ *) old_vers=${old_file%.tar.bz2};; ++ esac + old_vers=${old_vers#gcc-} + inform "Building diffs against version $old_vers" + for f in gcc; do +- old_tar=${old_dir}/${f}-${old_vers}.tar.bz2 +- new_tar=${WORKING_DIRECTORY}/${f}-${RELEASE}.tar.bz2 ++ if [ -e ${old_dir}/${f}-${old_vers}.tar.xz ]; then ++ old_tar=${old_dir}/${f}-${old_vers}.tar.xz ++ else ++ old_tar=${old_dir}/${f}-${old_vers}.tar.bz2 ++ fi ++ new_tar=${WORKING_DIRECTORY}/${f}-${RELEASE}.tar.xz + if [ ! -e $old_tar ]; then + inform "$old_tar not found; not generating diff file" + elif [ ! -e $new_tar ]; then +@@ -294,7 +301,7 @@ + inform "$new_tar not found; not generating diff file" + else + build_diff $old_tar gcc-${old_vers} $new_tar gcc-${RELEASE} \ +- ${f}-${old_vers}-${RELEASE}.diff.bz2 ++ ${f}-${old_vers}-${RELEASE}.diff.xz + fi + done + } +@@ -305,13 +312,20 @@ + tmpdir=gccdiff.$$ + mkdir $tmpdir || error "Could not create directory $tmpdir" + changedir $tmpdir +- (${BZIP2} -d -c $1 | ${TAR} xf - ) || error "Could not unpack $1 for diffs" +- (${BZIP2} -d -c $3 | ${TAR} xf - ) || error "Could not unpack $3 for diffs" +- ${DIFF} $2 $4 > ../${5%.bz2} ++ case "$1" in ++ *.tar.bz2) ++ (${BZIP2} -d -c $1 | ${TAR} xf - ) || error "Could not unpack $1 for diffs" ++ ;; ++ *.tar.xz) ++ (${XZ} -d -c $1 | ${TAR} xf - ) || error "Could not unpack $1 for diffs" ++ ;; ++ esac ++ (${XZ} -d -c $3 | ${TAR} xf - ) || error "Could not unpack $3 for diffs" ++ ${DIFF} $2 $4 > ../${5%.xz} + if [ $? -eq 2 ]; then + error "Trouble making diffs from $1 to $3" + fi +- ${BZIP2} ../${5%.bz2} || error "Could not generate ../$5" ++ ${XZ} ../${5%.xz} || error "Could not generate ../$5" + changedir .. + rm -rf $tmpdir + FILE_LIST="${FILE_LIST} $5" +@@ -335,7 +349,7 @@ + fi + + # Then copy files to their respective (sub)directories. +- for x in gcc*.gz gcc*.bz2; do ++ for x in gcc*.gz gcc*.xz; do + if [ -e ${x} ]; then + # Make sure the file will be readable on the server. + chmod a+r ${x} +@@ -410,7 +424,7 @@ + + " > ${SNAPSHOT_INDEX} + +- snapshot_print gcc-${RELEASE}.tar.bz2 "Complete GCC" ++ snapshot_print gcc-${RELEASE}.tar.xz "Complete GCC" + + echo \ + "Diffs from "${BRANCH}"-"${LAST_DATE}" are available in the diffs/ subdirectory. +@@ -528,12 +542,13 @@ + MODE_TARFILES=0 + MODE_UPLOAD=0 + +-# List of archive files generated; used to create .gz files from .bz2. ++# List of archive files generated; used to create .gz files from .xz. + FILE_LIST="" + + # Programs we use. + + BZIP2="${BZIP2:-bzip2}" ++XZ="${XZ:-xz --best}" + CVS="${CVS:-cvs -f -Q -z9}" + DIFF="${DIFF:-diff -Nrcpad}" + ENV="${ENV:-env}" +@@ -644,6 +659,9 @@ + if [ $MODE_DIFFS -ne 0 ] && [ $LOCAL -ne 0 ] && [ -z "${OLD_TARS}" ]; then + LAST_DATE=`cat ~/.snapshot_date-${BRANCH}` + OLD_TARS=${SNAPSHOTS_DIR}/${BRANCH}-${LAST_DATE}/gcc-${BRANCH}-${LAST_DATE}.tar.bz2 ++ if [ ! -e $OLD_TARS ]; then ++ OLD_TARS=${SNAPSHOTS_DIR}/${BRANCH}-${LAST_DATE}/gcc-${BRANCH}-${LAST_DATE}.tar.xz ++ fi + fi + fi + +Index: libgcc/config.host +=================================================================== +--- a/src/libgcc/config.host (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config.host (.../branches/gcc-7-branch) +@@ -389,7 +389,7 @@ + ;; + arm*-*-freebsd*) # ARM FreeBSD EABI + tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix arm/t-elf" +- tmake_file="${tmake_file} arm/t-bpabi arm/t-freebsd t-slibgcc-libgcc" ++ tmake_file="${tmake_file} arm/t-bpabi arm/t-freebsd" + tm_file="${tm_file} arm/bpabi-lib.h" + unwind_header=config/arm/unwind-arm.h + tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" +Index: libgcc/configure.ac +=================================================================== +--- a/src/libgcc/configure.ac (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/configure.ac (.../branches/gcc-7-branch) +@@ -191,6 +191,8 @@ + AC_PROG_CC + AC_PROG_CPP_WERROR + ++AC_SYS_LARGEFILE ++ + AC_CHECK_SIZEOF([double]) + AC_CHECK_SIZEOF([long double]) + AS_VAR_ARITH([double_type_size], [$ac_cv_sizeof_double \* 8]) +Index: libgcc/config.in +=================================================================== +--- a/src/libgcc/config.in (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config.in (.../branches/gcc-7-branch) +@@ -71,3 +71,9 @@ + + /* Define to 1 if the target use emutls for thread-local storage. */ + #undef USE_EMUTLS ++ ++/* Number of bits in a file offset, on hosts where this is settable. */ ++#undef _FILE_OFFSET_BITS ++ ++/* Define for large files, on AIX-style hosts. */ ++#undef _LARGE_FILES +Index: libgcc/libgcov.h +=================================================================== +--- a/src/libgcc/libgcov.h (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/libgcov.h (.../branches/gcc-7-branch) +@@ -38,6 +38,7 @@ + /* This path will be used by libgcov runtime. */ + + #include "tconfig.h" ++#include "auto-target.h" + #include "tsystem.h" + #include "coretypes.h" + #include "tm.h" +Index: libgcc/ChangeLog +=================================================================== +--- a/src/libgcc/ChangeLog (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/ChangeLog (.../branches/gcc-7-branch) +@@ -1,3 +1,77 @@ ++2017-07-28 Sebastian Huber ++ ++ Backport from mainline ++ 2017-07-28 Sebastian Huber ++ ++ * config/rs6000/ibm-ldouble.c: Disable if defined __rtems__. ++ ++2017-07-20 Peter Bergner ++ ++ Backport from mainline ++ 2017-07-07 Peter Bergner ++ ++ * config/rs6000/float128-ifunc.c: Don't include auxv.h. ++ (have_ieee_hw_p): Delete function. ++ (SW_OR_HW) Use __builtin_cpu_supports(). ++ ++2017-07-19 John Marino ++ ++ * config/i386/dragonfly-unwind.h: Handle sigtramp relocation. ++ ++2017-07-04 Joseph Myers ++ ++ * config/aarch64/linux-unwind.h (aarch64_fallback_frame_state), ++ config/alpha/linux-unwind.h (alpha_fallback_frame_state), ++ config/bfin/linux-unwind.h (bfin_fallback_frame_state), ++ config/i386/linux-unwind.h (x86_64_fallback_frame_state, ++ x86_fallback_frame_state), config/m68k/linux-unwind.h (struct ++ uw_ucontext), config/nios2/linux-unwind.h (struct nios2_ucontext), ++ config/pa/linux-unwind.h (pa32_fallback_frame_state), ++ config/riscv/linux-unwind.h (riscv_fallback_frame_state), ++ config/sh/linux-unwind.h (sh_fallback_frame_state), ++ config/tilepro/linux-unwind.h (tile_fallback_frame_state), ++ config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Use ++ ucontext_t instead of struct ucontext. ++ ++2017-06-28 Richard Biener ++ ++ Backport from mainline ++ 2017-06-21 Richard Biener ++ ++ PR gcov-profile/81080 ++ * configure.ac: Add AC_SYS_LARGEFILE. ++ * libgcov.h: Include auto-target.h before tsystem.h to pick ++ up _FILE_OFFSET_BITS which might differ for multilibs. ++ * config.in: Regenerate. ++ * configure: Likewise. ++ ++2017-05-26 Richard Henderson ++ ++ PR libgcc/80037 ++ * config/alpha/t-alpha (CRTSTUFF_T_CFLAGS): New. ++ ++2017-05-19 Andreas Tobler ++ ++ Backport from mainline ++ 2017-05-17 Andreas Tobler ++ ++ * config/arm/unwind-arm.h: Make _Unwind_GetIP, _Unwind_GetIPInfo and ++ _Unwind_SetIP available as functions for arm*-*-freebsd*. ++ * config/arm/unwind-arm.c: Implement the above. ++ ++2017-05-15 Adhemerval Zanella ++ ++ * config/sparc/lb1spc.S [__ELF__ && __linux__]: Emit .note.GNU-stack ++ section for a non-executable stack. ++ ++2017-05-10 Andreas Tobler ++ ++ Backport from mainline ++ 2017-05-09 Andreas Tobler ++ ++ * config.host: Use the generic FreeBSD t-slibgcc-elf-ver for ++ arm*-*-freebsd* instead of the t-slibgcc-libgcc. ++ + 2017-05-02 Release Manager + + * GCC 7.1.0 released. +Index: libgcc/config/alpha/t-alpha +=================================================================== +--- a/src/libgcc/config/alpha/t-alpha (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/alpha/t-alpha (.../branches/gcc-7-branch) +@@ -1,2 +1,6 @@ + # This is a support routine for longlong.h, used by libgcc2.c. + LIB2ADD += $(srcdir)/config/alpha/qrnnd.S ++ ++# When GAS-generated unwind tables are created, they get created ++# after the __FRAME_END__ terminator, which causes an ld error. ++CRTSTUFF_T_CFLAGS = -fno-unwind-tables +Index: libgcc/config/alpha/linux-unwind.h +=================================================================== +--- a/src/libgcc/config/alpha/linux-unwind.h (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/alpha/linux-unwind.h (.../branches/gcc-7-branch) +@@ -51,7 +51,7 @@ + { + struct rt_sigframe { + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + } *rt_ = context->cfa; + sc = &rt_->uc.uc_mcontext; + } +Index: libgcc/config/sparc/lb1spc.S +=================================================================== +--- a/src/libgcc/config/sparc/lb1spc.S (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/sparc/lb1spc.S (.../branches/gcc-7-branch) +@@ -5,6 +5,12 @@ + slightly edited to match the desired calling convention, and also to + optimize them for our purposes. */ + ++/* An executable stack is *not* required for these functions. */ ++#if defined(__ELF__) && defined(__linux__) ++.section .note.GNU-stack,"",%progbits ++.previous ++#endif ++ + #ifdef L_mulsi3 + .text + .align 4 +Index: libgcc/config/m68k/linux-unwind.h +=================================================================== +--- a/src/libgcc/config/m68k/linux-unwind.h (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/m68k/linux-unwind.h (.../branches/gcc-7-branch) +@@ -33,7 +33,7 @@ + /* is unfortunately broken right now. */ + struct uw_ucontext { + unsigned long uc_flags; +- struct ucontext *uc_link; ++ ucontext_t *uc_link; + stack_t uc_stack; + mcontext_t uc_mcontext; + unsigned long uc_filler[80]; +Index: libgcc/config/riscv/linux-unwind.h +=================================================================== +--- a/src/libgcc/config/riscv/linux-unwind.h (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/riscv/linux-unwind.h (.../branches/gcc-7-branch) +@@ -42,7 +42,7 @@ + struct rt_sigframe + { + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + }; + + struct rt_sigframe *rt_; +Index: libgcc/config/aarch64/linux-unwind.h +=================================================================== +--- a/src/libgcc/config/aarch64/linux-unwind.h (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/aarch64/linux-unwind.h (.../branches/gcc-7-branch) +@@ -55,7 +55,7 @@ + struct rt_sigframe + { + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + }; + + struct rt_sigframe *rt_; +Index: libgcc/config/i386/linux-unwind.h +=================================================================== +--- a/src/libgcc/config/i386/linux-unwind.h (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/i386/linux-unwind.h (.../branches/gcc-7-branch) +@@ -58,7 +58,7 @@ + if (*(unsigned char *)(pc+0) == 0x48 + && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL) + { +- struct ucontext *uc_ = context->cfa; ++ ucontext_t *uc_ = context->cfa; + /* The void * cast is necessary to avoid an aliasing warning. + The aliasing warning is correct, but should not be a problem + because it does not alias anything. */ +@@ -138,7 +138,7 @@ + siginfo_t *pinfo; + void *puc; + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + } *rt_ = context->cfa; + /* The void * cast is necessary to avoid an aliasing warning. + The aliasing warning is correct, but should not be a problem +Index: libgcc/config/i386/dragonfly-unwind.h +=================================================================== +--- a/src/libgcc/config/i386/dragonfly-unwind.h (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/i386/dragonfly-unwind.h (.../branches/gcc-7-branch) +@@ -28,9 +28,13 @@ + + #include + #include ++#include + #include + #include + #include ++#if __DragonFly_version > 400800 ++#include ++#endif + + + #define REG_NAME(reg) sf_uc.uc_mcontext.mc_## reg +@@ -39,20 +43,44 @@ + #define MD_FALLBACK_FRAME_STATE_FOR x86_64_dragonfly_fallback_frame_state + + +-static void +-x86_64_sigtramp_range (unsigned char **start, unsigned char **end) ++static int ++x86_64_outside_sigtramp_range (unsigned char *pc) + { +- unsigned long ps_strings; +- int mib[2]; +- size_t len; ++ static int sigtramp_range_determined = 0; ++ static unsigned char *sigtramp_start, *sigtramp_end; + +- mib[0] = CTL_KERN; +- mib[1] = KERN_PS_STRINGS; +- len = sizeof (ps_strings); +- sysctl (mib, 2, &ps_strings, &len, NULL, 0); ++ if (sigtramp_range_determined == 0) ++ { ++#if __DragonFly_version > 400800 ++ struct kinfo_sigtramp kst = {0}; ++ size_t len = sizeof (kst); ++ int mib[3] = { CTL_KERN, KERN_PROC, KERN_PROC_SIGTRAMP }; + +- *start = (unsigned char *)ps_strings - 32; +- *end = (unsigned char *)ps_strings; ++ sigtramp_range_determined = 1; ++ if (sysctl (mib, 3, &kst, &len, NULL, 0) == 0) ++ { ++ sigtramp_range_determined = 2; ++ sigtramp_start = kst.ksigtramp_start; ++ sigtramp_end = kst.ksigtramp_end; ++ } ++#else ++ unsigned long ps_strings; ++ size_t len = sizeof (ps_strings); ++ int mib[2] = { CTL_KERN, KERN_PS_STRINGS }; ++ ++ sigtramp_range_determined = 1; ++ if (sysctl (mib, 2, &ps_strings, &len, NULL, 0) == 0) ++ { ++ sigtramp_range_determined = 2; ++ sigtramp_start = (unsigned char *)ps_strings - 32; ++ sigtramp_end = (unsigned char *)ps_strings; ++ } ++#endif ++ } ++ if (sigtramp_range_determined < 2) /* sysctl failed if < 2 */ ++ return 1; ++ ++ return (pc < sigtramp_start || pc >= sigtramp_end ); + } + + +@@ -60,13 +88,10 @@ + x86_64_dragonfly_fallback_frame_state + (struct _Unwind_Context *context, _Unwind_FrameState *fs) + { +- unsigned char *pc = context->ra; +- unsigned char *sigtramp_start, *sigtramp_end; + struct sigframe *sf; + long new_cfa; + +- x86_64_sigtramp_range(&sigtramp_start, &sigtramp_end); +- if (pc >= sigtramp_end || pc < sigtramp_start) ++ if (x86_64_outside_sigtramp_range(context->ra)) + return _URC_END_OF_STACK; + + sf = (struct sigframe *) context->cfa; +Index: libgcc/config/rs6000/float128-ifunc.c +=================================================================== +--- a/src/libgcc/config/rs6000/float128-ifunc.c (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/rs6000/float128-ifunc.c (.../branches/gcc-7-branch) +@@ -45,48 +45,8 @@ + #error "This module must not be compiled with IEEE 128-bit hardware support" + #endif + +-#include ++#define SW_OR_HW(SW, HW) (__builtin_cpu_supports ("ieee128") ? HW : SW) + +-/* Use the namespace clean version of getauxval. However, not all versions of +- sys/auxv.h declare it, so declare it here. This code is intended to be +- temporary until a suitable version of __builtin_cpu_supports is added that +- allows us to tell quickly if the machine supports IEEE 128-bit hardware. */ +-extern unsigned long __getauxval (unsigned long); +- +-static int +-have_ieee_hw_p (void) +-{ +- static int ieee_hw_p = -1; +- +- if (ieee_hw_p < 0) +- { +- char *p = (char *) __getauxval (AT_PLATFORM); +- +- ieee_hw_p = 0; +- +- /* Don't use atoi/strtol/strncmp/etc. These may require the normal +- environment to be setup to set errno to 0, and the ifunc resolvers run +- before the whole glibc environment is initialized. */ +- if (p && p[0] == 'p' && p[1] == 'o' && p[2] == 'w' && p[3] == 'e' +- && p[4] == 'r') +- { +- long n = 0; +- char ch; +- +- p += 5; +- while ((ch = *p++) >= '0' && (ch <= '9')) +- n = (n * 10) + (ch - '0'); +- +- if (n >= 9) +- ieee_hw_p = 1; +- } +- } +- +- return ieee_hw_p; +-} +- +-#define SW_OR_HW(SW, HW) (have_ieee_hw_p () ? HW : SW) +- + /* Resolvers. */ + + /* We do not provide ifunc resolvers for __fixkfti, __fixunskfti, __floattikf, +Index: libgcc/config/rs6000/ibm-ldouble.c +=================================================================== +--- a/src/libgcc/config/rs6000/ibm-ldouble.c (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/rs6000/ibm-ldouble.c (.../branches/gcc-7-branch) +@@ -45,7 +45,8 @@ + This code currently assumes the most significant double is in + the lower numbered register or lower addressed memory. */ + +-#if defined (__MACH__) || defined (__powerpc__) || defined (_AIX) ++#if (defined (__MACH__) || defined (__powerpc__) || defined (_AIX)) \ ++ && !defined (__rtems__) + + #define fabs(x) __builtin_fabs(x) + #define isless(x, y) __builtin_isless (x, y) +Index: libgcc/config/sh/linux-unwind.h +=================================================================== +--- a/src/libgcc/config/sh/linux-unwind.h (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/sh/linux-unwind.h (.../branches/gcc-7-branch) +@@ -82,7 +82,7 @@ + { + struct rt_sigframe { + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + } *rt_ = context->cfa; + /* The void * cast is necessary to avoid an aliasing warning. + The aliasing warning is correct, but should not be a problem +Index: libgcc/config/tilepro/linux-unwind.h +=================================================================== +--- a/src/libgcc/config/tilepro/linux-unwind.h (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/tilepro/linux-unwind.h (.../branches/gcc-7-branch) +@@ -61,7 +61,7 @@ + struct rt_sigframe { + unsigned char save_area[C_ABI_SAVE_AREA_SIZE]; + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + } *rt_; + + /* Return if this is not a signal handler. */ +Index: libgcc/config/arm/unwind-arm.c +=================================================================== +--- a/src/libgcc/config/arm/unwind-arm.c (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/arm/unwind-arm.c (.../branches/gcc-7-branch) +@@ -509,3 +509,25 @@ + { + return __gnu_unwind_pr_common (state, ucbp, context, 2); + } ++ ++#ifdef __FreeBSD__ ++/* FreeBSD expects these to be functions */ ++inline _Unwind_Ptr ++_Unwind_GetIP (struct _Unwind_Context *context) ++{ ++ return _Unwind_GetGR (context, 15) & ~(_Unwind_Word)1; ++} ++ ++inline _Unwind_Ptr ++_Unwind_GetIPInfo (struct _Unwind_Context *context, int *ip_before_insn) ++{ ++ *ip_before_insn = 0; ++ return _Unwind_GetIP (context); ++} ++ ++inline void ++_Unwind_SetIP (struct _Unwind_Context *context, _Unwind_Ptr val) ++{ ++ _Unwind_SetGR (context, 15, val | (_Unwind_GetGR (context, 15) & 1)); ++} ++#endif +Index: libgcc/config/arm/unwind-arm.h +=================================================================== +--- a/src/libgcc/config/arm/unwind-arm.h (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/arm/unwind-arm.h (.../branches/gcc-7-branch) +@@ -72,6 +72,7 @@ + { + return _URC_FAILURE; + } ++#ifndef __FreeBSD__ + /* Return the address of the instruction, not the actual IP value. */ + #define _Unwind_GetIP(context) \ + (_Unwind_GetGR (context, 15) & ~(_Unwind_Word)1) +@@ -78,6 +79,12 @@ + + #define _Unwind_SetIP(context, val) \ + _Unwind_SetGR (context, 15, val | (_Unwind_GetGR (context, 15) & 1)) ++#else ++ #undef _Unwind_GetIPInfo ++ _Unwind_Ptr _Unwind_GetIP (struct _Unwind_Context *); ++ _Unwind_Ptr _Unwind_GetIPInfo (struct _Unwind_Context *, int *); ++ void _Unwind_SetIP (struct _Unwind_Context *, _Unwind_Ptr); ++#endif + + #ifdef __cplusplus + } /* extern "C" */ +Index: libgcc/config/pa/linux-unwind.h +=================================================================== +--- a/src/libgcc/config/pa/linux-unwind.h (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/pa/linux-unwind.h (.../branches/gcc-7-branch) +@@ -80,7 +80,7 @@ + struct sigcontext *sc; + struct rt_sigframe { + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + } *frame; + + /* rt_sigreturn trampoline: +Index: libgcc/config/xtensa/linux-unwind.h +=================================================================== +--- a/src/libgcc/config/xtensa/linux-unwind.h (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/xtensa/linux-unwind.h (.../branches/gcc-7-branch) +@@ -67,7 +67,7 @@ + + struct rt_sigframe { + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + } *rt_; + + /* movi a2, __NR_rt_sigreturn; syscall */ +Index: libgcc/config/nios2/linux-unwind.h +=================================================================== +--- a/src/libgcc/config/nios2/linux-unwind.h (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/nios2/linux-unwind.h (.../branches/gcc-7-branch) +@@ -38,7 +38,7 @@ + + struct nios2_ucontext { + unsigned long uc_flags; +- struct ucontext *uc_link; ++ ucontext_t *uc_link; + stack_t uc_stack; + struct nios2_mcontext uc_mcontext; + sigset_t uc_sigmask; /* mask last for extensibility */ +Index: libgcc/config/bfin/linux-unwind.h +=================================================================== +--- a/src/libgcc/config/bfin/linux-unwind.h (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/config/bfin/linux-unwind.h (.../branches/gcc-7-branch) +@@ -52,7 +52,7 @@ + void *puc; + char retcode[8]; + siginfo_t info; +- struct ucontext uc; ++ ucontext_t uc; + } *rt_ = context->cfa; + + /* The void * cast is necessary to avoid an aliasing warning. +Index: libgcc/configure +=================================================================== +--- a/src/libgcc/configure (.../tags/gcc_7_1_0_release) ++++ b/src/libgcc/configure (.../branches/gcc-7-branch) +@@ -672,6 +672,7 @@ + with_slibdir + enable_maintainer_mode + with_build_libsubdir ++enable_largefile + enable_decimal_float + with_system_libunwind + enable_explicit_exception_frame_registration +@@ -1308,6 +1309,7 @@ + --enable-maintainer-mode + enable make rules and dependencies not useful (and + sometimes confusing) to the casual installer ++ --disable-largefile omit support for large files + --enable-decimal-float={no,yes,bid,dpd} + enable decimal float extension to C. Selecting 'bid' + or 'dpd' choses which decimal floating point format +@@ -4061,7 +4063,206 @@ + ac_c_preproc_warn_flag=yes + + ++# Check whether --enable-largefile was given. ++if test "${enable_largefile+set}" = set; then : ++ enableval=$enable_largefile; ++fi + ++if test "$enable_largefile" != no; then ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 ++$as_echo_n "checking for special C compiler options needed for large files... " >&6; } ++if test "${ac_cv_sys_largefile_CC+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ ac_cv_sys_largefile_CC=no ++ if test "$GCC" != yes; then ++ ac_save_CC=$CC ++ while :; do ++ # IRIX 6.2 and later do not support large files by default, ++ # so use the C compiler's -n32 option if that helps. ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++ /* Check that off_t can represent 2**63 - 1 correctly. ++ We can't simply define LARGE_OFF_T to be 9223372036854775807, ++ since some C++ compilers masquerading as C compilers ++ incorrectly reject 9223372036854775807. */ ++#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) ++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 ++ && LARGE_OFF_T % 2147483647 == 1) ++ ? 1 : -1]; ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++ if ac_fn_c_try_compile "$LINENO"; then : ++ break ++fi ++rm -f core conftest.err conftest.$ac_objext ++ CC="$CC -n32" ++ if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_sys_largefile_CC=' -n32'; break ++fi ++rm -f core conftest.err conftest.$ac_objext ++ break ++ done ++ CC=$ac_save_CC ++ rm -f conftest.$ac_ext ++ fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 ++$as_echo "$ac_cv_sys_largefile_CC" >&6; } ++ if test "$ac_cv_sys_largefile_CC" != no; then ++ CC=$CC$ac_cv_sys_largefile_CC ++ fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 ++$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } ++if test "${ac_cv_sys_file_offset_bits+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ while :; do ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++ /* Check that off_t can represent 2**63 - 1 correctly. ++ We can't simply define LARGE_OFF_T to be 9223372036854775807, ++ since some C++ compilers masquerading as C compilers ++ incorrectly reject 9223372036854775807. */ ++#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) ++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 ++ && LARGE_OFF_T % 2147483647 == 1) ++ ? 1 : -1]; ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_sys_file_offset_bits=no; break ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#define _FILE_OFFSET_BITS 64 ++#include ++ /* Check that off_t can represent 2**63 - 1 correctly. ++ We can't simply define LARGE_OFF_T to be 9223372036854775807, ++ since some C++ compilers masquerading as C compilers ++ incorrectly reject 9223372036854775807. */ ++#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) ++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 ++ && LARGE_OFF_T % 2147483647 == 1) ++ ? 1 : -1]; ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_sys_file_offset_bits=64; break ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ac_cv_sys_file_offset_bits=unknown ++ break ++done ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 ++$as_echo "$ac_cv_sys_file_offset_bits" >&6; } ++case $ac_cv_sys_file_offset_bits in #( ++ no | unknown) ;; ++ *) ++cat >>confdefs.h <<_ACEOF ++#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits ++_ACEOF ++;; ++esac ++rm -rf conftest* ++ if test $ac_cv_sys_file_offset_bits = unknown; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 ++$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; } ++if test "${ac_cv_sys_large_files+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ while :; do ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++ /* Check that off_t can represent 2**63 - 1 correctly. ++ We can't simply define LARGE_OFF_T to be 9223372036854775807, ++ since some C++ compilers masquerading as C compilers ++ incorrectly reject 9223372036854775807. */ ++#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) ++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 ++ && LARGE_OFF_T % 2147483647 == 1) ++ ? 1 : -1]; ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_sys_large_files=no; break ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#define _LARGE_FILES 1 ++#include ++ /* Check that off_t can represent 2**63 - 1 correctly. ++ We can't simply define LARGE_OFF_T to be 9223372036854775807, ++ since some C++ compilers masquerading as C compilers ++ incorrectly reject 9223372036854775807. */ ++#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62)) ++ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 ++ && LARGE_OFF_T % 2147483647 == 1) ++ ? 1 : -1]; ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_compile "$LINENO"; then : ++ ac_cv_sys_large_files=1; break ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ ac_cv_sys_large_files=unknown ++ break ++done ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 ++$as_echo "$ac_cv_sys_large_files" >&6; } ++case $ac_cv_sys_large_files in #( ++ no | unknown) ;; ++ *) ++cat >>confdefs.h <<_ACEOF ++#define _LARGE_FILES $ac_cv_sys_large_files ++_ACEOF ++;; ++esac ++rm -rf conftest* ++ fi ++fi ++ ++ ++ + # The cast to long int works around a bug in the HP C Compiler + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects + # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +Index: gcc/dwarf2asm.c +=================================================================== +--- a/src/gcc/dwarf2asm.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/dwarf2asm.c (.../branches/gcc-7-branch) +@@ -345,7 +345,9 @@ + for (i = 0; i < len; i++) + { + int c = str[i]; +- if (c == '\"' || c == '\\') ++ if (c == '\"') ++ fputc (XCOFF_DEBUGGING_INFO ? '\"' : '\\', asm_out_file); ++ else if (c == '\\') + fputc ('\\', asm_out_file); + if (ISPRINT (c)) + fputc (c, asm_out_file); +Index: gcc/tree-ssa-tail-merge.c +=================================================================== +--- a/src/gcc/tree-ssa-tail-merge.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/tree-ssa-tail-merge.c (.../branches/gcc-7-branch) +@@ -808,6 +808,9 @@ + same_succ_flush_bb (basic_block bb) + { + same_succ *same = BB_SAME_SUCC (bb); ++ if (! same) ++ return; ++ + BB_SAME_SUCC (bb) = NULL; + if (bitmap_single_bit_set_p (same->bbs)) + same_succ_htab->remove_elt_with_hash (same, same->hashval); +Index: gcc/graphite-isl-ast-to-gimple.c +=================================================================== +--- a/src/gcc/graphite-isl-ast-to-gimple.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/graphite-isl-ast-to-gimple.c (.../branches/gcc-7-branch) +@@ -229,8 +229,9 @@ + tree add_close_phis_to_outer_loops (tree last_merge_name, edge merge_e, + gimple *old_close_phi); + bool copy_loop_close_phi_args (basic_block old_bb, basic_block new_bb, +- bool postpone); +- bool copy_loop_close_phi_nodes (basic_block old_bb, basic_block new_bb); ++ vec iv_map, bool postpone); ++ bool copy_loop_close_phi_nodes (basic_block old_bb, basic_block new_bb, ++ vec iv_map); + bool copy_cond_phi_args (gphi *phi, gphi *new_phi, vec iv_map, + bool postpone); + bool copy_cond_phi_nodes (basic_block bb, basic_block new_bb, +@@ -2079,7 +2080,8 @@ + /* Copy all the loop-close phi args from BB to NEW_BB. */ + + bool translate_isl_ast_to_gimple:: +-copy_loop_close_phi_args (basic_block old_bb, basic_block new_bb, bool postpone) ++copy_loop_close_phi_args (basic_block old_bb, basic_block new_bb, ++ vec iv_map, bool postpone) + { + for (gphi_iterator psi = gsi_start_phis (old_bb); !gsi_end_p (psi); + gsi_next (&psi)) +@@ -2089,10 +2091,6 @@ + if (virtual_operand_p (res)) + continue; + +- if (is_gimple_reg (res) && scev_analyzable_p (res, region->region)) +- /* Loop close phi nodes should not be scev_analyzable_p. */ +- gcc_unreachable (); +- + gphi *new_close_phi = create_phi_node (NULL_TREE, new_bb); + tree new_res = create_new_def_for (res, new_close_phi, + gimple_phi_result_ptr (new_close_phi)); +@@ -2099,12 +2097,23 @@ + set_rename (res, new_res); + + tree old_name = gimple_phi_arg_def (old_close_phi, 0); +- tree new_name = get_new_name (new_bb, old_name, old_bb, close_phi); ++ tree new_name; ++ if (is_gimple_reg (res) && scev_analyzable_p (res, region->region)) ++ { ++ gimple_seq stmts; ++ new_name = get_rename_from_scev (old_name, &stmts, ++ old_bb->loop_father, ++ new_bb, old_bb, iv_map); ++ if (! codegen_error_p ()) ++ gsi_insert_earliest (stmts); ++ } ++ else ++ new_name = get_new_name (new_bb, old_name, old_bb, close_phi); + + /* Predecessor basic blocks of a loop close phi should have been code + generated before. FIXME: This is fixable by merging PHIs from inner + loops as well. See: gfortran.dg/graphite/interchange-3.f90. */ +- if (!new_name) ++ if (!new_name || codegen_error_p ()) + return false; + + add_phi_arg (new_close_phi, new_name, single_pred_edge (new_bb), +@@ -2152,7 +2161,8 @@ + /* Copy loop close phi nodes from BB to NEW_BB. */ + + bool translate_isl_ast_to_gimple:: +-copy_loop_close_phi_nodes (basic_block old_bb, basic_block new_bb) ++copy_loop_close_phi_nodes (basic_block old_bb, basic_block new_bb, ++ vec iv_map) + { + if (dump_file) + fprintf (dump_file, "[codegen] copying loop close phi nodes in bb_%d.\n", +@@ -2160,7 +2170,7 @@ + /* Loop close phi nodes should have only one argument. */ + gcc_assert (1 == EDGE_COUNT (old_bb->preds)); + +- return copy_loop_close_phi_args (old_bb, new_bb, true); ++ return copy_loop_close_phi_args (old_bb, new_bb, iv_map, true); + } + + +@@ -2690,7 +2700,7 @@ + gcc_assert (single_pred_edge (phi_bb)->src->loop_father + != single_pred_edge (phi_bb)->dest->loop_father); + +- if (!copy_loop_close_phi_nodes (bb, phi_bb)) ++ if (!copy_loop_close_phi_nodes (bb, phi_bb, iv_map)) + { + codegen_error = true; + return NULL; +@@ -2824,7 +2834,7 @@ + codegen_error = !copy_loop_phi_args (old_phi, ibp_old_bb, new_phi, + ibp_new_bb, false); + else if (bb_contains_loop_close_phi_nodes (new_bb)) +- codegen_error = !copy_loop_close_phi_args (old_bb, new_bb, false); ++ codegen_error = !copy_loop_close_phi_args (old_bb, new_bb, iv_map, false); + else + codegen_error = !copy_cond_phi_args (old_phi, new_phi, iv_map, false); + +Index: gcc/tree-ssa-loop-niter.c +=================================================================== +--- a/src/gcc/tree-ssa-loop-niter.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/tree-ssa-loop-niter.c (.../branches/gcc-7-branch) +@@ -1142,8 +1142,12 @@ + tree niter_type = TREE_TYPE (step); + tree mod = fold_build2 (FLOOR_MOD_EXPR, niter_type, *delta, step); + tree tmod; +- tree assumption = boolean_true_node, bound; +- tree type1 = (POINTER_TYPE_P (type)) ? sizetype : type; ++ mpz_t mmod; ++ tree assumption = boolean_true_node, bound, noloop; ++ bool ret = false, fv_comp_no_overflow; ++ tree type1 = type; ++ if (POINTER_TYPE_P (type)) ++ type1 = sizetype; + + if (TREE_CODE (mod) != INTEGER_CST) + return false; +@@ -1151,51 +1155,96 @@ + mod = fold_build2 (MINUS_EXPR, niter_type, step, mod); + tmod = fold_convert (type1, mod); + ++ mpz_init (mmod); ++ wi::to_mpz (mod, mmod, UNSIGNED); ++ mpz_neg (mmod, mmod); ++ + /* If the induction variable does not overflow and the exit is taken, +- then the computation of the final value does not overflow. There +- are three cases: +- 1) The case if the new final value is equal to the current one. +- 2) Induction varaible has pointer type, as the code cannot rely +- on the object to that the pointer points being placed at the +- end of the address space (and more pragmatically, +- TYPE_{MIN,MAX}_VALUE is not defined for pointers). +- 3) EXIT_MUST_BE_TAKEN is true, note it implies that the induction +- variable does not overflow. */ +- if (!integer_zerop (mod) && !POINTER_TYPE_P (type) && !exit_must_be_taken) ++ then the computation of the final value does not overflow. This is ++ also obviously the case if the new final value is equal to the ++ current one. Finally, we postulate this for pointer type variables, ++ as the code cannot rely on the object to that the pointer points being ++ placed at the end of the address space (and more pragmatically, ++ TYPE_{MIN,MAX}_VALUE is not defined for pointers). */ ++ if (integer_zerop (mod) || POINTER_TYPE_P (type)) ++ fv_comp_no_overflow = true; ++ else if (!exit_must_be_taken) ++ fv_comp_no_overflow = false; ++ else ++ fv_comp_no_overflow = ++ (iv0->no_overflow && integer_nonzerop (iv0->step)) ++ || (iv1->no_overflow && integer_nonzerop (iv1->step)); ++ ++ if (integer_nonzerop (iv0->step)) + { +- if (integer_nonzerop (iv0->step)) ++ /* The final value of the iv is iv1->base + MOD, assuming that this ++ computation does not overflow, and that ++ iv0->base <= iv1->base + MOD. */ ++ if (!fv_comp_no_overflow) + { +- /* The final value of the iv is iv1->base + MOD, assuming +- that this computation does not overflow, and that +- iv0->base <= iv1->base + MOD. */ + bound = fold_build2 (MINUS_EXPR, type1, + TYPE_MAX_VALUE (type1), tmod); + assumption = fold_build2 (LE_EXPR, boolean_type_node, + iv1->base, bound); ++ if (integer_zerop (assumption)) ++ goto end; + } ++ if (mpz_cmp (mmod, bnds->below) < 0) ++ noloop = boolean_false_node; ++ else if (POINTER_TYPE_P (type)) ++ noloop = fold_build2 (GT_EXPR, boolean_type_node, ++ iv0->base, ++ fold_build_pointer_plus (iv1->base, tmod)); + else ++ noloop = fold_build2 (GT_EXPR, boolean_type_node, ++ iv0->base, ++ fold_build2 (PLUS_EXPR, type1, ++ iv1->base, tmod)); ++ } ++ else ++ { ++ /* The final value of the iv is iv0->base - MOD, assuming that this ++ computation does not overflow, and that ++ iv0->base - MOD <= iv1->base. */ ++ if (!fv_comp_no_overflow) + { +- /* The final value of the iv is iv0->base - MOD, assuming +- that this computation does not overflow, and that +- iv0->base - MOD <= iv1->base. */ + bound = fold_build2 (PLUS_EXPR, type1, + TYPE_MIN_VALUE (type1), tmod); + assumption = fold_build2 (GE_EXPR, boolean_type_node, + iv0->base, bound); ++ if (integer_zerop (assumption)) ++ goto end; + } +- if (integer_zerop (assumption)) +- return false; +- else if (!integer_nonzerop (assumption)) +- niter->assumptions = fold_build2 (TRUTH_AND_EXPR, boolean_type_node, +- niter->assumptions, assumption); ++ if (mpz_cmp (mmod, bnds->below) < 0) ++ noloop = boolean_false_node; ++ else if (POINTER_TYPE_P (type)) ++ noloop = fold_build2 (GT_EXPR, boolean_type_node, ++ fold_build_pointer_plus (iv0->base, ++ fold_build1 (NEGATE_EXPR, ++ type1, tmod)), ++ iv1->base); ++ else ++ noloop = fold_build2 (GT_EXPR, boolean_type_node, ++ fold_build2 (MINUS_EXPR, type1, ++ iv0->base, tmod), ++ iv1->base); + } + +- /* Since we are transforming LT to NE and DELTA is constant, there +- is no need to compute may_be_zero because this loop must roll. */ +- ++ if (!integer_nonzerop (assumption)) ++ niter->assumptions = fold_build2 (TRUTH_AND_EXPR, boolean_type_node, ++ niter->assumptions, ++ assumption); ++ if (!integer_zerop (noloop)) ++ niter->may_be_zero = fold_build2 (TRUTH_OR_EXPR, boolean_type_node, ++ niter->may_be_zero, ++ noloop); + bounds_add (bnds, wi::to_widest (mod), type); + *delta = fold_build2 (PLUS_EXPR, niter_type, *delta, mod); +- return true; ++ ++ ret = true; ++end: ++ mpz_clear (mmod); ++ return ret; + } + + /* Add assertions to NITER that ensure that the control variable of the loop +Index: gcc/c-family/c-warn.c +=================================================================== +--- a/src/gcc/c-family/c-warn.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/c-family/c-warn.c (.../branches/gcc-7-branch) +@@ -521,10 +521,10 @@ + = get_alias_set (TREE_TYPE (TREE_OPERAND (expr, 0))); + alias_set_type set2 = get_alias_set (TREE_TYPE (type)); + +- if (set1 != set2 && set2 != 0 +- && (set1 == 0 +- || (!alias_set_subset_of (set2, set1) +- && !alias_sets_conflict_p (set1, set2)))) ++ if (set2 != 0 ++ && set1 != set2 ++ && !alias_set_subset_of (set2, set1) ++ && !alias_sets_conflict_p (set1, set2)) + { + warning (OPT_Wstrict_aliasing, "dereferencing type-punned " + "pointer will break strict-aliasing rules"); +Index: gcc/c-family/ChangeLog +=================================================================== +--- a/src/gcc/c-family/ChangeLog (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/c-family/ChangeLog (.../branches/gcc-7-branch) +@@ -1,3 +1,21 @@ ++2017-06-07 Richard Biener ++ ++ Backport from mainline ++ 2017-05-19 Richard Biener ++ ++ PR c++/80593 ++ * c-warn.c (strict_aliasing_warning): Do not warn for accesses ++ to alias-set zero memory. ++ ++2017-06-07 Marek Polacek ++ ++ Backport from mainline ++ 2017-06-04 Marek Polacek ++ ++ PR c/80919 ++ * c-format.c (matching_type_p): Return false if any of the types ++ requires structural equality. ++ + 2017-05-02 Release Manager + + * GCC 7.1.0 released. +Index: gcc/c-family/c-format.c +=================================================================== +--- a/src/gcc/c-family/c-format.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/c-family/c-format.c (.../branches/gcc-7-branch) +@@ -3147,6 +3147,12 @@ + gcc_assert (spec_type); + gcc_assert (arg_type); + ++ /* If any of the types requires structural equality, we can't compare ++ their canonical types. */ ++ if (TYPE_STRUCTURAL_EQUALITY_P (spec_type) ++ || TYPE_STRUCTURAL_EQUALITY_P (arg_type)) ++ return false; ++ + spec_type = TYPE_CANONICAL (spec_type); + arg_type = TYPE_CANONICAL (arg_type); + +Index: gcc/ipa-polymorphic-call.c +=================================================================== +--- a/src/gcc/ipa-polymorphic-call.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/ipa-polymorphic-call.c (.../branches/gcc-7-branch) +@@ -267,7 +267,8 @@ + { + for (fld = TYPE_FIELDS (type); fld; fld = DECL_CHAIN (fld)) + { +- if (TREE_CODE (fld) != FIELD_DECL) ++ if (TREE_CODE (fld) != FIELD_DECL ++ || TREE_TYPE (fld) == error_mark_node) + continue; + + pos = int_bit_position (fld); +Index: gcc/tree-ssa-loop-unswitch.c +=================================================================== +--- a/src/gcc/tree-ssa-loop-unswitch.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/tree-ssa-loop-unswitch.c (.../branches/gcc-7-branch) +@@ -580,8 +580,9 @@ + gcond *cond; + do + { ++ basic_block next = NULL; + if (single_succ_p (header)) +- header = single_succ (header); ++ next = single_succ (header); + else + { + cond = dyn_cast (last_stmt (header)); +@@ -591,12 +592,16 @@ + /* Make sure to skip earlier hoisted guards that are left + in place as if (true). */ + if (gimple_cond_true_p (cond)) +- header = te->dest; ++ next = te->dest; + else if (gimple_cond_false_p (cond)) +- header = fe->dest; ++ next = fe->dest; + else + break; + } ++ /* Never traverse a backedge. */ ++ if (header->loop_father->header == next) ++ return NULL; ++ header = next; + } + while (1); + if (!flow_bb_inside_loop_p (loop, te->dest) +Index: gcc/c/ChangeLog +=================================================================== +--- a/src/gcc/c/ChangeLog (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/c/ChangeLog (.../branches/gcc-7-branch) +@@ -1,3 +1,27 @@ ++2017-06-08 Jakub Jelinek ++ ++ PR c/81006 ++ * c-typeck.c (handle_omp_array_sections_1): Convert TYPE_MAX_VALUE ++ to sizetype before size_binop. ++ ++2017-05-26 Marek Polacek ++ ++ Backported from mainline ++ 2017-05-17 Marek Polacek ++ ++ PR sanitizer/80659 ++ * c-decl.c (build_compound_literal): Set DECL_ARTIFICIAL and ++ DECL_IGNORED_P even for non-static compound literals. ++ ++2017-05-03 Jakub Jelinek ++ ++ Backported from mainline ++ 2017-04-21 Jakub Jelinek ++ ++ PR c/80468 ++ * c-decl.c (finish_declspecs) : If int_n_idx is not ++ enabled, set specs->type to integer_type_node. ++ + 2017-05-02 Release Manager + + * GCC 7.1.0 released. +Index: gcc/c/c-typeck.c +=================================================================== +--- a/src/gcc/c/c-typeck.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/c/c-typeck.c (.../branches/gcc-7-branch) +@@ -12355,9 +12355,9 @@ + && TREE_CODE (TYPE_MAX_VALUE (TYPE_DOMAIN (type))) + == INTEGER_CST) + { +- tree size = size_binop (PLUS_EXPR, +- TYPE_MAX_VALUE (TYPE_DOMAIN (type)), +- size_one_node); ++ tree size ++ = fold_convert (sizetype, TYPE_MAX_VALUE (TYPE_DOMAIN (type))); ++ size = size_binop (PLUS_EXPR, size, size_one_node); + if (TREE_CODE (low_bound) == INTEGER_CST) + { + if (tree_int_cst_lt (size, low_bound)) +Index: gcc/c/c-decl.c +=================================================================== +--- a/src/gcc/c/c-decl.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/c/c-decl.c (.../branches/gcc-7-branch) +@@ -5261,6 +5261,8 @@ + DECL_CONTEXT (decl) = current_function_decl; + TREE_USED (decl) = 1; + DECL_READ_P (decl) = 1; ++ DECL_ARTIFICIAL (decl) = 1; ++ DECL_IGNORED_P (decl) = 1; + TREE_TYPE (decl) = type; + TREE_READONLY (decl) = (TYPE_READONLY (type) + || (TREE_CODE (type) == ARRAY_TYPE +@@ -5297,8 +5299,6 @@ + set_compound_literal_name (decl); + DECL_DEFER_OUTPUT (decl) = 1; + DECL_COMDAT (decl) = 1; +- DECL_ARTIFICIAL (decl) = 1; +- DECL_IGNORED_P (decl) = 1; + pushdecl (decl); + rest_of_decl_compilation (decl, 1, 0); + } +@@ -10929,9 +10929,12 @@ + case cts_int_n: + gcc_assert (!specs->long_p && !specs->short_p && !specs->long_long_p); + gcc_assert (!(specs->signed_p && specs->unsigned_p)); +- specs->type = (specs->unsigned_p +- ? int_n_trees[specs->int_n_idx].unsigned_type +- : int_n_trees[specs->int_n_idx].signed_type); ++ if (! int_n_enabled_p[specs->int_n_idx]) ++ specs->type = integer_type_node; ++ else ++ specs->type = (specs->unsigned_p ++ ? int_n_trees[specs->int_n_idx].unsigned_type ++ : int_n_trees[specs->int_n_idx].signed_type); + if (specs->complex_p) + { + pedwarn (specs->locations[cdw_complex], OPT_Wpedantic, +Index: gcc/optabs.c +=================================================================== +--- a/src/gcc/optabs.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/optabs.c (.../branches/gcc-7-branch) +@@ -3844,9 +3844,9 @@ + if (cfun->can_throw_non_call_exceptions) + { + if (may_trap_p (x)) +- x = force_reg (mode, x); ++ x = copy_to_reg (x); + if (may_trap_p (y)) +- y = force_reg (mode, y); ++ y = copy_to_reg (y); + } + + if (GET_MODE_CLASS (mode) == MODE_CC) +Index: gcc/DATESTAMP +=================================================================== +--- a/src/gcc/DATESTAMP (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/DATESTAMP (.../branches/gcc-7-branch) +@@ -1 +1 @@ +-20170502 ++20170808 +Index: gcc/tree-ssa-strlen.c +=================================================================== +--- a/src/gcc/tree-ssa-strlen.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/tree-ssa-strlen.c (.../branches/gcc-7-branch) +@@ -61,7 +61,13 @@ + tree length; + /* Any of the corresponding pointers for querying alias oracle. */ + tree ptr; +- /* Statement for delayed length computation. */ ++ /* This is used for two things: ++ ++ - To record the statement that should be used for delayed length ++ computations. We maintain the invariant that all related strinfos ++ have delayed lengths or none do. ++ ++ - To record the malloc or calloc call that produced this result. */ + gimple *stmt; + /* Pointer to '\0' if known, if NULL, it can be computed as + ptr + length. */ +@@ -156,6 +162,19 @@ + return (*stridx_to_strinfo)[idx]; + } + ++/* Get the next strinfo in the chain after SI, or null if none. */ ++ ++static inline strinfo * ++get_next_strinfo (strinfo *si) ++{ ++ if (si->next == 0) ++ return NULL; ++ strinfo *nextsi = get_strinfo (si->next); ++ if (nextsi == NULL || nextsi->first != si->first || nextsi->prev != si->idx) ++ return NULL; ++ return nextsi; ++} ++ + /* Helper function for get_stridx. */ + + static int +@@ -438,6 +457,45 @@ + (*stridx_to_strinfo)[idx] = si; + } + ++/* Return the first strinfo in the related strinfo chain ++ if all strinfos in between belong to the chain, otherwise NULL. */ ++ ++static strinfo * ++verify_related_strinfos (strinfo *origsi) ++{ ++ strinfo *si = origsi, *psi; ++ ++ if (origsi->first == 0) ++ return NULL; ++ for (; si->prev; si = psi) ++ { ++ if (si->first != origsi->first) ++ return NULL; ++ psi = get_strinfo (si->prev); ++ if (psi == NULL) ++ return NULL; ++ if (psi->next != si->idx) ++ return NULL; ++ } ++ if (si->idx != si->first) ++ return NULL; ++ return si; ++} ++ ++/* Set SI's endptr to ENDPTR and compute its length based on SI->ptr. ++ Use LOC for folding. */ ++ ++static void ++set_endptr_and_length (location_t loc, strinfo *si, tree endptr) ++{ ++ si->endptr = endptr; ++ si->stmt = NULL; ++ tree start_as_size = fold_convert_loc (loc, size_type_node, si->ptr); ++ tree end_as_size = fold_convert_loc (loc, size_type_node, endptr); ++ si->length = fold_build2_loc (loc, MINUS_EXPR, size_type_node, ++ end_as_size, start_as_size); ++} ++ + /* Return string length, or NULL if it can't be computed. */ + + static tree +@@ -533,12 +591,12 @@ + case BUILT_IN_STPCPY_CHK_CHKP: + gcc_assert (lhs != NULL_TREE); + loc = gimple_location (stmt); +- si->endptr = lhs; +- si->stmt = NULL; +- lhs = fold_convert_loc (loc, size_type_node, lhs); +- si->length = fold_convert_loc (loc, size_type_node, si->ptr); +- si->length = fold_build2_loc (loc, MINUS_EXPR, size_type_node, +- lhs, si->length); ++ set_endptr_and_length (loc, si, lhs); ++ for (strinfo *chainsi = verify_related_strinfos (si); ++ chainsi != NULL; ++ chainsi = get_next_strinfo (chainsi)) ++ if (chainsi->length == NULL) ++ set_endptr_and_length (loc, chainsi, lhs); + break; + case BUILT_IN_MALLOC: + break; +@@ -607,32 +665,6 @@ + return nsi; + } + +-/* Return first strinfo in the related strinfo chain +- if all strinfos in between belong to the chain, otherwise +- NULL. */ +- +-static strinfo * +-verify_related_strinfos (strinfo *origsi) +-{ +- strinfo *si = origsi, *psi; +- +- if (origsi->first == 0) +- return NULL; +- for (; si->prev; si = psi) +- { +- if (si->first != origsi->first) +- return NULL; +- psi = get_strinfo (si->prev); +- if (psi == NULL) +- return NULL; +- if (psi->next != si->idx) +- return NULL; +- } +- if (si->idx != si->first) +- return NULL; +- return si; +-} +- + /* Attempt to create a new strinfo for BASESI + OFF, or find existing + strinfo if there is any. Return it's idx, or 0 if no strinfo has + been created. */ +Index: gcc/configure +=================================================================== +--- a/src/gcc/configure (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/configure (.../branches/gcc-7-branch) +@@ -25217,7 +25217,42 @@ + + fi + ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for SPARC6 instructions" >&5 ++$as_echo_n "checking assembler for SPARC6 instructions... " >&6; } ++if test "${gcc_cv_as_sparc_sparc6+set}" = set; then : ++ $as_echo_n "(cached) " >&6 ++else ++ gcc_cv_as_sparc_sparc6=no ++ if test x$gcc_cv_as != x; then ++ $as_echo '.text ++ .register %g2, #scratch ++ .register %g3, #scratch ++ .align 4 ++ rd %entropy, %g1 ++ fpsll64x %f0, %f2, %f4' > conftest.s ++ if { ac_try='$gcc_cv_as $gcc_cv_as_flags -xarch=sparc6 -o conftest.o conftest.s >&5' ++ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ++ test $ac_status = 0; }; } ++ then ++ gcc_cv_as_sparc_sparc6=yes ++ else ++ echo "configure: failed program was" >&5 ++ cat conftest.s >&5 ++ fi ++ rm -f conftest.o conftest.s ++ fi ++fi ++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_sparc_sparc6" >&5 ++$as_echo "$gcc_cv_as_sparc_sparc6" >&6; } ++if test $gcc_cv_as_sparc_sparc6 = yes; then + ++$as_echo "#define HAVE_AS_SPARC6 1" >>confdefs.h ++ ++fi ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for LEON instructions" >&5 + $as_echo_n "checking assembler for LEON instructions... " >&6; } + if test "${gcc_cv_as_sparc_leon+set}" = set; then : +Index: gcc/builtins.c +=================================================================== +--- a/src/gcc/builtins.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/builtins.c (.../branches/gcc-7-branch) +@@ -5939,6 +5939,12 @@ + gcc_assert (TREE_OPERAND (addr, 0) == fndecl); + TREE_OPERAND (addr, 0) = builtin_decl_explicit (ext_call); + ++ /* If we will emit code after the call, the call can not be a tail call. ++ If it is emitted as a tail call, a barrier is emitted after it, and ++ then all trailing code is removed. */ ++ if (!ignore) ++ CALL_EXPR_TAILCALL (exp) = 0; ++ + /* Expand the call here so we can emit trailing code. */ + ret = expand_call (exp, target, ignore); + +Index: gcc/gcc.c +=================================================================== +--- a/src/gcc/gcc.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/gcc.c (.../branches/gcc-7-branch) +@@ -4472,6 +4472,9 @@ + output_file); + } + ++ if (output_file != NULL && output_file[0] == '\0') ++ fatal_error (input_location, "output filename may not be empty"); ++ + /* If -save-temps=obj and -o name, create the prefix to use for %b. + Otherwise just make -save-temps=obj the same as -save-temps=cwd. */ + if (save_temps_flag == SAVE_TEMPS_OBJ && save_temps_prefix != NULL) +Index: gcc/fold-const.c +=================================================================== +--- a/src/gcc/fold-const.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/fold-const.c (.../branches/gcc-7-branch) +@@ -9808,6 +9808,7 @@ + if (TREE_CODE (op1) == INTEGER_CST + && tree_int_cst_sgn (op1) == -1 + && negate_expr_p (op0) ++ && negate_expr_p (op1) + && (tem = negate_expr (op1)) != op1 + && ! TREE_OVERFLOW (tem)) + return fold_build2_loc (loc, MULT_EXPR, type, +@@ -13726,8 +13727,8 @@ + bool overflow; + wide_int val = wi::neg (arg0, &overflow); + t = force_fit_type (type, val, 1, +- (overflow | TREE_OVERFLOW (arg0)) +- && !TYPE_UNSIGNED (type)); ++ (overflow && ! TYPE_UNSIGNED (type)) ++ || TREE_OVERFLOW (arg0)); + break; + } + +Index: gcc/omp-low.c +=================================================================== +--- a/src/gcc/omp-low.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/omp-low.c (.../branches/gcc-7-branch) +@@ -1913,7 +1913,30 @@ + } + } + ++/* Helper function for finish_taskreg_scan, called through walk_tree. ++ If maybe_lookup_decl_in_outer_context returns non-NULL for some ++ tree, replace it in the expression. */ + ++static tree ++finish_taskreg_remap (tree *tp, int *walk_subtrees, void *data) ++{ ++ if (VAR_P (*tp)) ++ { ++ omp_context *ctx = (omp_context *) data; ++ tree t = maybe_lookup_decl_in_outer_ctx (*tp, ctx); ++ if (t != *tp) ++ { ++ if (DECL_HAS_VALUE_EXPR_P (t)) ++ t = unshare_expr (DECL_VALUE_EXPR (t)); ++ *tp = t; ++ } ++ *walk_subtrees = 0; ++ } ++ else if (IS_TYPE_OR_DECL_P (*tp)) ++ *walk_subtrees = 0; ++ return NULL_TREE; ++} ++ + /* If any decls have been made addressable during scan_omp, + adjust their fields if needed, and layout record types + of parallel/task constructs. */ +@@ -2033,6 +2056,11 @@ + layout_type (ctx->srecord_type); + tree t = fold_convert_loc (loc, long_integer_type_node, + TYPE_SIZE_UNIT (ctx->record_type)); ++ if (TREE_CODE (t) != INTEGER_CST) ++ { ++ t = unshare_expr (t); ++ walk_tree (&t, finish_taskreg_remap, ctx, NULL); ++ } + gimple_omp_task_set_arg_size (ctx->stmt, t); + t = build_int_cst (long_integer_type_node, + TYPE_ALIGN_UNIT (ctx->record_type)); +@@ -5140,6 +5168,7 @@ + if (OMP_CLAUSE_CODE (c) != OMP_CLAUSE_REDUCTION) + continue; + ++ enum omp_clause_code ccode = OMP_CLAUSE_REDUCTION; + orig_var = var = OMP_CLAUSE_DECL (c); + if (TREE_CODE (var) == MEM_REF) + { +@@ -5146,9 +5175,18 @@ + var = TREE_OPERAND (var, 0); + if (TREE_CODE (var) == POINTER_PLUS_EXPR) + var = TREE_OPERAND (var, 0); +- if (TREE_CODE (var) == INDIRECT_REF +- || TREE_CODE (var) == ADDR_EXPR) ++ if (TREE_CODE (var) == ADDR_EXPR) + var = TREE_OPERAND (var, 0); ++ else ++ { ++ /* If this is a pointer or referenced based array ++ section, the var could be private in the outer ++ context e.g. on orphaned loop construct. Pretend this ++ is private variable's outer reference. */ ++ ccode = OMP_CLAUSE_PRIVATE; ++ if (TREE_CODE (var) == INDIRECT_REF) ++ var = TREE_OPERAND (var, 0); ++ } + orig_var = var; + if (is_variable_sized (var)) + { +@@ -5162,7 +5200,7 @@ + new_var = lookup_decl (var, ctx); + if (var == OMP_CLAUSE_DECL (c) && omp_is_reference (var)) + new_var = build_simple_mem_ref_loc (clause_loc, new_var); +- ref = build_outer_var_ref (var, ctx); ++ ref = build_outer_var_ref (var, ctx, ccode); + code = OMP_CLAUSE_REDUCTION_CODE (c); + + /* reduction(-:var) sums up the partial results, so it acts +Index: gcc/gcov.c +=================================================================== +--- a/src/gcc/gcov.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/gcov.c (.../branches/gcc-7-branch) +@@ -499,13 +499,13 @@ + unsigned index = it - blocked.begin (); + blocked.erase (it); + +- for (block_vector_t::iterator it2 = block_lists[index].begin (); +- it2 != block_lists[index].end (); it2++) +- unblock (*it2, blocked, block_lists); +- for (unsigned j = 0; j < block_lists[index].size (); j++) +- unblock (u, blocked, block_lists); ++ block_vector_t to_unblock (block_lists[index]); + + block_lists.erase (block_lists.begin () + index); ++ ++ for (block_vector_t::iterator it = to_unblock.begin (); ++ it != to_unblock.end (); it++) ++ unblock (*it, blocked, block_lists); + } + + /* Find circuit going to block V, PATH is provisional seen cycle. +@@ -655,7 +655,6 @@ + + fnotice (file, "Usage: gcov [OPTION...] SOURCE|OBJ...\n\n"); + fnotice (file, "Print code coverage information.\n\n"); +- fnotice (file, " -h, --help Print this help, then exit\n"); + fnotice (file, " -a, --all-blocks Show information for every basic block\n"); + fnotice (file, " -b, --branch-probabilities Include branch probabilities in output\n"); + fnotice (file, " -c, --branch-counts Output counts of branches taken\n\ +@@ -662,6 +661,7 @@ + rather than percentages\n"); + fnotice (file, " -d, --display-progress Display progress information\n"); + fnotice (file, " -f, --function-summaries Output summaries for each function\n"); ++ fnotice (file, " -h, --help Print this help, then exit\n"); + fnotice (file, " -i, --intermediate-format Output .gcov file in intermediate text format\n"); + fnotice (file, " -l, --long-file-names Use long output file names for included\n\ + source files\n"); +@@ -1959,6 +1959,13 @@ + { + static char buffer[20]; + ++ /* Handle invalid values that would result in a misleading value. */ ++ if (bottom != 0 && top > bottom && dp >= 0) ++ { ++ sprintf (buffer, "NAN %%"); ++ return buffer; ++ } ++ + if (dp >= 0) + { + float ratio = bottom ? (float)top / bottom : 0; +Index: gcc/toplev.c +=================================================================== +--- a/src/gcc/toplev.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/toplev.c (.../branches/gcc-7-branch) +@@ -1915,6 +1915,9 @@ + stack_usage_file = NULL; + } + ++ if (seen_error ()) ++ coverage_remove_note_file (); ++ + if (!no_backend) + { + statistics_fini (); +Index: gcc/reorg.c +=================================================================== +--- a/src/gcc/reorg.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/reorg.c (.../branches/gcc-7-branch) +@@ -1694,9 +1694,8 @@ + } + + /* Called when INSN is being moved from a location near the target of a jump. +- We leave a marker of the form (use (INSN)) immediately in front +- of WHERE for mark_target_live_regs. These markers will be deleted when +- reorg finishes. ++ We leave a marker of the form (use (INSN)) immediately in front of WHERE ++ for mark_target_live_regs. These markers will be deleted at the end. + + We used to try to update the live status of registers if WHERE is at + the start of a basic block, but that can't work since we may remove a +@@ -1705,16 +1704,10 @@ + static void + update_block (rtx_insn *insn, rtx_insn *where) + { +- /* Ignore if this was in a delay slot and it came from the target of +- a branch. */ +- if (INSN_FROM_TARGET_P (insn)) +- return; +- + emit_insn_before (gen_rtx_USE (VOIDmode, insn), where); + + /* INSN might be making a value live in a block where it didn't use to + be. So recompute liveness information for this block. */ +- + incr_ticks_for_insn (insn); + } + +Index: gcc/tree-chrec.c +=================================================================== +--- a/src/gcc/tree-chrec.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/tree-chrec.c (.../branches/gcc-7-branch) +@@ -149,7 +149,12 @@ + + /* This function should never be called for chrecs of loops that + do not belong to the same loop nest. */ +- gcc_assert (loop0 == loop1); ++ if (loop0 != loop1) ++ { ++ /* It still can happen if we are not in loop-closed SSA form. */ ++ gcc_assert (! loops_state_satisfies_p (LOOP_CLOSED_SSA)); ++ return chrec_dont_know; ++ } + + if (code == PLUS_EXPR || code == POINTER_PLUS_EXPR) + { +@@ -211,7 +216,12 @@ + chrec_fold_multiply (type, CHREC_LEFT (poly0), poly1), + CHREC_RIGHT (poly0)); + +- gcc_assert (loop0 == loop1); ++ if (loop0 != loop1) ++ { ++ /* It still can happen if we are not in loop-closed SSA form. */ ++ gcc_assert (! loops_state_satisfies_p (LOOP_CLOSED_SSA)); ++ return chrec_dont_know; ++ } + + /* poly0 and poly1 are two polynomials in the same variable, + {a, +, b}_x * {c, +, d}_x -> {a*c, +, a*d + b*c + b*d, +, 2*b*d}_x. */ +Index: gcc/real.c +=================================================================== +--- a/src/gcc/real.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/real.c (.../branches/gcc-7-branch) +@@ -960,12 +960,12 @@ + gcc_unreachable (); + } + ++ if (a->decimal || b->decimal) ++ return decimal_do_compare (a, b, nan_result); ++ + if (a->sign != b->sign) + return -a->sign - -b->sign; + +- if (a->decimal || b->decimal) +- return decimal_do_compare (a, b, nan_result); +- + if (REAL_EXP (a) > REAL_EXP (b)) + ret = 1; + else if (REAL_EXP (a) < REAL_EXP (b)) +Index: gcc/tree-ssa-sccvn.c +=================================================================== +--- a/src/gcc/tree-ssa-sccvn.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/tree-ssa-sccvn.c (.../branches/gcc-7-branch) +@@ -2035,7 +2035,9 @@ + ops[1] = bitsize_int (ref->size); + ops[2] = bitsize_int (offset - offset2); + tree val = vn_nary_build_or_lookup (rcode, vr->type, ops); +- if (val) ++ if (val ++ && (TREE_CODE (val) != SSA_NAME ++ || ! SSA_NAME_OCCURS_IN_ABNORMAL_PHI (val))) + { + vn_reference_t res = vn_reference_lookup_or_insert_for_pieces + (vuse, vr->set, vr->type, vr->operands, val); +@@ -2916,14 +2918,11 @@ + the other. */ + + static bool +-cond_stmts_equal_p (gcond *cond1, gcond *cond2, bool *inverted_p) ++cond_stmts_equal_p (gcond *cond1, tree lhs1, tree rhs1, ++ gcond *cond2, tree lhs2, tree rhs2, bool *inverted_p) + { + enum tree_code code1 = gimple_cond_code (cond1); + enum tree_code code2 = gimple_cond_code (cond2); +- tree lhs1 = gimple_cond_lhs (cond1); +- tree lhs2 = gimple_cond_lhs (cond2); +- tree rhs1 = gimple_cond_rhs (cond1); +- tree rhs2 = gimple_cond_rhs (cond2); + + *inverted_p = false; + if (code1 == code2) +@@ -2941,10 +2940,6 @@ + else + return false; + +- lhs1 = vn_valueize (lhs1); +- rhs1 = vn_valueize (rhs1); +- lhs2 = vn_valueize (lhs2); +- rhs2 = vn_valueize (rhs2); + return ((expressions_equal_p (lhs1, lhs2) + && expressions_equal_p (rhs1, rhs2)) + || (commutative_tree_code (code1) +@@ -3002,7 +2997,10 @@ + return false; + bool inverted_p; + if (! cond_stmts_equal_p (as_a (last1), +- as_a (last2), &inverted_p)) ++ vp1->cclhs, vp1->ccrhs, ++ as_a (last2), ++ vp2->cclhs, vp2->ccrhs, ++ &inverted_p)) + return false; + + /* Get at true/false controlled edges into the PHI. */ +@@ -3081,6 +3079,16 @@ + vp1.type = TREE_TYPE (gimple_phi_result (phi)); + vp1.phiargs = shared_lookup_phiargs; + vp1.block = gimple_bb (phi); ++ /* Extract values of the controlling condition. */ ++ vp1.cclhs = NULL_TREE; ++ vp1.ccrhs = NULL_TREE; ++ basic_block idom1 = get_immediate_dominator (CDI_DOMINATORS, vp1.block); ++ if (EDGE_COUNT (idom1->succs) == 2) ++ if (gcond *last1 = dyn_cast (last_stmt (idom1))) ++ { ++ vp1.cclhs = vn_valueize (gimple_cond_lhs (last1)); ++ vp1.ccrhs = vn_valueize (gimple_cond_rhs (last1)); ++ } + vp1.hashcode = vn_phi_compute_hash (&vp1); + slot = current_info->phis->find_slot_with_hash (&vp1, vp1.hashcode, + NO_INSERT); +@@ -3117,6 +3125,16 @@ + vp1->type = TREE_TYPE (gimple_phi_result (phi)); + vp1->phiargs = args; + vp1->block = gimple_bb (phi); ++ /* Extract values of the controlling condition. */ ++ vp1->cclhs = NULL_TREE; ++ vp1->ccrhs = NULL_TREE; ++ basic_block idom1 = get_immediate_dominator (CDI_DOMINATORS, vp1->block); ++ if (EDGE_COUNT (idom1->succs) == 2) ++ if (gcond *last1 = dyn_cast (last_stmt (idom1))) ++ { ++ vp1->cclhs = vn_valueize (gimple_cond_lhs (last1)); ++ vp1->ccrhs = vn_valueize (gimple_cond_rhs (last1)); ++ } + vp1->result = result; + vp1->hashcode = vn_phi_compute_hash (vp1); + +Index: gcc/tree-ssa-sccvn.h +=================================================================== +--- a/src/gcc/tree-ssa-sccvn.h (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/tree-ssa-sccvn.h (.../branches/gcc-7-branch) +@@ -67,6 +67,9 @@ + hashval_t hashcode; + vec phiargs; + basic_block block; ++ /* Controlling condition lhs/rhs. */ ++ tree cclhs; ++ tree ccrhs; + tree type; + tree result; + } *vn_phi_t; +Index: gcc/ChangeLog +=================================================================== +--- a/src/gcc/ChangeLog (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/ChangeLog (.../branches/gcc-7-branch) +@@ -1,3 +1,1549 @@ ++2017-08-08 Richard Biener ++ ++ PR middle-end/81766 ++ * function.c (thread_prologue_and_epilogue_insns): Restore ++ behavior of always calling find_many_sub_basic_blocks on ++ the inserted prologue. ++ ++2017-08-02 Jakub Jelinek ++ ++ PR middle-end/79499 ++ * function.c (thread_prologue_and_epilogue_insns): Determine blocks ++ for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN ++ of first NONDEBUG_INSN_P in each of the split_prologue_seq and ++ prologue_seq sequences - if any. ++ ++2017-08-01 Uros Bizjak ++ ++ PR target/81641 ++ * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel ++ print "ds:" only for immediates in generic address space. ++ ++2017-08-01 Jakub Jelinek ++ ++ PR target/81622 ++ * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For ++ __builtin_vec_cmpne verify both arguments are compatible vectors ++ before looking at TYPE_MODE on the element type. For __builtin_vec_ld ++ verify arg1_type is a pointer or array type. For __builtin_vec_st, ++ move computation of aligned to after checking the argument types. ++ Formatting fixes. ++ ++2017-08-01 Martin Liska ++ ++ Backport from mainline ++ 2017-07-26 Martin Liska ++ ++ PR gcov-profile/81561 ++ * gcov.c (unblock): Make unblocking safe as we need to preserve ++ index correspondence of blocks and block_lists. ++ ++2017-08-01 Richard Biener ++ ++ PR tree-optimization/71752 ++ PR tree-optimization/81633 ++ * tree-vect-slp.c (vect_get_slp_defs): Handle null operands ++ in the original suggested way. ++ ++2017-08-01 Richard Sandiford ++ ++ PR tree-optimization/80769 ++ * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used ++ for malloc and calloc. Document the new invariant that all related ++ strinfos have delayed lengths or none do. ++ (get_next_strinfo): New function. ++ (verify_related_strinfos): Move earlier in file. ++ (set_endptr_and_length): New function, split out from... ++ (get_string_length): ...here. Also set the lengths of related ++ strinfos. ++ ++2017-08-01 Jakub Jelinek ++ ++ PR tree-optimization/81588 ++ * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If ++ ranges[i].in_p, invert comparison code ccode. For >/>=, ++ swap rhs1 and rhs2 and comparison code unconditionally, ++ for rank is BIT_IOR_EXPR. ++ ++2017-07-31 Andreas Krebbel ++ ++ Backport from mainline ++ 2017-07-31 Andreas Krebbel ++ ++ * config.gcc: Add z14. ++ * config/s390/driver-native.c (s390_host_detect_local_cpu): Add ++ CPU model numbers for z13s and z14. ++ * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace ++ arch12 with z14. ++ * config/s390/s390-opts.h (enum processor_type): Rename ++ PROCESSOR_ARCH12 to PROCESSOR_3906_Z14. ++ * config/s390/s390.c (processor_table): Add field for CPU name to ++ be passed to Binutils. ++ (s390_asm_output_machine_for_arch): Use the new field in ++ processor_table for Binutils. ++ (s390_expand_builtin): Replace arch12 with z14. ++ (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14. ++ (s390_get_sched_attrmask): Likewise. ++ (s390_get_unit_mask): Likewise. ++ * config/s390/s390.opt: Add z14 to processor_type enum. ++ ++2017-07-31 Jakub Jelinek ++ ++ PR sanitizer/81604 ++ * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't ++ change type to the element type, instead add eltype variable and ++ use it where we are interested in the element type. ++ ++2017-07-28 Peter Bergner ++ ++ Backport from mainline ++ 2017-07-28 Peter Bergner ++ ++ * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define. ++ (PPC_FEATURE2_SCV): Likewise. ++ * config/rs6000/rs6000.c (cpu_supports_info): Use them. ++ ++2017-07-28 David Edelsohn ++ ++ Backport from mainline ++ 2017-07-25 David Edelsohn ++ ++ * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote ++ character for AIX. ++ * dwarf2out.c (output_macinfo): Copy debug_line_section_label ++ to dl_section_ref. On AIX, append an expression to subtract ++ the size of the section length to dl_section_ref. ++ ++2017-07-28 Bin Cheng ++ ++ Backport from mainline r250496 ++ 2017-07-25 Bin Cheng ++ ++ PR target/81414 ++ * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac ++ instructions if no du chain is found. ++ ++2017-07-28 Sebastian Huber ++ ++ Backport from mainline ++ 2017-07-28 Sebastian Huber ++ ++ * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h. Add ++ rs6000/biarch64.h. ++ * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro. ++ (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. ++ (CRT_CALL_STATIC_FUNCTION): Likewise. ++ (ASM_DEFAULT_SPEC): New define. ++ (ASM_SPEC32): Likewise. ++ (ASM_SPEC64): Likewise. ++ (ASM_SPEC_COMMON): Likewise. ++ (ASM_SPEC): Likewise. ++ (INVALID_64BIT): Likewise. ++ (LINK_OS_DEFAULT_SPEC): Likewise. ++ (LINK_OS_SPEC32): Likewise. ++ (LINK_OS_SPEC64): Likewise. ++ (POWERPC_LINUX): Likewise. ++ (PTRDIFF_TYPE): Likewise. ++ (RESTORE_FP_PREFIX): Likewise. ++ (RESTORE_FP_SUFFIX): Likewise. ++ (SAVE_FP_PREFIX): Likewise. ++ (SAVE_FP_SUFFIX): Likewise. ++ (SIZE_TYPE): Likewise. ++ (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise. ++ (TARGET_64BIT): Likewise. ++ (TARGET_64BIT): Likewise. ++ (TARGET_AIX): Likewise. ++ (WCHAR_TYPE_SIZE): Likewise. ++ (WCHAR_TYPE): Undefine. ++ (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines. ++ (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC. ++ (CPP_OS_RTEMS_SPEC): Delete. ++ (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems. Add ++ asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and ++ link_os_spec64. ++ * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs. ++ ++2017-07-28 Sebastian Huber ++ ++ Backport from mainline ++ 2017-07-27 Sebastian Huber ++ ++ * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*). ++ * config/riscv/rtems.h: New file. ++ ++2017-07-27 Eric Botcazou ++ ++ * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag ++ earlier and only if MASK_FPU is set. Adjust formatting. ++ ++2017-07-27 Andreas Krebbel ++ ++ Backport from mainline ++ 2017-07-27 Andreas Krebbel ++ ++ PR target/81534 ++ * config/s390/s390.md ("*atomic_compare_and_swap_1") ++ ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"): ++ Change s_operand to memory_operand. ++ ++2017-07-27 Jakub Jelinek ++ ++ PR tree-optimization/81555 ++ PR tree-optimization/81556 ++ * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument, ++ if true, force CHANGED for the recursive invocation. ++ (reassociate_bb): Remember original length of ops array, pass ++ len != orig_len as NEXT_CHANGED in rewrite_expr_tree call. ++ ++2017-07-27 Martin Liska ++ ++ Backport from mainline ++ 2017-07-17 Martin Liska ++ ++ PR sanitizer/81302 ++ * opts.c (finish_options): Do not allow -fgnu-tm ++ w/ -fsanitize={kernel-,}address. Say sorry. ++ ++2017-07-27 Martin Liska ++ ++ Backport from mainline ++ 2017-07-26 Martin Liska ++ ++ PR sanitize/81186 ++ * function.c (expand_function_start): Make expansion of ++ nonlocal_goto_save_area after parm_birth_insn. ++ ++2017-07-27 Martin Liska ++ ++ Backport from mainline ++ 2017-06-30 Martin Liska ++ ++ PR sanitizer/81021 ++ * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN ++ before BUILT_IN_UNWIND_RESUME when ASAN is used. ++ ++2017-07-27 Martin Liska ++ ++ Backport from mainline ++ 2017-06-28 Martin Liska ++ ++ PR sanitizer/81224 ++ * asan.c (instrument_derefs): Bail out inner references ++ that are hard register variables. ++ ++2017-07-26 Sebastian Huber ++ ++ Backport from mainline ++ 2017-07-26 Sebastian Huber ++ ++ * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD. ++ (sparc_option_override): Honour MASK_FSMULD. ++ * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD. ++ * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD. ++ * config/sparc/sparc.opt (mfsmuld): New option. ++ * doc/invoke.texi (mfsmuld): Document option. ++ ++2017-07-26 Georg-Johann Lay ++ ++ Backport from 2017-07-25 trunk r250499. ++ ++ PR 81487 ++ * hsa-brig.c (brig_init): Use xasprintf instead of asprintf. ++ * gimple-pretty-print.c (dump_probability): Same. ++ * tree-ssa-structalias.c (alias_get_name): Same. ++ ++2017-07-26 Richard Biener ++ ++ Backport from mainline ++ 2017-06-18 Richard Biener ++ ++ PR tree-optimization/81410 ++ * tree-vect-stmts.c (vectorizable_load): Properly adjust for ++ the gap in the ! slp_perm SLP case after each group. ++ ++ 2017-07-25 Richard Biener ++ ++ PR tree-optimization/81455 ++ * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to ++ not walk in cycles when looking for guards. ++ ++ 2017-07-25 Richard Biener ++ ++ PR middle-end/81505 ++ * fold-const.c (fold_negate_const): TREE_OVERFLOW should be ++ sticky. ++ ++ 2017-06-28 Jakub Jelinek ++ ++ PR target/81175 ++ * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin ++ rather than def_builtin_pure for __builtin_ia32_gatherpf*. ++ ++ 2017-06-26 Richard Biener ++ ++ PR target/81175 ++ * config/i386/i386.c (ix86_init_mmx_sse_builtins): ++ Use def_builtin_pure for all gather builtins. ++ ++ 2017-06-21 Marc Glisse ++ ++ * config/i386/i386.c (struct builtin_isa): New field pure_p. ++ Reorder for compactness. ++ (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p. ++ (def_builtin_pure, def_builtin_pure2): New functions. ++ (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure. ++ ++2017-07-26 Sebastian Huber ++ ++ Backport from mainline ++ 2017-07-26 Sebastian Huber ++ ++ * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU ++ from all CPU target flags enable members. ++ ++2017-07-26 Sebastian Huber ++ ++ Backport from mainline ++ 2017-07-25 Sebastian Huber ++ ++ PR libgcc/61152 ++ * config/aarch64/rtems.h: Add GCC Runtime Library Exception. ++ Format changes. ++ * config/arm/rtems.h: Likewise. ++ * config/bfin/rtems.h: Likewise. ++ * config/i386/rtemself.h: Likewise. ++ * config/lm32/rtems.h: Likewise. ++ * config/m32c/rtems.h: Likewise. ++ * config/m68k/rtemself.h: Likewise. ++ * config/microblaze/rtems.h: Likewise. ++ * config/mips/rtems.h: Likewise. ++ * config/moxie/rtems.h: Likewise. ++ * config/nios2/rtems.h: Likewise. ++ * config/rs6000/rtems.h: Likewise. ++ * config/rtems.h: Likewise. ++ * config/sh/rtems.h: Likewise. ++ * config/sh/rtemself.h: Likewise. ++ * config/sparc/rtemself.h: Likewise. ++ ++2017-07-25 Bill Schmidt ++ ++ Backport from mainline ++ 2017-07-14 Bill Schmidt ++ ++ PR tree-optimization/81162 ++ * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't ++ replace a negate with an add. ++ ++2017-07-25 Georg-Johann Lay ++ ++ Backport from 2017-07-12 trunk r250151. ++ ++ PR target/81407 ++ * config/avr/avr.c (avr_encode_section_info) ++ [progmem && !TREE_READONLY]: Error if progmem object needs ++ constructing. ++ ++2017-07-25 Wilco Dijkstra ++ ++ PR target/79041 ++ * config/aarch64/aarch64.c (aarch64_classify_symbol): ++ Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals. ++ ++2017-07-25 Georg-Johann Lay ++ ++ Backport from trunk r247719. ++ ++ 2017-05-06 Richard Sandiford ++ ++ PR rtl-optimization/75964 ++ * simplify-rtx.c (simplify_const_relational_operation): Remove ++ invalid handling of comparisons of integer ABS. ++ ++2017-07-25 Bin Cheng ++ ++ Backport from 2017-07-20 trunk r250384. ++ ++ PR tree-optimization/81388 ++ Revert r238585: ++ 2016-07-21 Bin Cheng ++ ++ * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up ++ by removing computation of may_be_zero. ++ ++2017-07-23 Uros Bizjak ++ ++ PR target/80569 ++ * config/i386/i386.c (ix86_option_override_internal): Disable ++ BMI, BMI2 and TBM instructions for -m16. ++ ++2017-07-19 Michael Meissner ++ ++ Back port from trunk ++ 2017-07-12 Michael Meissner ++ ++ PR target/81193 ++ * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC ++ provides the hardware capability bits, define the macro ++ __BUILTIN_CPU_SUPPORTS__. ++ * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning ++ if GLIBC does not provide the hardware capability bits. Add a ++ gcc_unreachable call if the built-in cpu function is neither ++ __builtin_cpu_is nor __builtin_cpu_supports. ++ * doc/extend.texi (PowerPC built-in functions): Document that ++ GLIBC 2.23 or newer is needed by __builtin_cpu_is and ++ __builtin_cpu_supports. Document the macros defined by GCC if the ++ newer GLIBC is available. ++ ++2017-07-18 Uros Bizjak ++ ++ PR target/81471 ++ * config/i386/i386.md (rorx_immediate_operand): New mode attribute. ++ (*bmi2_rorx3_1): Use rorx_immediate_operand as ++ operand 2 predicate. ++ (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as ++ operand 2 predicate. ++ (ror,rol -> rorx splitters): Use const_int_operand as ++ operand 2 predicate. ++ ++2017-07-18 Tom de Vries ++ ++ backport from mainline: ++ PR target/81069 ++ 2017-07-17 Tom de Vries ++ ++ * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late ++ as possible. ++ ++2017-07-18 Georg-Johann Lay ++ ++ Backport from 2017-07-18 trunk r250301. ++ ++ PR target/81473 ++ * config/avr/avr.c (avr_optimize_casesi): Don't use ++ INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX. ++ ++2017-07-17 Jakub Jelinek ++ ++ PR tree-optimization/81428 ++ * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1 ++ can't be built for those types. ++ ++ PR tree-optimization/81365 ++ * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting ++ aggregate moves onto bb predecessor edges, make sure there are no ++ loads that could alias the lhs in between the start of bb and the ++ loads from *phi. ++ ++ Backported from mainline ++ 2017-06-30 Jakub Jelinek ++ ++ PR target/81225 ++ * config/i386/sse.md (vec_extract_lo_): For ++ V8FI, V16FI and VI8F_256 iterators, use instead ++ of nonimmediate_operand and instead of m for ++ the input operand. For V8FI iterator, always split if input is a MEM. ++ For V16FI and V8SF_256 iterators, don't test if both operands are MEM ++ if . For VI4F_256 iterator, use ++ instead of register_operand and instead of v for ++ the input operand. Make sure both operands aren't MEMs for if not ++ . ++ ++2017-07-17 Georg-Johann Lay ++ ++ Backport from 2017-07-17 trunk r250258. ++ ++ PR 80929 ++ * config/avr/avr.c (avr_mul_highpart_cost): New static function. ++ (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost. ++ [LSHIFTRT, outer_code = TRUNCATE]: Same. ++ ++2017-07-17 Sebastian Huber ++ ++ Backport from mainline ++ 2017-07-17 Sebastian Huber ++ ++ * gcc/config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add ++ conditional builtin define __FIX_LEON3FT_B2BST. ++ ++2017-07-17 Daniel Cederman ++ ++ Backport from mainline ++ 2017-07-17 Daniel Cederman ++ ++ * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace ++ MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc ++ with -mfix-ut700. ++ ++2017-07-16 Eric Botcazou ++ ++ PR rtl-optimization/81424 ++ * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg ++ to remove potential trapping from operands if -fnon-call-exceptions. ++ ++2017-07-16 Daniel Cederman ++ ++ * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back ++ to back store errata sensitive sequence from being generated. ++ (sqrtdf2_fix): Likewise. ++ ++2017-07-12 Georg-Johann Lay ++ ++ Backport from 2017-07-12 trunk r250156. ++ ++ PR target/79883 ++ * config/avr/avr.c (avr_set_current_function): In diagnostic ++ messages: Quote keywords and (parts of) identifiers. ++ [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or ++ "INTERRUPT". ++ ++2017-07-11 Daniel Cederman ++ ++ * config/sparc/sparc.opt (mfix-ut700): New option. ++ (mfix-gr712rc): Likewise. ++ (sparc_fix_b2bst): New variable. ++ * doc/invoke.texi (SPARC options): Document them. ++ (ARM options): Fix warnings. ++ * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP ++ instructions to prevent sequences that can trigger the store-store ++ errata for certain LEON3FT processors. ++ (pass_work_around_errata::gate): Also test sparc_fix_b2bst. ++ (sparc_option_override): Set sparc_fix_b2bst appropriately. ++ * config/sparc/sparc.md (fix_b2bst): New attribute. ++ (in_branch_delay): Prevent stores in delay slot if fix_b2bst. ++ ++2017-07-10 Uros Bizjak ++ ++ PR target/81375 ++ * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH. ++ (rcpps): Ditto. ++ (*rsqrtsf2_sse): Ditto. ++ (rsqrtsf2): Ditto. ++ (div3): Macroize insn from divdf3 and divsf3 ++ using MODEF mode iterator. ++ ++2017-07-07 Michael Meissner ++ ++ Backport from mainline ++ 2017-07-07 Michael Meissner ++ ++ PR target/81348 ++ * config/rs6000/rs6000.md (HI sign_extend splitter): Use the ++ correct operand in doing the split. ++ ++2017-07-07 Jose E. Marchesi ++ ++ * config/sparc/m8.md: New file. ++ * config/sparc/sparc.md: Include m8.md. ++ ++2017-07-07 Jose E. Marchesi ++ ++ * config/sparc/sparc.opt: New option -mvis4b. ++ * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B. ++ (sparc_option_override): Handle VIS4B. ++ (enum sparc_builtins): Define ++ SPARC_BUILTIN_DICTUNPACK{8,16,32}, ++ SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL, ++ SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL, ++ SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and ++ SPARC_BUILTIN_FPCMPUR{8,16,32}SHL. ++ (check_constant_argument): New function. ++ (sparc_vis_init_builtins): Define builtins ++ __builtin_vis_dictunpack{8,16,32}, ++ __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl, ++ __builtin_vis_fpcmpu{le,gt}{8,16,32}shl, ++ __builtin_vis_fpcmpde{8,16,32}shl and ++ __builtin_vis_fpcmpur{8,16,32}shl. ++ (sparc_expand_builtin): Check that the constant operands to ++ __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed ++ constant and in range. ++ * config/sparc/sparc-c.c (sparc_target_macros): Handle ++ TARGET_VIS4B. ++ * config/sparc/sparc.h (SPARC_IMM2_P): Define. ++ (SPARC_IMM5_P): Likewise. ++ * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b". ++ (enabled): Handle vis4b. ++ (UNSPEC_DICTUNPACK): New unspec. ++ (UNSPEC_FPCMPSHL): Likewise. ++ (UNSPEC_FPUCMPSHL): Likewise. ++ (UNSPEC_FPCMPDESHL): Likewise. ++ (UNSPEC_FPCMPURSHL): Likewise. ++ (cpu_feature): New CPU feature `vis4b'. ++ (dictunpack{8,16,32}): New insns. ++ (FPCSMODE): New mode iterator. ++ (fpcscond): New code iterator. ++ (fpcsucond): Likewise. ++ (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns. ++ (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise. ++ (fpcmpde{8,16,32}{si,di}shl): Likewise. ++ (fpcmpur{8,16,32}{si,di}shl): Likewise. ++ * config/sparc/constraints.md: Define constraints `q' for unsigned ++ 2-bit integer constants and `t' for unsigned 5-bit integer ++ constants. ++ * config/sparc/predicates.md (imm5_operand_dictunpack8): New ++ predicate. ++ (imm5_operand_dictunpack16): Likewise. ++ (imm5_operand_dictunpack32): Likewise. ++ (imm2_operand): Likewise. ++ * doc/invoke.texi (SPARC Options): Document -mvis4b. ++ * doc/extend.texi (SPARC VIS Built-in Functions): Document the ++ ditunpack* and fpcmp*shl builtins. ++ ++2017-07-07 Jose E. Marchesi ++ ++ * config.gcc: Handle m8 in --with-{cpu,tune} options. ++ * config.in: Add HAVE_AS_SPARC6 define. ++ * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC ++ M8. ++ * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for ++ TARGET_CPU_m8. ++ (ASM_CPU32_DEFAUILT_SPEC): Likewise. ++ (CPP_CPU_SPEC): Handle m8. ++ (ASM_CPU_SPEC): Likewise. ++ * config/sparc/sparc-opts.h (enum processor_type): Add ++ PROCESSOR_M8. ++ * config/sparc/sparc.c (m8_costs): New struct. ++ (sparc_option_override): Handle TARGET_CPU_m8. ++ (sparc32_initialize_trampoline): Likewise. ++ (sparc64_initialize_trampoline): Likewise. ++ (sparc_issue_rate): Likewise. ++ (sparc_register_move_cost): Likewise. ++ * config/sparc/sparc.h (TARGET_CPU_m8): Define. ++ (CPP_CPU64_DEFAULT_SPEC): Define for M8. ++ (ASM_CPU64_DEFAULT_SPEC): Likewise. ++ (CPP_CPU_SPEC): Handle M8. ++ (ASM_CPU_SPEC): Likewise. ++ (AS_M8_FLAG): Define. ++ * config/sparc/sparc.md: Add m8 to the cpu attribute. ++ * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets. ++ * configure.ac (HAVE_AS_SPARC6): Check for assembler support for ++ M8 instructions. ++ * configure: Regenerate. ++ * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and ++ -mtune=m8. ++ ++2017-07-07 Jose E. Marchesi ++ ++ * config/sparc/niagara7.md: Rework the DFA scheduler to use insn ++ subtypes. ++ * config/sparc/sparc.md: Remove the `v3pipe' insn attribute. ++ ("*movdi_insn_sp32"): Do not set v3pipe. ++ ("*movsi_insn"): Likewise. ++ ("*movdi_insn_sp64"): Likewise. ++ ("*movsf_insn"): Likewise. ++ ("*movdf_insn_sp32"): Likewise. ++ ("*movdf_insn_sp64"): Likewise. ++ ("*zero_extendsidi2_insn_sp64"): Likewise. ++ ("*sign_extendsidi2_insn"): Likewise. ++ ("*mov_insn"): Likewise. ++ ("*mov_insn_sp64"): Likewise. ++ ("*mov_insn_sp32"): Likewise. ++ ("3"): Likewise. ++ ("3"): Likewise. ++ ("*not_3"): Likewise. ++ ("*nand_vis"): Likewise. ++ ("*_not1_vis"): Likewise. ++ ("*_not2_vis"): Likewise. ++ ("one_cmpl2"): Likewise. ++ ("faligndata_vis"): Likewise. ++ ("alignaddrsi_vis"): Likewise. ++ ("alignaddrdi_vis"): Likweise. ++ ("alignaddrlsi_vis"): Likewise. ++ ("alignaddrldi_vis"): Likewise. ++ ("fcmp_vis"): Likewise. ++ ("bmaskdi_vis"): Likewise. ++ ("bmasksi_vis"): Likewise. ++ ("bshuffle_vis"): Likewise. ++ ("cmask8_vis"): Likewise. ++ ("cmask16_vis"): Likewise. ++ ("cmask32_vis"): Likewise. ++ ("pdistn_vis"): Likewise. ++ ("3"): Likewise. ++ ++2017-07-07 Jose E. Marchesi ++ ++ * config/sparc/sparc.md ("subtype"): New insn attribute. ++ ("*wrgsr_sp64"): Set insn subtype. ++ ("*rdgsr_sp64"): Likewise. ++ ("alignaddrsi_vis"): Likewise. ++ ("alignaddrdi_vis"): Likewise. ++ ("alignaddrlsi_vis"): Likewise. ++ ("alignaddrldi_vis"): Likewise. ++ ("3"): Likewise. ++ ("fexpand_vis"): Likewise. ++ ("fpmerge_vis"): Likewise. ++ ("faligndata_vis"): Likewise. ++ ("bshuffle_vis"): Likewise. ++ ("cmask8_vis"): Likewise. ++ ("cmask16_vis"): Likewise. ++ ("cmask32_vis"): Likewise. ++ ("fchksm16_vis"): Likewise. ++ ("v3"): Likewise. ++ ("fmean16_vis"): Likewise. ++ ("fp64_vis"): Likewise. ++ ("v8qi3"): Likewise. ++ ("3"): Likewise. ++ ("3"): Likewise. ++ ("3"): Likewise. ++ ("v8qi3"): Likewise. ++ ("3"): Likewise. ++ ("*movqi_insn"): Likewise. ++ ("*movhi_insn"): Likewise. ++ ("*movsi_insn"): Likewise. ++ ("movsi_pic_gotdata_op"): Likewise. ++ ("*movdi_insn_sp32"): Likewise. ++ ("*movdi_insn_sp64"): Likewise. ++ ("movdi_pic_gotdata_op"): Likewise. ++ ("*movsf_insn"): Likewise. ++ ("*movdf_insn_sp32"): Likewise. ++ ("*movdf_insn_sp64"): Likewise. ++ ("*zero_extendhisi2_insn"): Likewise. ++ ("*zero_extendqihi2_insn"): Likewise. ++ ("*zero_extendqisi2_insn"): Likewise. ++ ("*zero_extendqidi2_insn"): Likewise. ++ ("*zero_extendhidi2_insn"): Likewise. ++ ("*zero_extendsidi2_insn_sp64"): Likewise. ++ ("ldfsr"): Likewise. ++ ("prefetch_64"): Likewise. ++ ("prefetch_32"): Likewise. ++ ("tie_ld32"): Likewise. ++ ("tie_ld64"): Likewise. ++ ("*tldo_ldub_sp32"): Likewise. ++ ("*tldo_ldub1_sp32"): Likewise. ++ ("*tldo_ldub2_sp32"): Likewise. ++ ("*tldo_ldub_sp64"): Likewise. ++ ("*tldo_ldub1_sp64"): Likewise. ++ ("*tldo_ldub2_sp64"): Likewise. ++ ("*tldo_ldub3_sp64"): Likewise. ++ ("*tldo_lduh_sp32"): Likewise. ++ ("*tldo_lduh1_sp32"): Likewise. ++ ("*tldo_lduh_sp64"): Likewise. ++ ("*tldo_lduh1_sp64"): Likewise. ++ ("*tldo_lduh2_sp64"): Likewise. ++ ("*tldo_lduw_sp32"): Likewise. ++ ("*tldo_lduw_sp64"): Likewise. ++ ("*tldo_lduw1_sp64"): Likewise. ++ ("*tldo_ldx_sp64"): Likewise. ++ ("*mov_insn"): Likewise. ++ ("*mov_insn_sp64"): Likewise. ++ ("*mov_insn_sp32"): Likewise. ++ ++2017-07-07 Jose E. Marchesi ++ ++ * config/sparc/sparc.md ("type"): New insn type viscmp. ++ ("fcmp_vis"): Set insn type to ++ viscmp. ++ ("fpcmp8_vis"): Likewise. ++ ("fucmp8_vis"): Likewise. ++ ("fpcmpu_vis"): Likewise. ++ * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle ++ viscmp. ++ ("n7_vis_logical_11cycle"): Likewise. ++ * config/sparc/niagara4.md ("n4_vis_logical"): Likewise. ++ * config/sparc/niagara2.md ("niag3_vis": Likewise. ++ * config/sparc/niagara.md ("niag_vis"): Likewise. ++ * config/sparc/ultra3.md ("us3_fga"): Likewise. ++ * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise. ++ ++2017-07-07 Jose E. Marchesi ++ ++ * config/sparc/sparc.md: New instruction type `bmask'. ++ (bmaskdi_vis): Use the `bmask' type. ++ (bmasksi_vis): Likewise. ++ * config/sparc/ultra3.md (us3_array): Likewise. ++ * config/sparc/niagara7.md (n7_array): Likewise. ++ * config/sparc/niagara4.md (n4_array): Likewise. ++ * config/sparc/niagara2.md (niag2_vis): Likewise. ++ (niag3_vis): Likewise. ++ * config/sparc/niagara.md (niag_vis): Likewise. ++ ++2017-07-05 Georg-Johann Lay ++ ++ Backport from 2017-07-05 trunk r249995. ++ ++ PR target/81305 ++ * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]: ++ Don't depend on "optimize > 0". ++ (out_movhi_r_mr, out_movqi_mr_r): Same. ++ (out_movhi_mr_r, out_movqi_r_mr): Same. ++ (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for ++ io_address_operand on "optimize > 0". ++ ++2017-07-04 Uros Bizjak ++ ++ PR target/81300 ++ * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes): ++ Require dead FLAGS_REG at the beginning of a peephole. ++ ++2017-07-04 Uros Bizjak ++ ++ PR target/81294 ++ * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y ++ arguments in the call to __builtin_ia32_sbb_u32. ++ (_subborrow_u64): Swap _X and _Y arguments in the call to ++ __builtin_ia32_sbb_u64. ++ ++2017-07-03 Segher Boessenkool ++ ++ Backport from trunk: ++ ++ 2017-06-15 Segher Boessenkool ++ ++ * config/rs6000/rs6000.md (add3): Use reg_or_subregno instead ++ of REGNO. ++ ++2017-07-03 Tom de Vries ++ ++ backport from mainline: ++ PR tree-optimization/81192 ++ 2017-07-03 Tom de Vries ++ ++ * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle ++ BB_SAME_SUCC (bb) == NULL. ++ ++2017-06-29 Michael Meissner ++ ++ Backport from mainline ++ 2017-06-23 Michael Meissner ++ ++ PR target/80510 ++ * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in ++ 32-bit, since indexed is not valid for DImode. ++ (mov_hardfloat32): Reorder ISA 2.07 load/stores before ISA ++ 3.0 d-form load/stores to be the same as mov_hardfloat64. ++ (define_peephole2 for Altivec d-form load): Add 32-bit support. ++ (define_peephole2 for Altivec d-form store): Likewise. ++ ++ Backport from mainline ++ 2017-06-20 Michael Meissner ++ ++ PR target/79799 ++ * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support ++ for doing vector set of SFmode on ISA 3.0. ++ * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise. ++ (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF ++ element. ++ (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a ++ SFmode value into a V4SF variable that was extracted from another ++ V4SF variable without converting the element to double precision ++ and back to single precision vector format. ++ (vsx_insert_extract_v4sf_p9_2): Likewise. ++ ++2017-06-29 Richard Biener ++ ++ Backport from mainline ++ 2017-06-19 Richard Biener ++ ++ PR ipa/81112 ++ * ipa-prop.c (find_constructor_constant_at_offset): Handle ++ RANGE_EXPR conservatively. ++ ++2017-06-28 Richard Biener ++ ++ Backport from mainline ++ 2017-06-09 Richard Biener ++ ++ PR middle-end/81007 ++ * ipa-polymorphic-call.c ++ (ipa_polymorphic_call_context::restrict_to_inner_class): ++ Skip FIELD_DECLs with error_mark_node type. ++ * passes.def (all_lowering_passes): Run pass_build_cgraph_edges ++ last again. ++ ++ 2017-06-14 Richard Biener ++ ++ PR tree-optimization/81083 ++ * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals ++ as values. ++ ++2017-06-27 Segher Boessenkool ++ ++ Backports from trunk: ++ ++ 2017-05-17 Segher Boessenkool ++ PR middle-end/80692 ++ * real.c (do_compare): Give decimal_do_compare preference over ++ comparing just the signs. ++ ++ 2017-05-31 Segher Boessenkool ++ PR target/80618 ++ * config/rs6000/vector.md (*vector_uneq): Write the nor in the ++ splitter result in the canonical way. ++ ++ 2017-06-09 Segher Boessenkool ++ PR target/80966 ++ * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that ++ gen_add3_insn did not fail. ++ * config/rs6000/rs6000.md (add3): If asked to add a constant to ++ r0, construct that number in a temporary reg and add that reg to r0. ++ If asked to put the result in r0 as well, fail. ++ ++ 2017-06-23 Segher Boessenkool ++ PR middle-end/80902 ++ * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after ++ a call, force the call to not be a tail call. ++ ++2017-06-27 Jakub Jelinek ++ ++ PR sanitizer/81209 ++ * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var. ++ ++ PR middle-end/81207 ++ * gimple-fold.c (replace_call_with_call_and_fold): Handle ++ gimple_vuse copying separately from gimple_vdef copying. ++ ++2017-06-24 Jim Wilson ++ ++ * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to ++ here. ++ * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here. ++ * config/arm/arm-cpu-cdata.h: Regenerate. ++ * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise. ++ * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise. ++ * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries. ++ * config/arm/arm.c (arm_qdf24xx_tune): Delete. ++ * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx ++ support. ++ * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx ++ support. ++ * config/arm/t-rmprofile: Likewise. ++ * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support. ++ ++2017-06-24 Marek Polacek ++ ++ Backport from mainline ++ 2017-05-04 Marek Polacek ++ ++ PR tree-optimization/80612 ++ * calls.c (get_size_range): Check for INTEGRAL_TYPE_P. ++ ++2017-06-23 Thomas Preud'homme ++ ++ Backport from mainline ++ 2017-05-04 Prakhar Bahuguna ++ ++ * config/arm/arm-builtins.c (arm_init_builtins): Rename ++ __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename ++ __builtin_arm_stfscr to __builtin_arm_set_fpscr. ++ ++2017-06-23 Jonathan Wakely ++ ++ PR c++/81187 ++ * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from ++ -Wnoexcept. ++ ++2017-06-22 Martin Liska ++ ++ Backport from mainline ++ 2017-06-19 Martin Liska ++ ++ PR sanitizer/80879 ++ * gimplify.c (gimplify_switch_expr): ++ Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST. ++ ++2017-06-22 Martin Liska ++ ++ Backport from mainline ++ 2017-05-31 Martin Liska ++ ++ PR target/79155 ++ * config/i386/cpuid.h: Fix typo in a comment in cpuid.h. ++ ++2017-06-22 Martin Liska ++ ++ Backport from mainline ++ 2017-05-30 Martin Liska ++ ++ PR other/80909 ++ * auto-profile.c (get_function_decl_from_block): Fix ++ parenthesis. ++ ++2017-06-22 Martin Liska ++ ++ Backport from mainline ++ 2017-05-26 Martin Liska ++ ++ PR ipa/80663 ++ * params.def: Bound partial-inlining-entry-probability param. ++ ++2017-06-22 Martin Liska ++ ++ Backport from mainline ++ 2017-05-16 Martin Liska ++ ++ PR ipa/79849. ++ PR ipa/79850. ++ * ipa-devirt.c (warn_types_mismatch): Fix typo. ++ (odr_types_equivalent_p): Likewise. ++ ++2017-06-22 Martin Liska ++ ++ Backport from mainline ++ 2017-05-15 Martin Liska ++ ++ PR driver/31468 ++ * gcc.c (process_command): Do not allow empty argument of -o option. ++ ++2017-06-22 Martin Liska ++ ++ Backport from mainline ++ 2017-05-02 Martin Liska ++ ++ * doc/gcov.texi: Add missing preposition. ++ * gcov.c (function_info::function_info): Properly fill up ++ all member variables. ++ ++2017-06-22 Martin Liska ++ ++ Backport from mainline ++ 2017-05-02 Martin Liska ++ ++ PR other/80589 ++ * common.opt: Fix typo. ++ * doc/invoke.texi: Likewise. ++ ++2017-06-22 Martin Liska ++ ++ Backport from mainline ++ 2017-04-28 Martin Liska ++ ++ * doc/gcov.texi: Enhance documentation of gcov. ++ ++2017-06-22 Martin Liska ++ ++ Backport from mainline ++ 2017-04-28 Martin Liska ++ ++ * doc/gcov.texi: Sort options in alphabetic order. ++ * doc/gcov-dump.texi: Likewise. ++ * doc/gcov-tool.texi: Likewise. ++ * gcov.c (print_usage): Likewise. ++ * gcov-dump.c (print_usage): Likewise. ++ * gcov-tool.c (print_merge_usage_message): Likewise. ++ (print_rewrite_usage_message): Likewise. ++ (print_overlap_usage_message): Likewise. ++ ++2017-06-22 Martin Liska ++ ++ Backport from mainline ++ 2017-04-28 Martin Liska ++ ++ PR gcov-profile/53915 ++ * gcov.c (format_gcov): Print 'NAN %' when top > bottom. ++ ++2017-06-22 Martin Liska ++ ++ Backport from mainline ++ 2017-04-28 Martin Liska ++ ++ PR driver/56469 ++ * coverage.c (coverage_remove_note_file): New function. ++ * coverage.h: Declare the function. ++ * toplev.c (finalize): Clean if an error has been seen. ++ ++2017-06-21 Jakub Jelinek ++ ++ PR target/81151 ++ * config/i386/sse.md (round2): Renumber match_dup and ++ operands indexes to avoid gap between operands and match_dups. ++ ++ PR c++/81130 ++ * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types ++ with ctors/dtors if GOVD_SHARED is set. ++ ++ Backported from mainline ++ 2017-06-20 Jakub Jelinek ++ ++ PR target/81121 ++ * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} ++ splitter): Require TARGET_SSE2 in the condition. ++ ++ PR sanitizer/81125 ++ * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser ++ by removing enum keyword. ++ (ubsan_type_descriptor): Likewise. Formatting fix. ++ ++ 2017-06-19 Jakub Jelinek ++ ++ PR sanitizer/81125 ++ * ubsan.h (enum ubsan_encode_value_phase): New. ++ (ubsan_encode_value): Change second argument to ++ enum ubsan_encode_value_phase with default value of ++ UBSAN_ENCODE_VALUE_GENERIC. ++ * ubsan.c (ubsan_encode_value): Change second argument to ++ enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P, ++ adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just ++ create_tmp_var_raw instead of create_tmp_var and use a ++ TARGET_EXPR. ++ (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin, ++ instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust ++ ubsan_encode_value callers. ++ ++ PR sanitizer/81111 ++ * ubsan.c (ubsan_encode_value): If current_function_decl is NULL, ++ use create_tmp_var_raw instead of create_tmp_var, mark it addressable ++ just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR. ++ ++2017-06-20 James Greenhalgh ++ ++ Backport from Mainline ++ * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected ++ feature string. ++ ++2017-06-20 Andreas Schwab ++ ++ PR target/80970 ++ * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d" ++ instead of "+d". ++ ++2017-06-19 James Greenhalgh ++ ++ Backport from mainline ++ 2017-06-19 James Greenhalgh ++ ++ PR target/71778 ++ * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET ++ if given a non-constant argument for an intrinsic which requires a ++ constant. ++ ++2017-06-19 Alexander Monakov ++ ++ * doc/invoke.texi (mcx16): Rewrite. ++ ++2017-06-15 Eric Botcazou ++ ++ PR rtl-optimization/80474 ++ * reorg.c (update_block): Do not ignore instructions in a delay slot. ++ ++2017-06-14 Eric Botcazou ++ ++ * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3. ++ (MASK_FEATURES): New macro. ++ * config/sparc/sparc.c (sparc_option_override): Remove the special ++ handling of -mfpu and generalize it to all MASK_FEATURES switches. ++ ++2017-06-14 Eric Botcazou ++ ++ * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry. ++ ++2017-06-12 David S. Miller ++ ++ PR target/80968 ++ * config/sparc/sparc.md (return expander): Emit frame blockage if ++ function uses alloca. ++ ++2017-06-08 Uros Bizjak ++ ++ PR target/81015 ++ Revert: ++ 2016-12-14 Uros Bizjak ++ ++ PR target/59874 ++ * config/i386/i386.md (*ctzhi2): New insn_and_split pattern. ++ (*clzhi2): Ditto. ++ ++2017-06-08 David Edelsohn ++ ++ Backport from mainline ++ 2017-06-02 David Edelsohn ++ ++ * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New. ++ (dl_section_ref): New. ++ (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref. ++ On AIX, append an expression to subtract the size of the ++ section length to dl_section_ref. ++ ++2017-06-07 Richard Biener ++ ++ Backport from mainline ++ 2017-05-02 Richard Biener ++ ++ PR tree-optimization/80549 ++ * tree-cfgcleanup.c (mfb_keep_latches): New helper. ++ (cleanup_tree_cfg_noloop): Create forwarders to known loop ++ headers if they do not have a preheader. ++ ++ 2017-05-26 Richard Biener ++ ++ PR tree-optimization/80842 ++ * tree-ssa-ccp.c (set_lattice_value): Always meet with the old ++ value. ++ ++ 2017-05-31 Richard Biener ++ ++ PR tree-optimization/80906 ++ * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get ++ and pass through iv_map. ++ (copy_bb_and_scalar_dependences): Adjust. ++ (translate_pending_phi_nodes): Likewise. ++ (copy_loop_close_phi_args): Handle code-generating IVs instead ++ of ICEing. ++ ++ 2017-05-11 Richard Biener ++ ++ PR tree-optimization/80705 ++ * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED ++ bases are not vectorizable. ++ ++2017-06-06 Michael Meissner ++ ++ Back port from mainline ++ 2017-05-19 Michael Meissner ++ ++ PR target/80718 ++ * config/rs6000/vsx.md (vsx_splat_, VSX_D iterator): Prefer ++ VSX registers over GPRs, particularly on ISA 2.07 which does not ++ have the MTVSRDD instruction. ++ ++2017-06-06 David S. Miller ++ ++ PR target/80968 ++ * config/sparc/sparc.c (sparc_expand_prologue): Emit frame ++ blockage if function uses alloca. ++ ++2017-06-05 Volker Reichelt ++ ++ * doc/invoke.texi (-Wduplicated-branches): Add to warning list. ++ ++2017-06-02 Prakhar Bahuguna ++ ++ Backport from mainline ++ 2017-05-05 Andre Vieira ++ Prakhar Bahuguna ++ ++ PR target/71607 ++ * config/arm/arm.md (use_literal_pool): Remove. ++ (64-bit immediate split): No longer takes cost into consideration ++ if arm_disable_literal_pool is enabled. ++ * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is ++ used when arm_disable_literal_pool is enabled. ++ (arm_max_const_double_inline_cost): Remove use of ++ arm_disable_literal_pool. ++ (push_minipool_fix): Add assert. ++ (arm_reorg): Add return if arm_disable_literal_pool is enabled. ++ * config/arm/vfp.md (no_literal_pool_df_immediate): New. ++ (no_literal_pool_sf_immediate): New. ++ ++2017-06-02 Jakub Jelinek ++ ++ PR rtl-optimization/80903 ++ * loop-doloop.c (add_test): Unshare sequence. ++ ++2017-05-31 Martin Jambor ++ ++ Backport from mainline ++ 2017-04-24 Martin Jambor ++ ++ PR tree-optimization/80293 ++ * tree-sra.c (scalarizable_type_p): New parameter const_decl, make ++ char arrays not totally scalarizable if it is false. ++ (analyze_all_variable_accesses): Pass correct value in the new ++ parameter. Add a statistics counter. ++ ++2017-05-30 Max Filippov ++ ++ Backport from mainline ++ 2017-05-29 Max Filippov ++ ++ * config/xtensa/xtensa.c (xtensa_emit_call): Use ++ HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string. ++ (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld ++ format string. ++ ++2017-05-29 Eric Botcazou ++ ++ * doc/install.texi (Options specification): Restore entry of ++ --enable-sjlj-exceptions. ++ ++2017-05-29 Andreas Krebbel ++ ++ Backport from mainline ++ 2017-05-24 Andreas Krebbel ++ ++ PR target/80725 ++ * config/s390/s390.c (s390_check_qrst_address): Check incoming ++ address against address_operand predicate. ++ * config/s390/s390.md ("*indirect_jump"): Swap alternatives. ++ ++2017-05-28 Uros Bizjak ++ ++ Backport from mainline ++ 2017-05-23 Uros Bizjak ++ ++ * config/i386/i386.md (*movdi_internal): Remove SSE4 ++ alternative 18 (?r, *v). Update insn attributes. ++ (*movsi_internal): Remove SSE4 alternative 13 (?r, *v). ++ Update insn attributes. ++ (*zero_extendsidi2): Remove SSE4 alternative (?r, *x). ++ Update insn attributes. ++ * config/i386/sse.md (vec_extract_0): Remove SSE4 ++ alternative 1 (r, v). Remove isa attribute. ++ * config/i386/i386.c (dimode_scalar_chain::make_vector_copies): ++ Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC ++ and !TARGET_INTER_UNIT_MOVES_TO_VEC targets. ++ ++ 2017-05-16 Uros Bizjak ++ ++ * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative ++ to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r) ++ and (?*y,m). Update insn attributes. ++ ++2017-05-26 Sheldon Lobo ++ ++ Backported from mainline ++ 2017-05-24 Sheldon Lobo ++ ++ * config/sparc/sparc.md (length): Return the correct value for -mflat ++ sibcalls to match output_sibcall. ++ ++2017-05-26 Marek Polacek ++ ++ Backported from mainline ++ 2017-05-26 Marek Polacek ++ ++ PR sanitizer/80875 ++ * fold-const.c (fold_binary_loc) : Check if OP1 ++ can be negated. ++ ++2017-05-26 Jakub Jelinek ++ ++ Backported from mainline ++ 2017-05-22 Jakub Jelinek ++ ++ PR middle-end/80809 ++ * omp-low.c (finish_taskreg_remap): New function. ++ (finish_taskreg_scan): If unit size of ctx->record_type ++ is non-constant, unshare the size expression and replace ++ decls in it with possible outer var refs. ++ ++ PR middle-end/80809 ++ * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use ++ GOVD_SHARED rather than GOVD_PRIVATE with it. ++ (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect ++ GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE. ++ ++ PR middle-end/80853 ++ * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE ++ as last argument to build_outer_var_ref for pointer bases of array ++ section reductions. ++ ++2017-05-25 Michael Meissner ++ ++ Backport from trunk ++ 2017-05-18 Michael Meissner ++ ++ PR target/80510 ++ * config/rs6000/predicates.md (simple_offsettable_mem_operand): ++ New predicate. ++ ++ * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator. ++ (define_peephole2 for Altivec d-form load): Add peepholes to catch ++ cases where the register allocator uses a move and an offsettable ++ memory operation to/from a FPR register on ISA 2.06/2.07. ++ (define_peephole2 for Altivec d-form store): Likewise. ++ ++ Backport from trunk ++ 2017-05-09 Michael Meissner ++ ++ PR target/68163 ++ * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that ++ are now unused after splitting mov{sf,sd}_hardfloat. ++ (f32_lr2): Likewise. ++ (f32_lm): Likewise. ++ (f32_lm2): Likewise. ++ (f32_li): Likewise. ++ (f32_li2): Likewise. ++ (f32_lv): Likewise. ++ (f32_sr): Likewise. ++ (f32_sr2): Likewise. ++ (f32_sm): Likewise. ++ (f32_sm2): Likewise. ++ (f32_si): Likewise. ++ (f32_si2): Likewise. ++ (f32_sv): Likewise. ++ (f32_dm): Likewise. ++ (f32_vsx): Likewise. ++ (f32_av): Likewise. ++ (mov_hardfloat): Split into separate movsf and movsd pieces. ++ For movsf, order stores so the VSX stores occur before the GPR ++ store which encourages the register allocator to use a traditional ++ FPR instead of a GPR. For movsd, order the stores so that the GPR ++ store comes before the VSX stores to allow the power6 to work. ++ This is due to the power6 not having a 32-bit integer store ++ instruction from a FPR. ++ (movsf_hardfloat): Likewise. ++ (movsd_hardfloat): Likewise. ++ ++2017-05-25 Wilco Dijkstra ++ ++ Backport from mainlin ++ PR rtl-optimization/80754 ++ * lra-remat.c (do_remat): Add overlap checks for dst_regno. ++ ++2017-05-25 Wilco Dijkstra ++ ++ Backport from mainline ++ PR target/80671 ++ * config/aarch64/cortex-a57-fma-steering.c (merge_forest): ++ Move member access before delete. ++ ++2017-05-23 Sheldon Lobo ++ ++ Backport from mainline ++ 2017-05-18 Sheldon Lobo ++ ++ * config/sparc/sparc.c (sparc_option_override): Set function ++ alignment for -mcpu=niagara7 to 64 to match the I$ line. ++ * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch ++ latency to 1. ++ * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch ++ latency to 2. ++ * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo. ++ ++2017-05-19 Uros Bizjak ++ ++ Backport from mainline ++ 2017-05-18 Uros Bizjak ++ ++ PR target/80799 ++ * config/i386/mmx.md (*mov_internal): Enable ++ alternatives 11, 12, 13 and 14 also for 32bit targets. ++ Remove alternatives 15, 16, 17 and 18. ++ * config/i386/sse.md (vec_concatv2di): Change ++ alternative (!x, *y) to (x, ?!*Yn). ++ ++2017-05-14 Uros Bizjak ++ ++ Backport from mainline ++ 2017-05-11 Uros Bizjak ++ ++ PR target/80706 ++ * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec. ++ (UNSPEC_STX_ATOMIC): Ditto. ++ (loaddi_via_sse): New insn. ++ (storedi_via_sse): Ditto. ++ (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse. ++ Update corresponding peephole2 patterns. ++ (atomic_storedi_fpu): Ditto. ++ ++2017-05-13 Bill Schmidt ++ ++ Backport from mainline ++ 2017-05-05 Bill Schmidt ++ ++ * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var. ++ (rs6000_init_cost): Initialize rs6000_vect_nonmem. ++ (rs6000_add_stmt_cost): Update rs6000_vect_nonmem. ++ (rs6000_finish_cost): Avoid vectorizing simple copy loops with ++ VF=2 that require versioning. ++ ++2017-05-12 Bill Schmidt ++ ++ Backport from mainline ++ 2017-05-10 Bill Schmidt ++ ++ * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8 ++ built-ins for vec_xl and vec_xst with short and char pointer ++ arguments. ++ ++2017-05-10 John David Anglin ++ ++ PR target/80090 ++ * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF, ++ handle calling assemble_external ourself. ++ ++ PR target/79027 ++ * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from ++ modes with zero size. Enhance comment. ++ ++2017-05-09 Michael Meissner ++ ++ Back port from mainline ++ 2017-05-05 Michael Meissner ++ ++ PR target/79038 ++ PR target/79202 ++ PR target/79203 ++ * config/rs6000/rs6000.md (u code attribute): Add FIX and ++ UNSIGNED_FIX. ++ (extendsi2): Add support for doing sign extension via ++ VUPKHSW and XXPERMDI if the value is in Altivec registers and we ++ don't have ISA 3.0 instructions. ++ (extendsi2 splitter): Likewise. ++ (fix_truncsi2): If we are at ISA 2.07 (VSX small integer), ++ generate the normal insns since SImode can now go in vector ++ registers. Disallow the special UNSPECs needed for previous ++ machines to hide SImode being used. Add new insns ++ fctiw{,w}__smallint if SImode can go in vector registers. ++ (fix_truncsi2_stfiwx): Likewise. ++ (fix_truncsi2_internal): Likewise. ++ (fixuns_truncsi2): Likewise. ++ (fixuns_truncsi2_stfiwx): Likewise. ++ (fctiwz__smallint): Likewise. ++ (fctiwz__mem): New combiner pattern to prevent conversion ++ of floating point to 32-bit integer from doing a direct move to ++ the GPR registers to do a store. ++ (fctiwz_): Break long line. ++ ++2017-05-08 Tamar Christina ++ ++ PR middle-end/79665 ++ * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR, ++ CEIL_MOD_EXPR, ROUND_MOD_EXPR cases. ++ ++2017-05-03 Jan Beulich ++ ++ Backport from mainline ++ 2017-05-01 Jan Beulich ++ ++ * config/i386/sse.md (xop_vpermil23): Do not allow operand ++ swapping, add (x,x,m,x,n) alternative. ++ ++2017-05-03 Richard Biener ++ ++ Backport from mainline ++ 2017-04-20 Richard Biener ++ ++ PR tree-optimization/80453 ++ * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members. ++ * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs ++ from the conditions. ++ (vn_phi_eq): Pass them down. ++ (vn_phi_lookup): Record them. ++ (vn_phi_insert): Likewise. ++ ++ 2017-04-25 Richard Biener ++ ++ PR tree-optimization/80492 ++ * alias.c (compare_base_decls): Handle registers with asm ++ specification conservatively. ++ ++ 2017-04-27 Richard Biener ++ ++ PR middle-end/80539 ++ * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not ++ being in loop-closed SSA form conservatively. ++ (chrec_fold_multiply_poly_poly): Likewise. ++ ++2017-05-02 Uros Bizjak ++ ++ Backport from mainline ++ 2017-05-01 Uros Bizjak ++ ++ PR target/68491 ++ * config/i386/cpuid.h (__get_cpuid): Always return 0 when ++ __get_cpuid_max returns 0. ++ (__get_cpuid_count): Ditto. ++ ++2017-05-02 Jakub Jelinek ++ ++ Backported from mainline ++ 2017-04-25 Jakub Jelinek ++ ++ * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the ++ environment. ++ + 2017-05-02 Release Manager + + * GCC 7.1.0 released. +@@ -110,9 +1660,9 @@ + Backport from mainline + 2017-04-25 Andreas Krebbel + +- PR target/80464 +- * config/s390/vector.md: Split MEM->GPR vector moves for +- non-s_operand addresses. ++ PR target/80464 ++ * config/s390/vector.md: Split MEM->GPR vector moves for ++ non-s_operand addresses. + + 2017-04-25 Andreas Krebbel + +@@ -119,11 +1669,11 @@ + Backport from mainline + 2017-04-25 Andreas Krebbel + +- PR target/79895 +- * config/s390/predicates.md (reload_const_wide_int_operand): New +- predicate. +- * config/s390/s390.md ("movti"): Remove d/P alternative. +- ("movti_bigconst"): New pattern definition. ++ PR target/79895 ++ * config/s390/predicates.md (reload_const_wide_int_operand): New ++ predicate. ++ * config/s390/s390.md ("movti"): Remove d/P alternative. ++ ("movti_bigconst"): New pattern definition. + + 2017-04-25 Dominik Vogt + +@@ -130,30 +1680,30 @@ + Backport from maineline + 2017-04-25 Dominik Vogt + +- PR target/80080 +- * s390-protos.h (s390_expand_cs_hqi): Removed. +- (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes. +- * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer +- modes as well as CCZ1mode and CCZmode. +- (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new +- signature of s390_emit_compare_and_swap. +- (s390_expand_cs_hqi): Likewise, make static. +- (s390_expand_cs_tdsi): Generate an explicit compare before trying +- compare-and-swap, in some cases. +- (s390_expand_cs): Wrapper function. +- (s390_expand_atomic_exchange_tdsi): New backend specific expander for +- atomic_exchange. +- (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode. +- * config/s390/s390.md ("atomic_compare_and_swap"): Merge the +- patterns for small and large integers. Forbid symref memory operands. +- Move expander to s390.c. Require cc register. +- ("atomic_compare_and_swap_internal") +- ("*atomic_compare_and_swap_1") +- ("*atomic_compare_and_swapdi_2") +- ("*atomic_compare_and_swapsi_3"): Use s_operand to forbid +- symref memory operands. Remove CC mode and call s390_match_ccmode +- instead. +- ("atomic_exchange"): Allow and implement all integer modes. ++ PR target/80080 ++ * s390-protos.h (s390_expand_cs_hqi): Removed. ++ (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes. ++ * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer ++ modes as well as CCZ1mode and CCZmode. ++ (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new ++ signature of s390_emit_compare_and_swap. ++ (s390_expand_cs_hqi): Likewise, make static. ++ (s390_expand_cs_tdsi): Generate an explicit compare before trying ++ compare-and-swap, in some cases. ++ (s390_expand_cs): Wrapper function. ++ (s390_expand_atomic_exchange_tdsi): New backend specific expander for ++ atomic_exchange. ++ (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode. ++ * config/s390/s390.md ("atomic_compare_and_swap"): Merge the ++ patterns for small and large integers. Forbid symref memory operands. ++ Move expander to s390.c. Require cc register. ++ ("atomic_compare_and_swap_internal") ++ ("*atomic_compare_and_swap_1") ++ ("*atomic_compare_and_swapdi_2") ++ ("*atomic_compare_and_swapsi_3"): Use s_operand to forbid ++ symref memory operands. Remove CC mode and call s390_match_ccmode ++ instead. ++ ("atomic_exchange"): Allow and implement all integer modes. + + 2017-04-25 Dominik Vogt + +@@ -160,8 +1710,8 @@ + Backport from mainline + 2017-04-25 Dominik Vogt + +- * config/s390/s390.md (define_peephole2): New peephole to help +- combining the load-and-test pattern with volatile memory. ++ * config/s390/s390.md (define_peephole2): New peephole to help ++ combining the load-and-test pattern with volatile memory. + + + 2017-04-25 Dominik Vogt +@@ -169,8 +1719,8 @@ + Backport from mainline + 2017-04-25 Dominik Vogt + +- * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal +- with CCZmode for TARGET_Z196. ++ * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal ++ with CCZmode for TARGET_Z196. + + 2017-04-25 Jakub Jelinek + +@@ -229,7 +1779,7 @@ + (build_array_type): Likewise. Add typeless_storage argument. + + 2017-04-19 Eric Botcazou +- Jakub Jelinek ++ Jakub Jelinek + + PR tree-optimization/80426 + * tree-vrp.c (extract_range_from_binary_expr_1): For an additive +@@ -271,7 +1821,7 @@ + are only used in debug insns. + + 2017-04-19 Eric Botcazou +- Vladimir Makarov ++ Vladimir Makarov + + * config/sparc/predicates.md (input_operand): Add comment. Return + true for any memory operand when LRA is in progress. +Index: gcc/testsuite/gcc.target/powerpc/pr79799-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/pr79799-1.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/pr79799-1.c (.../branches/gcc-7-branch) +@@ -0,0 +1,43 @@ ++/* { dg-do compile { target { powerpc64*-*-* && lp64 } } } */ ++/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */ ++/* { dg-require-effective-target powerpc_p9vector_ok } */ ++/* { dg-options "-mcpu=power9 -O2" } */ ++ ++#include ++ ++/* GCC 7.1 did not have a specialized method for inserting 32-bit floating ++ point on ISA 3.0 (power9) systems. */ ++ ++vector float ++insert_arg_0 (vector float vf, float f) ++{ ++ return vec_insert (f, vf, 0); ++} ++ ++vector float ++insert_arg_1 (vector float vf, float f) ++{ ++ return vec_insert (f, vf, 1); ++} ++ ++vector float ++insert_arg_2 (vector float vf, float f) ++{ ++ return vec_insert (f, vf, 2); ++} ++ ++vector float ++insert_arg_3 (vector float vf, float f) ++{ ++ return vec_insert (f, vf, 3); ++} ++ ++/* { dg-final { scan-assembler {\mxscvdpspn\M} } } */ ++/* { dg-final { scan-assembler {\mxxinsertw\M} } } */ ++/* { dg-final { scan-assembler-not {\mlvewx\M} } } */ ++/* { dg-final { scan-assembler-not {\mlvx\M} } } */ ++/* { dg-final { scan-assembler-not {\mvperm\M} } } */ ++/* { dg-final { scan-assembler-not {\mvpermr\M} } } */ ++/* { dg-final { scan-assembler-not {\mstfs\M} } } */ ++/* { dg-final { scan-assembler-not {\mstxssp\M} } } */ ++/* { dg-final { scan-assembler-not {\mstxsspx\M} } } */ +Index: gcc/testsuite/gcc.target/powerpc/pr79799-2.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/pr79799-2.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/pr79799-2.c (.../branches/gcc-7-branch) +@@ -0,0 +1,31 @@ ++/* { dg-do compile { target { powerpc64*-*-* && lp64 } } } */ ++/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */ ++/* { dg-require-effective-target powerpc_p9vector_ok } */ ++/* { dg-options "-mcpu=power9 -O2" } */ ++ ++#include ++ ++/* Optimize x = vec_insert (vec_extract (v2, N), v1, M) for SFmode if N is the default ++ scalar position. */ ++ ++#if __ORDER_LITTLE_ENDIAN__ ++#define ELE 2 ++#else ++#define ELE 1 ++#endif ++ ++vector float ++foo (vector float v1, vector float v2) ++{ ++ return vec_insert (vec_extract (v2, ELE), v1, 0); ++} ++ ++/* { dg-final { scan-assembler {\mxxinsertw\M} } } */ ++/* { dg-final { scan-assembler-not {\mxxextractuw\M} } } */ ++/* { dg-final { scan-assembler-not {\mlvewx\M} } } */ ++/* { dg-final { scan-assembler-not {\mlvx\M} } } */ ++/* { dg-final { scan-assembler-not {\mvperm\M} } } */ ++/* { dg-final { scan-assembler-not {\mvpermr\M} } } */ ++/* { dg-final { scan-assembler-not {\mstfs\M} } } */ ++/* { dg-final { scan-assembler-not {\mstxssp\M} } } */ ++/* { dg-final { scan-assembler-not {\mstxsspx\M} } } */ +Index: gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst.c (.../branches/gcc-7-branch) +@@ -0,0 +1,62 @@ ++/* { dg-do compile { target { powerpc64le-*-* } } } */ ++/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ ++/* { dg-require-effective-target powerpc_p8vector_ok } */ ++/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ ++/* { dg-options "-mcpu=power8 -O2" } */ ++ ++/* Verify fix for problem where vec_xl and vec_xst are not recognized ++ for the vector char and vector short cases on P8 only. */ ++ ++#include ++ ++vector unsigned char ++foo (unsigned char * address) ++{ ++ return __builtin_vec_xl (0, address); ++} ++ ++void ++bar (vector unsigned char x, unsigned char * address) ++{ ++ __builtin_vec_xst (x, 0, address); ++} ++ ++vector unsigned short ++foot (unsigned short * address) ++{ ++ return __builtin_vec_xl (0, address); ++} ++ ++void ++bart (vector unsigned short x, unsigned short * address) ++{ ++ __builtin_vec_xst (x, 0, address); ++} ++ ++vector unsigned char ++fool (unsigned char * address) ++{ ++ return vec_xl (0, address); ++} ++ ++void ++barl (vector unsigned char x, unsigned char * address) ++{ ++ vec_xst (x, 0, address); ++} ++ ++vector unsigned short ++footle (unsigned short * address) ++{ ++ return vec_xl (0, address); ++} ++ ++void ++bartle (vector unsigned short x, unsigned short * address) ++{ ++ vec_xst (x, 0, address); ++} ++ ++/* { dg-final { scan-assembler-times "lxvd2x" 4 } } */ ++/* { dg-final { scan-assembler-times "stxvd2x" 4 } } */ ++/* { dg-final { scan-assembler-times "xxpermdi" 8 } } */ +Index: gcc/testsuite/gcc.target/powerpc/pr79799-3.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/pr79799-3.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/pr79799-3.c (.../branches/gcc-7-branch) +@@ -0,0 +1,24 @@ ++/* { dg-do compile { target { powerpc64*-*-* && lp64 } } } */ ++/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */ ++/* { dg-require-effective-target powerpc_p9vector_ok } */ ++/* { dg-options "-mcpu=power9 -O2" } */ ++ ++#include ++ ++/* Optimize x = vec_insert (vec_extract (v2, N), v1, M) for SFmode. */ ++ ++vector float ++foo (vector float v1, vector float v2) ++{ ++ return vec_insert (vec_extract (v2, 4), v1, 0); ++} ++ ++/* { dg-final { scan-assembler {\mxxinsertw\M} } } */ ++/* { dg-final { scan-assembler {\mxxextractuw\M} } } */ ++/* { dg-final { scan-assembler-not {\mlvewx\M} } } */ ++/* { dg-final { scan-assembler-not {\mlvx\M} } } */ ++/* { dg-final { scan-assembler-not {\mvperm\M} } } */ ++/* { dg-final { scan-assembler-not {\mvpermr\M} } } */ ++/* { dg-final { scan-assembler-not {\mstfs\M} } } */ ++/* { dg-final { scan-assembler-not {\mstxssp\M} } } */ ++/* { dg-final { scan-assembler-not {\mstxsspx\M} } } */ +Index: gcc/testsuite/gcc.target/powerpc/pr68163.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/pr68163.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/pr68163.c (.../branches/gcc-7-branch) +@@ -0,0 +1,209 @@ ++/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ ++/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ ++/* { dg-require-effective-target powerpc_p8vector_ok } */ ++/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ ++/* { dg-options "-mcpu=power8 -O2" } */ ++ ++/* Make sure that the register allocator does not move SF values to GPR ++ registers in order to do an offsettable store. */ ++ ++#ifndef TYPE ++#define TYPE float ++#endif ++ ++#ifndef TYPE_IN ++#define TYPE_IN TYPE ++#endif ++ ++#ifndef TYPE_OUT ++#define TYPE_OUT TYPE ++#endif ++ ++#ifndef ITYPE ++#define ITYPE long ++#endif ++ ++#ifdef DO_CALL ++extern ITYPE get_bits (ITYPE); ++ ++#else ++#define get_bits(X) (X) ++#endif ++ ++void test (ITYPE *bits, ITYPE n, TYPE one, TYPE_IN *p, TYPE_OUT *q) ++{ ++ TYPE x_00 = p[ 0]; ++ TYPE x_01 = p[ 1]; ++ TYPE x_02 = p[ 2]; ++ TYPE x_03 = p[ 3]; ++ TYPE x_04 = p[ 4]; ++ TYPE x_05 = p[ 5]; ++ TYPE x_06 = p[ 6]; ++ TYPE x_07 = p[ 7]; ++ TYPE x_08 = p[ 8]; ++ TYPE x_09 = p[ 9]; ++ ++ TYPE x_10 = p[10]; ++ TYPE x_11 = p[11]; ++ TYPE x_12 = p[12]; ++ TYPE x_13 = p[13]; ++ TYPE x_14 = p[14]; ++ TYPE x_15 = p[15]; ++ TYPE x_16 = p[16]; ++ TYPE x_17 = p[17]; ++ TYPE x_18 = p[18]; ++ TYPE x_19 = p[19]; ++ ++ TYPE x_20 = p[20]; ++ TYPE x_21 = p[21]; ++ TYPE x_22 = p[22]; ++ TYPE x_23 = p[23]; ++ TYPE x_24 = p[24]; ++ TYPE x_25 = p[25]; ++ TYPE x_26 = p[26]; ++ TYPE x_27 = p[27]; ++ TYPE x_28 = p[28]; ++ TYPE x_29 = p[29]; ++ ++ TYPE x_30 = p[30]; ++ TYPE x_31 = p[31]; ++ TYPE x_32 = p[32]; ++ TYPE x_33 = p[33]; ++ TYPE x_34 = p[34]; ++ TYPE x_35 = p[35]; ++ TYPE x_36 = p[36]; ++ TYPE x_37 = p[37]; ++ TYPE x_38 = p[38]; ++ TYPE x_39 = p[39]; ++ ++ TYPE x_40 = p[40]; ++ TYPE x_41 = p[41]; ++ TYPE x_42 = p[42]; ++ TYPE x_43 = p[43]; ++ TYPE x_44 = p[44]; ++ TYPE x_45 = p[45]; ++ TYPE x_46 = p[46]; ++ TYPE x_47 = p[47]; ++ TYPE x_48 = p[48]; ++ TYPE x_49 = p[49]; ++ ++ ITYPE i; ++ ++ for (i = 0; i < n; i++) ++ { ++ ITYPE bit = get_bits (bits[i]); ++ ++ if ((bit & ((ITYPE)1) << 0) != 0) x_00 += one; ++ if ((bit & ((ITYPE)1) << 1) != 0) x_01 += one; ++ if ((bit & ((ITYPE)1) << 2) != 0) x_02 += one; ++ if ((bit & ((ITYPE)1) << 3) != 0) x_03 += one; ++ if ((bit & ((ITYPE)1) << 4) != 0) x_04 += one; ++ if ((bit & ((ITYPE)1) << 5) != 0) x_05 += one; ++ if ((bit & ((ITYPE)1) << 6) != 0) x_06 += one; ++ if ((bit & ((ITYPE)1) << 7) != 0) x_07 += one; ++ if ((bit & ((ITYPE)1) << 8) != 0) x_08 += one; ++ if ((bit & ((ITYPE)1) << 9) != 0) x_09 += one; ++ ++ if ((bit & ((ITYPE)1) << 10) != 0) x_10 += one; ++ if ((bit & ((ITYPE)1) << 11) != 0) x_11 += one; ++ if ((bit & ((ITYPE)1) << 12) != 0) x_12 += one; ++ if ((bit & ((ITYPE)1) << 13) != 0) x_13 += one; ++ if ((bit & ((ITYPE)1) << 14) != 0) x_14 += one; ++ if ((bit & ((ITYPE)1) << 15) != 0) x_15 += one; ++ if ((bit & ((ITYPE)1) << 16) != 0) x_16 += one; ++ if ((bit & ((ITYPE)1) << 17) != 0) x_17 += one; ++ if ((bit & ((ITYPE)1) << 18) != 0) x_18 += one; ++ if ((bit & ((ITYPE)1) << 19) != 0) x_19 += one; ++ ++ if ((bit & ((ITYPE)1) << 20) != 0) x_20 += one; ++ if ((bit & ((ITYPE)1) << 21) != 0) x_21 += one; ++ if ((bit & ((ITYPE)1) << 22) != 0) x_22 += one; ++ if ((bit & ((ITYPE)1) << 23) != 0) x_23 += one; ++ if ((bit & ((ITYPE)1) << 24) != 0) x_24 += one; ++ if ((bit & ((ITYPE)1) << 25) != 0) x_25 += one; ++ if ((bit & ((ITYPE)1) << 26) != 0) x_26 += one; ++ if ((bit & ((ITYPE)1) << 27) != 0) x_27 += one; ++ if ((bit & ((ITYPE)1) << 28) != 0) x_28 += one; ++ if ((bit & ((ITYPE)1) << 29) != 0) x_29 += one; ++ ++ if ((bit & ((ITYPE)1) << 30) != 0) x_30 += one; ++ if ((bit & ((ITYPE)1) << 31) != 0) x_31 += one; ++ if ((bit & ((ITYPE)1) << 32) != 0) x_32 += one; ++ if ((bit & ((ITYPE)1) << 33) != 0) x_33 += one; ++ if ((bit & ((ITYPE)1) << 34) != 0) x_34 += one; ++ if ((bit & ((ITYPE)1) << 35) != 0) x_35 += one; ++ if ((bit & ((ITYPE)1) << 36) != 0) x_36 += one; ++ if ((bit & ((ITYPE)1) << 37) != 0) x_37 += one; ++ if ((bit & ((ITYPE)1) << 38) != 0) x_38 += one; ++ if ((bit & ((ITYPE)1) << 39) != 0) x_39 += one; ++ ++ if ((bit & ((ITYPE)1) << 40) != 0) x_40 += one; ++ if ((bit & ((ITYPE)1) << 41) != 0) x_41 += one; ++ if ((bit & ((ITYPE)1) << 42) != 0) x_42 += one; ++ if ((bit & ((ITYPE)1) << 43) != 0) x_43 += one; ++ if ((bit & ((ITYPE)1) << 44) != 0) x_44 += one; ++ if ((bit & ((ITYPE)1) << 45) != 0) x_45 += one; ++ if ((bit & ((ITYPE)1) << 46) != 0) x_46 += one; ++ if ((bit & ((ITYPE)1) << 47) != 0) x_47 += one; ++ if ((bit & ((ITYPE)1) << 48) != 0) x_48 += one; ++ if ((bit & ((ITYPE)1) << 49) != 0) x_49 += one; ++ } ++ ++ q[ 0] = x_00; ++ q[ 1] = x_01; ++ q[ 2] = x_02; ++ q[ 3] = x_03; ++ q[ 4] = x_04; ++ q[ 5] = x_05; ++ q[ 6] = x_06; ++ q[ 7] = x_07; ++ q[ 8] = x_08; ++ q[ 9] = x_09; ++ ++ q[10] = x_10; ++ q[11] = x_11; ++ q[12] = x_12; ++ q[13] = x_13; ++ q[14] = x_14; ++ q[15] = x_15; ++ q[16] = x_16; ++ q[17] = x_17; ++ q[18] = x_18; ++ q[19] = x_19; ++ ++ q[20] = x_20; ++ q[21] = x_21; ++ q[22] = x_22; ++ q[23] = x_23; ++ q[24] = x_24; ++ q[25] = x_25; ++ q[26] = x_26; ++ q[27] = x_27; ++ q[28] = x_28; ++ q[29] = x_29; ++ ++ q[30] = x_30; ++ q[31] = x_31; ++ q[32] = x_32; ++ q[33] = x_33; ++ q[34] = x_34; ++ q[35] = x_35; ++ q[36] = x_36; ++ q[37] = x_37; ++ q[38] = x_38; ++ q[39] = x_39; ++ ++ q[40] = x_40; ++ q[41] = x_41; ++ q[42] = x_42; ++ q[43] = x_43; ++ q[44] = x_44; ++ q[45] = x_45; ++ q[46] = x_46; ++ q[47] = x_47; ++ q[48] = x_48; ++ q[49] = x_49; ++} ++ ++/* { dg-final { scan-assembler-not {\mmfvsrd\M} } } */ ++/* { dg-final { scan-assembler-not {\mstw\M} } } */ +Index: gcc/testsuite/gcc.target/powerpc/pr79799-4.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/pr79799-4.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/pr79799-4.c (.../branches/gcc-7-branch) +@@ -0,0 +1,105 @@ ++/* { dg-do run { target { powerpc*-*-linux* } } } */ ++/* { dg-require-effective-target vsx_hw } */ ++/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */ ++/* { dg-require-effective-target p9vector_hw } */ ++/* { dg-options "-mcpu=power9 -O2" } */ ++ ++#include ++#include ++ ++__attribute__ ((__noinline__)) ++vector float ++insert_0 (vector float v, float f) ++{ ++ return vec_insert (f, v, 0); ++} ++ ++__attribute__ ((__noinline__)) ++vector float ++insert_1 (vector float v, float f) ++{ ++ return vec_insert (f, v, 1); ++} ++ ++__attribute__ ((__noinline__)) ++vector float ++insert_2 (vector float v, float f) ++{ ++ return vec_insert (f, v, 2); ++} ++ ++__attribute__ ((__noinline__)) ++vector float ++insert_3 (vector float v, float f) ++{ ++ return vec_insert (f, v, 3); ++} ++ ++__attribute__ ((__noinline__)) ++void ++test_insert (void) ++{ ++ vector float v1 = { 1.0f, 2.0f, 3.0f, 4.0f }; ++ vector float v2 = { 5.0f, 6.0f, 7.0f, 8.0f }; ++ ++ v1 = insert_0 (v1, 5.0f); ++ v1 = insert_1 (v1, 6.0f); ++ v1 = insert_2 (v1, 7.0f); ++ v1 = insert_3 (v1, 8.0f); ++ ++ if (vec_any_ne (v1, v2)) ++ abort (); ++} ++ ++__attribute__ ((__noinline__)) ++vector float ++insert_extract_0_3 (vector float v1, vector float v2) ++{ ++ return vec_insert (vec_extract (v2, 3), v1, 0); ++} ++ ++__attribute__ ((__noinline__)) ++vector float ++insert_extract_1_2 (vector float v1, vector float v2) ++{ ++ return vec_insert (vec_extract (v2, 2), v1, 1); ++} ++ ++__attribute__ ((__noinline__)) ++vector float ++insert_extract_2_1 (vector float v1, vector float v2) ++{ ++ return vec_insert (vec_extract (v2, 1), v1, 2); ++} ++ ++__attribute__ ((__noinline__)) ++vector float ++insert_extract_3_0 (vector float v1, vector float v2) ++{ ++ return vec_insert (vec_extract (v2, 0), v1, 3); ++} ++ ++__attribute__ ((__noinline__)) ++void ++test_insert_extract (void) ++{ ++ vector float v1 = { 1.0f, 2.0f, 3.0f, 4.0f }; ++ vector float v2 = { 5.0f, 6.0f, 7.0f, 8.0f }; ++ vector float v3 = { 8.0f, 7.0f, 6.0f, 5.0f }; ++ ++ v1 = insert_extract_0_3 (v1, v2); ++ v1 = insert_extract_1_2 (v1, v2); ++ v1 = insert_extract_2_1 (v1, v2); ++ v1 = insert_extract_3_0 (v1, v2); ++ ++ if (vec_any_ne (v1, v3)) ++ abort (); ++} ++ ++int ++main (void) ++{ ++ test_insert (); ++ test_insert_extract (); ++ return 0; ++} +Index: gcc/testsuite/gcc.target/powerpc/versioned-copy-loop.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/versioned-copy-loop.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/versioned-copy-loop.c (.../branches/gcc-7-branch) +@@ -0,0 +1,30 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target powerpc_p8vector_ok } */ ++/* { dg-options "-O3 -fdump-tree-vect-details" } */ ++ ++/* Verify that a pure copy loop with a vectorization factor of two ++ that requires alignment will not be vectorized. See the cost ++ model hooks in rs6000.c. */ ++ ++typedef long unsigned int size_t; ++typedef unsigned char uint8_t; ++ ++extern void *memcpy (void *__restrict __dest, const void *__restrict __src, ++ size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); ++ ++void foo (void *dstPtr, const void *srcPtr, void *dstEnd) ++{ ++ uint8_t *d = (uint8_t*)dstPtr; ++ const uint8_t *s = (const uint8_t*)srcPtr; ++ uint8_t* const e = (uint8_t*)dstEnd; ++ ++ do ++ { ++ memcpy (d, s, 8); ++ d += 8; ++ s += 8; ++ } ++ while (d < e); ++} ++ ++/* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */ +Index: gcc/testsuite/gcc.target/powerpc/pr79799-5.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/pr79799-5.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/pr79799-5.c (.../branches/gcc-7-branch) +@@ -0,0 +1,25 @@ ++/* { dg-do compile { target { powerpc64*-*-* && lp64 } } } */ ++/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */ ++/* { dg-require-effective-target powerpc_p9vector_ok } */ ++/* { dg-options "-mcpu=power9 -O2" } */ ++ ++#include ++ ++/* Insure setting 0.0f to a V4SFmode element does not do a FP conversion. */ ++ ++vector float ++insert_arg_0 (vector float vf) ++{ ++ return vec_insert (0.0f, vf, 0); ++} ++ ++/* { dg-final { scan-assembler {\mxxinsertw\M} } } */ ++/* { dg-final { scan-assembler-not {\mlvewx\M} } } */ ++/* { dg-final { scan-assembler-not {\mlvx\M} } } */ ++/* { dg-final { scan-assembler-not {\mvperm\M} } } */ ++/* { dg-final { scan-assembler-not {\mvpermr\M} } } */ ++/* { dg-final { scan-assembler-not {\mstfs\M} } } */ ++/* { dg-final { scan-assembler-not {\mstxssp\M} } } */ ++/* { dg-final { scan-assembler-not {\mstxsspx\M} } } */ ++/* { dg-final { scan-assembler-not {\mxscvdpspn\M} } } */ ++/* { dg-final { scan-assembler-not {\mxxextractuw\M} } } */ +Index: gcc/testsuite/gcc.target/powerpc/ppc-round2.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/ppc-round2.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/ppc-round2.c (.../branches/gcc-7-branch) +@@ -3,18 +3,21 @@ + /* { dg-require-effective-target powerpc_p8vector_ok } */ + /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ + /* { dg-options "-O2 -mcpu=power8" } */ +-/* { dg-final { scan-assembler-times "fcfid " 2 } } */ +-/* { dg-final { scan-assembler-times "fcfids " 2 } } */ ++/* { dg-final { scan-assembler-times "fcfid \|xscvsxddp " 2 } } */ ++/* { dg-final { scan-assembler-times "fcfids \|xscvsxdsp " 2 } } */ ++/* { dg-final { scan-assembler-times "fctiwz \|xscvdpsxws " 2 } } */ + /* { dg-final { scan-assembler-times "fctiwuz \|xscvdpuxws " 2 } } */ +-/* { dg-final { scan-assembler-times "fctiwz \|xscvdpsxws " 2 } } */ +-/* { dg-final { scan-assembler-times "mfvsrd " 4 } } */ +-/* { dg-final { scan-assembler-times "mtvsrwa " 2 } } */ +-/* { dg-final { scan-assembler-times "mtvsrwz " 2 } } */ +-/* { dg-final { scan-assembler-not "lwz" } } */ +-/* { dg-final { scan-assembler-not "lfiwax " } } */ +-/* { dg-final { scan-assembler-not "lfiwzx " } } */ +-/* { dg-final { scan-assembler-not "stw" } } */ +-/* { dg-final { scan-assembler-not "stfiwx " } } */ ++/* { dg-final { scan-assembler-times {\mmfvsrwz\M} 2 } } */ ++/* { dg-final { scan-assembler-times {\mmtvsrwz\M} 2 } } */ ++/* { dg-final { scan-assembler-times {\mvupkhsw\M} 2 } } */ ++/* { dg-final { scan-assembler-times {\mxxpermdi\M} 2 } } */ ++/* { dg-final { scan-assembler-not {\mmfvsrd\M} } } */ ++/* { dg-final { scan-assembler-not {\mmtvsrwa\M} } } */ ++/* { dg-final { scan-assembler-not {\mlwz\M} } } */ ++/* { dg-final { scan-assembler-not {\mlfiwax\M} } } */ ++/* { dg-final { scan-assembler-not {\mlfiwzx\M} } } */ ++/* { dg-final { scan-assembler-not {\mstw\M} } } */ ++/* { dg-final { scan-assembler-not {\mstfiwx\M} } } */ + + /* Make sure we don't have loads/stores to the GPR unit. */ + double +Index: gcc/testsuite/gcc.target/powerpc/ppc-round3.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/ppc-round3.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/ppc-round3.c (.../branches/gcc-7-branch) +@@ -0,0 +1,45 @@ ++/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ ++/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ ++/* { dg-require-effective-target powerpc_p9vector_ok } */ ++/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ ++/* { dg-options "-O2 -mcpu=power9" } */ ++/* { dg-final { scan-assembler-times "fcfid \|xscvsxddp " 2 } } */ ++/* { dg-final { scan-assembler-times "fcfids \|xscvsxdsp " 2 } } */ ++/* { dg-final { scan-assembler-times "fctiwz \|xscvdpsxws " 2 } } */ ++/* { dg-final { scan-assembler-times "fctiwuz \|xscvdpuxws " 2 } } */ ++/* { dg-final { scan-assembler-times {\mvextsw2d\M} 2 } } */ ++/* { dg-final { scan-assembler-times {\mxxextractuw\M} 2 } } */ ++/* { dg-final { scan-assembler-not {\mmfvsrd\M} } } */ ++/* { dg-final { scan-assembler-not {\mmfvsrwz\M} } } */ ++/* { dg-final { scan-assembler-not {\mmtvsrwa\M} } } */ ++/* { dg-final { scan-assembler-not {\mmtvsrwz\M} } } */ ++/* { dg-final { scan-assembler-not {\mlwz\M} } } */ ++/* { dg-final { scan-assembler-not {\mlfiwax\M} } } */ ++/* { dg-final { scan-assembler-not {\mlfiwzx\M} } } */ ++/* { dg-final { scan-assembler-not {\mstw\M} } } */ ++/* { dg-final { scan-assembler-not {\mstfiwx\M} } } */ ++ ++/* Make sure we don't have loads/stores to the GPR unit. */ ++double ++round_double_int (double a) ++{ ++ return (double)(int)a; ++} ++ ++float ++round_float_int (float a) ++{ ++ return (float)(int)a; ++} ++ ++double ++round_double_uint (double a) ++{ ++ return (double)(unsigned int)a; ++} ++ ++float ++round_float_uint (float a) ++{ ++ return (float)(unsigned int)a; ++} +Index: gcc/testsuite/gcc.target/powerpc/cpu-builtin-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/cpu-builtin-1.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/cpu-builtin-1.c (.../branches/gcc-7-branch) +@@ -4,6 +4,11 @@ + void + use_cpu_is_builtins (unsigned int *p) + { ++ /* If GCC was configured to use an old GLIBC (before 2.23), the ++ __builtin_cpu_is and __builtin_cpu_supports built-in functions return 0, ++ and the compiler issues a warning that you need a newer glibc to use them. ++ Use #ifdef to avoid the warning. */ ++#ifdef __BUILTIN_CPU_SUPPORTS__ + p[0] = __builtin_cpu_is ("power9"); + p[1] = __builtin_cpu_is ("power8"); + p[2] = __builtin_cpu_is ("power7"); +@@ -19,11 +24,15 @@ + p[12] = __builtin_cpu_is ("ppc440"); + p[13] = __builtin_cpu_is ("ppc405"); + p[14] = __builtin_cpu_is ("ppc-cell-be"); ++#else ++ p[0] = 0; ++#endif + } + + void + use_cpu_supports_builtins (unsigned int *p) + { ++#ifdef __BUILTIN_CPU_SUPPORTS__ + p[0] = __builtin_cpu_supports ("4xxmac"); + p[1] = __builtin_cpu_supports ("altivec"); + p[2] = __builtin_cpu_supports ("arch_2_05"); +@@ -62,4 +71,9 @@ + p[35] = __builtin_cpu_supports ("ucache"); + p[36] = __builtin_cpu_supports ("vcrypto"); + p[37] = __builtin_cpu_supports ("vsx"); ++ p[38] = __builtin_cpu_supports ("darn"); ++ p[39] = __builtin_cpu_supports ("scv"); ++#else ++ p[0] = 0; ++#endif + } +Index: gcc/testsuite/gcc.target/powerpc/pr80510-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/pr80510-1.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/pr80510-1.c (.../branches/gcc-7-branch) +@@ -0,0 +1,211 @@ ++/* { dg-do compile { target { powerpc*-*-* } } } */ ++/* { dg-skip-if "" { powerpc*-*-darwin* } } */ ++/* { dg-require-effective-target powerpc_vsx_ok } */ ++/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */ ++/* { dg-options "-mcpu=power7 -O2" } */ ++ ++/* Make sure that STXSDX is generated for double scalars in Altivec registers ++ on power7 instead of moving the value to a FPR register and doing a X-FORM ++ store. */ ++ ++#ifndef TYPE ++#define TYPE double ++#endif ++ ++#ifndef TYPE_IN ++#define TYPE_IN TYPE ++#endif ++ ++#ifndef TYPE_OUT ++#define TYPE_OUT TYPE ++#endif ++ ++#ifndef ITYPE ++#define ITYPE __INT64_TYPE__ ++#endif ++ ++#ifdef DO_CALL ++extern ITYPE get_bits (ITYPE); ++ ++#else ++#define get_bits(X) (X) ++#endif ++ ++void test (ITYPE *bits, ITYPE n, TYPE one, TYPE_IN *p, TYPE_OUT *q) ++{ ++ TYPE x_00 = p[ 0]; ++ TYPE x_01 = p[ 1]; ++ TYPE x_02 = p[ 2]; ++ TYPE x_03 = p[ 3]; ++ TYPE x_04 = p[ 4]; ++ TYPE x_05 = p[ 5]; ++ TYPE x_06 = p[ 6]; ++ TYPE x_07 = p[ 7]; ++ TYPE x_08 = p[ 8]; ++ TYPE x_09 = p[ 9]; ++ ++ TYPE x_10 = p[10]; ++ TYPE x_11 = p[11]; ++ TYPE x_12 = p[12]; ++ TYPE x_13 = p[13]; ++ TYPE x_14 = p[14]; ++ TYPE x_15 = p[15]; ++ TYPE x_16 = p[16]; ++ TYPE x_17 = p[17]; ++ TYPE x_18 = p[18]; ++ TYPE x_19 = p[19]; ++ ++ TYPE x_20 = p[20]; ++ TYPE x_21 = p[21]; ++ TYPE x_22 = p[22]; ++ TYPE x_23 = p[23]; ++ TYPE x_24 = p[24]; ++ TYPE x_25 = p[25]; ++ TYPE x_26 = p[26]; ++ TYPE x_27 = p[27]; ++ TYPE x_28 = p[28]; ++ TYPE x_29 = p[29]; ++ ++ TYPE x_30 = p[30]; ++ TYPE x_31 = p[31]; ++ TYPE x_32 = p[32]; ++ TYPE x_33 = p[33]; ++ TYPE x_34 = p[34]; ++ TYPE x_35 = p[35]; ++ TYPE x_36 = p[36]; ++ TYPE x_37 = p[37]; ++ TYPE x_38 = p[38]; ++ TYPE x_39 = p[39]; ++ ++ TYPE x_40 = p[40]; ++ TYPE x_41 = p[41]; ++ TYPE x_42 = p[42]; ++ TYPE x_43 = p[43]; ++ TYPE x_44 = p[44]; ++ TYPE x_45 = p[45]; ++ TYPE x_46 = p[46]; ++ TYPE x_47 = p[47]; ++ TYPE x_48 = p[48]; ++ TYPE x_49 = p[49]; ++ ++ ITYPE i; ++ ++ for (i = 0; i < n; i++) ++ { ++ ITYPE bit = get_bits (bits[i]); ++ ++ if ((bit & ((ITYPE)1) << 0) != 0) x_00 += one; ++ if ((bit & ((ITYPE)1) << 1) != 0) x_01 += one; ++ if ((bit & ((ITYPE)1) << 2) != 0) x_02 += one; ++ if ((bit & ((ITYPE)1) << 3) != 0) x_03 += one; ++ if ((bit & ((ITYPE)1) << 4) != 0) x_04 += one; ++ if ((bit & ((ITYPE)1) << 5) != 0) x_05 += one; ++ if ((bit & ((ITYPE)1) << 6) != 0) x_06 += one; ++ if ((bit & ((ITYPE)1) << 7) != 0) x_07 += one; ++ if ((bit & ((ITYPE)1) << 8) != 0) x_08 += one; ++ if ((bit & ((ITYPE)1) << 9) != 0) x_09 += one; ++ ++ if ((bit & ((ITYPE)1) << 10) != 0) x_10 += one; ++ if ((bit & ((ITYPE)1) << 11) != 0) x_11 += one; ++ if ((bit & ((ITYPE)1) << 12) != 0) x_12 += one; ++ if ((bit & ((ITYPE)1) << 13) != 0) x_13 += one; ++ if ((bit & ((ITYPE)1) << 14) != 0) x_14 += one; ++ if ((bit & ((ITYPE)1) << 15) != 0) x_15 += one; ++ if ((bit & ((ITYPE)1) << 16) != 0) x_16 += one; ++ if ((bit & ((ITYPE)1) << 17) != 0) x_17 += one; ++ if ((bit & ((ITYPE)1) << 18) != 0) x_18 += one; ++ if ((bit & ((ITYPE)1) << 19) != 0) x_19 += one; ++ ++ if ((bit & ((ITYPE)1) << 20) != 0) x_20 += one; ++ if ((bit & ((ITYPE)1) << 21) != 0) x_21 += one; ++ if ((bit & ((ITYPE)1) << 22) != 0) x_22 += one; ++ if ((bit & ((ITYPE)1) << 23) != 0) x_23 += one; ++ if ((bit & ((ITYPE)1) << 24) != 0) x_24 += one; ++ if ((bit & ((ITYPE)1) << 25) != 0) x_25 += one; ++ if ((bit & ((ITYPE)1) << 26) != 0) x_26 += one; ++ if ((bit & ((ITYPE)1) << 27) != 0) x_27 += one; ++ if ((bit & ((ITYPE)1) << 28) != 0) x_28 += one; ++ if ((bit & ((ITYPE)1) << 29) != 0) x_29 += one; ++ ++ if ((bit & ((ITYPE)1) << 30) != 0) x_30 += one; ++ if ((bit & ((ITYPE)1) << 31) != 0) x_31 += one; ++ if ((bit & ((ITYPE)1) << 32) != 0) x_32 += one; ++ if ((bit & ((ITYPE)1) << 33) != 0) x_33 += one; ++ if ((bit & ((ITYPE)1) << 34) != 0) x_34 += one; ++ if ((bit & ((ITYPE)1) << 35) != 0) x_35 += one; ++ if ((bit & ((ITYPE)1) << 36) != 0) x_36 += one; ++ if ((bit & ((ITYPE)1) << 37) != 0) x_37 += one; ++ if ((bit & ((ITYPE)1) << 38) != 0) x_38 += one; ++ if ((bit & ((ITYPE)1) << 39) != 0) x_39 += one; ++ ++ if ((bit & ((ITYPE)1) << 40) != 0) x_40 += one; ++ if ((bit & ((ITYPE)1) << 41) != 0) x_41 += one; ++ if ((bit & ((ITYPE)1) << 42) != 0) x_42 += one; ++ if ((bit & ((ITYPE)1) << 43) != 0) x_43 += one; ++ if ((bit & ((ITYPE)1) << 44) != 0) x_44 += one; ++ if ((bit & ((ITYPE)1) << 45) != 0) x_45 += one; ++ if ((bit & ((ITYPE)1) << 46) != 0) x_46 += one; ++ if ((bit & ((ITYPE)1) << 47) != 0) x_47 += one; ++ if ((bit & ((ITYPE)1) << 48) != 0) x_48 += one; ++ if ((bit & ((ITYPE)1) << 49) != 0) x_49 += one; ++ } ++ ++ q[ 0] = x_00; ++ q[ 1] = x_01; ++ q[ 2] = x_02; ++ q[ 3] = x_03; ++ q[ 4] = x_04; ++ q[ 5] = x_05; ++ q[ 6] = x_06; ++ q[ 7] = x_07; ++ q[ 8] = x_08; ++ q[ 9] = x_09; ++ ++ q[10] = x_10; ++ q[11] = x_11; ++ q[12] = x_12; ++ q[13] = x_13; ++ q[14] = x_14; ++ q[15] = x_15; ++ q[16] = x_16; ++ q[17] = x_17; ++ q[18] = x_18; ++ q[19] = x_19; ++ ++ q[20] = x_20; ++ q[21] = x_21; ++ q[22] = x_22; ++ q[23] = x_23; ++ q[24] = x_24; ++ q[25] = x_25; ++ q[26] = x_26; ++ q[27] = x_27; ++ q[28] = x_28; ++ q[29] = x_29; ++ ++ q[30] = x_30; ++ q[31] = x_31; ++ q[32] = x_32; ++ q[33] = x_33; ++ q[34] = x_34; ++ q[35] = x_35; ++ q[36] = x_36; ++ q[37] = x_37; ++ q[38] = x_38; ++ q[39] = x_39; ++ ++ q[40] = x_40; ++ q[41] = x_41; ++ q[42] = x_42; ++ q[43] = x_43; ++ q[44] = x_44; ++ q[45] = x_45; ++ q[46] = x_46; ++ q[47] = x_47; ++ q[48] = x_48; ++ q[49] = x_49; ++} ++ ++/* { dg-final { scan-assembler {\mxsadddp\M} } } */ ++/* { dg-final { scan-assembler {\mstxsdx\M} } } */ ++/* { dg-final { scan-assembler-not {\mmfvsrd\M} } } */ +Index: gcc/testsuite/gcc.target/powerpc/pr80510-2.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/pr80510-2.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/pr80510-2.c (.../branches/gcc-7-branch) +@@ -0,0 +1,212 @@ ++/* { dg-do compile { target { powerpc*-*-* } } } */ ++/* { dg-skip-if "" { powerpc*-*-darwin* } } */ ++/* { dg-require-effective-target powerpc_p8vector_ok } */ ++/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ ++/* { dg-options "-mcpu=power8 -O2" } */ ++ ++/* Make sure that STXSSPX is generated for float scalars in Altivec registers ++ on power7 instead of moving the value to a FPR register and doing a X-FORM ++ store. */ ++ ++#ifndef TYPE ++#define TYPE float ++#endif ++ ++#ifndef TYPE_IN ++#define TYPE_IN TYPE ++#endif ++ ++#ifndef TYPE_OUT ++#define TYPE_OUT TYPE ++#endif ++ ++#ifndef ITYPE ++#define ITYPE __INT64_TYPE__ ++#endif ++ ++#ifdef DO_CALL ++extern ITYPE get_bits (ITYPE); ++ ++#else ++#define get_bits(X) (X) ++#endif ++ ++void test (ITYPE *bits, ITYPE n, TYPE one, TYPE_IN *p, TYPE_OUT *q) ++{ ++ TYPE x_00 = p[ 0]; ++ TYPE x_01 = p[ 1]; ++ TYPE x_02 = p[ 2]; ++ TYPE x_03 = p[ 3]; ++ TYPE x_04 = p[ 4]; ++ TYPE x_05 = p[ 5]; ++ TYPE x_06 = p[ 6]; ++ TYPE x_07 = p[ 7]; ++ TYPE x_08 = p[ 8]; ++ TYPE x_09 = p[ 9]; ++ ++ TYPE x_10 = p[10]; ++ TYPE x_11 = p[11]; ++ TYPE x_12 = p[12]; ++ TYPE x_13 = p[13]; ++ TYPE x_14 = p[14]; ++ TYPE x_15 = p[15]; ++ TYPE x_16 = p[16]; ++ TYPE x_17 = p[17]; ++ TYPE x_18 = p[18]; ++ TYPE x_19 = p[19]; ++ ++ TYPE x_20 = p[20]; ++ TYPE x_21 = p[21]; ++ TYPE x_22 = p[22]; ++ TYPE x_23 = p[23]; ++ TYPE x_24 = p[24]; ++ TYPE x_25 = p[25]; ++ TYPE x_26 = p[26]; ++ TYPE x_27 = p[27]; ++ TYPE x_28 = p[28]; ++ TYPE x_29 = p[29]; ++ ++ TYPE x_30 = p[30]; ++ TYPE x_31 = p[31]; ++ TYPE x_32 = p[32]; ++ TYPE x_33 = p[33]; ++ TYPE x_34 = p[34]; ++ TYPE x_35 = p[35]; ++ TYPE x_36 = p[36]; ++ TYPE x_37 = p[37]; ++ TYPE x_38 = p[38]; ++ TYPE x_39 = p[39]; ++ ++ TYPE x_40 = p[40]; ++ TYPE x_41 = p[41]; ++ TYPE x_42 = p[42]; ++ TYPE x_43 = p[43]; ++ TYPE x_44 = p[44]; ++ TYPE x_45 = p[45]; ++ TYPE x_46 = p[46]; ++ TYPE x_47 = p[47]; ++ TYPE x_48 = p[48]; ++ TYPE x_49 = p[49]; ++ ++ ITYPE i; ++ ++ for (i = 0; i < n; i++) ++ { ++ ITYPE bit = get_bits (bits[i]); ++ ++ if ((bit & ((ITYPE)1) << 0) != 0) x_00 += one; ++ if ((bit & ((ITYPE)1) << 1) != 0) x_01 += one; ++ if ((bit & ((ITYPE)1) << 2) != 0) x_02 += one; ++ if ((bit & ((ITYPE)1) << 3) != 0) x_03 += one; ++ if ((bit & ((ITYPE)1) << 4) != 0) x_04 += one; ++ if ((bit & ((ITYPE)1) << 5) != 0) x_05 += one; ++ if ((bit & ((ITYPE)1) << 6) != 0) x_06 += one; ++ if ((bit & ((ITYPE)1) << 7) != 0) x_07 += one; ++ if ((bit & ((ITYPE)1) << 8) != 0) x_08 += one; ++ if ((bit & ((ITYPE)1) << 9) != 0) x_09 += one; ++ ++ if ((bit & ((ITYPE)1) << 10) != 0) x_10 += one; ++ if ((bit & ((ITYPE)1) << 11) != 0) x_11 += one; ++ if ((bit & ((ITYPE)1) << 12) != 0) x_12 += one; ++ if ((bit & ((ITYPE)1) << 13) != 0) x_13 += one; ++ if ((bit & ((ITYPE)1) << 14) != 0) x_14 += one; ++ if ((bit & ((ITYPE)1) << 15) != 0) x_15 += one; ++ if ((bit & ((ITYPE)1) << 16) != 0) x_16 += one; ++ if ((bit & ((ITYPE)1) << 17) != 0) x_17 += one; ++ if ((bit & ((ITYPE)1) << 18) != 0) x_18 += one; ++ if ((bit & ((ITYPE)1) << 19) != 0) x_19 += one; ++ ++ if ((bit & ((ITYPE)1) << 20) != 0) x_20 += one; ++ if ((bit & ((ITYPE)1) << 21) != 0) x_21 += one; ++ if ((bit & ((ITYPE)1) << 22) != 0) x_22 += one; ++ if ((bit & ((ITYPE)1) << 23) != 0) x_23 += one; ++ if ((bit & ((ITYPE)1) << 24) != 0) x_24 += one; ++ if ((bit & ((ITYPE)1) << 25) != 0) x_25 += one; ++ if ((bit & ((ITYPE)1) << 26) != 0) x_26 += one; ++ if ((bit & ((ITYPE)1) << 27) != 0) x_27 += one; ++ if ((bit & ((ITYPE)1) << 28) != 0) x_28 += one; ++ if ((bit & ((ITYPE)1) << 29) != 0) x_29 += one; ++ ++ if ((bit & ((ITYPE)1) << 30) != 0) x_30 += one; ++ if ((bit & ((ITYPE)1) << 31) != 0) x_31 += one; ++ if ((bit & ((ITYPE)1) << 32) != 0) x_32 += one; ++ if ((bit & ((ITYPE)1) << 33) != 0) x_33 += one; ++ if ((bit & ((ITYPE)1) << 34) != 0) x_34 += one; ++ if ((bit & ((ITYPE)1) << 35) != 0) x_35 += one; ++ if ((bit & ((ITYPE)1) << 36) != 0) x_36 += one; ++ if ((bit & ((ITYPE)1) << 37) != 0) x_37 += one; ++ if ((bit & ((ITYPE)1) << 38) != 0) x_38 += one; ++ if ((bit & ((ITYPE)1) << 39) != 0) x_39 += one; ++ ++ if ((bit & ((ITYPE)1) << 40) != 0) x_40 += one; ++ if ((bit & ((ITYPE)1) << 41) != 0) x_41 += one; ++ if ((bit & ((ITYPE)1) << 42) != 0) x_42 += one; ++ if ((bit & ((ITYPE)1) << 43) != 0) x_43 += one; ++ if ((bit & ((ITYPE)1) << 44) != 0) x_44 += one; ++ if ((bit & ((ITYPE)1) << 45) != 0) x_45 += one; ++ if ((bit & ((ITYPE)1) << 46) != 0) x_46 += one; ++ if ((bit & ((ITYPE)1) << 47) != 0) x_47 += one; ++ if ((bit & ((ITYPE)1) << 48) != 0) x_48 += one; ++ if ((bit & ((ITYPE)1) << 49) != 0) x_49 += one; ++ } ++ ++ q[ 0] = x_00; ++ q[ 1] = x_01; ++ q[ 2] = x_02; ++ q[ 3] = x_03; ++ q[ 4] = x_04; ++ q[ 5] = x_05; ++ q[ 6] = x_06; ++ q[ 7] = x_07; ++ q[ 8] = x_08; ++ q[ 9] = x_09; ++ ++ q[10] = x_10; ++ q[11] = x_11; ++ q[12] = x_12; ++ q[13] = x_13; ++ q[14] = x_14; ++ q[15] = x_15; ++ q[16] = x_16; ++ q[17] = x_17; ++ q[18] = x_18; ++ q[19] = x_19; ++ ++ q[20] = x_20; ++ q[21] = x_21; ++ q[22] = x_22; ++ q[23] = x_23; ++ q[24] = x_24; ++ q[25] = x_25; ++ q[26] = x_26; ++ q[27] = x_27; ++ q[28] = x_28; ++ q[29] = x_29; ++ ++ q[30] = x_30; ++ q[31] = x_31; ++ q[32] = x_32; ++ q[33] = x_33; ++ q[34] = x_34; ++ q[35] = x_35; ++ q[36] = x_36; ++ q[37] = x_37; ++ q[38] = x_38; ++ q[39] = x_39; ++ ++ q[40] = x_40; ++ q[41] = x_41; ++ q[42] = x_42; ++ q[43] = x_43; ++ q[44] = x_44; ++ q[45] = x_45; ++ q[46] = x_46; ++ q[47] = x_47; ++ q[48] = x_48; ++ q[49] = x_49; ++} ++ ++/* { dg-final { scan-assembler {\mxsaddsp\M} } } */ ++/* { dg-final { scan-assembler {\mstxsspx\M} } } */ ++/* { dg-final { scan-assembler-not {\mmfvsrd\M} } } */ ++/* { dg-final { scan-assembler-not {\mmfvsrwz\M} } } */ +Index: gcc/testsuite/gcc.target/powerpc/pr81622.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/pr81622.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/pr81622.c (.../branches/gcc-7-branch) +@@ -0,0 +1,13 @@ ++/* PR target/81622 */ ++/* { dg-do compile { target { powerpc*-*-linux* } } } */ ++/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */ ++/* { dg-require-effective-target powerpc_p9vector_ok } */ ++/* { dg-options "-mcpu=power9 -O2" } */ ++ ++void ++foo (void) ++{ ++ __builtin_vec_ld (1, 2); /* { dg-error "invalid parameter combination" } */ ++ __builtin_vec_cmpne (1, 2); /* { dg-error "invalid parameter combination" } */ ++ __builtin_vec_st (1, 0, 5); /* { dg-error "invalid parameter combination" } */ ++} +Index: gcc/testsuite/gcc.target/powerpc/stack-limit.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/stack-limit.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/stack-limit.c (.../branches/gcc-7-branch) +@@ -0,0 +1,10 @@ ++/* { dg-options "-O0 -fstack-limit-register=r14" } */ ++ ++// PR80966 ++ ++int foo (int i) ++{ ++ char arr[135000]; ++ ++ arr[i] = 0; ++} +Index: gcc/testsuite/gcc.target/powerpc/pr81348.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/pr81348.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/pr81348.c (.../branches/gcc-7-branch) +@@ -0,0 +1,24 @@ ++/* { dg-do compile { target { powerpc64*-*-* && lp64 } } } */ ++/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power9" } } */ ++/* { dg-require-effective-target powerpc_p9vector_ok } */ ++/* { dg-options "-mcpu=power9 -Og" } */ ++ ++/* PR target/81348: Compiler died in doing short->float conversion due to using ++ the wrong register in a define_split. */ ++ ++int a; ++short b; ++float ***c; ++ ++void d(void) ++{ ++ int e = 3; ++ ++ if (a) ++ e = b; ++ ++ ***c = e; ++} ++ ++/* { dg-final { scan-assembler {\mlxsihzx\M} } } */ ++/* { dg-final { scan-assembler {\mvextsh2d\M} } } */ +Index: gcc/testsuite/gcc.target/powerpc/pr80718.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/powerpc/pr80718.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/powerpc/pr80718.c (.../branches/gcc-7-branch) +@@ -0,0 +1,298 @@ ++/* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ ++/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ ++/* { dg-require-effective-target powerpc_p8vector_ok } */ ++/* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ ++/* { dg-options "-mcpu=power8 -O3 -ffast-math" } */ ++ ++/* Taken from the Spec 2006 milc brenchmark. Ultimately, GCC wants to generate ++ a DF splat from offsettable memory. The register allocator decided it was ++ better to do the load in the GPR registers and do a move direct, rather than ++ doing a load in the VSX register sets. */ ++ ++typedef struct ++{ ++ double real; ++ double imag; ++} complex; ++ ++typedef struct ++{ ++ double real; ++ double imag; ++} double_complex; ++ ++complex cmplx (double x, double y); ++complex cadd (complex * a, complex * b); ++complex cmul (complex * a, complex * b); ++complex csub (complex * a, complex * b); ++complex cdiv (complex * a, complex * b); ++complex conjg (complex * a); ++complex ce_itheta (double theta); ++ ++double_complex dcmplx (double x, double y); ++double_complex dcadd (double_complex * a, double_complex * b); ++double_complex dcmul (double_complex * a, double_complex * b); ++double_complex dcsub (double_complex * a, double_complex * b); ++double_complex dcdiv (double_complex * a, double_complex * b); ++double_complex dconjg (double_complex * a); ++double_complex dcexp (double_complex * a); ++double_complex dclog (double_complex * a); ++double_complex dcsqrt (double_complex * z); ++double_complex dce_itheta (double theta); ++ ++typedef struct ++{ ++ unsigned long r0, r1, r2, r3, r4, r5, r6; ++ unsigned long multiplier, addend, ic_state; ++ double scale; ++} double_prn; ++ ++double myrand (double_prn * prn_pt); ++ ++typedef struct ++{ ++ complex e[3][3]; ++} su3_matrix; ++ ++typedef struct ++{ ++ complex c[3]; ++} su3_vector; ++ ++typedef struct ++{ ++ complex m01, m02, m12; ++ double m00im, m11im, m22im; ++ double space; ++} anti_hermitmat; ++ ++typedef struct ++{ ++ complex e[2][2]; ++} su2_matrix; ++typedef struct ++{ ++ su3_vector d[4]; ++} wilson_vector; ++typedef struct ++{ ++ su3_vector h[2]; ++} half_wilson_vector; ++typedef struct ++{ ++ wilson_vector c[3]; ++} color_wilson_vector; ++typedef struct ++{ ++ wilson_vector d[4]; ++} spin_wilson_vector; ++typedef struct ++{ ++ color_wilson_vector d[4]; ++} wilson_matrix; ++typedef struct ++{ ++ spin_wilson_vector c[3]; ++} wilson_propagator; ++ ++void mult_su3_nn (su3_matrix * a, su3_matrix * b, su3_matrix * c); ++void mult_su3_na (su3_matrix * a, su3_matrix * b, su3_matrix * c); ++void mult_su3_an (su3_matrix * a, su3_matrix * b, su3_matrix * c); ++double realtrace_su3 (su3_matrix * a, su3_matrix * b); ++complex trace_su3 (su3_matrix * a); ++complex complextrace_su3 (su3_matrix * a, su3_matrix * b); ++complex det_su3 (su3_matrix * a); ++void add_su3_matrix (su3_matrix * a, su3_matrix * b, su3_matrix * c); ++void sub_su3_matrix (su3_matrix * a, su3_matrix * b, su3_matrix * c); ++void scalar_mult_su3_matrix (su3_matrix * src, double scalar, ++ su3_matrix * dest); ++void scalar_mult_add_su3_matrix (su3_matrix * src1, su3_matrix * src2, ++ double scalar, su3_matrix * dest); ++void scalar_mult_sub_su3_matrix (su3_matrix * src1, su3_matrix * src2, ++ double scalar, su3_matrix * dest); ++void c_scalar_mult_su3mat (su3_matrix * src, complex * scalar, ++ su3_matrix * dest); ++void c_scalar_mult_add_su3mat (su3_matrix * src1, su3_matrix * src2, ++ complex * scalar, su3_matrix * dest); ++void c_scalar_mult_sub_su3mat (su3_matrix * src1, su3_matrix * src2, ++ complex * scalar, su3_matrix * dest); ++void su3_adjoint (su3_matrix * a, su3_matrix * b); ++void make_anti_hermitian (su3_matrix * m3, anti_hermitmat * ah3); ++void random_anti_hermitian (anti_hermitmat * mat_antihermit, ++ double_prn * prn_pt); ++void uncompress_anti_hermitian (anti_hermitmat * mat_anti, su3_matrix * mat); ++void compress_anti_hermitian (su3_matrix * mat, anti_hermitmat * mat_anti); ++void clear_su3mat (su3_matrix * dest); ++void su3mat_copy (su3_matrix * a, su3_matrix * b); ++void dumpmat (su3_matrix * m); ++ ++void su3_projector (su3_vector * a, su3_vector * b, su3_matrix * c); ++complex su3_dot (su3_vector * a, su3_vector * b); ++double su3_rdot (su3_vector * a, su3_vector * b); ++double magsq_su3vec (su3_vector * a); ++void su3vec_copy (su3_vector * a, su3_vector * b); ++void dumpvec (su3_vector * v); ++void clearvec (su3_vector * v); ++ ++void mult_su3_mat_vec (su3_matrix * a, su3_vector * b, su3_vector * c); ++void mult_su3_mat_vec_sum (su3_matrix * a, su3_vector * b, su3_vector * c); ++void mult_su3_mat_vec_sum_4dir (su3_matrix * a, su3_vector * b0, ++ su3_vector * b1, su3_vector * b2, ++ su3_vector * b3, su3_vector * c); ++void mult_su3_mat_vec_nsum (su3_matrix * a, su3_vector * b, su3_vector * c); ++void mult_adj_su3_mat_vec (su3_matrix * a, su3_vector * b, su3_vector * c); ++void mult_adj_su3_mat_vec_4dir (su3_matrix * a, su3_vector * b, ++ su3_vector * c); ++void mult_adj_su3_mat_4vec (su3_matrix * mat, su3_vector * src, ++ su3_vector * dest0, su3_vector * dest1, ++ su3_vector * dest2, su3_vector * dest3); ++void mult_adj_su3_mat_vec_sum (su3_matrix * a, su3_vector * b, ++ su3_vector * c); ++void mult_adj_su3_mat_vec_nsum (su3_matrix * a, su3_vector * b, ++ su3_vector * c); ++ ++void add_su3_vector (su3_vector * a, su3_vector * b, su3_vector * c); ++void sub_su3_vector (su3_vector * a, su3_vector * b, su3_vector * c); ++void sub_four_su3_vecs (su3_vector * a, su3_vector * b1, su3_vector * b2, ++ su3_vector * b3, su3_vector * b4); ++ ++void scalar_mult_su3_vector (su3_vector * src, double scalar, ++ su3_vector * dest); ++void scalar_mult_add_su3_vector (su3_vector * src1, su3_vector * src2, ++ double scalar, su3_vector * dest); ++void scalar_mult_sum_su3_vector (su3_vector * src1, su3_vector * src2, ++ double scalar); ++void scalar_mult_sub_su3_vector (su3_vector * src1, su3_vector * src2, ++ double scalar, su3_vector * dest); ++void scalar_mult_wvec (wilson_vector * src, double s, wilson_vector * dest); ++void scalar_mult_hwvec (half_wilson_vector * src, double s, ++ half_wilson_vector * dest); ++void scalar_mult_add_wvec (wilson_vector * src1, wilson_vector * src2, ++ double scalar, wilson_vector * dest); ++void scalar_mult_addtm_wvec (wilson_vector * src1, wilson_vector * src2, ++ double scalar, wilson_vector * dest); ++void c_scalar_mult_wvec (wilson_vector * src1, complex * phase, ++ wilson_vector * dest); ++void c_scalar_mult_add_wvec (wilson_vector * src1, wilson_vector * src2, ++ complex * phase, wilson_vector * dest); ++void c_scalar_mult_add_wvec2 (wilson_vector * src1, wilson_vector * src2, ++ complex s, wilson_vector * dest); ++void c_scalar_mult_su3vec (su3_vector * src, complex * phase, ++ su3_vector * dest); ++void c_scalar_mult_add_su3vec (su3_vector * v1, complex * phase, ++ su3_vector * v2); ++void c_scalar_mult_sub_su3vec (su3_vector * v1, complex * phase, ++ su3_vector * v2); ++ ++void left_su2_hit_n (su2_matrix * u, int p, int q, su3_matrix * link); ++void right_su2_hit_a (su2_matrix * u, int p, int q, su3_matrix * link); ++void dumpsu2 (su2_matrix * u); ++void mult_su2_mat_vec_elem_n (su2_matrix * u, complex * x0, complex * x1); ++void mult_su2_mat_vec_elem_a (su2_matrix * u, complex * x0, complex * x1); ++ ++void mult_mat_wilson_vec (su3_matrix * mat, wilson_vector * src, ++ wilson_vector * dest); ++void mult_su3_mat_hwvec (su3_matrix * mat, half_wilson_vector * src, ++ half_wilson_vector * dest); ++void mult_adj_mat_wilson_vec (su3_matrix * mat, wilson_vector * src, ++ wilson_vector * dest); ++void mult_adj_su3_mat_hwvec (su3_matrix * mat, half_wilson_vector * src, ++ half_wilson_vector * dest); ++ ++void add_wilson_vector (wilson_vector * src1, wilson_vector * src2, ++ wilson_vector * dest); ++void sub_wilson_vector (wilson_vector * src1, wilson_vector * src2, ++ wilson_vector * dest); ++double magsq_wvec (wilson_vector * src); ++complex wvec_dot (wilson_vector * src1, wilson_vector * src2); ++complex wvec2_dot (wilson_vector * src1, wilson_vector * src2); ++double wvec_rdot (wilson_vector * a, wilson_vector * b); ++ ++void wp_shrink (wilson_vector * src, half_wilson_vector * dest, ++ int dir, int sign); ++void wp_shrink_4dir (wilson_vector * a, half_wilson_vector * b1, ++ half_wilson_vector * b2, half_wilson_vector * b3, ++ half_wilson_vector * b4, int sign); ++void wp_grow (half_wilson_vector * src, wilson_vector * dest, ++ int dir, int sign); ++void wp_grow_add (half_wilson_vector * src, wilson_vector * dest, ++ int dir, int sign); ++void grow_add_four_wvecs (wilson_vector * a, half_wilson_vector * b1, ++ half_wilson_vector * b2, half_wilson_vector * b3, ++ half_wilson_vector * b4, int sign, int sum); ++void mult_by_gamma (wilson_vector * src, wilson_vector * dest, int dir); ++void mult_by_gamma_left (wilson_matrix * src, wilson_matrix * dest, int dir); ++void mult_by_gamma_right (wilson_matrix * src, wilson_matrix * dest, int dir); ++void mult_swv_by_gamma_l (spin_wilson_vector * src, spin_wilson_vector * dest, ++ int dir); ++void mult_swv_by_gamma_r (spin_wilson_vector * src, spin_wilson_vector * dest, ++ int dir); ++void su3_projector_w (wilson_vector * a, wilson_vector * b, su3_matrix * c); ++void clear_wvec (wilson_vector * dest); ++void copy_wvec (wilson_vector * src, wilson_vector * dest); ++void dump_wilson_vec (wilson_vector * src); ++ ++double gaussian_rand_no (double_prn * prn_pt); ++typedef int int32type; ++typedef unsigned int u_int32type; ++void byterevn (int32type w[], int n); ++ ++void ++mult_adj_su3_mat_vec (su3_matrix * a, su3_vector * b, su3_vector * c) ++{ ++ int i; ++ register double t, ar, ai, br, bi, cr, ci; ++ for (i = 0; i < 3; i++) ++ { ++ ar = a->e[0][i].real; ++ ai = a->e[0][i].imag; ++ ++ br = b->c[0].real; ++ bi = b->c[0].imag; ++ ++ cr = ar * br; ++ t = ai * bi; ++ cr += t; ++ ++ ci = ar * bi; ++ t = ai * br; ++ ci -= t; ++ ++ ar = a->e[1][i].real; ++ ai = a->e[1][i].imag; ++ ++ br = b->c[1].real; ++ bi = b->c[1].imag; ++ ++ t = ar * br; ++ cr += t; ++ t = ai * bi; ++ cr += t; ++ ++ t = ar * bi; ++ ci += t; ++ t = ai * br; ++ ci -= t; ++ ++ ar = a->e[2][i].real; ++ ai = a->e[2][i].imag; ++ ++ br = b->c[2].real; ++ bi = b->c[2].imag; ++ ++ t = ar * br; ++ cr += t; ++ t = ai * bi; ++ cr += t; ++ ++ t = ar * bi; ++ ci += t; ++ t = ai * br; ++ ci -= t; ++ ++ c->c[i].real = cr; ++ c->c[i].imag = ci; ++ } ++} ++ ++/* { dg-final { scan-assembler-not "mtvsrd" } } */ +Index: gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-2.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-2.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-2.c (.../branches/gcc-7-branch) +@@ -0,0 +1,28 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target arm_cortex_m } */ ++/* { dg-require-effective-target arm_thumb2_ok } */ ++/* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mcpu=*" } { "-mcpu=cortex-m4" "-mcpu=cortex-m7" } } */ ++/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */ ++/* { dg-options "-march=armv7e-m -mfloat-abi=hard -O2 -mthumb -mslow-flash-data" } */ ++ ++float f (float); ++ ++const float max = 0.01f; ++ ++int ++g (float in) ++{ ++ if (f (in) + f (in) < max) ++ return 0; ++ return 1; ++} ++ ++double foo (void) ++{ ++ return 0xF1EC7A5239123AF; ++} ++ ++double bar (void) ++{ ++ return 0.0f; ++} +Index: gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-3.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-3.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-3.c (.../branches/gcc-7-branch) +@@ -0,0 +1,25 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target arm_cortex_m } */ ++/* { dg-require-effective-target arm_thumb2_ok } */ ++/* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mcpu=*" } { "-mcpu=cortex-m4" "-mcpu=cortex-m7" } } */ ++/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */ ++/* { dg-options "-march=armv7e-m -mfloat-abi=hard -mthumb -mslow-flash-data" } */ ++ ++/* From PR71607 */ ++ ++float b; ++void fn1 (); ++ ++float ++fn2 () ++{ ++ return 1.1f; ++} ++ ++void ++fn3 () ++{ ++ float a[2]; ++ a[1] = b; ++ fn1 (a); ++} +Index: gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-4.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-4.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-4.c (.../branches/gcc-7-branch) +@@ -0,0 +1,26 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target arm_cortex_m } */ ++/* { dg-require-effective-target arm_thumb2_ok } */ ++/* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mcpu=*" } { "-mcpu=cortex-m4" "-mcpu=cortex-m7" } } */ ++/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */ ++/* { dg-options "-march=armv7e-m -mfloat-abi=hard -O2 -mthumb -mslow-flash-data" } */ ++ ++double __attribute__ ((target ("fpu=fpv5-d16"))) ++foo (void) ++{ ++ return 1.0f; ++} ++ ++float __attribute__ ((target ("fpu=fpv5-d16"))) ++bar (void) ++{ ++ return 1.0f; ++} ++ ++float __attribute__ ((target ("fpu=fpv5-sp-d16"))) ++baz (void) ++{ ++ return 1.0f; ++} ++ ++/* { dg-final { scan-assembler-times "#1\\.0e\\+0" 3 } } */ +Index: gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-5.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-5.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-5.c (.../branches/gcc-7-branch) +@@ -0,0 +1,14 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target arm_cortex_m } */ ++/* { dg-require-effective-target arm_thumb2_ok } */ ++/* { dg-skip-if "avoid conflicts with multilib options" { *-*-* } { "-mcpu=*" } { "-mcpu=cortex-m4" "-mcpu=cortex-m7" } } */ ++/* { dg-skip-if "do not override -mfloat-abi" { *-*-* } { "-mfloat-abi=*" } { "-mfloat-abi=hard" } } */ ++/* { dg-options "-march=armv7e-m -mfloat-abi=hard -O2 -mthumb -mslow-flash-data" } */ ++ ++double __attribute__ ((target ("fpu=fpv5-sp-d16"))) ++foo (void) ++{ ++ return 1.0f; ++} ++ ++/* { dg-final { scan-assembler-not "#1\\.0e\\+0" } } */ +Index: gcc/testsuite/gcc.target/arm/pr71778.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/arm/pr71778.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/arm/pr71778.c (.../branches/gcc-7-branch) +@@ -0,0 +1,24 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target arm_neon_ok } */ ++/* { dg-options "-O2" } */ ++/* { dg-add-options arm_neon } */ ++ ++typedef __simd128_int32_t int32x4_t; ++ ++__extension__ extern __inline int32x4_t ++__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ++vshrq_n_s32 (int32x4_t __a, const int __b) ++{ ++ /* Errors for arm_neon.h intrinsics using constants end up on the line ++ in arm_neon.h rather than the source file line. That means we ++ need to put the dg-error up here, rather than on line 22 where we'd ++ like it. */ ++ return (int32x4_t)__builtin_neon_vshrs_nv4si (__a, __b); /* { dg-error "argument 2 must be a constant immediate" } */ ++} ++ ++int32x4_t ++shift (int32x4_t a, int b) ++{ ++ return vshrq_n_s32 (a, b); ++} ++ +Index: gcc/testsuite/gcc.target/arm/fpscr.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/arm/fpscr.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/arm/fpscr.c (.../branches/gcc-7-branch) +@@ -0,0 +1,16 @@ ++/* Test the fpscr builtins. */ ++ ++/* { dg-do compile } */ ++/* { dg-require-effective-target arm_fp_ok } */ ++/* { dg-skip-if "need fp instructions" { *-*-* } { "-mfloat-abi=soft" } { "" } } */ ++/* { dg-add-options arm_fp } */ ++ ++void ++test_fpscr () ++{ ++ volatile unsigned int status = __builtin_arm_get_fpscr (); ++ __builtin_arm_set_fpscr (status); ++} ++ ++/* { dg-final { scan-assembler "mrc\tp10, 7, r\[0-9\]+, cr1, cr0, 0" } } */ ++/* { dg-final { scan-assembler "mcr\tp10, 7, r\[0-9\]+, cr1, cr0, 0" } } */ +Index: gcc/testsuite/gcc.target/arm/tls-disable-literal-pool.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/arm/tls-disable-literal-pool.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/arm/tls-disable-literal-pool.c (.../branches/gcc-7-branch) +@@ -0,0 +1,14 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target tls_native } */ ++/* { dg-require-effective-target arm_cortex_m } */ ++/* { dg-require-effective-target arm_thumb2_ok } */ ++/* { dg-options "-mslow-flash-data" } */ ++ ++__thread int x = 0; ++ ++int ++bar () ++{ ++ return x; /* { dg-message "sorry, unimplemented: accessing thread-local storage is not currently supported with -mpure-code or -mslow-flash-data" } */ ++} ++ +Index: gcc/testsuite/gcc.target/avr/isr-test.h +=================================================================== +--- a/src/gcc/testsuite/gcc.target/avr/isr-test.h (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/avr/isr-test.h (.../branches/gcc-7-branch) +@@ -0,0 +1,282 @@ ++#ifndef ISR_TEST_H ++#define ISR_TEST_H ++ ++#include ++ ++#define ISR(N,...) \ ++__attribute__ ((used, externally_visible , ## __VA_ARGS__)) \ ++ void __vector_##N (void); \ ++ void __vector_##N (void) ++ ++#define SFR(ADDR) (*(unsigned char volatile*) (__AVR_SFR_OFFSET__ + (ADDR))) ++#define CORE_SFRS SFR (0x38) ++#define SREG SFR (0x3F) ++#define SPL SFR (0x3D) ++#define EIND SFR (0x3C) ++#define RAMPZ SFR (0x3B) ++#define RAMPY SFR (0x3A) ++#define RAMPX SFR (0x39) ++#define RAMPD SFR (0x38) ++ ++#ifdef __AVR_HAVE_JMP_CALL__ ++#define VEC_SIZE 4 ++#else ++#define VEC_SIZE 2 ++#endif ++ ++#ifdef __AVR_TINY__ ++#define FIRST_REG 16 ++#else ++#define FIRST_REG 0 ++#endif ++ ++#define CR "\n\t" ++ ++typedef struct ++{ ++ unsigned char sfrs[8]; ++ unsigned char gprs[32 - FIRST_REG]; ++} regs_t; ++ ++regs_t reginfo1, reginfo2; ++ ++__attribute__((noinline)) ++static void clear_reginfo (void) ++{ ++ memset (reginfo1.sfrs, 0, sizeof (reginfo1.sfrs)); ++ memset (reginfo2.sfrs, 0, sizeof (reginfo2.sfrs)); ++} ++ ++__attribute__((noinline)) ++static void compare_reginfo (unsigned long gpr_ignore) ++{ ++ signed char regno; ++ const unsigned char *preg1 = ®info1.gprs[0]; ++ const unsigned char *preg2 = ®info2.gprs[0]; ++ ++ if (memcmp (®info1, ®info2, 8)) ++ __builtin_abort(); ++ ++ gpr_ignore >>= FIRST_REG; ++ ++ for (regno = FIRST_REG; regno < 32; ++ regno++, preg1++, preg2++, gpr_ignore >>= 1) ++ { ++ if (gpr_ignore & 1) ++ continue; ++ ++ if (*preg1 != *preg2) ++ { ++ static signed char volatile failed_regno; ++ failed_regno = regno; ++ __builtin_abort(); ++ } ++ } ++} ++ ++/* STore GPR */ ++#define ST(regno,M) \ ++ CR "sts %[" #M "]+8-%[first]+" #regno ", r" #regno ++ ++/* STore SFR */ ++#define ST_SFR(sfr, n_sfr, M) \ ++ CR "in __tmp_reg__,%i[s_" #sfr "]" \ ++ CR "sts %[" #M "]+" #n_sfr ", __tmp_reg__" ++ ++/* Named asm OPerand for SFR */ ++#define OP_SFR(sfr) \ ++ , [s_ ## sfr] "n" (&(sfr)) ++ ++/* Write funny value to SFR */ ++#define XX_SFR(sfr) \ ++ CR "dec r31 $ out %i[s_" #sfr "], r31" ++ ++/* Write 0 to SFR */ ++#define OO_SFR(sfr) \ ++ CR "out %i[s_" #sfr "], __zero_reg__" ++ ++/* Macros for SREG */ ++#define ST_SREG(M) ST_SFR (SREG,0,M) ++#define OP_SREG OP_SFR (SREG) ++#define XX_SREG XX_SFR (SREG) ++ ++/* Macros for EIND */ ++#if defined __AVR_HAVE_EIJMP_EICALL__ ++#define ST_EIND(M) ST_SFR (EIND,1,M) ++#define OP_EIND OP_SFR (EIND) ++#else ++#define ST_EIND(M) /* empty */ ++#define OP_EIND /* empty */ ++#endif ++ ++/* Macros for RAMPX */ ++#if defined (__AVR_HAVE_RAMPX__) ++#define ST_RAMPX(M) ST_SFR (RAMPX,2,M) ++#define OP_RAMPX OP_SFR (RAMPX) ++#define XX_RAMPX XX_SFR (RAMPX) ++#define OO_RAMPX OO_SFR (RAMPX) ++#else ++#define ST_RAMPX(M) /* empty */ ++#define OP_RAMPX /* empty */ ++#define XX_RAMPX /* empty */ ++#define OO_RAMPX /* empty */ ++#endif ++ ++/* Macros for RAMPY */ ++#if defined (__AVR_HAVE_RAMPY__) ++#define ST_RAMPY(M) ST_SFR (RAMPY,3,M) ++#define OP_RAMPY OP_SFR (RAMPY) ++#define XX_RAMPY XX_SFR (RAMPY) ++#define OO_RAMPY OO_SFR (RAMPY) ++#else ++#define ST_RAMPY(M) /* empty */ ++#define OP_RAMPY /* empty */ ++#define XX_RAMPY /* empty */ ++#define OO_RAMPY /* empty */ ++#endif ++ ++/* Macros for RAMPZ */ ++#if defined (__AVR_HAVE_RAMPZ__) ++#define ST_RAMPZ(M) ST_SFR (RAMPZ,4,M) ++#define OP_RAMPZ OP_SFR (RAMPZ) ++#define XX_RAMPZ XX_SFR (RAMPZ) ++#define OO_RAMPZ OO_SFR (RAMPZ) ++#else ++#define ST_RAMPZ(M) /* empty */ ++#define OP_RAMPZ /* empty */ ++#define XX_RAMPZ /* empty */ ++#define OO_RAMPZ /* empty */ ++#endif ++ ++/* Macros for RAMPD */ ++#if defined (__AVR_HAVE_RAMPD__) ++#define ST_RAMPD(M) ST_SFR (RAMPD,5,M) ++#define OP_RAMPD OP_SFR (RAMPD) ++#else ++#define ST_RAMPD(M) /* empty */ ++#define OP_RAMPD /* empty */ ++#endif ++ ++/* Macros for all GPRs */ ++#if defined __AVR_TINY__ ++#define ST_REGS_LO(M) /* empty */ ++#else ++#define ST_REGS_LO(M) \ ++ ST(0,M) ST(1,M) ST(2,M) ST(3,M) \ ++ ST(4,M) ST(5,M) ST(6,M) ST(7,M) \ ++ ST(8,M) ST(9,M) ST(10,M) ST(11,M) \ ++ ST(12,M) ST(13,M) ST(14,M) ST(15,M) ++#endif /* AVR_TINY */ ++ ++#define ST_REGS_HI(M) \ ++ ST(16,M) ST(17,M) ST(18,M) ST(19,M) \ ++ ST(20,M) ST(21,M) ST(22,M) ST(23,M) \ ++ ST(24,M) ST(25,M) ST(26,M) ST(27,M) \ ++ ST(28,M) ST(29,M) ST(30,M) ST(31,M) ++ ++__attribute__((used,naked,noinline,noclone)) ++static void host_store1 (void) ++{ ++ __asm __volatile__ ++ ("nop" ++ CR ".global do_stores_before" ++ CR ".type do_stores_before,@function" ++ CR "do_stores_before:" ++ /* Funny values to some SFRs */ ++ CR "ldi r31, 1 + 'Z'" ++ XX_RAMPZ ++ XX_RAMPY ++ XX_RAMPX ++ CR "dec __zero_reg__" ++ CR "clr r31" ++ XX_SREG ++ /* Must set I-flag due to RETI of ISR */ ++ CR "sei" ++ /* Store core regs before ISR */ ++ ST_RAMPX (mem1) ++ ST_RAMPY (mem1) ++ ST_RAMPZ (mem1) ++ ST_RAMPD (mem1) ++ ST_EIND (mem1) ++ ST_SREG (mem1) ++ CR "ldi r31, 0xaa" ++ CR "mov __tmp_reg__, r31" ++ CR "ldi r31, 31" ++ ST_REGS_LO (mem1) ++ ST_REGS_HI (mem1) ++ CR "ret" ++ : /* No outputs */ ++ : [mem1] "i" (®info1), [first] "n" (FIRST_REG) ++ OP_RAMPX ++ OP_RAMPY ++ OP_RAMPZ ++ OP_RAMPD ++ OP_EIND ++ OP_SREG ++ : "memory", "r31"); ++} ++ ++__attribute__((used,naked,noinline,noclone)) ++static void host_store2 (void) ++{ ++ __asm __volatile__ ++ ("nop" ++ CR ".global do_stores_after" ++ CR ".type do_stores_after,@function" ++ CR "do_stores_after:" ++ /* Store core regs after ISR */ ++ ST_REGS_LO (mem2) ++ ST_REGS_HI (mem2) ++ ST_RAMPX (mem2) ++ ST_RAMPY (mem2) ++ ST_RAMPZ (mem2) ++ ST_RAMPD (mem2) ++ ST_EIND (mem2) ++ ST_SREG (mem2) ++ /* Undo funny values */ ++ CR "clr __zero_reg__" ++ OO_RAMPX ++ OO_RAMPY ++ OO_RAMPZ ++ CR "ret" ++ : /* No outputs */ ++ : [mem2] "i" (®info2), [first] "n" (FIRST_REG) ++ OP_RAMPX ++ OP_RAMPY ++ OP_RAMPZ ++ OP_RAMPD ++ OP_EIND ++ OP_SREG ++ : "memory"); ++} ++ ++#define MK_CALL_ISR(vecno) \ ++ __asm __volatile__ \ ++ (/* Funny values to some SFRs */ \ ++ /* Must set I-flag due to RETI of ISR */ \ ++ /* Store core regs before ISR */ \ ++ CR "%~call do_stores_before" \ ++ /* Execute ISR */ \ ++ CR "%~call __vectors + %[vect]" \ ++ /* Store core regs after ISR */ \ ++ /* Undo funny values */ \ ++ CR "%~call do_stores_after" \ ++ : /* No outputs */ \ ++ : [vect] "i" (VEC_SIZE * (vecno)) \ ++ , "i" (host_store1) \ ++ , "i" (host_store2) \ ++ : "memory", "r31") ++ ++ ++#define MK_RUN_ISR(N, IGMSK) \ ++ \ ++__attribute__((noinline,noclone)) \ ++void run_isr_ ## N (void) \ ++{ \ ++ clear_reginfo(); \ ++ MK_CALL_ISR (N); \ ++ compare_reginfo (IGMSK); \ ++} ++ ++#endif /* ISR_TEST_H */ ++ +Index: gcc/testsuite/gcc.target/avr/torture/isr-01-simple.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/avr/torture/isr-01-simple.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/avr/torture/isr-01-simple.c (.../branches/gcc-7-branch) +@@ -0,0 +1,98 @@ ++/* { dg-do run } */ ++/* { dg-options "-std=c99" } */ ++ ++#include "../isr-test.h" ++ ++int volatile v; ++ ++/**********************************************************************/ ++ ++ISR (1, signal) ++{ ++} ++ ++MK_RUN_ISR (1, 0) ++ ++void test1 (void) ++{ ++ run_isr_1(); ++} ++ ++/**********************************************************************/ ++ ++ISR (2, signal) ++{ ++ v++; ++} ++ ++MK_RUN_ISR (2, 0) ++ ++void test2 (void) ++{ ++ v = 0; ++ run_isr_2(); ++ if (v != 1) ++ __builtin_abort(); ++} ++ ++ ++/**********************************************************************/ ++ ++ISR (3, signal) ++{ ++ __asm __volatile__ ("$ lds r27, v" ++ "$ swap r27" ++ "$ sts v, r27" ++ ::: "memory", "r27"); ++} ++ ++MK_RUN_ISR (3, 0) ++ ++void test3 (void) ++{ ++ run_isr_3(); ++ if (v != 0x10) ++ __builtin_abort(); ++} ++ ++/**********************************************************************/ ++ ++ISR (4, signal) ++{ ++ __asm __volatile__ ("sts v,__zero_reg__" ::: "memory"); ++} ++ ++MK_RUN_ISR (4, 0) ++ ++void test4 (void) ++{ ++ run_isr_4(); ++ if (v != 0) ++ __builtin_abort(); ++} ++ ++/**********************************************************************/ ++ ++ISR (5, signal) ++{ ++ __asm __volatile__ ("clt"); ++} ++ ++MK_RUN_ISR (5, 0) ++ ++void test5 (void) ++{ ++ run_isr_5(); ++} ++ ++/**********************************************************************/ ++ ++int main (void) ++{ ++ test1(); ++ test2(); ++ test3(); ++ test4(); ++ test5(); ++ return 0; ++} +Index: gcc/testsuite/gcc.target/avr/torture/isr-02-call.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/avr/torture/isr-02-call.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/avr/torture/isr-02-call.c (.../branches/gcc-7-branch) +@@ -0,0 +1,60 @@ ++/* { dg-do run } */ ++/* { dg-options "-std=c99" } */ ++ ++#include "../isr-test.h" ++ ++int volatile v; ++ ++__attribute__((noinline,noclone)) ++void inc_v (void) ++{ ++ v++; ++} ++ ++/**********************************************************************/ ++ ++ISR (1, signal) ++{ ++ inc_v(); ++} ++ ++MK_RUN_ISR (1, 0) ++ ++void test1 (void) ++{ ++ run_isr_1(); ++ if (v != 1) ++ __builtin_abort(); ++} ++ ++/**********************************************************************/ ++ ++ISR (2, signal) ++{ ++ if (v == 1) ++ inc_v(); ++ else ++ v += 2; ++} ++ ++MK_RUN_ISR (2, 0) ++ ++void test2 (void) ++{ ++ run_isr_2(); ++ if (v != 2) ++ __builtin_abort(); ++ run_isr_2(); ++ if (v != 4) ++ __builtin_abort(); ++} ++ ++ ++/**********************************************************************/ ++ ++int main (void) ++{ ++ test1(); ++ test2(); ++ return 0; ++} +Index: gcc/testsuite/gcc.target/avr/torture/isr-03-fixed.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/avr/torture/isr-03-fixed.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/avr/torture/isr-03-fixed.c (.../branches/gcc-7-branch) +@@ -0,0 +1,146 @@ ++/* { dg-do run } */ ++/* { dg-options "-std=gnu99 -fno-lto -fno-toplevel-reorder" } */ ++ ++// No LTO for now due to PR lto/68384. ++ ++#ifdef __AVR_TINY__ ++unsigned char reg2; ++#else ++register unsigned char reg2 __asm("r2"); ++#endif ++ ++#include "../isr-test.h" ++ ++#define SET_REG(reg,val) \ ++ do { \ ++ reg = (val); \ ++ __asm __volatile__("" : "+r" (reg)); \ ++ } while (0) \ ++ ++#define GET_REG(reg) \ ++ ({ \ ++ __asm __volatile__("" : "+r" (reg)); \ ++ reg; \ ++ }) ++ ++/**********************************************************************/ ++ ++ISR (1, signal) ++{ ++ reg2++; ++} ++ ++MK_RUN_ISR (1, 1ul << 2) ++ ++void test1 (void) ++{ ++ SET_REG (reg2, 0); ++ run_isr_1(); ++ if (GET_REG (reg2) != 1) ++ __builtin_abort(); ++} ++ ++/**********************************************************************/ ++ ++__attribute__((noinline,noclone)) ++void inc_r2 (void) ++{ ++ reg2++; ++} ++ ++ISR (2, signal) ++{ ++ inc_r2 (); ++} ++ ++MK_RUN_ISR (2, 1ul << 2) ++ ++void test2 (void) ++{ ++ run_isr_2(); ++ if (GET_REG (reg2) != 2) ++ __builtin_abort(); ++} ++ ++ ++/**********************************************************************/ ++ ++ISR (3, signal) ++{ ++#ifndef __AVR_TINY__ ++ register char r4 __asm ("r4"); ++ __asm __volatile ("inc %0" : "+r" (r4)); ++ __asm __volatile ("inc r5" ::: "r5"); ++#endif ++} ++ ++MK_RUN_ISR (3, 0) ++ ++void test3 (void) ++{ ++ run_isr_3(); ++} ++ ++ ++/**********************************************************************/ ++ ++#define CLOBB(reg) \ ++ do { \ ++ __asm __volatile__ ("inc " #reg ::: #reg); \ ++ } while (0) ++ ++ISR (4, signal) ++{ ++ char volatile v; ++ v = 1; ++ ++#ifndef __AVR_TINY__ ++ CLOBB (r3); ++ CLOBB (r4); ++ CLOBB (r5); ++ CLOBB (r6); ++ CLOBB (r7); ++ CLOBB (r8); ++ CLOBB (r9); ++ CLOBB (r10); ++ CLOBB (r11); ++ CLOBB (r12); ++ CLOBB (r13); ++ CLOBB (r14); ++ CLOBB (r15); ++ CLOBB (r16); ++ CLOBB (r17); ++#endif ++ ++ CLOBB (r18); ++ CLOBB (r19); ++ CLOBB (r20); ++ CLOBB (r21); ++ CLOBB (r22); ++ CLOBB (r23); ++ CLOBB (r24); ++ CLOBB (r25); ++ CLOBB (r26); ++ CLOBB (r27); ++ CLOBB (r30); ++ CLOBB (r31); ++} ++ ++MK_RUN_ISR (4, 0) ++ ++void test4 (void) ++{ ++ run_isr_4(); ++} ++ ++ ++/**********************************************************************/ ++ ++int main (void) ++{ ++ test1(); ++ test2(); ++ test3(); ++ test4(); ++ return 0; ++} +Index: gcc/testsuite/gcc.target/s390/pr81534.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/s390/pr81534.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/s390/pr81534.c (.../branches/gcc-7-branch) +@@ -0,0 +1,17 @@ ++/* PR81534 This testcase used to fail because the HI/QI ++ "atomic_fetch_" expander accepted symbolic references ++ and emitted CAS patterns whose insn definition rejected them. */ ++ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -march=zEC12" } */ ++ ++struct { ++ short b; ++ long c; ++} a = {}; ++ ++void ++d () ++{ ++ __atomic_fetch_add(&a.b, 0, 5); ++} +Index: gcc/testsuite/gcc.target/s390/pr80725.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/s390/pr80725.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/s390/pr80725.c (.../branches/gcc-7-branch) +@@ -0,0 +1,26 @@ ++/* Regression test for PR/80725. */ ++ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -march=zEC12" } */ ++ ++int a, e; ++const char b; ++char c; ++const int d; ++void bar (short); ++ ++void ++foo (int x, int y) ++{ ++ long f = d; ++ short g = 0; ++ while (e) ++ while (a < x) ++ { ++ if (y) ++ goto *d; ++ g = b | b + g; ++ bar (g); ++ c = (char) (long) foo; ++ } ++} +Index: gcc/testsuite/gcc.target/sparc/fpcmpshl.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/sparc/fpcmpshl.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/sparc/fpcmpshl.c (.../branches/gcc-7-branch) +@@ -0,0 +1,81 @@ ++/* { dg-do compile } */ ++/* { dg-options "-mvis4b" } */ ++ ++typedef unsigned char vec8 __attribute__((vector_size(8))); ++typedef short vec16 __attribute__((vector_size(8))); ++typedef int vec32 __attribute__((vector_size(8))); ++ ++long test_fpcmple8shl (vec8 a, vec8 b) ++{ ++ return __builtin_vis_fpcmple8shl (a, b, 2); ++} ++ ++long test_fpcmpgt8shl (vec8 a, vec8 b) ++{ ++ return __builtin_vis_fpcmpgt8shl (a, b, 2); ++} ++ ++long test_fpcmpeq8shl (vec8 a, vec8 b) ++{ ++ return __builtin_vis_fpcmpeq8shl (a, b, 2); ++} ++ ++long test_fpcmpne8shl (vec8 a, vec8 b) ++{ ++ return __builtin_vis_fpcmpne8shl (a, b, 2); ++} ++ ++long test_fpcmple16shl (vec16 a, vec16 b) ++{ ++ return __builtin_vis_fpcmple16shl (a, b, 2); ++} ++ ++long test_fpcmpgt16shl (vec16 a, vec16 b) ++{ ++ return __builtin_vis_fpcmpgt16shl (a, b, 2); ++} ++ ++long test_fpcmpeq16shl (vec16 a, vec16 b) ++{ ++ return __builtin_vis_fpcmpeq16shl (a, b, 2); ++} ++ ++long test_fpcmpne16shl (vec16 a, vec16 b) ++{ ++ return __builtin_vis_fpcmpne16shl (a, b, 2); ++} ++ ++long test_fpcmple32shl (vec32 a, vec32 b) ++{ ++ return __builtin_vis_fpcmple32shl (a, b, 2); ++} ++ ++long test_fpcmpgt32shl (vec32 a, vec32 b) ++{ ++ return __builtin_vis_fpcmpgt32shl (a, b, 2); ++} ++ ++long test_fpcmpeq32shl (vec32 a, vec32 b) ++{ ++ return __builtin_vis_fpcmpeq32shl (a, b, 2); ++} ++ ++long test_fpcmpne32shl (vec32 a, vec32 b) ++{ ++ return __builtin_vis_fpcmpne32shl (a, b, 2); ++} ++ ++/* { dg-final { scan-assembler "fpcmple8shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpgt8shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpeq8shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpne8shl\t%" } } */ ++ ++/* { dg-final { scan-assembler "fpcmple16shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpgt16shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpeq16shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpne16shl\t%" } } */ ++ ++/* { dg-final { scan-assembler "fpcmple32shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpgt32shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpeq32shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpne32shl\t%" } } */ +Index: gcc/testsuite/gcc.target/sparc/fpcmpushl.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/sparc/fpcmpushl.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/sparc/fpcmpushl.c (.../branches/gcc-7-branch) +@@ -0,0 +1,43 @@ ++/* { dg-do compile } */ ++/* { dg-options "-mvis4b" } */ ++ ++typedef unsigned char vec8 __attribute__((vector_size(8))); ++typedef short vec16 __attribute__((vector_size(8))); ++typedef int vec32 __attribute__((vector_size(8))); ++ ++long test_fpcmpule8shl (vec8 a, vec8 b) ++{ ++ return __builtin_vis_fpcmpule8shl (a, b, 2); ++} ++ ++long test_fpcmpugt8shl (vec8 a, vec8 b) ++{ ++ return __builtin_vis_fpcmpugt8shl (a, b, 2); ++} ++ ++long test_fpcmpule16shl (vec16 a, vec16 b) ++{ ++ return __builtin_vis_fpcmpule16shl (a, b, 2); ++} ++ ++long test_fpcmpugt16shl (vec16 a, vec16 b) ++{ ++ return __builtin_vis_fpcmpugt16shl (a, b, 2); ++} ++ ++long test_fpcmpule32shl (vec32 a, vec32 b) ++{ ++ return __builtin_vis_fpcmpule32shl (a, b, 2); ++} ++ ++long test_fpcmpugt32shl (vec32 a, vec32 b) ++{ ++ return __builtin_vis_fpcmpugt32shl (a, b, 2); ++} ++ ++/* { dg-final { scan-assembler "fpcmpule8shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpugt8shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpule16shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpugt16shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpule32shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpugt32shl\t%" } } */ +Index: gcc/testsuite/gcc.target/sparc/fpcmpurshl.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/sparc/fpcmpurshl.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/sparc/fpcmpurshl.c (.../branches/gcc-7-branch) +@@ -0,0 +1,25 @@ ++/* { dg-do compile } */ ++/* { dg-options "-mvis4b" } */ ++ ++typedef unsigned char vec8 __attribute__((vector_size(8))); ++typedef short vec16 __attribute__((vector_size(8))); ++typedef int vec32 __attribute__((vector_size(8))); ++ ++long test_fpcmpur8shl (vec8 a, vec8 b) ++{ ++ return __builtin_vis_fpcmpur8shl (a, b, 2); ++} ++ ++long test_fpcmpur16shl (vec16 a, vec16 b) ++{ ++ return __builtin_vis_fpcmpur16shl (a, b, 2); ++} ++ ++long test_fpcmpur32shl (vec32 a, vec32 b) ++{ ++ return __builtin_vis_fpcmpur32shl (a, b, 2); ++} ++ ++/* { dg-final { scan-assembler "fpcmpur8shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpur16shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpur32shl\t%" } } */ +Index: gcc/testsuite/gcc.target/sparc/fpcmpdeshl.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/sparc/fpcmpdeshl.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/sparc/fpcmpdeshl.c (.../branches/gcc-7-branch) +@@ -0,0 +1,25 @@ ++/* { dg-do compile } */ ++/* { dg-options "-mvis4b" } */ ++ ++typedef unsigned char vec8 __attribute__((vector_size(8))); ++typedef short vec16 __attribute__((vector_size(8))); ++typedef int vec32 __attribute__((vector_size(8))); ++ ++long test_fpcmpde8shl (vec8 a, vec8 b) ++{ ++ return __builtin_vis_fpcmpde8shl (a, b, 2); ++} ++ ++long test_fpcmpde16shl (vec16 a, vec16 b) ++{ ++ return __builtin_vis_fpcmpde16shl (a, b, 2); ++} ++ ++long test_fpcmpde32shl (vec32 a, vec32 b) ++{ ++ return __builtin_vis_fpcmpde32shl (a, b, 2); ++} ++ ++/* { dg-final { scan-assembler "fpcmpde8shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpde16shl\t%" } } */ ++/* { dg-final { scan-assembler "fpcmpde32shl\t%" } } */ +Index: gcc/testsuite/gcc.target/sparc/dictunpack.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/sparc/dictunpack.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/sparc/dictunpack.c (.../branches/gcc-7-branch) +@@ -0,0 +1,25 @@ ++/* { dg-do compile } */ ++/* { dg-options "-mvis4b" } */ ++ ++typedef unsigned char vec8 __attribute__((vector_size(8))); ++typedef short vec16 __attribute__((vector_size(8))); ++typedef int vec32 __attribute__((vector_size(8))); ++ ++vec8 test_dictunpack8 (double a) ++{ ++ return __builtin_vis_dictunpack8 (a, 6); ++} ++ ++vec16 test_dictunpack16 (double a) ++{ ++ return __builtin_vis_dictunpack16 (a, 14); ++} ++ ++vec32 test_dictunpack32 (double a) ++{ ++ return __builtin_vis_dictunpack32 (a, 30); ++} ++ ++/* { dg-final { scan-assembler "dictunpack\t%" } } */ ++/* { dg-final { scan-assembler "dictunpack\t%" } } */ ++/* { dg-final { scan-assembler "dictunpack\t%" } } */ +Index: gcc/testsuite/gcc.target/sparc/sparc-ret-3.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/sparc/sparc-ret-3.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/sparc/sparc-ret-3.c (.../branches/gcc-7-branch) +@@ -0,0 +1,53 @@ ++/* PR target/80968 */ ++/* { dg-do compile } */ ++/* { dg-skip-if "no register windows" { *-*-* } { "-mflat" } { "" } } */ ++/* { dg-require-effective-target ilp32 } */ ++/* { dg-options "-mcpu=ultrasparc -O" } */ ++ ++/* Make sure references to the stack frame do not slip into the delay slot ++ of a return instruction. */ ++ ++struct crypto_shash { ++ unsigned int descsize; ++}; ++struct crypto_shash *tfm; ++ ++struct shash_desc { ++ struct crypto_shash *tfm; ++ unsigned int flags; ++ ++ void *__ctx[] __attribute__((aligned(8))); ++}; ++ ++static inline unsigned int crypto_shash_descsize(struct crypto_shash *tfm) ++{ ++ return tfm->descsize; ++} ++ ++static inline void *shash_desc_ctx(struct shash_desc *desc) ++{ ++ return desc->__ctx; ++} ++ ++#define SHASH_DESC_ON_STACK(shash, ctx) \ ++ char __##shash##_desc[sizeof(struct shash_desc) + \ ++ crypto_shash_descsize(ctx)] __attribute__((aligned(8))); \ ++ struct shash_desc *shash = (struct shash_desc *)__##shash##_desc ++ ++extern int crypto_shash_update(struct shash_desc *, const void *, unsigned int); ++ ++unsigned int bug(unsigned int crc, const void *address, unsigned int length) ++{ ++ SHASH_DESC_ON_STACK(shash, tfm); ++ unsigned int *ctx = (unsigned int *)shash_desc_ctx(shash); ++ int err; ++ ++ shash->tfm = tfm; ++ shash->flags = 0; ++ *ctx = crc; ++ ++ err = crypto_shash_update(shash, address, length); ++ ++ return *ctx; ++} ++/* { dg-final { scan-assembler "ld\[ \t\]*\\\[%i5\\+8\\\], %i0\n\[^\n\]*return\[ \t\]*%i7\\+8" } } */ +Index: gcc/testsuite/gcc.target/sparc/overflow-4.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/sparc/overflow-4.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/sparc/overflow-4.c (.../branches/gcc-7-branch) +@@ -1,5 +1,5 @@ + /* { dg-do compile } */ +-/* { dg-options "-O" } */ ++/* { dg-options "-O -mno-vis3" } */ + /* { dg-require-effective-target lp64 } */ + + #include +Index: gcc/testsuite/gcc.target/sparc/niagara7-align.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/sparc/niagara7-align.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/sparc/niagara7-align.c (.../branches/gcc-7-branch) +@@ -0,0 +1,4 @@ ++/* { dg-do compile } */ ++/* { dg-options "-falign-functions -mcpu=niagara7" } */ ++/* { dg-final { scan-assembler "\.align 64" } } */ ++void foo(void) {} +Index: gcc/testsuite/gcc.target/aarch64/pr79041-2.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/aarch64/pr79041-2.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/aarch64/pr79041-2.c (.../branches/gcc-7-branch) +@@ -0,0 +1,12 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -mcmodel=large -mpc-relative-literal-loads" } */ ++/* { dg-require-effective-target lp64 } */ ++ ++__int128 ++t (void) ++{ ++ return (__int128)1 << 80; ++} ++ ++/* { dg-final { scan-assembler "adr" } } */ ++/* { dg-final { scan-assembler-not "adrp" } } */ +Index: gcc/testsuite/gcc.target/aarch64/pr81414.C +=================================================================== +--- a/src/gcc/testsuite/gcc.target/aarch64/pr81414.C (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/aarch64/pr81414.C (.../branches/gcc-7-branch) +@@ -0,0 +1,9 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -mcpu=cortex-a57" } */ ++ ++typedef __Float32x2_t float32x2_t; ++float32x2_t ++foo1 (float32x2_t __a, float32x2_t __b, float32x2_t __c) { ++ return __b * __c + __a; ++} ++ +Index: gcc/testsuite/gcc.target/i386/pr81121.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr81121.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr81121.c (.../branches/gcc-7-branch) +@@ -0,0 +1,10 @@ ++/* PR target/81121 */ ++/* { dg-do compile } */ ++/* { dg-options "-O0 -march=amdfam10 -mno-sse2" } */ ++ ++void ++foo (short *x, short *y) ++{ ++ float a = 0; ++ y[0] = x[0] * a; ++} +Index: gcc/testsuite/gcc.target/i386/pr22152.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr22152.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr22152.c (.../branches/gcc-7-branch) +@@ -1,18 +1,18 @@ +-/* { dg-do compile } */ ++/* { dg-do compile { target ia32 } } */ + /* { dg-options "-O2 -msse2 -mtune=core2" } */ + /* { dg-additional-options "-mno-vect8-ret-in-mem" { target *-*-vxworks* } } */ +-/* { dg-additional-options "-mabi=sysv" { target x86_64-*-mingw* } } */ + + #include + ++typedef __SIZE_TYPE__ size_t; ++ + __m64 +-unsigned_add3 (const __m64 * a, const __m64 * b, unsigned int count) ++unsigned_add3 (const __m64 * a, const __m64 * b, size_t count) + { +- __m64 sum; +- unsigned int i; ++ __m64 sum = { 0, 0 }; + +- for (i = 1; i < count; i++) +- sum = _mm_add_si64 (a[i], b[i]); ++ if (count > 0) ++ sum = _mm_add_si64 (a[count-1], b[count-1]); + + return sum; + } +Index: gcc/testsuite/gcc.target/i386/adx-addcarryx64-2.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/adx-addcarryx64-2.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/adx-addcarryx64-2.c (.../branches/gcc-7-branch) +@@ -44,9 +44,9 @@ + sum_ref = 0x0LL; + + /* X = 0x0000000000000001, Y = 0x0000000000000000, C = 0. */ +- c = _subborrow_u64 (c, x, y, &x); ++ c = _subborrow_u64 (c, y, x, &x); + /* X = 0xFFFFFFFFFFFFFFFF, Y = 0x0000000000000000, C = 1. */ +- c = _subborrow_u64 (c, x, y, &x); ++ c = _subborrow_u64 (c, y, x, &x); + /* X = 0x0000000000000000, Y = 0x0000000000000000, C = 1. */ + + if (x != sum_ref) +Index: gcc/testsuite/gcc.target/i386/pr80706.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr80706.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr80706.c (.../branches/gcc-7-branch) +@@ -0,0 +1,30 @@ ++/* PR target/80706 */ ++/* { dg-do run { target sse2_runtime } } */ ++/* { dg-options "-O2 -msse2" } */ ++ ++union U { double value; struct S { int lsw; int msw; } parts; }; ++ ++__attribute__((noinline, noclone)) double ++foo (void) ++{ ++ __asm volatile ("" : : : "memory"); ++ return 2.0; ++} ++ ++__attribute__((noinline, noclone)) double ++bar (void) ++{ ++ double s = foo (); ++ union U z; ++ z.value = s; ++ z.parts.lsw = 0; ++ return z.value * z.value + s * s; ++} ++ ++int ++main () ++{ ++ if (bar () != 8.0) ++ __builtin_abort (); ++ return 0; ++} +Index: gcc/testsuite/gcc.target/i386/pr81471.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr81471.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr81471.c (.../branches/gcc-7-branch) +@@ -0,0 +1,13 @@ ++/* PR target/81471 */ ++/* { dg-do compile { target { ! ia32 } } } */ ++/* { dg-options "-O2 -mbmi2" } */ ++ ++static inline unsigned int rotl (unsigned int x, int k) ++{ ++ return (x << k) | (x >> (32 - k)); ++} ++ ++unsigned long long test (unsigned int z) ++{ ++ return rotl (z, 55); ++} +Index: gcc/testsuite/gcc.target/i386/pr81225.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr81225.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr81225.c (.../branches/gcc-7-branch) +@@ -0,0 +1,14 @@ ++/* PR target/81225 */ ++/* { dg-do compile } */ ++/* { dg-options "-mavx512ifma -O3 -ffloat-store" } */ ++ ++long a[24]; ++float b[4], c[24]; ++int d; ++ ++void ++foo () ++{ ++ for (d = 0; d < 24; d++) ++ c[d] = (float) d ? : b[a[d]]; ++} +Index: gcc/testsuite/gcc.target/i386/pr69255-2.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr69255-2.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr69255-2.c (.../branches/gcc-7-branch) +@@ -12,8 +12,9 @@ + void + foo (const long long *p) + { +- __builtin_ia32_gather3siv4di (a, p, b, 1, 1); /* { dg-error "needs isa option -m32 -mavx512vl" } */ ++ volatile __attribute__ ((__vector_size__ (32))) long long c; ++ c = __builtin_ia32_gather3siv4di (a, p, b, 1, 1); /* { dg-error "needs isa option -m32 -mavx512vl" } */ + } + +-/* { dg-warning "AVX vector return without AVX enabled changes the ABI" "" { target *-*-* } 15 } */ +-/* { dg-warning "AVX vector argument without AVX enabled changes the ABI" "" { target *-*-* } 15 } */ ++/* { dg-warning "AVX vector return without AVX enabled changes the ABI" "" { target *-*-* } 16 } */ ++/* { dg-warning "AVX vector argument without AVX enabled changes the ABI" "" { target *-*-* } 16 } */ +Index: gcc/testsuite/gcc.target/i386/pr81294-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr81294-1.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr81294-1.c (.../branches/gcc-7-branch) +@@ -0,0 +1,29 @@ ++/* PR target/81294 */ ++/* { dg-do run } */ ++/* { dg-options "-O2" } */ ++ ++#include ++ ++int ++main () ++{ ++ volatile unsigned char c; ++ unsigned int x; ++ volatile unsigned int y, sum_ref; ++ ++ c = 0; ++ x = 1; ++ y = 0; ++ sum_ref = 0x0; ++ ++ /* X = 0x00000001, Y = 0x00000000, C = 0. */ ++ c = _subborrow_u32 (c, y, x, &x); ++ /* X = 0xFFFFFFFF, Y = 0x00000000, C = 1. */ ++ c = _subborrow_u32 (c, y, x, &x); ++ /* X = 0xFFFFFFFF, Y = 0xFFFFFFFF, C = 1. */ ++ ++ if (x != sum_ref) ++ __builtin_abort (); ++ ++ return 0; ++} +Index: gcc/testsuite/gcc.target/i386/pr81015.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr81015.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr81015.c (.../branches/gcc-7-branch) +@@ -0,0 +1,21 @@ ++/* { dg-do run } */ ++/* { dg-options "-O2 -mlzcnt" } */ ++/* { dg-require-effective-target lzcnt } */ ++ ++#include "lzcnt-check.h" ++ ++int ++__attribute__ ((noinline, noclone)) ++foo (unsigned short a) ++{ ++ return __builtin_clz (a); ++} ++ ++static void ++lzcnt_test () ++{ ++ int res = foo (1); ++ ++ if (res != 31) ++ abort (); ++} +Index: gcc/testsuite/gcc.target/i386/pr80569.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr80569.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr80569.c (.../branches/gcc-7-branch) +@@ -0,0 +1,9 @@ ++/* PR target/80569 */ ++/* { dg-do assemble } */ ++/* { dg-options "-O2 -m16 -march=haswell" } */ ++ ++void load_kernel(void *setup_addr) ++{ ++ unsigned int seg = (unsigned int)setup_addr >> 4; ++ asm("movl %0, %%es" : : "r"(seg)); ++} +Index: gcc/testsuite/gcc.target/i386/getround.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/getround.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/getround.c (.../branches/gcc-7-branch) +@@ -0,0 +1,14 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O -msse" } */ ++ ++#include ++ ++unsigned save; ++ ++void f(unsigned mode){ ++ unsigned tmp = _MM_GET_ROUNDING_MODE(); ++ _MM_SET_ROUNDING_MODE(mode); ++ save = tmp; ++} ++ ++/* { dg-final { scan-assembler-times "stmxcsr" 1 } } */ +Index: gcc/testsuite/gcc.target/i386/pr81294-2.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr81294-2.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr81294-2.c (.../branches/gcc-7-branch) +@@ -0,0 +1,28 @@ ++/* PR target/81294 */ ++/* { dg-do run { target { ! ia32 } } } */ ++/* { dg-options "-O2" } */ ++ ++#include ++ ++int main () ++{ ++ volatile unsigned char c; ++ unsigned long long x; ++ volatile unsigned long long y, sum_ref; ++ ++ c = 0; ++ x = 1LL; ++ y = 0LL; ++ sum_ref = 0x0LL; ++ ++ /* X = 0x0000000000000001, Y = 0x0000000000000000, C = 0. */ ++ c = _subborrow_u64 (c, y, x, &x); ++ /* X = 0xFFFFFFFFFFFFFFFF, Y = 0x0000000000000000, C = 1. */ ++ c = _subborrow_u64 (c, y, x, &x); ++ /* X = 0x0000000000000000, Y = 0x0000000000000000, C = 1. */ ++ ++ if (x != sum_ref) ++ __builtin_abort (); ++ ++ return 0; ++} +Index: gcc/testsuite/gcc.target/i386/pr81641.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr81641.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr81641.c (.../branches/gcc-7-branch) +@@ -0,0 +1,11 @@ ++/* PR target/81641 */ ++/* { dg-do assemble } */ ++/* { dg-options "-O -masm=intel" } */ ++/* { dg-require-effective-target masm_intel } */ ++ ++int test(void) ++{ ++ int __seg_fs *f = (int __seg_fs *)16; ++ int __seg_gs *g = (int __seg_gs *)16; ++ return *f + *g; ++} +Index: gcc/testsuite/gcc.target/i386/pr81300.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr81300.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr81300.c (.../branches/gcc-7-branch) +@@ -0,0 +1,30 @@ ++/* PR target/81300 */ ++/* { dg-do run { target { ! ia32 } } } */ ++/* { dg-options "-O2" } */ ++ ++int ++__attribute__((noinline, noclone)) ++foo (void) ++{ ++ unsigned long long _discard = 0, zero = 0, maxull = 0; ++ unsigned char zero1 = __builtin_ia32_addcarryx_u64 (0, 0, 0, &_discard); ++ unsigned char zero2 = __builtin_ia32_addcarryx_u64 (zero1, 0, 0, &zero); ++ __builtin_ia32_sbb_u64 (0x0, 2, -1, &_discard); ++ unsigned char one = __builtin_ia32_sbb_u64 (0, zero, 1, &maxull); ++ unsigned long long x = __builtin_ia32_sbb_u64 (one, zero2, 0, &_discard); ++ ++ unsigned long long z1 = 0; ++ __asm__ ("mov{q}\t{%1, %0|%0, %1}" : "+r" (z1) : "r" (x)); ++ unsigned long long z2 = 3; ++ __asm__ ("mov{q}\t{%1, %0|%0, %1}" : "+r" (z2) : "r" (x)); ++ ++ return 1 - (z1 | z2); ++} ++ ++int main () ++{ ++ if (foo ()) ++ __builtin_abort (); ++ ++ return 0; ++} +Index: gcc/testsuite/gcc.target/i386/pr81766.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr81766.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr81766.c (.../branches/gcc-7-branch) +@@ -0,0 +1,5 @@ ++/* { dg-do compile } */ ++/* { dg-require-effective-target lp64 } */ ++/* { dg-options "-O2 -fPIE -mcmodel=large" } */ ++ ++int main() { return 0; } +Index: gcc/testsuite/gcc.target/i386/pr59874-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr59874-1.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr59874-1.c (.../branches/gcc-7-branch) +@@ -6,5 +6,5 @@ + unsigned int + foo (unsigned short x) + { +- return x ? __builtin_ctz (x) : 16U; ++ return x ? __builtin_ctzs (x) : 16U; + } +Index: gcc/testsuite/gcc.target/i386/adx-addcarryx32-2.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/adx-addcarryx32-2.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/adx-addcarryx32-2.c (.../branches/gcc-7-branch) +@@ -44,9 +44,9 @@ + sum_ref = 0x0; + + /* X = 0x00000001, Y = 0x00000000, C = 0. */ +- c = _subborrow_u32 (c, x, y, &x); ++ c = _subborrow_u32 (c, y, x, &x); + /* X = 0xFFFFFFFF, Y = 0x00000000, C = 1. */ +- c = _subborrow_u32 (c, x, y, &x); ++ c = _subborrow_u32 (c, y, x, &x); + /* X = 0xFFFFFFFF, Y = 0xFFFFFFFF, C = 1. */ + + if (x != sum_ref) +Index: gcc/testsuite/gcc.target/i386/pr59874-2.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr59874-2.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr59874-2.c (.../branches/gcc-7-branch) +@@ -6,5 +6,5 @@ + unsigned int + foo (unsigned short x) + { +- return x ? __builtin_clz (x) : 16U; ++ return x ? __builtin_clzs (x) : 16U; + } +Index: gcc/testsuite/gcc.target/i386/funcspec-56.inc +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/funcspec-56.inc (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/funcspec-56.inc (.../branches/gcc-7-branch) +@@ -99,7 +99,7 @@ + extern void test_no_pclmul (void) __attribute__((__target__("no-pclmul"))); + extern void test_no_sse2 (void) __attribute__((__target__("no-sse2"))); + extern void test_no_sse (void) __attribute__((__target__("no-sse"))); +-extern void test_no_3dnowa (void) __attribute__((__target__("3dnowa"))); ++extern void test_no_3dnowa (void) __attribute__((__target__("no-3dnowa"))); + extern void test_no_3dnow (void) __attribute__((__target__("no-3dnow"))); + extern void test_no_mmx (void) __attribute__((__target__("no-mmx"))); + extern void test_no_rtm (void) __attribute__((__target__("no-rtm"))); +Index: gcc/testsuite/gcc.target/i386/pr81375.c +=================================================================== +--- a/src/gcc/testsuite/gcc.target/i386/pr81375.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.target/i386/pr81375.c (.../branches/gcc-7-branch) +@@ -0,0 +1,8 @@ ++/* PR target/81375 */ ++/* { dg-do compile { target ia32 } } */ ++/* { dg-options "-mno-80387 -mno-sse -mfpmath=sse" } */ ++ ++float foo (float a, float b) ++{ ++ return a / b; ++} +Index: gcc/testsuite/gfortran.dg/gomp/pr80918.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/gomp/pr80918.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/gomp/pr80918.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,10 @@ ++! PR fortran/80918 ++! { dg-do compile } ++ ++subroutine foo (a) ++ integer :: a(*) ++ !$omp task depend(inout:a) ++ !$omp end task ++ !$omp task depend(inout:a) ++ !$omp end task ++end subroutine foo +Index: gcc/testsuite/gfortran.dg/pr80752.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/pr80752.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/pr80752.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,20 @@ ++! { dg-do compile } ++! PR fortran/80752 ++module exchange_utils ++ ++ implicit none ++ ++ integer, parameter, public :: knd = 8 ++ ++ type, private :: a ++ logical :: add_vs98 = 0.0_knd ! { dg-error "Can't convert" } ++ end type a ++ ++ type, private :: x_param_t ++ type(a) :: m05_m06 ++ end type x_param_t ++ ++ type(x_param_t), public, save :: x_param ++ ++end module exchange_utils ++ +Index: gcc/testsuite/gfortran.dg/read_3.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/read_3.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/read_3.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,13 @@ ++! { dg-do run } ++! PR80727 Crash of runtime gfortran library during integer transformation ++! Note: before the patch this was giving an incorrect EOR error on READ. ++program gfortran_710_io_bug ++ character str*4 ++ integer(4) :: i4 ++ str ='' ++ i = 256 ++ write(str,fmt='(a)') i ++ i = 0 ++ read ( unit=str(1:4), fmt='(a)' ) i4 ++ if (i4.ne.256) call abort ++end program gfortran_710_io_bug +Index: gcc/testsuite/gfortran.dg/dtio_30.f03 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/dtio_30.f03 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/dtio_30.f03 (.../branches/gcc-7-branch) +@@ -0,0 +1,60 @@ ++! { dg-do run } ++! PR80333 Namelist dtio write of array of class does not traverse the array ++! This test checks both NAMELIST WRITE and READ of an array of class ++module m ++ implicit none ++ type :: t ++ character :: c ++ character :: d ++ contains ++ procedure :: read_formatted ++ generic :: read(formatted) => read_formatted ++ procedure :: write_formatted ++ generic :: write(formatted) => write_formatted ++ end type t ++contains ++ subroutine read_formatted(dtv, unit, iotype, v_list, iostat, iomsg) ++ class(t), intent(inout) :: dtv ++ integer, intent(in) :: unit ++ character(*), intent(in) :: iotype ++ integer, intent(in) :: v_list(:) ++ integer, intent(out) :: iostat ++ character(*), intent(inout) :: iomsg ++ integer :: i ++ read(unit,'(a1,a1)', iostat=iostat, iomsg=iomsg) dtv%c, dtv%d ++ end subroutine read_formatted ++ ++ subroutine write_formatted(dtv, unit, iotype, v_list, iostat, iomsg) ++ class(t), intent(in) :: dtv ++ integer, intent(in) :: unit ++ character(*), intent(in) :: iotype ++ integer, intent(in) :: v_list(:) ++ integer, intent(out) :: iostat ++ character(*), intent(inout) :: iomsg ++ write(unit,'(a1,a1)', iostat=iostat, iomsg=iomsg) dtv%c, dtv%d ++ end subroutine write_formatted ++end module m ++ ++program p ++ use m ++ implicit none ++ class(t), dimension(:,:), allocatable :: w ++ namelist /nml/ w ++ integer :: unit, iostatus ++ character(256) :: str = "" ++ ++ open(10, status='scratch') ++ allocate(w(10,3)) ++ w = t('j','r') ++ w(5:7,2)%c='k' ++ write(10, nml) ++ rewind(10) ++ w = t('p','z') ++ read(10, nml) ++ write(str,*) w ++ if (str.ne." jr jr jr jr jr jr jr jr jr jr jr jr jr jr kr kr kr jr jr jr jr jr jr jr jr jr jr jr jr jr") & ++ & call abort ++ str = "" ++ write(str,"(*(DT))") w ++ if (str.ne."jrjrjrjrjrjrjrjrjrjrjrjrjrjrkrkrkrjrjrjrjrjrjrjrjrjrjrjrjrjr") call abort ++end program p +Index: gcc/testsuite/gfortran.dg/namelist_93.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/namelist_93.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/namelist_93.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,16 @@ ++! { dg-do compile } ++! PR78659 Spurious "requires DTIO" reported against namelist statement ++MODULE ma ++ IMPLICIT NONE ++ TYPE :: ta ++ INTEGER, allocatable :: array(:) ++ END TYPE ta ++END MODULE ma ++ ++PROGRAM p ++ USE ma ++ class(ta), allocatable :: x ++ NAMELIST /nml/ x ++ WRITE (*, nml)! { dg-error "is polymorphic and requires a defined input/output procedure" } ++ READ (*, nml) ! { dg-error "is polymorphic and requires a defined input/output procedure" } ++END PROGRAM p +Index: gcc/testsuite/gfortran.dg/namelist_92.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/namelist_92.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/namelist_92.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,16 @@ ++! { dg-do compile } ++! PR78659 Spurious "requires DTIO" reported against namelist statement ++MODULE ma ++ IMPLICIT NONE ++ TYPE :: ta ++ INTEGER, allocatable :: array(:) ++ END TYPE ta ++END MODULE ma ++ ++PROGRAM p ++ USE ma ++ type(ta):: x ++ NAMELIST /nml/ x ++ WRITE (*, nml) ! { dg-error "has ALLOCATABLE or POINTER components and thus requires a defined input/output" } ++ READ (*, nml) ! { dg-error "has ALLOCATABLE or POINTER components and thus requires a defined input/output" } ++END PROGRAM p +Index: gcc/testsuite/gfortran.dg/pr81175.f +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/pr81175.f (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/pr81175.f (.../branches/gcc-7-branch) +@@ -0,0 +1,23 @@ ++! { dg-do compile } ++! { dg-options "-Ofast -fwrapv" } ++! { dg-additional-options "-march=broadwell" { target x86_64-*-* i?86-*-* } } ++ SUBROUTINE ECPDRA(IC4C,FP,FQ,G) ++ IMPLICIT DOUBLE PRECISION (A-H,O-Z) ++ DIMENSION FP(*),FQ(*),G(*) ++ DIMENSION CKLU(23,12,12) ++! ++ DO 240 I=IAMIN,IAMAX ++ DO 240 J=JAMIN,MMAX ++ DO 230 K=1,NPNP ++ DO 230 L=1,K ++ DO 230 MU=1,2*L-1 ++ CKLTEM= CKLU(MU,L,K) ++ IF(IC4C.LE.0) THEN ++ IF(ABS(CKLTEM).GT.TOL) SUM= SUM+FP(N)*CKLTEM ++ ELSE ++ IF(ABS(CKLTEM).GT.TOL) SUM= SUM+FQ(N)*CKLTEM ++ END IF ++ 230 N= N+1 ++ G(NN)= G(NN)+DUMJ*SUM ++ 240 NN= NN+1 ++ END +Index: gcc/testsuite/gfortran.dg/proc_ptr_comp_49.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/proc_ptr_comp_49.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/proc_ptr_comp_49.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,21 @@ ++! { dg-do compile } ++! ++! PR 80392: [5/6/7 Regression] [OOP] ICE with allocatable polymorphic function result in a procedure pointer component ++! ++! Contributed by ++ ++module mwe ++ ++ implicit none ++ ++ type :: MyType ++ procedure(my_op), nopass, pointer :: op ++ end type ++ ++contains ++ ++ function my_op() result(foo) ++ class(MyType), allocatable :: foo ++ end function ++ ++end module +Index: gcc/testsuite/gfortran.dg/read_5.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/read_5.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/read_5.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,21 @@ ++! { dg-do run } ++! PR53029 Missed optimization, this test case took several seconds to ++ program internalread ++ implicit none ++ integer m ++ parameter(m=1000000) ++ character value*10 ++ character(80) :: result ++ integer i,j,intvalues(m) ++ real :: start, finish ++ intvalues = 33 ++ call cpu_time(start) ++ do j=1,100 ++ write(value,'(i3,a5)') j," 5 69" ++ read(value,*,end=20) intvalues ++ 20 write(result,*) (intvalues(i),i=2,4) ++ if (result.ne.(' 5 69 33')) call abort ++ call cpu_time(finish) ++ if ((finish-start).gt. 0.5) call abort ++ enddo ++ end program internalread +Index: gcc/testsuite/gfortran.dg/namelist_91.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/namelist_91.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/namelist_91.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,9 @@ ++! { dg-do compile } ++! PR78659 Spurious "requires DTIO" reported against namelist statement ++program p ++ type t ++ integer :: k ++ end type ++ class(t), allocatable :: x ++ namelist /nml/ x ++end +Index: gcc/testsuite/gfortran.dg/inline_matmul_18.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/inline_matmul_18.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/inline_matmul_18.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,16 @@ ++! { dg-do run } ++! { dg-options "-O -finline-matmul-limit=100 -fdump-tree-optimized" } ++! PR 80975 - this did not zero the result array in the library version; ++! make sure this also doesn't happen in the inline version. ++program bogus_matmul ++ implicit none ++ real :: M(3,0), v(0), w(3) ++ ++ w = 7 ++ w = matmul(M,v) ++ if( any(w .ne. 0) ) then ++ call abort ++ end if ++end program bogus_matmul ++! { dg-final { scan-tree-dump-times "matmul_r4" 0 "optimized" } } ++ +Index: gcc/testsuite/gfortran.dg/matmul_bounds_12.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/matmul_bounds_12.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/matmul_bounds_12.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,17 @@ ++! { dg-do run } ++program main ++ real, dimension(3,2) :: a ++ real, dimension(3) :: bp ++ real, dimension(3) :: res1 ++ real, dimension(:), allocatable :: c3 ++ real, dimension(2) :: res2 ++ ++ data a /-2., 3., -5., 7., -11., 13./ ++ data bp /-23., -31., -41./ ++ data res2 /158., -353./ ++ ++ c3 = matmul(bp,a) ++ if (size(c3,1) /= 2) call abort ++ if (any(c3 /= res2)) call abort ++ ++end program main +Index: gcc/testsuite/gfortran.dg/typebound_call_28.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/typebound_call_28.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/typebound_call_28.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,37 @@ ++! { dg-do compile } ++! ++! PR 80766: [7/8 Regression] [OOP] ICE with type-bound procedure returning an array ++! ++! Contributed by Vladimir Fuka ++ ++module m1 ++ ++ type :: base ++ contains ++ procedure :: fun ++ end type ++ ++ type, extends(base) :: child ++ end type ++ ++contains ++ ++ function fun(o) result(res) ++ real :: res(3) ++ class(base) :: o ++ res = 0 ++ end function ++end module ++ ++ ++module m2 ++contains ++ ++ subroutine sub(o) ++ use m1 ++ class(child) :: o ++ real :: res(3) ++ ++ res = o%fun() ++ end subroutine ++end module +Index: gcc/testsuite/gfortran.dg/intent_out_9.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/intent_out_9.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/intent_out_9.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,27 @@ ++! { dg-do compile } ++! { dg-options "-fdump-tree-original" } ++! ++! PR 80121: Memory leak with derived-type intent(out) argument ++! ++! Contributed by Andrew Wood ++ ++PROGRAM p ++ IMPLICIT NONE ++ TYPE t1 ++ INTEGER, ALLOCATABLE :: i(:) ++ END TYPE ++ call leak ++ CONTAINS ++ SUBROUTINE s1(e) ++ TYPE(t1), ALLOCATABLE, INTENT(OUT) :: e(:) ++ ALLOCATE( e(1) ) ++ ALLOCATE( e(1)%i(2) ) ++ END SUBROUTINE ++ SUBROUTINE leak ++ TYPE(t1), ALLOCATABLE :: e(:) ++ CALL s1(e) ++ CALL s1(e) ++ END SUBROUTINE ++END PROGRAM ++ ++! { dg-final { scan-tree-dump-times "__builtin_free" 6 "original" } } +Index: gcc/testsuite/gfortran.dg/dtio_29.f03 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/dtio_29.f03 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/dtio_29.f03 (.../branches/gcc-7-branch) +@@ -0,0 +1,47 @@ ++! { dg-do compile } ++! PR80484 Three syntax errors involving derived-type I/O ++module dt_write_mod ++ type, public :: B_type ++ real :: amount ++ end type B_type ++ interface write (formatted) ++ procedure :: Write_b ++ end interface ++contains ++ ++subroutine Write_b & ++ (amount, unit, b_edit_descriptor, v_list, iostat, iomsg) ++ ++ class (B_type), intent(in) :: amount ++ integer, intent(in) :: unit ++ character (len=*), intent(in) :: b_edit_descriptor ++ integer, dimension(:), intent(in) :: v_list ++ integer, intent(out) :: iostat ++ character (len=*), intent(inout) :: iomsg ++ write (unit=unit, fmt="(f9.3)", iostat=iostat) amount%amount ++ ++end subroutine Write_b ++ ++end module dt_write_mod ++ ++program test ++ use dt_write_mod, only: B_type , write(formatted) ++ implicit none ++ ++ real :: wage = 15.10 ++ integer :: ios ++ character(len=99) :: iom = "OK" ++ ++ write (unit=*, fmt="(DT'$$$Z.##')", iostat=ios, iomsg=iom) & ++ B_type(wage), B_type(wage) ++ print *, trim(iom) ++ write (unit=*, fmt="(2DT'$$$Z.##')", iostat=ios, iomsg=iom) & ++ B_type(wage), B_type(wage) ++ print *, trim(iom) ++ write (unit=*, fmt="(3DT'$$$Z.##')", iostat=ios, iomsg=iom) & ++ B_type(wage), B_type(wage) ++ print *, trim(iom) ++ write (unit=*, fmt="(DT'$$$Z.##'/)", iostat=ios, iomsg=iom) & ++ B_type(wage), B_type(wage) ++ print *, trim(iom) ++end program test +Index: gcc/testsuite/gfortran.dg/read_4.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/read_4.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/read_4.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,35 @@ ++! { dg-do run } ++! PR80741 wrong code causes incorrect behaviour of namelist READ ++program p ++ use, intrinsic :: iso_fortran_env, only: iostat_end ++ implicit none ++ integer :: x, y, ios, io ++ character(10) :: line ++ namelist /test/ x, y ++ ++ x = 10 ++ y = 10 ++ ios = 0 ++ io = 10 ++ open(unit=io, status='scratch') ++ write(io, test) ++ write(io, *) 'done' ++ rewind(io) ++ x = 0 ++ y = 0 ++ read(io, test) ++ if (x.ne.10 .or. y.ne.10) call abort ++ ! ++ read(io, *) line ++ if (line.ne.'done') call abort ++ ! ++ read(io, *, iostat=ios) line ++ if (ios/=iostat_end) call abort ++ rewind(io) ++ x = 0 ++ y = 0 ++ read(io, test) ++ if (x.ne.10 .or. y.ne.10) call abort ++ read(io, *, iostat=ios) line ++ if (line.ne.'done') call abort ++end +Index: gcc/testsuite/gfortran.dg/proc_ptr_comp_50.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/proc_ptr_comp_50.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/proc_ptr_comp_50.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,26 @@ ++! { dg-do compile } ++! ++! PR 70601: [5/6/7 Regression] [OOP] ICE on procedure pointer component call ++! ++! Contributed by zmi ++ ++program test ++ implicit none ++ ++ type :: concrete_type ++ procedure (run_concrete_type), pointer :: run ++ end type ++ ++ type(concrete_type), allocatable :: concrete ++ ++ allocate(concrete) ++ concrete % run => run_concrete_type ++ call concrete % run() ++ ++contains ++ ++ subroutine run_concrete_type(this) ++ class(concrete_type) :: this ++ end subroutine ++ ++end +Index: gcc/testsuite/gfortran.dg/namelist_94.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/namelist_94.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/namelist_94.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,32 @@ ++! { dg-do compile } ++! PR78659 Spurious "requires DTIO" reported against namelist statement ++MODULE m ++ IMPLICIT NONE ++ TYPE :: t ++ CHARACTER :: c ++ CONTAINS ++ PROCEDURE :: write_formatted ++ GENERIC :: WRITE(FORMATTED) => write_formatted ++ END TYPE ++CONTAINS ++ SUBROUTINE write_formatted(dtv, unit, iotype, v_list, iostat, iomsg) ++ CLASS(t), INTENT(IN) :: dtv ++ INTEGER, INTENT(IN) :: unit ++ CHARACTER(*), INTENT(IN) :: iotype ++ INTEGER, INTENT(IN) :: v_list(:) ++ INTEGER, INTENT(OUT) :: iostat ++ CHARACTER(*), INTENT(INOUT) :: iomsg ++ WRITE (unit, "(A)", IOSTAT=iostat, IOMSG=iomsg) dtv%c ++ print *, "what" ++ END SUBROUTINE ++END MODULE ++ ++PROGRAM p ++ USE m ++ IMPLICIT NONE ++ class(t), allocatable :: x ++ NAMELIST /nml/ x ++ x = t('a') ++ WRITE (*, nml) ++ READ (*, nml) ! { dg-error "is polymorphic and requires a defined input/output procedure" } ++END +Index: gcc/testsuite/gfortran.dg/matmul_16.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/matmul_16.f90 (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/matmul_16.f90 (.../branches/gcc-7-branch) +@@ -0,0 +1,13 @@ ++! { dg-do run } ++! { dg-options "-finline-matmul-limit=0" } ++! PR 80975 - this did not zero the result array ++program bogus_matmul ++ implicit none ++ real :: M(3,0), v(0), w(3) ++ ++ w = 7 ++ w = matmul(M,v) ++ if( any(w .ne. 0) ) then ++ call abort ++ end if ++end program bogus_matmul +Index: gcc/testsuite/gcc.c-torture/execute/pr81555.c +=================================================================== +--- a/src/gcc/testsuite/gcc.c-torture/execute/pr81555.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.c-torture/execute/pr81555.c (.../branches/gcc-7-branch) +@@ -0,0 +1,24 @@ ++/* PR tree-optimization/81555 */ ++ ++unsigned int a = 1, d = 0xfaeU, e = 0xe376U; ++_Bool b = 0, f = 1; ++unsigned char g = 1; ++ ++void ++foo (void) ++{ ++ _Bool c = a != b; ++ if (c) ++ f = 0; ++ if (e & c & (unsigned char)d & c) ++ g = 0; ++} ++ ++int ++main () ++{ ++ foo (); ++ if (f || g != 1) ++ __builtin_abort (); ++ return 0; ++} +Index: gcc/testsuite/gcc.c-torture/execute/pr81588.c +=================================================================== +--- a/src/gcc/testsuite/gcc.c-torture/execute/pr81588.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.c-torture/execute/pr81588.c (.../branches/gcc-7-branch) +@@ -0,0 +1,45 @@ ++/* PR tree-optimization/81588 */ ++ ++__attribute__((noinline, noclone)) int ++bar (int x) ++{ ++ __asm volatile ("" : : "g" (x) : "memory"); ++} ++ ++__attribute__((noinline, noclone)) int ++foo (unsigned x, long long y) ++{ ++ if (y < 0) ++ return 0; ++ if (y < (long long) (4 * x)) ++ { ++ bar (y); ++ return 1; ++ } ++ return 0; ++} ++ ++int ++main () ++{ ++ volatile unsigned x = 10; ++ volatile long long y = -10000; ++ if (foo (x, y) != 0) ++ __builtin_abort (); ++ y = -1; ++ if (foo (x, y) != 0) ++ __builtin_abort (); ++ y = 0; ++ if (foo (x, y) != 1) ++ __builtin_abort (); ++ y = 39; ++ if (foo (x, y) != 1) ++ __builtin_abort (); ++ y = 40; ++ if (foo (x, y) != 0) ++ __builtin_abort (); ++ y = 10000; ++ if (foo (x, y) != 0) ++ __builtin_abort (); ++ return 0; ++} +Index: gcc/testsuite/gcc.c-torture/execute/pr81556.c +=================================================================== +--- a/src/gcc/testsuite/gcc.c-torture/execute/pr81556.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.c-torture/execute/pr81556.c (.../branches/gcc-7-branch) +@@ -0,0 +1,23 @@ ++/* PR tree-optimization/81556 */ ++ ++unsigned long long int b = 0xb82ff73c5c020599ULL; ++unsigned long long int c = 0xd4e8188733a29d8eULL; ++unsigned long long int d = 2, f = 1, g = 0, h = 0; ++unsigned long long int e = 0xf27771784749f32bULL; ++ ++__attribute__((noinline, noclone)) void ++foo (void) ++{ ++ _Bool a = d > 1; ++ g = f % ((d > 1) << 9); ++ h = a & (e & (a & b & c)); ++} ++ ++int ++main () ++{ ++ foo (); ++ if (g != 1 || h != 0) ++ __builtin_abort (); ++ return 0; ++} +Index: gcc/testsuite/gcc.c-torture/execute/pr80692.c +=================================================================== +--- a/src/gcc/testsuite/gcc.c-torture/execute/pr80692.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.c-torture/execute/pr80692.c (.../branches/gcc-7-branch) +@@ -0,0 +1,13 @@ ++/* { dg-require-effective-target dfp } */ ++ ++int main () { ++ _Decimal64 d64 = -0.DD; ++ ++ if (d64 != 0.DD) ++ __builtin_abort (); ++ ++ if (d64 != -0.DD) ++ __builtin_abort (); ++ ++ return 0; ++} +Index: gcc/testsuite/gcc.c-torture/compile/pr81207.c +=================================================================== +--- a/src/gcc/testsuite/gcc.c-torture/compile/pr81207.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.c-torture/compile/pr81207.c (.../branches/gcc-7-branch) +@@ -0,0 +1,13 @@ ++/* PR middle-end/81207 */ ++ ++static const char *b[2] = { "'", "" }; ++ ++int ++foo (const char *d) ++{ ++ int e; ++ for (e = 0; b[e]; e++) ++ if (__builtin_strstr (d, b[e])) ++ return 1; ++ return 0; ++} +Index: gcc/testsuite/gnat.dg/opt65.adb +=================================================================== +--- a/src/gcc/testsuite/gnat.dg/opt65.adb (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gnat.dg/opt65.adb (.../branches/gcc-7-branch) +@@ -0,0 +1,30 @@ ++-- { dg-do run } ++-- { dg-options "-O2" } ++ ++with Ada.Command_Line; use Ada.Command_Line; ++ ++procedure Opt65 is ++ ++ procedure Check_Version_And_Help (Version_String : String) is ++ Help_Switch_Present : Boolean := False; ++ Next_Arg : Natural := 1; ++ begin ++ while Next_Arg <= Argument_Count loop ++ declare ++ Next_Argv : constant String := Argument (Next_Arg); ++ begin ++ if Next_Argv = "--help" then ++ Help_Switch_Present := True; ++ end if; ++ Next_Arg := Next_Arg + 1; ++ end; ++ end loop; ++ ++ if Help_Switch_Present then ++ raise Program_Error; ++ end if; ++ end; ++ ++begin ++ Check_Version_And_Help ("version"); ++end; + +Property changes on: gcc/testsuite/gnat.dg/opt65.adb +___________________________________________________________________ +Added: svn:mergeinfo +## -0,0 +0,0 ## +Index: gcc/testsuite/gnat.dg/specs/not_null1.ads +=================================================================== +--- a/src/gcc/testsuite/gnat.dg/specs/not_null1.ads (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gnat.dg/specs/not_null1.ads (.../branches/gcc-7-branch) +@@ -0,0 +1,11 @@ ++-- { dg-do compile } ++ ++package Not_Null1 is ++ type T is null record; ++ type T_Access is access all T; ++ ++ procedure Proc (This : in not null T_Access) is null; ++ ++ type Proc_Access is access procedure (This : in not null T_Access); ++ PA : Proc_Access := Proc'Access; ++end Not_Null1; +Index: gcc/testsuite/gcc.dg/pr80468.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/pr80468.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/pr80468.c (.../branches/gcc-7-branch) +@@ -0,0 +1,10 @@ ++/* PR c/80468 */ ++/* { dg-do compile { target { ! int128 } } } */ ++/* { dg-options "" } */ ++ ++void ++foo (void) ++{ ++ __attribute__ ((__vector_size__ (4 * sizeof (unsigned)))) __int128 b; /* { dg-error "is not supported on this target" } */ ++ 0 != b; ++} +Index: gcc/testsuite/gcc.dg/strlenopt-31g.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/strlenopt-31g.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/strlenopt-31g.c (.../branches/gcc-7-branch) +@@ -0,0 +1,9 @@ ++/* { dg-do run { target *-*-linux* *-*-gnu* } } */ ++/* { dg-options "-O2 -fdump-tree-strlen" } */ ++ ++#define USE_GNU ++#include "strlenopt-31.c" ++ ++/* { dg-final { scan-tree-dump-times "stpcpy \\(" 1 "strlen" } } */ ++/* { dg-final { scan-tree-dump-times "memcpy \\(" 2 "strlen" } } */ ++/* { dg-final { scan-tree-dump-not "strlen \\(" "strlen" } } */ +Index: gcc/testsuite/gcc.dg/ubsan/pr81162.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/ubsan/pr81162.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/ubsan/pr81162.c (.../branches/gcc-7-branch) +@@ -0,0 +1,17 @@ ++/* PR tree-optimization/81162 */ ++/* { dg-do run } */ ++/* { dg-options "-fsanitize=undefined -O2" } */ ++ ++short s; ++int i1 = 1; ++int i2 = 1; ++unsigned char uc = 147; ++ ++int main() { ++ s = (-uc + 2147483647) << 0; ++ if (9031239389974324562ULL >= (-((i1 && i2) + uc) ^ -21096) ) { ++ return 0; ++ } else { ++ return -1; ++ } ++} +Index: gcc/testsuite/gcc.dg/ubsan/pr81505.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/ubsan/pr81505.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/ubsan/pr81505.c (.../branches/gcc-7-branch) +@@ -0,0 +1,17 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O3 -fsanitize=signed-integer-overflow" } */ ++ ++int a, b, c, h; ++ ++int i[5][5]; ++ ++void ++fn1 () ++{ ++ int l = 0; ++ ++ for (a = 0; a <= 3; a++) ++ for (b = 1; b >= 0; b -= 1) ++ l |= i[0][b]; ++ c = l; ++} +Index: gcc/testsuite/gcc.dg/strlenopt-31.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/strlenopt-31.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/strlenopt-31.c (.../branches/gcc-7-branch) +@@ -0,0 +1,25 @@ ++/* { dg-do run } */ ++/* { dg-options "-O2" } */ ++ ++#include "strlenopt.h" ++ ++__attribute__((noinline, noclone)) int ++bar (char *p1, const char *q) ++{ ++ strcpy (p1, "abcde"); ++ char *p2 = strchr (p1, '\0'); ++ strcpy (p2, q); ++ char *p3 = strchr (p2, '\0'); ++ memcpy (p3, "x", 2); ++ return strlen (p1); ++} ++ ++int ++main (void) ++{ ++ char buffer[10]; ++ int res = bar (buffer, "foo"); ++ if (strcmp (buffer, "abcdefoox") != 0 || res != 9) ++ abort (); ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/asan/use-after-scope-switch-4.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/asan/use-after-scope-switch-4.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/asan/use-after-scope-switch-4.c (.../branches/gcc-7-branch) +@@ -0,0 +1,35 @@ ++// { dg-do run } ++// { dg-additional-options "-fdump-tree-gimple" } ++ ++int *ptr; ++ ++struct a ++{ ++ int c; ++}; ++ ++int main(int argc, char **argv) ++{ ++ struct a e; ++ e.c = 2; ++ int x = 0; ++ ++ for (;;) ++ switch (e.c) ++ case 3: ++ { ++ int resxxx; ++ case 2: ++ ptr = &resxxx; ++ *ptr = 123; ++ ++ if (x) ++ return 0; ++ else ++ x = 1; ++ } ++ ++ return 1; ++} ++ ++/* { dg-final { scan-tree-dump-times "ASAN_MARK \\(UNPOISON, &resxxx, \[0-9\]\\);" 2 "gimple" } } */ +Index: gcc/testsuite/gcc.dg/asan/pr81224.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/asan/pr81224.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/asan/pr81224.c (.../branches/gcc-7-branch) +@@ -0,0 +1,11 @@ ++/* PR sanitizer/80659 */ ++/* { dg-do compile { target { i?86-*-* x86_64-*-* } } } */ ++/* { dg-additional-options "-msse2" } */ ++ ++int a; ++int ++b () ++{ ++ register __attribute__ ((__vector_size__ (4 * sizeof (int)))) int c asm("xmm0"); ++ return c[a]; ++} +Index: gcc/testsuite/gcc.dg/asan/pr81186.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/asan/pr81186.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/asan/pr81186.c (.../branches/gcc-7-branch) +@@ -0,0 +1,18 @@ ++/* PR sanitizer/81186 */ ++/* { dg-do run } */ ++ ++int ++main () ++{ ++ __label__ l; ++ void f () ++ { ++ int a[123]; ++ ++ goto l; ++ } ++ ++ f (); ++l: ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/asan/pr80659.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/asan/pr80659.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/asan/pr80659.c (.../branches/gcc-7-branch) +@@ -0,0 +1,13 @@ ++/* PR sanitizer/80659 */ ++/* { dg-do compile } */ ++ ++void ++foo (int a) ++{ ++ switch (a) ++ { ++ case 0: ++ (int[3]) { }; ++ int h; ++ } ++} +Index: gcc/testsuite/gcc.dg/fixed-point/pr81428.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/fixed-point/pr81428.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/fixed-point/pr81428.c (.../branches/gcc-7-branch) +@@ -0,0 +1,9 @@ ++/* PR tree-optimization/81428 */ ++/* { dg-do compile } */ ++/* { dg-options "-O2" } */ ++ ++void ++foo (long _Fract *a, long _Fract *b) ++{ ++ *b = *a / *a; ++} +Index: gcc/testsuite/gcc.dg/graphite/pr80906.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/graphite/pr80906.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/graphite/pr80906.c (.../branches/gcc-7-branch) +@@ -0,0 +1,28 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -floop-nest-optimize -fdump-tree-graphite" } */ ++ ++int qc; ++ ++int ++ec (int lh[][2]) ++{ ++ const int jv = 3; ++ int zf, hp, c5 = 0, m3 = 1; ++ ++ for (zf = 0; zf < jv; ++zf) ++ for (hp = 0; hp < jv; ++hp) ++ { ++ short int bm = 0; ++ ++ for (qc = 0; qc < jv; ++qc) ++ --bm; ++ if (bm != 0) ++ --c5; ++ lh[0][0] = 0; ++ m3 *= jv; ++ } ++ ++ return c5 + m3; ++} ++ ++/* { dg-final { scan-tree-dump "isl AST to Gimple succeeded" "graphite" } } */ +Index: gcc/testsuite/gcc.dg/pr81588.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/pr81588.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/pr81588.c (.../branches/gcc-7-branch) +@@ -0,0 +1,26 @@ ++/* PR tree-optimization/81588 */ ++/* { dg-do run } */ ++/* { dg-options "-O2" } */ ++ ++long long int a = 5011877430933453486LL, c = 1; ++unsigned short b = 24847; ++ ++#include "tree-ssa/pr81588.c" ++ ++int ++main () ++{ ++ foo (); ++ if (c != 0) ++ __builtin_abort (); ++ a = 24846; ++ c = 1; ++ foo (); ++ if (c != 1) ++ __builtin_abort (); ++ a = -5; ++ foo (); ++ if (c != 0) ++ __builtin_abort (); ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/pr79499.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/pr79499.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/pr79499.c (.../branches/gcc-7-branch) +@@ -0,0 +1,13 @@ ++/* PR middle-end/79499 */ ++/* { dg-do compile { target split_stack } } */ ++/* { dg-options "-O2 -fsplit-stack -fno-omit-frame-pointer" } */ ++ ++struct S { struct S *a, *b; }; ++ ++void ++foo (struct S *x) ++{ ++ do ++ x->b = x->a; ++ while (x = x->a); ++} +Index: gcc/testsuite/gcc.dg/pr81192.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/pr81192.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/pr81192.c (.../branches/gcc-7-branch) +@@ -0,0 +1,22 @@ ++/* { dg-options "-Os -fdump-tree-pre-details" } */ ++ ++unsigned a; ++int b, c; ++ ++static int ++fn1 (int p1, int p2) ++{ ++ return p1 > 2147483647 - p2 ? p1 : p1 + p2; ++} ++ ++void ++fn2 (void) ++{ ++ int j; ++ a = 30; ++ for (; a;) ++ for (; c; b = fn1 (j, 1)) ++ ; ++} ++ ++/* { dg-final { scan-tree-dump-times "(?n)find_duplicates: duplicate of " 1 "pre" } } */ +Index: gcc/testsuite/gcc.dg/pr80903.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/pr80903.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/pr80903.c (.../branches/gcc-7-branch) +@@ -0,0 +1,34 @@ ++/* PR rtl-optimization/80903 */ ++/* { dg-do compile } */ ++/* { dg-options "-O3 -funroll-loops" } */ ++ ++short int a; ++ ++void ++foo (int x, short int y, short int z) ++{ ++ if (y != 0) ++ { ++ const short int b = 37; ++ y = 0; ++ while (y < b) ++ { ++ while (y < b) ++ { ++ lab: ++ ++y; ++ } ++ for (y = 0; y < b - 1; ++y) ++ ; ++ if (z != 0) ++ { ++ --a; ++ y *= a; ++ } ++ z = x; ++ } ++ x = 0; ++ } ++ ++ goto lab; ++} +Index: gcc/testsuite/gcc.dg/torture/pr75964.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/torture/pr75964.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/torture/pr75964.c (.../branches/gcc-7-branch) +@@ -0,0 +1,28 @@ ++/* { dg-do run } */ ++ ++typedef __UINT8_TYPE__ uint8_t; ++ ++uint8_t __attribute__ ((noinline, noclone)) ++abs8 (uint8_t x) ++{ ++ if (x & 0x80) ++ x = -x; ++ ++ if (x & 0x80) ++ x = 0x7f; ++ ++ return x; ++} ++ ++int ++main (void) ++{ ++ if (abs8 (0) != 0 ++ || abs8 (1) != 1 ++ || abs8 (127) != 127 ++ || abs8 (128) != 127 ++ || abs8 (129) != 127 ++ || abs8 (255) != 1) ++ __builtin_abort (); ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/torture/pr80549.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/torture/pr80549.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/torture/pr80549.c (.../branches/gcc-7-branch) +@@ -0,0 +1,33 @@ ++/* { dg-do run } */ ++ ++signed char a, b; ++int c; ++short d; ++void fn1(int p1) ++{ ++ short e = 4; ++ int f; ++ d = 0; ++ for (; d <= 0; d++) ++ e = 0; ++ if (e) ++ goto L1; ++L2: ++ if (p1) { ++ a = 9; ++ for (; a; ++a) { ++ f = 5; ++ for (; f != 32; ++f) ++ c = 8; ++L1: ++ if (b) ++ goto L2; ++ } ++ } ++} ++ ++int main() ++{ ++ fn1(1); ++ return 0; ++} +Index: gcc/testsuite/gcc.dg/torture/pr80970.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/torture/pr80970.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/torture/pr80970.c (.../branches/gcc-7-branch) +@@ -0,0 +1,13 @@ ++/* { dg-do compile } */ ++ ++int a, b, c, d, e; ++void f () ++{ ++ long g, h; ++ if (c) ++ e = d; ++ g = d & 31; ++ h = 1 << g; ++ a = e | h; ++ b = a; ++} +Index: gcc/testsuite/gcc.dg/torture/pr80612.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/torture/pr80612.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/torture/pr80612.c (.../branches/gcc-7-branch) +@@ -0,0 +1,15 @@ ++/* PR tree-optimization/80612 */ ++/* { dg-do compile } */ ++ ++struct obstack *a; ++struct obstack { ++ union { ++ void *plain; ++ void (*extra)(); ++ } chunkfun; ++} fn1(void p4()) { ++ a->chunkfun.plain = p4; ++ a->chunkfun.extra(a); ++} ++void fn2(int) __attribute__((__alloc_size__(1))); ++void fn3() { fn1(fn2); } +Index: gcc/testsuite/gcc.dg/torture/pr81083.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/torture/pr81083.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/torture/pr81083.c (.../branches/gcc-7-branch) +@@ -0,0 +1,15 @@ ++/* { dg-do compile } */ ++ ++void setjmp(); ++void func(); ++void a(int arg) ++{ ++ extern struct { int x; } obj; ++ setjmp(); ++ obj.x = arg; ++ arg = arg; ++ if (obj.x) ++ func(); ++ if (obj.x) ++ func(); ++} +Index: gcc/testsuite/gcc.dg/torture/pr80539.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/torture/pr80539.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/torture/pr80539.c (.../branches/gcc-7-branch) +@@ -0,0 +1,22 @@ ++/* { dg-do compile } */ ++ ++signed char a, b; ++void fn1() ++{ ++ signed char c, e; ++ short d; ++ if (0) { ++ for (; d;) { ++l1: ++ for (c = 7; a; c++) ++ ; ++ e = 6; ++ for (; b; e++) ++ ; ++ } ++ c -= e; ++ } ++ if (d == 7) ++ goto l1; ++ a = c; ++} +Index: gcc/testsuite/gcc.dg/torture/pr80842.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/torture/pr80842.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/torture/pr80842.c (.../branches/gcc-7-branch) +@@ -0,0 +1,23 @@ ++/* { dg-do compile } */ ++ ++unsigned a; ++short b; ++char c, d, e; ++void fn1(); ++void fn2() { ++ a++; ++ for (; a;) ++ fn1(0, 0); ++} ++void fn3() { ++ fn2(); ++l1:; ++ unsigned char f; ++ short g; ++ unsigned char *h = &f; ++ g += &h ? e ? g = 1 : 0 : 0; ++ d = g; ++ c *f; ++ if (d & (b %= *h) < f * d / (d -= 0)) ++ goto l1; ++} +Index: gcc/testsuite/gcc.dg/tree-ssa/pr81388-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/tree-ssa/pr81388-1.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/pr81388-1.c (.../branches/gcc-7-branch) +@@ -0,0 +1,14 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -fno-strict-overflow -fdump-tree-ivcanon-details" } */ ++ ++void bar(); ++void foo(char *dst) ++{ ++ char *const end = dst; ++ do { ++ bar(); ++ dst += 2; ++ } while (dst < end); ++} ++ ++/* { dg-final { scan-tree-dump " zero if " "ivcanon" } } */ +Index: gcc/testsuite/gcc.dg/tree-ssa/pr81588.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/tree-ssa/pr81588.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/pr81588.c (.../branches/gcc-7-branch) +@@ -0,0 +1,16 @@ ++/* PR tree-optimization/81588 */ ++/* { dg-do compile { target { ! "m68k*-*-* mmix*-*-* bfin*-*-* v850*-*-* moxie*-*-* cris*-*-* m32c*-*-* fr30*-*-* mcore*-*-* powerpc*-*-* xtensa*-*-* hppa*-*-* nios2*-*-*" } } } */ ++/* { dg-options "-O2 -fdump-tree-reassoc1-details" } */ ++/* { dg-additional-options "-mbranch-cost=2" { target mips*-*-* avr-*-* s390*-*-* i?86-*-* x86_64-*-* } } */ ++ ++extern long long int a, c; ++extern unsigned short b; ++ ++/* { dg-final { scan-tree-dump-times "Optimizing range test \[^\n\r]* and comparison" 1 "reassoc1" } } */ ++ ++__attribute__((noinline, noclone)) void ++foo (void) ++{ ++ if ((b > a) != (1 + (a < 0))) ++ c = 0; ++} +Index: gcc/testsuite/gcc.dg/tree-ssa/pr81388-2.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/tree-ssa/pr81388-2.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/tree-ssa/pr81388-2.c (.../branches/gcc-7-branch) +@@ -0,0 +1,14 @@ ++/* { dg-do compile } */ ++/* { dg-options "-O2 -fdump-tree-ivcanon-details" } */ ++ ++void bar(); ++void foo(unsigned dst) ++{ ++ unsigned end = dst; ++ do { ++ bar(); ++ dst += 2; ++ } while (dst < end); ++} ++ ++/* { dg-final { scan-tree-dump " zero if " "ivcanon" } } */ +Index: gcc/testsuite/gcc.dg/pr80492.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/pr80492.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/pr80492.c (.../branches/gcc-7-branch) +@@ -0,0 +1,20 @@ ++/* { dg-do compile } */ ++/* { dg-options "-w -O2 -fdump-tree-optimized" } */ ++ ++static __inline__ __attribute__((__always_inline__)) ++void syscall_7 (int val) ++{ ++ register int reg __asm ("4") = val; ++ __asm __volatile__ ("/* Some Code %0 */" :: "r" (reg)); ++} ++ ++void do_syscalls (void) ++{ ++ for (int s = 0; s < 2; s++) ++ { ++ syscall_7 (0); ++ syscall_7 (1); ++ } ++} ++ ++/* { dg-final { scan-tree-dump-times "reg = " 4 "optimized" } } */ +Index: gcc/testsuite/gcc.dg/tree-prof/val-profiler-threads-1.c +=================================================================== +--- a/src/gcc/testsuite/gcc.dg/tree-prof/val-profiler-threads-1.c (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/gcc.dg/tree-prof/val-profiler-threads-1.c (.../branches/gcc-7-branch) +@@ -35,9 +35,9 @@ + } + } + +- int retval; ++ void *retval; + for(t=0;t ++ ++ PR middle-end/81766 ++ * gcc.target/i386/pr81766.c: New testcase. ++ ++2017-08-02 Uros Bizjak ++ ++ * gcc.target/i386/funcspec-56.inc (no_3dnowa): Properly ++ test "no-3dnowa" target attribute. ++ ++2017-08-02 Jakub Jelinek ++ ++ PR tree-optimization/81655 ++ PR tree-optimization/81588 ++ * gcc.dg/tree-ssa/pr81588.c: Use -mbranch-cost=2 where possible, ++ don't run the test on branch-cost=1 targets. ++ ++ PR middle-end/79499 ++ * gcc.dg/pr79499.c: New test. ++ ++2017-08-01 Uros Bizjak ++ ++ PR target/81641 ++ * gcc.target/i386/pr81641.c: New test. ++ ++2017-08-01 Jakub Jelinek ++ ++ PR target/81622 ++ * gcc.target/powerpc/pr81622.c: New test. ++ ++2017-08-01 Richard Biener ++ ++ PR tree-optimization/71752 ++ PR tree-optimization/81633 ++ * gcc.dg/vect/pr81633.c: New testcase. ++ ++2017-08-01 Richard Sandiford ++ ++ PR tree-optimization/80769 ++ * gcc.dg/strlenopt-31.c: New test. ++ * gcc.dg/strlenopt-31g.c: Likewise. ++ ++2017-08-01 Jakub Jelinek ++ ++ PR tree-optimization/81588 ++ * gcc.dg/tree-ssa/pr81588.c: New test. ++ * gcc.dg/pr81588.c: New test. ++ * gcc.c-torture/execute/pr81588.c: New test. ++ ++2017-07-31 Jakub Jelinek ++ ++ PR sanitizer/81604 ++ * c-c++-common/ubsan/pr81604.c: New test. ++ ++2017-07-28 Peter Bergner ++ ++ Backport from mainline ++ 2017-07-28 Peter Bergner ++ ++ * gcc.target/powerpc/cpu-builtin-1.c (darn, scv): Add tests. ++ ++2017-07-28 Bin Cheng ++ ++ Backport from mainline r250496 ++ 2017-07-25 Kyrylo Tkachov ++ ++ PR target/81414 ++ * gcc.target/aarch64/pr81414.C: New. ++ ++2017-07-27 Andreas Krebbel ++ ++ Backport from mainline ++ 2017-07-27 Andreas Krebbel ++ ++ PR target/81534 ++ * gcc.target/s390/pr81534.c: New test. ++ ++2017-07-27 Paolo Carlini ++ ++ PR c++/71570 ++ * g++.dg/cpp0x/lambda/lambda-ice17.C: New. ++ ++2017-07-27 Jakub Jelinek ++ ++ PR tree-optimization/81555 ++ PR tree-optimization/81556 ++ * gcc.c-torture/execute/pr81555.c: New test. ++ * gcc.c-torture/execute/pr81556.c: New test. ++ ++2017-07-27 Martin Liska ++ ++ Backport from mainline ++ 2017-07-26 Martin Liska ++ ++ PR sanitize/81186 ++ * gcc.dg/asan/pr81186.c: New test. ++ ++2017-07-27 Martin Liska ++ ++ Backport from mainline ++ 2017-06-30 Martin Liska ++ ++ PR sanitizer/81021 ++ * g++.dg/asan/pr81021.C: New test. ++ ++2017-07-27 Martin Liska ++ ++ Backport from mainline ++ 2017-06-28 Martin Liska ++ ++ PR sanitizer/81224 ++ * gcc.dg/asan/pr81224.c: New test. ++ ++2017-07-26 Wilco Dijkstra ++ ++ PR target/79041 ++ * gcc.target/aarch64/pr79041-2.c: Don't run in ILP32. ++ ++2017-07-26 Richard Biener ++ ++ Backport from mainline ++ 2017-06-18 Richard Biener ++ ++ PR tree-optimization/81410 ++ * gcc.dg/vect/pr81410.c: New testcase. ++ ++ 2017-07-25 Richard Biener ++ ++ PR tree-optimization/81455 ++ * gcc.dg/pr81455.c: New testcase. ++ ++ 2017-07-25 Richard Biener ++ ++ PR middle-end/81505 ++ * gcc.dg/ubsan/pr81505.c: New testcase. ++ ++ 2017-07-04 Jakub Jelinek ++ ++ PR target/81175 ++ * gcc.target/i386/pr69255-2.c (foo): Use the return value of the ++ gather. ++ ++ 2017-06-26 Richard Biener ++ ++ PR target/81175 ++ * gfortran.dg/pr81175.f: New testcase. ++ ++ 2017-06-21 Marc Glisse ++ ++ * gcc.dg/tree-ssa/addadd.c: Un-XFAIL. ++ * gcc.dg/tree-ssa/addadd-2.c: New file. ++ ++2016-07-25 Bill Schmidt ++ ++ Backport from mainline ++ 2016-07-14 Bill Schmidt ++ ++ PR tree-optimization/81162 ++ * gcc.dg/ubsan/pr81162.c: New file. ++ ++2017-07-25 Wilco Dijkstra ++ ++ PR target/79041 ++ * gcc.target/aarch64/pr79041-2.c: New test. ++ ++2017-07-25 Georg-Johann Lay ++ ++ Backport from trunk r247719. ++ ++ 2017-05-06 Richard Sandiford ++ ++ PR rtl-optimization/75964 ++ * gcc.dg/torture/pr75964.c: New test. ++ ++2017-07-25 Bin Cheng ++ ++ Backport from 2017-07-20 trunk r250384. ++ ++ PR tree-optimization/81388 ++ * gcc.dg/tree-ssa/pr81388-1.c: New test. ++ * gcc.dg/tree-ssa/pr81388-2.c: New test. ++ ++2017-07-23 Uros Bizjak ++ ++ PR target/80569 ++ * gcc.target/i386/pr80569.c: New test. ++ ++2017-07-19 Michael Meissner ++ ++ Back port from trunk ++ 2017-07-12 Michael Meissner ++ ++ PR target/81193 ++ * gcc.target/powerpc/cpu-builtin-1.c: Change test to use #ifdef ++ __BUILTIN_CPU_SUPPORTS to see if the GLIBC is new enough that ++ __builtin_cpu_is and __builtin_cpu_supports are supported. ++ ++2017-07-18 Uros Bizjak ++ ++ PR target/81471 ++ * gcc.target/i386/pr81471.c: New test. ++ ++2017-07-17 Jakub Jelinek ++ ++ PR tree-optimization/81428 ++ * gcc.dg/fixed-point/pr81428.c: New test. ++ ++ PR tree-optimization/81365 ++ * g++.dg/torture/pr81365.C: New test. ++ ++ Backported from mainline ++ 2017-07-04 Jakub Jelinek ++ ++ PR c++/81258 ++ * g++.dg/cpp1z/decomp21.C (foo): Adjust expected diagnostics. ++ * g++.dg/cpp1z/decomp30.C: New test. ++ ++ 2017-06-30 Jakub Jelinek ++ ++ PR target/81225 ++ * gcc.target/i386/pr81225.c: New test. ++ ++2017-07-16 Eric Botcazou ++ ++ * gnat.dg/opt65.adb: New test. ++ ++2017-07-10 Uros Bizjak ++ ++ PR target/81375 ++ * gcc.target/i386/pr81375.c: New test. ++ ++2017-07-07 Michael Meissner ++ ++ Backport from mainline ++ 2017-07-07 Michael Meissner ++ ++ PR target/81348 ++ * gcc.target/powerpc/pr81348.c: New test. ++ ++2017-07-07 Jose E. Marchesi ++ ++ * gcc.target/sparc/dictunpack.c: New file. ++ * gcc.target/sparc/fpcmpdeshl.c: Likewise. ++ * gcc.target/sparc/fpcmpshl.c: Likewise. ++ * gcc.target/sparc/fpcmpurshl.c: Likewise. ++ * gcc.target/sparc/fpcmpushl.c: Likewise. ++ ++2017-07-05 Georg-Johann Lay ++ ++ Backport from 2017-07-05 trunk r249995, r249996. ++ ++ PR target/81305 ++ * gcc.target/avr/isr-test.h: New file. ++ * gcc.target/avr/torture/isr-01-simple.c: New test. ++ * gcc.target/avr/torture/isr-02-call.c: New test. ++ * gcc.target/avr/torture/isr-03-fixed.c: New test. ++ ++2017-07-04 Uros Bizjak ++ ++ PR target/81300 ++ * gcc.target/i386/pr81300.c: New test. ++ ++2017-07-04 Uros Bizjak ++ ++ PR target/81294 ++ * gcc.target/i386/adx-addcarryx32-2.c (adx_test): Swap ++ x and y arguments in the call to _subborrow_u32. ++ * gcc.target/i386/adx-addcarryx64-2.c (adx_test): Swap ++ x and y arguments in the call to _subborrow_u64. ++ * gcc.target/i386/pr81294-1.c: New test. ++ * gcc.target/i386/pr81294-2.c: Ditto. ++ ++2017-07-03 Tom de Vries ++ ++ backport from mainline: ++ PR tree-optimization/81192 ++ 2017-07-03 Tom de Vries ++ ++ * gcc.dg/pr81192.c: New test. ++ ++2017-06-29 Michael Meissner ++ ++ Backport from mainline ++ 2017-06-23 Michael Meissner ++ ++ PR target/80510 ++ * gcc.target/powerpc/pr80510-1.c: Allow test to run on 32-bit. ++ * gcc.target/powerpc/pr80510-2.c: Likewise. ++ ++ Backport from mainline ++ 2017-06-20 Michael Meissner ++ ++ PR target/79799 ++ * gcc.target/powerpc/pr79799-1.c: New test. ++ * gcc.target/powerpc/pr79799-2.c: Likewise. ++ * gcc.target/powerpc/pr79799-3.c: Likewise. ++ * gcc.target/powerpc/pr79799-4.c: Likewise. ++ * gcc.target/powerpc/pr79799-5.c: Likewise. ++ ++2017-06-29 Richard Biener ++ ++ Backport from mainline ++ 2017-06-19 Richard Biener ++ ++ PR ipa/81112 ++ * g++.dg/torture/pr81112.C: New testcase. ++ ++2017-06-28 Richard Biener ++ ++ Backport from mainline ++ 2017-06-09 Richard Biener ++ ++ PR middle-end/81007 ++ * g++.dg/pr81007.C: New testcase. ++ ++ 2017-06-14 Richard Biener ++ ++ PR tree-optimization/81083 ++ * gcc.dg/torture/pr81083.c: New testcase. ++ ++2017-06-28 Eric Botcazou ++ ++ * gcc.dg/tree-prof/val-profiler-threads-1.c (main): Fix 2nd argument ++ passed to pthread_join. ++ ++2017-06-27 Jerry DeLisle ++ ++ Backport from trunk: ++ PR libgfortran/53029 ++ * gfortran.dg/read_5.f90: New test. ++ ++2017-06-27 Segher Boessenkool ++ ++ Backports from trunk: ++ ++ 2017-05-17 Segher Boessenkool ++ PR middle-end/80692 ++ * gcc.c-torture/execute/pr80692.c: New testcase. ++ ++ 2017-06-09 Segher Boessenkool ++ PR target/80966 ++ * gcc.target/powerpc/stack-limit.c: New testcase. ++ ++2017-06-27 Jakub Jelinek ++ ++ PR sanitizer/81209 ++ * g++.dg/ubsan/pr81209.C: New test. ++ ++ PR middle-end/81207 ++ * gcc.c-torture/compile/pr81207.c: New test. ++ ++2017-06-26 Eric Botcazou ++ ++ * c-c++-common/ubsan/sanitize-recover-7.c (dg-options): Add -w. ++ ++2017-06-24 Marek Polacek ++ ++ Backport from mainline ++ 2017-05-04 Marek Polacek ++ ++ PR tree-optimization/80612 ++ * gcc.dg/torture/pr80612.c: New test. ++ ++2017-06-23 Thomas Preud'homme ++ ++ Backport from mainline ++ 2017-05-04 Prakhar Bahuguna ++ ++ * gcc.target/arm/fpscr.c: New file. ++ ++2017-06-22 Martin Liska ++ ++ Backport from mainline ++ 2017-06-19 Martin Liska ++ ++ PR sanitizer/80879 ++ * gcc.dg/asan/use-after-scope-switch-4.c: New test. ++ ++2017-06-22 Martin Liska ++ ++ Backport from mainline ++ 2017-05-26 Martin Liska ++ ++ PR ipa/80663 ++ * g++.dg/ipa/pr80212.C: Remove the test as it does not longer ++ split at the problematic spot. ++ * gcc.dg/ipa/pr48195.c: Change 101 to 100 as 101 is no longer ++ a valid value of the param. ++ ++2017-06-21 Michael Meissner ++ ++ Back port from mainline ++ PR target/80510 ++ * gcc.target/powerpc/pr80510-1.c: Restrict test to 64-bit until ++ 32-bit support is added. Change ITYPE size to 64-bit integer. ++ * gcc.target/powerpc/pr80510-2.c: Likewise. ++ ++2017-06-21 Jakub Jelinek ++ ++ PR c++/81154 ++ * g++.dg/gomp/pr81154.C: New test. ++ ++ Backported from mainline ++ 2017-06-20 Jakub Jelinek ++ ++ PR target/81121 ++ * gcc.target/i386/pr81121.c: New test. ++ ++ 2017-06-19 Jakub Jelinek ++ ++ PR sanitizer/81125 ++ * g++.dg/ubsan/pr81125.C: New test. ++ ++ PR sanitizer/81111 ++ * g++.dg/ubsan/pr81111.C: New test. ++ ++ 2017-06-13 Jakub Jelinek ++ ++ PR c++/80973 ++ * g++.dg/ubsan/pr80973.C: New test. ++ ++ PR c++/80984 ++ * g++.dg/opt/nrv18.C: New test. ++ ++2017-06-19 James Greenhalgh ++ ++ Backport from mainline ++ 2017-06-19 James Greenhalgh ++ ++ PR target/71778 ++ * gcc.target/arm/pr71778.c: New. ++ ++2017-06-14 Eric Botcazou ++ ++ * gcc.target/sparc/overflow-4.c: Add -mno-vis3. ++ ++2017-06-09 Janus Weil ++ ++ Backport from trunk ++ PR fortran/70601 ++ * gfortran.dg/proc_ptr_comp_50.f90: New test. ++ ++2017-06-08 Uros Bizjak ++ ++ PR target/81015 ++ * gcc.target/i386/pr59874-1.c (foo): Call __builtin_ctzs. ++ * gcc.target/i386/pr59874-2.c (foo): Call __builtin_clzs. ++ * gcc.target/i386/pr81015.c: New test. ++ ++2017-06-08 Jakub Jelinek ++ ++ PR c/81006 ++ * c-c++-common/gomp/pr81006.c: New test. ++ ++ PR c++/81011 ++ * g++.dg/gomp/pr81011.C: New test. ++ ++2017-06-07 Richard Biener ++ ++ Backport from mainline ++ 2017-05-02 Richard Biener ++ ++ PR tree-optimization/80549 ++ * gcc.dg/torture/pr80549.c: New testcase. ++ ++ 2017-05-19 Richard Biener ++ ++ PR c++/80593 ++ * g++.dg/warn/Wstrict-aliasing-bogus-char-2.C: New testcase. ++ * g++.dg/warn/Wstrict-aliasing-6.C: Adjust expected outcome. ++ ++ 2017-05-26 Richard Biener ++ ++ PR tree-optimization/80842 ++ * gcc.dg/torture/pr80842.c: New testcase. ++ ++ 2017-05-31 Richard Biener ++ ++ PR tree-optimization/80906 ++ * gcc.dg/graphite/pr80906.c: New testcase. ++ ++ 2017-05-11 Richard Biener ++ ++ PR tree-optimization/80705 ++ * gcc.dg/vect/bb-slp-pr80705.c: New testcase. ++ ++2017-06-07 Marek Polacek ++ ++ Backport from mainline ++ 2017-06-04 Marek Polacek ++ ++ PR c/80919 ++ * gcc.dg/format/pr80919.c: New test. ++ ++2017-06-06 Michael Meissner ++ ++ Back port from mainline ++ 2017-05-19 Michael Meissner ++ ++ PR target/80718 ++ * gcc.target/powerpc/pr80718.c: New test. ++ ++2017-06-06 Thomas Koenig ++ ++ Backport from trunk ++ PR fortran/80975 ++ * gfortran.dg/matmul_16.f90: New test. ++ * gfortran.dg/inline_matmul_18.f90: New test. ++ ++2017-06-06 David S. Miller ++ ++ * gcc.target/sparc/sparc-ret-3.c: New test. ++ ++2017-06-05 Janus Weil ++ ++ Backport from trunk ++ PR fortran/80766 ++ * gfortran.dg/typebound_call_28.f90: New test. ++ ++2017-06-02 Thomas Koenig ++ ++ PR fortran/80904 ++ * gfortran.dg/matmul_bounds_12.f90: New test. ++ ++2017-06-02 Prakhar Bahuguna ++ ++ Backport from mainline ++ 2017-05-05 Andre Vieira ++ Prakhar Bahuguna ++ ++ PR target/71607 ++ * gcc.target/arm/thumb2-slow-flash-data.c: Renamed to ... ++ * gcc.target/arm/thumb2-slow-flash-data-1.c: ... this. ++ * gcc.target/arm/thumb2-slow-flash-data-2.c: New. ++ * gcc.target/arm/thumb2-slow-flash-data-3.c: New. ++ * gcc.target/arm/thumb2-slow-flash-data-4.c: New. ++ * gcc.target/arm/thumb2-slow-flash-data-5.c: New. ++ * gcc.target/arm/tls-disable-literal-pool.c: New. ++ ++2017-06-02 Jakub Jelinek ++ ++ PR rtl-optimization/80903 ++ * gcc.dg/pr80903.c: New test. ++ ++ PR fortran/80918 ++ * gfortran.dg/gomp/pr80918.f90: New test. ++ ++2017-05-31 Martin Jambor ++ ++ Backport from mainline ++ 2017-04-24 Martin Jambor ++ ++ PR tree-optimization/80293 ++ * g++.dg/tree-ssa/pr80293.C: New test. ++ ++2017-05-29 Andreas Krebbel ++ ++ Backport from mainline ++ 2017-05-24 Andreas Krebbel ++ ++ * gcc.target/s390/pr80725.c: New test. ++ ++2017-05-26 Marek Polacek ++ ++ Backported from mainline ++ 2017-05-17 Marek Polacek ++ ++ PR sanitizer/80659 ++ * gcc.dg/asan/pr80659.c: New test. ++ ++2017-05-26 Marek Polacek ++ ++ Backported from mainline ++ 2017-05-26 Marek Polacek ++ ++ PR sanitizer/80875 ++ * c-c++-common/ubsan/pr80875.c: New test. ++ ++2017-05-25 Michael Meissner ++ ++ Backport from trunk ++ 2017-05-18 Michael Meissner ++ ++ PR target/80510 ++ * gcc.target/powerpc/pr80510-1.c: New test. ++ * gcc.target/powerpc/pr80510-2.c: Likewise. ++ ++ Backport from trunk ++ 2017-05-09 Michael Meissner ++ ++ PR target/68163 ++ * gcc.target/powerpc/pr68163.c: New test. ++ ++2017-05-23 Jerry DeLisle ++ ++ Backport from trunk ++ PR libgfortran/80741 ++ * gfortran.dg/read_4.f90: New test. ++ ++2017-05-23 Jerry DeLisle ++ ++ Backport from trunk ++ PR libgfortran/80333 ++ * gfortran.dg/dtio_30.f03: New test. ++ ++2017-05-23 Sheldon Lobo ++ ++ Backport from mainline ++ 2017-05-18 Sheldon Lobo ++ ++ * gcc.target/sparc/niagara7-align.c: New test. ++ ++2017-05-23 Jerry DeLisle ++ ++ Backport from trunk ++ PR libgfortran/80333 ++ * gfortran.dg/dtio_30.f03: New test. ++ ++2017-05-22 Bill Schmidt ++ ++ Backport from mainline ++ 2017-05-22 Bill Schmidt ++ ++ * gcc.target/powerpc/p8-vec-xl-xst.c: Fix target string to ++ LE-only. ++ ++2017-05-22 Pierre-Marie de Rodat ++ ++ * gnat.dg/specs/not_null1.ads: New test. ++ ++2017-05-19 Uros Bizjak ++ ++ Backport from mainline ++ 2017-05-18 Uros Bizjak ++ ++ PR target/80799 ++ * g++.dg/other/i386-11.C: New test. ++ ++2017-05-17 Jerry DeLisle ++ ++ Backport from trunk ++ PR libgfortran/80727 ++ * gfortran.dg/read_3.f90: New test. ++ ++2017-05-17 Jerry DeLisle ++ ++ Backport from trunk ++ PR fortran/78659 ++ * gfortran.dg/namelist_91.f90: New test. ++ * gfortran.dg/namelist_92.f90: New test. ++ * gfortran.dg/namelist_93.f90: New test. ++ * gfortran.dg/namelist_94.f90: New test. ++ ++2017-05-15 Steven G. Kargl ++ ++ PR fortran/80752 ++ gfortran.dg/pr80752.f90: New test. ++ ++2017-05-14 Uros Bizjak ++ ++ Backport from mainline ++ 2017-05-11 Uros Bizjak ++ Jakub Jelinek ++ ++ PR target/80706 ++ * gcc.target/i386/pr80706.c: New test. ++ ++ 2017-05-11 Uros Bizjak ++ ++ * gcc.target/i386/pr22152.c: Fix undefined testcase. ++ Remove unnecessary loop. Run on 32-bit targets only. ++ ++2017-05-13 Bill Schmidt ++ ++ Backport from mainline ++ 2017-05-05 Bill Schmidt ++ ++ * gcc.target/powerpc/versioned-copy-loop.c: New file. ++ ++2017-05-12 Bill Schmidt ++ ++ Backport from mainline ++ 2017-05-10 Bill Schmidt ++ ++ * gcc.target/powerpc/p8-vec-xl-xst.c: New file. ++ ++2017-05-09 Michael Meissner ++ ++ Back port from mainline ++ 2017-05-05 Michael Meissner ++ ++ PR target/79038 ++ PR target/79202 ++ PR target/79203 ++ * gcc.target/powerpc/ppc-round3.c: New test. ++ * gcc.target/powerpc/ppc-round2.c: Update expected code. ++ ++2017-05-05 Janus Weil ++ ++ Backport from trunk ++ PR fortran/80121 ++ * gfortran.dg/intent_out_9.f90: New test case. ++ ++2017-05-05 Janus Weil ++ ++ Backport from trunk ++ PR fortran/80392 ++ * gfortran.dg/proc_ptr_comp_49.f90: New test case. ++ ++2017-05-04 Jerry DeLisle ++ ++ Backport from mainline ++ PR fortran/80484 ++ * gfortran.dg/dtio_29.f03: New test. ++ ++2017-05-03 Richard Biener ++ ++ Backport from mainline ++ 2017-04-25 Richard Biener ++ ++ PR tree-optimization/80492 ++ * gcc.dg/pr80492.c: New testcase. ++ ++ 2017-04-27 Richard Biener ++ ++ PR middle-end/80539 ++ * gcc.dg/torture/pr80539.c: New testcase. ++ ++2017-05-03 Jakub Jelinek ++ ++ Backported from mainline ++ 2017-04-21 Jakub Jelinek ++ ++ PR c/80468 ++ * gcc.dg/pr80468.c: New test. ++ + 2017-05-02 Release Manager + + * GCC 7.1.0 released. +@@ -52,8 +788,8 @@ + Backport from mainline + 2017-04-25 Andreas Krebbel + +- PR target/80464 +- * gfortran.fortran-torture/compile/pr80464.f90: New test. ++ PR target/80464 ++ * gfortran.fortran-torture/compile/pr80464.f90: New test. + + 2017-04-25 Andreas Krebbel + +@@ -60,8 +796,8 @@ + Backport from mainline + 2017-04-25 Andreas Krebbel + +- PR target/79895 +- * gcc.target/s390/pr79895.c: New test. ++ PR target/79895 ++ * gcc.target/s390/pr79895.c: New test. + + 2017-04-25 Dominik Vogt + +@@ -68,10 +804,10 @@ + Backport from maineline + 2017-04-25 Dominik Vogt + +- PR target/80080 +- * gcc.target/s390/md/atomic_compare_exchange-1.c: New test. +- * gcc.target/s390/md/atomic_compare_exchange-1.inc: New test. +- * gcc.target/s390/md/atomic_exchange-1.inc: New test. ++ PR target/80080 ++ * gcc.target/s390/md/atomic_compare_exchange-1.c: New test. ++ * gcc.target/s390/md/atomic_compare_exchange-1.inc: New test. ++ * gcc.target/s390/md/atomic_exchange-1.inc: New test. + + 2017-04-25 Jakub Jelinek + +@@ -132,7 +868,7 @@ + * gcc.dg/torture/pr80341.c: Require int32plus. + + 2017-04-19 Eric Botcazou +- Jeff Law ++ Jeff Law + + * gcc.c-torture/compile/20170419-1.c: New test. + +Index: gcc/testsuite/g++.dg/opt/nrv18.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/opt/nrv18.C (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/g++.dg/opt/nrv18.C (.../branches/gcc-7-branch) +@@ -0,0 +1,12 @@ ++// PR c++/80984 ++// { dg-do compile } ++ ++struct A { ~A (); }; ++ ++A ++foo () ++{ ++ A a; ++a: ++ return a; ++} +Index: gcc/testsuite/g++.dg/pr81007.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/pr81007.C (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/g++.dg/pr81007.C (.../branches/gcc-7-branch) +@@ -0,0 +1,15 @@ ++// { dg-do compile } ++// { dg-options "-O2" } ++ ++struct A ++{ ++ A p; // { dg-error "incomplete" } ++ virtual void foo(); ++}; ++ ++struct B : A {}; ++ ++void bar(B& b) ++{ ++ b.foo(); ++} +Index: gcc/testsuite/g++.dg/ubsan/pr81111.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/ubsan/pr81111.C (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/g++.dg/ubsan/pr81111.C (.../branches/gcc-7-branch) +@@ -0,0 +1,45 @@ ++// PR sanitizer/81111 ++// { dg-do compile } ++// { dg-options "-fsanitize=shift" } ++ ++template ++struct N ++{ ++ static const V m = (((V)(-1) < 0) ++ ? (V)1 << (sizeof(V) * __CHAR_BIT__ - ((V)(-1) < 0)) ++ : (V) 0); ++}; ++ ++template ++const V N::m; ++ ++template ++struct O ++{ ++ static const V m = (V)1 << sizeof(V) * __CHAR_BIT__; ++}; ++ ++template ++const V O::m; ++ ++void ++foo () ++{ ++ N::m; ++ N::m; ++#ifdef __SIZEOF_INT128__ ++ N<__int128>::m; ++ N::m; ++#endif ++} ++ ++void ++bar () ++{ ++ O::m; ++ O::m; ++#ifdef __SIZEOF_INT128__ ++ O<__int128>::m; ++ O::m; ++#endif ++} +Index: gcc/testsuite/g++.dg/ubsan/pr81209.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/ubsan/pr81209.C (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/g++.dg/ubsan/pr81209.C (.../branches/gcc-7-branch) +@@ -0,0 +1,21 @@ ++// PR sanitizer/81209 ++// { dg-do compile } ++// { dg-options "-fsanitize=undefined -fno-declone-ctor-dtor" } ++ ++#ifdef __SIZEOF_INT128__ ++typedef __int128 T; ++#else ++typedef long long int T; ++#endif ++ ++struct B {}; ++struct A : virtual public B ++{ ++ A (long); ++ T a; ++}; ++ ++A::A (long c) ++{ ++ long b = a % c; ++} +Index: gcc/testsuite/g++.dg/ubsan/pr80973.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/ubsan/pr80973.C (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/g++.dg/ubsan/pr80973.C (.../branches/gcc-7-branch) +@@ -0,0 +1,16 @@ ++// PR c++/80973 ++// { dg-do compile } ++// { dg-options "-fsanitize=undefined -std=c++14" } ++ ++struct A { ++ A(); ++ A(const A &); ++}; ++struct B { ++ B(); ++ template auto g(Args &&... p1) { ++ return [=] { f(p1...); }; ++ } ++ void f(A, const char *); ++}; ++B::B() { g(A(), ""); } +Index: gcc/testsuite/g++.dg/ubsan/pr81125.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/ubsan/pr81125.C (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/g++.dg/ubsan/pr81125.C (.../branches/gcc-7-branch) +@@ -0,0 +1,20 @@ ++// PR sanitizer/81125 ++// { dg-do compile } ++// { dg-options "-fsanitize=undefined" } ++ ++#ifdef __SIZEOF_INT128__ ++typedef __int128 T; ++#else ++typedef long long int T; ++#endif ++ ++struct A ++{ ++ A (long); ++ T a; ++}; ++ ++A::A (long c) ++{ ++ long b = a % c; ++} +Index: gcc/testsuite/g++.dg/parse/template-keyword1.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/parse/template-keyword1.C (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/g++.dg/parse/template-keyword1.C (.../branches/gcc-7-branch) +@@ -0,0 +1,3 @@ ++// PR c++/81257 ++ ++template < typename ::template A < int > >; // { dg-error "" } +Index: gcc/testsuite/g++.dg/parse/template28.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/parse/template28.C (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/g++.dg/parse/template28.C (.../branches/gcc-7-branch) +@@ -0,0 +1,10 @@ ++// PR c++/79056 ++ ++template struct A {}; ++ ++template void foo(A=A()) {} // { dg-error "" } ++ ++void bar() ++{ ++ foo(A()); // { dg-error "" } ++} +Index: gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn2.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn2.C (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/g++.dg/cpp0x/variadic-mem_fn2.C (.../branches/gcc-7-branch) +@@ -0,0 +1,9 @@ ++// { dg-do compile { target c++11 } } ++ ++template struct tuple ++{ ++ tuple tail; ++ template int apply(const More&... more) { ++ return tail.apply<1>(more...); // { dg-error "" } needs .template ++ } ++}; +Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice17.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice17.C (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice17.C (.../branches/gcc-7-branch) +@@ -0,0 +1,12 @@ ++// PR c++/71570 ++// { dg-do compile { target c++11 } } ++ ++void foo (int); ++ ++void foo (void) ++{ ++ [&foo] // { dg-error "cannot capture" } ++ { ++ foo (0); ++ }; ++} +Index: gcc/testsuite/g++.dg/cpp0x/constexpr-diag3.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/cpp0x/constexpr-diag3.C (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/g++.dg/cpp0x/constexpr-diag3.C (.../branches/gcc-7-branch) +@@ -16,7 +16,7 @@ + struct complex // { dg-message "no constexpr constructor" } + { + complex(double r, double i) : re(r), im(i) { } +- constexpr double real() const { return re; } // { dg-error "not a literal type" } ++ constexpr double real() const { return re; } // { dg-error "not a literal type" "" { target c++11_only } } + double imag() const { return im; } + + private: +@@ -25,7 +25,7 @@ + }; + + constexpr complex co1(0, 1); // { dg-error "not literal" } +-constexpr double dd2 = co1.real(); // { dg-error "non-constexpr function" } ++constexpr double dd2 = co1.real(); // { dg-error "" } + + // -------------------- + +Index: gcc/testsuite/g++.dg/cpp0x/variadic-ttp8.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/cpp0x/variadic-ttp8.C (.../tags/gcc_7_1_0_release) ++++ b/src/gcc/testsuite/g++.dg/cpp0x/variadic-ttp8.C (.../branches/gcc-7-branch) +@@ -0,0 +1,27 @@ ++// PR c++/69111 ++// { dg-do compile { target c++11 } } ++ ++template