view sources/sections/ @ 979:88b354c0eee1

Tweak mercurial repo entry and add link to current snapshot.
author Rob Landley <>
date Tue, 16 Feb 2010 06:57:14 -0600
parents 609bc05b0d6a
children c6b3d648ead6
line wrap: on
line source

# Build binutils, c wrapper, and uClibc++

# Build binutils, which provides the linker and assembler and such.

# PROGRAM_PREFIX affects the name of the generated tools, ala "${ARCH}-".

# The binutils ./configure stage is _really_stupid_, and we need to define
# lots of environment variables to make it behave.

function configure_binutils()
  "$CURSRC/configure" --prefix="$STAGE_DIR" \
    --build="$CROSS_HOST" --host="$FROM_HOST" --target="$CROSS_TARGET" \
    --disable-nls --disable-shared --disable-multilib --disable-werror \
    --with-lib-path=lib --program-prefix="$PROGRAM_PREFIX" $BINUTILS_FLAGS

  [ $? -ne 0 ] && dienow

if [ -z "$FROM_ARCH" ]
  # Create a simple cross compiler, from this host to target $ARCH.
  # This has no prerequisites.

  # The binutils ./configure stage is _really_stupid_.  Define lots of
  # environment variables to make it behave.

  AR=ar AS=as LD=ld NM=nm OBJDUMP=objdump OBJCOPY=objcopy configure_binutils
  # Canadian cross for an arbitrary host/target.  The new compiler will run
  # on $FROM_ARCH as its host, and build executables for $ARCH as its target.
  # (Use host==target to produce a native compiler.)  Doing this requires
  # existing host ($FROM_ARCH) _and_ target ($ARCH) cross compilers as
  # prerequisites.

  AR="${FROM_ARCH}-ar" CC="${FROM_ARCH}-cc" configure_binutils

# Now that it's configured, build and install binutils

make -j $CPUS configure-host &&
make -j $CPUS install &&

# Fix up install

mkdir -p "$STAGE_DIR/include" &&
cp "$CURSRC/include/libiberty.h" "$STAGE_DIR/include" &&

# ln -sf ../../../../tools/bin/ld  ${STAGE_DIR}/libexec/gcc/*/*/collect2 || dienow

rm -rf "$WORK/build-binutils"