aboutsummaryrefslogtreecommitdiff
path: root/contrib
AgeCommit message (Collapse)AuthorFilesLines
2020-06-17gcc-changelog: Support 'Backported from master'.Martin Liska5-10/+80
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-12Daily bump.GCC Administrator1-0/+21
2020-06-11contrib: Make prepare-commit-msg hook smarter for amendsJonathan Wakely1-0/+13
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-11git_update_version: add --current argument.Martin Liska1-47/+59
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-11prepare-commit-hook: Use gcc-config.diff-file.Martin Liska1-2/+3
contrib/ChangeLog: * prepare-commit-msg: Replace ENV variable with a git config value.
2020-06-11contrib: Avoid redundant 'git diff' in prepare-commit-msg hookJonathan Wakely1-2/+4
contrib/ChangeLog: * prepare-commit-msg: Use 'tee' to save the diff to a file instead of running 'git diff' twice.
2020-06-11Daily bump.GCC Administrator1-0/+19
2020-06-10gcc-changelog: fix parse_git_name_status for renames.Martin Liska2-1/+15
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-10gcc-changelog: add more Review by prefixes.Martin Liska3-7/+10
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-10gcc-changelog: Improve git_commit.py diagnosticsJonathan Wakely2-13/+13
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-10Daily bump.GCC Administrator1-0/+11
2020-06-09gcc-changelog: Use non-zero exit status on errorJonathan Wakely1-0/+4
Also add comment explaining what the script does. contrib/ChangeLog: * gcc-changelog/git_email.py: Set exit status on error.
2020-06-09gcc-changelog: fix deduction for root ChangeLogMartin Liska3-2/+76
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-03Daily bump.GCC Administrator1-0/+32
2020-06-02gcc-changelog: support patternsMartin Liska3-8/+143
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-02contrib: Add gdc.test to list of ignored prefixesIain Buclaw1-0/+1
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-02gcc-changelog: Update test to match new error textJonathan Wakely1-1/+1
contrib/ChangeLog: * gcc-changelog/test_email.py (TestGccChangelog.test_long_lines): Update expected error message.
2020-06-02gcc-changelog: Improve error text for overlong ChangeLog linesJonathan Wakely1-1/+1
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-02contrib: Make prepare-commit-msg hook safe for older branchesJonathan Wakely1-0/+3
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-02contrib: Improve comments and error textJonathan Wakely1-3/+3
* gcc-changelog/git_commit.py (GitCommit.check_mentioned_files): Improve error text.
2020-06-01Daily bump.GCC Administrator1-0/+21
2020-05-31contrib: Add v850e1-elf to config-list.mkIain Buclaw1-2/+1
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-31contrib: Add or1k-elf, or1k-linux-*, and or1k-rtems to config-list.mkIain Buclaw1-0/+1
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-31contrib: Remove arm-wrs-vxworks from config-list.mkIain Buclaw1-1/+1
Support for arm-wrs-vxworks was removed in git r10-4684. contrib/ChangeLog: * config-list.mk (LIST): Remove arm-wrs-vxworks.
2020-05-31contrib: Remove cris-linux and crisv32-* from config-list.mkIain Buclaw1-1/+1
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-31contrib: Add pru-elf to config-list.mkIain Buclaw1-0/+1
Support for the TI PRU target was added in SVN r272202. contrib/ChangeLog: * config-list.mk (LIST): Add pru-elf.
2020-05-30Daily bump.GCC Administrator1-0/+24
2020-05-29contrib: Remove rs6000-ibm-aix5.3.0 from config-list.mkIain Buclaw1-1/+1
contrib/ChangeLog: * config-list.mk (LIST): Remove rs6000-ibm-aix5.3.0.
2020-05-29Error for missing change description in git_commit.py.Martin Liska3-0/+44
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-29Fix various limitations of git-backport.py.Martin Liska1-4/+9
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-29git_commit: fix duplicite email address.Martin Liska3-2/+66
The patch is about to handle situations like seen in 3ea6977d0f1813d982743a09660eec1760e981ec. 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-29Daily bump.GCC Administrator1-0/+20
2020-05-28gcc-changelog: enhance handling of renamingsPierre-Marie de Rodat4-1/+178
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-28Fix check-params-in-docs.py for --help=param.Martin Liska1-7/+10
contrib/ChangeLog: * check-params-in-docs.py: Update to new format of help. Apply flake8 corrections.
2020-05-28mklog: support renaming of filesMartin Liska2-0/+34
contrib/ChangeLog: * mklog.py: Support renaming of files. One needs unidiff 0.6.0+. * test_mklog.py: Test it.
2020-05-28Daily bump.GCC Administrator1-0/+16
2020-05-27Add new git-backport.py script.Martin Liska2-1/+61
contrib/ChangeLog: * gcc-git-customization.sh: Use git-backport.py to drop all changes for ChangeLog files. * git-backport.py: New file.
2020-05-27Rename commit-mklog alias to gcc-commit-mklog.Martin Liska1-3/+1
contrib/ChangeLog: * gcc-git-customization.sh: Rename commit-mklog to gcc-commit-mklog.
2020-05-27prepare-commit-msg: Save diff if requested by user.Martin Liska1-0/+5
contrib/ChangeLog: * prepare-commit-msg: Save diff to a file if the GCC_GIT_DIFF_FILE variable is set.
2020-05-27Daily bump.GCC Administrator1-0/+42
2020-05-26gcc-changelog: handle entries with multi-line file listsPierre-Marie de Rodat3-0/+117
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-26gcc-changelog: remove file descriptor leaksPierre-Marie de Rodat3-4/+8
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-26Support --dry-mode in git_update_version.py.Martin Liska1-12/+31
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-26accept for dir/ChangeLog entriesAlexandre Oliva1-1/+1
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-26revamp dump and aux output namesAlexandre Oliva1-3/+23
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-26Allow ChangeLog entries for ignored location.Martin Liska3-6/+55
We should be able to generate ChangeLog entries for commits like b3d566f570f4416299240b51654b70c74f6cba6a. 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-26gcc-git: Add prepare-commit-msg hook.Jason Merrill3-1/+92
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-25Allow only ignored files in ChangeLog entries.Martin Liska4-2/+59
* 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-22Fix up go related ignored locations.Jakub Jelinek2-2/+8
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-22Add missing ChangeLog entry.Martin Liska1-0/+5