summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/binutils.in22
-rw-r--r--scripts/build/binutils.sh32
2 files changed, 54 insertions, 0 deletions
diff --git a/config/binutils.in b/config/binutils.in
index d49b735..ea8698d 100644
--- a/config/binutils.in
+++ b/config/binutils.in
@@ -76,4 +76,26 @@ config BINUTILS_EXTRA_CONFIG
help
Extra flags passed onto ./configure when configuring
+menuconfig BINUTILS_FOR_TARGET
+ bool
+ prompt "binutils libraries for the target"
+ default n
+ help
+ Some utilities may need binutils libraries to be available on
+ the target, eg. oprofile.
+
+if BINUTILS_FOR_TARGET
+
+config BINUTILS_FOR_TARGET_IBERTY
+ bool
+ prompt "libiberty"
+ default y
+
+config BINUTILS_FOR_TARGET_BFD
+ bool
+ prompt "libbfd"
+ default y
+
+endif # BINUTILS_FOR_TARGET
+
endmenu
diff --git a/scripts/build/binutils.sh b/scripts/build/binutils.sh
index edb0e5a..b34d709 100644
--- a/scripts/build/binutils.sh
+++ b/scripts/build/binutils.sh
@@ -57,5 +57,37 @@ do_binutils() {
ln -sv "${CT_PREFIX_DIR}/bin/${CT_TARGET}-${t}" "${CT_CC_CORE_SHARED_PREFIX_DIR}/bin/${CT_TARGET}-${t}"
done |CT_DoLog ALL
+ # Now on for the target libraries
+ targets=
+ [ "${CT_BINUTILS_FOR_TARGET_IBERTY}" = "y" ] && targets="${build_targets} libiberty"
+ [ "${CT_BINUTILS_FOR_TARGET_BFD}" = "y" ] && targets="${build_targets} bfd"
+ targets="${targets# }"
+
+ if [ -n "${targets}" ]; then
+ CT_DoStep INFO "Installing binutils for target"
+ mkdir -p "${CT_BUILD_DIR}/build-binutils-for-target"
+ CT_Pushd "${CT_BUILD_DIR}/build-binutils-for-target"
+
+ CT_DoLog EXTRA "Configuring binutils for target"
+ "${CT_SRC_DIR}/${CT_BINUTILS_FILE}/configure" \
+ --build=${CT_BUILD} \
+ --host=${CT_TARGET} \
+ --target=${CT_TARGET} \
+ --prefix=/usr \
+ ${CT_BINUTILS_EXTRA_CONFIG} \
+ --disable-nls 2>&1 |CT_DoLog ALL
+
+ build_targets=$(echo "${targets}" |sed -r -e 's/(^| +)/\1all-/g;')
+ install_targets=$(echo "${targets}" |sed -r -e 's/(^| +)/\1install-/g;')
+
+ CT_DoLog EXTRA "Building binutils' libraries (${targets}) for target"
+ make ${PARALLELMFLAGS} ${build_targets} 2>&1 |CT_DoLog ALL
+ CT_DoLog EXTRA "Installing binutils' libraries (${targets}) for target"
+ make DESTDIR="${CT_SYSROOT_DIR}" ${install_targets} 2>&1 |CT_DoLog ALL
+
+ CT_Popd
+ CT_EndStep
+ fi
+
CT_EndStep
}