... in the results. Python exits with code "1" on exceptions and
internal errors, which we use to detect failure to parse results.
contrib/ChangeLog:
* testsuite-management/validate_failures.py (Main): Use exit code "2"
to indicate regression.
Before this patch we would identify malformed line
"UNRESOLVEDTest run by tcwg-buildslave on Mon Aug 23 10:17:50 2021"
as an interesting result, only to fail in TestResult:__init__ due
to missing ":" after UNRESOLVED.
This patch makes all places that parse result lines use a single
compiled regex.
contrib/ChangeLog:
* testsuite-management/validate_failures.py (_VALID_TEST_RESULTS_REX):
Update.
(TestResult): Use _VALID_TEST_RESULTS_REX.
... and don't require a valid build directory when no data from it
is necessary.
contrib/ChangeLog:
* testsuite-management/validate_failures.py: Simplify GetManifestPath().
This allows comparison of two build directories with a manifest
listing known flaky tests on the side.
contrib/ChangeLog:
* testsuite-management/validate_failures.py (GetResults): Update.
(CompareBuilds): Read in manifest.
contrib/ChangeLog:
* testsuite-management/validate_failures.py (ParseManifestWorker):
Support expiry attributes in manifests.
(ParseSummary): Add a comment.
This patch adds tracking of current testsuite "tool" and "exp"
to the processing of .sum files. This avoids aliasing between
tests from different testsuites with same name+description.
E.g., this is necessary for testsuite/c-c++-common, which is ran
for both gcc and g++ "tools".
This patch changes manifest format from ...
<cut>
FAIL: gcc_test
FAIL: g++_test
</cut>
... to ...
<cut>
=== gcc tests ===
Running gcc/foo.exp ...
FAIL: gcc_test
=== gcc Summary ==
=== g++ tests ===
Running g++/bar.exp ...
FAIL: g++_test
=== g++ Summary ==
</cut>.
The new format uses same formatting as DejaGnu's .sum files
to specify which "tool" and "exp" the test belongs to.
contrib/ChangeLog:
* testsuite-management/validate_failures.py: Avoid testsuite
aliasing.
- Fix gen_autofdo_event: The download URL for the Intel Perfmon Event
list has changed, as well as the JSON format.
Also it now uses pattern matching to match CPUs. Update the script to support all of this.
- Regenerate gcc-auto-profile with the latest published Intel model
numbers, so it works with recent systems.
- So far it's still broken on hybrid systems
contrib/ChangeLog:
* gen_autofdo_event.py: Update for download server changes
gcc/ChangeLog
* config/i386/gcc-auto-profile: Regenerate.
POSIX sh does not support the == for string comparisons, use = instead.
These contrib scripts all use a bash shebang so == does work, but
there's no reason they can't just use the more portable form anyway.
PR bootstrap/105831
contrib/ChangeLog:
* bench-stringop: Use = operator instead of ==.
* repro_fail: Likewise.
contrib/reghunt/ChangeLog:
* bin/reg-hunt: Use = operator instead of ==.
2023-04-17 Jakub Jelinek <jakub@redhat.com>
maintainer-scripts/
* crontab: Snapshots from trunk are now GCC 14 related.
Add GCC 13 snapshots from the respective branch.
contrib/
* gcc-changelog/git_update_version.py (active_refs): Add
releases/gcc-13.
I've noticed we have instructions on how to update from newer Unicode
standard, but it didn't mention uname2c.h regeneration.
The following patch mentions that, also mentions that the Copyright years
of Unicode should be updated and adds a copy of NameAliases.txt which
is used for uname2c.h generation.
2023-03-16 Jakub Jelinek <jakub@redhat.com>
* unicode/README: Update to mention also makeuname2c.
* unicode/NameAliases.txt: New file.
Already in the first revision of 'contrib/config-list.mk', i686-symbolics-gnu
has been present, but it's not clear to me whether that was meant to be
Symbolics as in the manufacturer, <https://en.wikipedia.org/wiki/Symbolics>,
with GNU (that is, GNU/Hurd) kernel/operating system (user land), or Symbolics
kernel with GNU operating system (user land)?
I can't find any mention of "Symbolics" in the history of 'config.sub'
upstream.
Either way, GCC configures i686-symbolics-gnu exactly the same as i686-gnu:
$ sed -n -e '/Using .* host machine hooks\.$/q' -e '/^Using the following target machine macro files:$/,$p' log/i686-gnu-make.out
Using the following target machine macro files:
[...]/gcc/config/vxworks-dummy.h
[...]/gcc/config/i386/i386.h
[...]/gcc/config/i386/unix.h
[...]/gcc/config/i386/att.h
[...]/gcc/config/elfos.h
[...]/gcc/config/gnu-user.h
[...]/gcc/config/glibc-stdint.h
[...]/gcc/config/i386/gnu-user-common.h
[...]/gcc/config/i386/gnu-user.h
[...]/gcc/config/gnu.h
[...]/gcc/config/i386/gnu.h
[...]/gcc/config/initfini-array.h
..., so let's clarify i686-symbolics-gnu to i686-gnu.
contrib/
* config-list.mk (LIST): Clarify i686-symbolics-gnu to i686-gnu.
Petr informed me that perl 5.32 bundled with Solaris 11.4 warns about
make_sunver.pl:
Unescaped left brace in regex is passed through in regex; marked by <-- HERE in m/^([ \t]*){ <-- HERE $/ at /vol/gcc/src/hg/master/local/libgomp/../contrib/make_sunver.pl line 216.
I didn't notice since I'm using a common installation of perl 5.12
across Solaris versions that doesn't show that warning.
His patch fixes the issue. Tested on Solaris 11.3 (perl 5.12) and 11.4
(perl 5.32).
2023-01-20 Petr Sumbera <petr.sumbera@oracle.com>
contrib:
* make_sunver.pl: Escape brace.
I use objs-gcc.sh as a preparatory step before calling
btest-gcc.sh in my scripts, for example my cris-elf
autotester. I thought, why not use it for native builds
too. Except that use, with binutils release-style tarballs
and a x86_64-pc-linux-gnu host, was broken. Now that I look
at it, the script seems to have aged poorly... Still,
there's a need for such a script to install stuff needed for
btest-gcc.sh (and to fix up stuff if needed), and this can
still be that script. So, I prefer to fix show-stoppers for
common uses, while taking care to retain compatibility for
use that could possibly still work, with current sources.
A long time ago (before 2011, but after this script was
created in 2002, and used for a few years), the binutils
(and gdb and gcc) toplevel Makefile may have had a bootstrap
target that worked with binutils but didn't require gcc
sources to be present. Now, you'll get an error (see
configure.ac line 1366 and on). Let's just build the
default make-target when "bootstrap" is known to fail.
An alternative would be to fold this native
non-i686-pc-linux-gnu clause into the native
i686-pc-linux-gnu clause, as that seems to have been
originally intended as *the* single native clause, but
that'd require further edits (e.g. to remove install-dejagnu
and make gdb build conditional on gdb sources presence, to
work with binutils tarballs, and I'd also then prefer to
build not just ld, but also gas and binutils).
As it's a minimal obvious change required for current native
use with release-tarballs and git-checkout use(*), I'm
installing this as obvious.
*) Native i686-pc-linux-gnu remains broken for other use
than specially constructed combined trees where dejagnu is
included at the toplevel (i.e. historic Cygnus devo-type).
contrib/regression:
* objs-gcc.sh: Only bootstrap if source-directory contains gcc.
This patch adds the dependencies for automatically generated files used
by the Modula-2 front end.
contrib/ChangeLog:
* gcc_update (files_and_dependencies): Add dependencies for
gcc/m2/gm2config.h.in, gcc/m2/configure,
gcc/m2/gm2-libs/config-host, libgm2/Makefile.in,
libgm2/aclocal.m4, libgm2/libm2cor/Makefile.in,
libgm2/libm2pim/Makefile.in, libgm2/libm2iso/Makefile.in,
libgm2/libm2log/Makefile.in and libgm2/libm2min/Makefile.in.
Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
As mentioned on IRC or in PR108413, the last update-copyright.py --this year
failed and that is why we are in a strange state where some copyrights have
been updated and others have not.
The full list of errors I got was I think:
gcc/m2/mc-boot/GmcOptions.c: unrecognised copyright: comment (f, (const char *) "Copyright (C) ''2021'' Free Software Foundation, Inc.", 53);
gcc/m2/mc-boot/GmcOptions.c: unrecognised copyright: comment (f, (const char *) "Copyright (C) ''2021'' Free Software Foundation, Inc.", 53);
gcc/testsuite/gm2/switches/pedantic-params/pass/Strings.mod: unrecognised copyright holder: Faculty of Information Technology,
gcc/testsuite/gm2/switches/pedantic-params/pass/Strings2.mod: unrecognised copyright holder: Faculty of Information Technology,
libphobos/libdruntime/__builtins.di: unrecognised copyright: * Copyright: Copyright Digital Mars 2022
libstdc++-v3/src/c++17/fast_float/fast_float.h: unrecognised copyright holder: The fast_float authors
libstdc++-v3/include/c_compatibility/stdatomic.h: unrecognised copyright holder: The GCC developers
The following patch deals with the gcc/testsuite/gm2 ones and
with the fast_float.h one, ok for trunk?
Not really sure what we should do in the GmcOptions.c case
(perhaps obfuscate it in the source somehow by splitting
the string literals into different substrings
Perhaps "Copy" "right (" "C) ''..." would do it? Or do we want
to bump there each year (manually or by the script)?
E.g. in gcc.cc we have
printf ("Copyright %s 2023 Free Software Foundation, Inc.\n",
_("(C)"));
which also prints (C) nicer in Unicode if possible and is updated
by hand each year.
I have no idea about the libphobos case, we have tons of
libphobos/src/std/format/spec.d:Copyright: Copyright The D Language Foundation 2000-2013.
libphobos/src/std/random.d:Copyright: Copyright Andrei Alexandrescu 2008 - 2009, Joseph Rushton Wakeling 2012.
etc. lines and those aren't reported as errors.
And the last one is that I think for The GCC developers we should treat it
similarly like FSF and bump copyright on it.
Would
canon_gcc = 'The GCC developers'
self.add_package_author ('The GCC developers', canon_gcc)
self.add_package_author ('The GCC Developers', canon_gcc)
or something similar do the trick?
2023-01-16 Jakub Jelinek <jakub@redhat.com>
PR other/108413
* update-copyright.py (TestsuiteFilter): Add .mod and .rs extensions.
(GCCCopyright): Add 'The fast_float authors' as external author.
ia64-freebsd is officially dead, and sparc64-freebsd has not been able
to build GCC for half a dozen years (or so) and is essentially end of
life.
The default per gcc/config/i386/freebsd.h has been i586 for a while,
so i486-freebsd can go as well. (We still have i686-freebsd.)
contrib/ChangeLog:
* config-list.mk: Remove i486-freebsd4, ia64-freebsd6, and
sparc64-freebsd6.
This script is a helper used to generate dg-output lines from an existing
program output conveniently. It takes care of escaping Tcl and ARE stuff.
contrib/ChangeLog:
* dg-out-generator.pl: New file.