author | "Nicolás Reynolds" <fauno@kiwwwi.com.ar> |
Fri May 27 22:02:30 2011 -0300 (2011-05-27) | |
changeset 2482 | af25723a794f |
parent 2278 | e86826b8621a |
child 2483 | fa3a18f9abcf |
permissions | -rw-r--r-- |
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_start_files |
yann@2277 | 7 |
# do_libc |
yann@2277 | 8 |
# do_libc_finish |
yann@2277 | 9 |
# do_libc_add_ons_list |
yann@2277 | 10 |
# do_libc_min_kernel_config |
yann@2272 | 11 |
. "${CT_LIB_DIR}/scripts/build/libc/glibc-eglibc.sh-common" |
yann@2272 | 12 |
|
yann@850 | 13 |
# Download glibc |
yann@850 | 14 |
do_libc_get() { |
yann@1260 | 15 |
local date |
yann@1260 | 16 |
local version |
yann@1482 | 17 |
local -a addons_list |
yann@1482 | 18 |
|
yann@1482 | 19 |
addons_list=($(do_libc_add_ons_list " ")) |
yann@1114 | 20 |
|
yann@1759 | 21 |
# Main source |
yann@1759 | 22 |
CT_GetFile "glibc-${CT_LIBC_VERSION}" \ |
yann@1759 | 23 |
{ftp,http}://ftp.gnu.org/gnu/glibc \ |
yann@1759 | 24 |
ftp://gcc.gnu.org/pub/glibc/releases \ |
yann@1759 | 25 |
ftp://gcc.gnu.org/pub/glibc/snapshots |
yann@1759 | 26 |
|
yann@1759 | 27 |
# C library addons |
yann@1759 | 28 |
for addon in "${addons_list[@]}"; do |
yann@1759 | 29 |
# NPTL addon is not to be downloaded, in any case |
yann@1759 | 30 |
[ "${addon}" = "nptl" ] && continue || true |
yann@1759 | 31 |
CT_GetFile "glibc-${addon}-${CT_LIBC_VERSION}" \ |
yann@850 | 32 |
{ftp,http}://ftp.gnu.org/gnu/glibc \ |
yann@850 | 33 |
ftp://gcc.gnu.org/pub/glibc/releases \ |
yann@850 | 34 |
ftp://gcc.gnu.org/pub/glibc/snapshots |
yann@1759 | 35 |
done |
yann@850 | 36 |
|
yann@850 | 37 |
return 0 |
yann@850 | 38 |
} |
yann@850 | 39 |
|
yann@850 | 40 |
# Extract glibc |
yann@850 | 41 |
do_libc_extract() { |
yann@1482 | 42 |
local -a addons_list |
yann@1482 | 43 |
|
yann@1482 | 44 |
addons_list=($(do_libc_add_ons_list " ")) |
yann@1260 | 45 |
|
yann@1759 | 46 |
CT_Extract "glibc-${CT_LIBC_VERSION}" |
yann@1260 | 47 |
|
yann@1759 | 48 |
CT_Pushd "${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}" |
yann@1901 | 49 |
CT_Patch nochdir "glibc" "${CT_LIBC_VERSION}" |
yann@850 | 50 |
|
yann@850 | 51 |
# C library addons |
yann@1482 | 52 |
for addon in "${addons_list[@]}"; do |
yann@850 | 53 |
# NPTL addon is not to be extracted, in any case |
yann@850 | 54 |
[ "${addon}" = "nptl" ] && continue || true |
yann@1761 | 55 |
CT_Extract nochdir "glibc-${addon}-${CT_LIBC_VERSION}" |
yann@1260 | 56 |
|
fauno@2482 | 57 |
CT_TestAndAbort "Error in add-on '${addon}': both short and long names in tarball" \ |
fauno@2482 | 58 |
-d "${addon}" -a -d "glibc-${addon}-${CT_LIBC_VERSION}" |
fauno@2482 | 59 |
|
yann@1126 | 60 |
# Some addons have the 'long' name, while others have the |
yann@1126 | 61 |
# 'short' name, but patches are non-uniformly built with |
yann@1126 | 62 |
# either the 'long' or 'short' name, whatever the addons name |
fauno@2482 | 63 |
# but we prefer the 'short' name and avoid duplicates. |
fauno@2482 | 64 |
if [ -d "glibc-${addon}-${CT_LIBC_VERSION}" ]; then |
fauno@2482 | 65 |
mv "glibc-${addon}-${CT_LIBC_VERSION}" "${addon}" |
fauno@2482 | 66 |
fi |
fauno@2482 | 67 |
|
fauno@2482 | 68 |
ln -s "${addon}" "glibc-${addon}-${CT_LIBC_VERSION}" |
fauno@2482 | 69 |
|
yann@1901 | 70 |
CT_Patch nochdir "glibc" "${addon}-${CT_LIBC_VERSION}" |
fauno@2482 | 71 |
|
fauno@2482 | 72 |
# Remove the long name since it can confuse configure scripts to run |
fauno@2482 | 73 |
# the same source twice. |
fauno@2482 | 74 |
rm "glibc-${addon}-${CT_LIBC_VERSION}" |
yann@850 | 75 |
done |
yann@850 | 76 |
|
yann@884 | 77 |
# The configure files may be older than the configure.in files |
yann@884 | 78 |
# if using a snapshot (or even some tarballs). Fake them being |
yann@884 | 79 |
# up to date. |
yann@1482 | 80 |
sleep 2 |
yann@1260 | 81 |
find . -type f -name configure -exec touch {} \; 2>&1 |CT_DoLog ALL |
yann@1260 | 82 |
|
yann@1260 | 83 |
CT_Popd |
yann@884 | 84 |
|
yann@850 | 85 |
return 0 |
yann@850 | 86 |
} |
yann@850 | 87 |
|
yann@850 | 88 |
# There is nothing to do for glibc check config |
yann@850 | 89 |
do_libc_check_config() { |
yann@850 | 90 |
: |
yann@850 | 91 |
} |