glibc/scripts
Joseph Myers 02c78f02a9 Make build-many-glibcs.py track component versions requested and used.
This patch makes build-many-glibcs.py record the component versions
checked out, and whether those versions were explicitly requested or
defaults, in a file versions.json in the source directory.

The preferred version of a component is the first of: one explicitly
specified on the command line; one explicitly specified on the command
line in a previous run of build-many-glibcs.py; a default version for
that component.  Thus, once you've run build-many-glibcs.py checkout
once with the updated script (making sure to specify the right
versions of any components previously checked out with a non-default
version), in future you can just run it without version specifiers and
it will know when a default-version component has changed its default
version and so should be checked out again.

Because you might have local changes and not want a default-version
component checkout replaced, you need to pass the --replace-sources
option to allow the script to delete and replace a component source
directory automatically; otherwise, it will give an error if a version
has changed.  The script does not try to change branches of git or SVN
checkouts without checking out from scratch; if the version number
requested has changed and --replace-sources is used, the relevant
source directory will be removed completely and a new one checked out
from scratch.

Apart from allowing automatic updates of components with default
versions, this also facilitates bots reporting on the versions used in
a given build.  versions.json contains not just information on the
version number and whether that was requested explicitly, but also git
or SVN revision information intended to be used in email reports from
bots.

	* scripts/build-many-glibcs.py: Import json module.
	(Context.__init__): Take replace_sources argument.  Load
	versions.json.
	(Context.load_versions_json): New function.
	(Context.store_json): Likewise.
	(Context.store_versions_json): Likewise.
	(Context.set_component_version): Likewise.
	(Context.checkout): Update versions.json.  Check for and handle
	changes of version.  Prefer previously explicitly specified
	version to default version.
	(Context.checkout_vcs): Return a revision identifier.
	(Context.git_checkout): Likewise.
	(Context.gcc_checkout): Likewise.
	(get_parser): Add --replace-sources option.
	(main): Pass replace_sources argument to Context call.
2016-11-24 22:25:58 +00:00
..
abi-versions.awk Remove bitrotten --enable-oldest-abi (bug 6652). 2014-09-16 17:45:03 +00:00
abilist.awk Simplify the abilist format 2015-11-06 13:58:53 +01:00
begin-end-check.pl
build-many-glibcs.py Make build-many-glibcs.py track component versions requested and used. 2016-11-24 22:25:58 +00:00
check-c++-types.sh Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
check-execstack.awk
check-installed-headers.sh Make check-installed-headers.sh ignore sys/sysctl.h for x32. 2016-11-07 23:32:17 +00:00
check-local-headers.sh mach: Add more allowed external headers 2016-08-21 03:24:55 +02:00
check-localplt.awk Extend local PLT reference check 2015-07-29 11:58:06 -07:00
check-textrel.awk
config-uname.sh
config.guess Make shebang interpreter directives consistent 2016-01-08 14:09:06 -05:00
config.sub Make shebang interpreter directives consistent 2016-01-08 14:09:06 -05:00
cpp Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
cross-test-ssh.sh Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
documented.sh Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
evaluate-test.sh Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
firstversions.awk
gen-as-const.awk
gen-libc-abis Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
gen-libc-modules.awk Auto-generate libc-modules.h 2014-11-19 12:16:00 +05:30
gen-posix-conf-vars.awk Remove uses of sprintf in gen-posix-conf-vars.awk 2015-01-02 11:16:35 +05:30
gen-sorted.awk Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
install-sh Update miscellaneous files from upstream sources. 2014-06-26 20:13:44 +00:00
lib-names.awk Clean up gnu/lib-names.h generation (bug 14171). 2014-09-26 17:33:04 +00:00
list-fixed-bugs.py Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
list-sources.sh Update scripts/list-sources.sh for ports repository merge. 2014-06-26 21:30:07 +00:00
localplt.awk Support PLT and GOT references in local PIC check 2015-10-14 06:00:02 -07:00
merge-test-results.sh Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
mkinstalldirs Make shebang interpreter directives consistent 2016-01-08 14:09:06 -05:00
move-if-change Update miscellaneous files from upstream sources. 2016-01-05 18:04:06 +00:00
output-format.sed
pylint Implement benchmarking script in python 2014-03-21 17:32:50 +05:30
pylintrc pylintrc: disable reports 2015-11-11 13:41:57 -05:00
rellns-sh Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
soversions.awk Remove bitrotten --enable-oldest-abi (bug 6652). 2014-09-16 17:45:03 +00:00
sysd-rules.awk sysd-rules: Cut down the number of rtld-% pattern rules 2016-09-20 10:41:05 +02:00
test-installation.pl Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
update-abilist.sh Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
update-copyrights Make shebang interpreter directives consistent 2016-01-07 04:03:21 -05:00
versionlist.awk Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
versions.awk Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00