summaryrefslogtreecommitdiff
path: root/scripts/build/libc/glibc.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build/libc/glibc.sh')
-rw-r--r--scripts/build/libc/glibc.sh144
1 files changed, 33 insertions, 111 deletions
diff --git a/scripts/build/libc/glibc.sh b/scripts/build/libc/glibc.sh
index d45248a..0a09cbd 100644
--- a/scripts/build/libc/glibc.sh
+++ b/scripts/build/libc/glibc.sh
@@ -2,59 +2,47 @@
# Copyright 2007 Yann E. MORIN
# Licensed under the GPL v2. See COPYING in the root of this package
-# Extract the C library tarball(s)
-do_libc_extract() {
- local addon
+do_libc_get() {
+ local date
+ local version
+
+ # Main source
+ if [ "${CT_LIBC_GLIBC_CUSTOM}" = "y" ]; then
+ CT_GetCustom "glibc" "${CT_LIBC_GLIBC_CUSTOM_VERSION}" \
+ "${CT_LIBC_GLIBC_CUSTOM_LOCATION}"
+ else
+ if echo ${CT_LIBC_VERSION} |${grep} -q linaro; then
+ # Linaro glibc releases come from regular downloads...
+ YYMM=`echo ${CT_LIBC_VERSION} |cut -d- -f3 |${sed} -e 's,^..,,'`
+ CT_GetFile "glibc-${CT_LIBC_VERSION}" \
+ https://releases.linaro.org/${YYMM}/components/toolchain/glibc-linaro \
+ http://cbuild.validation.linaro.org/snapshots
+ else
+ CT_GetFile "glibc-${CT_LIBC_VERSION}" \
+ {http,ftp,https}://ftp.gnu.org/gnu/glibc \
+ ftp://{sourceware.org,gcc.gnu.org}/pub/glibc/{releases,snapshots}
+ fi
+ fi
+ return 0
+}
+
+do_libc_extract() {
CT_Extract "${CT_LIBC}-${CT_LIBC_VERSION}"
CT_Pushd "${CT_SRC_DIR}/${CT_LIBC}-${CT_LIBC_VERSION}"
# Attempt CT_PATCH only if NOT custom
CT_Patch nochdir "${CT_LIBC}" "${CT_LIBC_VERSION}"
- # Extract the add-opns if => 2.17
- if [ "${CT_LIBC_GLIBC_2_17_or_later}" != "y" ]; then
- for addon in $(do_libc_add_ons_list " "); do
- # If the addon was bundled with the main archive, we do not
- # need to extract it. Worse, if we were to try to extract
- # it, we'd get an error.
- if [ -d "${addon}" ]; then
- CT_DoLog DEBUG "Add-on '${addon}' already present, skipping extraction"
- continue
- fi
-
- CT_Extract nochdir "${CT_LIBC}-${addon}-${CT_LIBC_VERSION}"
-
- CT_TestAndAbort "Error in add-on '${addon}': both short and long names in tarball" \
- -d "${addon}" -a -d "${CT_LIBC}-${addon}-${CT_LIBC_VERSION}"
-
- # Some addons have the 'long' name, while others have the
- # 'short' name, but patches are non-uniformly built with
- # either the 'long' or 'short' name, whatever the addons name
- # but we prefer the 'short' name and avoid duplicates.
- if [ -d "${CT_LIBC}-${addon}-${CT_LIBC_VERSION}" ]; then
- CT_DoExecLog FILE mv "${CT_LIBC}-${addon}-${CT_LIBC_VERSION}" "${addon}"
- fi
-
- CT_DoExecLog FILE ln -s "${addon}" "${CT_LIBC}-${addon}-${CT_LIBC_VERSION}"
-
- CT_Patch nochdir "${CT_LIBC}" "${addon}-${CT_LIBC_VERSION}"
-
- # Remove the long name since it can confuse configure scripts to run
- # the same source twice.
- rm "${CT_LIBC}-${addon}-${CT_LIBC_VERSION}"
- done
- fi
-
# 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 . -type f -name configure -exec touch {} \; 2>&1 |CT_DoLog ALL
CT_Popd
+}
- if [ "${CT_LIBC_LOCALES}" = "y" ]; then
- do_libc_locales_extract
- fi
+do_libc_check_config() {
+ :
}
# Build and install headers and start files
@@ -69,6 +57,10 @@ do_libc() {
do_libc_backend libc_mode=final
}
+do_libc_post_cc() {
+ :
+}
+
# This backend builds the C library once for each multilib
# variant the compiler gives us
# Usage: do_libc_backend param=value [...]
@@ -539,74 +531,6 @@ do_libc_min_kernel_config() {
esac
}
-# Download glibc
-do_libc_get() {
- local date
- local version
- local -a addons_list
-
- addons_list=($(do_libc_add_ons_list " "))
-
- # Main source
- if [ "${CT_LIBC_GLIBC_CUSTOM}" = "y" ]; then
- CT_GetCustom "glibc" "${CT_LIBC_GLIBC_CUSTOM_VERSION}" \
- "${CT_LIBC_GLIBC_CUSTOM_LOCATION}"
- else
- if echo ${CT_LIBC_VERSION} |${grep} -q linaro; then
- # Linaro glibc releases come from regular downloads...
- YYMM=`echo ${CT_LIBC_VERSION} |cut -d- -f3 |${sed} -e 's,^..,,'`
- CT_GetFile "glibc-${CT_LIBC_VERSION}" \
- https://releases.linaro.org/${YYMM}/components/toolchain/glibc-linaro \
- http://cbuild.validation.linaro.org/snapshots
- else
- CT_GetFile "glibc-${CT_LIBC_VERSION}" \
- {http,ftp,https}://ftp.gnu.org/gnu/glibc \
- ftp://{sourceware.org,gcc.gnu.org}/pub/glibc/{releases,snapshots}
- fi
- fi
-
- # C library addons
- for addon in "${addons_list[@]}"; do
- # Never ever try to download these add-ons,
- # they've always been internal
- case "${addon}" in
- nptl) continue;;
- esac
-
- case "${addon}:${CT_LIBC_GLIBC_PORTS_EXTERNAL}" in
- ports:y) ;;
- ports:*) continue;;
- esac
-
- if ! CT_GetFile "glibc-${addon}-${CT_LIBC_VERSION}" \
- http://mirrors.kernel.org/sourceware/glibc \
- {http,ftp,https}://ftp.gnu.org/gnu/glibc \
- ftp://{sourceware.org,gcc.gnu.org}/pub/glibc/{releases,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
-}
-
-# There is nothing to do for glibc check config
-do_libc_check_config() {
- :
-}
-
-# Extract the files required for the libc locales
-# Nothing to do
-do_libc_locales_extract() {
- :
-}
-
# Build and install the libc locales
do_libc_locales() {
local src_dir="${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}"
@@ -660,6 +584,7 @@ do_libc_locales() {
--disable-profile \
--without-gd \
--disable-debug \
+ --disable-sanity-checks \
"${extra_config[@]}"
CT_DoLog EXTRA "Building C library localedef"
@@ -676,6 +601,3 @@ do_libc_locales() {
localedata/install-locales
}
-do_libc_post_cc() {
- :
-}