diff options
Diffstat (limited to 'scripts/build/libc')
-rw-r--r-- | scripts/build/libc/eglibc.sh | 48 | ||||
-rw-r--r-- | scripts/build/libc/glibc.sh | 61 | ||||
-rw-r--r-- | scripts/build/libc/uClibc.sh | 16 |
3 files changed, 68 insertions, 57 deletions
diff --git a/scripts/build/libc/eglibc.sh b/scripts/build/libc/eglibc.sh index 01f8ceb8..5e1e5c80 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 1c7a2d5b..02b7412b 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 f81236c2..cf1623e4 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 |