aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2021-09-13 10:37:49 -0700
committerIan Lance Taylor <iant@golang.org>2021-09-13 10:37:49 -0700
commite252b51ccde010cbd2a146485d8045103cd99533 (patch)
treee060f101cdc32bf5e520de8e5275db9d4236b74c /contrib
parentf10c7c4596dda99d2ee872c995ae4aeda65adbdf (diff)
parent104c05c5284b7822d770ee51a7d91946c7e56d50 (diff)
downloadgcc-e252b51ccde010cbd2a146485d8045103cd99533.zip
gcc-e252b51ccde010cbd2a146485d8045103cd99533.tar.gz
gcc-e252b51ccde010cbd2a146485d8045103cd99533.tar.bz2
Merge from trunk revision 104c05c5284b7822d770ee51a7d91946c7e56d50.
Diffstat (limited to 'contrib')
-rw-r--r--contrib/ChangeLog244
-rw-r--r--contrib/config-list.mk6
-rwxr-xr-xcontrib/download_prerequisites63
-rwxr-xr-xcontrib/gcc-changelog/git_check_commit.py9
-rwxr-xr-xcontrib/gcc-changelog/git_commit.py87
-rwxr-xr-xcontrib/gcc-changelog/git_email.py47
-rwxr-xr-xcontrib/gcc-changelog/git_repository.py7
-rwxr-xr-xcontrib/gcc-changelog/git_update_version.py14
-rwxr-xr-xcontrib/gcc-changelog/test_email.py42
-rw-r--r--contrib/gcc-changelog/test_patches.txt525
-rwxr-xr-xcontrib/gcc-git-customization.sh2
-rwxr-xr-xcontrib/gcc_update25
-rwxr-xr-xcontrib/gen_autofdo_event.py54
-rwxr-xr-xcontrib/gennews4
-rwxr-xr-xcontrib/git-commit-mklog.py59
-rwxr-xr-xcontrib/mklog.py130
-rwxr-xr-xcontrib/prepare-commit-msg2
-rw-r--r--contrib/prerequisites.md52
-rw-r--r--contrib/prerequisites.sha5122
-rwxr-xr-xcontrib/test_mklog.py35
-rwxr-xr-xcontrib/texi2pod.pl1
-rwxr-xr-xcontrib/update-copyright.py4
-rw-r--r--contrib/vimrc2
23 files changed, 934 insertions, 432 deletions
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index acf530e..73ee9d5 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,247 @@
+2021-09-06 Serge Belyshev <belyshev@depni.sinp.msu.ru>
+
+ * gcc_update: Derive human readable name for HEAD using git describe
+ like "git gcc-descr" with short commit hash. Drop "revision" from
+ gcc/REVISION.
+
+2021-08-30 Andrew Pinski <apinski@marvell.com>
+
+ * download_prerequisites (md5_check): Replace == inside
+ test with = to be more portable.
+
+2021-08-26 Martin Liska <mliska@suse.cz>
+
+ * mklog.py: Use file.{source,target}_file for proper rename
+ handling.
+
+2021-08-24 Andrew Pinski <apinski@marvell.com>
+
+ PR other/82704
+ * download_prerequisites: Fix issues with --md5 and
+ --sha512 options.
+
+2021-08-18 Martin Liska <mliska@suse.cz>
+
+ * gcc-git-customization.sh: Wrap $@ in quotes.
+ * git-commit-mklog.py: Add new argument --co.
+ * mklog.py: Skip the Co-Authored-By lines.
+
+2021-08-10 Martin Liska <mliska@suse.cz>
+
+ * mklog.py: Support additional PRs without PR prefix.
+
+2021-08-03 Martin Liska <mliska@suse.cz>
+
+ * gcc-changelog/git_update_version.py: Ignore problematic
+ commit.
+
+2021-07-20 Richard Earnshaw <rearnsha@arm.com>
+
+ * vimrc (textwidth): Change non-gitcommit length to 79.
+
+2021-07-02 Eugene Rozenfeld <erozen@microsoft.com>
+
+ * gen_autofdo_event.py: handle stepping, non-working PEBS
+
+2021-06-28 Martin Liska <mliska@suse.cz>
+
+ * mklog.py: Handle correctly long lines.
+ * test_mklog.py: Test it.
+
+2021-06-23 Martin Liska <mliska@suse.cz>
+
+ * gcc-git-customization.sh: Use the new wrapper.
+ * git-commit-mklog.py: New file.
+ * prepare-commit-msg: Support GCC_MKLOG_ARGS.
+
+2021-06-22 Martin Liska <mliska@suse.cz>
+
+ * mklog.py: Fix flake8 issue.
+
+2021-06-21 Tobias Burnus <tobias@codesourcery.com>
+ Martin Sebor <msebor@redhat.com>
+
+ * mklog.py (bugzilla_url): Fetch also component.
+ (pr_filename_regex): New.
+ (get_pr_titles): Update PR string with correct format and component.
+ (generate_changelog): Take additional PRs; extract PR from the
+ filename.
+ (__main__): Add -b/--pr-numbers argument.
+ * test_mklog.py (EXPECTED4): Update to expect a PR for the new file.
+
+2021-06-17 Jason Merrill <jason@redhat.com>
+
+ * mklog.py: Add an initial component: [PRnnnnn] line when
+ we have a PR.
+
+2021-06-13 Tobias Burnus <tobias@codesourcery.com>
+
+ * gcc-changelog/git_commit.py (pr_regex): Add ?P<pr> for group('pr').
+ (subject_pr_regex, subject_pr2_regex): New.
+ (GitInfo.__init__, GitCommit.parse_changelog): Check subject PRs.
+ * gcc-changelog/git_email.py (SUBJECT_PREFIX, subject_patch_regex): New.
+ (GitEmail.__init__): Parse 'Subject:' and pass it to GitInfo.
+ * gcc-changelog/test_email.py (test_pr_only_in_subject,
+ test_wrong_pr_comp_in_subject, test_copyright_years): New.
+ * gcc-changelog/test_patches.txt (0030-PR-c-92746, pr-check1.patch):
+ Update to avoid triggering the new check.
+ (0001-rs6000-Support-doubleword, pr-wrong-comp.patch,
+ copyright-years.patch): New.
+
+2021-06-11 Martin Liska <mliska@suse.cz>
+
+ * gcc-changelog/git_update_version.py: Ignore commit that
+ violates rules and was somehow pushed.
+
+2021-05-25 Jakub Jelinek <jakub@redhat.com>
+
+ * update-copyright.py: Add c++tools.
+
+2021-05-24 Martin Liska <mliska@suse.cz>
+
+ * gcc-changelog/git_commit.py: Add note that ChangeLog entries
+ are added automatically.
+ * gcc-changelog/test_email.py: Update test.
+
+2021-05-18 Jonathan Wakely <jwakely@redhat.com>
+
+ * gcc-changelog/git_email.py: Remove use of non-strict mode.
+
+2021-05-17 Richard Biener <rguenther@suse.de>
+
+ * download_prerequisites: Update mpfr version to 3.1.6.
+ * prerequisites.md5: Update.
+ * prerequisites.sha512: Likewise.
+
+2021-05-17 Richard Biener <rguenther@suse.de>
+
+ Revert:
+ 2021-05-14 Martin Liska <mliska@suse.cz>
+
+ * download_prerequisites: Use version 4.1.0.
+
+2021-05-14 Martin Liska <mliska@suse.cz>
+
+ * download_prerequisites: Use version 4.1.0.
+
+2021-05-14 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc-changelog/git_update_version.py: Remove releases/gcc-8 from
+ active_refs.
+
+2021-05-14 Martin Liska <mliska@suse.cz>
+
+ * gcc-changelog/git_commit.py: Support Co-Authored-By before
+ a first ChangeLog entry.
+
+2021-05-13 Martin Liska <mliska@suse.cz>
+
+ * mklog.py: Put PR entries before all ChangeLog entries
+ (will be added to all ChangeLog locations by Daily bump script).
+ * test_mklog.py: Test the new behavior.
+
+2021-05-12 Martin Liska <mliska@suse.cz>
+
+ * gcc-changelog/git_commit.py: Simplify needle lookup.
+ * gcc-changelog/git_update_version.py: Pass ref_name to
+ parse_git_revisions.
+
+2021-05-11 Martin Liska <mliska@suse.cz>
+
+ * gcc_update: Remove libhsail-rt folder.
+ * update-copyright.py: Likewise.
+
+2021-05-11 Martin Liska <mliska@suse.cz>
+
+ * gcc-changelog/git_check_commit.py: Remove --non-strict-mode.
+ * gcc-changelog/git_commit.py: Remove strict mode.
+ * gcc-changelog/git_email.py: Likewise.
+ * gcc-changelog/git_repository.py: Likewise.
+ * gcc-changelog/test_email.py: Likewise.
+ * gcc-changelog/test_patches.txt: Update patches so that they
+ don't contain a ChangeLog file changes.
+
+2021-05-11 Martin Liska <mliska@suse.cz>
+
+ * gcc-changelog/git_commit.py: Remove ChangeLog locations
+ based on ref_name.
+ * gcc-changelog/git_repository.py: Likewise.
+
+2021-05-10 Martin Liska <mliska@suse.cz>
+
+ * gcc-changelog/git_email.py: Remove newlines when --help
+ is used.
+
+2021-05-10 Tobias Burnus <tobias@codesourcery.com>
+
+ * gcc-changelog/git_check_commit.py (__Main__): State in --help
+ the default value for 'revisions'.
+ * gcc-changelog/git_email.py (show_help): Add.
+ (__main__): Handle -h and --help.
+
+2021-05-10 Tobias Burnus <tobias@codesourcery.com>
+
+ * gcc-changelog/git_commit.py (Error.__repr__): Add space after the colon.
+ (GitCommit.check_mentioned_files): Check whether the same file has been
+ specified multiple times.
+ * gcc-changelog/test_email.py (TestGccChangelog.test_multi_same_file): New.
+ * gcc-changelog/test_patches.txt (0001-OpenMP-Fix-SIMT): New test.
+
+2021-05-10 Martin Liska <mliska@suse.cz>
+
+ Revert:
+ 2021-05-10 Martin Liska <mliska@suse.cz>
+
+ * gcc-changelog/git_commit.py: Remove components that will be
+ removed.
+
+2021-05-10 Martin Liska <mliska@suse.cz>
+
+ * gcc_update: Start using reload.c instead of version.c.
+
+2021-05-10 Martin Liska <mliska@suse.cz>
+
+ * gcc-changelog/git_commit.py: Remove components that will be
+ removed.
+
+2021-04-27 Jakub Jelinek <jakub@redhat.com>
+
+ * gennews (files): Add files for GCC 10 and GCC 11.
+
+2021-04-22 David Edelsohn <dje.gcc@gmail.com>
+
+ * config-list.mk: Remove rs6000-ibm-aix6.1.
+ Rename rs6000-ibm-aix7.1 to powerpc-ibm-aix7.1.
+ Add powerpc-ibm-aix7.2.
+
+2021-04-20 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc-changelog/git_update_version.py (active_refs): Add
+ releases/gcc-11.
+
+2021-04-12 Martin Liska <mliska@suse.cz>
+
+ * gcc-changelog/git_commit.py: Do not allow space in long lines.
+
+2021-04-12 Martin Liska <mliska@suse.cz>
+
+ * gcc-changelog/git_commit.py: Support long filenames
+ in entries.
+ * gcc-changelog/test_email.py: Test it.
+ * gcc-changelog/test_patches.txt: Likewise.
+
+2021-03-23 Martin Liska <mliska@suse.cz>
+
+ * mklog.py: Fix broken tests.
+
+2021-03-22 Martin Liska <mliska@suse.cz>
+
+ * mklog.py: Add --directory argument.
+
+2021-03-19 Matthias Klose <doko@ubuntu.com>
+
+ * texi2pod.pl: Substitute @tie{} with a space for the man pages.
+
2021-03-16 Martin Liska <mliska@suse.cz>
* gcc-changelog/git_update_version.py: Skip one problematic
diff --git a/contrib/config-list.mk b/contrib/config-list.mk
index 8a4ce8a..031e4db 100644
--- a/contrib/config-list.mk
+++ b/contrib/config-list.mk
@@ -40,7 +40,7 @@ LIST = aarch64-elf aarch64-linux-gnu aarch64-rtems \
arm-symbianelf avr-elf \
bfin-elf bfin-uclinux bfin-linux-uclibc bfin-rtems bfin-openbsd \
bpf-unknown-none \
- c6x-elf c6x-uclinux cr16-elf cris-elf \
+ c6x-elf c6x-uclinux cr16-elfOPT-enable-obsolete cris-elf \
csky-elf csky-linux-gnu \
epiphany-elf epiphany-elfOPT-with-stack-offset=16 fido-elf \
fr30-elf frv-elf frv-linux ft32-elf h8300-elf hppa-linux-gnu \
@@ -57,7 +57,7 @@ LIST = aarch64-elf aarch64-linux-gnu aarch64-rtems \
i686-cygwinOPT-enable-threads=yes i686-mingw32crt ia64-elf \
ia64-freebsd6 ia64-linux ia64-hpux ia64-hp-vms iq2000-elf lm32-elf \
lm32-rtems lm32-uclinux m32c-rtems m32c-elf m32r-elf m32rle-elf \
- m32r-linux m32rle-linux m68k-elf m68k-netbsdelf \
+ m68k-elf m68k-netbsdelf \
m68k-openbsd m68k-uclinux m68k-linux m68k-rtems \
mcore-elf microblaze-linux microblaze-elf \
mips-netbsd \
@@ -84,7 +84,7 @@ LIST = aarch64-elf aarch64-linux-gnu aarch64-rtems \
powerpcle-eabisim powerpcle-eabi \
pru-elf \
riscv32-unknown-linux-gnu riscv64-unknown-linux-gnu \
- rs6000-ibm-aix6.1 rs6000-ibm-aix7.1 \
+ powerpc-ibm-aix7.1 powerpc-ibm-aix7.2 \
rl78-elf rx-elf s390-linux-gnu s390x-linux-gnu s390x-ibm-tpf sh-elf \
shle-linux sh-netbsdelf sh-superh-elf \
sh-rtems sh-wrs-vxworks sparc-elf \
diff --git a/contrib/download_prerequisites b/contrib/download_prerequisites
index 7d0c4b5..11c283e 100755
--- a/contrib/download_prerequisites
+++ b/contrib/download_prerequisites
@@ -28,7 +28,7 @@ version='(unversioned)'
# `contrib/prerequisites.md5` with the new checksums.
gmp='gmp-6.1.0.tar.bz2'
-mpfr='mpfr-3.1.4.tar.bz2'
+mpfr='mpfr-3.1.6.tar.bz2'
mpc='mpc-1.0.3.tar.gz'
isl='isl-0.18.tar.bz2'
@@ -46,18 +46,6 @@ verify=1
force=0
OS=$(uname)
-case $OS in
- "Darwin"|"FreeBSD"|"DragonFly"|"AIX")
- chksum='shasum -a 512 --check'
- ;;
- "OpenBSD")
- chksum='sha512 -c'
- ;;
- *)
- chksum='sha512sum -c'
- ;;
-esac
-
if type wget > /dev/null ; then
fetch='wget'
else
@@ -113,7 +101,7 @@ do
done
unset arg
-# Emulate Linux's 'md5 --check' on macOS
+# Emulate Linux's 'md5sum --check' on macOS
md5_check() {
# Store the standard input: a line from contrib/prerequisites.md5:
md5_checksum_line=$(cat -)
@@ -125,7 +113,7 @@ md5_check() {
md5_checksum_output=$(md5 -r "${file_to_check}")
# Grab the text before the first space
md5_checksum_detected="${md5_checksum_output%% *}"
- [ "${md5_checksum_expected}" == "${md5_checksum_detected}" ] \
+ [ "${md5_checksum_expected}" = "${md5_checksum_detected}" ] \
|| die "Cannot verify integrity of possibly corrupted file ${file_to_check}"
echo "${file_to_check}: OK"
}
@@ -162,26 +150,10 @@ do
verify=0
;;
--sha512)
- case $OS in
- "Darwin")
- chksum='shasum -a 512 --check'
- ;;
- *)
- chksum='sha512sum --check'
- ;;
- esac
chksum_extension='sha512'
verify=1
;;
--md5)
- case $OS in
- "Darwin")
- chksum='md5_check'
- ;;
- *)
- chksum='md5 --check'
- ;;
- esac
chksum_extension='md5'
verify=1
;;
@@ -212,6 +184,35 @@ done
[ "x${argnext}" = x ] || die "Missing argument for option --${argnext}"
unset arg argnext
+case $chksum_extension in
+ sha512)
+ case $OS in
+ "Darwin"|"FreeBSD"|"DragonFly"|"AIX")
+ chksum='shasum -a 512 --check'
+ ;;
+ "OpenBSD")
+ chksum='sha512 -c'
+ ;;
+ *)
+ chksum='sha512sum -c'
+ ;;
+ esac
+ ;;
+ md5)
+ case $OS in
+ "Darwin")
+ chksum='md5_check'
+ ;;
+ *)
+ chksum='md5sum -c'
+ ;;
+ esac
+ ;;
+ *)
+ die "Unkown checksum $chksum_extension"
+ ;;
+esac
+
[ -e ./gcc/BASE-VER ] \
|| die "You must run this script in the top-level GCC source directory"
diff --git a/contrib/gcc-changelog/git_check_commit.py b/contrib/gcc-changelog/git_check_commit.py
index 935425e..9a4c5d4 100755
--- a/contrib/gcc-changelog/git_check_commit.py
+++ b/contrib/gcc-changelog/git_check_commit.py
@@ -23,19 +23,16 @@ from git_repository import parse_git_revisions
parser = argparse.ArgumentParser(description='Check git ChangeLog format '
'of a commit')
parser.add_argument('revisions', default='HEAD', nargs='?',
- help='Git revisions (e.g. hash~5..hash or just hash)')
+ help='Git revisions (e.g. hash~5..hash or just hash) - '
+ 'if not specified: HEAD')
parser.add_argument('-g', '--git-path', default='.',
help='Path to git repository')
parser.add_argument('-p', '--print-changelog', action='store_true',
help='Print final changelog entires')
-parser.add_argument('-n', '--non-strict-mode', action='store_true',
- help='Use non-strict mode (allow changes in ChangeLog and '
- 'other automatically updated files).')
args = parser.parse_args()
retval = 0
-for git_commit in parse_git_revisions(args.git_path, args.revisions,
- not args.non_strict_mode):
+for git_commit in parse_git_revisions(args.git_path, args.revisions):
res = 'OK' if git_commit.success else 'FAILED'
print('Checking %s: %s' % (git_commit.original_info.hexsha, res))
if git_commit.success:
diff --git a/contrib/gcc-changelog/git_commit.py b/contrib/gcc-changelog/git_commit.py
index 43fa7f4..d1646bd 100755
--- a/contrib/gcc-changelog/git_commit.py
+++ b/contrib/gcc-changelog/git_commit.py
@@ -19,8 +19,9 @@
import difflib
import os
import re
+import sys
-changelog_locations = {
+default_changelog_locations = {
'c++tools',
'config',
'contrib',
@@ -155,7 +156,9 @@ author_line_regex = \
re.compile(r'^(?P<datetime>\d{4}-\d{2}-\d{2})\ {2}(?P<name>.* <.*>)')
additional_author_regex = re.compile(r'^\t(?P<spaces>\ *)?(?P<name>.* <.*>)')
changelog_regex = re.compile(r'^(?:[fF]or +)?([a-z0-9+-/]*)ChangeLog:?')
-pr_regex = re.compile(r'\tPR (?P<component>[a-z+-]+\/)?([0-9]+)$')
+subject_pr_regex = re.compile(r'(^|\W)PR\s+(?P<component>[a-zA-Z+-]+)/(?P<pr>\d{4,7})')
+subject_pr2_regex = re.compile(r'[(\[]PR\s*(?P<pr>\d{4,7})[)\]]')
+pr_regex = re.compile(r'\tPR (?P<component>[a-z+-]+\/)?(?P<pr>[0-9]+)$')
dr_regex = re.compile(r'\tDR ([0-9]+)$')
star_prefix_regex = re.compile(r'\t\*(?P<spaces>\ *)(?P<content>.*)')
end_of_location_regex = re.compile(r'[\[<(:]')
@@ -200,7 +203,7 @@ class Error:
def __repr__(self):
s = self.message
if self.line:
- s += ':"%s"' % self.line
+ s += ': "%s"' % self.line
return s
@@ -287,7 +290,7 @@ class GitInfo:
class GitCommit:
- def __init__(self, info, strict=True, commit_to_info_hook=None):
+ def __init__(self, info, commit_to_info_hook=None, ref_name=None):
self.original_info = info
self.info = info
self.message = None
@@ -297,14 +300,19 @@ class GitCommit:
self.top_level_authors = []
self.co_authors = []
self.top_level_prs = []
+ self.subject_prs = set()
self.cherry_pick_commit = None
self.revert_commit = None
self.commit_to_info_hook = commit_to_info_hook
+ self.init_changelog_locations(ref_name)
# Skip Update copyright years commits
if self.info.lines and self.info.lines[0] == 'Update copyright years.':
return
+ if self.info.lines and len(self.info.lines) > 1 and self.info.lines[1]:
+ self.errors.append(Error('Expected empty second line in commit message', info.lines[0]))
+
# Identify first if the commit is a Revert commit
for line in self.info.lines:
m = revert_regex.match(line)
@@ -314,6 +322,19 @@ class GitCommit:
if self.revert_commit:
self.info = self.commit_to_info_hook(self.revert_commit)
+ # The following happens for get_email.py:
+ if not self.info:
+ return
+
+ # Extract PR numbers form the subject line
+ # Match either [PRnnnn] / (PRnnnn) or PR component/nnnn
+ if self.info.lines and not self.revert_commit:
+ self.subject_prs = {m.group('pr') for m in subject_pr2_regex.finditer(info.lines[0])}
+ for m in subject_pr_regex.finditer(info.lines[0]):
+ if not m.group('component') in bug_components:
+ self.errors.append(Error('invalid PR component in subject', info.lines[0]))
+ self.subject_prs.add(m.group('pr'))
+
# Allow complete deletion of ChangeLog files in a commit
project_files = [f for f in self.info.modified_files
if (self.is_changelog_filename(f[0], allow_suffix=True) and f[1] != 'D')
@@ -323,10 +344,12 @@ class GitCommit:
if len(project_files) == len(self.info.modified_files):
# All modified files are only MISC files
return
- elif project_files and strict:
- self.errors.append(Error('ChangeLog, DATESTAMP, BASE-VER and '
- 'DEV-PHASE updates should be done '
- 'separately from normal commits'))
+ elif project_files:
+ err = 'ChangeLog, DATESTAMP, BASE-VER and DEV-PHASE updates ' \
+ 'should be done separately from normal commits\n' \
+ '(note: ChangeLog entries will be automatically ' \
+ 'added by a cron job)'
+ self.errors.append(Error(err))
return
all_are_ignored = (len(project_files) + len(ignored_files)
@@ -342,6 +365,9 @@ class GitCommit:
if not self.errors:
self.check_mentioned_files()
self.check_for_correct_changelog()
+ if self.subject_prs:
+ self.errors.append(Error('PR %s in subject but not in changelog' %
+ ', '.join(self.subject_prs), self.info.lines[0]))
@property
def success(self):
@@ -361,15 +387,14 @@ class GitCommit:
else:
return False
- @classmethod
- def find_changelog_location(cls, name):
+ def find_changelog_location(self, name):
if name.startswith('\t'):
name = name[1:]
if name.endswith(':'):
name = name[:-1]
if name.endswith('/'):
name = name[:-1]
- return name if name in changelog_locations else None
+ return name if name in self.changelog_locations else None
@classmethod
def format_git_author(cls, author):
@@ -389,6 +414,17 @@ class GitCommit:
modified_files.append((parts[2], 'A'))
return modified_files
+ def init_changelog_locations(self, ref_name):
+ self.changelog_locations = list(default_changelog_locations)
+ if ref_name:
+ version = sys.maxsize
+ if 'releases/gcc-' in ref_name:
+ version = int(ref_name.split('-')[-1])
+ if version >= 12:
+ # HSA and BRIG were removed in GCC 12
+ self.changelog_locations.remove('gcc/brig')
+ self.changelog_locations.remove('libhsail-rt')
+
def parse_lines(self, all_are_ignored):
body = self.info.lines
@@ -397,7 +433,8 @@ class GitCommit:
continue
if (changelog_regex.match(b) or self.find_changelog_location(b)
or star_prefix_regex.match(b) or pr_regex.match(b)
- or dr_regex.match(b) or author_line_regex.match(b)):
+ or dr_regex.match(b) or author_line_regex.match(b)
+ or b.lower().startswith(CO_AUTHORED_BY_PREFIX)):
self.changes = body[i:]
return
if not all_are_ignored:
@@ -415,8 +452,10 @@ class GitCommit:
if line != line.rstrip():
self.errors.append(Error('trailing whitespace', line))
if len(line.replace('\t', ' ' * TAB_WIDTH)) > LINE_LIMIT:
- self.errors.append(Error('line exceeds %d character limit'
- % LINE_LIMIT, line))
+ # support long filenames
+ if not line.startswith('\t* ') or not line.endswith(':') or ' ' in line[3:-1]:
+ self.errors.append(Error('line exceeds %d character limit'
+ % LINE_LIMIT, line))
m = changelog_regex.match(line)
if m:
last_entry = ChangeLogEntry(m.group(1).rstrip('/'),
@@ -443,7 +482,9 @@ class GitCommit:
else:
author_tuple = (m.group('name'), None)
elif pr_regex.match(line):
- component = pr_regex.match(line).group('component')
+ m = pr_regex.match(line)
+ component = m.group('component')
+ pr = m.group('pr')
if not component:
self.errors.append(Error('missing PR component', line))
continue
@@ -452,6 +493,8 @@ class GitCommit:
continue
else:
pr_line = line.lstrip()
+ if pr in self.subject_prs:
+ self.subject_prs.remove(pr)
elif dr_regex.match(line):
pr_line = line.lstrip()
@@ -584,7 +627,7 @@ class GitCommit:
for file in entry.files:
location = self.get_file_changelog_location(file)
if (location == ''
- or (location and location in changelog_locations)):
+ or (location and location in self.changelog_locations)):
if changelog and changelog != location:
msg = 'could not deduce ChangeLog file, ' \
'not unique location'
@@ -604,11 +647,10 @@ class GitCommit:
return True
return False
- @classmethod
- def get_changelog_by_path(cls, path):
+ def get_changelog_by_path(self, path):
components = path.split('/')
while components:
- if '/'.join(components) in changelog_locations:
+ if '/'.join(components) in self.changelog_locations:
break
components = components[:-1]
return '/'.join(components)
@@ -627,7 +669,12 @@ class GitCommit:
assert not entry.folder.endswith('/')
for file in entry.files:
if not self.is_changelog_filename(file):
- mentioned_files.add(os.path.join(entry.folder, file))
+ item = os.path.join(entry.folder, file)
+ if item in mentioned_files:
+ msg = 'same file specified multiple times'
+ self.errors.append(Error(msg, file))
+ else:
+ mentioned_files.add(item)
for pattern in entry.file_patterns:
mentioned_patterns.append(os.path.join(entry.folder, pattern))
diff --git a/contrib/gcc-changelog/git_email.py b/contrib/gcc-changelog/git_email.py
index b0547b3..87b419c 100755
--- a/contrib/gcc-changelog/git_email.py
+++ b/contrib/gcc-changelog/git_email.py
@@ -17,6 +17,7 @@
# <http://www.gnu.org/licenses/>. */
import os
+import re
import sys
from itertools import takewhile
@@ -28,16 +29,20 @@ from unidiff import PatchSet, PatchedFile
DATE_PREFIX = 'Date: '
FROM_PREFIX = 'From: '
+SUBJECT_PREFIX = 'Subject: '
+subject_patch_regex = re.compile(r'^\[PATCH( \d+/\d+)?\] ')
unidiff_supports_renaming = hasattr(PatchedFile(), 'is_rename')
class GitEmail(GitCommit):
- def __init__(self, filename, strict=False):
+ def __init__(self, filename):
self.filename = filename
diff = PatchSet.from_filename(filename)
date = None
author = None
+ subject = ''
+ subject_last = False
with open(self.filename, 'r') as f:
lines = f.read().splitlines()
lines = list(takewhile(lambda line: line != '---', lines))
@@ -46,8 +51,21 @@ class GitEmail(GitCommit):
date = parse(line[len(DATE_PREFIX):])
elif line.startswith(FROM_PREFIX):
author = GitCommit.format_git_author(line[len(FROM_PREFIX):])
+ elif line.startswith(SUBJECT_PREFIX):
+ subject = line[len(SUBJECT_PREFIX):]
+ subject_last = True
+ elif subject_last and line.startswith(' '):
+ subject += line
+ elif line == '':
+ break
+ else:
+ subject_last = False
+
+ if subject:
+ subject = subject_patch_regex.sub('', subject)
header = list(takewhile(lambda line: line != '', lines))
- body = lines[len(header) + 1:]
+ # Note: commit message consists of email subject, empty line, email body
+ message = [subject] + lines[len(header):]
modified_files = []
for f in diff:
@@ -67,15 +85,28 @@ class GitEmail(GitCommit):
else:
t = 'M'
modified_files.append((target if t != 'D' else source, t))
- git_info = GitInfo(None, date, author, body, modified_files)
- super().__init__(git_info, strict=strict,
+ git_info = GitInfo(None, date, author, message, modified_files)
+ super().__init__(git_info,
commit_to_info_hook=lambda x: None)
-# With zero arguments, process every patch file in the ./patches directory.
-# With one argument, process the named patch file.
-# Patch files must be in 'git format-patch' format.
+def show_help():
+ print("""usage: git_email.py [--help] [patch file ...]
+
+Check git ChangeLog format of a patch
+
+With zero arguments, process every patch file in the
+./patches directory.
+With one argument, process the named patch file.
+
+Patch files must be in 'git format-patch' format.""")
+ sys.exit(0)
+
+
if __name__ == '__main__':
+ if len(sys.argv) == 2 and (sys.argv[1] == '-h' or sys.argv[1] == '--help'):
+ show_help()
+
if len(sys.argv) == 1:
allfiles = []
for root, _dirs, files in os.walk('patches'):
@@ -97,7 +128,7 @@ if __name__ == '__main__':
print()
print('Successfully parsed: %d/%d' % (success, len(allfiles)))
else:
- email = GitEmail(sys.argv[1], False)
+ email = GitEmail(sys.argv[1])
if email.success:
print('OK')
email.print_output()
diff --git a/contrib/gcc-changelog/git_repository.py b/contrib/gcc-changelog/git_repository.py
index a0e293d..2d68882 100755
--- a/contrib/gcc-changelog/git_repository.py
+++ b/contrib/gcc-changelog/git_repository.py
@@ -29,7 +29,7 @@ except ImportError:
from git_commit import GitCommit, GitInfo, decode_path
-def parse_git_revisions(repo_path, revisions, strict=True):
+def parse_git_revisions(repo_path, revisions, ref_name=None):
repo = Repo(repo_path)
def commit_to_info(commit):
@@ -72,7 +72,8 @@ def parse_git_revisions(repo_path, revisions, strict=True):
commits = [repo.commit(revisions)]
for commit in commits:
- git_commit = GitCommit(commit_to_info(commit.hexsha), strict=strict,
- commit_to_info_hook=commit_to_info)
+ git_commit = GitCommit(commit_to_info(commit.hexsha),
+ commit_to_info_hook=commit_to_info,
+ ref_name=ref_name)
parsed_commits.append(git_commit)
return parsed_commits
diff --git a/contrib/gcc-changelog/git_update_version.py b/contrib/gcc-changelog/git_update_version.py
index 1e2b22b..1837c1a 100755
--- a/contrib/gcc-changelog/git_update_version.py
+++ b/contrib/gcc-changelog/git_update_version.py
@@ -27,7 +27,10 @@ from git_repository import parse_git_revisions
current_timestamp = datetime.datetime.now().strftime('%Y%m%d\n')
# Skip the following commits, they cannot be correctly processed
-IGNORED_COMMITS = ('c2be82058fb40f3ae891c68d185ff53e07f14f45')
+IGNORED_COMMITS = (
+ 'c2be82058fb40f3ae891c68d185ff53e07f14f45',
+ '04a040d907a83af54e0a98bdba5bfabc0ef4f700',
+ '2e96b5f14e4025691b57d2301d71aa6092ed44bc')
def read_timestamp(path):
@@ -57,7 +60,8 @@ def prepend_to_changelog_files(repo, folder, git_commit, add_to_git):
repo.git.add(full_path)
-active_refs = ['master', 'releases/gcc-8', 'releases/gcc-9', 'releases/gcc-10']
+active_refs = ['master', 'releases/gcc-9', 'releases/gcc-10',
+ 'releases/gcc-11']
parser = argparse.ArgumentParser(description='Update DATESTAMP and generate '
'ChangeLog entries')
@@ -77,7 +81,7 @@ repo = Repo(args.git_path)
origin = repo.remotes['origin']
-def update_current_branch():
+def update_current_branch(ref_name):
commit = repo.head.commit
commit_count = 1
while commit:
@@ -100,7 +104,7 @@ def update_current_branch():
if len(head.parents) == 2:
head = head.parents[1]
commits = parse_git_revisions(args.git_path, '%s..%s'
- % (commit.hexsha, head.hexsha))
+ % (commit.hexsha, head.hexsha), ref_name)
commits = [c for c in commits if c.info.hexsha not in IGNORED_COMMITS]
for git_commit in reversed(commits):
prepend_to_changelog_files(repo, args.git_path, git_commit,
@@ -144,6 +148,6 @@ else:
branch.checkout()
origin.pull(rebase=True)
print('branch pulled and checked out')
- update_current_branch()
+ update_current_branch(name)
assert not repo.index.diff(None)
print('branch is done\n', flush=True)
diff --git a/contrib/gcc-changelog/test_email.py b/contrib/gcc-changelog/test_email.py
index 9d052e0..319e065 100755
--- a/contrib/gcc-changelog/test_email.py
+++ b/contrib/gcc-changelog/test_email.py
@@ -62,17 +62,17 @@ class TestGccChangelog(unittest.TestCase):
assert t.endswith('.patch')
os.remove(t)
- def get_git_email(self, filename, strict=False):
+ def get_git_email(self, filename):
with tempfile.NamedTemporaryFile(mode='w+', suffix='.patch',
delete=False) as f:
f.write('\n'.join(self.patches[filename]))
self.temps.append(f.name)
- return GitEmail(f.name, strict)
+ return GitEmail(f.name)
- def from_patch_glob(self, name, strict=False):
+ def from_patch_glob(self, name):
files = [f for f in self.patches.keys() if f.startswith(name)]
assert len(files) == 1
- return self.get_git_email(files[0], strict)
+ return self.get_git_email(files[0])
def test_simple_patch_format(self):
email = self.get_git_email('0577-aarch64-Add-an-and.patch')
@@ -247,7 +247,7 @@ class TestGccChangelog(unittest.TestCase):
assert email.changelog_entries[1].prs == []
def test_multiple_prs_not_added(self):
- email = self.from_patch_glob('0001-Add-patch_are')
+ email = self.from_patch_glob('0002-Add-patch_are')
assert not email.errors
assert email.changelog_entries[0].prs == ['PR target/93492']
assert email.changelog_entries[1].prs == ['PR target/12345']
@@ -255,18 +255,17 @@ class TestGccChangelog(unittest.TestCase):
assert email.changelog_entries[2].folder == 'gcc/testsuite'
def test_strict_mode(self):
- email = self.from_patch_glob('0001-Add-patch_are',
- True)
+ email = self.from_patch_glob('0001-Add-patch_are')
msg = 'ChangeLog, DATESTAMP, BASE-VER and DEV-PHASE updates should ' \
'be done separately from normal commits'
- assert email.errors[0].message == msg
+ assert email.errors[0].message.startswith(msg)
def test_strict_mode_normal_patch(self):
- email = self.get_git_email('0001-Just-test-it.patch', True)
+ email = self.get_git_email('0001-Just-test-it.patch')
assert not email.errors
def test_strict_mode_datestamp_only(self):
- email = self.get_git_email('0002-Bump-date.patch', True)
+ email = self.get_git_email('0002-Bump-date.patch')
assert not email.errors
def test_wrong_changelog_entry(self):
@@ -418,5 +417,26 @@ class TestGccChangelog(unittest.TestCase):
assert email.errors[0].message == 'bad parentheses wrapping'
def test_changelog_removal(self):
- email = self.from_patch_glob('0001-ChangeLog-removal.patch', strict=True)
+ email = self.from_patch_glob('0001-ChangeLog-removal.patch')
+ assert not email.errors
+
+ def test_long_filenames(self):
+ email = self.from_patch_glob('0001-long-filenames')
+ assert not email.errors
+
+ def test_multi_same_file(self):
+ email = self.from_patch_glob('0001-OpenMP-Fix-SIMT')
+ assert email.errors[0].message == 'same file specified multiple times'
+
+ def test_pr_only_in_subject(self):
+ email = self.from_patch_glob('0001-rs6000-Support-doubleword')
+ assert (email.errors[0].message ==
+ 'PR 100085 in subject but not in changelog')
+
+ def test_wrong_pr_comp_in_subject(self):
+ email = self.from_patch_glob('pr-wrong-comp.patch')
+ assert email.errors[0].message == 'invalid PR component in subject'
+
+ def test_copyright_years(self):
+ email = self.from_patch_glob('copyright-years.patch')
assert not email.errors
diff --git a/contrib/gcc-changelog/test_patches.txt b/contrib/gcc-changelog/test_patches.txt
index 012573b..ba51627 100644
--- a/contrib/gcc-changelog/test_patches.txt
+++ b/contrib/gcc-changelog/test_patches.txt
@@ -68,13 +68,6 @@ xxxx-xx-xx Claudiu Zissulescu <claziss@synopsys.com>
create mode 100644 gcc/testsuite/gcc.target/arc/uncached-7.c
create mode 100644 gcc/testsuite/gcc.target/arc/uncached-8.c
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index 91dfcd71a4b..2cc61d68cf3 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
index 22475f2732e..e1a865f02e6 100644
--- a/gcc/config/arc/arc.c
@@ -89,13 +82,6 @@ index cf7aa8d83c9..46cb254ed28 100644
@@ -1 +1,2 @@
+
-diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
-index 16ddef07516..991934272e0 100644
---- a/gcc/testsuite/ChangeLog
-+++ b/gcc/testsuite/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/testsuite/gcc.target/arc/arc.exp b/gcc/testsuite/gcc.target/arc/arc.exp
index 8d1844edd22..501d4589c53 100644
--- a/gcc/testsuite/gcc.target/arc/arc.exp
@@ -199,20 +185,6 @@ without any data fields.
4 files changed, 36 insertions(+)
create mode 100644 gcc/testsuite/g++.dg/tree-ssa/pr93667.C
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index 77c2a9ad810..6b53f9a2f07 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
-diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
-index 9b4fe11a6f6..8033fa0a3bb 100644
---- a/gcc/testsuite/ChangeLog
-+++ b/gcc/testsuite/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr93667.C b/gcc/testsuite/g++.dg/tree-ssa/pr93667.C
new file mode 100644
index 00000000000..d875f53d9ec
@@ -275,20 +247,6 @@ Subject: [PATCH 0413/2034] SRA: Total scalarization after access propagation
5 files changed, 537 insertions(+), 184 deletions(-)
create mode 100644 gcc/testsuite/gcc.dg/tree-ssa/pr92706-2.c
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index 16247a59304..61da54df346 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
-diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
-index 05518848829..38758207989 100644
---- a/gcc/testsuite/ChangeLog
-+++ b/gcc/testsuite/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/testsuite/gcc.dg/guality/pr59776.c b/gcc/testsuite/gcc.dg/guality/pr59776.c
index 382abb622bb..6c1c8165b70 100644
--- a/gcc/testsuite/gcc.dg/guality/pr59776.c
@@ -333,13 +291,6 @@ Subject: [PATCH 0334/2034] Do not generate a unique fnname for resolver.
gcc/testsuite/gcc.target/i386/pr81213.c | 4 ++--
4 files changed, 19 insertions(+), 17 deletions(-)
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index 45075840824..59806baa757 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/config/i386/i386-features.c b/gcc/config/i386/i386-features.c
index e580b26b995..b49e6f8d408 100644
--- a/gcc/config/i386/i386-features.c
@@ -347,13 +298,6 @@ index e580b26b995..b49e6f8d408 100644
@@ -1 +1,2 @@
+
-diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
-index 2de060843d9..22a37dd1ab2 100644
---- a/gcc/testsuite/ChangeLog
-+++ b/gcc/testsuite/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/testsuite/gcc.target/i386/pr81213.c b/gcc/testsuite/gcc.target/i386/pr81213.c
index 13e15d5fef0..89c47529861 100644
--- a/gcc/testsuite/gcc.target/i386/pr81213.c
@@ -396,13 +340,6 @@ Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
8 files changed, 142 insertions(+), 22 deletions(-)
create mode 100644 gcc/testsuite/g++.dg/pr94314-4.C
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index 74dbeeb44c6..9e499ec9c86 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c
index c73b8f810f0..8f541a28b6e 100644
--- a/gcc/cgraphclones.c
@@ -410,13 +347,6 @@ index c73b8f810f0..8f541a28b6e 100644
@@ -1 +1,2 @@
+
-diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
-index 756f1d759e6..94d2312022d 100644
---- a/gcc/testsuite/ChangeLog
-+++ b/gcc/testsuite/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/testsuite/g++.dg/pr94314-2.C b/gcc/testsuite/g++.dg/pr94314-2.C
index 36b93ed6d4d..998ce601767 100644
--- a/gcc/testsuite/g++.dg/pr94314-2.C
@@ -492,13 +422,6 @@ https://gcc.gnu.org/ml/gcc-patches/2020-01/msg00809.html
3 files changed, 24 insertions(+), 5 deletions(-)
create mode 100644 gcc/testsuite/g++.dg/template/pr90916.C
-diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
-index 004ce0fdcdf..3cc7c48b490 100644
---- a/gcc/cp/ChangeLog
-+++ b/gcc/cp/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index fa82ecad233..4fdc74f9ca8 100644
--- a/gcc/cp/pt.c
@@ -539,13 +462,6 @@ not broken, but this is both safer and satisfies static analysis.
libgomp/plugin/plugin-gcn.c | 8 ++++++++
2 files changed, 17 insertions(+)
-diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog
-index c524abbbfb6..ee1764d4ae3 100644
---- a/libgomp/ChangeLog
-+++ b/libgomp/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/libgomp/plugin/plugin-gcn.c b/libgomp/plugin/plugin-gcn.c
index dc72c90962c..4c6a4c03b6e 100644
--- a/libgomp/plugin/plugin-gcn.c
@@ -578,13 +494,6 @@ ChangeLog:
gcc/tree-into-ssa.c | 59 ++++++++++++++++++++++++++++++++++++---------
2 files changed, 55 insertions(+), 12 deletions(-)
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index 8c17e5992d2..262f0d6506f 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index c27bf2ce121..6528acac31a 100644
--- a/gcc/tree-into-ssa.c
@@ -683,13 +592,6 @@ just the C-family ones that defined a forwarding macro.
17 files changed, 146 insertions(+), 95 deletions(-)
create mode 100644 gcc/testsuite/g++.dg/cpp/pr80005.C
-diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
-index 09ba2c8b40f..fdddb98a74d 100644
---- a/gcc/c-family/ChangeLog
-+++ b/gcc/c-family/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/c-family/c-cppbuiltin.c b/gcc/c-family/c-cppbuiltin.c
index a6308921dc9..70a12055e27 100644
--- a/gcc/c-family/c-cppbuiltin.c
@@ -697,13 +599,6 @@ index a6308921dc9..70a12055e27 100644
@@ -1 +1,2 @@
+
-diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
-index a526e32ac89..67d5f2e9e28 100644
---- a/gcc/testsuite/ChangeLog
-+++ b/gcc/testsuite/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/testsuite/g++.dg/cpp/pr80005.C b/gcc/testsuite/g++.dg/cpp/pr80005.C
new file mode 100644
index 00000000000..cc752616782
@@ -732,13 +627,6 @@ index dd15cd6af3c..82fd602f9f1 100644
@@ -1 +1,2 @@
+
-diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
-index 3249b93fe88..27a841bbdce 100644
---- a/libcpp/ChangeLog
-+++ b/libcpp/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/libcpp/directives.c b/libcpp/directives.c
index 983206a5838..10735c8c668 100644
--- a/libcpp/directives.c
@@ -825,13 +713,6 @@ Subject: [PATCH 0004/2034] tree-opt: Fix bootstrap failure in
gcc/tree-ssa-forwprop.c | 6 +++---
2 files changed, 12 insertions(+), 3 deletions(-)
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index a195863212e..f7df07343d1 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index aac31d02b6c..56c470f6ecf 100644
--- a/gcc/tree-ssa-forwprop.c
@@ -898,13 +779,6 @@ Subject: [PATCH 0735/2034] PR 87488: Add --with-diagnostics-urls configuration
gcc/pretty-print.h | 5 +-
11 files changed, 328 insertions(+), 26 deletions(-)
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index e6eb6ab4c21..22f990a3088 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/config.in b/gcc/config.in
index 48292861842..01fb18dbbb5 100644
--- a/gcc/config.in
@@ -1000,13 +874,6 @@ gcc/ChangeLog
gcc/cfgloopanal.c | 5 ++++-
2 files changed, 9 insertions(+), 1 deletion(-)
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index 07e5bebe909..f3301b16464 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/cfgloopanal.c b/gcc/cfgloopanal.c
index 392b1c337c4..0b33e8272a7 100644
--- a/gcc/cfgloopanal.c
@@ -1073,13 +940,6 @@ Subject: [PATCH 0735/2034] PR 87488: Add --with-diagnostics-urls configuration
gcc/pretty-print.h | 5 +-
11 files changed, 328 insertions(+), 26 deletions(-)
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index e6eb6ab4c21..22f990a3088 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/config.in b/gcc/config.in
index 48292861842..01fb18dbbb5 100644
--- a/gcc/config.in
@@ -1187,13 +1047,6 @@ co-authored-by: John Miller2 <jm2@example.com>
8 files changed, 142 insertions(+), 22 deletions(-)
create mode 100644 gcc/testsuite/g++.dg/pr94314-4.C
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index 74dbeeb44c6..9e499ec9c86 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c
index c73b8f810f0..8f541a28b6e 100644
--- a/gcc/cgraphclones.c
@@ -1201,13 +1054,6 @@ index c73b8f810f0..8f541a28b6e 100644
@@ -1 +1,2 @@
+
-diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
-index 756f1d759e6..94d2312022d 100644
---- a/gcc/testsuite/ChangeLog
-+++ b/gcc/testsuite/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/testsuite/g++.dg/pr94314-2.C b/gcc/testsuite/g++.dg/pr94314-2.C
index 36b93ed6d4d..998ce601767 100644
--- a/gcc/testsuite/g++.dg/pr94314-2.C
@@ -1299,13 +1145,6 @@ if it isn't a REG or SUBREG of REG.
4 files changed, 51 insertions(+), 19 deletions(-)
create mode 100644 gcc/testsuite/gcc.dg/pr94291.c
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index a1ab9fb4ef3..12803e90b0a 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/combine.c b/gcc/combine.c
index 58366a6d331..cff76cd3303 100644
--- a/gcc/combine.c
@@ -1313,13 +1152,6 @@ index 58366a6d331..cff76cd3303 100644
@@ -1 +1,2 @@
+
-diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
-index 71b5a14bcbe..3cbf891d58d 100644
---- a/gcc/testsuite/ChangeLog
-+++ b/gcc/testsuite/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/testsuite/gcc.dg/pr94291.c b/gcc/testsuite/gcc.dg/pr94291.c
new file mode 100644
index 00000000000..7daa2b01166
@@ -1390,13 +1222,6 @@ index e85a8e8813e..fb776ba5a0e 100644
@@ -1 +1,2 @@
+
-diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
-index c429b49e68c..69ea1fdc4f3 100644
---- a/gcc/c-family/ChangeLog
-+++ b/gcc/c-family/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/c-family/c-attribs.c b/gcc/c-family/c-attribs.c
index ac936d5bbbb..a101312c581 100644
--- a/gcc/c-family/c-attribs.c
@@ -1432,10 +1257,122 @@ index c212a1a57dc..3dccef39701 100644
@@ -1 +1,2 @@
+
-diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
-index 176aa117904..185f9ea725e 100644
---- a/gcc/testsuite/ChangeLog
-+++ b/gcc/testsuite/ChangeLog
+diff --git a/gcc/testsuite/c-c++-common/patchable_function_entry-error-1.c b/gcc/testsuite/c-c++-common/patchable_function_entry-error-1.c
+new file mode 100644
+index 00000000000..f60bf46cfe3
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/patchable_function_entry-error-1.c
+@@ -0,0 +1 @@
++
+diff --git a/gcc/testsuite/c-c++-common/patchable_function_entry-error-2.c b/gcc/testsuite/c-c++-common/patchable_function_entry-error-2.c
+new file mode 100644
+index 00000000000..90f88c78be7
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/patchable_function_entry-error-2.c
+@@ -0,0 +1 @@
++
+diff --git a/gcc/testsuite/c-c++-common/patchable_function_entry-error-3.c b/gcc/testsuite/c-c++-common/patchable_function_entry-error-3.c
+new file mode 100644
+index 00000000000..4490e5c15ca
+--- /dev/null
++++ b/gcc/testsuite/c-c++-common/patchable_function_entry-error-3.c
+@@ -0,0 +1 @@
++
+diff --git a/gcc/varasm.c b/gcc/varasm.c
+index 271a67abf56..f062e48071f 100644
+--- a/gcc/varasm.c
++++ b/gcc/varasm.c
+@@ -1 +1,2 @@
+
++
+--
+2.26.2
+
+=== 0002-Add-patch_area_size-and-patch_area_entry-to-crtl.patch ===
+From 6607bdd99994c834f92fce924abdaea3405f62dc Mon Sep 17 00:00:00 2001
+From: "H.J. Lu" <hjl.tools@gmail.com>
+Date: Fri, 1 May 2020 21:03:10 -0700
+Subject: [PATCH] Add patch_area_size and patch_area_entry to crtl
+
+Currently patchable area is at the wrong place. It is placed immediately
+after function label and before .cfi_startproc. A backend should be able
+to add a pseudo patchable area instruction durectly into RTL. This patch
+adds patch_area_size and patch_area_entry to crtl so that the patchable
+area info is available in RTL passes.
+
+It also limits patch_area_size and patch_area_entry to 65535, which is
+a reasonable maximum size for patchable area.
+
+gcc/
+
+ PR target/93492
+ * cfgexpand.c (pass_expand::execute): Set crtl->patch_area_size
+ and crtl->patch_area_entry.
+ * emit-rtl.h (rtl_data): Add patch_area_size and patch_area_entry.
+ * opts.c (common_handle_option): Limit
+ function_entry_patch_area_size and function_entry_patch_area_start
+ to USHRT_MAX. Fix a typo in error message.
+ * varasm.c (assemble_start_function): Use crtl->patch_area_size
+ and crtl->patch_area_entry.
+ * doc/invoke.texi: Document the maximum value for
+ -fpatchable-function-entry.
+
+gcc/c-family/
+
+ PR target/12345
+ * c-attribs.c (handle_patchable_function_entry_attribute): Limit
+ value to USHRT_MAX (65535).
+
+---
+ gcc/ChangeLog | 14 ++++++++
+ gcc/c-family/ChangeLog | 6 ++++
+ gcc/c-family/c-attribs.c | 9 +++++
+ gcc/cfgexpand.c | 33 +++++++++++++++++++
+ gcc/doc/invoke.texi | 1 +
+ gcc/emit-rtl.h | 6 ++++
+ gcc/opts.c | 4 ++-
+ gcc/testsuite/ChangeLog | 7 ++++
+ .../patchable_function_entry-error-1.c | 9 +++++
+ .../patchable_function_entry-error-2.c | 9 +++++
+ .../patchable_function_entry-error-3.c | 17 ++++++++++
+ gcc/varasm.c | 30 ++---------------
+ 12 files changed, 116 insertions(+), 29 deletions(-)
+ create mode 100644 gcc/testsuite/c-c++-common/patchable_function_entry-error-1.c
+ create mode 100644 gcc/testsuite/c-c++-common/patchable_function_entry-error-2.c
+ create mode 100644 gcc/testsuite/c-c++-common/patchable_function_entry-error-3.c
+
+diff --git a/gcc/c-family/c-attribs.c b/gcc/c-family/c-attribs.c
+index ac936d5bbbb..a101312c581 100644
+--- a/gcc/c-family/c-attribs.c
++++ b/gcc/c-family/c-attribs.c
+@@ -1 +1,2 @@
+
++
+diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
+index a7ec77d5c85..86efa22bf60 100644
+--- a/gcc/cfgexpand.c
++++ b/gcc/cfgexpand.c
+@@ -1 +1,2 @@
+
++
+diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
+index 527d362533a..767d1f07801 100644
+--- a/gcc/doc/invoke.texi
++++ b/gcc/doc/invoke.texi
+@@ -1 +1,2 @@
+
++
+diff --git a/gcc/emit-rtl.h b/gcc/emit-rtl.h
+index a878efe3cf7..3d6565c8a30 100644
+--- a/gcc/emit-rtl.h
++++ b/gcc/emit-rtl.h
+@@ -1 +1,2 @@
+
++
+diff --git a/gcc/opts.c b/gcc/opts.c
+index c212a1a57dc..3dccef39701 100644
+--- a/gcc/opts.c
++++ b/gcc/opts.c
@@ -1 +1,2 @@
+
@@ -1497,13 +1434,6 @@ gcc/cp/ChangeLog
3 files changed, 40 insertions(+), 18 deletions(-)
create mode 100644 gcc/testsuite/g++.dg/cpp2a/lambda-generic-variadic20.C
-diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
-index 640e4948130..4b6691a77f0 100644
---- a/gcc/cp/ChangeLog
-+++ b/gcc/cp/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 7bf249cee5c..2fe7b66707c 100644
--- a/gcc/cp/pt.c
@@ -1531,6 +1461,7 @@ Subject: [PATCH 0030/2034] PR c++/92746 - ICE with noexcept of function
Another place that needs to specially handle Concepts TS function-style
concepts.
+ PR c++/92746
* except.c (check_noexcept_r): Handle concept-check.
---
gcc/cp/ChangeLog | 3 +++
@@ -1539,13 +1470,6 @@ concepts.
3 files changed, 11 insertions(+)
create mode 100644 gcc/testsuite/g++.dg/concepts/fn-concept3.C
-diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
-index 59646c70fa4..4729e3d331d 100644
---- a/gcc/cp/ChangeLog
-+++ b/gcc/cp/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/cp/except.c b/gcc/cp/except.c
index e073bd4d2bc..55b4b6af442 100644
--- a/gcc/cp/except.c
@@ -1573,13 +1497,6 @@ Subject: [PATCH 0129/2034] Add PR number to change log
gcc/ChangeLog | 1 +
1 file changed, 1 insertion(+)
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index 6c6d586ca75..49ca5f92dec 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
--
2.26.1
@@ -1616,13 +1533,6 @@ gcc/testsuite/
6 files changed, 132 insertions(+)
create mode 100644 gcc/testsuite/gcc.target/aarch64/movk_2.c
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index efbbbf08225..cea8ffee99c 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
index 24cc65a383a..d29975a8921 100644
--- a/gcc/config/aarch64/aarch64-protos.h
@@ -1644,13 +1554,6 @@ index 90eebce85c0..9c1f17d0f85 100644
@@ -1 +1,2 @@
+
-diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
-index 601bc336290..cdb26581b9c 100644
---- a/gcc/testsuite/ChangeLog
-+++ b/gcc/testsuite/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/testsuite/gcc.target/aarch64/movk_2.c b/gcc/testsuite/gcc.target/aarch64/movk_2.c
new file mode 100644
index 00000000000..a0477ad5d42
@@ -1836,13 +1739,6 @@ already).
gcc/testsuite/g++.dg/tree-ssa/pr27830.C | 2 ++
4 files changed, 47 insertions(+), 5 deletions(-)
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index 06f7eda0033..93c3076eb86 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/config/rs6000/rs6000-call.c b/gcc/config/rs6000/rs6000-call.c
index e08621ace27..a9ae7ab70ca 100644
--- a/gcc/config/rs6000/rs6000-call.c
@@ -1850,13 +1746,6 @@ index e08621ace27..a9ae7ab70ca 100644
@@ -1 +1,2 @@
+
-diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
-index 684e408c1a5..245c1512c76 100644
---- a/gcc/testsuite/ChangeLog
-+++ b/gcc/testsuite/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr27830.C b/gcc/testsuite/g++.dg/tree-ssa/pr27830.C
index 01c7fc18783..551ebc428cd 100644
--- a/gcc/testsuite/g++.dg/tree-ssa/pr27830.C
@@ -1969,13 +1858,6 @@ index c212a1a57dc..3dccef39701 100644
@@ -1 +1,2 @@
+
-diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
-index 176aa117904..185f9ea725e 100644
---- a/gcc/testsuite/ChangeLog
-+++ b/gcc/testsuite/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/testsuite/c-c++-common/patchable_function_entry-error-1.c b/gcc/testsuite/c-c++-common/patchable_function_entry-error-1.c
new file mode 100644
index 00000000000..f60bf46cfe3
@@ -2082,13 +1964,6 @@ Subject: [PATCH 0004/2034] tree-opt: Fix bootstrap failure in
gcc/tree-ssa-forwprop.c | 6 +++---
2 files changed, 12 insertions(+), 3 deletions(-)
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index a195863212e..f7df07343d1 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index aac31d02b6c..56c470f6ecf 100644
--- a/gcc/tree-ssa-forwprop.c
@@ -2103,7 +1978,7 @@ index aac31d02b6c..56c470f6ecf 100644
From 5194b51ed9714808d88827531e91474895b6c706 Mon Sep 17 00:00:00 2001
From: Jason Merrill <jason@redhat.com>
Date: Thu, 16 Jan 2020 16:55:39 -0500
-Subject: [PATCH 0121/2034] PR c++/93286 - ICE with __is_constructible and
+Subject: [PATCH 0121/2034] PR c++/12345 - ICE with __is_constructible and
variadic template.
Here we had been recursing in tsubst_copy_and_build if type2 was a TREE_LIST
@@ -2125,13 +2000,6 @@ gcc/testsuite/ChangeLog:
3 files changed, 89 insertions(+), 7 deletions(-)
create mode 100644 gcc/testsuite/g++.dg/ext/is_constructible4.C
-diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
-index 3ca5d7a11b4..c37e461bcc5 100644
---- a/gcc/cp/ChangeLog
-+++ b/gcc/cp/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 9bb8cc13e5f..872f8ff8f52 100644
--- a/gcc/cp/pt.c
@@ -2210,13 +2078,6 @@ Subject: [PATCH 0043/2034] Compare TREE_ADDRESSABLE and TYPE_MODE when ODR
create mode 100644 gcc/testsuite/g++.dg/lto/odr-8_0.C
create mode 100644 gcc/testsuite/g++.dg/lto/odr-8_1.C
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index 38165123654..33ca91a6467 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
index f0031957375..b609a77701d 100644
--- a/gcc/ipa-devirt.c
@@ -2224,13 +2085,6 @@ index f0031957375..b609a77701d 100644
@@ -1 +1,2 @@
+
-diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
-index 8e3b9105188..dc42601794b 100644
---- a/gcc/testsuite/ChangeLog
-+++ b/gcc/testsuite/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/testsuite/g++.dg/lto/odr-8_0.C b/gcc/testsuite/g++.dg/lto/odr-8_0.C
new file mode 100644
index 00000000000..59f51399fac
@@ -2302,13 +2156,6 @@ gcc/testsuite/ChangeLog:
create mode 100755 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-3.c
create mode 100755 gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-4.c
-diff --git a/gcc/ChangeLog b/gcc/ChangeLog
-index 9a949980699..49dcecb6777 100644
---- a/gcc/ChangeLog
-+++ b/gcc/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c
index f0e0461b7f0..f50c4857e1c 100644
--- a/gcc/config/aarch64/aarch64-builtins.c
@@ -2344,13 +2191,6 @@ index b9843b83c5f..83720d9802a 100644
@@ -1 +1,2 @@
+
-diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
-index 0d8aa6063a7..8b01aa06a40 100644
---- a/gcc/testsuite/ChangeLog
-+++ b/gcc/testsuite/ChangeLog
-@@ -1 +1,2 @@
-
-+
diff --git a/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-1.c b/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vdot-3-1.c
new file mode 100755
index 00000000000..ac4f821e771
@@ -3408,14 +3248,6 @@ Subject: [PATCH] Fix a changelog.
gcc/ChangeLog-2020 | 1 +
1 file changed, 1 insertion(+)
-diff --git a/gcc/ChangeLog-2020 b/gcc/ChangeLog-2020
-index 6553720acad..2c170ef014a 100644
---- a/gcc/ChangeLog-2020
-+++ b/gcc/ChangeLog-2020
-@@ -1 +1,2 @@
-
-+
-
--
2.29.2
=== 0001-Add-macro.patch ===
@@ -3511,3 +3343,124 @@ index 5dd33a75c3a..c4ce432cb98 100644
--
2.30.1
+=== 0001-long-filenames ===
+From 0a5b3f87bdac5e61f9a626c795d30f9e93198585 Mon Sep 17 00:00:00 2001
+From: Martin Liska <mliska@suse.cz>
+Date: Mon, 12 Apr 2021 13:10:14 +0200
+Subject: [PATCH] libstdc++: Fix some tests that fail in C++20 mode
+
+The linear_congruential_engine negative tests fail with a different
+error in C++20 mode, because double is no longer an invalid type for
+NTTP. Adjust the expected errors.
+
+libstdc++-v3/ChangeLog:
+
+ * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc:
+ Adjust expected error for C++20 mode.
+ * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc:
+ Likewise.
+---
+ .../linear_congruential_engine/requirements/non_uint_neg.cc | 4 +++-
+ .../random/linear_congruential/requirements/non_uint_neg.cc | 3 ++-
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc b/libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc
+index e04e8ca6972..a36d63c6c7b 100644
+--- a/libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc
++++ b/libstdc++-v3/testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc
+@@ -1 +1,2 @@
+
++
+diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc
+index 5ad82db1def..53b15f32516 100644
+--- a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc
++++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc
+@@ -1 +1,2 @@
+
++
+
+=== 0001-OpenMP-Fix-SIMT ===
+From 33b647956caa977d1ae489f9baed9cef70b4f382 Mon Sep 17 00:00:00 2001
+From: Tobias Burnus <tobias@codesourcery.com>
+Date: Fri, 7 May 2021 12:11:51 +0200
+Subject: [PATCH] OpenMP: Fix SIMT for complex/float reduction with && and ||
+
+libgomp/ChangeLog:
+
+ * testsuite/libgomp.c-c++-common/reduction-5.c: New test, testing
+ complex/floating-point || + && reduction with 'omp target'.
+ * testsuite/libgomp.c-c++-common/reduction-5.c: Likewise.
+---
+diff --git a/libgomp/testsuite/libgomp.c-c++-common/reduction-5.c b/libgomp/testsuite/libgomp.c-c++-common/reduction-5.c
+new file mode 100644
+index 00000000000..21540512e23
+--- /dev/null
++++ b/libgomp/testsuite/libgomp.c-c++-common/reduction-5.c
+@@ -0,0 +1,1 @@
++
+diff --git a/libgomp/testsuite/libgomp.c-c++-common/reduction-6.c b/libgomp/testsuite/libgomp.c-c++-common/reduction-6.c
+new file mode 100644
+index 00000000000..21540512e23
+--- /dev/null
++++ b/libgomp/testsuite/libgomp.c-c++-common/reduction-6.c
+@@ -0,0 +1,1 @@
++
+--
+2.25.1
+=== 0001-rs6000-Support-doubleword ===
+From f700e4b0ee3ef53b48975cf89be26b9177e3a3f3 Mon Sep 17 00:00:00 2001
+From: Xionghu Luo <luoxhu@linux.ibm.com>
+Date: Tue, 8 Jun 2021 21:48:12 -0500
+Subject: [PATCH] rs6000: Support doubleword swaps removal in rot64 load store
+ [PR100085]
+
+gcc/testsuite/ChangeLog:
+
+ * gcc.target/powerpc/pr100085.c: New test.
+---
+diff --git a/gcc/testsuite/gcc.target/powerpc/pr100085.c b/gcc/testsuite/gcc.target/powerpc/pr100085.c
+new file mode 100644
+index 00000000000..7d8b147b127
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/powerpc/pr100085.c
+@@ -0,0 +1,1 @@
++
+--
+2.25.1
+=== pr-wrong-comp.patch ===
+From 5194b51ed9714808d88827531e91474895b6c706 Mon Sep 17 00:00:00 2001
+From: Jason Merrill <jason@redhat.com>
+Date: Thu, 16 Jan 2020 16:55:39 -0500
+Subject: [PATCH 0121/2034] PR some/93286 - ICE with __is_constructible and
+ variadic template.
+
+gcc/testsuite/ChangeLog:
+
+ PR c++/93286
+ * gcc.target/powerpc/pr100085.c: New test.
+---
+diff --git a/gcc/testsuite/gcc.target/powerpc/pr100085.c b/gcc/testsuite/gcc.target/powerpc/pr100085.c
+new file mode 100644
+index 00000000000..7d8b147b127
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/powerpc/pr100085.c
+@@ -0,0 +1,1 @@
++
+--
+2.25.1
+==== copyright-years.patch ===
+From 99dee82307f1e163e150c9c810452979994047ce Mon Sep 17 00:00:00 2001
+From: Jakub Jelinek <jakub@redhat.com>
+Date: Mon, 4 Jan 2021 10:26:59 +0100
+Subject: [PATCH] Update copyright years.
+
+---
+diff --git a/lto-plugin/lto-plugin.c b/lto-plugin/lto-plugin.c
+new file mode 100644
+index 6f67552d075..32478f070e8 100644
+--- a/lto-plugin/lto-plugin.c
++++ b/lto-plugin/lto-plugin.c
+@@ -0,0 +1,1 @@
++
+--
+2.25.1
diff --git a/contrib/gcc-git-customization.sh b/contrib/gcc-git-customization.sh
index e7e6662..aca61b7 100755
--- a/contrib/gcc-git-customization.sh
+++ b/contrib/gcc-git-customization.sh
@@ -28,7 +28,7 @@ git config alias.gcc-undescr \!"f() { o=\$(git config --get gcc-config.upstream)
git config alias.gcc-verify '!f() { "`git rev-parse --show-toplevel`/contrib/gcc-changelog/git_check_commit.py" $@; } ; f'
git config alias.gcc-backport '!f() { "`git rev-parse --show-toplevel`/contrib/git-backport.py" $@; } ; f'
git config alias.gcc-mklog '!f() { "`git rev-parse --show-toplevel`/contrib/mklog.py" $@; } ; f'
-git config alias.gcc-commit-mklog '!f() { GCC_FORCE_MKLOG=1 git commit "$@"; }; f'
+git config alias.gcc-commit-mklog '!f() { "`git rev-parse --show-toplevel`/contrib/git-commit-mklog.py" "$@"; }; f'
# Make diff on MD files use "(define" as a function marker.
# Use this in conjunction with a .gitattributes file containing
diff --git a/contrib/gcc_update b/contrib/gcc_update
index 45a27b7..ce47254 100755
--- a/contrib/gcc_update
+++ b/contrib/gcc_update
@@ -141,10 +141,6 @@ libgomp/testsuite/Makefile.in: libgomp/testsuite/Makefile.am libgomp/aclocal.m4
libgomp/configure.ac: libgomp/plugin/configfrag.ac
libgomp/configure: libgomp/configure.ac libgomp/aclocal.m4
libgomp/config.h.in: libgomp/configure.ac libgomp/aclocal.m4
-libhsail-rt/aclocal.m4: libhsail-rt/configure.ac
-libhsail-rt/Makefile.in: libhsail-rt/Makefile.am libhsail-rt/aclocal.m4
-libhsail-rt/configure: libhsail-rt/configure.ac libhsail-rt/aclocal.m4
-libhsail-rt/target-config.h.in: libhsail-rt/configure.ac libhsail-rt/aclocal.m4
libitm/aclocal.m4: libitm/configure.ac libitm/acinclude.m4
libitm/Makefile.in: libitm/Makefile.am libitm/aclocal.m4
libitm/testsuite/Makefile.in: libitm/testsuite/Makefile.am libitm/aclocal.m4
@@ -243,7 +239,7 @@ apply_patch () {
}
# Check whether this indeed looks like a local tree.
-if [ ! -f gcc/version.c ]; then
+if [ ! -f gcc/reload.c ]; then
echo "This does not seem to be a GCC tree!"
exit
fi
@@ -336,7 +332,22 @@ case $vcs_type in
exit 1
fi
- revision=`$GCC_GIT log -n1 --pretty=tformat:%p:%t:%H`
+ # Open-coded version of "git gcc-descr" from contrib/gcc-git-customization.sh
+ revision=`$GCC_GIT log -n1 --pretty=tformat:%h`
+ r=`$GCC_GIT describe --all --match 'basepoints/gcc-[0-9]*' HEAD \
+ | sed -n 's,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)-\([0-9]\+\)-g[0-9a-f]*$,r\2-\3,p;s,^\(tags/\)\?basepoints/gcc-\([0-9]\+\)$,r\2-0,p'`;
+ if test -n $r; then
+ o=`$GCC_GIT config --get gcc-config.upstream`;
+ rr=`echo $r | sed -n 's,^r\([0-9]\+\)-[0-9]\+\(-g[0-9a-f]\+\)\?$,\1,p'`;
+ if $GCC_GIT rev-parse --verify --quiet ${o:-origin}/releases/gcc-$rr >/dev/null; then
+ m=releases/gcc-$rr;
+ else
+ m=master;
+ fi;
+ if $GCC_GIT merge-base --is-ancestor HEAD ${o:-origin}/$m; then
+ revision=${r}-g${revision};
+ fi
+ fi
branch=`$GCC_GIT name-rev --name-only HEAD || :`
;;
@@ -418,6 +429,6 @@ rm -f LAST_UPDATED gcc/REVISION
date
echo "`TZ=UTC date` (revision $revision)"
} > LAST_UPDATED
-echo "[$branch revision $revision]" > gcc/REVISION
+echo "[$branch $revision]" > gcc/REVISION
touch_files_reexec
diff --git a/contrib/gen_autofdo_event.py b/contrib/gen_autofdo_event.py
index c97460c..1eb6f1d 100755
--- a/contrib/gen_autofdo_event.py
+++ b/contrib/gen_autofdo_event.py
@@ -46,20 +46,29 @@ args = ap.parse_args()
eventmap = collections.defaultdict(list)
-def get_cpu_str():
- with open('/proc/cpuinfo', 'r') as c:
- vendor, fam, model = None, None, None
- for j in c:
- n = j.split()
- if n[0] == 'vendor_id':
- vendor = n[2]
- elif n[0] == 'model' and n[1] == ':':
- model = int(n[2])
- elif n[0] == 'cpu' and n[1] == 'family':
- fam = int(n[3])
- if vendor and fam and model:
- return "%s-%d-%X" % (vendor, fam, model), model
- return None, None
+def get_cpustr():
+ cpuinfo = os.getenv("CPUINFO")
+ if cpuinfo is None:
+ cpuinfo = '/proc/cpuinfo'
+ f = open(cpuinfo, 'r')
+ cpu = [None, None, None, None]
+ for j in f:
+ n = j.split()
+ if n[0] == 'vendor_id':
+ cpu[0] = n[2]
+ elif n[0] == 'model' and n[1] == ':':
+ cpu[2] = int(n[2])
+ elif n[0] == 'cpu' and n[1] == 'family':
+ cpu[1] = int(n[3])
+ elif n[0] == 'stepping' and n[1] == ':':
+ cpu[3] = int(n[2])
+ if all(v is not None for v in cpu):
+ break
+ # stepping for SKX only
+ stepping = cpu[0] == "GenuineIntel" and cpu[1] == 6 and cpu[2] == 0x55
+ if stepping:
+ return "%s-%d-%X-%X" % tuple(cpu)
+ return "%s-%d-%X" % tuple(cpu)[:3]
def find_event(eventurl, model):
print >>sys.stderr, "Downloading", eventurl
@@ -81,7 +90,7 @@ def find_event(eventurl, model):
return found
if not args.all:
- cpu, model = get_cpu_str()
+ cpu = get_cpu_str()
if not cpu:
sys.exit("Unknown CPU type")
@@ -94,7 +103,8 @@ for j in u:
n = j.rstrip().split(',')
if len(n) >= 4 and (args.all or n[0] == cpu) and n[3] == "core":
if args.all:
- vendor, fam, model = n[0].split("-")
+ components = n[0].split("-")
+ model = components[2]
model = int(model, 16)
cpufound += 1
found += find_event(baseurl + n[2], model)
@@ -146,7 +156,17 @@ case `egrep -q "^cpu family\s*: 6" /proc/cpuinfo &&
echo >&2 "Unknown CPU. Run contrib/gen_autofdo_event.py --all --script to update script."
exit 1 ;;'''
print "esac"
- print 'exec perf record -e $E -b "$@"'
+ print "set -x"
+ print 'if ! perf record -e $E -b "$@" ; then'
+ print ' # PEBS may not actually be working even if the processor supports it'
+ print ' # (e.g., in a virtual machine). Trying to run without /p.'
+ print ' set +x'
+ print ' echo >&2 "Retrying without /p."'
+ print ' E="$(echo "${E}" | sed -e \'s/\/p/\//\')"'
+ print ' set -x'
+ print ' exec perf record -e $E -b "$@"'
+ print ' set +x'
+ print 'fi'
if cpufound == 0 and not args.all:
sys.exit('CPU %s not found' % cpu)
diff --git a/contrib/gennews b/contrib/gennews
index be8b55f..cd773cd 100755
--- a/contrib/gennews
+++ b/contrib/gennews
@@ -3,7 +3,7 @@
# Script to generate the NEWS file from online release notes.
# Contributed by Joseph Myers <jsm28@cam.ac.uk>.
#
-# Copyright (C) 2000-2019 Free Software Foundation, Inc.
+# Copyright (C) 2000-2021 Free Software Foundation, Inc.
# This file is part of GCC.
#
# GCC is free software; you can redistribute it and/or modify
@@ -23,6 +23,8 @@
website=http://gcc.gnu.org/
files="
+ gcc-11/index.html gcc-11/changes.html
+ gcc-10/index.html gcc-10/changes.html
gcc-9/index.html gcc-9/changes.html
gcc-8/index.html gcc-8/changes.html
gcc-7/index.html gcc-7/changes.html
diff --git a/contrib/git-commit-mklog.py b/contrib/git-commit-mklog.py
new file mode 100755
index 0000000..eda3fc4
--- /dev/null
+++ b/contrib/git-commit-mklog.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python3
+
+# Copyright (C) 2020 Free Software Foundation, Inc.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING. If not, write to
+# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+#
+# The script is wrapper for git commit-mklog alias where it parses
+# -b/--pr-numbers argument and passes it via environment variable
+# to mklog.py script.
+
+import argparse
+import os
+import subprocess
+
+if __name__ == '__main__':
+ children_args = []
+ myenv = os.environ.copy()
+
+ parser = argparse.ArgumentParser(description='git-commit-mklog wrapped')
+ parser.add_argument('-b', '--pr-numbers', action='store',
+ type=lambda arg: arg.split(','), nargs='?',
+ help='Add the specified PRs (comma separated)')
+ parser.add_argument('-p', '--fill-up-bug-titles', action='store_true',
+ help='Download title of mentioned PRs')
+ parser.add_argument('--co',
+ help='Add Co-Authored-By trailer (comma separated)')
+ args, unknown_args = parser.parse_known_args()
+
+ myenv['GCC_FORCE_MKLOG'] = '1'
+ mklog_args = []
+ if args.pr_numbers:
+ mklog_args.append(f'-b {",".join(args.pr_numbers)}')
+ if args.fill_up_bug_titles:
+ mklog_args.append('-p')
+
+ if mklog_args:
+ myenv['GCC_MKLOG_ARGS'] = ' '.join(mklog_args)
+
+ if args.co:
+ for author in args.co.split(','):
+ unknown_args.append(f'--trailer "Co-Authored-By: {author}"')
+
+ commit_args = ' '.join(unknown_args)
+ subprocess.run(f'git commit {commit_args}', shell=True, env=myenv)
diff --git a/contrib/mklog.py b/contrib/mklog.py
index 6509886..cd5ef0b 100755
--- a/contrib/mklog.py
+++ b/contrib/mklog.py
@@ -38,9 +38,15 @@ import requests
from unidiff import PatchSet
+LINE_LIMIT = 100
+TAB_WIDTH = 8
+CO_AUTHORED_BY_PREFIX = 'co-authored-by: '
+
pr_regex = re.compile(r'(\/(\/|\*)|[Cc*!])\s+(?P<pr>PR [a-z+-]+\/[0-9]+)')
+prnum_regex = re.compile(r'PR (?P<comp>[a-z+-]+)/(?P<num>[0-9]+)')
dr_regex = re.compile(r'(\/(\/|\*)|[Cc*!])\s+(?P<dr>DR [0-9]+)')
dg_regex = re.compile(r'{\s+dg-(error|warning)')
+pr_filename_regex = re.compile(r'(^|[\W_])[Pp][Rr](?P<pr>\d{4,})')
identifier_regex = re.compile(r'^([a-zA-Z0-9_#].*)')
comment_regex = re.compile(r'^\/\*')
struct_regex = re.compile(r'^(class|struct|union|enum)\s+'
@@ -51,7 +57,7 @@ fn_regex = re.compile(r'([a-zA-Z_][^()\s]*)\s*\([^*]')
template_and_param_regex = re.compile(r'<[^<>]*>')
md_def_regex = re.compile(r'\(define.*\s+"(.*)"')
bugzilla_url = 'https://gcc.gnu.org/bugzilla/rest.cgi/bug?id=%s&' \
- 'include_fields=summary'
+ 'include_fields=summary,component'
function_extensions = {'.c', '.cpp', '.C', '.cc', '.h', '.inc', '.def', '.md'}
@@ -65,13 +71,15 @@ PATCH must be generated using diff(1)'s -up or -cp options
"""
script_folder = os.path.realpath(__file__)
-gcc_root = os.path.dirname(os.path.dirname(script_folder))
+root = os.path.dirname(os.path.dirname(script_folder))
+
+firstpr = ''
def find_changelog(path):
folder = os.path.split(path)[0]
while True:
- if os.path.exists(os.path.join(gcc_root, folder, 'ChangeLog')):
+ if os.path.exists(os.path.join(root, folder, 'ChangeLog')):
return folder
folder = os.path.dirname(folder)
if folder == '':
@@ -115,26 +123,53 @@ def sort_changelog_files(changed_file):
def get_pr_titles(prs):
- output = ''
- for pr in prs:
+ output = []
+ for idx, pr in enumerate(prs):
pr_id = pr.split('/')[-1]
r = requests.get(bugzilla_url % pr_id)
bugs = r.json()['bugs']
if len(bugs) == 1:
- output += '%s - %s\n' % (pr, bugs[0]['summary'])
- print(output)
+ prs[idx] = 'PR %s/%s' % (bugs[0]['component'], pr_id)
+ out = '%s - %s\n' % (prs[idx], bugs[0]['summary'])
+ if out not in output:
+ output.append(out)
if output:
- output += '\n'
- return output
+ output.append('')
+ return '\n'.join(output)
+
+
+def append_changelog_line(out, relative_path, text):
+ line = f'\t* {relative_path}:'
+ if len(line.replace('\t', ' ' * TAB_WIDTH) + ' ' + text) <= LINE_LIMIT:
+ out += f'{line} {text}\n'
+ else:
+ out += f'{line}\n'
+ out += f'\t{text}\n'
+ return out
+
+def get_rel_path_if_prefixed(path, folder):
+ if path.startswith(folder):
+ return path[len(folder):].lstrip('/')
+ else:
+ return path
-def generate_changelog(data, no_functions=False, fill_pr_titles=False):
+
+def generate_changelog(data, no_functions=False, fill_pr_titles=False,
+ additional_prs=None):
changelogs = {}
changelog_list = []
prs = []
out = ''
diff = PatchSet(data)
-
+ global firstpr
+
+ if additional_prs:
+ for apr in additional_prs:
+ if not apr.startswith('PR ') and '/' in apr:
+ apr = 'PR ' + apr
+ if apr not in prs:
+ prs.append(apr)
for file in diff:
# skip files that can't be parsed
if file.path == '/dev/null':
@@ -150,53 +185,78 @@ def generate_changelog(data, no_functions=False, fill_pr_titles=False):
# Only search first ten lines as later lines may
# contains commented code which a note that it
# has not been tested due to a certain PR or DR.
+ this_file_prs = []
for line in list(file)[0][0:10]:
m = pr_regex.search(line.value)
if m:
pr = m.group('pr')
if pr not in prs:
prs.append(pr)
+ this_file_prs.append(pr.split('/')[-1])
else:
m = dr_regex.search(line.value)
if m:
dr = m.group('dr')
if dr not in prs:
prs.append(dr)
+ this_file_prs.append(dr.split('/')[-1])
elif dg_regex.search(line.value):
# Found dg-warning/dg-error line
break
+ # PR number in the file name
+ fname = os.path.basename(file.path)
+ m = pr_filename_regex.search(fname)
+ if m:
+ pr = m.group('pr')
+ pr2 = 'PR ' + pr
+ if pr not in this_file_prs and pr2 not in prs:
+ prs.append(pr2)
+
+ if prs:
+ firstpr = prs[0]
if fill_pr_titles:
out += get_pr_titles(prs)
+ # print list of PR entries before ChangeLog entries
+ if prs:
+ if not out:
+ out += '\n'
+ for pr in prs:
+ out += '\t%s\n' % pr
+ out += '\n'
+
# sort ChangeLog so that 'testsuite' is at the end
for changelog in sorted(changelog_list, key=lambda x: 'testsuite' in x):
files = changelogs[changelog]
out += '%s:\n' % os.path.join(changelog, 'ChangeLog')
out += '\n'
- for pr in prs:
- out += '\t%s\n' % pr
# new and deleted files should be at the end
for file in sorted(files, key=sort_changelog_files):
assert file.path.startswith(changelog)
in_tests = 'testsuite' in changelog or 'testsuite' in file.path
- relative_path = file.path[len(changelog):].lstrip('/')
+ relative_path = get_rel_path_if_prefixed(file.path, changelog)
functions = []
if file.is_added_file:
- msg = 'New test' if in_tests else 'New file'
- out += '\t* %s: %s.\n' % (relative_path, msg)
+ msg = 'New test.' if in_tests else 'New file.'
+ out = append_changelog_line(out, relative_path, msg)
elif file.is_removed_file:
- out += '\t* %s: Removed.\n' % (relative_path)
+ out = append_changelog_line(out, relative_path, 'Removed.')
elif hasattr(file, 'is_rename') and file.is_rename:
- out += '\t* %s: Moved to...\n' % (relative_path)
- new_path = file.target_file[2:]
# A file can be theoretically moved to a location that
# belongs to a different ChangeLog. Let user fix it.
- if new_path.startswith(changelog):
- new_path = new_path[len(changelog):].lstrip('/')
- out += '\t* %s: ...here.\n' % (new_path)
+ #
+ # Since unidiff 0.7.0, path.file == path.target_file[2:],
+ # it used to be path.source_file[2:]
+ relative_path = get_rel_path_if_prefixed(file.source_file[2:],
+ changelog)
+ out = append_changelog_line(out, relative_path, 'Moved to...')
+ new_path = get_rel_path_if_prefixed(file.target_file[2:],
+ changelog)
+ out += f'\t* {new_path}: ...here.\n'
elif os.path.basename(file.path) in generated_files:
out += '\t* %s: Regenerate.\n' % (relative_path)
+ append_changelog_line(out, relative_path, 'Regenerate.')
else:
if not no_functions:
for hunk in file:
@@ -269,14 +329,26 @@ def update_copyright(data):
f.write(content)
+def skip_line_in_changelog(line):
+ if line.lower().startswith(CO_AUTHORED_BY_PREFIX) or line.startswith('#'):
+ return False
+ return True
+
+
if __name__ == '__main__':
parser = argparse.ArgumentParser(description=help_message)
parser.add_argument('input', nargs='?',
help='Patch file (or missing, read standard input)')
+ parser.add_argument('-b', '--pr-numbers', action='store',
+ type=lambda arg: arg.split(','), nargs='?',
+ help='Add the specified PRs (comma separated)')
parser.add_argument('-s', '--no-functions', action='store_true',
help='Do not generate function names in ChangeLogs')
parser.add_argument('-p', '--fill-up-bug-titles', action='store_true',
help='Download title of mentioned PRs')
+ parser.add_argument('-d', '--directory',
+ help='Root directory where to search for ChangeLog '
+ 'files')
parser.add_argument('-c', '--changelog',
help='Append the ChangeLog to a git commit message '
'file')
@@ -285,20 +357,28 @@ if __name__ == '__main__':
args = parser.parse_args()
if args.input == '-':
args.input = None
+ if args.directory:
+ root = args.directory
data = open(args.input) if args.input else sys.stdin
if args.update_copyright:
update_copyright(data)
else:
output = generate_changelog(data, args.no_functions,
- args.fill_up_bug_titles)
+ args.fill_up_bug_titles, args.pr_numbers)
if args.changelog:
lines = open(args.changelog).read().split('\n')
- start = list(takewhile(lambda l: not l.startswith('#'), lines))
+ start = list(takewhile(skip_line_in_changelog, lines))
end = lines[len(start):]
with open(args.changelog, 'w') as f:
+ if not start or not start[0]:
+ # initial commit subject line 'component: [PRnnnnn]'
+ m = prnum_regex.match(firstpr)
+ if m:
+ title = f'{m.group("comp")}: [PR{m.group("num")}]'
+ start.insert(0, title)
if start:
- # appent empty line
+ # append empty line
if start[-1] != '':
start.append('')
else:
diff --git a/contrib/prepare-commit-msg b/contrib/prepare-commit-msg
index 969847d..5da8784 100755
--- a/contrib/prepare-commit-msg
+++ b/contrib/prepare-commit-msg
@@ -78,4 +78,4 @@ else
tee="cat"
fi
-git $cmd | $tee | git gcc-mklog -c "$COMMIT_MSG_FILE"
+git $cmd | $tee | git gcc-mklog $GCC_MKLOG_ARGS -c "$COMMIT_MSG_FILE"
diff --git a/contrib/prerequisites.md5 b/contrib/prerequisites.md5
index cc71e0f..272f7a4 100644
--- a/contrib/prerequisites.md5
+++ b/contrib/prerequisites.md5
@@ -1,4 +1,4 @@
86ee6e54ebfc4a90b643a65e402c4048 gmp-6.1.0.tar.bz2
-b8a2f6b0e68bef46e53da2ac439e1cf4 mpfr-3.1.4.tar.bz2
+320c28198def956aeacdb240b46b8969 mpfr-3.1.6.tar.bz2
d6a1d5f8ddea3abd2cc3e98f58352d26 mpc-1.0.3.tar.gz
11436d6b205e516635b666090b94ab32 isl-0.18.tar.bz2
diff --git a/contrib/prerequisites.sha512 b/contrib/prerequisites.sha512
index cf6b93b..7160145 100644
--- a/contrib/prerequisites.sha512
+++ b/contrib/prerequisites.sha512
@@ -1,4 +1,4 @@
3c82aeab9c1596d4da8afac2eec38e429e84f3211e1a572cf8fd2b546493c44c039b922a1133eaaa48bd7f3e11dbe795a384e21ed95cbe3ecc58d7ac02246117 gmp-6.1.0.tar.bz2
-51066066ff2c12ed2198605ecf68846b0c96b548adafa5b80e0c786d0df488411a5e8973358fce7192dc977ad4e68414cf14500e3c39746de62465eb145bb819 mpfr-3.1.4.tar.bz2
+0c310dd7956be527884f8059c195a5aca1042b089d0927ac6341e6310b1250a7059bc61aaaab4dfb76c6ab8b67e440878ca203f72674529bbcb46770ed9b6885 mpfr-3.1.6.tar.bz2
0028b76df130720c1fad7de937a0d041224806ce5ef76589f19c7b49d956071a683e2f20d154c192a231e69756b19e48208f2889b0c13950ceb7b3cfaf059a43 mpc-1.0.3.tar.gz
85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94 isl-0.18.tar.bz2
diff --git a/contrib/test_mklog.py b/contrib/test_mklog.py
index 7e95ec1..bf2f280 100755
--- a/contrib/test_mklog.py
+++ b/contrib/test_mklog.py
@@ -240,6 +240,9 @@ index 4ad78c1f77b..6687b368038 100644
'''
EXPECTED4 = '''\
+
+ PR 50209
+
gcc/ChangeLog:
* ipa-icf.c:
@@ -317,9 +320,10 @@ index 00000000000..dcc8999c446
EXPECTED5 = '''\
PR target/95046 - Vectorize V2SFmode operations
+ PR target/95046
+
gcc/testsuite/ChangeLog:
- PR target/95046
* gcc.target/i386/pr95046-6.c: New test.
'''
@@ -377,9 +381,11 @@ index 00000000000..f3d6d11e61e
'''
EXPECTED7 = '''\
-gcc/testsuite/ChangeLog:
DR 2237
+
+gcc/testsuite/ChangeLog:
+
* g++.dg/DRs/dr2237.C: New test.
'''
@@ -437,6 +443,27 @@ gcc/ChangeLog:
'''
+PATCH10 = '''\
+diff --git a/libgomp/doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst b/libgomp/doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst
+new file mode 100644
+index 00000000000..ad3c6d856fc
+--- /dev/null
++++ b/libgomp/doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst
+@@ -0,0 +1,3 @@
++
++
++
+
+'''
+
+EXPECTED10 = '''\
+libgomp/ChangeLog:
+
+ * doc/the-libgomp-abi/implementing-firstprivate-lastprivate-copyin-and-copyprivate-clauses.rst:
+ New file.
+
+'''
+
class TestMklog(unittest.TestCase):
def test_macro_definition(self):
changelog = generate_changelog(PATCH1)
@@ -479,3 +506,7 @@ class TestMklog(unittest.TestCase):
def test_define_macro_parsing(self):
changelog = generate_changelog(PATCH9)
assert changelog == EXPECTED9
+
+ def test_long_filenames(self):
+ changelog = generate_changelog(PATCH10)
+ assert changelog == EXPECTED10
diff --git a/contrib/texi2pod.pl b/contrib/texi2pod.pl
index 608dff4..5fcf0a1 100755
--- a/contrib/texi2pod.pl
+++ b/contrib/texi2pod.pl
@@ -210,6 +210,7 @@ while(<$inf>) {
s/\@TeX\{\}/TeX/g;
s/\@pounds\{\}/\#/g;
s/\@minus(?:\{\})?/-/g;
+ s/\@tie\{\}/ /g;
s/\\,/,/g;
# Now the ones that have to be replaced by special escapes
diff --git a/contrib/update-copyright.py b/contrib/update-copyright.py
index 5603b8e..2b2bb11 100755
--- a/contrib/update-copyright.py
+++ b/contrib/update-copyright.py
@@ -735,6 +735,7 @@ class GCCCmdLine (CmdLine):
self.add_dir ('.', TopLevelFilter())
# boehm-gc is imported from upstream.
+ self.add_dir ('c++tools')
self.add_dir ('config', ConfigFilter())
# contrib isn't really part of GCC.
self.add_dir ('fixincludes')
@@ -755,7 +756,6 @@ class GCCCmdLine (CmdLine):
self.add_dir ('libgfortran')
# libgo is imported from upstream.
self.add_dir ('libgomp')
- self.add_dir ('libhsail-rt')
self.add_dir ('libiberty')
self.add_dir ('libitm')
self.add_dir ('libobjc')
@@ -771,6 +771,7 @@ class GCCCmdLine (CmdLine):
# zlib is imported from upstream.
self.default_dirs = [
+ 'c++tools',
'gcc',
'include',
'libada',
@@ -782,7 +783,6 @@ class GCCCmdLine (CmdLine):
'libgcc',
'libgfortran',
'libgomp',
- 'libhsail-rt',
'libiberty',
'libitm',
'libobjc',
diff --git a/contrib/vimrc b/contrib/vimrc
index 356d455..b7a8ab7 100644
--- a/contrib/vimrc
+++ b/contrib/vimrc
@@ -42,7 +42,7 @@ function! SetStyle()
if &filetype == "gitcommit"
setlocal textwidth=72
else
- setlocal textwidth=80
+ setlocal textwidth=79
endif
setlocal formatoptions-=ro formatoptions+=cqlt
if index(l:c_exts, l:ext) != -1 || &filetype == "c" || &filetype == "cpp"