From 79b988129514d8bcf7858fc6b527fd2315c544a2 Mon Sep 17 00:00:00 2001 From: David Holsgrove Date: Tue, 12 Mar 2013 15:13:48 +1000 Subject: libc/glibc: Add CUSTOM version and CUSTOM_LOCATION config options and GetCustom CUSTOM_LOCATION config options only presented in menuconfig if component CUSTOM version selected. Signed-off-by: David Holsgrove diff --git a/config/libc/glibc.in b/config/libc/glibc.in index d349dfb..f107438 100644 --- a/config/libc/glibc.in +++ b/config/libc/glibc.in @@ -95,11 +95,33 @@ config LIBC_GLIBC_V_2_8 prompt "2.8" select LIBC_GLIBC_PORTS_EXTERNAL +config LIBC_GLIBC_CUSTOM + bool + prompt "Custom glibc" + depends on EXPERIMENTAL + select LIBC_CUSTOM + select LIBC_GLIBC_2_20_or_later + endchoice config LIBC_GLIBC_2_20_or_later bool +config LIBC_CUSTOM + bool + +if LIBC_GLIBC_CUSTOM + +config LIBC_GLIBC_CUSTOM_LOCATION + string + prompt "Full path to custom glibc source" + default "" + help + Enter the path to the directory (or tarball) of your source for glibc, + or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/glibc + +endif # LIBC_GLIBC_CUSTOM + config LIBC_VERSION string # Don't remove next line @@ -120,3 +142,4 @@ config LIBC_VERSION default "2.10.1" if LIBC_GLIBC_V_2_10_1 default "2.9" if LIBC_GLIBC_V_2_9 default "2.8" if LIBC_GLIBC_V_2_8 + default "custom" if LIBC_GLIBC_CUSTOM diff --git a/scripts/build/libc/glibc.sh b/scripts/build/libc/glibc.sh index 7bc47c5..8093d94 100644 --- a/scripts/build/libc/glibc.sh +++ b/scripts/build/libc/glibc.sh @@ -19,9 +19,14 @@ do_libc_get() { addons_list=($(do_libc_add_ons_list " ")) # Main source - CT_GetFile "glibc-${CT_LIBC_VERSION}" \ + if [ "${CT_LIBC_CUSTOM}" = "y" ]; then + CT_GetCustom "glibc" "${CT_LIBC_VERSION}" "${CT_LIBC_GLIBC_CUSTOM_LOCATION}" + CT_LIBC_CUSTOM_LOCATION="${CT_SRC_DIR}/glibc-${CT_LIBC_VERSION}" + 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 # C library addons for addon in "${addons_list[@]}"; do -- cgit v0.10.2-6-g49f6 From 71ed5aae34cce6c71ad3de5e9cb1c79e9578e905 Mon Sep 17 00:00:00 2001 From: David Holsgrove Date: Tue, 12 Mar 2013 15:13:59 +1000 Subject: libc/eglibc: Add CUSTOM version and CUSTOM_LOCATION config options and GetCustom CUSTOM_LOCATION config options only presented in menuconfig if component CUSTOM version selected. Signed-off-by: David Holsgrove diff --git a/config/libc/eglibc.in b/config/libc/eglibc.in index e939d03..8504cbf 100644 --- a/config/libc/eglibc.in +++ b/config/libc/eglibc.in @@ -79,6 +79,13 @@ config LIBC_EGLIBC_V_TRUNK help Selecting this will export the trunk of the eglibc subversion repository. +config LIBC_EGLIBC_CUSTOM + bool + prompt "Custom eglibc" + depends on EXPERIMENTAL + select LIBC_EGLIBC_2_16_or_later + select LIBC_CUSTOM + endchoice config LIBC_VERSION @@ -96,10 +103,27 @@ config LIBC_VERSION default "2_10" if LIBC_EGLIBC_V_2_10 default "2_9" if LIBC_EGLIBC_V_2_9 default "trunk" if LIBC_EGLIBC_V_TRUNK + default "custom" if LIBC_EGLIBC_CUSTOM config LIBC_EGLIBC_2_16_or_later bool +config LIBC_CUSTOM + bool + +if LIBC_EGLIBC_CUSTOM + +config LIBC_EGLIBC_CUSTOM_LOCATION + string + prompt "Full path to custom eglibc source" + default "" + help + Enter the path to the directory (or tarball) of your source for eglibc, + or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/eglibc + +endif # LIBC_EGLIBC_CUSTOM +if ! LIBC_EGLIBC_CUSTOM + if CONFIGURE_has_svn config EGLIBC_REVISION @@ -149,6 +173,7 @@ comment "| - or have a LAN mirror with a pre-downloaded tarball" comment "otherwise you won't be able to download eglibc" endif # ! CONFIGURE_has_svn +endif # ! LIBC_EGLIBC_CUSTOM config EGLIBC_OPT_SIZE bool diff --git a/scripts/build/libc/eglibc.sh b/scripts/build/libc/eglibc.sh index d7960d9..1f1095f 100644 --- a/scripts/build/libc/eglibc.sh +++ b/scripts/build/libc/eglibc.sh @@ -27,9 +27,14 @@ do_libc_get() { *) svn_base+="/branches/eglibc-${CT_LIBC_VERSION}";; esac - CT_GetSVN "eglibc-${CT_LIBC_VERSION}" \ - "${svn_base}/libc" \ - "${CT_EGLIBC_REVISION:-HEAD}" + if [ "${CT_LIBC_CUSTOM}" = "y" ]; then + CT_GetCustom "eglibc" "${CT_LIBC_VERSION}" "${CT_LIBC_EGLIBC_CUSTOM_LOCATION}" + CT_LIBC_CUSTOM_LOCATION="${CT_SRC_DIR}/eglibc-${CT_LIBC_VERSION}" + else + CT_GetSVN "eglibc-${CT_LIBC_VERSION}" \ + "${svn_base}/libc" \ + "${CT_EGLIBC_REVISION:-HEAD}" + fi if [ "${CT_LIBC_LOCALES}" = "y" ]; then extra_addons+=("localedef") -- cgit v0.10.2-6-g49f6 From 163a1737b8464ae241c0bfc1dfe61bbc668b3428 Mon Sep 17 00:00:00 2001 From: David Holsgrove Date: Tue, 12 Mar 2013 15:13:34 +1000 Subject: libc/{,e}glibc: If using custom {e}glibc, dont extract or patch If custom {e}glibc is being used, no need to carry out the extract or patching phase of scripts/build/libc/glibc-eglibc.sh-common Signed-off-by: David Holsgrove diff --git a/scripts/build/libc/glibc-eglibc.sh-common b/scripts/build/libc/glibc-eglibc.sh-common index af3b1f1..367a80d 100644 --- a/scripts/build/libc/glibc-eglibc.sh-common +++ b/scripts/build/libc/glibc-eglibc.sh-common @@ -4,10 +4,16 @@ do_libc_extract() { local addon - # Extract the main tarball - CT_Extract "${CT_LIBC}-${CT_LIBC_VERSION}" + # Attempt CT_EXTRACT only if NOT custom, or CUSTOM_LOCATION is not a directory + if [ "${CT_LIBC_CUSTOM}" != "y" \ + -o ! -d "${CT_LIBC_CUSTOM_LOCATION}" ]; then + CT_Extract "${CT_LIBC}-${CT_LIBC_VERSION}" + fi CT_Pushd "${CT_SRC_DIR}/${CT_LIBC}-${CT_LIBC_VERSION}" - CT_Patch nochdir "${CT_LIBC}" "${CT_LIBC_VERSION}" + # Attempt CT_PATCH only if NOT custom + if [ "${CT_LIBC_CUSTOM}" != "y" ]; then + CT_Patch nochdir "${CT_LIBC}" "${CT_LIBC_VERSION}" + fi # Extract the add-opns for addon in $(do_libc_add_ons_list " "); do -- cgit v0.10.2-6-g49f6