From 8908eb30375d19816e1329b8a4aa4daa430204b0 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Sat, 2 Jan 2010 18:00:54 +0100 Subject: misc: do not use "tar cf - |tar xf -" Using this: tar cf - -C "/some/place" |tar xf - -C "/some/other/place" to copy a directory to another place does not properly fail (when it does). Using this instead: cp -av "/some/place" "/some/other/place" makes it easy to see why and how it failed. Impacted: libc/uClibc debug/ltrace tools/sstrip scripts/populate --- scripts/build/debug/400-ltrace.sh | 6 +++--- scripts/build/libc/uClibc.sh | 22 ++++++++++------------ scripts/build/tools/200-sstrip.sh | 4 ++-- 3 files changed, 15 insertions(+), 17 deletions(-) (limited to 'scripts/build') diff --git a/scripts/build/debug/400-ltrace.sh b/scripts/build/debug/400-ltrace.sh index f1e799c5..6b289ab4 100644 --- a/scripts/build/debug/400-ltrace.sh +++ b/scripts/build/debug/400-ltrace.sh @@ -20,11 +20,11 @@ do_debug_ltrace_extract() { do_debug_ltrace_build() { CT_DoStep INFO "Installing ltrace" - mkdir -p "${CT_BUILD_DIR}/build-ltrace" - CT_Pushd "${CT_BUILD_DIR}/build-ltrace" CT_DoLog EXTRA "Copying sources to build dir" - (cd "${CT_SRC_DIR}/ltrace-${CT_LTRACE_VERSION}"; tar cf - .)| tar xvf - |CT_DoLog ALL + CT_DoExecLog ALL cp -av "${CT_SRC_DIR}/ltrace-${CT_LTRACE_VERSION}" \ + "${CT_BUILD_DIR}/build-ltrace" + CT_Pushd "${CT_BUILD_DIR}/build-ltrace" CT_DoLog EXTRA "Configuring ltrace" CT_DoExecLog ALL \ diff --git a/scripts/build/libc/uClibc.sh b/scripts/build/libc/uClibc.sh index 21b09fba..3dcc1118 100644 --- a/scripts/build/libc/uClibc.sh +++ b/scripts/build/libc/uClibc.sh @@ -58,15 +58,14 @@ do_libc_headers() { CT_DoStep INFO "Installing C library headers" - mkdir -p "${CT_BUILD_DIR}/build-libc-headers" - cd "${CT_BUILD_DIR}/build-libc-headers" - - # Simply copy files until uClibc has the ablity to build out-of-tree + # Simply copy files until uClibc has the ability to build out-of-tree CT_DoLog EXTRA "Copying sources to build dir" - tar cf - -C "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}" . |tar xf - + CT_DoExecLog ALL cp -av "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}" \ + "${CT_BUILD_DIR}/build-libc-headers" + cd "${CT_BUILD_DIR}/build-libc-headers" # Retrieve the config file - cp "${CT_CONFIG_DIR}/uClibc.config" .config + CT_DoExecLog ALL 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,15 +98,14 @@ do_libc_start_files() { do_libc() { CT_DoStep INFO "Installing C library" - mkdir -p "${CT_BUILD_DIR}/build-libc" - cd "${CT_BUILD_DIR}/build-libc" - - # Simply copy files until uClibc has the ablity to build out-of-tree + # Simply copy files until uClibc has the ability to build out-of-tree CT_DoLog EXTRA "Copying sources to build dir" - tar cf - -C "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}" . |tar xf - + CT_DoExecLog ALL cp -av "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}" \ + "${CT_BUILD_DIR}/build-libc" + cd "${CT_BUILD_DIR}/build-libc" # Retrieve the config file - cp "${CT_CONFIG_DIR}/uClibc.config" .config + CT_DoExecLog ALL 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 diff --git a/scripts/build/tools/200-sstrip.sh b/scripts/build/tools/200-sstrip.sh index b72aa791..c6770720 100644 --- a/scripts/build/tools/200-sstrip.sh +++ b/scripts/build/tools/200-sstrip.sh @@ -12,9 +12,9 @@ case "${CT_SSTRIP_FROM}" in } do_tools_sstrip_build() { CT_DoStep INFO "Installing sstrip" - mkdir -p "${CT_BUILD_DIR}/build-strip" + CT_DoExecLog ALL cp -av "${CT_SRC_DIR}/ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}/sstrip" \ + "${CT_BUILD_DIR}/build-strip" cd "${CT_BUILD_DIR}/build-strip" - ( cd "${CT_SRC_DIR}/ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}/sstrip"; tar cf - . ) |tar xf - CT_DoLog EXTRA "Building sstrip" CT_DoExecLog ALL make CC="${CT_HOST}-gcc" sstrip -- cgit v1.2.3