yann@850: # This file adds functions to build glibc yann@850: # Copyright 2007 Yann E. MORIN yann@850: # Licensed under the GPL v2. See COPYING in the root of this package yann@850: yann@2272: # Add the definitions common to glibc and eglibc yann@2272: # do_libc_headers yann@2272: # do_libc_start_files yann@2272: . "${CT_LIB_DIR}/scripts/build/libc/glibc-eglibc.sh-common" yann@2272: yann@850: # Download glibc yann@850: do_libc_get() { yann@1260: local date yann@1260: local version yann@1482: local -a addons_list yann@1482: yann@1482: addons_list=($(do_libc_add_ons_list " ")) yann@1114: yann@1759: # Main source yann@1759: CT_GetFile "glibc-${CT_LIBC_VERSION}" \ yann@1759: {ftp,http}://ftp.gnu.org/gnu/glibc \ yann@1759: ftp://gcc.gnu.org/pub/glibc/releases \ yann@1759: ftp://gcc.gnu.org/pub/glibc/snapshots yann@1759: yann@1759: # C library addons yann@1759: for addon in "${addons_list[@]}"; do yann@1759: # NPTL addon is not to be downloaded, in any case yann@1759: [ "${addon}" = "nptl" ] && continue || true yann@1759: CT_GetFile "glibc-${addon}-${CT_LIBC_VERSION}" \ yann@850: {ftp,http}://ftp.gnu.org/gnu/glibc \ yann@850: ftp://gcc.gnu.org/pub/glibc/releases \ yann@850: ftp://gcc.gnu.org/pub/glibc/snapshots yann@1759: done yann@850: yann@850: return 0 yann@850: } yann@850: yann@850: # Extract glibc yann@850: do_libc_extract() { yann@1482: local -a addons_list yann@1482: yann@1482: addons_list=($(do_libc_add_ons_list " ")) yann@1260: yann@1759: CT_Extract "glibc-${CT_LIBC_VERSION}" yann@1260: yann@1759: CT_Pushd "${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}" yann@1901: CT_Patch nochdir "glibc" "${CT_LIBC_VERSION}" yann@850: yann@850: # C library addons yann@1482: for addon in "${addons_list[@]}"; do yann@850: # NPTL addon is not to be extracted, in any case yann@850: [ "${addon}" = "nptl" ] && continue || true yann@1761: CT_Extract nochdir "glibc-${addon}-${CT_LIBC_VERSION}" yann@1260: yann@1126: # Some addons have the 'long' name, while others have the yann@1126: # 'short' name, but patches are non-uniformly built with yann@1126: # either the 'long' or 'short' name, whatever the addons name yann@1126: # so we have to make symlinks from the existing to the missing yann@1126: # Fortunately for us, [ -d foo ], when foo is a symlink to a yann@1126: # directory, returns true! yann@1759: [ -d "${addon}" ] || CT_DoExecLog ALL ln -s "glibc-${addon}-${CT_LIBC_VERSION}" "${addon}" yann@1759: [ -d "glibc-${addon}-${CT_LIBC_VERSION}" ] || CT_DoExecLog ALL ln -s "${addon}" "glibc-${addon}-${CT_LIBC_VERSION}" yann@1901: CT_Patch nochdir "glibc" "${addon}-${CT_LIBC_VERSION}" yann@850: done yann@850: yann@884: # The configure files may be older than the configure.in files yann@884: # if using a snapshot (or even some tarballs). Fake them being yann@884: # up to date. yann@1482: sleep 2 yann@1260: find . -type f -name configure -exec touch {} \; 2>&1 |CT_DoLog ALL yann@1260: yann@1260: CT_Popd yann@884: yann@850: return 0 yann@850: } yann@850: yann@850: # There is nothing to do for glibc check config yann@850: do_libc_check_config() { yann@850: : yann@850: }