diff options
author | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2011-05-30 21:05:28 (GMT) |
---|---|---|
committer | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2011-05-30 21:05:28 (GMT) |
commit | 93b0db91b486d9a290487f9c60ef10f9c5a5d731 (patch) | |
tree | b3747bf28058222b09616f33ad446eedee85b5d5 /scripts/build/libc/glibc.sh | |
parent | 3d6ce4cd3d888b390748af42b7ec2826b963df38 (diff) |
glibc: properly handle internal addons
Some addons are bundled with glibc/eglibc, so we should not try to
download and extract them.
This is done as thus:
- at download time:
- if the add-on download fails, keep going;
- at extract time:
- if the addon is present in the source tree, ignore it;
- if the addon is missing in the source tree:
- if the archive is present, extract it;
- if the archive is missing, bail out.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Diffstat (limited to 'scripts/build/libc/glibc.sh')
-rw-r--r-- | scripts/build/libc/glibc.sh | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/scripts/build/libc/glibc.sh b/scripts/build/libc/glibc.sh index 4473138..c50aa89 100644 --- a/scripts/build/libc/glibc.sh +++ b/scripts/build/libc/glibc.sh @@ -27,12 +27,19 @@ do_libc_get() { # C library addons for addon in "${addons_list[@]}"; do - # NPTL addon is not to be downloaded, in any case - [ "${addon}" = "nptl" ] && continue || true - 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 + if ! 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 + then + # Some add-ons are bundled with glibc, others are + # bundled in their own tarball. Eg. NPTL is internal, + # while LinuxThreads was external. Also, for old + # versions of glibc, the libidn add-on was external, + # but with version >=2.10, it is internal. + CT_DoLog DEBUG "Addon '${addon}' could not be downloaded." + CT_DoLog DEBUG "We'll see later if we can find it in the source tree" + fi done return 0 |