summaryrefslogtreecommitdiffstats
path: root/debian/rules2
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:22:56 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:22:56 +0000
commit3f472a4e5ca21e3ddb13737473e636b2b11a408a (patch)
tree7db1ab317884b9f6e04b6e13737c1679879cb97a /debian/rules2
parentAdding upstream version 13.2.0. (diff)
downloadgcc-13-ab266d89fba8a7a3d6014ca9c2f3dd6b491917d6.tar.xz
gcc-13-ab266d89fba8a7a3d6014ca9c2f3dd6b491917d6.zip
Adding debian version 13.2.0-10.debian/13.2.0-10debian
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/rules2')
-rw-r--r--debian/rules23061
1 files changed, 3061 insertions, 0 deletions
diff --git a/debian/rules2 b/debian/rules2
new file mode 100644
index 0000000..9eeeab7
--- /dev/null
+++ b/debian/rules2
@@ -0,0 +1,3061 @@
+#! /usr/bin/make -f
+# -*- makefile -*-
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+.SUFFIXES:
+
+include debian/rules.defs
+include debian/rules.parameters
+
+ifneq (,$(findstring gcc-toolchain, $(PKGSOURCE)))
+ -include $(binutils_srcdir)/debian/rules.defs
+endif
+
+dh_compat2 := $(shell dpkg --compare-versions "$$(dpkg-query -f '$${Version}' -W debhelper)" lt 9.20150811ubuntu2 \
+ && echo DH_COMPAT=2)
+
+# some tools
+SHELL = /bin/bash -e # brace expansion in rules file
+IR = install -m 644 # Install regular file
+IP = install -m 755 # Install program
+IS = install -m 755 # Install script
+
+DWZ = dwz
+ifneq (,$(filter $(distrelease),jessie stretch trusty xenial))
+ DWZ = : dwz
+endif
+
+# dwz: debian/gccgo-11/usr/lib/gcc/mips64el-linux-gnuabi64/11/go1: Found two copies of .debug_line_str section
+ifneq (,$(filter $(DEB_HOST_ARCH),mips64el))
+ DWZ = : dwz
+endif
+
+# kernel-specific ulimit hack
+ifeq ($(findstring linux,$(DEB_HOST_GNU_SYSTEM)),linux)
+ ULIMIT_M = if [ -e /proc/meminfo ]; then \
+ m=`awk '/^((Mem|Swap)Free|Cached)/{m+=$$2}END{print int(m*.9)}' \
+ /proc/meminfo`; \
+ else \
+ m=`vmstat --free --swap-free --kilobytes|awk '{m+=$$2}END{print int(m*.9)}'`; \
+ fi; \
+ echo "Limiting memory for test runs to $${m}kB"; \
+ if ulimit -m $$m; then \
+ echo " limited to `ulimit -m`kB"; \
+ else \
+ echo " failed"; \
+ fi
+else
+ ULIMIT_M = true
+endif
+
+#time_command = /usr/bin/time -v
+ifeq ($(usage_stats),yes)
+ time_command += $(CURDIR)/debian/usage-wrapper.py $(NJOBS) --base-memory -m 2.0 -o usage-$(shell echo $@ | sed 's/.*0[1-9]-//;s/-stamp//').svg
+endif
+
+ifeq ($(locale_data),generate)
+ SET_LOCPATH = LOCPATH=$(CURDIR)/locales
+endif
+
+SET_PATH = PATH=$(CURDIR)/bin:/usr/$(libdir)/gcc/bin:$$PATH
+ifeq ($(trunk_build),yes)
+ ifneq (,$(findstring sparc64-linux,$(DEB_TARGET_GNU_TYPE)))
+ SET_PATH = PATH=/usr/lib/gcc-snapshot/bin:$(CURDIR)/bin:/usr/$(libdir)/gcc/bin:$$PATH
+ endif
+ ifneq (,$(findstring ppc64-linux,$(DEB_TARGET_GNU_TYPE)))
+ SET_PATH = PATH=/usr/lib/gcc-snapshot/bin:$(CURDIR)/bin:/usr/$(libdir)/gcc/bin:$$PATH
+ endif
+endif
+
+# the recipient for the test summaries. Send with: debian/rules mail-summary
+S_EMAIL = gcc@packages.debian.org gcc-testresults@gcc.gnu.org
+
+# build not yet prepared to take variables from the environment
+define unsetenv
+ unexport $(1)
+ $(1) =
+endef
+$(foreach v, CPPFLAGS CFLAGS CXXFLAGS DFLAGS FFLAGS FCFLAGS LDFLAGS OBJCFLAGS OBJCXXFLAGS, $(if $(filter environment,$(origin $(v))),$(eval $(call unsetenv, $(v)))))
+
+CC = $(notdir $(firstword $(wildcard \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gcc-13 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gcc-12 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gcc-11 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gcc-10 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gcc-9 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gcc-8 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gcc)))
+CXX = $(notdir $(firstword $(wildcard \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-g++-13 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-g++-12 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-g++-11 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-g++-10 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-g++-9 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-g++-8 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-g++)))
+GDC = $(notdir $(firstword $(wildcard \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gdc-13 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gdc-12 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gdc-11 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gdc-10 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gdc-9 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gdc)))
+ifeq ($(with_ada),yes)
+ GNAT = $(notdir $(firstword $(wildcard \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gnat-13 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gnat-12 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gnat-11 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gnat-10 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gnat-9 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gnat-8 \
+ /usr/bin/$(DEB_HOST_GNU_TYPE)-gnat /usr/bin/gnatgcc)))
+ ifeq ($(GNAT),gnatgcc)
+ CC := $(shell readlink /usr/bin/gnatgcc)
+ else ifneq (,$(GNAT))
+ CC = $(subst gnat,gcc,$(GNAT))
+ else ifneq (,$(filter $(distrelease), trusty))
+ CC = gcc-4.8
+ else ifneq (,$(wildcard /usr/bin/$(DEB_HOST_GNU_TYPE)-gcc))
+ CC = $(DEB_HOST_GNU_TYPE)-gcc
+ else
+ CC = gcc
+ endif
+ CXX = $(subst gcc,g++,$(CC))
+ GDC = $(subst gcc,gdc,$(CC))
+endif
+
+ifneq (,$(filter $(build_type),cross-build-native cross-build-cross))
+ SET_TARGET_TOOLS = \
+ CC_FOR_TARGET=$(DEB_TARGET_GNU_TYPE)-gcc-$(BASE_VERSION) \
+ CXX_FOR_TARGET=$(DEB_TARGET_GNU_TYPE)-g++-$(BASE_VERSION) \
+ GFORTRAN_FOR_TARGET=$(DEB_TARGET_GNU_TYPE)-gfortran-$(BASE_VERSION) \
+ GOC_FOR_TARGET=$(DEB_TARGET_GNU_TYPE)-gccgo-$(BASE_VERSION) \
+ GNAT_FOR_TARGET=$(DEB_TARGET_GNU_TYPE)-gnat-$(BASE_VERSION) \
+ GDC_FOR_TARGET=$(DEB_TARGET_GNU_TYPE)-gdc-$(BASE_VERSION) \
+ GM2_FOR_TARGET=$(DEB_TARGET_GNU_TYPE)-gm2-$(BASE_VERSION)
+endif
+
+ifeq ($(DEB_BUILD_GNU_TYPE),$(DEB_TARGET_GNU_TYPE))
+ CC_FOR_TARGET = $(builddir)/gcc/xgcc -B$(builddir)/gcc/
+else
+ CC_FOR_TARGET = $(DEB_TARGET_GNU_TYPE)-gcc
+endif
+
+ifneq ($(derivative),Ubuntu)
+ ifneq (,$(filter $(DEB_TARGET_ARCH), arm armel mips mipsel))
+ STAGE1_CFLAGS = -g -O2
+ endif
+endif
+
+ifeq ($(with_ssp_default),yes)
+ STAGE1_CFLAGS = -g
+ ifeq (,$(BOOT_CFLAGS))
+ BOOT_CFLAGS = -g -O2
+ endif
+ LIBCFLAGS = -g -O2
+ LIBCXXFLAGS = -g -O2 -fno-implicit-templates
+ # Only use -fno-stack-protector when known to the stage1 compiler.
+ cc-fno-stack-protector := $(shell if $(CC) $(CFLAGS) -fno-stack-protector \
+ -S -o /dev/null -xc /dev/null > /dev/null 2>&1; \
+ then echo "-fno-stack-protector"; fi;)
+ $(foreach var,STAGE1_CFLAGS BOOT_CFLAGS LIBCFLAGS LIBCXXFLAGS,$(eval \
+ $(var) += $(cc-fno-stack-protector)))
+endif
+
+# FIXME: passing LDFLAGS for native doesn't do anything
+ifneq (,$(filter $(build_type), build-cross cross-build-cross))
+ CFLAGS = -g -O2
+ LDFLAGS = -Wl,-z,relro
+ ifeq ($(DEB_TARGET_ARCH),alpha)
+ LDFLAGS += -Wl,--no-relax
+ endif
+else
+ BOOT_LDFLAGS = -Wl,-z,relro
+ ifeq ($(DEB_TARGET_ARCH),alpha)
+ BOOT_LDFLAGS += -Wl,--no-relax
+ endif
+endif
+LDFLAGS_FOR_TARGET = -Wl,-z,relro
+ifeq ($(DEB_TARGET_ARCH),alpha)
+ LDFLAGS := $(filter-out -Wl$(COMMA)--no-relax, $(LDFLAGS)) -Wl,--no-relax
+endif
+
+ifneq (,$(findstring static,$(DEB_BUILD_OPTIONS)))
+ LDFLAGS += -static
+endif
+
+ifneq ($(findstring gccdebug, $(DEB_BUILD_OPTIONS)),)
+ CFLAGS = -O0 -g3 -fno-inline
+ CXXFLAGS = -O0 -g3 -fno-inline
+ CFLAGS_FOR_BUILD = -O0 -g3 -fno-inline
+ CXXFLAGS_FOR_BUILD = -O0 -g3 -fno-inline
+ CFLAGS_FOR_TARGET = -O0 -g3 -fno-inline
+ CXXFLAGS_FOR_TARGET = -O0 -g3 -fno-inline
+ BOOT_CFLAGS =
+ BOOT_LDFLAGS =
+ STAGE1_CFLAGS =
+ STAGE1_LDFLAGS =
+endif
+
+# set CFLAGS/LDFLAGS for the configure step only, maybe be modifed for some target
+# all other flags are passed to the make step.
+pass_vars = $(foreach v,$(1),$(if $($(v)),$(v)="$($(v))"))
+flags_to_pass := CFLAGS CXXFLAGS LIBCFLAGS LIBCXXFLAGS LDFLAGS
+
+docdir = usr/share/doc
+
+# no prefix for regular builds, would disable searching for as / ld
+binutils_prefix =
+ifneq (,$(with_build_sysroot))
+ binutils_prefix = $(with_build_sysroot)/usr/bin
+endif
+
+CONFARGS = -v \
+ --with-pkgversion='$(distribution)$(if $(with_ibm_branch),/IBM)___$(DEB_VERSION)' \
+ --with-bugurl='file:///usr/share/doc/$(PKGSOURCE)/README.Bugs'
+
+CONFARGS += \
+ --enable-languages=$(subst $(SPACE),$(COMMA),$(enabled_languages)) \
+ --prefix=/$(PF) \
+ --with-gcc-major-version-only \
+
+ifneq (,$(with_build_sysroot))
+ CONFARGS += \
+ --with-as=$(binutils_prefix)/$(DEB_TARGET_GNU_TYPE)-as \
+ --with-ld=$(binutils_prefix)/$(DEB_TARGET_GNU_TYPE)-ld
+endif
+
+ifeq ($(versioned_packages),yes)
+ CONFARGS += --program-suffix=-$(BASE_VERSION)
+endif
+ifneq (,$(filter $(build_type),build-native cross-build-native))
+ CONFARGS += --program-prefix=$(cmd_prefix)
+endif
+
+ifneq (,$(filter $(DEB_STAGE),stage1 stage2))
+ CONFARGS += \
+ --disable-decimal-float \
+ --disable-libatomic \
+ --disable-libgomp \
+ --disable-libssp \
+ --disable-libquadmath \
+ --disable-libsanitizer \
+ --disable-threads \
+ --disable-bootstrap \
+ --libexecdir=/$(libexecdir) \
+ --libdir=/$(PF)/$(configured_libdir) \
+ $(if $(with_build_sysroot),--with-build-sysroot=$(with_build_sysroot)) \
+ $(if $(findstring build-cross, $(build_type)), \
+ $(if $(with_sysroot),--with-sysroot=$(with_sysroot))) \
+ --enable-linker-build-id
+
+ ifeq ($(with_multiarch_lib),yes)
+ CONFARGS += \
+ --enable-multiarch
+ endif
+
+ ifeq ($(DEB_STAGE),stage1)
+ CONFARGS += \
+ --disable-shared \
+ --with-newlib \
+ --without-headers
+ else
+ # stage2
+ CONFARGS += \
+ --enable-shared
+ endif
+else
+ CONFARGS += \
+ --enable-shared \
+ --enable-linker-build-id \
+
+ifneq ($(single_package),yes)
+ CONFARGS += \
+ --libexecdir=/$(libexecdir) \
+ --without-included-gettext \
+ --enable-threads=posix \
+ --libdir=/$(PF)/$(configured_libdir)
+endif
+
+ifneq ($(with_cpp),yes)
+ CONFARGS += --disable-cpp
+endif
+
+ifeq ($(with_nls),yes)
+ CONFARGS += --enable-nls
+else
+ CONFARGS += --disable-nls
+endif
+
+ifeq ($(with_bootstrap),off)
+ CONFARGS += --disable-bootstrap
+else ifneq ($(with_bootstrap),)
+ CONFARGS += --enable-bootstrap
+endif
+
+ifneq ($(with_sysroot),)
+ CONFARGS += --with-sysroot=$(with_sysroot)
+endif
+ifneq ($(with_build_sysroot),)
+ CONFARGS += --with-build-sysroot=$(with_build_sysroot)
+endif
+
+ifeq ($(force_gnu_locales),yes)
+ CONFARGS += --enable-clocale=gnu
+endif
+
+ifeq ($(with_cxx)-$(with_cxx_debug),yes-yes)
+ CONFARGS += --enable-libstdcxx-debug
+endif
+CONFARGS += --enable-libstdcxx-time=yes
+CONFARGS += --with-default-libstdcxx-abi=$(libstdcxx_abi)
+ifeq ($(libstdcxx_abi),gcc4-compatible)
+ CONFARGS += --disable-libstdcxx-dual-abi
+endif
+CONFARGS += --enable-libstdcxx-backtrace
+
+ifeq (,$(filter $(DEB_TARGET_ARCH), hurd-amd64 hurd-i386 kfreebsd-amd64 kfreebsd-i386))
+ CONFARGS += --enable-gnu-unique-object
+endif
+
+ifneq ($(with_ssp),yes)
+ CONFARGS += --disable-libssp
+endif
+
+ifneq ($(with_gomp),yes)
+ CONFARGS += --disable-libgomp
+endif
+
+ifneq ($(with_itm),yes)
+ CONFARGS += --disable-libitm
+endif
+
+ifneq ($(with_atomic),yes)
+ CONFARGS += --disable-libatomic
+endif
+
+ifneq (,$(filter $(DEB_TARGET_ARCH),$(vtv_archs)))
+ ifeq ($(with_vtv),yes)
+ CONFARGS += --enable-vtable-verify
+ else
+ CONFARGS += --disable-vtable-verify
+ endif
+endif
+
+ifneq ($(with_asan),yes)
+ CONFARGS += --disable-libsanitizer
+endif
+
+ifneq ($(with_qmath),yes)
+ CONFARGS += --disable-libquadmath --disable-libquadmath-support
+endif
+
+ifeq ($(with_plugins),yes)
+ CONFARGS += --enable-plugin
+endif
+
+#ifeq ($(with_gold),yes)
+# CONFARGS += --enable-gold --enable-ld=default
+#endif
+
+#CONFARGS += --with-plugin-ld=ld.gold
+#CONFARGS += --with-plugin-ld
+
+# enable pie-by-default on pie_archs
+ifeq ($(with_pie),yes)
+ CONFARGS += --enable-default-pie
+endif
+
+endif # !DEB_STAGE
+
+CONFARGS += --with-system-zlib
+
+ifeq ($(with_phobos),yes)
+ CONFARGS += --enable-libphobos-checking=release
+ ifeq ($(DEB_CROSS),yes)
+ CONFARGS += --without-target-system-zlib
+ else
+ CONFARGS += --with-target-system-zlib=auto
+ endif
+endif
+
+ifeq ($(with_d),yes)
+ ifneq (,$(filter $(DEB_TARGET_ARCH), $(druntime_only_archs)))
+ CONFARGS += --with-libphobos-druntime-only=yes
+ else ifneq ($(with_phobos),yes)
+ CONFARGS += --disable-libphobos
+ endif
+endif
+
+ifeq ($(with_objc)-$(with_objc_gc),yes-yes)
+ CONFARGS += --enable-objc-gc=auto
+endif
+
+ifneq (,$(filter $(DEB_TARGET_GNU_TYPE), i486-linux-gnu i586-linux-gnu i686-linux-gnu))
+ ifeq ($(multilib),yes)
+ ifeq ($(biarch64),yes)
+ CONFARGS += --enable-targets=all
+ endif
+ endif
+endif
+
+ifneq (,$(filter $(DEB_TARGET_GNU_TYPE), x86_64-linux-gnu x86_64-linux-gnux32 x86_64-gnu x86_64-kfreebsd-gnu s390x-linux-gnu sparc64-linux-gnu))
+ ifneq ($(biarch32),yes)
+ CONFARGS += --disable-multilib
+ endif
+endif
+
+ifneq (,$(filter $(DEB_TARGET_GNU_TYPE), powerpc-linux-gnu powerpc-linux-gnuspe))
+ CONFARGS += --enable-secureplt
+ ifeq ($(biarch64),yes)
+ CONFARGS += --disable-softfloat --with-cpu=default32
+ ifeq ($(multilib),yes)
+ CONFARGS += --disable-softfloat \
+ --enable-targets=powerpc-linux,powerpc64-linux
+ endif
+ else
+ CONFARGS += --disable-multilib
+ endif
+endif
+
+ifneq (,$(findstring powerpc64le-linux,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --enable-secureplt
+ ifeq ($(derivative),Ubuntu)
+ ifneq (,$(filter $(distrelease), jessie trusty))
+ CONFARGS += --with-cpu=power7 --with-tune=power8
+ else ifneq (,$(filter $(distrelease), xenial bionic focal hirsute impish))
+ CONFARGS += --with-cpu=power8
+ else
+ CONFARGS += --with-cpu=power9
+ endif
+ endif
+ CONFARGS += --enable-targets=powerpcle-linux
+ CONFARGS += --disable-multilib
+endif
+
+ifneq (,$(findstring powerpc64-linux,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --enable-secureplt
+ ifeq ($(biarch32),yes)
+ ifeq ($(multilib),yes)
+ CONFARGS += --disable-softfloat --enable-targets=powerpc64-linux,powerpc-linux
+ endif
+ else
+ CONFARGS += --disable-multilib
+ endif
+ ifeq ($(derivative),Ubuntu)
+ CONFARGS += --with-cpu-32=power7 --with-cpu-64=power7
+ endif
+endif
+
+# FIXME: only needed for isl-0.13 for now
+#CONFARGS += --disable-isl-version-check
+
+ifneq (,$(findstring cross-build-,$(build_type)))
+ # FIXME: requires isl headers for the target
+ #CONFARGS += --without-isl
+ # FIXME: build currently fails build the precompiled headers
+ CONFARGS += --disable-libstdcxx-pch
+endif
+
+ifeq ($(with_multiarch_lib),yes)
+ CONFARGS += --enable-multiarch
+endif
+
+ifneq (,$(findstring alpha,$(DEB_TARGET_GNU_CPU)))
+ CONFARGS += --with-cpu=ev56
+endif
+
+ifneq (,$(findstring aarch64,$(DEB_TARGET_GNU_CPU)))
+ # requires binutils 2.25.90 or newer
+ ifeq (,$(filter $(distrelease), precise trusty))
+ CONFARGS += --enable-fix-cortex-a53-843419
+ endif
+endif
+
+ifneq (,$(findstring softfloat,$(DEB_TARGET_GNU_CPU)))
+ CONFARGS += --with-float=soft
+endif
+
+ifneq (,$(findstring arc-linux,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --disable-multilib
+endif
+
+ifneq (,$(findstring arm-vfp,$(DEB_TARGET_GNU_CPU)))
+ CONFARGS += --with-fpu=vfp
+endif
+
+ifneq (,$(findstring arm, $(DEB_TARGET_GNU_CPU)))
+ ifeq ($(multilib),yes)
+ CONFARGS += --enable-multilib
+ endif
+ CONFARGS += --disable-sjlj-exceptions
+ ifneq (,$(filter %armhf,$(DEB_TARGET_ARCH)))
+ ifeq ($(distribution),Raspbian)
+ with_arm_arch = armv6+fp
+ else
+ ifneq (,$(filter $(distrelease), jessie stretch buster bullseye xenial bionic focal hirsute))
+ with_arm_fpu = vfpv3-d16
+ with_arm_arch = armv7-a
+ else
+ with_arm_fpu =
+ with_arm_arch = armv7-a+fp
+ endif
+ endif
+ else
+ # armel
+ ifeq ($(derivative),Debian)
+ ifneq (,$(filter $(distrelease), jessie stretch))
+ with_arm_arch = armv4t
+ else
+ with_arm_arch = armv5te
+ endif
+ else ifneq (,$(filter $(distrelease), precise))
+ with_arm_arch = armv7-a+fp
+ else
+ with_arm_arch = armv5t # starting with quantal
+ CONFARGS += --with-specs='%{mfloat-abi=hard:-march=armv7-a___-mcpu=generic-armv7-a___-mfloat-abi=hard}'
+ endif
+ endif
+ CONFARGS += --with-arch=$(with_arm_arch)
+ ifneq (,$(with_arm_fpu))
+ CONFARGS += --with-fpu=$(with_arm_fpu)
+ endif
+ CONFARGS += --with-float=$(float_abi)
+ ifeq ($(with_arm_thumb),yes)
+ CONFARGS += --with-mode=thumb
+ endif
+endif
+
+ifeq ($(DEB_TARGET_GNU_CPU),$(findstring $(DEB_TARGET_GNU_CPU),m68k))
+ CONFARGS += --disable-werror
+endif
+# FIXME: correct fix-warnings.dpatch
+ifeq ($(derivative),Ubuntu)
+ CONFARGS += --disable-werror
+else ifeq ($(derivative),Debian)
+ CONFARGS += --disable-werror
+endif
+
+ifneq (,$(findstring sparc-linux,$(DEB_TARGET_GNU_TYPE)))
+ ifeq ($(biarch64),yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-cpu-32=ultrasparc
+ else
+ CONFARGS += --with-cpu=ultrasparc
+ endif
+endif
+
+ifneq (,$(findstring sparc64-linux,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-cpu-32=ultrasparc
+ ifeq ($(biarch32),yes)
+ CONFARGS += --enable-targets=all
+ endif
+endif
+
+ifneq (,$(findstring ia64-linux,$(DEB_TARGET_GNU_TYPE)))
+ ifneq ($(with_internal_libunwind),yes)
+ CONFARGS += --with-system-libunwind
+ endif
+endif
+
+ifneq (,$(findstring sh4-linux,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-cpu=sh4 --with-multilib-list=m4,m4-nofpu
+endif
+
+ifneq (,$(findstring m68k-linux,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --disable-multilib
+endif
+
+ifneq (,$(findstring riscv64-linux,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --disable-multilib
+ CONFARGS += --with-arch=rv64gc --with-abi=lp64d
+endif
+
+ifneq (,$(findstring s390x-linux,$(DEB_TARGET_GNU_TYPE)))
+ ifeq ($(derivative),Ubuntu)
+ ifneq (,$(filter $(distrelease),xenial bionic focal))
+ CONFARGS += --with-arch=zEC12
+ else ifneq (,$(filter $(distrelease),jammy kinetic))
+ CONFARGS += --with-arch=z13 --with-tune=z15
+ else
+ CONFARGS += --with-arch=z13 --with-tune=z16
+ endif
+ else # Debian
+ CONFARGS += --with-arch=z196
+ endif
+ ifneq (,$(filter $(distrelease),stretch buster bullseye bookworm xenial bionic focal jammy lunar mantic))
+ CONFARGS += --enable-s390-excess-float-precision
+ else
+ CONFARGS += --disable-s390-excess-float-precision
+ endif
+endif
+
+ifeq ($(DEB_TARGET_ARCH_OS),linux)
+ ifneq (,$(findstring $(DEB_TARGET_ARCH), alpha powerpc ppc64 ppc64el s390 s390x sparc sparc64))
+ CONFARGS += --with-long-double-128
+ endif
+endif
+
+ifneq (,$(filter $(derivative),Ubuntu))
+ ifneq (,$(filter $(DEB_TARGET_ARCH), amd64 i386 x32))
+ ifneq (,$(filter $(distrelease),precise xenial bionic))
+ CONFARGS += --disable-cet
+ else
+ CONFARGS += --enable-cet
+ endif
+ endif
+else ifneq (,$(filter $(derivative),Debian))
+ ifneq (,$(filter $(DEB_TARGET_ARCH), amd64 x32))
+ ifneq (,$(filter $(distrelease),jessie stretch buster bullseye))
+ CONFARGS += --disable-cet
+ else
+ CONFARGS += --enable-cet
+ endif
+ endif
+endif
+
+ifneq (,$(filter $(DEB_TARGET_ARCH), amd64 i386 kfreebsd-i386 kfreebsd-amd64))
+ ifneq (,$(filter $(derivative),Ubuntu))
+ CONFARGS += --with-arch-32=i686
+ else # Debian
+ ifneq (,$(filter $(distrelease), jessie))
+ CONFARGS += --with-arch-32=i586
+ else
+ CONFARGS += --with-arch-32=i686
+ endif
+ endif
+endif
+
+ifeq ($(DEB_TARGET_ARCH),amd64)
+ CONFARGS += --with-abi=m64
+endif
+ifeq ($(DEB_TARGET_ARCH),x32)
+ CONFARGS += --with-abi=mx32
+endif
+ifeq ($(multilib),yes)
+ ifneq (,$(filter $(DEB_TARGET_ARCH), amd64 i386))
+ CONFARGS += --with-multilib-list=m32,m64$(if $(filter yes,$(biarchx32)),$(COMMA)mx32)
+ else ifeq ($(DEB_TARGET_ARCH),x32)
+ CONFARGS += --with-multilib-list=mx32,m64,m32
+ endif
+ CONFARGS += --enable-multilib
+endif
+
+ifneq (,$(filter $(DEB_TARGET_ARCH), hurd-i386))
+ CONFARGS += --with-arch=i686
+endif
+
+ifneq (,$(filter $(DEB_TARGET_ARCH), hurd-amd64))
+ CONFARGS += --disable-multilib
+endif
+
+ifneq (,$(filter $(DEB_TARGET_ARCH), amd64 i386 hurd-amd64 hurd-i386 kfreebsd-i386 kfreebsd-amd64))
+ CONFARGS += --with-tune=generic
+endif
+
+ifneq (,$(findstring mips-linux,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-arch-32=mips32r2 --with-fp-32=xx
+ CONFARGS += --with-lxc1-sxc1=no
+ ifeq ($(multilib),yes)
+ ifeq ($(biarchn32)-$(biarch64),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-64=mips64r2
+ endif
+ endif
+endif
+
+ifneq (,$(findstring mipsel-linux,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-arch-32=mips32r2 --with-fp-32=xx
+ CONFARGS += --with-madd4=no
+ CONFARGS += --with-lxc1-sxc1=no
+ ifeq ($(multilib),yes)
+ ifeq ($(biarchn32)-$(biarch64),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-64=mips64r2
+ endif
+ endif
+endif
+
+#FIXME: howto for mipsn32?
+ifneq (,$(findstring mips64el-linux-gnuabin32,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-madd4=no
+ ifeq ($(multilib),yes)
+ ifeq ($(biarch64)-$(biarch32),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-64=mips64r2
+ CONFARGS += --with-arch-32=mips32r2 --with-fp-32=xx
+ endif
+ endif
+endif
+
+ifneq (,$(findstring mips64-linux-gnuabin32,$(DEB_TARGET_GNU_TYPE)))
+ ifeq ($(multilib),yes)
+ ifeq ($(biarch64)-$(biarch32),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-64=mips64r2
+ CONFARGS += --with-arch-32=mips32r2 --with-fp-32=xx
+ endif
+ endif
+endif
+
+ifneq (,$(findstring mips64el-linux-gnuabi64,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-mips-plt
+ CONFARGS += --with-arch-64=mips64r2
+ CONFARGS += --with-madd4=no
+ ifeq ($(multilib),yes)
+ ifeq ($(biarchn32)-$(biarch32),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-32=mips32r2 --with-fp-32=xx
+ endif
+ endif
+endif
+
+ifneq (,$(findstring mips64-linux-gnuabi64,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-mips-plt
+ CONFARGS += --with-arch-64=mips64r2
+ ifeq ($(multilib),yes)
+ ifeq ($(biarchn32)-$(biarch32),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-32=mips32r2 --with-fp-32=xx
+ endif
+ endif
+endif
+
+ifneq (,$(findstring mipsisa32r6-linux,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+ ifeq ($(multilib),yes)
+ ifeq ($(biarchn32)-$(biarch64),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+ endif
+ endif
+endif
+
+ifneq (,$(findstring mipsisa32r6el-linux,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+ ifeq ($(multilib),yes)
+ ifeq ($(biarchn32)-$(biarch64),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+ endif
+ endif
+endif
+
+#FIXME: howto for mipsn32?
+ifneq (,$(findstring mipsisa64r6el-linux-gnuabin32,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-mips-plt
+ ifeq ($(multilib),yes)
+ ifeq ($(biarch64)-$(biarch32),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+ CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+ endif
+ endif
+endif
+
+ifneq (,$(findstring mipsisa64r6-linux-gnuabin32,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-mips-plt
+ ifeq ($(multilib),yes)
+ ifeq ($(biarch64)-$(biarch32),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+ CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+ endif
+ endif
+endif
+
+ifneq (,$(findstring mipsisa64r6el-linux-gnuabi64,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-mips-plt
+ CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+ ifeq ($(multilib),yes)
+ ifeq ($(biarchn32)-$(biarch32),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+ endif
+ endif
+endif
+
+ifneq (,$(findstring mipsisa64r6-linux-gnuabi64,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --with-mips-plt
+ CONFARGS += --with-arch-64=mips64r6 --with-tune-64=mips64r6
+ ifeq ($(multilib),yes)
+ ifeq ($(biarchn32)-$(biarch32),yes-yes)
+ CONFARGS += --enable-targets=all
+ CONFARGS += --with-arch-32=mips32r6 --with-tune-32=mips32r6
+ endif
+ endif
+endif
+
+ifneq (,$(findstring mips,$(DEB_TARGET_GNU_TYPE)))
+ ifeq (,$(filter yes,$(biarch32) $(biarchn32) $(biarch64)))
+ CONFARGS += --disable-multilib
+ endif
+endif
+
+ifneq (,$(findstring s390-linux,$(DEB_TARGET_GNU_TYPE)))
+ ifeq ($(multilib),yes)
+ ifeq ($(biarch64),yes)
+ CONFARGS += --enable-targets=all
+ endif
+ endif
+endif
+
+ifneq (,$(findstring hppa-linux,$(DEB_TARGET_GNU_TYPE)))
+ CONFARGS += --disable-libstdcxx-pch
+endif
+
+ifneq (,$(offload_targets))
+ ifneq (,$(filter nvptx-none, $(offload_targets)))
+ offload_opt = nvptx-none=$(CURDIR)/$(d)-nvptx/$(PF)
+ endif
+ ifneq (,$(filter $(gcn_target_name), $(offload_targets)))
+ offload_opt += $(gcn_target_name)=$(CURDIR)/$(d)-gcn/$(PF)
+ endif
+ CONFARGS += \
+ --enable-offload-targets=$(subst $(SPACE),$(COMMA),$(strip $(offload_opt))) \
+ --enable-offload-defaulted
+ ifeq ($(with_offload_nvptx),yes)
+ CONFARGS += --without-cuda-driver
+ endif
+endif
+
+ifneq (,$(findstring gdc, $(PKGSOURCE)))
+ CONFARGS += --disable-libquadmath
+endif
+
+ifeq ($(trunk_build),yes)
+ ifeq ($(findstring --disable-werror, $(CONFARGS)),)
+ CONFARGS += --disable-werror
+ endif
+ enable_checking = yes
+ ifneq (,$(filter $(DEB_TARGET_ARCH), amd64 arm64 mips64el ppc64 ppc64el s390x))
+ enable_checking = yes,extra,rtl
+ endif
+else
+ enable_checking = yes
+ ifneq (,$(filter $(DEB_TARGET_ARCH), amd64 arm64 mips64el ppc64 ppc64el s390x))
+ enable_checking = yes,extra,rtl
+ endif
+ enable_checking = release
+endif
+CONFARGS += --enable-checking=$(enable_checking)
+
+ifneq (,$(findstring gcc-toolchain, $(PKGSOURCE)))
+ CONFARGS += $(BINUTILS_GCCCONF)
+endif
+
+CONFARGS += \
+ --build=$(DEB_BUILD_GNU_TYPE) \
+ --host=$(DEB_HOST_GNU_TYPE) \
+ --target=$(TARGET_ALIAS)
+
+ifeq ($(DEB_CROSS),yes)
+ CONFARGS += \
+ --program-prefix=$(TARGET_ALIAS)- \
+ --includedir=/$(PFL)/include
+endif
+
+ifeq ($(with_bootstrap),off)
+ bootstrap_target =
+else ifeq ($(with_bootstrap),profiled)
+ bootstrap_target = profiledbootstrap
+ bootstrap_target = profiledbootstrap-lean
+else ifeq ($(with_bootstrap),)
+ ifneq (, $(filter $(PKGSOURCE),gcc-$(BASE_VERSION) gnat-$(BASE_VERSION) gcc-snapshot))
+ bootstrap_target = bootstrap
+ endif
+ ifneq (,$(DEB_STAGE))
+ bootstrap_target = bootstrap
+ endif
+endif
+
+ifeq ($(with_lto_build),yes)
+ CONFARGS += \
+ --with-build-config=bootstrap-lto-lean \
+ --enable-link-serialization=$(CPUS_LTOLINK)
+endif
+
+# this is the default, set in /usr/share/dejagnu/remote.exp
+# by a local dejagnu patch.
+DEJAGNU_TIMEOUT=300
+# Increase the timeout for one testrun on slow architectures
+ifeq ($(derivative),Debian)
+ ifneq (,$(findstring $(DEB_TARGET_ARCH),armel armhf arm64))
+ DEJAGNU_TIMEOUT=300
+ else ifneq (,$(findstring $(DEB_TARGET_ARCH),hppa m68k riscv64 sparc))
+ DEJAGNU_TIMEOUT=600
+ else ifneq (,$(findstring $(DEB_TARGET_GNU_CPU),x86_64 i386 i486 i586 i686))
+ DEJAGNU_TIMEOUT=180
+ endif
+ ifeq ($(DEB_TARGET_GNU_SYSTEM),gnu)
+ DEJAGNU_TIMEOUT=900
+ endif
+else ifeq ($(derivative),Ubuntu)
+ ifneq (,$(findstring $(DEB_TARGET_ARCH), armel armhf arm64))
+ DEJAGNU_TIMEOUT=300
+ else ifneq (,$(findstring $(DEB_TARGET_ARCH), riscv64))
+ DEJAGNU_TIMEOUT=600
+ else ifneq (,$(findstring $(DEB_TARGET_GNU_CPU),x86_64 i386 i486 i586 i686 power))
+ DEJAGNU_TIMEOUT=180
+ endif
+endif
+
+DEJAGNU_RUNS =
+ifneq ($(trunk_build),yes)
+ifeq ($(with_ssp),yes)
+ # the buildds are just slow ... don't check the non-default
+ ifneq (,$(findstring $(DEB_TARGET_GNU_CPU),hppa m68k mips sh4))
+ DEJAGNU_RUNS =
+ else ifneq (,$(filter $(DEB_TARGET_ARCH),armel))
+ DEJAGNU_RUNS =
+ else
+ ifneq ($(single_package),yes)
+ DEJAGNU_RUNS += $(if $(filter yes,$(with_ssp_default)),-fno-stack-protector,-fstack-protector)
+ endif
+ endif
+endif
+endif
+
+ifeq ($(derivative),Ubuntu)
+ ifneq (,$(findstring arm, $(DEB_TARGET_GNU_CPU)))
+ ifeq ($(with_arm_thumb),yes)
+ #DEJAGNU_RUNS += -marm
+ else
+ DEJAGNU_RUNS += -mthumb
+ endif
+ endif
+endif
+
+# no b-d on g++-multilib, this is run by the built compiler
+abi_run_check = $(strip $(if $(wildcard build/runcheck$(1).out), \
+ $(shell cat build/runcheck$(1).out), \
+ $(shell CC="$(builddir)/gcc/xg++ -B$(builddir)/gcc/ -static-libgcc $(1)" bash debian/runcheck.sh)))
+ifeq ($(biarch32),yes)
+ DEJAGNU_RUNS += $(call abi_run_check,$(if $(filter $(DEB_TARGET_ARCH_CPU),mips64 mips64el mipsn32 mipsn32el),-mabi=32,-m32))
+endif
+ifeq ($(biarch64),yes)
+ DEJAGNU_RUNS += $(call abi_run_check,$(if $(filter $(DEB_TARGET_ARCH_CPU),mips mipsel),-mabi=64,-m64))
+endif
+ifeq ($(biarchn32),yes)
+ DEJAGNU_RUNS += $(call abi_run_check,-mabi=n32)
+endif
+ifeq ($(biarchx32),yes)
+ DEJAGNU_RUNS += $(call abi_run_check,-mx32)
+endif
+
+# gdc is not multilib'd
+ifneq (,$(findstring gdc, $(PKGSOURCE)))
+ DEJAGNU_RUNS =
+endif
+
+# neither is gnat
+ifneq (,$(findstring gnat, $(PKGSOURCE)))
+ DEJAGNU_RUNS =
+endif
+
+ifneq (,$(strip $(value DEJAGNU_RUNS)))
+ RUNTESTFLAGS = RUNTESTFLAGS="--target_board=unix\{,$(subst $(SPACE),$(COMMA),$(strip $(DEJAGNU_RUNS)))\}"
+endif
+
+# PF is the installation prefix for the package without the leading slash.
+# It's "usr" for gcc releases.
+ifneq (,$(PF))
+ # use value set in the environment
+else ifneq (,$(findstring gcc-snapshot, $(PKGSOURCE)))
+ PF = usr/lib/gcc-snapshot
+else ifneq (,$(findstring gcc-toolchain, $(PKGSOURCE)))
+ PF = usr/lib/gcc-toolchain-$(BASE_VERSION)
+else
+ PF = usr
+endif
+
+# PFL is the installation prefix with DEB_TARGET_GNU_TYPE attached for cross builds
+PFL = $(PF)
+# RPF is the base prefix or installation prefix with DEB_TARGET_GNU_TYPE attached for cross builds
+# DEP17: move to /usr in trixie and noble
+ifneq (,$(filter $(distrelease),jessie stretch buster bullseye bookworm precise trusty xenial bionic focal groovy hirsute impish jammy kinetic lunar mantic))
+ RPF =
+else
+ RPF = $(PF)
+endif
+
+ifeq ($(DEB_CROSS),yes)
+ifneq ($(DEB_STAGE),rtlibs)
+ PFL = $(PF)/$(DEB_TARGET_GNU_TYPE)
+ RPF = $(PF)/$(DEB_TARGET_GNU_TYPE)
+endif
+endif
+
+ifeq ($(with_multiarch_lib),yes)
+ ifeq ($(DEB_CROSS),yes)
+ libdir = lib
+ else
+ libdir = lib/$(DEB_TARGET_MULTIARCH)
+ endif
+else
+ libdir = lib
+endif
+configured_libdir = lib
+
+hppa64libexecdir= $(PF)/libexec
+
+# /usr/libexec doesn't follow the FHS
+ifeq ($(single_package),yes)
+ libdir = lib
+ libexecdir = $(PF)/libexec
+ versiondir = $(BASE_VERSION)
+else
+ libexecdir = $(PF)/$(configured_libdir)
+ libexecdir = $(PF)/libexec
+ versiondir = $(BASE_VERSION)
+endif
+buildlibdir = $(builddir)/$(TARGET_ALIAS)
+
+# install cross compilers in /usr/lib/gcc-cross, native ones in /usr/lib/gcc
+gcc_subdir_name = gcc
+ifneq ($(single_package),yes)
+ ifeq ($(DEB_CROSS),yes)
+ gcc_subdir_name = gcc-cross
+ endif
+endif
+
+gcc_lib_dir = $(PF)/$(configured_libdir)/$(gcc_subdir_name)/$(TARGET_ALIAS)/$(versiondir)
+gcc_lexec_dir = $(libexecdir)/$(gcc_subdir_name)/$(TARGET_ALIAS)/$(versiondir)
+
+lib32loc = lib32
+ifneq (,$(findstring mips,$(DEB_TARGET_GNU_TYPE)))
+lib32loc = libo32
+endif
+lib32 = $(PF)/$(lib32loc)
+lib64 = lib64
+libn32 = lib32
+libx32 = libx32
+
+p_l= $(1)$(cross_lib_arch)
+p_d= $(1)-dbg$(cross_lib_arch)
+d_l= debian/$(p_l)
+d_d= debian/$(p_d)
+
+ifeq ($(DEB_CROSS),yes)
+ usr_lib = $(PFL)/lib
+else
+ usr_lib = $(PFL)/$(libdir)
+endif
+usr_lib32 = $(PFL)/$(lib32loc)
+usr_libn32 = $(PFL)/lib32
+usr_libx32 = $(PFL)/libx32
+usr_lib64 = $(PFL)/lib64
+# FIXME: Move to the new location for native builds too
+ifeq ($(DEB_CROSS),yes)
+ usr_libhf = $(PFL)/libhf
+ usr_libsf = $(PFL)/libsf
+else
+ usr_libhf = $(PFL)/lib/arm-linux-gnueabihf
+ usr_libsf = $(PFL)/lib/arm-linux-gnueabi
+endif
+
+ifeq ($(DEB_STAGE)-$(DEB_CROSS),rtlibs-yes)
+ libdir = lib/$(DEB_TARGET_MULTIARCH)
+ usr_lib = $(PF)/lib/$(DEB_TARGET_MULTIARCH)
+endif
+
+gcc_lib_dir32 = $(gcc_lib_dir)/$(biarch32subdir)
+gcc_lib_dirn32 = $(gcc_lib_dir)/$(biarchn32subdir)
+gcc_lib_dirx32 = $(gcc_lib_dir)/$(biarchx32subdir)
+gcc_lib_dir64 = $(gcc_lib_dir)/$(biarch64subdir)
+gcc_lib_dirhf = $(gcc_lib_dir)/$(biarchhfsubdir)
+gcc_lib_dirsf = $(gcc_lib_dir)/$(biarchsfsubdir)
+
+libgcc_dir = $(RPF)/$(libdir)
+# yes, really; lib32gcc_s ends up in usr
+libgcc_dir32 = $(PFL)/$(lib32loc)
+libgcc_dirn32 = $(RPF)/lib32
+# libx32gcc_s also ends up in usr
+libgcc_dirx32 = $(PFL)/libx32
+libgcc_dir64 = $(RPF)/lib64
+# FIXME: Move to the new location for native builds too
+ifeq ($(DEB_CROSS),yes)
+ libgcc_dirhf = $(RPF)/libhf
+ libgcc_dirsf = $(RPF)/libsf
+else
+ libgcc_dirhf = $(RPF)/lib/arm-linux-gnueabihf
+ libgcc_dirsf = $(RPF)/lib/arm-linux-gnueabi
+endif
+
+# install_gcc_lib(lib,soname,flavour,package)
+define install_gcc_lib
+ mv $(d)/$(usr_lib$(3))/$(1)*.a debian/$(4)/$(gcc_lib_dir$(3))/
+ rm -f $(d)/$(usr_lib$(3))/$(1)*.{la,so}
+ dh_link -p$(4) \
+ /$(usr_lib$(3))/$(1).so.$(2) /$(gcc_lib_dir$(3))/$(1).so
+endef
+
+# do_strip_lib_dbg(pkg,pkg_dbg,version,excludes)
+define do_strip_lib_dbg
+ dh_strip -p$(strip $(1)) $(4) \
+ $(if $(with_dbg),--dbg-package=$(strip $(2)),--dbgsym-migration='$(strip $(2)) (<< $(strip $(3)))')
+endef
+
+checkdirs = $(builddir)
+ifeq ($(with_separate_go),yes)
+ ifeq ($(PKGSOURCE),gccgo-$(BASE_VERSION))
+ checkdirs = $(buildlibdir)/libgo
+ endif
+endif
+ifeq ($(with_separate_gnat),yes)
+ ifeq ($(PKGSOURCE),gnat-$(BASE_VERSION))
+ checkdirs = $(builddir)/gcc
+ endif
+endif
+
+# FIXME: MULTIARCH_DIRNAME needed for g++-multiarch-incdir.diff
+MULTIARCH_DIRNAME := $(DEB_TARGET_MULTIARCH)
+export MULTIARCH_DIRNAME
+
+default: build
+
+configure: $(configure_dependencies)
+
+$(configure_dummy_stamp):
+ touch $(configure_dummy_stamp)
+
+$(configure_stamp):
+ dh_testdir
+ : # give information about the build process
+ @echo "------------------------ Build process variables ------------------------"
+ @echo "Memory on this machine:"
+ @egrep '^(Mem|Swap)' /proc/meminfo || true
+ @echo "Number of parallel processes used for the build: $(USE_CPUS)"
+ @echo "DEB_BUILD_OPTIONS: $$DEB_BUILD_OPTIONS"
+ @echo "Package source: $(PKGSOURCE)"
+ @echo "GCC version: $(GCC_VERSION)"
+ @echo "Base Debian version: $(BASE_VERSION)"
+ @echo -e "Configured with: $(subst ___, ,$(foreach i,$(CONFARGS),$(i)\n\t))"
+ifeq ($(DEB_CROSS),yes)
+ @echo "Building cross compiler for $(DEB_TARGET_ARCH)"
+endif
+ @echo "Using shell $(SHELL)"
+ @echo "Architecture: $(DEB_TARGET_ARCH) (GNU: $(TARGET_ALIAS))"
+ @echo "CPPFLAGS: $(CPPFLAGS)"
+ @echo "CFLAGS: $(CFLAGS)"
+ @echo "LDFLAGS: $(LDFLAGS)"
+ @echo "BOOT_CFLAGS: $(BOOT_CFLAGS)"
+ @echo "DEBIAN_BUILDARCH: $(DEBIAN_BUILDARCH)"
+ @echo "Install prefix: /$(PF)"
+ifeq ($(biarchn32)-$(biarch64),yes-yes)
+ @echo "Will build the triarch compilers (o32/n32/64, defaulting to o32)"
+else ifeq ($(biarchn32)-$(biarch32),yes-yes)
+ @echo "Will build the triarch compilers (o32/n32/64, defaulting to 64)"
+else ifeq ($(biarch64)-$(biarch32),yes-yes)
+ @echo "Will build the triarch compilers (x32/64/32, defaulting to x32)"
+else ifeq ($(biarch64)-$(biarchx32),yes-yes)
+ @echo "Will build the triarch compilers (32/64/x32, defaulting to 32bit)"
+else ifeq ($(biarch32)-$(biarchx32),yes-yes)
+ @echo "Will build the triarch compilers (64/32/x32, defaulting to 64bit)"
+else
+ ifeq ($(biarch64),yes)
+ @echo "Will build the biarch compilers (32/64, defaulting to 32bit)"
+ else
+ ifeq ($(biarch32),yes)
+ @echo "Will build the biarch compilers (64/32, defaulting to 64bit)"
+ else
+ @echo "Will not build the biarch compilers"
+ endif
+ endif
+endif
+
+ifeq ($(with_cxx),yes)
+ @echo "Will build the C++ compiler"
+else
+ @echo "Will not build the C++ compiler: $(with_cxx)"
+endif
+ifeq ($(with_objc),yes)
+ @echo "Will build the ObjC compiler."
+ ifeq ($(with_objc_gc),yes)
+ @echo "Will build the extra ObjC runtime for garbage collection."
+ else
+ @echo "Will not build the extra ObjC runtime for garbage collection."
+ endif
+else
+ @echo "Will not build the ObjC compiler: $(with_objc)"
+endif
+ifeq ($(with_objcxx),yes)
+ @echo "Will build the Obj-C++ compiler"
+else
+ @echo "Will not build the Obj-C++ compiler: $(with_objcxx)"
+endif
+ifeq ($(with_fortran),yes)
+ @echo "Will build the Fortran 95 compiler."
+else
+ @echo "Will not build the Fortran 95 compiler: $(with_fortran)"
+endif
+ifeq ($(with_ada),yes)
+ @echo "Will build the Ada compiler."
+ ifeq ($(with_libgnat),yes)
+ @echo "Will build the shared Ada libraries."
+ else
+ @echo "Will not build the shared Ada libraries."
+ endif
+else
+ @echo "Will not build the Ada compiler: $(with_ada)"
+endif
+ifeq ($(with_go),yes)
+ @echo "Will build the Go compiler."
+else
+ @echo "Will not build the Go compiler: $(with_go)"
+endif
+ifeq ($(with_d),yes)
+ @echo "Will build the D compiler"
+ ifeq ($(with_phobos),yes)
+ @echo "Will build the phobos D runtime library."
+ else
+ @echo "Will not build the phobos D runtime library: $(with_phobos)"
+ endif
+else
+ @echo "Will not build the D compiler: $(with_d)"
+endif
+ifeq ($(with_m2),yes)
+ @echo "Will build the Modula-2 compiler."
+else
+ @echo "Will not build the Modula-2 compiler: $(with_m2)"
+endif
+ifneq (,$(offload_targets))
+ @echo "Will build with offload compilers: $(offload_targets)."
+else
+ @echo "Will build without offload compilers: $(with_offload_nvptx) / $(with_offload_gcn)"
+endif
+ifeq ($(with_ssp),yes)
+ @echo "Will build with SSP support."
+else
+ @echo "Will build without SSP support: $(with_ssp)"
+endif
+ifeq ($(with_check),yes)
+ @echo "Will run the testsuite."
+else
+ @echo "Will not run the testsuite: $(with_check)"
+endif
+ifeq ($(with_nls),yes)
+ @echo "Will enable national language support."
+else
+ @echo "Will disable national language support: $(with_nls)"
+endif
+ @echo "-----------------------------------------------------------------------------"
+ @echo ""
+ifeq ($(with_check),yes)
+ @if echo "spawn true" | /usr/bin/expect -f - >/dev/null; then \
+ : ; \
+ else \
+ echo "expect is failing on your system with the above error, which means the GCC"; \
+ echo "testsuite will fail. Please resolve the above issues and retry the build."; \
+ echo "-----------------------------------------------------------------------------"; \
+ exit 1; \
+ fi
+endif
+ rm -f $(configure_stamp) $(build_stamp)
+ cat debian/README.Debian $(patch_stamp) > debian/README.Debian.$(DEB_TARGET_ARCH)
+
+ rm -rf $(builddir)
+ mkdir $(builddir)
+
+ifneq (,$(filter musl-%,$(DEB_TARGET_ARCH)))
+ # We have to unconditionally link -lssp_nonshared on musl (see
+ # musl-ssp.diff). While gcc provides it, it comes a little late in the
+ # build for bootstrapping so we provide an empty one.
+ mkdir $(builddir)/gcc
+ ar rcs $(builddir)/gcc/libssp_nonshared.a
+endif
+
+ : # some tools like gettext are built with a newer libstdc++
+ mkdir -p bin
+ for i in msgfmt; do \
+ install -m755 debian/bin-wrapper.in bin/$$i; \
+ done
+
+ : # configure
+ cd $(builddir) \
+ && $(SET_PATH) \
+ $(call pass_vars, CC CXX GDC $(flags_to_pass) \
+ CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD \
+ CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LDFLAGS_FOR_TARGET) \
+ $(SET_SHELL) $(SET_TARGET_TOOLS) \
+ $(call SET_BINUTILS_MULTIARCH_ENV,$(DEB_TARGET_ARCH)) $(BINUTILS_GCCENV) \
+ ../src/configure $(subst ___, ,$(CONFARGS))
+
+ : # multilib builds without b-d on gcc-multilib (used in FLAGS_FOR_TARGET)
+ if [ -d /usr/include/$(DEB_TARGET_MULTIARCH)/asm ]; then \
+ mkdir -p $(builddir)/sys-include; \
+ ln -sf /usr/include/$(DEB_TARGET_MULTIARCH)/asm $(builddir)/sys-include/asm; \
+ fi
+
+ touch $(configure_stamp)
+
+build: $(sort $(build_arch_dependencies) $(build_indep_dependencies))
+build-arch: $(build_arch_dependencies)
+build-indep: $(build_indep_dependencies)
+
+$(build_dummy_stamp):
+ touch $(build_dummy_stamp)
+
+$(build_locale_stamp):
+ifeq ($(locale_data)-$(with_cxx),generate-yes)
+ : # build locales needed by libstdc++ testsuite
+ rm -rf locales
+ mkdir locales
+ -USE_CPUS=$(USE_CPUS) sh debian/locale-gen
+endif
+ touch $(build_locale_stamp)
+
+MAX_BUILD_TRIES = 1
+ifeq ($(distribution)-$(DEB_HOST_ARCH),Ubuntu-armhf)
+ MAX_BUILD_TRIES = 3
+endif
+
+$(build_stamp): $(configure_stamp) $(build_locale_stamp)
+ @echo === START $@ ===
+ dh_testdir
+ rm -f bootstrap-protocol*
+ @echo TTTTT $$(date -R)
+ifeq ($(build_type),build-native)
+ : # build native compiler
+ set +e; \
+ set -o pipefail; \
+ try=0; \
+ while [ $$try -lt $(MAX_BUILD_TRIES) ]; do \
+ try=$$(expr $$try + 1); \
+ echo "=========== BUILD ($$try) =========="; \
+ $(SET_PATH) \
+ $(SET_SHELL) \
+ $(SET_LOCPATH) \
+ $(call SET_BINUTILS_MULTIARCH_ENV,$(DEB_TARGET_ARCH)) $(BINUTILS_GCCENV) \
+ $(time_command) $(MAKE) $(NJOBS) -C $(builddir) $(bootstrap_target) \
+ $(call pass_vars, CC $(flags_to_pass) \
+ STAGE1_CFLAGS STAGE1_LDFLAGS \
+ BOOT_CFLAGS BOOT_LDFLAGS \
+ CFLAGS_FOR_BUILD CXXFLAGS_FOR_BUILD LDFLAGS_FOR_BUILD \
+ CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LDFLAGS_FOR_TARGET) \
+ 2>&1 | tee bootstrap-protocol$$try \
+ ; \
+ status=$$?; \
+ echo $$status > status; \
+ echo === TIME $@ ===; \
+ if [ $$status -eq 0 ] || [ $$try -eq $(MAX_BUILD_TRIES) ]; then \
+ exit $$status; \
+ fi; \
+ done
+else ifneq (,$(filter $(build_type),build-cross cross-build-native cross-build-cross))
+ : # build cross compiler for $(TARGET_ALIAS)
+ ( \
+ set +e; \
+ $(SET_PATH) \
+ $(SET_LOCPATH) \
+ $(time_command) $(MAKE) $(NJOBS) -C $(builddir) \
+ $(call pass_vars, BOOT_CFLAGS BOOT_LDFLAGS \
+ CFLAGS_FOR_TARGET LDFLAGS_FOR_TARGET) \
+ ; \
+ echo $$? > status; \
+ echo === TIME $@ ===; \
+ ) 2>&1 | tee bootstrap-protocol
+endif
+ @echo TTTTT $$(date -R)
+ s=`cat status`; rm -f status; \
+ if [ $$s -ne 0 ] && [ -z "$$NO_CONFIG_LOG_DUMP$$NO_CONFIG_LOG_DUMPS" ]; then \
+ for log in $$(find $(builddir) -name config.log); do \
+ case "$$log" in */build/build-*|*/stage1-*|*/prev-*) continue; esac; \
+ echo LOGFILE START $$log; \
+ cat $$log; \
+ echo LOGFILE END $$log; \
+ done; \
+ fi; \
+ test $$s -eq 0
+
+ for h in $$(find $(builddir) -name omp.h); do \
+ echo "=================== OMP_H HEADER $$h ====================== "; \
+ cat $$h; \
+ done
+
+ if [ -f $(srcdir)/contrib/warn_summary ]; then \
+ rm -f bootstrap-summary; \
+ /bin/sh $(srcdir)/contrib/warn_summary $$(ls bootstrap-protocol* | head -1) \
+ > bootstrap-summary; \
+ fi
+
+ touch $(build_stamp)
+ @echo === END $@ ===
+
+ifneq ($(build_type),build-native)
+ BUILT_CC = $(CC)
+ BUILT_CXX = $(CXX)
+else
+ BUILT_CC = $(builddir)/gcc/xgcc -B$(builddir)/gcc/
+ BUILT_CXX = $(builddir)/gcc/xg++ -B$(builddir)/gcc/ \
+ -B$(builddir)/$(TARGET_ALIAS)/libatomic/.libs \
+ -B$(builddir)/$(TARGET_ALIAS)/libstdc++-v3/src/.libs \
+ -B$(builddir)/$(TARGET_ALIAS)/libstdc++-v3/libsupc++/.libs \
+ -I$(builddir)/$(TARGET_ALIAS)/libstdc++-v3/include \
+ -I$(builddir)/$(TARGET_ALIAS)/libstdc++-v3/include/$(TARGET_ALIAS) \
+ -I$(srcdir)/libstdc++-v3/libsupc++ \
+ -L$(builddir)/$(TARGET_ALIAS)/libatomic/.libs \
+ -L$(builddir)/$(TARGET_ALIAS)/libstdc++-v3/src/.libs \
+ -L$(builddir)/$(TARGET_ALIAS)/libstdc++-v3/libsupc++/.libs
+endif
+
+CONFARGS_JIT := \
+ $(filter-out --enable-languages=% \
+ --enable-libstdcxx-debug %bootstrap,\
+ $(CONFARGS)) \
+ --enable-languages=c++,jit \
+ --enable-host-shared \
+ --disable-bootstrap
+
+# are other libs also safe to disable?
+CONFARGS_JIT += \
+ --disable-libada \
+ --disable-libgfortran \
+ --disable-libgm2 \
+ --disable-libgo \
+ --disable-libphobos \
+ --disable-libquadmath \
+
+$(configure_jit_stamp): $(build_stamp)
+ @echo === START $@ ===
+ dh_testdir
+ rm -f $(configure_jit_stamp) $(build_jit_stamp)
+ rm -rf $(builddir_jit)
+ mkdir $(builddir_jit)
+
+ : # configure jit
+ cd $(builddir_jit) && \
+ $(SET_PATH) \
+ $(SET_SHELL) \
+ CC="$(BUILT_CC)" \
+ CXX="$(BUILT_CXX)" \
+ $(call SET_BINUTILS_MULTIARCH_ENV,$(DEB_TARGET_ARCH)) $(BINUTILS_GCCENV) \
+ ../src/configure $(subst ___, ,$(CONFARGS_JIT))
+ touch $(configure_jit_stamp)
+
+$(build_jit_stamp): $(configure_jit_stamp)
+ @echo === START $@ ===
+ dh_testdir
+ ( \
+ set +e; \
+ $(SET_PATH) \
+ $(SET_SHELL) \
+ $(SET_LOCPATH) \
+ $(call SET_BINUTILS_MULTIARCH_ENV,$(DEB_TARGET_ARCH)) $(BINUTILS_GCCENV) \
+ LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}$(builddir)/gcc \
+ biarch_multidir_names=none \
+ $(time_command) $(MAKE) $(NJOBS) -C $(builddir_jit) \
+ $(call pass_vars, BOOT_CFLAGS BOOT_LDFLAGS \
+ CFLAGS_FOR_TARGET LDFLAGS_FOR_TARGET) \
+ ; \
+ echo $$? > status; \
+ echo === TIME $@ ===; \
+ ) 2>&1 | tee jit-protocol
+
+ s=`cat status`; rm -f status; \
+ if [ $$s -ne 0 ] && [ -z "$$NO_CONFIG_LOG_DUMP$$NO_CONFIG_LOG_DUMPS" ]; then \
+ for log in $$(find $(builddir_jit) -name config.log); do \
+ case "$$log" in */build/build-*|*/stage1-*|*/prev-*) continue; esac; \
+ echo LOGFILE START $$log; \
+ cat $$log; \
+ echo LOGFILE END $$log; \
+ done; \
+ fi; \
+ test $$s -eq 0
+
+ifeq ($(with_check),yes)
+ # FIXME: #782444
+ ifeq (,$(filter $(DEB_TARGET_ARCH), kfreebsd-i386 kfreebsd-amd64))
+ -DEB_BUILD_OPTIONS='$(DEB_BUILD_OPTIONS) gcc-ice=nodump,norepro' \
+ $(MAKE) -C $(builddir_jit)/gcc check-jit \
+ RUNTESTFLAGS="-v -v"
+ mkdir -p $(builddir)/gcc/testsuite/jit
+ cp -p $(builddir_jit)/gcc/testsuite/jit/jit.{log,sum} \
+ $(builddir)/gcc/testsuite/jit/.
+ endif
+endif
+
+ : # do the install in the build target, to save disk space
+ rm -rf $(d)-jit
+ mkdir -p $(d)-jit/$(PF)
+
+ $(SET_PATH) \
+ biarch_multidir_names=none \
+ $(MAKE) -C $(builddir_jit) \
+ CC="$(CC_FOR_TARGET)" \
+ $(call pass_vars, $(flags_to_pass)) \
+ DESTDIR=$(CURDIR)/$(d)-jit \
+ install
+
+ find $(d)-jit ! -type d
+
+ mkdir -p $(d)-jit/$(usr_lib)
+ mkdir -p $(d)-jit/$(gcc_lib_dir)/include
+ mv $(d)-jit/$(PF)/include/libgccjit*.h \
+ $(d)-jit/$(gcc_lib_dir)/include/.
+ifneq ($(PF)/lib,$(usr_lib))
+ mv $(d)-jit/$(PF)/lib/libgccjit.so* \
+ $(d)-jit/$(usr_lib)/.
+endif
+ cd $(d)-jit && tar cvfJ ../../installed-jit.tar.xz \
+ $(gcc_lib_dir)/include/libgccjit*.h \
+ $(usr_lib)/libgccjit.so* \
+ $(PF)/share/info/libgccjit*
+ rm -rf $(d)-jit
+
+ifeq ($(save_disk_space),yes)
+ rm -rf $(builddir_jit)
+endif
+
+ touch $(build_jit_stamp)
+ @echo === END $@ ===
+
+CONFARGS_NVPTX := \
+ --prefix=/$(PF) \
+ --libexecdir=/$(libexecdir) \
+ --with-gcc-major-version-only \
+ --disable-bootstrap \
+ --disable-sjlj-exceptions \
+ --enable-newlib-io-long-long \
+ --target=nvptx-none \
+ --enable-as-accelerator-for=$(DEB_TARGET_GNU_TYPE) \
+ --enable-languages=c,c++,fortran,lto \
+ --enable-checking=release \
+ --with-system-zlib \
+ --without-isl
+
+# --with-build-time-tools=/$(PF)/nvptx-none/bin
+
+CONFARGS_NVPTX += --program-prefix=nvptx-none-
+ifeq ($(versioned_packages),yes)
+ CONFARGS_NVPTX += --program-suffix=-$(BASE_VERSION)
+endif
+
+# FIXME: must not be run in parallel with jit and hppa64 builds ...
+$(configure_nvptx_stamp): $(build_stamp) \
+ $(if $(filter yes, $(with_jit)), $(build_jit_stamp)) \
+ $(if $(filter yes, $(with_hppa64)), $(build_hppa64_stamp))
+ @echo === START $@ ===
+ dh_testdir
+ rm -f $(configure_nvptx_stamp) $(build_nvptx_stamp)
+ rm -rf src-nvptx $(builddir_nvptx)
+ cp -al src src-nvptx
+ rm -rf src-nvptx/newlib
+ cp -a $(newlib_srcdir)/newlib src-nvptx/newlib
+ mkdir $(builddir_nvptx)
+
+ : # configure nvptx offload
+ cd $(builddir_nvptx) && \
+ $(SET_PATH) \
+ $(SET_SHELL) \
+ CC="$(BUILT_CC)" \
+ CXX="$(BUILT_CXX)" \
+ ../src-nvptx/configure $(subst ___, ,$(CONFARGS_NVPTX))
+ touch $(configure_nvptx_stamp)
+
+$(build_nvptx_stamp): $(configure_nvptx_stamp) \
+ $(if $(filter yes, $(with_jit)), $(build_jit_stamp)) \
+ $(if $(filter yes, $(with_hppa64)), $(build_hppa64_stamp))
+ @echo === START $@ ===
+ ln -sf ../$(newlib_srcdir)/newlib $(srcdir)/newlib
+ ( \
+ set +e; \
+ $(SET_PATH) \
+ $(SET_SHELL) \
+ $(SET_LOCPATH) \
+ LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}$(builddir)/gcc \
+ biarch_multidir_names=none \
+ $(time_command) $(MAKE) $(NJOBS) -C $(builddir_nvptx) \
+ $(call pass_vars, BOOT_CFLAGS BOOT_LDFLAGS \
+ CFLAGS_FOR_TARGET) \
+ ; \
+ echo $$? > status; \
+ echo === TIME $@ ===; \
+ ) 2>&1 | tee nvptx-protocol
+
+ s=`cat status`; rm -f status; \
+ if [ $$s -ne 0 ] && [ -z "$$NO_CONFIG_LOG_DUMP$$NO_CONFIG_LOG_DUMPS" ]; then \
+ for log in $$(find $(builddir_nvptx) -name config.log); do \
+ case "$$log" in */build/build-*|*/stage1-*|*/prev-*) continue; esac; \
+ echo LOGFILE START $$log; \
+ cat $$log; \
+ echo LOGFILE END $$log; \
+ done; \
+ fi; \
+ test $$s -eq 0
+
+ rm -f $(srcdir)/newlib
+ touch $(build_nvptx_stamp)
+ @echo === END $@ ===
+
+CONFARGS_GCN := \
+ --prefix=/$(PF) \
+ --libexecdir=/$(libexecdir) \
+ --with-gcc-major-version-only \
+ --disable-bootstrap \
+ --disable-sjlj-exceptions \
+ --enable-newlib-io-long-long \
+ --target=$(gcn_target_name) \
+ --enable-as-accelerator-for=$(DEB_TARGET_GNU_TYPE) \
+ --enable-languages=c,fortran,lto \
+ --enable-checking=release \
+ --disable-libstdcxx-pch \
+ --disable-libquadmath-support \
+ --with-system-zlib \
+ --without-isl \
+ --without-gnu-as \
+ --without-gnu-ld \
+ --with-build-time-tools=$(CURDIR)/bin-gcn
+
+# --without-headers \
+
+CONFARGS_GCN += --program-prefix=$(gcn_target_name)-
+ifeq ($(versioned_packages),yes)
+ CONFARGS_GCN += --program-suffix=-$(BASE_VERSION)
+endif
+
+# FIXME: must not be run in parallel with jit and hppa64 builds ...
+$(configure_gcn_stamp): $(build_stamp) \
+ $(if $(filter yes, $(with_jit)), $(build_jit_stamp)) \
+ $(if $(filter yes, $(with_hppa64)), $(build_hppa64_stamp)) \
+ $(if $(filter yes, $(with_offload_nvptx)), $(build_nvptx_stamp))
+ @echo === START $@ ===
+ dh_testdir
+
+ rm -rf bin-gcn
+ifeq ($(gcn_tools_llvm_version),tools)
+ ln -s /usr/$(gcn_target_name)/bin bin-gcn
+else
+ mkdir bin-gcn
+ ln -sf /usr/lib/llvm-$(gcn_tools_llvm_version)/bin/llvm-ar bin-gcn/ar
+ ln -sf /usr/lib/llvm-$(gcn_tools_llvm_version)/bin/llvm-mc bin-gcn/as
+ ln -sf /usr/lib/llvm-$(gcn_tools_llvm_version)/bin/lld bin-gcn/ld
+ ln -sf /usr/lib/llvm-$(gcn_tools_llvm_version)/bin/llvm-nm bin-gcn/nm
+ ln -sf /usr/lib/llvm-$(gcn_tools_llvm_version)/bin/llvm-ranlib bin-gcn/ranlib
+endif
+ ls -l /
+ ls -l /usr
+ -ls -l usr/$(gcn_target_name)
+ -ls -l usr/$(gcn_target_name)/bin
+ ls -l bin-gcn
+ ls -lL bin-gcn
+ bin-gcn/as --version
+ bin-gcn/ld --version
+
+ rm -f $(configure_gcn_stamp) $(build_gcn_stamp)
+ rm -rf src-gcn $(builddir_gcn)
+ cp -al src src-gcn
+ rm -rf src-gcn/newlib
+ cp -a $(newlib_srcdir)/newlib src-gcn/newlib
+ mkdir $(builddir_gcn)
+
+ : # configure gcn offload
+ cd $(builddir_gcn) && \
+ $(SET_PATH) \
+ $(SET_SHELL) \
+ CC="$(BUILT_CC)" \
+ CXX="$(BUILT_CXX)" \
+ ../src-gcn/configure $(subst ___, ,$(CONFARGS_GCN))
+ touch $(configure_gcn_stamp)
+
+$(build_gcn_stamp): $(configure_gcn_stamp) \
+ $(if $(filter yes, $(with_jit)), $(build_jit_stamp)) \
+ $(if $(filter yes, $(with_hppa64)), $(build_hppa64_stamp)) \
+ $(if $(filter yes, $(with_offload_nvptx)), $(build_nvptx_stamp))
+ @echo === START $@ ===
+ ln -sf ../$(newlib_srcdir)/newlib $(srcdir)/newlib
+ ( \
+ set +e; \
+ $(SET_PATH) \
+ $(SET_SHELL) \
+ $(SET_LOCPATH) \
+ LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}$(builddir)/gcc \
+ biarch_multidir_names=none \
+ $(time_command) $(MAKE) $(NJOBS) -C $(builddir_gcn) \
+ $(call pass_vars, BOOT_CFLAGS BOOT_LDFLAGS \
+ CFLAGS_FOR_TARGET) \
+ ; \
+ echo $$? > status; \
+ echo === TIME $@ ===; \
+ ) 2>&1 | tee amdgcn-protocol
+
+ s=`cat status`; rm -f status; \
+ if [ $$s -ne 0 ] && [ -z "$$NO_CONFIG_LOG_DUMP$$NO_CONFIG_LOG_DUMPS" ]; then \
+ for log in $$(find $(builddir_gcn) -name config.log); do \
+ case "$$log" in */build/build-*|*/stage1-*|*/prev-*) continue; esac; \
+ echo LOGFILE START $$log; \
+ cat $$log; \
+ echo LOGFILE END $$log; \
+ done; \
+ fi; \
+ test $$s -eq 0
+
+ rm -f $(srcdir)/newlib
+ touch $(build_gcn_stamp)
+ @echo === END $@ ===
+
+ifeq ($(versioned_packages),yes)
+ hppa64_configure_flags += --program-suffix=-$(BASE_VERSION)
+endif
+
+$(configure_hppa64_stamp): $(build_stamp) \
+ $(if $(filter yes, $(with_jit)), $(build_jit_stamp))
+ @echo === START $@ ===
+ dh_testdir
+ rm -f $(configure_hppa64_stamp) $(build_hppa64_stamp)
+ rm -rf $(builddir_hppa64)
+ mkdir $(builddir_hppa64)
+ : # configure hppa64
+ cd $(builddir_hppa64) && \
+ $(SET_PATH) \
+ $(SET_SHELL) \
+ CC="$(BUILT_CC)" \
+ CXX="$(BUILT_CXX)" \
+ $(call pass_vars, $(flags_to_pass)) \
+ ../src/configure \
+ --enable-languages=c \
+ --prefix=/$(PF) \
+ --libexecdir=/$(hppa64libexecdir) \
+ --with-gcc-major-version-only \
+ --disable-shared \
+ --disable-nls \
+ --disable-threads \
+ --disable-libatomic \
+ --disable-libgomp \
+ --disable-libitm \
+ --disable-libssp \
+ --disable-libquadmath \
+ --enable-plugin \
+ --with-system-zlib \
+ --with-as=/usr/bin/hppa64-linux-gnu-as \
+ --with-ld=/usr/bin/hppa64-linux-gnu-ld \
+ --includedir=/usr/hppa64-linux-gnu/include \
+ --build=$(DEB_BUILD_GNU_TYPE) \
+ --host=$(DEB_HOST_GNU_TYPE) \
+ --target=hppa64-linux-gnu
+ touch $(configure_hppa64_stamp)
+
+$(build_hppa64_stamp): $(configure_hppa64_stamp) \
+ $(if $(filter yes, $(with_jit)), $(build_jit_stamp))
+ @echo === START $@ ===
+ if [ -f $(srcdir)/gcc/distro-defaults.h ]; then \
+ if [ ! -f $(srcdir)/gcc/distro-defaults.h.saved ]; then \
+ mv $(srcdir)/gcc/distro-defaults.h $(srcdir)/gcc/distro-defaults.h.saved; \
+ fi; \
+ echo '/* Empty distro-defaults for hppa64 cross build */' \
+ > $(srcdir)/gcc/distro-defaults.h; \
+ fi
+ $(SET_PATH) \
+ $(SET_SHELL) \
+ $(SET_LOCPATH) \
+ LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}$(builddir)/gcc \
+ $(time_command) $(MAKE) $(NJOBS) -C $(builddir_hppa64) \
+ $(call pass_vars, \
+ CFLAGS_FOR_TARGET CXXFLAGS_FOR_TARGET LDFLAGS_FOR_TARGET)
+ if [ -f $(srcdir)/gcc/distro-defaults.h.saved ]; then \
+ mv -f $(srcdir)/gcc/distro-defaults.h.saved $(srcdir)/gcc/distro-defaults.h; \
+ fi
+
+ : # do the install in the build target, to save disk space
+ rm -rf $(d_hppa64)
+ mkdir -p $(d_hppa64)/$(PF)
+
+ $(SET_PATH) \
+ $(MAKE) -C $(builddir_hppa64) \
+ $(call pass_vars, CC $(flags_to_pass)) \
+ DESTDIR=$(CURDIR)/$(d_hppa64) \
+ install
+
+ : # remove files not needed
+ rm -rf $(d_hppa64)/$(PF)/info $(d_hppa64)/$(PF)/share/info
+ rm -rf $(d_hppa64)/$(PF)/man $(d_hppa64)/$(PF)/share/man
+ rm -rf $(d_hppa64)/$(PF)/lib/gcc/hppa64-linux-gnu/$(BASE_VERSION)/plugin
+ rm -f $(d_hppa64)/$(PF)/lib/libiberty.a
+ rm -f $(d_hppa64)/$(PF)/lib/libcc1.*
+ rm -f $(d_hppa64)/$(PF)/bin/*{gcov,gcov-dump,gcov-tool,gccbug,gcc,lto-dump}
+
+ rm -rf $(d_hppa64)/$(PF)/hppa64-linux-gnu
+ rm -rf $(d_hppa64)/$(PF)/lib/gcc/hppa64-linux-gnu/$(BASE_VERSION)/install-tools
+ rm -rf $(d_hppa64)/$(PF)/lib/gcc/hppa64-linux-gnu/$(BASE_VERSION)/g++-mapper-server
+ rm -rf $(d_hppa64)/$(PF)/lib/gcc/hppa64-linux-gnu/$(BASE_VERSION)/include-fixed
+
+ifeq ($(versioned_packages),yes)
+ for i in cpp gcc-ar gcc-nm gcc-ranlib; do \
+ mv -f $(d_hppa64)/$(PF)/bin/hppa64-linux-gnu-$$i \
+ $(d_hppa64)/$(PF)/bin/hppa64-linux-gnu-$$i$(pkg_ver); \
+ done
+endif
+ mkdir -p $(d_hppa64)/$(PF)/share/man/man1
+ for i in gcc-ar gcc-nm gcc-ranlib; do \
+ ln -sf $$i$(pkg_ver).1.gz \
+ $(d_hppa64)/$(PF)/share/man/man1/hppa64-linux-gnu-$$i$(pkg_ver).1.gz; \
+ done
+ifneq ($(GFDL_INVARIANT_FREE),yes)
+ for i in cpp gcc; do \
+ ln -sf $$i$(pkg_ver).1.gz \
+ $(d_hppa64)/$(PF)/share/man/man1/hppa64-linux-gnu-$$i$(pkg_ver).1.gz; \
+ done
+endif
+
+ : # remove '*.la' and '*.lai' files, not shipped in any package.
+ find $(d_hppa64) -name '*.la' -o -name '*.lai' | xargs -r rm -f
+
+ : # remove rpath settings from binaries and shared libs
+ for i in $$(chrpath -k $(d_hppa64)/$(PF)/bin/* $(d_hppa64)/$(PFL)/lib*/lib*.so.* \
+ $(d_hppa64)/$(gcc_lib_dir)/plugin/* \
+ $(if $(filter $(with_multiarch_lib),yes), \
+ $(d_hppa64)/$(PF)/lib/$(DEB_TARGET_MULTIARCH)/lib*.so.*) \
+ 2>/dev/null | awk -F: '/R(UN)?PATH=/ {print $$1}'); \
+ do \
+ [ -h $$i ] && continue; \
+ chrpath --delete $$i; \
+ echo "removed RPATH/RUNPATH: $$i"; \
+ done
+
+ : # fix permissions of liblto_plugin.so
+ chmod 644 $(d_hppa64)/$(PF)/libexec/gcc/hppa64-linux-gnu/$(BASE_VERSION)/liblto_plugin.so
+
+ cd $(d_hppa64) && tar cvfJ ../../installed-hppa64.tar.xz usr
+ rm -rf $(d_hppa64)
+
+ifeq ($(save_disk_space),yes)
+ rm -rf $(builddir_hppa64)
+endif
+ touch $(build_hppa64_stamp)
+ @echo === END $@ ===
+
+ifeq ($(with_ada),yes)
+ MANUALS = \
+ $(srcdir)/gcc/ada/gnat_ugn.texi \
+ $(srcdir)/gcc/ada/gnat_rm.texi
+endif
+MANUALS += \
+ $(srcdir)/gcc/doc/gccint.texi \
+ $(srcdir)/gcc/doc/gcc.texi \
+ $(srcdir)/gcc/doc/cpp.texi \
+ $(srcdir)/gcc/doc/cppinternals.texi
+ifeq ($(with_fortran),yes)
+ MANUALS += $(srcdir)/gcc/fortran/gfortran.texi
+endif
+ifeq ($(with_ada),yes)
+ MANUALS += $(srcdir)/gcc/ada/gnat-style.texi
+endif
+ifeq ($(with_gomp),yes)
+ MANUALS += $(srcdir)/libgomp/libgomp.texi
+endif
+ifeq ($(with_itm),yes)
+ MANUALS += $(srcdir)/libitm/libitm.texi
+endif
+ifeq ($(with_qmath),yes)
+ MANUALS += $(srcdir)/libquadmath/libquadmath.texi
+endif
+ifeq ($(with_go),yes)
+ MANUALS += $(srcdir)/gcc/go/gccgo.texi
+endif
+ifeq ($(with_d),yes)
+ MANUALS += $(srcdir)/gcc/d/gdc.texi
+endif
+ifeq ($(with_m2),yes)
+ MANUALS += $(srcdir)/gcc/doc/gm2.texi
+endif
+
+html-docs: $(build_html_stamp)
+#$(build_html_stamp): $(stampdir)/05-build-html-split
+$(build_html_stamp): $(stampdir)/05-build-html-nosplit
+
+html-makeinfo-split: $(stampdir)/05-build-html-split
+$(stampdir)/05-build-html-split: $(build_stamp)
+ mkdir -p html
+ rm -f html/*.html
+ cd $(builddir)/gcc; \
+ echo -n $(MANUALS) | xargs -d ' ' -L 1 -P $(USE_CPUS) -I{} \
+ sh -c 'outname=`basename {} .texi`.html; \
+ outname=`basename {} .texi`; \
+ echo "generating $$outname ..."; \
+ makeinfo --html --number-sections \
+ -I $(srcdir)/gcc/doc/include -I `dirname {}` \
+ -I $(srcdir)/gcc/p/doc \
+ -I $(srcdir)/gcc/p/doc/generated \
+ -I $(builddir)/gcc \
+ -I $(builddir)/gcc/m2 \
+ -I $(buildlibdir)/libquadmath \
+ -o $${outname} \
+ {}'
+ touch $@
+
+html-makeinfo-nosplit: $(stampdir)/05-build-html-nosplit
+$(stampdir)/05-build-html-nosplit: $(build_stamp)
+ mkdir -p html
+ rm -f html/*.html
+ cd $(builddir)/gcc; \
+ echo -n $(MANUALS) | xargs -d ' ' -L 1 -P $(USE_CPUS) -I{} \
+ sh -c 'outname=`basename {} .texi`.html; \
+ echo "generating $$outname ..."; \
+ makeinfo --html --number-sections --no-split \
+ -I $(srcdir)/gcc/doc/include -I `dirname {}` \
+ -I $(srcdir)/gcc/p/doc \
+ -I $(srcdir)/gcc/p/doc/generated \
+ -I $(builddir)/gcc \
+ -I $(builddir)/gcc/m2 \
+ -I $(buildlibdir)/libquadmath \
+ -o $(CURDIR)/html/$${outname} \
+ {}'
+ touch $@
+
+# start the script only on architectures known to have slow autobuilders ...
+logwatch_archs := alpha arm m68k mips mipsel mips64el riscv64 sparc
+ifeq ($(DEB_HOST_GNU_CPU), $(findstring $(DEB_HOST_GNU_CPU),$(logwatch_archs)))
+ start_logwatch = yes
+endif
+ifeq ($(DEB_HOST_GNU_SYSTEM),gnu)
+ start_logwatch = yes
+endif
+
+check: $(check_stamp)
+$(check_stamp): $(filter $(build_stamp) $(build_jit_stamp) $(build_hppa64_stamp) $(build_nvptx_stamp) $(build_gcn_stamp), $(build_dependencies)) \
+ $(if $(filter nvptx-none, $(offload_targets)), $(install_nvptx_stamp)) \
+ $(if $(filter $(gcn_target_name), $(offload_targets)), $(install_gcn_stamp))
+ @echo === START $@ ===
+ rm -f test-protocol
+ rm -f $(builddir)/runcheck*
+
+ -chmod 755 $(srcdir)/contrib/test_summary
+
+ : # needed for the plugin tests to succeed
+ ln -sf gcc $(builddir)/prev-gcc
+ ln -sf $(DEB_TARGET_GNU_TYPE) $(builddir)/prev-$(DEB_TARGET_GNU_TYPE)
+
+ifneq ($(with_common_libs),yes)
+ ifeq ($(with_cxx),yes)
+ ifeq (,$(filter $(DEB_TARGET_ARCH), armel armhf mipsel mips64el))
+ : # libstdc++6 built from newer gcc-X source, run testsuite against the installed lib
+
+ : # jit test results should not end up in the libstdc++-test-summary report
+ if [ -f $(builddir)/gcc/testsuite/jit/jit.sum ]; then \
+ mv $(builddir)/gcc/testsuite/jit/jit.log $(builddir)/gcc/testsuite/jit/jit.LOG; \
+ mv $(builddir)/gcc/testsuite/jit/jit.sum $(builddir)/gcc/testsuite/jit/jit.SUM; \
+ fi
+
+ sed 's/-L[^ "]*//g' $(buildlibdir)/libstdc++-v3/scripts/testsuite_flags \
+ > $(buildlibdir)/libstdc++-v3/scripts/testsuite_flags.installed
+ -$(ULIMIT_M); \
+ set +e; \
+ for d in $(buildlibdir)/libstdc++-v3/testsuite; do \
+ echo "Running testsuite in $$d ..."; \
+ TEST_INSTALLED=1 \
+ $(SET_SHELL) \
+ $(SET_LOCPATH) \
+ $(SET_PATH) \
+ DEJAGNU_TIMEOUT=$(DEJAGNU_TIMEOUT) \
+ DEB_GCC_NO_O3=1 \
+ $(MAKE) -k -C $$d $(NJOBS_TESTS) check $(RUNTESTFLAGS); \
+ done 2>&1 | tee test-protocol2
+
+ cd $(builddir); \
+ BOOT_CFLAGS="$(BOOT_CFLAGS)" \
+ $(srcdir)/contrib/test_summary -m "$(S_EMAIL)" > ../raw-test-summary
+ -( \
+ sed -n '/^Mail/s/.*"\([^"][^"]*\)".*/\1/p' raw-test-summary; \
+ awk '/^cat/, /^EOF/' raw-test-summary | grep -v EOF; \
+ ) > libstdc++-test-summary
+ echo 'BEGIN installed libstdc++-v3 test-summary'
+ cat libstdc++-test-summary
+ echo 'END installed libstdc++-v3 test-summary'
+ find $(buildlibdir)/libstdc++-v3/testsuite -name '*.log' -o -name '*.sum' \
+ | xargs -r rm -f
+
+ if [ -f $(builddir)/gcc/testsuite/jit/jit.SUM ]; then \
+ mv $(builddir)/gcc/testsuite/jit/jit.LOG $(builddir)/gcc/testsuite/jit/jit.log; \
+ mv $(builddir)/gcc/testsuite/jit/jit.SUM $(builddir)/gcc/testsuite/jit/jit.sum; \
+ fi
+ endif
+ endif
+endif
+
+ifeq ($(start_logwatch),yes)
+ : # start logwatch script for regular output during test runs
+ chmod +x debian/logwatch.sh
+ -debian/logwatch.sh -t 900 -p $(builddir)/logwatch.pid \
+ -m '\ntestsuite still running ...\n' \
+ test-protocol \
+ $(builddir)/gcc/testsuite/gcc/gcc.log \
+ $(builddir)/gcc/testsuite/g++/g++.log \
+ $(builddir)/gcc/testsuite/gfortran/gfortran.log \
+ $(builddir)/gcc/testsuite/objc/objc.log \
+ $(builddir)/gcc/testsuite/obj-c++/obj-c++.log \
+ $(builddir)/gcc/testsuite/gnat/gnat.log \
+ $(builddir)/gcc/testsuite/ada/acats/acats.log \
+ $(builddir)/gcc/testsuite/gfortran/gfortran.log \
+ $(builddir)/gcc/p/test/test_log \
+ $(buildlibdir)/libstdc++-v3/testsuite/libstdc++.log \
+ $(buildlibdir)/libgomp/testsuite/libgomp.log \
+ $(buildlibdir)/libffi/testsuite/libffi.log \
+ &
+endif
+
+ : # FIXME: https://gcc.gnu.org/PR103944
+ rm -f $(srcdir)/libphobos/testsuite/libphobos.gc/forkgc2.d
+
+ -$(ULIMIT_M); \
+ set +e; \
+ for d in $(checkdirs); do \
+ echo "Running testsuite in $$d ..."; \
+ $(SET_SHELL) \
+ $(SET_LOCPATH) \
+ $(SET_PATH) \
+ EXTRA_TEST_PFLAGS=-g0 \
+ DEJAGNU_TIMEOUT=$(DEJAGNU_TIMEOUT) \
+ DEB_BUILD_OPTIONS='$(DEB_BUILD_OPTIONS) gcc-ice=nodump,norepro' \
+ DEB_GCC_NO_O3=1 \
+ $(time_command) $(MAKE) -k -C $$d $(NJOBS_TESTS) check $(RUNTESTFLAGS); \
+ done 2>&1 | tee test-protocol
+
+ -ps aux | fgrep logwatch | fgrep -v fgrep
+ -if [ -f $(builddir)/logwatch.pid ]; then \
+ kill -1 `cat $(builddir)/logwatch.pid`; \
+ sleep 1; \
+ kill -9 `cat $(builddir)/logwatch.pid`; \
+ rm -f $(builddir)/logwatch.pid; \
+ fi
+ -ps aux | fgrep logwatch | fgrep -v fgrep
+
+ifeq ($(with_ada),yes)
+ -if [ -f $(builddir)/acats-killer.pid ]; then \
+ kill -1 `cat $(builddir)/acats-killer.pid`; \
+ sleep 1; \
+ kill -9 `cat $(builddir)/acats-killer.pid`; \
+ rm -f $(builddir)/acats-killer.pid; \
+ fi
+endif
+
+ if [ -x $(srcdir)/contrib/test_summary ]; then \
+ rm -f test-summary; \
+ ( \
+ cd $(builddir); \
+ echo '' > ts-include; \
+ echo '' >> ts-include; \
+ if [ -f $(builddir)/gcc/.bad_compare ]; then \
+ echo 'Bootstrap comparison failure:' >> ts-include; \
+ cat $(builddir)/gcc/.bad_compare >> ts-include; \
+ echo '' >> ts-include; \
+ echo '' >> ts-include; \
+ fi; \
+ echo "Build Dependencies:" >> ts-include; \
+ dpkg -l g++-* binutils* `echo '$(LIBC_DEP)' | awk '{print $$1}'` \
+ libgmp*-dev libmpfr-dev libmpc-dev libisl-dev \
+ | fgrep -v '<none>' >> ts-include; \
+ echo '' >> ts-include; \
+ cat ../$(patch_stamp) >> ts-include; \
+ BOOT_CFLAGS="$(BOOT_CFLAGS)" \
+ $(srcdir)/contrib/test_summary \
+ -i ts-include -m "$(S_EMAIL)" \
+ ) > raw-test-summary; \
+ if [ -n "$(testsuite_tarball)" ]; then \
+ echo "Test suite used: $(testsuite_srcdir)" > test-summary; \
+ echo " Do not interpret the results on its own" >> test-summary; \
+ echo " but compare them with the results from" >> test-summary; \
+ echo " the gcc-snapshot package." >> test-summary; \
+ fi; \
+ sed -n '/^Mail/s/.*"\([^"][^"]*\)".*/\1/p' raw-test-summary \
+ >> test-summary; \
+ awk '/^cat/, /^EOF/' raw-test-summary | grep -v EOF >> test-summary; \
+ if [ -f bootstrap-summary -a "$(bootstrap_target)" != profiledbootstrap ]; then \
+ echo '' >> test-summary; \
+ cat bootstrap-summary >> test-summary; \
+ fi; \
+ echo 'BEGIN test-summary'; \
+ cat test-summary; \
+ echo 'END test-summary'; \
+ fi
+ifeq ($(with_d),yes)
+ : # the D test failures for the non-default multilibs are known, ignore them
+ egrep -v '^(FAIL|UNRESOLVED): (runnable|fail_c|comp)' test-summary > test-summary.tmp
+ mv -f test-summary.tmp test-summary
+endif
+
+ : # prepare the inclusion of the test results
+ rm -rf $(d_tst)
+ mkdir -p $(d_tst)/$(docdir)/$(p_xbase)/test
+ echo "TEST COMPARE BEGIN"
+ for i in test-summary testsuite-comparision; do \
+ [ -f $$i ] || continue; \
+ cp -p $$i $(d_tst)/$(docdir)/$(p_xbase)/$$i; \
+ done
+# more than one libgo.sum, avoid it
+ cp -p $$(find $(builddir)/gcc/testsuite -maxdepth 2 \( -name '*.sum' -o -name '*.log' \)) \
+ $$(find $(buildlibdir)/*/testsuite -maxdepth 1 \( -name '*.sum' -o -name '*.log' \) ! -name 'libgo.*') \
+ $(d_tst)/$(docdir)/$(p_xbase)/test/
+ifeq ($(with_go),yes)
+ cp -p $(buildlibdir)/libgo/libgo.sum \
+ $(d_tst)/$(docdir)/$(p_xbase)/test/
+endif
+ifeq (0,1)
+ cd $(builddir); \
+ for i in $(CURDIR)/$(d_tst)/$(docdir)/$(p_xbase)/test/*.sum; do \
+ b=$$(basename $$i); \
+ if [ -f /usr/share/doc/$(p_xbase)/test/$$b.gz ]; then \
+ zcat /usr/share/doc/$(p_xbase)/test/$$b.gz > /tmp/$$b; \
+ if sh $(srcdir)/contrib/test_summary /tmp/$$b $$i; then \
+ echo "$$b: OK"; \
+ else \
+ echo "$$b: FAILURES"; \
+ fi; \
+ rm -f /tmp/$$b; \
+ else \
+ echo "Test summary for $$b is not available"; \
+ fi; \
+ done
+endif
+ echo "TEST COMPARE END"
+
+ifneq ($(with_common_libs),yes)
+ if [ -f libstdc++-test-summary ]; then \
+ cp libstdc++-test-summary \
+ $(d_tst)/$(docdir)/$(p_xbase)/libstdc++-installed-test-summary; \
+ fi
+ if [ -f $(buildlibdir)/libstdc++-v3/testsuite/libstdc++-installed.LOG ]; then \
+ cp $(buildlibdir)/libstdc++-v3/testsuite/libstdc++-installed.LOG \
+ $(d_tst)/$(docdir)/$(p_xbase)/test/libstdc++-installed.log; \
+ cp $(buildlibdir)/libstdc++-v3/testsuite/libstdc++-installed.SUM \
+ $(d_tst)/$(docdir)/$(p_xbase)/test/libstdc++-installed.sum; \
+ fi
+endif
+
+ if which xz 2>&1 >/dev/null; then \
+ echo -n $(d_tst)/$(docdir)/$(p_xbase)/test/* \
+ | xargs -d ' ' -L 1 -P $(USE_CPUS) xz -9v; \
+ fi
+
+ -cp usage-*.svg $(d_tst)/$(docdir)/$(p_xbase)/.
+ -if which xz 2>&1 >/dev/null; then \
+ echo -n $(d_tst)/$(docdir)/$(p_xbase)/*.svg \
+ | xargs -d ' ' -L 1 -P $(USE_CPUS) xz -9v; \
+ fi
+
+ cd $(d_tst) && tar cvf ../../installed-testlogs.tar usr
+ rm -rf $(d_tst)
+
+ifeq ($(save_disk_space),yes)
+ rm -rf $(builddir)/gcc/testsuite/*
+ rm -f usage-*.svg
+endif
+ touch $(check_stamp)
+
+$(check_inst_stamp): $(check_stamp)
+ rm -f test-inst-protocol
+ @echo === START $@ ===
+
+ifeq ($(start_logwatch),yes)
+ : # start logwatch script for regular output during test runs
+ chmod +x debian/logwatch.sh
+ -debian/logwatch.sh -t 900 -p $(builddir)/logwatch-inst.pid \
+ -m '\ntestsuite (3.3) still running ...\n' \
+ test-inst-protocol \
+ check-inst/{gcc,g++,g77,objc}.log \
+ &
+endif
+
+ rm -rf check-inst
+ mkdir check-inst
+
+ echo "Running testsuite ..."
+ -$(ULIMIT_M) ; \
+ $(SET_SHELL) \
+ $(SET_LOCPATH) \
+ EXTRA_TEST_PFLAGS=-g0 \
+ DEJAGNU_TIMEOUT=$(DEJAGNU_TIMEOUT) \
+ DEB_BUILD_OPTIONS='$(DEB_BUILD_OPTIONS) gcc-ice=nodump,norepro' \
+ cd check-inst && $(srcdir)/contrib/test_installed \
+ --with-gcc=gcc-$(CC) --with-g++=$(CXX) --with-g77=$(subst gcc,gfortran,$(CC)) \
+ 2>&1 | tee test-inst-protocol
+
+ -ps aux | fgrep logwatch | fgrep -v fgrep
+ if [ -f $(builddir)/logwatch-inst.pid ]; then \
+ kill -1 `cat $(builddir)/logwatch-inst.pid`; \
+ else \
+ true; \
+ fi
+ -ps aux | fgrep logwatch | fgrep -v fgrep
+
+ -chmod 755 $(srcdir)/contrib/test_summary
+ if [ -x $(srcdir)/contrib/test_summary ]; then \
+ rm -f test-inst-summary; \
+ ( \
+ cd check-inst; \
+ echo '' > ts-include; \
+ echo '' >> ts-include; \
+ echo "Build Dependencies:" >> ts-include; \
+ dpkg -l g++-* binutils* `echo '$(LIBC_DEP)' | awk '{print $$1}'` \
+ libgmp*-dev libmpfr-dev libmpc-dev libisl*-dev \
+ | fgrep -v '<none>' >> ts-include; \
+ echo '' >> ts-include; \
+ echo 'Results for the installed GCC-3.3 compilers' >> ts-include; \
+ $(srcdir)/contrib/test_summary \
+ -i ts-include -m "$(S_EMAIL)" \
+ ) > raw-test-inst-summary; \
+ sed -n '/^Mail/s/.*"\([^"][^"]*\)".*/\1/p' raw-test-inst-summary \
+ >> test-inst-summary; \
+ awk '/^cat/, /^EOF/' raw-test-inst-summary \
+ | grep -v EOF >> test-inst-summary; \
+ echo 'BEGIN test-installed-summary'; \
+ cat test-inst-summary; \
+ echo 'END test-installed-summary'; \
+ fi
+
+ chmod 755 debian/reduce-test-diff.awk
+ if diff -u test-inst-summary test-summary \
+ | debian/reduce-test-diff.awk > diff-summary; \
+ then \
+ mv -f diff-summary testsuite-comparision; \
+ else \
+ ( \
+ echo "WARNING: New failures in gcc-3.4 compared to gcc-3.3"; \
+ echo ''; \
+ cat diff-summary; \
+ ) > testsuite-comparision; \
+ rm -f diff-summary; \
+ fi
+ touch $(check_inst_stamp)
+
+clean: debian/control
+ dh_testdir
+ rm -f pxxx status
+ rm -f *-summary *-protocol testsuite-comparision summary-diff
+ rm -f $(srcdir)/gcc/po/*.gmo
+ rm -rf src-nvptx src-gcn
+ rm -f debian/lib{gcc,objc,stdc++}{-v3,[0-9]}*.{{pre,post}{inst,rm},shlibs}
+ fs=`echo debian/*BV* debian/*CXX* debian/*LC* debian/*MF* | sort -u`; \
+ for f in $$fs; do \
+ [ -f $$f ] || continue; \
+ f2=$$(echo $$f \
+ | sed 's/BV/$(BASE_VERSION)/;s/CXX/$(CXX_SONAME)/;s/LC/$(GCC_SONAME)/;s/-CRB/$(cross_bin_arch)/;s/\.in$$//'); \
+ rm -f $$f2; \
+ done
+ rm -f debian/lib*gcc-s1.symbols
+ rm -f debian/lib*{atomic$(ATOMIC_SONAME),gfortran$(FORTRAN_SONAME),gomp$(GOMP_SONAME),itm$(ITM_SONAME),quadmath$(QUADMATH_SONAME),stdc++$(CXX_SONAME)}.symbols
+ find debian -maxdepth 1 -name '*-cross.symbols' -type l | xargs -r rm -f
+ rm -f debian/gcc-{XX,ar,nm,ranlib}-$(BASE_VERSION).1
+ rm -f debian/shlibs.local debian/shlibs.common* debian/substvars.local
+ rm -f debian/*.debhelper
+ -[ -d debian/bugs ] && $(MAKE) -C debian/bugs clean
+ rm -f debian/README.libstdc++-baseline debian/README.Bugs debian/README.Debian.$(DEB_TARGET_ARCH)
+ rm -f debian/arch_binaries* debian/indep_binaries*
+ rm -rf bin bin-gcn locales share
+ rm -rf check-inst
+ rm -f usage-*.svg
+ rm -f installed-*.tar*
+ dh_clean
+ifneq (,$(filter $(build_type), build-cross cross-build-cross))
+ $(cross_clean) dh_clean
+endif
+
+# -----------------------------------------------------------------------------
+# some abbrevations for the package names and directories;
+# p_XXX is the package name, d_XXX is the package directory
+# these macros are only used in the binary-* targets.
+
+ifeq ($(versioned_packages),yes)
+ pkg_ver := -$(BASE_VERSION)
+endif
+
+# if native or rtlibs build
+ifeq ($(if $(filter yes,$(DEB_CROSS)),$(if $(filter rtlibs,$(DEB_STAGE)),native,cross),native),native)
+ p_base = gcc$(pkg_ver)-base
+ p_lbase = $(p_base)
+ p_xbase = gcc$(pkg_ver)-base
+ p_gcc = gcc$(pkg_ver)
+ p_cpp = cpp$(pkg_ver)
+ p_cppd = cpp$(pkg_ver)-doc
+ p_cxx = g++$(pkg_ver)
+ p_doc = gcc$(pkg_ver)-doc
+else
+ # only triggered if DEB_CROSS set
+ p_base = gcc$(pkg_ver)$(cross_bin_arch)-base
+ p_lbase = gcc$(pkg_ver)-cross-base$(GCC_PORTS_BUILD)
+ p_xbase = gcc$(pkg_ver)$(cross_bin_arch)-base
+ p_cpp = cpp$(pkg_ver)$(cross_bin_arch)
+ p_gcc = gcc$(pkg_ver)$(cross_bin_arch)
+ p_cxx = g++$(pkg_ver)$(cross_bin_arch)
+endif
+p_hppa64 = gcc$(pkg_ver)-hppa64-linux-gnu
+
+# needed for shlibs.common* generation
+ifeq (,$(p_lgcc))
+ p_lgcc = libgcc-s$(GCC_SONAME)$(cross_lib_arch)
+endif
+ifeq (,$(p_lib))
+ p_lib = libstdc++$(CXX_SONAME)$(cross_lib_arch)
+endif
+p_tst = gcc$(pkg_ver)-test-results
+
+d = debian/tmp
+d_base = debian/$(p_base)
+d_xbase = debian/$(p_xbase)
+d_gcc = debian/$(p_gcc)
+d_cpp = debian/$(p_cpp)
+d_cppd = debian/$(p_cppd)
+d_cxx = debian/$(p_cxx)
+d_doc = debian/$(p_doc)
+d_lgcc = debian/$(p_lgcc)
+d_hppa64= debian/$(p_hppa64)
+d_tst = debian/$(p_tst)
+
+common_substvars = \
+ $(shell awk "{printf \"'-V%s' \", \$$0}" debian/substvars.local)
+
+ifeq ($(DEB_CROSS),yes)
+ lib_binaries := indep_binaries
+else
+ lib_binaries := arch_binaries
+endif
+
+# ---------------------------------------------------------------------------
+
+ifneq (,$(findstring gcc-snapshot, $(PKGSOURCE)))
+ include debian/rules.d/binary-snapshot.mk
+else ifneq (,$(findstring gcc-toolchain, $(PKGSOURCE)))
+ include debian/rules.d/binary-toolchain.mk
+else
+
+ifneq ($(with_base_only),yes)
+ifneq ($(DEB_CROSS),yes)
+ifeq ($(with_source),yes)
+ include debian/rules.d/binary-source.mk
+endif
+endif
+endif
+
+ifneq ($(BACKPORT),true)
+
+ifeq ($(with_gccbase),yes)
+ include debian/rules.d/binary-base.mk
+endif
+
+ifneq ($(with_base_only),yes)
+
+# always include to get some definitions
+include debian/rules.d/binary-libgcc.mk
+
+ifeq ($(with_libqmath),yes)
+ include debian/rules.d/binary-libquadmath.mk
+endif
+
+ifeq ($(with_libgmath),yes)
+ include debian/rules.d/binary-libgccmath.mk
+endif
+
+ifeq ($(with_libgomp),yes)
+ include debian/rules.d/binary-libgomp.mk
+endif
+
+ifeq ($(with_libitm),yes)
+ include debian/rules.d/binary-libitm.mk
+endif
+
+ifeq ($(with_libatomic),yes)
+ include debian/rules.d/binary-libatomic.mk
+endif
+
+ifeq ($(with_libbacktrace),yes)
+ include debian/rules.d/binary-libbacktrace.mk
+endif
+
+ifeq ($(with_cdev),yes)
+ include debian/rules.d/binary-cpp.mk
+endif
+
+ifeq ($(with_libssp),yes)
+ include debian/rules.d/binary-libssp.mk
+endif
+
+ifeq ($(with_objcxx),yes)
+ include debian/rules.d/binary-objcxx.mk
+endif
+
+ifeq ($(with_objc),yes)
+ include debian/rules.d/binary-objc.mk
+ include debian/rules.d/binary-libobjc.mk
+endif
+
+ifeq ($(with_go),yes)
+ include debian/rules.d/binary-go.mk
+endif
+
+ifeq ($(with_cxxdev),yes)
+ include debian/rules.d/binary-cxx.mk
+endif
+ifeq ($(with_cxx),yes)
+ include debian/rules.d/binary-libstdcxx.mk
+endif
+
+ifeq ($(with_libasan),yes)
+ include debian/rules.d/binary-libasan.mk
+endif
+
+ifeq ($(with_liblsan),yes)
+ include debian/rules.d/binary-liblsan.mk
+endif
+
+ifeq ($(with_libtsan),yes)
+ include debian/rules.d/binary-libtsan.mk
+endif
+
+ifeq ($(with_libubsan),yes)
+ include debian/rules.d/binary-libubsan.mk
+endif
+
+ifeq ($(with_libhwasan),yes)
+ include debian/rules.d/binary-libhwasan.mk
+endif
+
+ifeq ($(with_libvtv),yes)
+ include debian/rules.d/binary-libvtv.mk
+endif
+
+ifeq ($(with_f77),yes)
+ include debian/rules.d/binary-f77.mk
+endif
+
+ifeq ($(with_fortran),yes)
+ include debian/rules.d/binary-fortran.mk
+endif
+
+ifeq ($(with_ada),yes)
+ include debian/rules.d/binary-ada.mk
+endif
+
+ifeq ($(with_d),yes)
+ include debian/rules.d/binary-d.mk
+endif
+
+ifeq ($(with_m2),yes)
+ include debian/rules.d/binary-m2.mk
+endif
+
+ifeq ($(with_rs),yes)
+ include debian/rules.d/binary-rust.mk
+endif
+
+ifeq ($(with_libcc1),yes)
+ include debian/rules.d/binary-libcc1.mk
+endif
+
+ifeq ($(with_jit),yes)
+ include debian/rules.d/binary-libgccjit.mk
+endif
+
+ifeq ($(with_offload_nvptx),yes)
+ include debian/rules.d/binary-nvptx.mk
+endif
+
+ifeq ($(with_offload_gcn),yes)
+ include debian/rules.d/binary-gcn.mk
+endif
+
+ifeq ($(with_libnof),yes)
+ ifeq ($(DEB_TARGET_GNU_CPU),powerpc)
+ include debian/rules.d/binary-nof.mk
+ endif
+endif
+
+ifeq ($(with_softfloat),yes)
+ include debian/rules.d/binary-softfloat.mk
+endif
+
+# gcc must be moved/built after g77 and g++
+ifeq ($(with_cdev),yes)
+ include debian/rules.d/binary-gcc.mk
+endif
+
+ifeq ($(with_hppa64),yes)
+ include debian/rules.d/binary-hppa64.mk
+endif
+
+endif # with_base_only
+endif # BACKPORT
+endif # ($(single_package),yes)
+
+# ----------------------------------------------------------------------
+install: $(install_dependencies)
+
+$(install_dummy_stamp): $(build_dummy_stamp)
+ @echo === START $@ ===
+ touch $(install_dummy_stamp)
+
+$(install_snap_stamp): $(build_dependencies)
+ @echo === START $@ ===
+ dh_testdir
+ dh_testroot
+ dh_prep
+
+ : # Install directories
+ rm -rf $(d)
+ mkdir -p $(d)/$(PF)
+
+ifeq ($(with_hppa64),yes)
+ : # install files prepared in the hppa64 build target
+ cd $(d) && tar xvf ../../installed-hppa64.tar.xz
+endif
+
+ : # Install everything
+ $(SET_PATH) \
+ $(SET_SHELL) \
+ $(MAKE) -C $(builddir) \
+ $(call pass_vars, $(flags_to_pass)) \
+ DESTDIR=$(CURDIR)/$(d) \
+ infodir=/$(PF)/share/info \
+ mandir=/$(PF)/share/man \
+ install
+
+ ls -l $(d)/$(PF)/bin
+
+ for i in ar nm ranlib; do \
+ cp debian/gcc-$$i-$(BASE_VERSION).1 \
+ $(d)/$(PF)/share/man/man1/$(cmd_prefix)gcc-$$i.1; \
+ done
+
+ if [ ! -x $(d)/$(PF)/bin/$(TARGET_ALIAS)-gcc ]; then \
+ mv $(d)/$(PF)/bin/$(TARGET_ALIAS)-gcc-13* $(d)/$(PF)/bin/$(TARGET_ALIAS)-gcc; \
+ else \
+ rm -f $(d)/$(PF)/bin/$(TARGET_ALIAS)-gcc-13*; \
+ fi
+ rm -rf $(d)/$(gcc_lib_dir)/include-fixed
+
+ifneq ($(configured_libdir),$(libdir))
+ for i in ada debug go pkgconfig '*.so' '*.so.*' '*.a' '*.la' '*.py' '*.spec'; do \
+ mv $(d)/$(PF)/$(configured_libdir)/$$i \
+ $(d)/$(PF)/$(libdir)/. || true; \
+ done
+endif
+
+ifeq ($(with_jit),yes)
+ : # install files prepared in the jit build target
+ cd $(d) && tar xvf ../../installed-jit.tar.xz
+endif
+
+ -ls -l $(d)/usr
+ if [ -d $(d)/usr/man/man1 ]; then \
+ mv $(d)/usr/man/man1/* $(d)/usr/share/man/man1/; \
+ fi
+
+ chmod 755 debian/dh_*
+ touch $(install_snap_stamp)
+
+
+$(install_tc_stamp): $(build_dependencies)
+ @echo === START $@ ===
+ dh_testdir
+ dh_testroot
+ dh_prep
+
+ : # Install directories
+ rm -rf $(d)
+ mkdir -p $(d)/$(PF)
+
+ifeq ($(with_hppa64),yes)
+ : # install files prepared in the hppa64 build target
+ cd $(d) && tar xvf ../../installed-hppa64.tar.xz
+endif
+
+ : # Install everything
+ $(SET_PATH) \
+ $(SET_SHELL) \
+ $(MAKE) -C $(builddir) \
+ $(call pass_vars, $(flags_to_pass)) \
+ DESTDIR=$(CURDIR)/$(d) \
+ infodir=/$(PF)/share/info \
+ mandir=/$(PF)/share/man \
+ install
+
+ ls -l $(d)/$(PF)/bin
+
+ for i in ar nm ranlib; do \
+ cp debian/gcc-$$i-$(BASE_VERSION).1 \
+ $(d)/$(PF)/share/man/man1/$(cmd_prefix)gcc-$$i.1; \
+ done
+
+ if [ ! -x $(d)/$(PF)/bin/$(TARGET_ALIAS)-gcc ]; then \
+ mv $(d)/$(PF)/bin/$(TARGET_ALIAS)-gcc-13* $(d)/$(PF)/bin/$(TARGET_ALIAS)-gcc; \
+ else \
+ rm -f $(d)/$(PF)/bin/$(TARGET_ALIAS)-gcc-13*; \
+ fi
+ rm -rf $(d)/$(gcc_lib_dir)/include-fixed
+
+ifneq ($(configured_libdir),$(libdir))
+ for i in ada debug go pkgconfig '*.so' '*.so.*' '*.a' '*.la' '*.py' '*.spec'; do \
+ mv $(d)/$(PF)/$(configured_libdir)/$$i \
+ $(d)/$(PF)/$(libdir)/. || true; \
+ done
+endif
+
+ifeq ($(with_jit),yes)
+ : # install files prepared in the jit build target
+ cd $(d) && tar xvf ../../installed-jit.tar.xz
+endif
+
+ -ls -l $(d)/usr
+ if [ -d $(d)/usr/man/man1 ]; then \
+ mv $(d)/usr/man/man1/* $(d)/usr/share/man/man1/; \
+ fi
+
+ chmod 755 debian/dh_*
+ touch $(install_tc_stamp)
+
+
+$(install_stamp): $(build_stamp)
+ @echo === START $@ ===
+ dh_testdir
+ dh_testroot
+ dh_prep $(if $(filter yes,$(with_hppa64)),-N$(p_hppa64))
+
+ if [ -f $(binary_stamp)-hppa64 ]; then \
+ mv $(binary_stamp)-hppa64 saved-stamp-hppa64; \
+ fi
+ rm -f $(binary_stamp)*
+ if [ -f saved-stamp-hppa64 ]; then \
+ mv saved-stamp-hppa64 $(binary_stamp)-hppa64; \
+ fi
+
+ : # Install directories
+ rm -rf $(d)
+ mkdir -p $(d)/$(libdir) $(d)/$(PF) $(d)/$(PF)/$(libdir)/debug
+ifeq ($(biarch32),yes)
+ mkdir -p $(d)/$(PF)/$(lib32loc)/debug
+endif
+ifeq ($(biarch64),yes)
+ mkdir -p $(d)/$(PF)/lib64/debug
+endif
+ifeq ($(biarchn32),yes)
+ mkdir -p $(d)/$(PF)/$(libn32)/debug
+endif
+ifeq ($(biarchx32),yes)
+ mkdir -p $(d)/$(PF)/libx32/debug
+endif
+
+ifneq (,$(filter $(DEB_TARGET_GNU_CPU),x86_64 sparc64 s390x powerpc64))
+ifneq ($(DEB_TARGET_ARCH),x32)
+ : # link lib to lib64 and $(PF)/lib to $(PF)/lib64
+ : # (this works when CONFARGS contains '--disable-multilib')
+ ln -s $(configured_libdir) $(d)/lib64
+ mkdir -p $(d)/$(PF)/$(configured_libdir)
+ ln -s $(configured_libdir) $(d)/$(PF)/lib64
+endif
+endif
+ifeq ($(DEB_TARGET_ARCH),x32)
+ : # link lib to libx32 and $(PF)/lib to $(PF)/libx32
+ ln -s $(configured_libdir) $(d)/libx32
+ mkdir -p $(d)/$(PF)/$(configured_libdir)
+ ln -s $(configured_libdir) $(d)/$(PF)/libx32
+endif
+
+ : # Install everything
+ $(SET_PATH) \
+ $(SET_SHELL) \
+ $(MAKE) -C $(builddir) \
+ $(call pass_vars, $(flags_to_pass)) \
+ DESTDIR=$(CURDIR)/$(d) \
+ infodir=/$(PF)/share/info \
+ mandir=/$(PF)/share/man \
+ install
+
+ @echo III: =============== upstream install $(DEB_TARGET_ARCH) ===============
+ find $(d) ! -type d
+ @echo III: =============== end upstream install $(DEB_TARGET_ARCH) ===============
+
+ifeq ($(with_m2),yes)
+ ifneq (,$(filter $(build_type), build-cross cross-build-cross))
+ : # FIXME: libm2 libs are installed wrong for libgm2
+ for i in $(d)/$(PF)/lib/libm2*; do \
+ test -e $$i || continue; \
+ echo mv $$i $(d)/$(PFL)/lib/. ; \
+ mv $$i $(d)/$(PFL)/lib/. ; \
+ done
+ endif
+endif
+
+ rm -rf $(d)/$(gcc_lib_dir)/include-fixed
+
+ifeq ($(DEB_STAGE)-$(DEB_CROSS),rtlibs-yes)
+ @echo configured_libdir=$(configured_libdir) / libdir=$(libdir) / usr_lib=$(usr_lib)
+ ls $(d)/$(PF)/$(TARGET_ALIAS)/lib
+ set -x; \
+ if [ -d $(d)/$(PF)/$(TARGET_ALIAS)/lib ]; then \
+ cp -a $(d)/$(PF)/$(TARGET_ALIAS)/lib/* $(d)/$(PF)/lib/$(DEB_TARGET_MULTIARCH)/.; \
+ fi
+ for d in $$(cd $(d)/$(PF)/$(TARGET_ALIAS); echo lib?*); do \
+ [ -d $(d)/$(PF)/$(TARGET_ALIAS)/$$d ] || continue; \
+ cp -a $(d)/$(PF)/$(TARGET_ALIAS)/$$d/* $(d)/$(PF)/$$d/.; \
+ done
+else
+ ifneq ($(configured_libdir),$(libdir))
+ for i in ada debug go pkgconfig '*.so' '*.so.*' '*.a' '*.la' '*.o' '*.py' '*.spec'; do \
+ mv $(d)/$(PF)/$(configured_libdir)/$$i \
+ $(d)/$(PF)/$(libdir)/. || true; \
+ done
+ endif
+endif
+
+ifneq (,$(cmd_prefix))
+ for i in $(d)/$(PF)/share/info/$(cmd_prefix)*; do \
+ [ -f "$$i" ] || continue; \
+ mv $$i $$(echo $$i | sed 's/$(cmd_prefix)//'); \
+ done
+endif
+
+ifeq ($(with_libcxxdbg),yes)
+ : # FIXME: the libstdc++ gdb.py file is installed with a wrong name
+ for i in $$(find $(d)/$(PF) -name libstdc++_pic.a-gdb.py); do \
+ [ -f $$i ] || continue; \
+ d=$$(dirname $$i); \
+ b=$$(basename $$i); \
+ t=$$(cd $$d; echo libstdc++.so.*.*.*)-gdb.py; \
+ mv $$i $$d/$$t; \
+ done
+endif
+
+ : # fix permissions of liblto_plugin.so
+ chmod 644 $(d)/$(gcc_lexec_dir)/liblto_plugin.so
+
+ : # remove rpath settings from binaries and shared libs
+ for i in $$(chrpath -k $(d)/$(PF)/bin/* $(d)/$(PFL)/lib*/lib*.so.* \
+ $(d)/$(gcc_lib_dir)/plugin/* \
+ $(if $(filter $(with_multiarch_lib),yes), \
+ $(d)/$(PF)/lib/$(DEB_TARGET_MULTIARCH)/lib*.so.*) \
+ 2>/dev/null | awk -F: '/R(UN)?PATH=/ {print $$1}'); \
+ do \
+ case "$$i" in ecj1|*gij-*|*libjawt*|*libjvm*) continue; esac; \
+ [ -h $$i ] && continue; \
+ chrpath --delete $$i; \
+ echo "removed RPATH/RUNPATH: $$i"; \
+ done
+
+ : # remove '*.la' and '*.lai' files, not shipped in any package.
+ find $(d) -name '*.la' -o -name '*.lai' | xargs -r rm -f
+
+ifeq ($(GFDL_INVARIANT_FREE),yes)
+ for i in gcc gcov; do \
+ I=`echo $$i | tr a-z A-Z`; \
+ sed -e "s/@NAME@/$$I$(pkg_ver)/g" -e "s/@name@/$$i$(pkg_ver)/g" \
+ debian/dummy-man.1 > $(d)/$(PF)/share/man/man1/$$i.1; \
+ done
+
+ ifeq ($(with_fortran),yes)
+ for i in g77; do \
+ I=`echo $$i | tr a-z A-Z`; \
+ sed -e "s/@NAME@/$$I$(pkg_ver)/g" -e "s/@name@/$$i$(pkg_ver)/g" \
+ debian/dummy-man.1 > $(d)/$(PF)/share/man/man1/$$i.1; \
+ done
+ endif
+endif
+
+ifneq ($(with_libgnat),yes)
+ rm -f $(d)/$(gcc_lib_dir)/adalib/lib*.so*
+endif
+
+# ifeq ($(with_ada),yes)
+# : # rename files (versioned ada binaries)
+# for i in ; do \
+# mv $(d)/$(PF)/bin/$$i $(d)/$(PF)/bin/$$i-$(GNAT_VERSION); \
+# mv $(d)/$(PF)/share/man/man1/$$i.1 \
+# $(d)/$(PF)/share/man/man1/$$i-$(GNAT_VERSION).1; \
+# done
+# for i in $(GNAT_TOOLS); do \
+# mv $(d)/$(PF)/bin/$$i $(d)/$(PF)/bin/$$i-$(GNAT_VERSION); \
+# done
+# endif
+
+ for i in ar nm ranlib; do \
+ cp debian/gcc-$$i-$(BASE_VERSION).1 \
+ $(d)/$(PF)/share/man/man1/$(cmd_prefix)gcc-$$i$(pkg_ver).1; \
+ done
+
+ chmod 755 debian/dh_*
+
+ifneq ($(with_common_libs),yes)
+# for native builds, the default ml libs are always available; no need for a placeholder
+# apparently this changed with newer dpkg versions (1.18.7?) ...
+ echo 'libgcc_s $(GCC_SONAME) $(p_lgcc)' > debian/shlibs.common
+ echo 'libstdc++ $(CXX_SONAME) $(p_lib)' >> debian/shlibs.common
+ echo 'libquadmath $(QUADMATH_SONAME) libquadmath$(QUADMATH_SONAME)$(cross_lib_arch)' >> debian/shlibs.common
+ echo 'libatomic $(ATOMIC_SONAME) libatomic$(ATOMIC_SONAME)$(cross_lib_arch)' >> debian/shlibs.common
+ $(foreach ml,32 64 n32 x32 hf sf, \
+ echo 'libgcc_s $(GCC_SONAME) $(subst lib,lib$(ml),$(p_lgcc))' > debian/shlibs.common$(ml); \
+ echo 'libstdc++ $(CXX_SONAME) $(subst lib,lib$(ml),$(p_lib))' >> debian/shlibs.common$(ml); \
+ echo 'libquadmath $(QUADMATH_SONAME) lib$(ml)quadmath$(QUADMATH_SONAME)$(cross_lib_arch)' >> debian/shlibs.common$(ml); \
+ echo 'libatomic $(ATOMIC_SONAME) lib$(ml)atomic$(ATOMIC_SONAME)$(cross_lib_arch)' >> debian/shlibs.common$(ml); \
+ )
+endif
+
+ @echo III: =============== fixed install $(DEB_TARGET_ARCH) ===============
+ find $(d) ! -type d -print
+ @echo III: =============== end fixed install $(DEB_TARGET_ARCH) ===============
+ touch $(install_stamp)
+
+$(install_jit_stamp): $(build_jit_stamp) $(install_stamp)
+ @echo === START $@ ===
+ dh_testdir
+ dh_testroot
+
+ : # install files prepared in the jit build target
+ cd $(d) && tar xvf ../../installed-jit.tar.xz
+
+ @echo XXXXX `date -R`
+ touch $(install_jit_stamp)
+
+$(install_nvptx_stamp): $(build_nvptx_stamp)
+ @echo === START $@ ===
+ dh_testdir
+ ln -sf ../$(newlib_srcdir)/newlib $(srcdir)/newlib
+ rm -rf $(d)-nvptx
+ mkdir -p $(d)-nvptx/$(PF)
+
+ $(SET_PATH) \
+ biarch_multidir_names=none \
+ $(MAKE) -C $(builddir_nvptx) \
+ CC="$(CC_FOR_TARGET)" \
+ $(call pass_vars, $(flags_to_pass)) \
+ DESTDIR=$(CURDIR)/$(d)-nvptx \
+ install
+
+ find $(d)-nvptx
+ @echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ rm -rf $(d)-nvptx/$(libexecdir)/$(gcc_subdir_name)/nvptx-none/$(versiondir)/install-tools
+ rm -rf $(d)-nvptx/$(libexecdir)/$(gcc_subdir_name)/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/nvptx-none/{install-tools,plugin,cc1,cc1plus,f951}
+ rm -rf $(d)-nvptx/$(PF)/share/{info,man/man7,locale}
+ rm -rf $(d)-nvptx/$(PF)/share/man/man1/*-{gcov,gfortran,g++,cpp}.1
+ rm -rf $(d)-nvptx/$(PF)/lib/gcc/nvptx-none/$(versiondir)/{install-tools,plugin}
+ rm -rf $(d)-nvptx/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/nvptx-none/{install-tools,plugin,include-fixed}
+ rm -rf $(d)-nvptx/$(PF)/lib/libc[cp]1*
+ rm -rf $(d)-nvptx/$(PF)/lib{32,64,n32,x32}
+
+ mv -f $(d)-nvptx/$(PF)/nvptx-none/lib/*.{a,spec} \
+ $(d)-nvptx/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/nvptx-none/
+ mv -f $(d)-nvptx/$(PF)/nvptx-none/lib/mgomp/*.{a,spec} \
+ $(d)-nvptx/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/nvptx-none/mgomp/
+ mv -f $(d)-nvptx/$(PF)/lib/gcc/nvptx-none/$(versiondir)/*.a \
+ $(d)-nvptx/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/nvptx-none/
+ mv -f $(d)-nvptx/$(PF)/lib/gcc/nvptx-none/$(versiondir)/mgomp/*.a \
+ $(d)-nvptx/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/nvptx-none/mgomp/
+ find $(d)-nvptx -name \*.la | xargs rm -f
+ rm -rf $(d)-nvptx/$(PF)/nvptx-none/include
+ -find $(d)-nvptx -type d -empty -delete
+
+ : # a complete compiler installation needed for running the tests
+ifneq ($(single_package),yes)
+ ln -sf lib $(d)-nvptx/$(PF)/libexec
+endif
+ ln -sf /usr/bin/nvptx-none-ar $(d)-nvptx/$(gcc_lexec_dir)/accel/nvptx-none/ar
+ ln -sf /usr/bin/nvptx-none-as $(d)-nvptx/$(gcc_lexec_dir)/accel/nvptx-none/as
+ ln -sf /usr/bin/nvptx-none-ld $(d)-nvptx/$(gcc_lexec_dir)/accel/nvptx-none/ld
+ ln -sf /usr/bin/nvptx-none-ranlib $(d)-nvptx/$(gcc_lexec_dir)/accel/nvptx-none/ranlib
+
+ @echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ find $(d)-nvptx
+ @echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+
+ rm -f $(srcdir)/newlib
+ @echo XXXXX `date -R`
+ touch $(install_nvptx_stamp)
+
+$(install_gcn_stamp): $(build_gcn_stamp)
+ @echo === START $@ ===
+ dh_testdir
+ ln -sf ../$(newlib_srcdir)/newlib $(srcdir)/newlib
+ rm -rf $(d)-gcn
+ mkdir -p $(d)-gcn/$(PF)
+
+ $(SET_PATH) \
+ biarch_multidir_names=none \
+ $(MAKE) -C $(builddir_gcn) \
+ CC="$(CC_FOR_TARGET)" \
+ $(call pass_vars, $(flags_to_pass)) \
+ DESTDIR=$(CURDIR)/$(d)-gcn \
+ install
+
+ find $(d)-gcn
+ @echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ rm -rf $(d)-gcn/$(libexecdir)/$(gcc_subdir_name)/$(gcn_target_name)/$(versiondir)/install-tools
+ rm -rf $(d)-gcn/$(libexecdir)/$(gcc_subdir_name)/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/$(gcn_target_name)/{install-tools,plugin,cc1,cc1plus,f951}
+ rm -rf $(d)-gcn/$(PF)/share/{info,man/man7,locale}
+ rm -rf $(d)-gcn/$(PF)/bin/*-{gcov*,lto-dump}-$(versiondir)
+ rm -rf $(d)-gcn/$(PF)/share/man/man1/*-{cpp,gcov*,gfortran,g++,lto-dump}-$(versiondir).1
+ rm -rf $(d)-gcn/$(PF)/lib/gcc/$(gcn_target_name)/$(versiondir)/{install-tools,plugin}
+ rm -rf $(d)-gcn/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/$(gcn_target_name)/{install-tools,plugin,include-fixed}
+ rm -rf $(d)-gcn/$(PF)/lib/libc[cp]1*
+ rm -rf $(d)-gcn/$(PF)/lib{32,64,n32,x32}
+
+ mv -f $(d)-gcn/$(PF)/$(gcn_target_name)/lib/*.{a,spec} \
+ $(d)-gcn/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/$(gcn_target_name)/
+ mv -f $(d)-gcn/$(PF)/$(gcn_target_name)/lib/gfx900/*.{a,spec} \
+ $(d)-gcn/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/$(gcn_target_name)/gfx900/.
+ mv -f $(d)-gcn/$(PF)/$(gcn_target_name)/lib/gfx906/*.{a,spec} \
+ $(d)-gcn/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/$(gcn_target_name)/gfx906/.
+ mv -f $(d)-gcn/$(PF)/lib/gcc/$(gcn_target_name)/$(versiondir)/*.a \
+ $(d)-gcn/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/$(gcn_target_name)/
+ mv -f $(d)-gcn/$(PF)/lib/gcc/$(gcn_target_name)/$(versiondir)/gfx900/*.a \
+ $(d)-gcn/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/$(gcn_target_name)/gfx900/.
+ mv -f $(d)-gcn/$(PF)/lib/gcc/$(gcn_target_name)/$(versiondir)/gfx906/*.a \
+ $(d)-gcn/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/accel/$(gcn_target_name)/gfx906/.
+ find $(d)-gcn -name \*.la | xargs rm -f
+ rm -rf $(d)-gcn/$(PF)/$(gcn_target_name)/include
+ rm -rf $(d)-gcn/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/include
+ rm -rf $(d)-gcn/$(PF)/lib/gcc/$(DEB_HOST_GNU_TYPE)/$(versiondir)/gfx900
+
+ : # a complete compiler installation needed for running the tests
+ifneq ($(single_package),yes)
+ ln -sf lib $(d)-gcn/$(PF)/libexec
+endif
+ ln -sf /usr/lib/llvm-$(gcn_tools_llvm_version)/bin/llvm-ar \
+ $(d)-gcn/$(gcc_lexec_dir)/accel/$(gcn_target_name)/ar
+ ln -sf /usr/lib/llvm-$(gcn_tools_llvm_version)/bin/llvm-mc \
+ $(d)-gcn/$(gcc_lexec_dir)/accel/$(gcn_target_name)/as
+ ln -sf /usr/lib/llvm-$(gcn_tools_llvm_version)/bin/lld \
+ $(d)-gcn/$(gcc_lexec_dir)/accel/$(gcn_target_name)/ld
+ ln -sf /usr/lib/llvm-$(gcn_tools_llvm_version)/bin/llvm-nm \
+ $(d)-gcn/$(gcc_lexec_dir)/accel/$(gcn_target_name)/nm
+ ln -sf /usr/lib/llvm-$(gcn_tools_llvm_version)/bin/llvm-ranlib \
+ $(d)-gcn/$(gcc_lexec_dir)/accel/$(gcn_target_name)/ranlib
+
+ : # fix permissions of liblto_plugin.so
+ chmod 644 $(d)-gcn/$(gcc_lexec_dir)/accel/$(gcn_target_name)/liblto_plugin.so
+
+ -find $(d)-gcn -type d -empty -delete
+ @echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+ find $(d)-gcn
+ @echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+
+ rm -f $(srcdir)/newlib
+ @echo XXXXX `date -R`
+ touch $(install_gcn_stamp)
+
+$(install_hppa64_stamp): $(build_hppa64_stamp)
+ @echo === START $@ ===
+ dh_testdir
+ dh_testroot
+ rm -rf $(d_hppa64)
+ mkdir -p $(d_hppa64)/$(PF)
+
+ : # install files prepared in the hppa64 build target
+ cd $(d_hppa64) && tar xvf ../../installed-hppa64.tar.xz
+
+ touch $(install_hppa64_stamp)
+
+# ----------------------------------------------------------------------
+# Build architecture-dependent files here.
+debian/arch_binaries.all: $(foreach i,$(arch_binaries),$(binary_stamp)-$(i))
+ cd debian; xargs -r du -s < arch_binaries | sort -nr | awk '{print $$2}' \
+ > arch_binaries.tmp
+ mv debian/arch_binaries.tmp debian/arch_binaries
+ sed -i 's/ /\n/g' debian/arch_binaries.epoch || touch debian/arch_binaries.epoch
+ cat debian/arch_binaries debian/arch_binaries.epoch > debian/arch_binaries.all
+
+# see #879054 for the "test ! -s" tests, needed for the rtlibs stage
+binary-arch: $(foreach i,$(arch_binaries),$(binary_stamp)-$(i)) debian/arch_binaries.all
+ test ! -s debian/arch_binaries.all || \
+ dh_compress $(foreach p,$(shell echo `cat debian/arch_binaries.all`),-p$(p)) \
+ -X.log.xz -X.sum.xz -X.c -X.txt -X.tag -X.map -XREADME.Bugs
+ifeq ($(i586_symlinks),yes)
+ cd debian; \
+ test ! -s arch_binaries || \
+ for x in $$(find `cat arch_binaries` -type l -name 'i686-*'); do \
+ link=$$(echo $$x | sed 's/i686-/i586-/'); \
+ tgt=$$(basename $$x); \
+ echo "Adding symlink: $$link -> $$tgt"; \
+ rm -f $$link; cp -a $$x $$link; \
+ done
+endif
+ test ! -s debian/arch_binaries.all || \
+ dh_fixperms -Xliblto_plugin.so $(foreach p,$(shell echo `cat debian/arch_binaries.all`),-p$(p))
+ifeq ($(with_ada),yes)
+ find $$(ls -d $(d_gnat) $(d_gnatsjlj) $(d_snap) 2>/dev/null) \
+ -name '*.ali' | xargs -r chmod 444
+endif
+ test ! -s debian/arch_binaries || \
+ dh_gencontrol $(foreach p,$(shell echo `cat debian/arch_binaries`),-p$(p)) \
+ -- -v$(DEB_VERSION) $(common_substvars) $(shell debian/ada/libgnat_alihash)
+ @set -e; \
+ pkgs='$(strip $(foreach p,$(shell echo `cat debian/arch_binaries.epoch`),-p$(p)))'; \
+ if [ -n "$$pkgs" ]; then \
+ echo dh_gencontrol $$pkgs -- -v$(DEB_EVERSION) $(common_substvars); \
+ dh_gencontrol $$pkgs -- -v$(DEB_EVERSION) $(common_substvars); \
+ fi
+ifneq ($(single_package),yes)
+ ifeq ($(with_libcompatgcc),yes)
+ cp -p debian/.debhelper/generated/$(p_lgcc)/triggers \
+ debian/.debhelper/generated/$(subst gcc-s,gcc,$(p_lgcc))/.
+ endif
+endif
+ test ! -s debian/arch_binaries.all || \
+ dh_installdeb $(foreach p,$(shell echo `cat debian/arch_binaries.all`),-p$(p))
+ test ! -s debian/arch_binaries.all || \
+ dh_md5sums $(foreach p,$(shell echo `cat debian/arch_binaries.all`),-p$(p))
+ test ! -s debian/arch_binaries.all || \
+ dh_builddeb $(foreach p,$(shell echo `cat debian/arch_binaries.all`),-p$(p))
+ifeq ($(with_check),yes)
+ @echo Done
+# : # Send Email about sucessfull build.
+# # cat raw-test-summary | sh; echo "Sent mail to $(S_EMAIL)"
+endif
+
+ifneq ($(single_package),yes)
+ : # remove empty directories, when all components are in place
+ -find $(d) -type d -empty -delete
+
+ @echo "Listing installed files not included in any package:"
+ -find $(d) ! -type d
+endif
+ -du -s -BM .
+ -du -s -BM ..
+ @echo XXXXX `date -R`
+
+# ----------------------------------------------------------------------
+# Build architecture-independent files here.
+debian/indep_binaries.all: $(foreach i,$(indep_binaries),$(binary_stamp)-$(i))
+ cd debian; xargs -r du -s < indep_binaries | sort -nr | awk '{print $$2}' \
+ > indep_binaries.tmp
+ mv debian/indep_binaries.tmp debian/indep_binaries
+ sed -i 's/ /\n/g' debian/indep_binaries.epoch || touch debian/indep_binaries.epoch
+ cat debian/indep_binaries debian/indep_binaries.epoch > debian/indep_binaries.all
+
+binary-indep: $(foreach i,$(indep_binaries),$(binary_stamp)-$(i)) debian/indep_binaries.all
+ find debian -name _formulas.log -delete -print
+ dh_compress $(foreach p,$(shell echo `cat debian/indep_binaries.all`),-p$(p)) \
+ -X.log.xz -X.sum.xz -X.c -X.txt -X.tag -X.map -XREADME.Bugs
+ dh_fixperms $(foreach p,$(shell echo `cat debian/indep_binaries.all`),-p$(p))
+ : # the export should be harmless for the binary indep packages of a native build
+ export DEB_HOST_ARCH=$(TARGET); \
+ dh_gencontrol $(foreach p,$(shell echo `cat debian/indep_binaries`),-p$(p)) \
+ -- -v$(DEB_VERSION) $(common_substvars)
+ @set -e; \
+ export DEB_HOST_ARCH=$(TARGET); \
+ pkgs='$(strip $(foreach p,$(shell echo `cat debian/indep_binaries.epoch`),-p$(p)))'; \
+ if [ -n "$$pkgs" ]; then \
+ echo dh_gencontrol $$pkgs -- -v$(DEB_EVERSION) $(common_substvars); \
+ dh_gencontrol $$pkgs -- -v$(DEB_EVERSION) $(common_substvars); \
+ fi
+
+ifneq (,$(filter $(DEB_TARGET_ARCH), mips mipsel mips64 mips64el mipsn32 mipsn32el))
+ for p in `cat debian/indep_binaries debian/indep_binaries.epoch`; do \
+ p=$${p#-p*}; \
+ case "$$p" in \
+ lib64*) echo mangle $$p; sed -i -r '/^(Dep|Rec|Sug)/s/libn?32[^,]+(, *|$$)//g;/^(Dep|Rec|Sug)/s/$(p_lgcc)/$(p_l64gcc)/;/^(Dep|Rec|Sug)/s/ *, *$$//' debian/$$p/DEBIAN/control;; \
+ libn32*) echo mangle $$p; sed -i -r '/^(Dep|Rec|Sug)/s/lib64[^,]+(, *|$$)//g;/^(Dep|Rec|Sug)/s/$(p_lgcc)/$(p_ln32gcc)/;/^(Dep|Rec|Sug)/s/ *, *$$//' debian/$$p/DEBIAN/control;; \
+ esac; \
+ done
+endif
+
+ dh_installdeb $(foreach p,$(shell echo `cat debian/indep_binaries.all`),-p$(p))
+ dh_md5sums $(foreach p,$(shell echo `cat debian/indep_binaries.all`),-p$(p))
+ dh_builddeb $(foreach p,$(shell echo `cat debian/indep_binaries.all`),-p$(p))
+
+ @echo XXXXX `date -R`
+
+source diff:
+ @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
+
+binary: binary-indep binary-arch
+.PHONY: build build-indep build-arch clean binary-indep binary-arch binary
+.PRECIOUS: $(stampdir)/%-stamp debian/indep_binaries.all debian/arch_binaries.all
+.NOTPARALLEL: