summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/libc/uClibc.in20
-rw-r--r--scripts/build/libc/uClibc.sh12
2 files changed, 31 insertions, 1 deletions
diff --git a/config/libc/uClibc.in b/config/libc/uClibc.in
index 359cd42..9a8d946 100644
--- a/config/libc/uClibc.in
+++ b/config/libc/uClibc.in
@@ -99,8 +99,27 @@ config LIBC_UCLIBC_V_specific_date
select LIBC_SUPPORT_NPTL
select LIBC_UCLIBC_0_9_30_or_later
+config LIBC_UCLIBC_CUSTOM
+ bool
+ prompt "Custom uClibc"
+ depends on EXPERIMENTAL
+ select LIBC_SUPPORT_NPTL
+ select LIBC_UCLIBC_0_9_30_or_later
+
endchoice
+if LIBC_UCLIBC_CUSTOM
+
+config LIBC_UCLIBC_CUSTOM_LOCATION
+ string
+ prompt "Full path to custom uClibc source"
+ default ""
+ help
+ Enter the path to the directory (or tarball) of your source for uClibc,
+ or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/uClibc
+
+endif # LIBC_UCLIBC_CUSTOM
+
config LIBC_VERSION
string
prompt "Enter date (YYYYMMDD)" if LIBC_UCLIBC_V_specific_date
@@ -119,6 +138,7 @@ config LIBC_VERSION
default "0.9.29" if LIBC_UCLIBC_V_0_9_29
default "0.9.28.3" if LIBC_UCLIBC_V_0_9_28_3
default "snapshot" if LIBC_UCLIBC_V_snapshot
+ default "custom" if LIBC_UCLIBC_CUSTOM
config LIBC_UCLIBC_0_9_32_or_later
bool
diff --git a/scripts/build/libc/uClibc.sh b/scripts/build/libc/uClibc.sh
index b93f21d..affdb97 100644
--- a/scripts/build/libc/uClibc.sh
+++ b/scripts/build/libc/uClibc.sh
@@ -15,7 +15,12 @@ do_libc_get() {
# For uClibc, we have almost every thing: releases, and snapshots
# for the last month or so. We'll have to deal with svn revisions
# later...
- CT_GetFile "uClibc-${CT_LIBC_VERSION}" ${libc_src}
+ if [ "${CT_LIBC_UCLIBC_CUSTOM}" = "y" ]; then
+ CT_GetCustom "uClibc" "${CT_LIBC_VERSION}" \
+ "${CT_LIBC_UCLIBC_CUSTOM_LOCATION}"
+ else
+ CT_GetFile "uClibc-${CT_LIBC_VERSION}" ${libc_src}
+ fi
# uClibc locales
if [ "${CT_LIBC_UCLIBC_LOCALES_PREGEN_DATA}" = "y" ]; then
CT_GetFile "${uclibc_local_tarball}" ${libc_src}
@@ -26,6 +31,11 @@ do_libc_get() {
# Extract uClibc
do_libc_extract() {
+ # If using custom directory location, nothing to do
+ if [ "${CT_LIBC_UCLIBC_CUSTOM}" = "y" \
+ -a -d "${CT_SRC_DIR}/uClibc-${CT_LIBC_VERSION}" ]; then
+ return 0
+ fi
CT_Extract "uClibc-${CT_LIBC_VERSION}"
# Don't patch snapshots
if [ -z "${CT_LIBC_UCLIBC_V_snapshot}" \