Fix glibc and uClibc downloading and extracting.

Although we no longer need the kernel config file, we now need to specify the kernel source directory when installing headers.
Re-order components downloading to match build order.
Fix the saveSample.sh script in case the referenced files are the same as the destination files.
This commit is contained in:
Yann E. MORIN" 2007-05-07 15:57:02 +00:00
parent 58b4c6d0a4
commit 64d804c4f6
5 changed files with 37 additions and 9 deletions

View File

@ -102,13 +102,17 @@ do_kernel_install() {
esac
CT_DoLog EXTRA "Installing kernel headers"
make ARCH=${CT_KERNEL_ARCH} \
make -C "${CT_SRC_DIR}/${CT_KERNEL_FILE}" \
O="`pwd`" \
ARCH=${CT_KERNEL_ARCH} \
INSTALL_HDR_PATH="${CT_SYSROOT_DIR}/usr" \
${V_OPT} \
headers_install 2>&1 |CT_DoLog DEBUG
CT_DoLog EXTRA "Checking installed headers"
make ARCH=${CT_KERNEL_ARCH} \
make -C "${CT_SRC_DIR}/${CT_KERNEL_FILE}" \
O="`pwd`" \
ARCH=${CT_KERNEL_ARCH} \
INSTALL_HDR_PATH="${CT_SYSROOT_DIR}/usr" \
${V_OPT} \
headers_check 2>&1 |CT_DoLog DEBUG

View File

@ -3,7 +3,7 @@
# Licensed under the GPL v2. See COPYING in the root of this package
# Download glibc
do_libc_download() {
do_libc_get() {
# Ah! Not all GNU folks seem stupid. All glibc releases are in the same
# directory. Good. Alas, there is no snapshot there. I'll deal with them
# later on... :-/
@ -15,6 +15,8 @@ do_libc_download() {
CT_GetFile "${CT_LIBC}-${addon}-${CT_LIBC_VERSION}" ftp://ftp.gnu.org/gnu/glibc
done
[ "${CT_LIBC_GLIBC_USE_PORTS}" = "y" ] && CT_GetFile "${CT_LIBC}-ports-${CT_LIBC_VERSION}" ftp://ftp.gnu.org/gnu/glibc
return 0
}
# Extract glibc
@ -27,6 +29,8 @@ do_libc_extract() {
CT_ExtractAndPatch "${CT_LIBC}-${addon}-${CT_LIBC_VERSION}"
done
[ "${CT_LIBC_GLIBC_USE_PORTS}" = "y" ] && CT_ExtractAndPatch "${CT_LIBC}-ports-${CT_LIBC_VERSION}"
return 0
}
# There is nothing to do for glibc check config

View File

@ -13,6 +13,8 @@ do_libc_get() {
CT_GetFile "${CT_LIBC_FILE}" ${libc_src}
# uClibc locales
[ "${CT_LIBC_UCLIBC_LOCALES}" = "y" ] && CT_GetFile "uClibc-locale-030818" ${libc_src}
return 0
}
# Extract uClibc
@ -20,6 +22,8 @@ do_libc_extract() {
CT_ExtractAndPatch "${CT_LIBC_FILE}"
# uClibc locales
[ "${CT_LIBC_UCLIBC_LOCALES}" = "y" ] && CT_ExtractAndPatch "uClibc-locale-030818"
return 0
}
# Check that uClibc has been previously configured

View File

@ -330,9 +330,9 @@ if [ "${CT_NO_DOWNLOAD}" != "y" ]; then
CT_DoStep INFO "Retrieving needed toolchain components' tarballs"
do_kernel_get
do_binutils_get
do_libc_get
do_libfloat_get
do_cc_core_get
do_libfloat_get
do_libc_get
do_cc_get
CT_EndStep
fi

View File

@ -27,17 +27,34 @@ CT_LOG_LEVEL_MAX="INFO"
# Target triplet: CT_TARGET needs a little love:
CT_DoBuildTargetTriplet
# Kludge: if any of the config options needs either CT_TARGET or CT_TOP_DIR,
# re-parse them:
. "${CT_TOP_DIR}/.config"
# Create the sample directory
[ -d "${CT_TOP_DIR}/samples/${CT_TARGET}" ] || svn mkdir "${CT_TOP_DIR}/samples/${CT_TARGET}" >/dev/null 2>&1
# Save the crosstool-NG config file
cp "${CT_TOP_DIR}/.config" "${CT_TOP_DIR}/samples/${CT_TARGET}/crosstool.config"
# Function to copy a file to the sample directory
# Needed in case the file is already there (think of a previously available sample)
# Usage: CT_DoAddFileToSample <source> <dest>
CT_DoAddFileToSample() {
source="$1"
dest="$2"
inode_s=`ls -i "${source}"`
inode_d=`ls -i "${dest}"`
if [ "${inode_s}" != "${inode_d}" ]; then
cp "${source}" "${dest}"
fi
svn add "${dest}" >/dev/null 2>&1
}
# Save the kernel .config file
if [ -n "${CT_KERNEL_LINUX_CONFIG_FILE}" ]; then
# We save the file, and then point the saved sample to this file
cp "${CT_KERNEL_LINUX_CONFIG_FILE}" "${CT_TOP_DIR}/samples/${CT_TARGET}/${CT_KERNEL}-${CT_KERNEL_VERSION}.config"
svn add "${CT_TOP_DIR}/samples/${CT_TARGET}/${CT_KERNEL}-${CT_KERNEL_VERSION}.config" >/dev/null 2>&1
CT_DoAddFileToSample "${CT_KERNEL_LINUX_CONFIG_FILE}" "${CT_TOP_DIR}/samples/${CT_TARGET}/${CT_KERNEL}-${CT_KERNEL_VERSION}.config"
sed -r -i -e 's|^(CT_KERNEL_LINUX_CONFIG_FILE=).+$|\1"${CT_TOP_DIR}/samples/${CT_TARGET}/${CT_KERNEL}-${CT_KERNEL_VERSION}.config"|;' \
"${CT_TOP_DIR}/samples/${CT_TARGET}/crosstool.config"
else
@ -50,8 +67,7 @@ fi
# Save the uClibc .config file
if [ -n "${CT_LIBC_UCLIBC_CONFIG_FILE}" ]; then
# We save the file, and then point the saved sample to this file
cp "${CT_LIBC_UCLIBC_CONFIG_FILE}" "${CT_TOP_DIR}/samples/${CT_TARGET}/${CT_LIBC}-${CT_LIBC_VERSION}.config"
svn add "${CT_TOP_DIR}/samples/${CT_TARGET}/${CT_LIBC}-${CT_LIBC_VERSION}.config" >/dev/null 2>&1
CT_DoAddFileToSample "${CT_LIBC_UCLIBC_CONFIG_FILE}" "${CT_TOP_DIR}/samples/${CT_TARGET}/${CT_LIBC}-${CT_LIBC_VERSION}.config"
sed -r -i -e 's|^(CT_LIBC_UCLIBC_CONFIG_FILE=).+$|\1"${CT_TOP_DIR}/samples/${CT_TARGET}/${CT_LIBC}-${CT_LIBC_VERSION}.config"|;' \
"${CT_TOP_DIR}/samples/${CT_TARGET}/crosstool.config"
else