summaryrefslogtreecommitdiff
path: root/scripts/build/arch/powerpc.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/build/arch/powerpc.sh')
-rw-r--r--scripts/build/arch/powerpc.sh49
1 files changed, 35 insertions, 14 deletions
diff --git a/scripts/build/arch/powerpc.sh b/scripts/build/arch/powerpc.sh
index 77bbc8a..52f3f8b 100644
--- a/scripts/build/arch/powerpc.sh
+++ b/scripts/build/arch/powerpc.sh
@@ -26,13 +26,15 @@ CT_DoArchTupleValues () {
CT_ARCH_CC_EXTRA_CONFIG="--enable-e500_double"
fi
}
+
#------------------------------------------------------------------------------
# Get multilib architecture-specific target
-# Usage: CT_DoArchMultilibTarget "multilib flags" "target tuple"
+# Usage: CT_DoArchMultilibTarget "target variable" "multilib flags"
CT_DoArchMultilibTarget ()
{
- local target="${1}"; shift
+ local target_var="${1}"; shift
local -a multi_flags=( "$@" )
+ local target_
local m32=false
local m64=false
@@ -48,22 +50,41 @@ CT_DoArchMultilibTarget ()
esac
done
+ eval target_=\"\${${target_var}}\"
+
# Fix up bitness
- case "${target}" in
- powerpc-*) $m64 && target=${target/#powerpc-/powerpc64-} ;;
- powerpcle-*) $m64 && target=${target/#powerpcle-/powerpc64le-} ;;
- powerpc64-*) $m32 && target=${target/#powerpc64-/powerpc-} ;;
- powerpc64le-*) $m32 && target=${target/#powerpc64le-/powerpcle-} ;;
+ case "${target_}" in
+ powerpc-*) $m64 && target_=${target_/#powerpc-/powerpc64-} ;;
+ powerpcle-*) $m64 && target_=${target_/#powerpcle-/powerpc64le-} ;;
+ powerpc64-*) $m32 && target_=${target_/#powerpc64-/powerpc-} ;;
+ powerpc64le-*) $m32 && target_=${target_/#powerpc64le-/powerpcle-} ;;
esac
# Fix up endianness
- case "${target}" in
- powerpc-*) $mlittle && target=${target/#powerpc-/powerpcle-} ;;
- powerpcle-*) $mbig && target=${target/#powerpcle-/powerpc-} ;;
- powerpc64-*) $mlittle && target=${target/#powerpc64-/powerpc64le-} ;;
- powerpc64le-*) $mbig && target=${target/#powerpc64le-/powerpc64-} ;;
+ case "${target_}" in
+ powerpc-*) $mlittle && target_=${target_/#powerpc-/powerpcle-} ;;
+ powerpcle-*) $mbig && target_=${target_/#powerpcle-/powerpc-} ;;
+ powerpc64-*) $mlittle && target_=${target_/#powerpc64-/powerpc64le-} ;;
+ powerpc64le-*) $mbig && target_=${target_/#powerpc64le-/powerpc64-} ;;
esac
- # return the target
- echo "${target}"
+ # Set the target variable
+ eval ${target_var}=\"${target_}\"
+}
+
+CT_DoArchUClibcConfig() {
+ local cfg="${1}"
+
+ CT_DoArchUClibcSelectArch "${cfg}" "powerpc"
+
+ CT_KconfigDisableOption "CONFIG_E500" "${cfg}"
+ CT_KconfigDisableOption "CONFIG_CLASSIC" "${cfg}"
+ CT_KconfigDeleteOption "TARGET_SUBARCH" "${cfg}"
+ if [ "${CT_ARCH_powerpc_ABI}" = "spe" ]; then
+ CT_KconfigEnableOption "CONFIG_E500" "${cfg}"
+ CT_KconfigSetOption "TARGET_SUBARCH" "e500" "${cfg}"
+ else
+ CT_KconfigEnableOption "CONFIG_CLASSIC" "${cfg}"
+ CT_KconfigSetOption "TARGET_SUBARCH" "classic" "${cfg}"
+ fi
}