diff options
author | Alexey Neyman <stilor@att.net> | 2017-08-19 15:33:23 -0700 |
---|---|---|
committer | Alexey Neyman <stilor@att.net> | 2017-08-21 08:41:14 -0700 |
commit | b75f03146218a09a2882d5ecbb8130dac1fc7ab9 (patch) | |
tree | 8d14d85e53672b24baf6c104152641636a66a56f /scripts/functions | |
parent | b99b5288e762970d4b52c7c7b709bc725aa99edf (diff) | |
download | crosstool-ng-b75f03146218a09a2882d5ecbb8130dac1fc7ab9.tar.gz crosstool-ng-b75f03146218a09a2882d5ecbb8130dac1fc7ab9.tar.bz2 crosstool-ng-b75f03146218a09a2882d5ecbb8130dac1fc7ab9.zip |
Check for config file changes when restarting
Also, save/restore per-target source directory.
Fixes #800.
Signed-off-by: Alexey Neyman <stilor@att.net>
Diffstat (limited to 'scripts/functions')
-rw-r--r-- | scripts/functions | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/scripts/functions b/scripts/functions index 147de347..ce99a179 100644 --- a/scripts/functions +++ b/scripts/functions @@ -1052,7 +1052,10 @@ CT_DoSaveState() { /^(UID|EUID)=/d; /^(FUNCNAME|GROUPS|PPID|SHELLOPTS)=/d;' >"${state_dir}/env.sh" + CT_DoExecLog STATE cp ".config" "${state_dir}/config" + CT_DoTarballIfExists "${CT_BUILDTOOLS_PREFIX_DIR}" "${state_dir}/buildtools_dir" + CT_DoTarballIfExists "${CT_SRC_DIR}" "${state_dir}/src_dir" CT_DoTarballIfExists "${CT_PREFIX_DIR}" "${state_dir}/prefix_dir" --exclude '*.log' CT_DoLog STATE " Saving log file" @@ -1073,10 +1076,14 @@ CT_DoLoadState(){ local old_STOP="${CT_STOP}" CT_TestOrAbort "The previous build did not reach the point where it could be restarted at '${CT_RESTART}'" -d "${state_dir}" + if ! cmp ".config" "${state_dir}/config" >/dev/null 2>&1; then + CT_Abort "The configuration file has changed between two runs" + fi CT_DoLog INFO "Restoring state at step '${state_name}', as requested." CT_DoExtractTarballIfExists "${state_dir}/prefix_dir" "${CT_PREFIX_DIR}" + CT_DoExtractTarballIfExists "${state_dir}/src_dir" "${CT_SRC_DIR}" CT_DoExtractTarballIfExists "${state_dir}/buildtools_dir" "${CT_BUILDTOOLS_PREFIX_DIR}" # Restore the environment, discarding any error message |