1
0

initial import from Debian

version: 14.3.0-5
commit: bee30ab0fff2fd6af94c62376c8aa4221bb831e0
This commit is contained in:
2025-08-11 15:00:09 +03:00
commit c2c1923c7b
274 changed files with 101988 additions and 0 deletions

392
debian/rules.patch vendored Normal file
View File

@@ -0,0 +1,392 @@
# -*- 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 = \
git-updates \
# git-updates \
ifneq ($(GFDL_INVARIANT_FREE),yes)
debian_patches += \
rename-info-files \
# git-doc-updates \
else
endif
debian_patches += \
gcc-gfdl-build
# libstdc++-pic \
debian_patches += \
0004-Ada-merge-all-timeval-and-timespec-definitions-and-c \
0009-Ada-select-64-bits-time-functions-from-GNU-libc-when \
gcc-textdomain \
gcc-distro-specs \
gcc-driver-extra-langs \
gcc-hash-style-gnu \
libstdc++-doclink \
libstdc++-man-3cxx \
libstdc++-test-installed \
libstdc++-doxygen-SOURCE_DATE_EPOCH \
alpha-no-ev4-directive \
note-gnu-stack \
libgomp-omp_h-multilib \
libgo-testsuite \
libgo-cleanfiles \
gcc-target-include-asm \
libgo-revert-timeout-exp \
libgo-setcontext-config \
gcc-auto-build \
libitm-no-fortify-source \
sparc64-biarch-long-double-128 \
pr66368 \
pr67590 \
libffi-race-condition \
cuda-float128 \
t-libunwind-elf-Wl-z-defs \
gcc-force-cross-layout \
gcc-search-prefixed-as-ld \
pr87808 \
pr94253 \
gcc-arm-disable-guality-tests \
musl-ssp \
pr79724-revert \
pr104290-followup \
arc-stddef \
pr107475 \
gccrs-bootstrap-mipsel \
hppa64-libgcov-fallback \
libsanitizer-timebits \
gcc-vhdl \
libgo-hurd-syscall \
gcc-no-multilib-dejagnu \
libphobos-unittest \
pr118045 \
binutils-pr32491 \
# see https://bugs.debian.org/1108322
ifneq (,$(filter $(DEB_TARGET_ARCH),hppa m68k powerpc))
debian_patches += ada-tv_nsec-size
endif
ifneq (,$(newlib_tarball))
debian_patches +=
endif
ifneq (,$(filter $(distrelease),lunar))
debian_patches += rust-enabled
endif
ifneq (,$(filter $(distrelease), jessie stretch buster bullseye precise trusty xenial bionic focal groovy hirsute))
debian_patches += dwarf5-revert-default
ifneq ($(GFDL_INVARIANT_FREE),yes)
debian_patches += dwarf5-revert-default-doc
endif
endif
# TODO:
# pr81829 \
# $(if $(filter yes, $(DEB_CROSS)),,gcc-print-file-name) \
# libstdc++-nothumb-check \
hardening_patches =
ifneq (,$(filter $(derivative),Ubuntu))
ifneq (,$(findstring gcc-14, $(PKGSOURCE)))
hardening_patches += \
gcc-distro-specs-ubuntu-doc \
testsuite-hardening-format \
testsuite-hardening-printf-types \
testsuite-hardening-updates \
testsuite-glibc-warnings
endif
else ifneq (,$(filter $(derivative),Debian))
ifneq (,$(findstring gcc-14, $(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
# Patches for non-core languages.
ifeq ($(GFDL_INVARIANT_FREE),yes)
debian_patches += gm2-texinfo
endif
# Most of the time, it would be safe to apply them whether the
# language is selected or not. But when working on a new GCC version,
# it is convenient to concentrate on core languages, and refresh them
# later when working on the specific language.
ifeq ($(with_ada),yes)
debian_patches += ada-gcc-name
debian_patches += ada-gnat-name
debian_patches += ada-verbose
debian_patches += ada-link-lib
debian_patches += ada-gnattools-cross
ifeq ($(with_gnatsjlj),yes)
debian_patches += ada-sjlj
endif
debian_patches += ada-lib-info-source-date-epoch
debian_patches += ada-749574
debian_patches += ada-perl-shebang
debian_patches += ada-hurd-amd64
debian_patches += ada-numerics-arrays-eigenv-revert-a210011
endif
# FIXME: still relevant?
# gdc-multiarch
ifeq ($(GFDL_INVARIANT_FREE),yes)
debian_patches += gdc-texinfo
endif
ifeq (,$(filter $(DEB_TARGET_ARCH),amd64 i386 armhf))
debian_patches += disable-gdc-tests
endif
debian_patches += alpha-ieee
ifneq ($(GFDL_INVARIANT_FREE),yes)
debian_patches += alpha-ieee-doc
endif
# see https://bugs.debian.org/1107416
ifeq ($(DEB_TARGET_ARCH),m68k)
debian_patches += gcc-m68k-no-fold-mem-offsets
endif
ifneq ($(GFDL_INVARIANT_FREE),yes)
debian_patches += gcc-m68k-no-fold-mem-offsets-doc
endif
# all patches below this line are applied for gcc-snapshot builds as well
ifneq (,$(findstring gcc-snapshot, $(PKGSOURCE)))
debian_patches =
endif
debian_patches += \
gdc-dynamic-link-phobos \
ia64-disable-selective-scheduling \
libstdc++-pythondir \
gcc-verbose-lto-link \
ifeq ($(with_ada),yes)
debian_patches += \
ada-armel-libatomic
endif
ifeq ($(with_ibm_branch),yes)
debian_patches += ibm-branch
endif
ifeq ($(with_softfloat),yes)
debian_patches += arm-multilib-soft-float
endif
ifneq (,$(filter $(distrelease), precise trusty xenial bionic focal groovy hirsute))
debian_patches += arm-multilib-defaults
endif
ifneq (,$(filter $(build_type), build-cross cross-build-cross))
debian_patches += cross-fixes
debian_patches += cross-install-location
endif
debian_patches += hurd-multiarch
debian_patches += hurd-multilib-multiarch
ifeq ($(DEB_TARGET_ARCH_OS),hurd)
debian_patches += hurd-changes
# FIXME: #1005297, PR 104660
debian_patches += libgo-hurd-hack
endif
debian_patches += gcc-ice-dump
debian_patches += gcc-ice-apport
debian_patches += skip-bootstrap-multilib
debian_patches += libffi-ro-eh_frame_sect
# 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}')))
# keep it, gets remove in GCC from time to time
#debian_patches += pr67899
endif
debian_patches += gcc-multiarch
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
endif
debian_patches += gcc-multilib-multiarch
ifneq ($(trunk_build),yes)
ifneq (,$(filter $(derivative),Ubuntu))
debian_patches += gcc-as-needed
ifeq (,$(filter $(distrelease), precise trusty xenial))
debian_patches += gcc-as-needed-gold
endif
else # Debian
ifeq (,$(filter $(distrelease), jessie stretch))
debian_patches += gcc-as-needed gcc-as-needed-gold
endif
endif
endif
debian_patches += go-testsuite
# 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 = $(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.69
ifneq (,$(filter $(distrelease),stretch buster trusty xenial bionic focal groovy))
autoconf_version =
endif
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_PATCH_OPTS='-E' \
quilt --quiltrc /dev/null push -a || test $$? = 2
: # 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)/{} && rm -f configure && \
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 $@
: # generate the distro-defaults.h header
rm -f $(srcdir)/gcc/distro-defaults.h
( \
echo '/* distro specific configuration injected by the distro build. */'; \
echo ''; \
echo '#ifndef ACCEL_COMPILER' \
) >> $(srcdir)/gcc/distro-defaults.h
ifeq ($(with_async_unwind),yes)
echo '#define DIST_DEFAULT_ASYNC_UNWIND 1' \
>> $(srcdir)/gcc/distro-defaults.h
endif
ifeq ($(with_ssp)-$(with_ssp_default),yes-yes)
echo '#define DIST_DEFAULT_SSP 1' \
>> $(srcdir)/gcc/distro-defaults.h
ifeq (,$(filter $(distrelease), precise trusty))
echo '#define DIST_DEFAULT_SSP_STRONG 1' \
>> $(srcdir)/gcc/distro-defaults.h
endif
echo '#define DIST_DEFAULT_FORMAT_SECURITY 1' \
>> $(srcdir)/gcc/distro-defaults.h
endif
ifneq (,$(filter $(derivative),Ubuntu))
ifneq (,$(filter $(distrelease),lucid precise trusty xenial bionic focal jammy kinetic lunar mantic))
( \
echo '#define DIST_DEFAULT_FORTIFY_SOURCE 2'; \
echo '#define DIST_DEFAULT_FORTIFY_SOURCE_S "2"' \
) >> $(srcdir)/gcc/distro-defaults.h
else
( \
echo '#define DIST_DEFAULT_FORTIFY_SOURCE 3'; \
echo '#define DIST_DEFAULT_FORTIFY_SOURCE_S "3"' \
) >> $(srcdir)/gcc/distro-defaults.h
endif
echo '#define DIST_DEFAULT_RELRO 1' \
>> $(srcdir)/gcc/distro-defaults.h
echo '#define DIST_DEFAULT_BIND_NOW 1' \
>> $(srcdir)/gcc/distro-defaults.h
ifeq ($(with_stack_clash),yes)
echo '#define DIST_DEFAULT_STACK_CLASH 1' \
>> $(srcdir)/gcc/distro-defaults.h
endif
ifeq ($(with_cf_protection),yes)
echo '#define DIST_DEFAULT_CF_PROTECTION 1' \
>> $(srcdir)/gcc/distro-defaults.h
endif
else ifneq (,$(filter $(derivative),Debian))
ifneq (,$(findstring gcc-14, $(PKGSOURCE)))
endif
endif
ifeq ($(with_timet64),yes)
echo '#define DIST_DEFAULT_TIMET64 1' \
>> $(srcdir)/gcc/distro-defaults.h
endif
echo '#endif' \
>> $(srcdir)/gcc/distro-defaults.h
mv pxxx $@
unpatch:
QUILT_PATCHES=$(patchdir) \
quilt --quiltrc /dev/null pop -a -R || test $$? = 2
rm -rf .pc
update-patches: $(series_stamp)
export QUILT_PATCHES=$(patchdir); \
quilt pop -a; \
export QUILT_REFRESH_ARGS="--no-timestamps --no-index -pab"; \
export QUILT_DIFF_ARGS="--no-timestamps --no-index -pab"; \
while quilt push; do quilt refresh --no-timestamps --no-index -pab; done
patch: $(patch_stamp)
.PHONY: patch series quilt autotools