summaryrefslogtreecommitdiff
path: root/scripts/build/libc
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2009-01-04 22:17:53 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2009-01-04 22:17:53 (GMT)
commit31cc00829e91ecc45b99fccdb51ebcb2f924229a (patch)
treea11abed88c44e79fb174506cb7e02a40ec1bebef /scripts/build/libc
parentddaf4012ae2ec0896a0299a09b4616eec332820f (diff)
Get rid of CT_LIBC_FILE, remove useless CT_MakeAbsolutePath.
CT_LIBC_FILE: - that one was not easy, as it had sneaked into CT_ExtractAndPatch - which in turn made CT_ExtractAndPatch have references to C library addons - which in turn relieved the C library _extract functions from doing their own job - which in turn imposed some nasty tricks in CT_ExtractAndPatch - which in turn made life easier for the DUMA _get and _extract functions - which unveiled some bizare behavior for pushd and popd: - if using smthg ike: 'pushd foo |bar': - the directory is *neither* changed - *nor* is it pushed onto the stack - which made popd fail CT_MakeAbsolutePath: - used only to make CT_LOCAL_TARBALLS_DIR canonical - which is ((almost) useless: - hopefully, the user entered a full path already - if it's not the case, too bad... /trunk/scripts/build/debug/200-duma.sh | 5 1 4 0 +-- /trunk/scripts/build/libc/glibc.sh | 61 32 29 0 +++++++++++++++++--------------- /trunk/scripts/build/libc/uClibc.sh | 16 10 6 0 +++++--- /trunk/scripts/build/libc/eglibc.sh | 48 26 22 0 ++++++++++++++----------- /trunk/scripts/crosstool.sh | 8 0 8 0 ---- /trunk/scripts/functions | 77 15 62 0 ++++++++-------------------------------- 6 files changed, 84 insertions(+), 131 deletions(-)
Diffstat (limited to 'scripts/build/libc')
-rw-r--r--scripts/build/libc/eglibc.sh48
-rw-r--r--scripts/build/libc/glibc.sh61
-rw-r--r--scripts/build/libc/uClibc.sh16
3 files changed, 68 insertions, 57 deletions
diff --git a/scripts/build/libc/eglibc.sh b/scripts/build/libc/eglibc.sh
index 01f8ceb..5e1e5c8 100644
--- a/scripts/build/libc/eglibc.sh
+++ b/scripts/build/libc/eglibc.sh
@@ -18,13 +18,14 @@ do_eglibc_get() {
CT_DoExecLog ALL svn ${svn_action} -r "${CT_EGLIBC_REVISION:-HEAD}" "${svn_url}" . 2>&1
# Compress eglibc
- CT_DoExecLog ALL mv libc "${CT_LIBC_FILE}"
- CT_DoExecLog ALL tar cjf "${CT_LIBC_FILE}.tar.bz2" "${CT_LIBC_FILE}"
+ CT_DoExecLog ALL mv libc "eglibc-${CT_LIBC_VERSION}"
+ CT_DoExecLog ALL tar cjf "eglibc-${CT_LIBC_VERSION}.tar.bz2" "eglibc-${CT_LIBC_VERSION}"
# Compress linuxthreads, localedef and ports
# Assign them the name the way ct-ng like it
for addon in linuxthreads localedef ports; do
- CT_DoExecLog ALL tar cjf "${CT_LIBC}-${addon}-${CT_LIBC_VERSION}.tar.bz2" "${addon}"
+ CT_DoExecLog ALL mv "${addon}" "eglibc-${addon}-${CT_LIBC_VERSION}"
+ CT_DoExecLog ALL tar cjf "eglibc-${addon}-${CT_LIBC_VERSION}.tar.bz2" "eglibc-${addon}-${CT_LIBC_VERSION}"
done
}
@@ -35,7 +36,7 @@ do_libc_get() {
# simultaneously.
# build filename
- eglibc="${CT_LIBC_FILE}.tar.bz2"
+ eglibc="eglibc-${CT_LIBC_VERSION}.tar.bz2"
eglibc_linuxthreads="${CT_LIBC}-linuxthreads-${CT_LIBC_VERSION}.tar.bz2"
eglibc_localedef="${CT_LIBC}-localedef-${CT_LIBC_VERSION}.tar.bz2"
eglibc_ports="${CT_LIBC}-ports-${CT_LIBC_VERSION}.tar.bz2"
@@ -91,19 +92,22 @@ do_libc_get() {
# Extract eglibc
do_libc_extract() {
- CT_ExtractAndPatch "${CT_LIBC_FILE}"
+ CT_ExtractAndPatch "eglibc-${CT_LIBC_VERSION}"
# C library addons
for addon in $(do_libc_add_ons_list " "); do
# NPTL addon is not to be extracted, in any case
[ "${addon}" = "nptl" ] && continue || true
- CT_ExtractAndPatch "${CT_LIBC}-${addon}-${CT_LIBC_VERSION}"
+ CT_Pushd "${CT_SRC_DIR}/eglibc-${CT_LIBC_VERSION}"
+ CT_ExtractAndPatch "${CT_LIBC}-${addon}-${CT_LIBC_VERSION}" nochdir
+ [ ! -d "${addon}" ] && ln -s "eglibc-${addon}-${CT_LIBC_VERSION}" "${addon}"
+ CT_Popd
done
# The configure files may be older than the configure.in files
# if using a snapshot (or even some tarballs). Fake them being
# up to date.
- find "${CT_SRC_DIR}/${CT_LIBC_FILE}" -type f -name configure -exec touch {} \; 2>&1 |CT_DoLog ALL
+ find "${CT_SRC_DIR}/eglibc-${CT_LIBC_VERSION}" -type f -name configure -exec touch {} \; 2>&1 |CT_DoLog ALL
return 0
}
@@ -139,20 +143,20 @@ do_libc_start_files() {
CT_DoLog DEBUG "Using ar for target: '${cross_ar}'"
CT_DoLog DEBUG "Using ranlib for target: '${cross_ranlib}'"
- BUILD_CC="${CT_BUILD}-gcc" \
- CC=${cross_cc} \
- CXX=${cross_cxx} \
- AR=${cross_ar} \
- RANLIB=${cross_ranlib} \
- CT_DoExecLog ALL \
- "${CT_SRC_DIR}/${CT_LIBC_FILE}/configure" \
- --prefix=/usr \
- --with-headers="${CT_HEADERS_DIR}" \
- --build="${CT_BUILD}" \
- --host="${CT_TARGET}" \
- --disable-profile \
- --without-gd \
- --without-cvs \
+ BUILD_CC="${CT_BUILD}-gcc" \
+ CC=${cross_cc} \
+ CXX=${cross_cxx} \
+ AR=${cross_ar} \
+ RANLIB=${cross_ranlib} \
+ CT_DoExecLog ALL \
+ "${CT_SRC_DIR}/eglibc-${CT_LIBC_VERSION}/configure" \
+ --prefix=/usr \
+ --with-headers="${CT_HEADERS_DIR}" \
+ --build="${CT_BUILD}" \
+ --host="${CT_TARGET}" \
+ --disable-profile \
+ --without-gd \
+ --without-cvs \
--enable-add-ons
CT_DoLog EXTRA "Installing C library headers"
@@ -241,7 +245,7 @@ do_libc() {
AR=${CT_TARGET}-ar \
RANLIB=${CT_TARGET}-ranlib \
CT_DoExecLog ALL \
- "${CT_SRC_DIR}/${CT_LIBC_FILE}/configure" \
+ "${CT_SRC_DIR}/eglibc-${CT_LIBC_VERSION}/configure" \
--prefix=/usr \
--with-headers="${CT_HEADERS_DIR}" \
--build=${CT_BUILD} \
diff --git a/scripts/build/libc/glibc.sh b/scripts/build/libc/glibc.sh
index 1c7a2d5..02b7412 100644
--- a/scripts/build/libc/glibc.sh
+++ b/scripts/build/libc/glibc.sh
@@ -16,11 +16,11 @@ do_libc_get() {
if [ "${CT_LIBC_GLIBC_2_8_or_later}" = "y" ]; then
# No release tarball available...
date="${CT_LIBC_GLIBC_CVS_date}"
- CT_GetCVS "${CT_LIBC_FILE}" \
+ CT_GetCVS "glibc-${CT_LIBC_VERSION}" \
":pserver:anoncvs@sources.redhat.com:/cvs/glibc" \
"libc" \
"glibc-${CT_LIBC_VERSION}-branch${date:+:}${date}" \
- "${CT_LIBC_FILE}"
+ "glibc-${CT_LIBC_VERSION}"
# C library addons
for addon in $(do_libc_add_ons_list " "); do
@@ -34,7 +34,7 @@ do_libc_get() {
done
else
# Release tarballs are available
- CT_GetFile "${CT_LIBC_FILE}" \
+ CT_GetFile "glibc-${CT_LIBC_VERSION}" \
{ftp,http}://ftp.gnu.org/gnu/glibc \
ftp://gcc.gnu.org/pub/glibc/releases \
ftp://gcc.gnu.org/pub/glibc/snapshots
@@ -43,7 +43,7 @@ do_libc_get() {
for addon in $(do_libc_add_ons_list " "); do
# NPTL addon is not to be downloaded, in any case
[ "${addon}" = "nptl" ] && continue || true
- CT_GetFile "${CT_LIBC}-${addon}-${CT_LIBC_VERSION}" \
+ CT_GetFile "glibc-${addon}-${CT_LIBC_VERSION}" \
{ftp,http}://ftp.gnu.org/gnu/glibc \
ftp://gcc.gnu.org/pub/glibc/releases \
ftp://gcc.gnu.org/pub/glibc/snapshots
@@ -55,19 +55,22 @@ do_libc_get() {
# Extract glibc
do_libc_extract() {
- CT_ExtractAndPatch "${CT_LIBC_FILE}"
+ CT_ExtractAndPatch "glibc-${CT_LIBC_VERSION}"
# C library addons
for addon in $(do_libc_add_ons_list " "); do
# NPTL addon is not to be extracted, in any case
[ "${addon}" = "nptl" ] && continue || true
- CT_ExtractAndPatch "${CT_LIBC}-${addon}-${CT_LIBC_VERSION}"
+ CT_Pushd "${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}"
+ CT_ExtractAndPatch "glibc-${addon}-${CT_LIBC_VERSION}" nochdir
+ [ ! -d "${addon}" ] && ln -s "glibc-${addon}-${CT_LIBC_VERSION}" "${addon}"
+ CT_Popd
done
# The configure files may be older than the configure.in files
# if using a snapshot (or even some tarballs). Fake them being
# up to date.
- find "${CT_SRC_DIR}/${CT_LIBC_FILE}" -type f -name configure -exec touch {} \; 2>&1 |CT_DoLog ALL
+ find "${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}" -type f -name configure -exec touch {} \; 2>&1 |CT_DoLog ALL
return 0
}
@@ -115,23 +118,23 @@ do_libc_headers() {
CT_DoLog DEBUG "Using gcc for target: '${cross_cc}'"
CT_DoLog DEBUG "Extra config passed : '${extra_config}'"
- libc_cv_ppc_machine=yes \
- CC=${cross_cc} \
- CT_DoExecLog ALL \
- "${CT_SRC_DIR}/${CT_LIBC_FILE}/configure" \
- --build="${CT_BUILD}" \
- --host="${CT_TARGET}" \
- --prefix=/usr \
- --with-headers="${CT_HEADERS_DIR}" \
- --without-cvs \
- --disable-sanity-checks \
- --enable-hacker-mode \
- ${extra_config} \
+ libc_cv_ppc_machine=yes \
+ CC=${cross_cc} \
+ CT_DoExecLog ALL \
+ "${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}/configure" \
+ --build="${CT_BUILD}" \
+ --host="${CT_TARGET}" \
+ --prefix=/usr \
+ --with-headers="${CT_HEADERS_DIR}" \
+ --without-cvs \
+ --disable-sanity-checks \
+ --enable-hacker-mode \
+ ${extra_config} \
--without-nptl
CT_DoLog EXTRA "Installing C library headers"
- if grep -q GLIBC_2.3 "${CT_SRC_DIR}/${CT_LIBC_FILE}/ChangeLog"; then
+ if grep -q GLIBC_2.3 "${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}/ChangeLog"; then
# glibc-2.3.x passes cross options to $(CC) when generating errlist-compat.c,
# which fails without a real cross-compiler.
# Fortunately, we don't need errlist-compat.c, since we just need .h
@@ -172,7 +175,7 @@ do_libc_headers() {
# See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html
mkdir -p "${CT_HEADERS_DIR}/gnu"
CT_DoExecLog ALL touch "${CT_HEADERS_DIR}/gnu/stubs.h"
- CT_DoExecLog ALL cp -v "${CT_SRC_DIR}/${CT_LIBC_FILE}/include/features.h" \
+ CT_DoExecLog ALL cp -v "${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}/include/features.h" \
"${CT_HEADERS_DIR}/features.h"
# Building the bootstrap gcc requires either setting inhibit_libc, or
@@ -187,20 +190,20 @@ do_libc_headers() {
[ "${CT_ARCH}" != "arm" ] && CT_DoExecLog ALL cp -v misc/syscall-list.h "${CT_HEADERS_DIR}/bits/syscall.h" || true
# Those headers are to be manually copied so gcc can build properly
- pthread_h="${CT_SRC_DIR}/${CT_LIBC_FILE}/${CT_THREADS}/sysdeps/pthread/pthread.h"
+ pthread_h="${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}/${CT_THREADS}/sysdeps/pthread/pthread.h"
pthreadtypes_h=
case "${CT_THREADS}" in
nptl)
# NOTE: for some archs, the pathes are different, but they are not
# supported by crosstool-NG right now. See original crosstool when they are.
- pthread_h="${CT_SRC_DIR}/${CT_LIBC_FILE}/${CT_THREADS}/sysdeps/pthread/pthread.h"
- pthreadtypes_h="${CT_SRC_DIR}/${CT_LIBC_FILE}/nptl/sysdeps/unix/sysv/linux/${CT_KERNEL_ARCH}/bits/pthreadtypes.h"
+ pthread_h="${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}/${CT_THREADS}/sysdeps/pthread/pthread.h"
+ pthreadtypes_h="${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}/nptl/sysdeps/unix/sysv/linux/${CT_KERNEL_ARCH}/bits/pthreadtypes.h"
if [ ! -f "${pthreadtypes_h}" ]; then
- pthreadtypes_h="${CT_SRC_DIR}/${CT_LIBC_FILE}/${CT_LIBC}-ports-${CT_LIBC_VERSION}/sysdeps/unix/sysv/linux/${CT_KERNEL_ARCH}/nptl/bits/pthreadtypes.h"
+ pthreadtypes_h="${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}/ports/sysdeps/unix/sysv/linux/${CT_KERNEL_ARCH}/nptl/bits/pthreadtypes.h"
fi
;;
linuxthreads)
- pthreadtypes_h="${CT_SRC_DIR}/${CT_LIBC_FILE}/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h"
+ pthreadtypes_h="${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h"
;;
*)
pthread_h=
@@ -292,7 +295,7 @@ do_libc_start_files() {
AR=${CT_TARGET}-ar \
RANLIB=${CT_TARGET}-ranlib \
CT_DoExecLog ALL \
- "${CT_SRC_DIR}/${CT_LIBC_FILE}/configure" \
+ "${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}/configure" \
--prefix=/usr \
--build="${CT_BUILD}" \
--host=${CT_TARGET} \
@@ -420,7 +423,7 @@ do_libc() {
AR=${CT_TARGET}-ar \
RANLIB=${CT_TARGET}-ranlib \
CT_DoExecLog ALL \
- "${CT_SRC_DIR}/${CT_LIBC_FILE}/configure" \
+ "${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}/configure" \
--prefix=/usr \
--build=${CT_BUILD} \
--host=${CT_TARGET} \
@@ -434,7 +437,7 @@ do_libc() {
${extra_config} \
${CT_LIBC_GLIBC_EXTRA_CONFIG}
- if grep -l '^install-lib-all:' "${CT_SRC_DIR}/${CT_LIBC_FILE}/Makerules" > /dev/null; then
+ if grep -l '^install-lib-all:' "${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}/Makerules" > /dev/null; then
# nptl-era glibc.
# If the install-lib-all target (which is added by our make-install-lib-all.patch)
# is present, it means we're building glibc-2.3.3 or later, and we can't
diff --git a/scripts/build/libc/uClibc.sh b/scripts/build/libc/uClibc.sh
index f81236c..cf1623e 100644
--- a/scripts/build/libc/uClibc.sh
+++ b/scripts/build/libc/uClibc.sh
@@ -10,7 +10,7 @@ do_libc_get() {
# For uClibc, we have almost every thing: releases, and snapshots
# for the last month or so. We'll have to deal with svn revisions
# later...
- CT_GetFile "${CT_LIBC_FILE}" ${libc_src}
+ CT_GetFile "uClibc-${CT_LIBC_VERSION}" ${libc_src}
# uClibc locales
[ "${CT_LIBC_UCLIBC_LOCALES}" = "y" ] && CT_GetFile "uClibc-locale-030818" ${libc_src} || true
@@ -19,9 +19,13 @@ do_libc_get() {
# Extract uClibc
do_libc_extract() {
- CT_ExtractAndPatch "${CT_LIBC_FILE}"
+ CT_ExtractAndPatch "uClibc-${CT_LIBC_VERSION}"
# uClibc locales
- [ "${CT_LIBC_UCLIBC_LOCALES}" = "y" ] && CT_ExtractAndPatch "uClibc-locale-030818" || true
+ if [ "${CT_LIBC_UCLIBC_LOCALES}" = "y" ]; then
+ CT_Pushd "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}"
+ CT_ExtractAndPatch "uClibc-locale-030818" nochdir || true
+ CT_Popd
+ fi
return 0
}
@@ -52,7 +56,7 @@ do_libc_headers() {
# Simply copy files until uClibc has the ablity to build out-of-tree
CT_DoLog EXTRA "Copying sources to build dir"
- { cd "${CT_SRC_DIR}/${CT_LIBC_FILE}"; tar cf - .; } |tar xf -
+ { cd "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}"; tar cf - .; } |tar xf -
# Retrieve the config file
cp "${CT_BUILD_DIR}/uClibc.config" .config
@@ -87,7 +91,7 @@ do_libc() {
# Simply copy files until uClibc has the ablity to build out-of-tree
CT_DoLog EXTRA "Copying sources to build dir"
- { cd "${CT_SRC_DIR}/${CT_LIBC_FILE}"; tar cf - .; } |tar xf -
+ { cd "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}"; tar cf - .; } |tar xf -
# Retrieve the config file
cp "${CT_BUILD_DIR}/uClibc.config" .config
@@ -146,7 +150,7 @@ do_libc_finish() {
# Simply copy files until uClibc has the ablity to build out-of-tree
CT_DoLog EXTRA "Copying sources to build dir"
- { cd "${CT_SRC_DIR}/${CT_LIBC_FILE}"; tar cf - .; } |tar xf -
+ { cd "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}"; tar cf - .; } |tar xf -
# Retrieve the config file
cp "${CT_BUILD_DIR}/uClibc.config" .config