diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2017-05-13 13:54:49 +0300 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2017-05-13 13:54:49 +0300 |
commit | 42156b5190f4fa150e1fab6777eb81e69d4db8c9 (patch) | |
tree | 3bf47de81cf1f89892789535a036d2d55d93a136 /debian/rules.patch | |
download | gcc-6-42156b5190f4fa150e1fab6777eb81e69d4db8c9.tar.gz |
Imported gcc-6 (6.3.0-17)debian/6.3.0-17debian
Diffstat (limited to 'debian/rules.patch')
-rw-r--r-- | debian/rules.patch | 483 |
1 files changed, 483 insertions, 0 deletions
diff --git a/debian/rules.patch b/debian/rules.patch new file mode 100644 index 0000000..5e9356e --- /dev/null +++ b/debian/rules.patch @@ -0,0 +1,483 @@ +# -*- makefile -*- +# rules to patch the unpacked files in the source directory +# --------------------------------------------------------------------------- +# various rules to unpack addons and (un)apply patches. +# - patch / apply-patches +# - unpatch / reverse-patches + +.NOTPARALLEL: + +patchdir ?= debian/patches +series_file ?= $(patchdir)/series + +# which patches should be applied? + +debian_patches = \ + svn-updates \ + libiberty-updates \ + $(if $(with_linaro_branch),gcc-linaro-revert-r247639) \ + $(if $(with_linaro_branch),gcc-linaro-revert-r246734) \ + $(if $(with_linaro_branch),gcc-linaro) \ + $(if $(with_linaro_branch),gcc-linaro-no-macros) \ + +# svn-updates \ + +ifeq ($(with_java),yes) +# debian_patches += \ +# svn-class-updates +endif + +ifneq ($(GFDL_INVARIANT_FREE),yes) + debian_patches += \ + svn-doc-updates \ + $(if $(with_linaro_branch),gcc-linaro-doc) \ + rename-info-files \ + gcc-SOURCE_DATE_EPOCH-doc \ + gcc-SOURCE_DATE_EPOCH-2-doc \ + $(if $(with_linaro_branch),,vulcan-cpu-doc) \ + gcc-fuse-ld-lld-doc \ + +# svn-doc-updates \ +# $(if $(with_linaro_branch),,svn-doc-updates) \ + +else +endif +debian_patches += \ + gcc-gfdl-build + +# boehm-gc-nocheck: seems to work on the buildds \ + +debian_patches += \ + gcc-textdomain \ + gcc-driver-extra-langs$(if $(with_linaro_branch),-linaro) + +ifneq (,$(filter $(distrelease),etch lenny squeeze wheezy dapper hardy intrepid jaunty karmic lucid)) + debian_patches += gcc-hash-style-both +else + debian_patches += gcc-hash-style-gnu +endif + +debian_patches += \ + libstdc++-pic \ + libstdc++-doclink \ + libstdc++-man-3cxx \ + libstdc++-test-installed \ + libjava-stacktrace \ + libjava-jnipath \ + libjava-sjlj \ + libjava-disable-plugin \ + alpha-no-ev4-directive \ + boehm-gc-getnprocs \ + note-gnu-stack \ + libgomp-omp_h-multilib \ + gccgo-version \ + pr47818 \ + gcc-base-version \ + libgo-testsuite \ + gcc-target-include-asm \ + libgo-revert-timeout-exp \ + libgo-setcontext-config \ + gcc-auto-build \ + kfreebsd-unwind \ + libitm-no-fortify-source \ + sparc64-biarch-long-double-128 \ + gcc-ia64-bootstrap-ignore \ + gotools-configury \ + pr66368 \ + pr67590 \ + ada-gnattools-ldflags \ + libjit-ldflags \ + gcc-SOURCE_DATE_EPOCH \ + gcc-SOURCE_DATE_EPOCH-2 \ + cmd-go-combine-gccgo-s-ld-and-ldShared-methods \ + libjava-mips64el \ + gccgo-issue16780 \ + $(if $(with_linaro_branch),,vulcan-cpu) \ + $(if $(with_linaro_branch),,vulcan-costs) \ + libffi-pax \ + libffi-race-condition \ + libgo-add-getrandom-mips-sparc \ + libgo-fix-getrandom-clone-sparc64 \ + libgo-rawClone-no_split_stack \ + libgo-rawClone-no-pt_regs \ + libgo-elf-relocations-sparc64 \ + libobjc-system-gc \ + compress-debug-check \ + pr77267 \ + pr78774 \ + CVE-2016-9840 \ + CVE-2016-9841 \ + CVE-2016-9842 \ + CVE-2016-9843 \ + libcc1-compiler-name \ + mips-pr78176-add-mlxc1-sxc1 \ + mips-loongson3a-use-fused-madd.d \ + mips-madd4 \ + gcc-fuse-ld-lld \ + pr72813 \ + pr70909 \ + pr77857 \ + pr80533 \ + pr60818 \ + +ifeq ($(libstdcxx_abi),new) + debian_patches += libstdc++-functexcept +endif + +# $(if $(filter yes, $(DEB_CROSS)),,gcc-print-file-name) \ +# libstdc++-nothumb-check \ +# TODO: update ... +# libjava-rpath \ + +hardening_patches = +ifeq ($(with_ssp)-$(with_ssp_default),yes-yes) + hardening_patches += gcc-default-ssp + hardening_patches += gcc-default-format-security + ifeq (,$(filter $(distrelease),dapper hardy lucid maverick natty oneiric precise quantal raring saucy trusty)) + hardening_patches += gcc-default-ssp-strong + endif +endif +ifneq (,$(filter $(derivative),Ubuntu)) + ifneq (,$(findstring gcc-6, $(PKGSOURCE))) + hardening_patches += \ + gcc-default-fortify-source \ + gcc-default-relro \ + testsuite-hardening-format \ + testsuite-hardening-printf-types \ + testsuite-hardening-updates \ + testsuite-glibc-warnings + ifeq ($(with_pie),yes) + hardening_patches += \ + bind_now_when_pie + else + hardening_patches += \ + ignore-pie-specs-when-not-enabled + endif + endif +else ifneq (,$(filter $(derivative),Debian)) + ifneq (,$(findstring gcc-6, $(PKGSOURCE))) +# ifneq ($(with_pie),yes) +# hardening_patches += \ +# ignore-pie-specs-when-not-enabled +# endif + endif +endif + +# FIXME 4.5: Drop and adjust symbols files +ifneq (,$(findstring 4.4, $(PKGSOURCE))) + debian_patches += pr39491 +endif + +debian_patches += ada-arm +debian_patches += ada-kfreebsd +debian_patches += ada-revert-pr63225 + +ifeq (,$(DEB_STAGE)) +# there should be no harm to always apply these, except for new GCC versions +#ifeq ($(with_ada),yes) + debian_patches += \ + ada-driver-check \ + ada-default-project-path \ + ada-library-project-files-soname + + # FIXME: needs update + #ada-symbolic-tracebacks \ + + ifeq ($(biarch64),yes) + debian_patches += \ + ada-nobiarch-check + endif + + #ifeq ($(with_libgnat),yes) + debian_patches += \ + ada-link-lib \ + ada-libgnatvsn \ + ada-libgnatprj \ + ada-gnattools-cross \ + ada-acats \ + libgnatprj-cross-hack + ifneq (,$(filter $(distrelease),lucid precise)) + debian_patches += \ + libgnatprj-link + endif + #endif + #ifeq ($(with_gnatsjlj),yes) + debian_patches += \ + ada-sjlj + #endif + + debian_patches += ada-link-shlib + debian_patches += ada-gcc-name +#endif +endif # DEB_STAGE + + +ifeq ($(with_d),yes) + debian_patches += \ + gdc-6 \ + gdc-updates \ + libphobos-zlib \ + gdc-versym-cpu \ + gdc-versym-os \ + gdc-frontend-posix \ + gdc-base-version \ + gdc-profiledbuild \ +# gdc-multiarch + ifneq ($(GFDL_INVARIANT_FREE),yes) + debian_patches += gdc-6-doc + else + debian_patches += gdc-texinfo + endif + ifeq ($(with_libphobos),yes) + debian_patches += gdc-libphobos-build + else + debian_patches += gdc-driver-nophobos + endif + ifeq (,$(filter $(DEB_TARGET_ARCH),amd64 i386)) + debian_patches += disable-gdc-tests + endif +else + debian_patches += gcc-d-lang +endif + +ifeq ($(DEB_TARGET_ARCH),alpha) + debian_patches += alpha-ieee + ifneq ($(GFDL_INVARIANT_FREE),yes) + debian_patches += alpha-ieee-doc + endif +endif + +ifeq (,$(filter $(derivative),Ubuntu)) + debian_patches += pr64735-headers + ifeq ($(DEB_TARGET_ARCH),armel) + debian_patches += pr64735 + endif +endif + +ifneq (,$(findstring $(DEB_TARGET_ARCH),arm armel armhf)) + debian_patches += libjava-armel-unwind +endif + +ifeq ($(DEB_TARGET_ARCH),armhf) + debian_patches += gcj-arm-mode +else ifeq ($(DEB_TARGET_ARCH),armel) + ifneq (,$(filter $(distrelease),lucid maverick natty oneiric precise)) + debian_patches += gcj-arm-mode + endif +endif + +ifneq (,$(findstring mips, $(DEB_TARGET_ARCH))) + debian_patches += pr65618 +endif + +ifeq ($(DEB_TARGET_ARCH),powerpcspe) + debian_patches += powerpc_remove_many + debian_patches += powerpc_nofprs +endif + +#debian_patches += link-libs + +# all patches below this line are applied for gcc-snapshot builds as well + +ifeq ($(single_package),yes) + debian_patches = +endif + +debian_patches += \ + sys-auxv-header \ + libcilkrts-targets \ + +ifeq ($(with_ibm_branch),yes) + debian_patches += ibm-branch +endif + +ifeq ($(with_softfloat),yes) + debian_patches += arm-multilib-soft-float +else ifeq ($(multilib),yes) + ifneq (,$(filter $(distrelease),lucid maverick natty oneiric precise)) + debian_patches += arm-multilib-softfp$(if $(filter yes,$(DEB_CROSS)),-cross) + else + debian_patches += arm-multilib-soft$(if $(filter yes,$(DEB_CROSS)),-cross) + endif +endif +debian_patches += arm-multilib-defaults + +ifeq ($(DEB_CROSS),yes) + debian_patches += cross-fixes + debian_patches += cross-install-location + ifeq ($(with_d),yes) + debian_patches += gdc-cross-install-location + endif +endif + +ifeq ($(DEB_TARGET_ARCH_OS),hurd) + debian_patches += hurd-changes + debian_patches += \ + src_gcc_config_i386_gnu.h \ + src_libgo_configure.ac \ + src_libgo_runtime_go-caller.c \ + src_libgo_go_net_sendfile_gnu.go \ + src_libgo_go_net_sock_gnu.go \ + src_libgo_go_net_sockopt_gnu.go \ + src_libgo_go_net_sockoptip_gnu.go \ + src_libgo_go_syscall_libcall_gnu_386.go \ + src_libgo_go_syscall_libcall_gnu.go \ + src_libgo_go_syscall_libcall_posix-1.go \ + src_libgo_go_syscall_socket_gnu.go \ + src_libgo_go_syscall_wait.c \ + src_libgo_Makefile.am \ + src_libgo_Makefile.in \ + src_libgo_mksysinfo.sh \ + src_libgo_runtime_getncpu-gnu.c \ + src_libgo_runtime_netpoll.goc \ + src_libgo_go_os_os_test.go \ + src_libgo_go_syscall_syscall_gnu_test.go \ + src_libgo_testsuite_gotest \ + add-gnu-to-libgo-headers +endif + +debian_patches += gcc-ice-dump +debian_patches += gcc-ice-apport +debian_patches += skip-bootstrap-multilib +debian_patches += libjava-fixed-symlinks +debian_patches += libffi-ro-eh_frame_sect +debian_patches += libffi-mips + +# sigaction on sparc changed between glibc 2.19 and 2.21 +ifeq (,$(filter 2.1%, $(shell dpkg-query -l libc-bin | awk '/^.i/ {print $$3}'))) + debian_patches += pr67899 +endif + +debian_patches += gcc-multiarch +ifeq ($(with_multiarch_lib),yes) + ifneq ($(single_package),yes) + debian_patches += libjava-multiarch + endif +endif +debian_patches += libjava-nobiarch-check +debian_patches += config-ml +ifneq ($(single_package),yes) + ifeq ($(with_multiarch_cxxheaders),yes) + debian_patches += g++-multiarch-incdir + debian_patches += canonical-cpppath + endif +endif +ifneq (,$(filter $(build_type), build-cross cross-build-cross)) + debian_patches += cross-no-locale-include + debian_patches += cross-biarch + ifeq ($(with_libphobos),yes) + debian_patches += gdc-cross-biarch + endif +endif +debian_patches += gcc-multilib-multiarch + +ifneq (,$(filter $(derivative),Ubuntu)) + ifeq (,$(filter $(distrelease),dapper hardy intrepid jaunty karmic lucid maverick)) + debian_patches += gcc-as-needed + ifeq (,$(filter $(distrelease),dapper hardy intrepid jaunty karmic lucid maverick precise trusty utopic vivid wily xenial yakkety)) + debian_patches += gcc-as-needed-gold + endif + endif +else # Debian + #debian_patches += gcc-as-needed +endif + +debian_patches += libgomp-kfreebsd-testsuite +debian_patches += go-testsuite + +# Ada patches needed for both the stable package and snapshot builds +debian_patches += ada-749574 +debian_patches += ada-mips +ifeq ($(DEB_TARGET_ARCH),m68k) + debian_patches += ada-m68k + ifeq ($(with_ada),yes) + debian_patches += m68k-revert-pr45144 + endif +endif + +# don't remove, this is regularly overwritten, see PR sanitizer/63958. +#debian_patches += libasan-sparc + +series_stamp = $(stampdir)/02-series-stamp +series: $(series_stamp) +$(series_stamp): + echo $(strip $(addsuffix .diff,$(debian_patches))) \ + | sed -r 's/ +/ /g' | tr " " "\n" > $(series_file) +ifneq (,$(strip $(hardening_patches))) + ifneq ($(trunk_build),yes) + echo $(strip $(addsuffix .diff,$(hardening_patches))) \ + | sed -r 's/ +/ /g' | tr " " "\n" >> $(series_file) + endif +endif + sed -r 's/(.)$$/\1 -p1/' -i $(series_file) + touch $@ + +autoconf_files = $(filter-out src/libjava/classpath/m4/acinclude.m4, \ + $(shell lsdiff --no-filename $(foreach patch,$(debian_patches),$(patchdir)/$(patch).diff) \ + | sed -rn '/(configure\.ac|acinclude.m4)$$/s:[^/]+/src/:src/:p' | sort -u)) +autoconf_dirs = $(sort $(dir $(autoconf_files))) + +automake_files = $(addprefix ./, $(filter-out none, \ + $(shell lsdiff --no-filename $(foreach patch,$(debian_patches),$(patchdir)/$(patch).diff) \ + | sed -rn '/Makefile\.(am|in)$$/s:[^/]+/src/:src/:p' | sort -u))) + +autoconf_version = 2.64 +ifeq ($(trunk_build),yes) + # The actual version depends on the build-dependencies set by + # variable AUTO_BUILD_DEP in rules.conf. Here, we assume the + # correct version is installed. + #autoconf_version = +endif + +# FIXME: the auto* stuff is done every time for every subdir, which +# leads to build errors. Idea: record the auto* calls in the patch +# files (AUTO <dir> <auto-command with options>) and run them separately, +# maybe only once per directory). +$(patch_stamp): $(unpack_stamp) $(series_stamp) + sync + QUILT_PATCHES=$(patchdir) \ + quilt --quiltrc /dev/null push -a || test $$? = 2 + +ifneq (,$(filter svn-updates, $(debian_patches))) + awk '/^EOF/ {exit} p==1 {print} /EOF$$/ {p=1}' \ + $(patchdir)/svn-updates.diff > src/LAST_UPDATED +endif + +ifneq (,$(filter libgo-elf-relocations-sparc64, $(debian_patches))) + uudecode $(patchdir)/../go-relocation-test-gcc620-sparc64.obj.uue +endif + + : # only needed when we have changes, and currently fails with autogen 5.18 + : #cd $(srcdir)/fixincludes && ./genfixes + + sync + echo -n $(autoconf_dirs) | xargs -d ' ' -L 1 -P $(USE_CPUS) -I{} \ + sh -c 'echo "Running autoconf$(autoconf_version) in {}..." ; \ + cd $(CURDIR)/{} && \ + AUTOM4TE=/usr/bin/autom4te$(autoconf_version) autoconf$(autoconf_version)' + + for i in $(debian_patches) $(hardening_patches); do \ + echo -e "\n$$i:" >> pxxx; \ + sed -n 's/^# *DP: */ /p' $(patchdir)/$$i.diff >> pxxx; \ + done +# -$(srcdir)/move-if-change pxxx $@ + mv pxxx $@ + +unpatch: +ifneq (,$(filter libgo-elf-relocations-sparc64, $(debian_patches))) + # uudecoded in $(patch_stamp) rule + rm -f $(srcdir)/libgo/go/debug/elf/testdata/go-relocation-test-gcc620-sparc64.obj +endif + + QUILT_PATCHES=$(patchdir) \ + quilt --quiltrc /dev/null pop -a -R || test $$? = 2 + rm -rf .pc + +update-patches: $(series_stamp) + export QUILT_PATCHES=$(patchdir); \ + export QUILT_REFRESH_ARGS="--no-timestamps --no-index -pab"; \ + export QUILT_DIFF_ARGS="--no-timestamps --no-index -pab"; \ + while quilt push; do quilt refresh; done + +patch: $(patch_stamp) +.PHONY: patch series quilt autotools |