mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-06-24 01:28:44 +00:00
Only create the state dir if asked for a restartable build:
- introduce the config dir, where components can store their config files - move the munged uClibc config file to the config dir - now, the state dir really is an indication that a build can be restarted Thanks to Groleo Marius <groleo@gmail.com> for spotting the inconsistency of the state dir usage, and suggesting this change. /trunk/scripts/build/libc/uClibc.sh | 6 3 3 0 +++--- /trunk/scripts/crosstool-NG.sh.in | 9 7 2 0 +++++++-- /trunk/scripts/functions | 15 12 3 0 ++++++++++++--- 3 files changed, 22 insertions(+), 8 deletions(-)
This commit is contained in:
@ -47,7 +47,7 @@ do_libc_check_config() {
|
||||
fi
|
||||
|
||||
CT_DoLog EXTRA "Munging uClibc configuration"
|
||||
mungeuClibcConfig "${CT_LIBC_UCLIBC_CONFIG_FILE}" "${CT_STATE_DIR}/uClibc.config"
|
||||
mungeuClibcConfig "${CT_LIBC_UCLIBC_CONFIG_FILE}" "${CT_CONFIG_DIR}/uClibc.config"
|
||||
|
||||
CT_EndStep
|
||||
}
|
||||
@ -64,7 +64,7 @@ do_libc_headers() {
|
||||
{ cd "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}"; tar cf - .; } |tar xf -
|
||||
|
||||
# Retrieve the config file
|
||||
cp "${CT_STATE_DIR}/uClibc.config" .config
|
||||
cp "${CT_CONFIG_DIR}/uClibc.config" .config
|
||||
|
||||
# uClibc uses the CROSS environment variable as a prefix to the
|
||||
# compiler tools to use. Setting it to the empty string forces
|
||||
@ -99,7 +99,7 @@ do_libc() {
|
||||
{ cd "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}"; tar cf - .; } |tar xf -
|
||||
|
||||
# Retrieve the config file
|
||||
cp "${CT_STATE_DIR}/uClibc.config" .config
|
||||
cp "${CT_CONFIG_DIR}/uClibc.config" .config
|
||||
|
||||
# uClibc uses the CROSS environment variable as a prefix to the compiler
|
||||
# tools to use. The newly built tools should be in our path, so we need
|
||||
|
@ -114,11 +114,13 @@ CT_CC_EXTRA_CONFIG="${CT_ARCH_CC_EXTRA_CONFIG} ${CT_CC_EXTRA_CONFIG}"
|
||||
CT_TARBALLS_DIR="${CT_WORK_DIR}/tarballs"
|
||||
CT_SRC_DIR="${CT_WORK_DIR}/src"
|
||||
CT_BUILD_DIR="${CT_WORK_DIR}/${CT_TARGET}/build"
|
||||
CT_STATE_DIR="${CT_WORK_DIR}/${CT_TARGET}/state"
|
||||
CT_CONFIG_DIR="${CT_BUILD_DIR}/configs"
|
||||
|
||||
# Note: we'll always install the core compiler in its own directory, so as to
|
||||
# not mix the two builds: core and final.
|
||||
CT_CC_CORE_STATIC_PREFIX_DIR="${CT_BUILD_DIR}/${CT_CC}-core-static"
|
||||
CT_CC_CORE_SHARED_PREFIX_DIR="${CT_BUILD_DIR}/${CT_CC}-core-shared"
|
||||
CT_STATE_DIR="${CT_WORK_DIR}/${CT_TARGET}/state"
|
||||
|
||||
# We must ensure that we can restart if asked for!
|
||||
if [ -n "${CT_RESTART}" -a ! -d "${CT_STATE_DIR}" ]; then
|
||||
@ -194,11 +196,14 @@ fi
|
||||
CT_DoExecLog ALL mkdir -p "${CT_TARBALLS_DIR}"
|
||||
CT_DoExecLog ALL mkdir -p "${CT_SRC_DIR}"
|
||||
CT_DoExecLog ALL mkdir -p "${CT_BUILD_DIR}"
|
||||
CT_DoExecLog ALL mkdir -p "${CT_CONFIG_DIR}"
|
||||
CT_DoExecLog ALL mkdir -p "${CT_INSTALL_DIR}"
|
||||
CT_DoExecLog ALL mkdir -p "${CT_PREFIX_DIR}"
|
||||
CT_DoExecLog ALL mkdir -p "${CT_CC_CORE_STATIC_PREFIX_DIR}"
|
||||
CT_DoExecLog ALL mkdir -p "${CT_CC_CORE_SHARED_PREFIX_DIR}"
|
||||
CT_DoExecLog ALL mkdir -p "${CT_STATE_DIR}"
|
||||
|
||||
# Only create the state dir if asked for a restartable build
|
||||
[ -n "${CT_DEBUG_CT_SAVE_STEPS}" ] && CT_DoExecLog ALL mkdir -p "${CT_STATE_DIR}"
|
||||
|
||||
# Check install file system case-sensitiveness
|
||||
touch "${CT_PREFIX_DIR}/foo"
|
||||
|
@ -854,6 +854,11 @@ CT_DoSaveState() {
|
||||
/^(UID|EUID)=/d;
|
||||
/^(FUNCNAME|GROUPS|PPID|SHELLOPTS)=/d;' >"${state_dir}/env.sh"
|
||||
|
||||
CT_DoLog DEBUG " Saving CT_CONFIG_DIR='${CT_CONFIG_DIR}'"
|
||||
CT_Pushd "${CT_CONFIG_DIR}"
|
||||
CT_DoExecLog DEBUG tar cv${tar_opt}f "${state_dir}/config_dir.tar${tar_ext}" .
|
||||
CT_Popd
|
||||
|
||||
CT_DoLog DEBUG " Saving CT_CC_CORE_STATIC_PREFIX_DIR='${CT_CC_CORE_STATIC_PREFIX_DIR}'"
|
||||
CT_Pushd "${CT_CC_CORE_STATIC_PREFIX_DIR}"
|
||||
CT_DoExecLog DEBUG tar cv${tar_opt}f "${state_dir}/cc_core_static_prefix_dir.tar${tar_ext}" .
|
||||
@ -904,9 +909,8 @@ CT_DoLoadState(){
|
||||
esac
|
||||
|
||||
CT_DoLog DEBUG " Removing previous build directories"
|
||||
chmod -R u+rwX "${CT_PREFIX_DIR}" "${CT_CC_CORE_SHARED_PREFIX_DIR}" "${CT_CC_CORE_STATIC_PREFIX_DIR}"
|
||||
rm -rf "${CT_PREFIX_DIR}" "${CT_CC_CORE_SHARED_PREFIX_DIR}" "${CT_CC_CORE_STATIC_PREFIX_DIR}"
|
||||
mkdir -p "${CT_PREFIX_DIR}" "${CT_CC_CORE_SHARED_PREFIX_DIR}" "${CT_CC_CORE_STATIC_PREFIX_DIR}"
|
||||
CT_DoForceRmdir "${CT_PREFIX_DIR}" "${CT_CC_CORE_SHARED_PREFIX_DIR}" "${CT_CC_CORE_STATIC_PREFIX_DIR}" "${CT_CONFIG_DIR}"
|
||||
CT_DoExecLog DEBUG mkdir -p "${CT_PREFIX_DIR}" "${CT_CC_CORE_SHARED_PREFIX_DIR}" "${CT_CC_CORE_STATIC_PREFIX_DIR}" "${CT_CONFIG_DIR}"
|
||||
|
||||
CT_DoLog DEBUG " Restoring CT_PREFIX_DIR='${CT_PREFIX_DIR}'"
|
||||
CT_Pushd "${CT_PREFIX_DIR}"
|
||||
@ -923,6 +927,11 @@ CT_DoLoadState(){
|
||||
CT_DoExecLog DEBUG tar xv${tar_opt}f "${state_dir}/cc_core_static_prefix_dir.tar${tar_ext}"
|
||||
CT_Popd
|
||||
|
||||
CT_DoLog DEBUG " Restoring CT_CONFIG_DIR='${CT_CONFIG_DIR}'"
|
||||
CT_Pushd "${CT_CONFIG_DIR}"
|
||||
CT_DoExecLog DEBUG tar xv${tar_opt}f "${state_dir}/config_dir.tar${tar_ext}"
|
||||
CT_Popd
|
||||
|
||||
# Restore the environment, discarding any error message
|
||||
# (for example, read-only bash internals)
|
||||
CT_DoLog DEBUG " Restoring environment"
|
||||
|
Reference in New Issue
Block a user