scripts/build/libc/glibc.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Jan 20 00:27:36 2011 +0100 (2011-01-20)
changeset 2277 71803c9f6de0
parent 2276 ac021d186cd6
child 2278 e86826b8621a
permissions -rw-r--r--
libc/glibc-eglibc: misc janitorial cleanups.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@850
     1
# This file adds functions to build glibc
yann@850
     2
# Copyright 2007 Yann E. MORIN
yann@850
     3
# Licensed under the GPL v2. See COPYING in the root of this package
yann@850
     4
yann@2272
     5
# Add the definitions common to glibc and eglibc
yann@2272
     6
#   do_libc_headers
yann@2272
     7
#   do_libc_start_files
yann@2277
     8
#   do_libc
yann@2277
     9
#   do_libc_finish
yann@2277
    10
#   do_libc_add_ons_list
yann@2277
    11
#   do_libc_min_kernel_config
yann@2272
    12
. "${CT_LIB_DIR}/scripts/build/libc/glibc-eglibc.sh-common"
yann@2272
    13
yann@850
    14
# Download glibc
yann@850
    15
do_libc_get() {
yann@1260
    16
    local date
yann@1260
    17
    local version
yann@1482
    18
    local -a addons_list
yann@1482
    19
yann@1482
    20
    addons_list=($(do_libc_add_ons_list " "))
yann@1114
    21
yann@1759
    22
    # Main source
yann@1759
    23
    CT_GetFile "glibc-${CT_LIBC_VERSION}"               \
yann@1759
    24
               {ftp,http}://ftp.gnu.org/gnu/glibc       \
yann@1759
    25
               ftp://gcc.gnu.org/pub/glibc/releases     \
yann@1759
    26
               ftp://gcc.gnu.org/pub/glibc/snapshots
yann@1759
    27
yann@1759
    28
    # C library addons
yann@1759
    29
    for addon in "${addons_list[@]}"; do
yann@1759
    30
        # NPTL addon is not to be downloaded, in any case
yann@1759
    31
        [ "${addon}" = "nptl" ] && continue || true
yann@1759
    32
        CT_GetFile "glibc-${addon}-${CT_LIBC_VERSION}"      \
yann@850
    33
                   {ftp,http}://ftp.gnu.org/gnu/glibc       \
yann@850
    34
                   ftp://gcc.gnu.org/pub/glibc/releases     \
yann@850
    35
                   ftp://gcc.gnu.org/pub/glibc/snapshots
yann@1759
    36
    done
yann@850
    37
yann@850
    38
    return 0
yann@850
    39
}
yann@850
    40
yann@850
    41
# Extract glibc
yann@850
    42
do_libc_extract() {
yann@1482
    43
    local -a addons_list
yann@1482
    44
yann@1482
    45
    addons_list=($(do_libc_add_ons_list " "))
yann@1260
    46
yann@1759
    47
    CT_Extract "glibc-${CT_LIBC_VERSION}"
yann@1260
    48
yann@1759
    49
    CT_Pushd "${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}"
yann@1901
    50
    CT_Patch nochdir "glibc" "${CT_LIBC_VERSION}"
yann@850
    51
yann@850
    52
    # C library addons
yann@1482
    53
    for addon in "${addons_list[@]}"; do
yann@850
    54
        # NPTL addon is not to be extracted, in any case
yann@850
    55
        [ "${addon}" = "nptl" ] && continue || true
yann@1761
    56
        CT_Extract nochdir "glibc-${addon}-${CT_LIBC_VERSION}"
yann@1260
    57
yann@1126
    58
        # Some addons have the 'long' name, while others have the
yann@1126
    59
        # 'short' name, but patches are non-uniformly built with
yann@1126
    60
        # either the 'long' or 'short' name, whatever the addons name
yann@1126
    61
        # so we have to make symlinks from the existing to the missing
yann@1126
    62
        # Fortunately for us, [ -d foo ], when foo is a symlink to a
yann@1126
    63
        # directory, returns true!
yann@1759
    64
        [ -d "${addon}" ] || CT_DoExecLog ALL ln -s "glibc-${addon}-${CT_LIBC_VERSION}" "${addon}"
yann@1759
    65
        [ -d "glibc-${addon}-${CT_LIBC_VERSION}" ] || CT_DoExecLog ALL ln -s "${addon}" "glibc-${addon}-${CT_LIBC_VERSION}"
yann@1901
    66
        CT_Patch nochdir "glibc" "${addon}-${CT_LIBC_VERSION}"
yann@850
    67
    done
yann@850
    68
yann@884
    69
    # The configure files may be older than the configure.in files
yann@884
    70
    # if using a snapshot (or even some tarballs). Fake them being
yann@884
    71
    # up to date.
yann@1482
    72
    sleep 2
yann@1260
    73
    find . -type f -name configure -exec touch {} \; 2>&1 |CT_DoLog ALL
yann@1260
    74
yann@1260
    75
    CT_Popd
yann@884
    76
yann@850
    77
    return 0
yann@850
    78
}
yann@850
    79
yann@850
    80
# There is nothing to do for glibc check config
yann@850
    81
do_libc_check_config() {
yann@850
    82
    :
yann@850
    83
}