summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/crosstool-NG.sh.in27
-rw-r--r--scripts/functions43
2 files changed, 27 insertions, 43 deletions
diff --git a/scripts/crosstool-NG.sh.in b/scripts/crosstool-NG.sh.in
index 6a7873e..e74a635 100644
--- a/scripts/crosstool-NG.sh.in
+++ b/scripts/crosstool-NG.sh.in
@@ -222,8 +222,6 @@ fi
# Don't eradicate directories if we need to restart
if [ -z "${CT_RESTART}" ]; then
# Get rid of pre-existing installed toolchain and previous build directories.
- # We need to do that _before_ we can safely log, because the log file will
- # most probably be in the toolchain directory.
if [ "${CT_FORCE_DOWNLOAD}" = "y" -a -d "${CT_TARBALLS_DIR}" ]; then
CT_DoForceRmdir "${CT_TARBALLS_DIR}"
fi
@@ -264,25 +262,9 @@ CT_TestAndAbort "Your file system in '${CT_PREFIX_DIR}' is *not* case-sensitive!
CT_DoExecLog DEBUG rm -f "${CT_PREFIX_DIR}/foo"
# Kludge: CT_INSTALL_DIR and CT_PREFIX_DIR might have grown read-only if
-# the previous build was successful. To be able to move the logfile there,
-# switch them back to read/write
+# the previous build was successful.
CT_DoExecLog ALL chmod -R u+w "${CT_INSTALL_DIR}" "${CT_PREFIX_DIR}"
-# Redirect log to the actual log file now we can
-# It's quite understandable that the log file will be installed in the install
-# directory, so we must first ensure it exists and is writeable (above) before
-# we can log there
-exec >/dev/null
-case "${CT_LOG_TO_FILE}" in
- y) CT_LOG_FILE="${CT_PREFIX_DIR}/build.log"
- cat "${tmp_log_file}" >>"${CT_LOG_FILE}"
- rm -f "${tmp_log_file}"
- exec >>"${CT_LOG_FILE}"
- ;;
- *) rm -f "${tmp_log_file}"
- ;;
-esac
-
# Setting up the rest of the environment only if not restarting
if [ -z "${CT_RESTART}" ]; then
case "${CT_SYSROOT_NAME}" in
@@ -624,7 +606,12 @@ CT_DoEnd INFO
CT_DoLog INFO "Finishing installation (may take a few seconds)..."
exec >/dev/null 2>&1
-[ "${CT_LOG_FILE_COMPRESS}" = y ] && bzip2 -9 "${CT_LOG_FILE}"
+if [ "${CT_LOG_TO_FILE}" = "y" ]; then
+ cp "${tmp_log_file}" "${CT_PREFIX_DIR}/build.log"
+ if [ "${CT_LOG_FILE_COMPRESS}" = y ]; then
+ bzip2 -9 "${CT_PREFIX_DIR}/build.log"
+ fi
+fi
[ "${CT_INSTALL_DIR_RO}" = "y" ] && chmod -R a-w "${CT_INSTALL_DIR}"
[ "${CT_TEST_SUITE}" = "y" ] && chmod -R u+w "${CT_TEST_SUITE_DIR}"
diff --git a/scripts/functions b/scripts/functions
index f744d53..3849594 100644
--- a/scripts/functions
+++ b/scripts/functions
@@ -15,7 +15,7 @@ CT_OnError() {
for((depth=2; ${BASH_LINENO[$((${depth}-1))]}>0; depth++)); do
CT_DoLog ERROR " called from '${BASH_SOURCE[${depth}]}' at line # ${BASH_LINENO[${depth}-1]} in function '${FUNCNAME[${depth}]}'"
done
- [ "${CT_LOG_TO_FILE}" = "y" ] && CT_DoLog ERROR "Look at '${CT_LOG_FILE}' for more info on this error."
+ [ "${CT_LOG_TO_FILE}" = "y" ] && CT_DoLog ERROR "Look at '${tmp_log_file}' for more info on this error."
CT_STEP_COUNT=1
CT_DoEnd ERROR
exit $ret
@@ -40,8 +40,9 @@ set +o hashall
# Log policy:
# - first of all, save stdout so we can see the live logs: fd #6
exec 6>&1
-# - then point stdout to the log file (temporary for now)
-tmp_log_file="${CT_TOP_DIR}/log.$$"
+# - then point stdout to the log file
+tmp_log_file="${CT_TOP_DIR}/build.log"
+rm -f "${tmp_log_file}"
exec >>"${tmp_log_file}"
# The different log levels:
@@ -1024,15 +1025,13 @@ CT_DoSaveState() {
CT_DoTarballIfExists "${CT_CC_CORE_SHARED_PREFIX_DIR}" "${state_dir}/cc_core_shared_prefix_dir"
CT_DoTarballIfExists "${CT_PREFIX_DIR}" "${state_dir}/prefix_dir" --exclude '*.log'
- if [ "${CT_LOG_TO_FILE}" = "y" ]; then
- CT_DoLog STATE " Saving log file"
- exec >/dev/null
- case "${CT_DEBUG_CT_SAVE_STEPS_GZIP}" in
- y) gzip -3 -c "${CT_LOG_FILE}" >"${state_dir}/log.gz";;
- *) cat "${CT_LOG_FILE}" >"${state_dir}/log";;
- esac
- exec >>"${CT_LOG_FILE}"
- fi
+ CT_DoLog STATE " Saving log file"
+ exec >/dev/null
+ case "${CT_DEBUG_CT_SAVE_STEPS_GZIP}" in
+ y) gzip -3 -c "${tmp_log_file}" >"${state_dir}/log.gz";;
+ *) cat "${tmp_log_file}" >"${state_dir}/log";;
+ esac
+ exec >>"${tmp_log_file}"
}
# This function restores a previously saved state
@@ -1072,15 +1071,13 @@ CT_DoLoadState(){
CT_STOP="${old_STOP}"
unset old_stop old_restart
- if [ "${CT_LOG_TO_FILE}" = "y" ]; then
- CT_DoLog STATE " Restoring log file"
- exec >/dev/null
- case "${CT_DEBUG_CT_SAVE_STEPS_GZIP}" in
- y) zcat "${state_dir}/log.gz" >"${CT_LOG_FILE}";;
- *) cat "${state_dir}/log" >"${CT_LOG_FILE}";;
- esac
- cat "${state_dir}/tail.log" >>"${CT_LOG_FILE}"
- exec >>"${CT_LOG_FILE}"
- rm -f "${state_dir}/tail.log"
- fi
+ CT_DoLog STATE " Restoring log file"
+ exec >/dev/null
+ case "${CT_DEBUG_CT_SAVE_STEPS_GZIP}" in
+ y) zcat "${state_dir}/log.gz" >"${tmp_log_file}";;
+ *) cat "${state_dir}/log" >"${tmp_log_file}";;
+ esac
+ cat "${state_dir}/tail.log" >>"${tmp_log_file}"
+ exec >>"${tmp_log_file}"
+ rm -f "${state_dir}/tail.log"
}