diff options
author | Bryan Hundven <bryanhundven@gmail.com> | 2016-02-26 01:23:45 -0800 |
---|---|---|
committer | Bryan Hundven <bryanhundven@gmail.com> | 2016-02-26 01:23:45 -0800 |
commit | 6430ff506e7a71afa3810e42df0b72620a05ccd6 (patch) | |
tree | da0f0a55ae5c2e61dfbe41344e395b26d329c68f /scripts/build/libc | |
parent | 4d7e6fb0030dcd6fc2f8cbe547d9bf2b528adc6a (diff) | |
parent | ec9af46847376906f8add7d5c8f1137c832779dd (diff) | |
download | crosstool-ng-6430ff506e7a71afa3810e42df0b72620a05ccd6.tar.gz crosstool-ng-6430ff506e7a71afa3810e42df0b72620a05ccd6.tar.bz2 crosstool-ng-6430ff506e7a71afa3810e42df0b72620a05ccd6.zip |
Merge pull request #353 from bhundven/glibc_cleanup
Glibc cleanup
Diffstat (limited to 'scripts/build/libc')
-rw-r--r-- | scripts/build/libc/glibc.sh | 144 |
1 files changed, 33 insertions, 111 deletions
diff --git a/scripts/build/libc/glibc.sh b/scripts/build/libc/glibc.sh index d45248a7..0a09cbd1 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() { - : -} |