From 0dd9778b6edf74272675523b9936dbaaa025a936 Mon Sep 17 00:00:00 2001 From: Jeremiah Orem Date: Fri, 22 Nov 2013 20:38:46 -0500 Subject: [PATCH] Avoid overwriting /usr/{bin,sbin,lib64} symlinks. --- build_library/base_image_util.sh | 11 ++++++++++- install_toolchain | 6 ++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/build_library/base_image_util.sh b/build_library/base_image_util.sh index 9006021be6..d33c81fcea 100755 --- a/build_library/base_image_util.sh +++ b/build_library/base_image_util.sh @@ -169,9 +169,18 @@ create_base_image() { # Locales and info pages usr/share/{i18n,info,locale} ) + + mkdir -p "${root_fs_dir}"/sbin "${root_fs_dir}"/lib64 lbzip2 -dc "${LIBC_PATH}" | \ sudo tar xpf - -C "${root_fs_dir}" ./usr/${CHOST} \ - --strip-components=3 "${libc_excludes[@]/#/--exclude=}" + --strip-components=3 "${libc_excludes[@]/#/--exclude=}" \ + --exclude=${CHOST}/sbin --exclude=${CHOST}/lib64 + lbzip2 -dc "${LIBC_PATH}" | \ + sudo tar xpf - -C "${root_fs_dir}"/lib64 ./usr/${CHOST}/lib64 \ + --strip-components=4 "${libc_excludes[@]/#/--exclude=}" + lbzip2 -dc "${LIBC_PATH}" | \ + sudo tar xpf - -C "${root_fs_dir}"/sbin ./usr/${CHOST}/sbin \ + --strip-components=4 "${libc_excludes[@]/#/--exclude=}" board_ctarget=$(get_ctarget_from_board "${BOARD}") for atom in $(portageq match / cross-$board_ctarget/gcc); do diff --git a/install_toolchain b/install_toolchain index c3ed9575df..29fdd21ffe 100755 --- a/install_toolchain +++ b/install_toolchain @@ -117,8 +117,14 @@ install_toolchain_in_board() { if [ "${CHOST}" != "$FLAGS_toolchain" ] ; then local libc_path="${PKGDIR}/cross-${FLAGS_toolchain}/${libc_tar}" cmds=( + "mkdir -p '${BOARD_ROOT}/lib64' '${BOARD_ROOT}/sbin'" "tar jxpf '${libc_path}' -C '${BOARD_ROOT}' --exclude=lib \ + --exclude=${FLAGS_toolchain}/lib64 --exclude=${FLAGS_toolchain}/sbin \ './usr/${FLAGS_toolchain}' --strip-components=3" + "tar jxpf '${libc_path}' -C '${BOARD_ROOT}/lib64' --exclude=lib \ + './usr/${FLAGS_toolchain}/lib64' --strip-components=4" + "tar jxpf '${libc_path}' -C '${BOARD_ROOT}/sbin' --exclude=lib \ + './usr/${FLAGS_toolchain}/sbin' --strip-components=4" "mkdir -p '${BOARD_ROOT}/usr/lib/debug'" "tar jxpf '${libc_path}' -C '${BOARD_ROOT}/usr/lib/debug' \ './usr/lib/debug/usr/${FLAGS_toolchain}' --strip-components=6 \