# HG changeset patch # User Rob Landley # Date 1228909001 21600 # Node ID ea7a010e5c474a24469fbae42807439dc8c0d664 # Parent 71690bef8287dd3900c905914a2a8580237ad029 Add ldd/readelf/ldconfig to cross and native toolchains, and teach build to fallback to stable miniconfig when miniconfig-alt is absent. diff -r 71690bef8287 -r ea7a010e5c47 cross-compiler.sh --- a/cross-compiler.sh Mon Dec 08 21:48:07 2008 -0600 +++ b/cross-compiler.sh Wed Dec 10 05:36:41 2008 -0600 @@ -89,22 +89,17 @@ # Build and install uClibc setupfor uClibc -if unstable uClibc -then - CONFIGFILE=miniconfig-alt-uClibc - BUILDIT="install -j $CPUS" -else - CONFIGFILE=miniconfig-uClibc - BUILDIT="install -j $CPUS" -fi +make CROSS= KCONFIG_ALLCONFIG="$(getconfig uClibc)" allnoconfig && +make CROSS="${ARCH}-" KERNEL_HEADERS="${CROSS}/include" PREFIX="${CROSS}/" \ + RUNTIME_PREFIX=/ DEVEL_PREFIX=/ -j $CPUS install hostutils || dienow +for i in $(cd utils; ls *.host | sed 's/\.host//') +do + cp utils/"$i".host "$CROSS/bin/$ARCH-$i" || dienow +done +cd .. -make CROSS= KCONFIG_ALLCONFIG="${CONFIG_DIR}"/$CONFIGFILE allnoconfig && -make CROSS="${ARCH}-" KERNEL_HEADERS="${CROSS}/include" PREFIX="${CROSS}/" \ - RUNTIME_PREFIX=/ DEVEL_PREFIX=/ $BUILDIT && -cd .. cleanup uClibc - cat > "${CROSS}"/README << EOF && Cross compiler for $ARCH From http://impactlinux.com/fwl diff -r 71690bef8287 -r ea7a010e5c47 mini-native.sh --- a/mini-native.sh Mon Dec 08 21:48:07 2008 -0600 +++ b/mini-native.sh Wed Dec 10 05:36:41 2008 -0600 @@ -40,8 +40,7 @@ # Install Linux kernel headers (for use by uClibc). make headers_install -j "$CPUS" ARCH="${KARCH}" INSTALL_HDR_PATH="${TOOLS}" && # build bootable kernel for target -make ARCH="${KARCH}" KCONFIG_ALLCONFIG="${CONFIG_DIR}/miniconfig-linux" \ - allnoconfig && +make ARCH="${KARCH}" KCONFIG_ALLCONFIG="$(getconfig linux)" allnoconfig && cp .config "${TOOLS}"/src/config-linux && make -j $CPUS ARCH="${KARCH}" CROSS_COMPILE="${ARCH}-" && cp "${KERNEL_PATH}" "${WORK}/zImage-${ARCH}" && @@ -53,23 +52,12 @@ # toolchain, but this is cleaner.) setupfor uClibc -if unstable uClibc -then - CONFIGFILE=miniconfig-alt-uClibc - BUILDIT="install -j $CPUS" -else - CONFIGFILE=miniconfig-uClibc - BUILDIT="install -j $CPUS" -fi -make CROSS="${ARCH}-" KCONFIG_ALLCONFIG="${CONFIG_DIR}"/$CONFIGFILE allnoconfig && +make CROSS="${ARCH}-" KCONFIG_ALLCONFIG="$(getconfig uClibc)" allnoconfig && cp .config "${TOOLS}"/src/config-uClibc && make CROSS="${ARCH}-" KERNEL_HEADERS="${TOOLS}/include" \ PREFIX="${UCLIBC_TOPDIR}/" \ RUNTIME_PREFIX="$UCLIBC_DLPREFIX/" DEVEL_PREFIX="$UCLIBC_DLPREFIX/" \ - UCLIBC_LDSO_NAME=ld-uClibc $BUILDIT && -# utils_install wants to put stuff in usr/bin instead of bin. -# make BLAH=blah utils -# install -m 755 utils/{readelf,ldd,ldconfig} "${TOOLS}/bin" && + UCLIBC_LDSO_NAME=ld-uClibc -j $CPUS install install_utils && cd .. cleanup uClibc @@ -84,6 +72,7 @@ cp toybox "$TOOLS/bin" && ln -s toybox "$TOOLS/bin/patch" && ln -s toybox "$TOOLS/bin/oneit" && + #ln -s toybox "$TOOLS/bin/netcat" && cd .. else make install_flat PREFIX="${TOOLS}"/bin CROSS="${ARCH}-" && diff -r 71690bef8287 -r ea7a010e5c47 sources/functions.sh --- a/sources/functions.sh Mon Dec 08 21:48:07 2008 -0600 +++ b/sources/functions.sh Wed Dec 10 05:36:41 2008 -0600 @@ -7,6 +7,19 @@ [ ! -z "$(echo ,"$USE_UNSTABLE", | grep ,"$1",)" ] } +# Find appropriate miniconfig file + +function getconfig() +{ + if unstable "$1" && [ -f "$CONFIG_DIR/miniconfig-alt-$1" ] + then + echo "$CONFIG_DIR/miniconfig-alt-$1" + return + fi + + echo "$CONFIG_DIR/miniconfig-$1" +} + # Strip the version number off a tarball function cleanup() diff -r 71690bef8287 -r ea7a010e5c47 sources/patches/uClibc-installutils.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sources/patches/uClibc-installutils.patch Wed Dec 10 05:36:41 2008 -0600 @@ -0,0 +1,42 @@ +Index: Makefile.in +=================================================================== +--- a/Makefile.in (revision 24348) ++++ b/Makefile.in (working copy) +@@ -447,6 +447,9 @@ + install_utils: utils + $(MAKE) CROSS="$(CROSS)" CC="$(CC)" -C utils utils_install + ++install_hostutils: hostutils ++ $(MAKE) CROSS="$(CROSS)" CC="$(CC)" -C utils utils_install DOTHOST=.host ++ + endif # ifeq ($(HAVE_DOT_CONFIG),y) + + include/bits include/config: +Index: utils/Makefile.in +=================================================================== +--- a/utils/Makefile.in (revision 24348) ++++ b/utils/Makefile.in (working copy) +@@ -83,15 +83,17 @@ + + install-y += utils_install + +-utils_install: utils +- #$(Q)$(INSTALL) -D -m 755 $(utils_OUT)/readelf $(PREFIX)$(RUNTIME_PREFIX)usr/bin/readelf ++# This installs both utils and hostutils, so doesn't depend on either. ++ ++utils_install: ++ $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/readelf$(DOTHOST) $(PREFIX)$(RUNTIME_PREFIX)bin/readelf + ifeq ($(HAVE_SHARED),y) +- $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/ldd $(PREFIX)$(RUNTIME_PREFIX)usr/bin/ldd +- $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/ldconfig $(PREFIX)$(RUNTIME_PREFIX)sbin/ldconfig ++ $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/ldd$(DOTHOST) $(PREFIX)$(RUNTIME_PREFIX)bin/ldd ++ $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/ldconfig$(DOTHOST) $(PREFIX)$(RUNTIME_PREFIX)sbin/ldconfig + endif + ifeq ($(UCLIBC_HAS_LOCALE),y) +- $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/iconv $(PREFIX)$(RUNTIME_PREFIX)usr/bin/iconv +- $(Q)$(INSTALL) -m 755 $(utils_OUT)/locale $(PREFIX)$(RUNTIME_PREFIX)usr/bin/locale ++ $(Q)$(INSTALL) -D -m 755 $(utils_OUT)/iconv$(DOTHOST) $(PREFIX)$(RUNTIME_PREFIX)bin/iconv ++ $(Q)$(INSTALL) -m 755 $(utils_OUT)/locale$(DOTHOST) $(PREFIX)$(RUNTIME_PREFIX)bin/locale + endif + + objclean-y += utils_clean