From acd39786a9ee5225ffa39bba895d27eb21586bf0 Mon Sep 17 00:00:00 2001 From: Marc Andre Tanner Date: Sat, 10 Oct 2009 15:31:53 +0200 Subject: [PATCH] uClibc: build only with minimal locale support We need the libiconv interface for ecore-txt but we don't need all the different locales. To make this work an patch to uclibc's Makefile is needed. Signed-off-by: Marc Andre Tanner --- .../uClibc-fix-UCLIBC_BUILD_MINIMAL_LOCALE.patch | 30 ++++++++++++++++ sources/sections/uClibc.sh | 41 ++++++++++++++-------- 2 files changed, 56 insertions(+), 15 deletions(-) create mode 100644 sources/patches/uClibc-fix-UCLIBC_BUILD_MINIMAL_LOCALE.patch diff --git a/sources/patches/uClibc-fix-UCLIBC_BUILD_MINIMAL_LOCALE.patch b/sources/patches/uClibc-fix-UCLIBC_BUILD_MINIMAL_LOCALE.patch new file mode 100644 index 0000000..1e88b8e --- /dev/null +++ b/sources/patches/uClibc-fix-UCLIBC_BUILD_MINIMAL_LOCALE.patch @@ -0,0 +1,30 @@ +--- uClibc/extra/locale/Makefile.in 2008-11-11 12:05:57.000000000 +0100 ++++ uClibc-patched/extra/locale/Makefile.in 2009-10-10 12:06:11.000000000 +0200 +@@ -92,7 +92,7 @@ + $(locale_OUT)/codesets.txt: + @$(disp_gen) + ifeq ($(UCLIBC_BUILD_MINIMAL_LOCALE),y) +- $(Q)echo "charmaps/ASCII.pairs" > $@ ; \ ++ $(Q)echo "charmaps/ASCII.pairs" > $@ ; + $(Q)echo "charmaps/ISO-8859-1.pairs" >> $@ + else + $(Q)(cd $(locale_DIR)/ && find charmaps/ -name '*.pairs' | sort ) > $@ +@@ -103,12 +103,12 @@ + $(locale_OUT)/locales.txt: $(locale_DIR)/LOCALES + @$(disp_gen) + ifeq ($(UCLIBC_BUILD_MINIMAL_LOCALE),y) +- $(Q)echo "@euro e" > $@ ; \ +- $(Q)echo "#-" >> $@ ; \ +- $(Q)echo "UTF-8 yes" >> $@ ; \ +- $(Q)echo "8-BIT yes" >> $@ ; \ +- $(Q)echo "#-" >> $@ ; \ +- $(Q)echo "en_US.UTF-8 UTF-8" >> $@ ; \ ++ $(Q)echo "@euro e" > $@ ; ++ $(Q)echo "#-" >> $@ ; ++ $(Q)echo "UTF-8 yes" >> $@ ; ++ $(Q)echo "8-BIT yes" >> $@ ; ++ $(Q)echo "#-" >> $@ ; ++ $(Q)echo "en_US.UTF-8 UTF-8" >> $@ ; + $(Q)echo "en_US ISO-8859-1" >> $@ + else + $(Q)cat $< > $@ diff --git a/sources/sections/uClibc.sh b/sources/sections/uClibc.sh index 3c0432d..475a3d5 100644 --- a/sources/sections/uClibc.sh +++ b/sources/sections/uClibc.sh @@ -4,21 +4,32 @@ setupfor uClibc make CROSS="$CROSS" KCONFIG_ALLCONFIG="$SOURCES/miniconfig-uClibc" allnoconfig && cp .config "$SOURCES/config-uClibc" || dienow -# Alas, if we feed install and install_utils to make at the same time with -# -j > 1, it dies. Not SMP safe. -for i in install install_utils -do - make CROSS="$CROSS" KERNEL_HEADERS="$STAGING_DIR/usr/include" \ - PREFIX="$STAGING_DIR/usr" $VERBOSITY \ - RUNTIME_PREFIX="/" DEVEL_PREFIX="/" \ - UCLIBC_LDSO_NAME=ld-uClibc -j $CPUS $i || dienow -done - -make CROSS="$CROSS" KERNEL_HEADERS="$STAGING_DIR/usr/include" \ - PREFIX="$ROOT_DIR" RUNTIME_PREFIX="/" \ - UCLIBC_LDSO_NAME=ld-uClibc V=1 install_runtime - -#cd .. +UCLIBC_MAKE_FLAGS="CROSS=$CROSS KERNEL_HEADERS=$STAGING_DIR/usr/include \ + RUNTIME_PREFIX=/ UCLIBC_LDSO_NAME=ld-uClibc $VERBOSITY" + +# prepare the headers files this is a pre requirement for locale generation + +make $UCLIBC_MAKE_FLAGS PREFIX="$STAGING_DIR/usr" DEVEL_PREFIX="/" headers +make $UCLIBC_MAKE_FLAGS PREFIX="$STAGING_DIR/usr" DEVEL_PREFIX="/" include/bits/sysnum.h + +# configure/generate just the minimal needed locales +# UCLIBC_BUILD_MINIMAL_LOCALE doesn't seem to be present +# in the Kconfig files but it is nevertheless used in the +# Makefile + +cd extra/locale +make clean +make $UCLIBC_MAKE_FLAGS PREFIX="$STAGING_DIR/usr" UCLIBC_BUILD_MINIMAL_LOCALE=y DEVEL_PREFIX="/" +cd - >/dev/null + +# build and install into $STAGING_DIR + +make $UCLIBC_MAKE_FLAGS PREFIX="$STAGING_DIR/usr" DEVEL_PREFIX="/" -j $CPUS install +make $UCLIBC_MAKE_FLAGS PREFIX="$STAGING_DIR/usr" DEVEL_PREFIX="/" -j $CPUS install_utils + +# install into $ROOT_DIR + +make $UCLIBC_MAKE_FLAGS PREFIX="$ROOT_DIR" install_runtime [ -e "$STAGING_DIR/usr/lib/libc.so" ] && cp "$STAGING_DIR/usr/lib/libc.so" \ "$ROOT_DIR/lib/libc.so" -- 2.11.4.GIT