diff options
author | Ian Lance Taylor <iant@golang.org> | 2021-09-13 10:37:49 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2021-09-13 10:37:49 -0700 |
commit | e252b51ccde010cbd2a146485d8045103cd99533 (patch) | |
tree | e060f101cdc32bf5e520de8e5275db9d4236b74c /contrib | |
parent | f10c7c4596dda99d2ee872c995ae4aeda65adbdf (diff) | |
parent | 104c05c5284b7822d770ee51a7d91946c7e56d50 (diff) | |
download | gcc-e252b51ccde010cbd2a146485d8045103cd99533.zip gcc-e252b51ccde010cbd2a146485d8045103cd99533.tar.gz gcc-e252b51ccde010cbd2a146485d8045103cd99533.tar.bz2 |
Merge from trunk revision 104c05c5284b7822d770ee51a7d91946c7e56d50.
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/ChangeLog | 244 | ||||
-rw-r--r-- | contrib/config-list.mk | 6 | ||||
-rwxr-xr-x | contrib/download_prerequisites | 63 | ||||
-rwxr-xr-x | contrib/gcc-changelog/git_check_commit.py | 9 | ||||
-rwxr-xr-x | contrib/gcc-changelog/git_commit.py | 87 | ||||
-rwxr-xr-x | contrib/gcc-changelog/git_email.py | 47 | ||||
-rwxr-xr-x | contrib/gcc-changelog/git_repository.py | 7 | ||||
-rwxr-xr-x | contrib/gcc-changelog/git_update_version.py | 14 | ||||
-rwxr-xr-x | contrib/gcc-changelog/test_email.py | 42 | ||||
-rw-r--r-- | contrib/gcc-changelog/test_patches.txt | 525 | ||||
-rwxr-xr-x | contrib/gcc-git-customization.sh | 2 | ||||
-rwxr-xr-x | contrib/gcc_update | 25 | ||||
-rwxr-xr-x | contrib/gen_autofdo_event.py | 54 | ||||
-rwxr-xr-x | contrib/gennews | 4 | ||||
-rwxr-xr-x | contrib/git-commit-mklog.py | 59 | ||||
-rwxr-xr-x | contrib/mklog.py | 130 | ||||
-rwxr-xr-x | contrib/prepare-commit-msg | 2 | ||||
-rw-r--r-- | contrib/prerequisites.md5 | 2 | ||||
-rw-r--r-- | contrib/prerequisites.sha512 | 2 | ||||
-rwxr-xr-x | contrib/test_mklog.py | 35 | ||||
-rwxr-xr-x | contrib/texi2pod.pl | 1 | ||||
-rwxr-xr-x | contrib/update-copyright.py | 4 | ||||
-rw-r--r-- | contrib/vimrc | 2 |
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" |