Commit Graph

923 Commits

Author SHA1 Message Date
Martin Liska
fbbce1c6e9 changelog: Allow wildcard pattern only.
contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Allow wildcard pattern only.
2020-11-30 10:40:36 +01:00
GCC Administrator
e87559d202 Daily bump. 2020-11-28 00:16:38 +00:00
Martin Liska
b8ae0812ee changelog: allow flexible "cherry picked" format.
It handles the following:
(cherry picked from commit c0c7270cc4 (testsuite changes only))

contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Use regex for cherry pick prefix.
	* gcc-changelog/test_email.py: Test it.
	* gcc-changelog/test_patches.txt: Likewise.
2020-11-27 13:43:25 +01:00
GCC Administrator
1e2c9a2761 Daily bump. 2020-11-25 09:34:01 +00:00
Martin Liska
d3e763efcb changelog: fix parsing of a revert commit
contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Use revert_regex instead
	of string prefix.  Convert sets to literals.
2020-11-25 07:56:57 +01:00
GCC Administrator
29c5d9ceb9 Daily bump. 2020-11-17 00:16:27 +00:00
Martin Liska
d6d9561c2e mklog: support unidiff 0.5.4
contrib/ChangeLog:

	* mklog.py: Do not call read on an input stream.
	Fix some flake8 issues.
2020-11-16 20:26:28 +01:00
GCC Administrator
2da7ee050c Daily bump. 2020-11-08 00:16:31 +00:00
Lewis Hyatt
497c9f8d4d libcpp: Update cpp_wcwidth() to Unicode 13.0.0
generated_cpp_wcwidth.h was regenerated using Unicode 13.0.0 data files. No
material changes to the parsing scripts (either GCC- or glibc-sourced) were
necessary; glibc's utf8_gen.py was tweaked slightly by glibc and matched here.

contrib/ChangeLog:

	* unicode/EastAsianWidth.txt: Update to Unicode 13.0.0.
	* unicode/PropList.txt: Likewise.
	* unicode/README: Likewise.
	* unicode/UnicodeData.txt: Likewise.
	* unicode/from_glibc/unicode_utils.py: Update to latest glibc version.
	* unicode/from_glibc/utf8_gen.py: Likewise.

libcpp/ChangeLog:

	* generated_cpp_wcwidth.h: Regenerated from Unicode 13.0.0 data.
2020-11-07 09:36:43 -05:00
GCC Administrator
44cab2d8fd Daily bump. 2020-11-07 00:16:39 +00:00
Martin Liska
f176773bc2 gcc-changelog: prevent double cherry-pick line
contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Add new check.
	* gcc-changelog/test_email.py: Test it.
	* gcc-changelog/test_patches.txt: Add new patch.
2020-11-06 13:33:41 +01:00
GCC Administrator
35c125cb6a Daily bump. 2020-11-05 00:16:36 +00:00
Martin Liska
10a50d261e gcc-changelog: Change parse_git_revisions strict argument to True.
Change the default that is used by GIT server hook and also
by git_update_version.py. Both should use True now.

contrib/ChangeLog:

	* gcc-changelog/git_repository.py: Set strict=True
	for parse_git_revisions as a default.
2020-11-04 11:01:58 +01:00
Tobias Burnus
619039de36 gcc-changelog/git_commit.py: Check for missing description
Especially when using mklog.py, it is simply to forget to fill in
the entries after the '\t* file.c (section):' or '\t(section):'.

contrib/ChangeLog:

	* gcc-changelog/git_commit.py (item_parenthesis_empty_regex,
	item_parenthesis_regex): Add.
	(check_for_empty_description): Use them.
	* gcc-changelog/test_email.py (test_emptry_entry_desc,
	test_emptry_entry_desc_2): Add.
	* gcc-changelog/test_patches.txt: Add two testcases for it.
2020-11-04 10:35:54 +01:00
GCC Administrator
fd2325ea60 Daily bump. 2020-11-04 00:16:41 +00:00
Tobias Burnus
84ed8d2c88 gcc-changelog/git_email.py: Support older unidiff modules
contrib/ChangeLog:

	* gcc-changelog/git_email.py: Add unidiff_supports_renaming check.
2020-11-03 17:46:36 +01:00
Martin Liska
19859d6ba6 Add setup.cfg for pytest.
contrib/ChangeLog:

	* gcc-changelog/setup.cfg: New file.
2020-11-03 17:32:10 +01:00
GCC Administrator
88ce3d5fbb Daily bump. 2020-11-02 20:53:00 +00:00
Martin Liska
63d0da8852 gcc-changelog: Handle situations like '* tree-vect-slp.c (): '
contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Handle empty groups in
	file description.
	* gcc-changelog/test_email.py: New test.
	* gcc-changelog/test_patches.txt: Likewise.
2020-10-30 11:24:49 +01:00
GCC Administrator
44135373fc Daily bump. 2020-09-22 00:16:31 +00:00
Tobias Burnus
ed5ae55e93 mklog.py: Parse first 10 lines for PR/DR number
contrib/ChangeLog:

	* mklog.py: Parse first 10 lines for PR/DR number
	not only the first line.
2020-09-21 11:22:49 +02:00
GCC Administrator
2aad20c094 Daily bump. 2020-09-18 00:16:24 +00:00
Dimitrij Mojoski
172178c0c3 Autodetect C++ dialect in use for clang-format
PR other//97076
	* clang-format: Autodetect C++ standard in use rather than
	forcing C++03.
2020-09-17 15:22:33 -06:00
GCC Administrator
57ea089421 Daily bump. 2020-08-27 00:16:27 +00:00
Iain Buclaw
64c6042246 contrib: Add OPT-enable-obsolete to tile*-*-*
The tile*-*-* targets were marked as obsolete in SVN r259724.

contrib/ChangeLog:

	* config-list.mk (LIST): Add OPT-enable-obsolete to tilegx-linux-gnu,
	tilegxbe-linux-gnu, and tilepro-linux-gnu.
2020-08-26 10:03:56 +02:00
GCC Administrator
bea7a39103 Daily bump. 2020-07-30 00:16:24 +00:00
Martin Liska
5175857714
gcc-changelog: fix combining of arguments.
contrib/ChangeLog:

2020-07-29  Martin Liska  <mliska@suse.cz>

	* git-backport.py: fix how are ChangeLog paths combined.
2020-07-29 14:17:43 +02:00
GCC Administrator
9bb403dca6 Daily bump. 2020-07-24 00:16:20 +00:00
Patrick Palka
914966e499 contrib/vimrc: detect more C-like files
Currently this script doesn't set the indentation style for the standard
library headers under libstdc++/ because they lack a file extension.
But they do have a modeline, so the file type is still set appropriately
by Vim.  So by inspecting &filetype, we can also detect these standard
library headers as C-like files.

contrib/ChangeLog:

	* vimrc (SetStyle): Also inspect &filetype to determine whether
	a file is C-like.
2020-07-23 13:34:00 -04:00
Martin Liska
02cada26e4
gcc-changelog: fix when somebody reverts a backport
contrib/ChangeLog:

	* gcc-changelog/git_commit.py: When reverting a backport,
	we should print only Revert header.
2020-07-23 10:43:25 +02:00
GCC Administrator
ab660b01c3 Daily bump. 2020-07-18 00:16:24 +00:00
Jonathan Wakely
0c1d1c0103 gcc-changelog: Fix typo in output
contrib/ChangeLog:

	* gcc-changelog/git_update_version.py: Fix typo.
2020-07-17 09:53:19 +01:00
GCC Administrator
865362954f Daily bump. 2020-07-11 00:16:31 +00:00
Mike Nolta
def4c0b47e This is a harmless bug, as the script still works, but curl's '-O' option isn't the same as wget's.
contrib/ChangeLog:

	* download_prerequisites: Don't pass wget options to curl.
2020-07-10 14:06:23 -06:00
GCC Administrator
f60ee68de3 Daily bump. 2020-07-08 00:16:40 +00:00
Alexandre Oliva
a759bfc7cf
accept <case> and [cond] in ChangeLog
Only '(' and ':' currently terminate file lists in ChangeLog entries
in the ChangeLog parser.  This rules out such legitimate entries as:

* filename <CASE>:
* filename [COND]:

This patch extends the ChangeLog parser to recognize these forms.

for  contrib/ChangeLog

	* gcc-changelog/git_commit.py: Support CASE and COND.
	* gcc-changelog/test_patches.txt: Add test.
	* gcc-changelog/test_email.py: Add test.

Co-Authored-By: Martin Liska <mliska@suse.cz>
2020-07-07 09:05:10 +02:00
GCC Administrator
46fbb6c682 Daily bump. 2020-07-01 00:16:26 +00:00
Martin Liska
e2c17dcb12
gcc-changelog: support older GitPython releases.
contrib/ChangeLog:

	* gcc-changelog/git_repository.py: Support older releases of
	GitPython when renamed_file was named renamed.
2020-06-30 17:45:36 +02:00
GCC Administrator
458f12eda1 Daily bump. 2020-06-30 09:02:21 +00:00
Martin Liska
b05c4c2c5d
gcc-changelog: support 'This revert commit' prefix.
contrib/ChangeLog:

	* gcc-changelog/git_check_commit.py: Print revision
	of original_info.
	* gcc-changelog/git_commit.py: Support Revert commits.
2020-06-30 10:56:06 +02:00
Martin Liska
de4676c923
gcc-changelog: come up with GitInfo wrapper.
contrib/ChangeLog:

	* gcc-changelog/git_check_commit.py: Use GitInfo
	* gcc-changelog/git_commit.py: Add GitInfo class.
	* gcc-changelog/git_email.py: Use GitInfo class.
	* gcc-changelog/git_repository.py: Likewise.
2020-06-30 10:56:05 +02:00
GCC Administrator
2e546c261b Daily bump. 2020-06-25 00:16:30 +00:00
Ilya Leoshkevich
796190e538 Make contrib/download_prerequisites work on AIX and OpenBSD
contrib/ChangeLog:

2020-06-11  Ilya Leoshkevich  <iii@linux.ibm.com>

	* download_prerequisites: Support AIX and OpenBSD unames.
	Pipe `{gzip,bzip2} -d` to `tar -xf -`.
2020-06-24 17:57:53 +02:00
GCC Administrator
aae80e833d Daily bump. 2020-06-19 00:16:32 +00:00
Martin Liska
9b4bdaf794
gcc-changelog: checkout & pull order
contrib/ChangeLog:

	* gcc-changelog/git_update_version.py: First checkout and then
	run git pull ---rebase.
2020-06-18 14:45:39 +02:00
Martin Liska
2c53566539
gcc-changelog: support merge commits in git_update_version
contrib/ChangeLog:

	* gcc-changelog/git_update_version.py: Support merge commits
	and walk only on the branch that is being merged and generate
	missing ChangeLog entries.
2020-06-18 14:30:47 +02:00
Martin Liska
09f9c1eefb
gcc-changelog: fix Backported from timestamp.
contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Fix Backported from timestamp when
	use_commit_ts=True is used.
2020-06-18 10:07:59 +02:00
GCC Administrator
aff95ee7cc Daily bump. 2020-06-18 00:16:37 +00:00
Martin Liska
2021af0c23
gcc-changelog: Support 'Backported from master'.
contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Print 'Backported from master'
	heading to backported commits.
	* gcc-changelog/test_email.py: Test it.
	* gcc-changelog/test_patches.txt: Add new patch.
	* gcc-changelog/git_repository.py: Add commit_to_date hook.
	* gcc-changelog/git_email.py: Add fuzzy implementation
	of commit_to_date_hook.
2020-06-17 11:37:34 +02:00
GCC Administrator
e68e80c8dd Daily bump. 2020-06-12 00:16:29 +00:00
Jonathan Wakely
df665e568d contrib: Make prepare-commit-msg hook smarter for amends
With this change the prepare-commit-msg hook can compare the log of a
commit being amended with the staged changes, and not run mklog.py
unnecessarily. This is controlled by a git config option,
gcc-config.mklog-hook-type.

contrib/ChangeLog:

	* prepare-commit-msg: Use the gcc-config.mklog-hook-type Git
	config key instead of the GCC_FORCE_MKLOG environment variable.
	Optionally disable generating a new ChangeLog template for
	amended commits when the existing log is still OK.
2020-06-11 20:22:33 +01:00
Martin Liska
be11812eef
git_update_version: add --current argument.
The argument can be useful to update arbitrary branch, the changes
are added to git index and user is supposed to make a commit.

contrib/ChangeLog:

	* gcc-changelog/git_update_version.py: Add --curent argument.
2020-06-11 13:57:10 +02:00
Martin Liska
8ff57396d6
prepare-commit-hook: Use gcc-config.diff-file.
contrib/ChangeLog:

	* prepare-commit-msg: Replace ENV variable with a git config
	value.
2020-06-11 10:09:47 +02:00
Jonathan Wakely
9aadfdd650
contrib: Avoid redundant 'git diff' in prepare-commit-msg hook
contrib/ChangeLog:

	* prepare-commit-msg: Use 'tee' to save the diff to a file
	instead of running 'git diff' twice.
2020-06-11 09:57:58 +02:00
GCC Administrator
ec6ffbb919 Daily bump. 2020-06-11 00:16:45 +00:00
Martin Liska
50ff02b534
gcc-changelog: fix parse_git_name_status for renames.
Renamed files are listed in the following format:

M	gcc/ada/Makefile.rtl
M	gcc/ada/impunit.adb
R097	gcc/ada/libgnat/s-atopar.adb	gcc/ada/libgnat/s-aoinar.adb
R095	gcc/ada/libgnat/s-atopar.ads	gcc/ada/libgnat/s-aoinar.ads
A	gcc/ada/libgnat/s-aomoar.adb
A	gcc/ada/libgnat/s-aomoar.ads

So 'R' is followed by a percentage number.

contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Fix renamed files in
	parse_git_name_status.
	* gcc-changelog/test_email.py: Add test for it.
2020-06-10 16:07:10 +02:00
Martin Liska
771e60dd07
gcc-changelog: add more Review by prefixes.
contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Add more supported prefixes.
	* gcc-changelog/test_email.py: Fix one flake8 error.
	* gcc-changelog/test_patches.txt: Add tested for newly
	supported prefixes.
2020-06-10 09:58:07 +02:00
Jonathan Wakely
1ea9a0b74e
gcc-changelog: Improve git_commit.py diagnostics
This changes some error messages to be more self-consistent and to fix
some grammar.

contrib/ChangeLog:

	* gcc-changelog/git_commit.py (GitCommit.parse_changelog):
	Improve error strings.
	* gcc-changelog/test_email.py: Update expected errors.
2020-06-10 09:36:34 +02:00
GCC Administrator
b952c2cfcd Daily bump. 2020-06-10 00:16:47 +00:00
Jonathan Wakely
62963c60fc gcc-changelog: Use non-zero exit status on error
Also add comment explaining what the script does.

contrib/ChangeLog:

	* gcc-changelog/git_email.py: Set exit status on error.
2020-06-09 20:40:44 +01:00
Martin Liska
4373fd2c7f
gcc-changelog: fix deduction for root ChangeLog
contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Fix ChangeLog regex in order to
	match the top-level ChangeLog.
	* gcc-changelog/test_email.py: Add test.
	* gcc-changelog/test_patches.txt: Likewise.
2020-06-09 10:01:52 +02:00
GCC Administrator
a9312a7926 Daily bump. 2020-06-03 00:16:34 +00:00
Martin Liska
4b6dcfd542
gcc-changelog: support patterns
contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Support foo/bar/*: patterns in
	wildcard_prefixes locations.
	* gcc-changelog/test_email.py: Test it.
	* gcc-changelog/test_patches.txt: Add 3 new patches.
2020-06-02 16:05:38 +02:00
Iain Buclaw
5fe28857fe contrib: Add gdc.test to list of ignored prefixes
The files in this subdirectory are part of the D2 test suite maintained
in the upstream DMD code repository.

contrib/ChangeLog:

	* gcc-changelog/git_commit.py (ignored_prefixes): Add
	gcc/testsuite/gdc.test/.
2020-06-02 12:56:46 +02:00
Jonathan Wakely
54a0eb7fa5 gcc-changelog: Update test to match new error text
contrib/ChangeLog:

	* gcc-changelog/test_email.py (TestGccChangelog.test_long_lines):
	Update expected error message.
2020-06-02 11:43:09 +01:00
Jonathan Wakely
6fb93242cb gcc-changelog: Improve error text for overlong ChangeLog lines
This error is wrong, the line is what exceeds LINE_LIMIT characters, the
limit doesn't exceed itself.

contrib/ChangeLog:

	* gcc-changelog/git_commit.py (GitCommit.parse_changelog): Fix
	grammar.
2020-06-02 11:18:21 +01:00
Jonathan Wakely
9127b52398 contrib: Make prepare-commit-msg hook safe for older branches
If a user installs this script as .git/hooks/prepare-commit-msg and then
works on an old branch which doesn't have the mklog.py script, trying to
commit will fail with an error like:

environment: /.../gcc/contrib/mklog.py: No such file or directory

This makes it exit cleanly so it's possible to commit.

contrib/ChangeLog:

	* prepare-commit-msg: Do nothing if the mklog.py script isn't
	present.
2020-06-02 11:18:21 +01:00
Jonathan Wakely
9a8bac4d7e
contrib: Improve comments and error text
* gcc-changelog/git_commit.py (GitCommit.check_mentioned_files):
	Improve error text.
2020-06-02 08:38:31 +02:00
GCC Administrator
e7340ed74a Daily bump. 2020-06-01 00:16:26 +00:00
Iain Buclaw
7248bf60a2 contrib: Add v850e1-elf to config-list.mk
This comment was added in SVN r173410, v850e1-* was added to config.sub
in SVN r174691 (around 2011).  So it should no longer apply.

contrib/ChangeLog:

	* config-list.mk (LIST): Add v850e1-elf.
2020-05-31 21:41:55 +02:00
Iain Buclaw
5f35a8288b contrib: Add or1k-elf, or1k-linux-*, and or1k-rtems to config-list.mk
Support for OpenRISC target was added in SVN r265963.

contrib/ChangeLog:

	* config-list.mk (LIST): Add or1k-elf, or1k-linux-*, and or1k-rtems.
2020-05-31 21:41:16 +02:00
Iain Buclaw
30da9dc40c contrib: Remove arm-wrs-vxworks from config-list.mk
Support for arm-wrs-vxworks was removed in git r10-4684.

contrib/ChangeLog:

	* config-list.mk (LIST): Remove arm-wrs-vxworks.
2020-05-31 21:40:11 +02:00
Iain Buclaw
95625d3580 contrib: Remove cris-linux and crisv32-* from config-list.mk
Support for crisv32-*-* and cris-*-linux* was removed in git r11-214.

contrib/ChangeLog:

	* config-list.mk (LIST): Remove cris-linux, crisv32-elf, and
	crisv32-linux.
2020-05-31 21:37:19 +02:00
Iain Buclaw
1d2d5afc80 contrib: Add pru-elf to config-list.mk
Support for the TI PRU target was added in SVN r272202.

contrib/ChangeLog:

	* config-list.mk (LIST): Add pru-elf.
2020-05-31 14:43:51 +02:00
GCC Administrator
885ef72f27 Daily bump. 2020-05-30 00:16:27 +00:00
Iain Buclaw
83c34c4452 contrib: Remove rs6000-ibm-aix5.3.0 from config-list.mk
contrib/ChangeLog:

	* config-list.mk (LIST): Remove rs6000-ibm-aix5.3.0.
2020-05-29 17:38:10 +02:00
Martin Liska
b9ca913b6a
Error for missing change description in git_commit.py.
contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Find empty change descriptions.
	* gcc-changelog/test_email.py: New test.
	* gcc-changelog/test_patches.txt: New patch that tests that.
2020-05-29 17:25:02 +02:00
Martin Liska
24663f1f6d
Fix various limitations of git-backport.py.
I've just tested the script and I'm going to install the patch
to all active branches.

contrib/ChangeLog:

	* git-backport.py: The script did 'git co HEAD~' when
	there was no modified ChangeLog file in a successful
	git cherry pick.
	Run cherry-pick --continue without editor.
2020-05-29 11:29:25 +02:00
Martin Liska
697eab1b3e
git_commit: fix duplicite email address.
The patch is about to handle situations like seen
in 3ea6977d0f.

contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Properly
	handle duplicite authors.
	* gcc-changelog/test_email.py: New test.
	* gcc-changelog/test_patches.txt: New patch.
2020-05-29 09:00:00 +02:00
GCC Administrator
53ffb43a79 Daily bump. 2020-05-29 00:16:23 +00:00
Pierre-Marie de Rodat
a634157de1 gcc-changelog: enhance handling of renamings
So far, we expect from a commit that renames a file to contain a
changelog entry only for the new name. For example, after the following
commit:

   $ git move foo bar
   $ git commit

We expect the following changelog:

   * bar: Renamed from foo.

Git does not keep track of renamings, only file deletions and additions.
The display of patches then uses heuristics (with config-dependent
parameters) to try to match deleted and added files in the same commit.
It is thus brittle to rely on this information.

This commit modifies changelog processing so that renames are considered
as a deletion of a file plus an addition of another file. The following
changelog is now expected for the above example:

   * foo: Move...
   * bar: Here.

contrib/

	* gcc-changelog/git_email.py (GitEmail.__init__): Interpret file
	renamings as a file deletion plus a file addition.
	* gcc-changelog/git_repository.py (parse_git_revisions):
	Likewise.
	* gcc-changelog/test_email.py: New testcase.
	* gcc-changelog/test_patches.txt: New testcase.
2020-05-28 11:14:44 +02:00
Martin Liska
467adc05ba
Fix check-params-in-docs.py for --help=param.
contrib/ChangeLog:

	* check-params-in-docs.py: Update to new format
	of help.  Apply flake8 corrections.
2020-05-28 10:36:48 +02:00
Martin Liska
eb78da45ab
mklog: support renaming of files
contrib/ChangeLog:

	* mklog.py: Support renaming of files.
	One needs unidiff 0.6.0+.
	* test_mklog.py: Test it.
2020-05-28 10:27:09 +02:00
GCC Administrator
61f3b60556 Daily bump. 2020-05-28 04:23:50 +00:00
Martin Liska
e247d59274
Add new git-backport.py script.
contrib/ChangeLog:

	* gcc-git-customization.sh: Use git-backport.py to drop
	all changes for ChangeLog files.
	* git-backport.py: New file.
2020-05-27 12:04:57 +02:00
Martin Liska
b423f910dc
Rename commit-mklog alias to gcc-commit-mklog.
contrib/ChangeLog:

	* gcc-git-customization.sh: Rename
	commit-mklog to gcc-commit-mklog.
2020-05-27 10:16:21 +02:00
Martin Liska
7b8ee33aff
prepare-commit-msg: Save diff if requested by user.
contrib/ChangeLog:

	* prepare-commit-msg: Save diff to a file if
	the GCC_GIT_DIFF_FILE variable is set.
2020-05-27 10:12:58 +02:00
GCC Administrator
c3a4169be9 Daily bump. 2020-05-27 07:45:56 +00:00
Pierre-Marie de Rodat
519f250645 gcc-changelog: handle entries with multi-line file lists
This extends the ChangeLog entries parsing machinery to handle entries
that cover multiple files spanning over multiple lines. For instance:

    * first_file_patched.c, second_file_patched.c, third_file_patched.c,
    fourth_file_patched.c: Do things.

contrib/

	* gcc-changelog/git_commit.py (ChangeLogEntry): Handle entries
	with multi-line file lists.
	* gcc-changelog/test_email.py: New testcase.
	* gcc-changelog/test_patches.txt: Likewise.
2020-05-26 17:45:58 +02:00
Pierre-Marie de Rodat
bb07057a31 gcc-changelog: remove file descriptor leaks
Currently, running gcc-changelog's unit tests may clutter the output
with tons of warnings such as:

    .../contrib/gcc-changelog/git_email.py:40: ResourceWarning: unclosed
    file <_io.TextIOWrapper name='/tmp/tmpt5okd4qp.patch' mode='r'
    encoding='UTF-8'>
      lines = open(self.filename).read().splitlines()
    ResourceWarning: Enable tracemalloc to get the object allocation
    traceback

This commit fixes these leaks, which restores a clean testsuite output.

contrib/

	* gcc-changelog/git_update_version.py: Close file objects after
	use.
	* gcc-changelog/git_email.py: Likewise.
	* gcc-changelog/test_email.py: Likewise.
2020-05-26 17:45:38 +02:00
Martin Liska
c8462662da
Support --dry-mode in git_update_version.py.
The patch improves the script based on Jakub's needs,
I'm going to install the patch.

contrib/ChangeLog:

	* gcc-changelog/git_update_version.py: Add 2 new options.
2020-05-26 12:13:13 +02:00
Alexandre Oliva
1c7f8cbcc7 accept for dir/ChangeLog entries
I've long introduced ChangeLog entries as "for  dir/ChangeLog", a
format adopted by GNU CVS-Utilities some 20 years ago.  My commits
have been formatted like this forever.

This patch makes it acceptable for git gcc-verify.


contrib/ChangeLog:

	* gcc-changelog/git_commit.py (changelog_regex): Accept optional
	'for' prefix.
2020-05-26 04:30:18 -03:00
Alexandre Oliva
1dedc12d18 revamp dump and aux output names
This patch simplifies (!!!) the logic governing the naming of dump
files and auxiliary output files in the driver, in the compiler, and
in the LTO wrapper.  No changes are made to the naming of primary
outputs, there are often ways to restore past behavior, and a number
of inconsistencies are fixed.  Some internal options are removed
(-auxbase and -auxbase-strip), sensible existing uses of -dumpdir and
-dumpbase options remain unchanged, additional useful cases are added,
making for what is still admittedly quite complex.  Extensive
documentation and testcases provide numerous examples, from normal to
corner cases.

The most visible changes are:

- aux and dump files now always go in the same directory, that
defaults to the directory of the primary output, but that can be
overridden with -dumpdir, -save-temps=*, or, preserving past behavior,
with a -dumpbase with a directory component.

- driver and compiler now have the same notion of naming of auxiliary
outputs, e.g. .dwo files will no longer be in one location while the
debug info suggests they are elsewhere, and -save-temps and .dwo
auxiliary outputs now go in the same location as .su, .ci and
coverage data, with consistent naming.

- explicitly-specified primary output names guide not only the
location of aux and dump outputs: the output base name is also used in
their base name, as a prefix when also linking (e.g. foo.c bar.c -o
foobar creates foobar-foo.dwo and foobar-bar.dwo with -gsplit-dwarf),
or as the base name instead of the input name (foo.c -c -o whatever.o
creates whatever.su rather than foo.su with -fstack-usage).  The
preference for the input file base name, quite useful for our
testsuite, can be restored with -dumpbase "".  When compiling and
linking tests in the testsuite with additional inputs, we now use this
flag.  Files named in dejagnu board ldflags, libs, and ldscripts are
now quoted in the gcc testsuite with -Wl, so that they are not counted
as additional inputs by the compiler driver.

- naming a -dumpbase when compiling multiple sources used to cause
dumps from later compiles to overwrite those of earlier ones; it is
now used as a prefix when compiling multiple sources, like an
executable name above.

- the dumpbase, explicitly specified or computed from output or input
names, now also governs the naming of aux outputs; since aux outputs
usually replaced the suffix from the input name, while dump outputs
append their own additional suffixes, a -dumpbase-ext option is
introduced to enable a chosen suffix to be dropped from dumpbase to
form aux output names.

- LTO dump and aux outputs were quite a mess, sometimes leaking
temporary output names into -save-temps output names, sometimes
conversely generating desirable aux outputs in temporary locations.
They now obey the same logic of compiler aux and dump outputs, landing
in the expected location and taking the linker output name or an
explicit dumpbase overrider into account.

- Naming of -fdump-final-insns outputs now follows the dump file
naming logic for the .gkd files, and the .gk dump files generated in
the second -fcompare-debug compilation get the .gk inserted before the
suffix that -dumpbase-ext drops in aux outputs.


gcc/ChangeLog:

	* common.opt (aux_base_name): Define.
	(dumpbase, dumpdir): Mark as Driver options.
	(-dumpbase, -dumpdir): Likewise.
	(dumpbase-ext, -dumpbase-ext): New.
	(auxbase, auxbase-strip): Drop.
	* doc/invoke.texi (-dumpbase, -dumpbase-ext, -dumpdir):
	Document.
	(-o): Introduce the notion of primary output, mention it
	influences auxiliary and dump output names as well, add
	examples.
	(-save-temps): Adjust, move examples into -dump*.
	(-save-temps=cwd, -save-temps=obj): Likewise.
	(-fdump-final-insns): Adjust.
	* dwarf2out.c (gen_producer_string): Drop auxbase and
	auxbase_strip; add dumpbase_ext.
	* gcc.c (enum save_temps): Add SAVE_TEMPS_DUMP.
	(save_temps_prefix, save_temps_length): Drop.
	(save_temps_overrides_dumpdir): New.
	(dumpdir, dumpbase, dumpbase_ext): New.
	(dumpdir_length, dumpdir_trailing_dash_added): New.
	(outbase, outbase_length): New.
	(The Specs Language): Introduce %".  Adjust %b and %B.
	(ASM_FINAL_SPEC): Use %b.dwo for an aux output name always.
	Precede object file with %w when it's the primary output.
	(cpp_debug_options): Do not pass on incoming -dumpdir,
	-dumpbase and -dumpbase-ext options; recompute them with
	%:dumps.
	(cc1_options): Drop auxbase with and without compare-debug;
	use cpp_debug_options instead of dumpbase.  Mark asm output
	with %w when it's the primary output.
	(static_spec_functions): Drop %:compare-debug-auxbase-opt and
	%:replace-exception.  Add %:dumps.
	(driver_handle_option): Implement -save-temps=*/-dumpdir
	mutual overriding logic.  Save dumpdir, dumpbase and
	dumpbase-ext options.  Do not save output_file in
	save_temps_prefix.
	(adds_single_suffix_p): New.
	(single_input_file_index): New.
	(process_command): Combine output dir, output base name, and
	dumpbase into dumpdir and outbase.
	(set_collect_gcc_options): Pass a possibly-adjusted -dumpdir.
	(do_spec_1): Optionally dumpdir instead of save_temps_prefix,
	and outbase instead of input_basename in %b, %B and in
	-save-temps aux files.  Handle empty argument %".
	(driver::maybe_run_linker): Adjust dumpdir and auxbase.
	(compare_debug_dump_opt_spec_function): Adjust gkd dump file
	naming.  Spec-quote the computed -fdump-final-insns file name.
	(debug_auxbase_opt): Drop.
	(compare_debug_self_opt_spec_function): Drop auxbase-strip
	computation.
	(compare_debug_auxbase_opt_spec_function): Drop.
	(not_actual_file_p): New.
	(replace_extension_spec_func): Drop.
	(dumps_spec_func): New.
	(convert_white_space): Split-out parts into...
	(quote_string, whitespace_to_convert_p): ... these.  New.
	(quote_spec_char_p, quote_spec, quote_spec_arg): New.
	(driver::finalize): Release and reset new variables; drop
	removed ones.
	* lto-wrapper.c (HAVE_TARGET_EXECUTABLE_SUFFIX): Define if...
	(TARGET_EXECUTABLE_SUFFIX): ... is defined; define this to the
	empty string otherwise.
	(DUMPBASE_SUFFIX): Drop leading period.
	(debug_objcopy): Use concat.
	(run_gcc): Recognize -save-temps=* as -save-temps too.  Obey
	-dumpdir.  Pass on empty dumpdir and dumpbase with a directory
	component.  Simplify temp file names.
	* opts.c (finish_options): Drop aux base name handling.
	(common_handle_option): Drop auxbase-strip handling.
	* toplev.c (print_switch_values): Drop auxbase, add
	dumpbase-ext.
	(process_options): Derive aux_base_name from dump_base_name
	and dump_base_ext.
	(lang_dependent_init): Compute dump_base_ext along with
	dump_base_name.  Disable stack usage and callgraph-info	during
	lto generation and compare-debug recompilation.

gcc/fortran/ChangeLog:

	* options.c (gfc_get_option_string): Drop auxbase, add
	dumpbase_ext.

gcc/ada/ChangeLog:

	* gcc-interface/lang-specs.h: Drop auxbase and auxbase-strip.
	Use %:dumps instead of -dumpbase.  Add %w for implicit .s
	primary output.
	* switch.adb (Is_Internal_GCC_Switch): Recognize dumpdir and
	dumpbase-ext.  Drop auxbase and auxbase-strip.

lto-plugin/ChangeLog:

	* lto-plugin.c (skip_in_suffix): New.
	(exec_lto_wrapper): Use skip_in_suffix and concat to build
	non-temporary output names.
	(onload): Look for -dumpdir in COLLECT_GCC_OPTIONS, and
	override link_output_name with it.

contrib/ChangeLog:

	* compare-debug: Adjust for .gkd files named as dump files,
	with the source suffix rather than the object suffix.

gcc/testsuite/ChangeLog:

	* gcc.misc-tests/outputs.exp: New.
	* gcc.misc-tests/outputs-0.c: New.
	* gcc.misc-tests/outputs-1.c: New.
	* gcc.misc-tests/outputs-2.c: New.
	* lib/gcc-defs.exp (gcc_adjusted_linker_flags): New.
	(gcc_adjust_linker_flags): New.
	(dg-additional-files-options): Call it.  Pass -dumpbase ""
	when there are additional sources.
	* lib/profopt.exp (profopt-execute): Pass the executable
	suffix with -dumpbase-ext.
	* lib/scandump.exp (dump-base): Mention -dumpbase "" use.
	* lib/scanltranstree.exp: Adjust dump suffix expectation.
	* lib/scanwpaipa.exp: Likewise.
2020-05-26 04:30:15 -03:00
Martin Liska
4945b4c2c8
Allow ChangeLog entries for ignored location.
We should be able to generate ChangeLog entries for
commits like b3d566f570.
I'm going to install the patch.

contrib/ChangeLog:

	* gcc-changelog/git_commit.py: Parse changelog entries for
	ignored locations.
	* gcc-changelog/test_email.py: Add new test for it.
	* gcc-changelog/test_patches.txt: Likewise.
2020-05-26 09:02:43 +02:00
Jason Merrill
757dbb59c1
gcc-git: Add prepare-commit-msg hook.
This patch introduces a prepare-commit-msg hook that appends a ChangeLog
skeleton to a commit message when the GCC_FORCE_MKLOG environment variable
is set, and a 'git commit-mklog' command set that variable while running
'git commit'.

contrib/ChangeLog:

	* prepare-commit-msg: New file.
	* gcc-git-customization.sh: Install it.  Add commit-mklog alias.
	* mklog.py: Add new option -c which appends
	to a ChangeLog file.
2020-05-26 08:38:24 +02:00
Martin Liska
deea3defc9
Allow only ignored files in ChangeLog entries.
* gcc-changelog/git_commit.py: Add trailing '/'
	for libdruntime.  Allow empty changelog for
	only ignored files.
	* gcc-changelog/test_email.py: New test for go
	patch in ignored location.
	* gcc-changelog/test_patches.txt: Add test.
2020-05-25 09:49:54 +02:00
Jakub Jelinek
5daf69cfe9 Fix up go related ignored locations.
2020-05-22  Jakub Jelinek  <jakub@redhat.com>

	* gcc-changelog/git_commit.py: Add trailing / to
	gcc/testsuite/go.test/test and replace gcc/go/frontend/
	with gcc/go/gofrontend/ in ignored locations.
2020-05-22 13:09:34 +02:00
Martin Liska
59b282bca3
Add missing ChangeLog entry. 2020-05-22 09:01:16 +02:00
Martin Liska
dc7aee01cd
Add gcc/testsuite/go.test/test to ignored locations for gcc_commit.py.
contrib/ChangeLog:

2020-05-22  Martin Liska  <mliska@suse.cz>

	* gcc-changelog/git_commit.py: Add gcc/testsuite/go.test/test
	to ignored locations.
2020-05-22 08:03:03 +02:00
Martin Liska
62b5b53e94
Prepare git_update_version.py for real usage.
* gcc-changelog/git_update_version.py: Prepare the script, the
	only missing piece is pushing of the updated branches.
2020-05-21 11:51:32 +02:00