This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
# HG changeset patch # User Michael Hope <michael.hope@linaro.org> # Date 1318991252 -46800 # Node ID a31d097e28cd73d07a5484129929a500b4d58efa # Parent a32156bd31c0d395e8d346431b123a7d2caa14cd scripts: add softfp support ARM compilers can be built for soft float (software only, floats in core registers), hard float (uses floating point instructions, floats in FPU registers), or the half-way house softfp (uses floating point instructions, floats in core registers). Add support for softfp cross compilers to the GCC and GLIBC configuration. Needed for Ubuntu and other distros that are softfp. Signed-off-by: Michael Hope <michael.hope@linaro.org> diff -r a32156bd31c0 -r a31d097e28cd config/target.in --- a/config/target.in Sun Oct 16 17:51:42 2011 +0200 +++ b/config/target.in Wed Oct 19 15:27:32 2011 +1300 @@ -271,6 +271,22 @@ If your processor has no FPU, then you most probably want this, as it is faster than emulating the FPU in the kernel. +config ARCH_FLOAT_SOFTFP + bool + prompt "softfp" + depends on ARCH_arm + help + Emit hardware floating point opcodes but use the software + floating point calling convention. + + Architectures such as ARM use different registers for passing + floating point values depending on if they're in software mode + or hardware mode. softfp emits FPU instructions but uses the + software FP calling convention allowing softfp code to + interoperate with legacy software only code. + + If in doubt, use 'software' or 'hardware' mode instead. + endchoice config TARGET_CFLAGS diff -r a32156bd31c0 -r a31d097e28cd scripts/build/libc/glibc-eglibc.sh-common --- a/scripts/build/libc/glibc-eglibc.sh-common Sun Oct 16 17:51:42 2011 +0200 +++ b/scripts/build/libc/glibc-eglibc.sh-common Wed Oct 19 15:27:32 2011 +1300 @@ -132,9 +132,10 @@ *) extra_config+=("--disable-shared");; esac - case "${CT_ARCH_FLOAT_HW},${CT_ARCH_FLOAT_SW}" in - y,) extra_config+=("--with-fp");; - ,y) extra_config+=("--without-fp");; + case "${CT_ARCH_FLOAT_HW},${CT_ARCH_FLOAT_SW},${CT_ARCH_FLOAT_SOFTFP}" in + y,,) extra_config+=("--with-fp");; + ,y,) extra_config+=("--without-fp");; + ,,y) extra_config+=("--with-fp");; esac if [ "${CT_LIBC_DISABLE_VERSIONING}" = "y" ]; then diff -r a32156bd31c0 -r a31d097e28cd scripts/functions --- a/scripts/functions Sun Oct 16 17:51:42 2011 +0200 +++ b/scripts/functions Wed Oct 19 15:27:32 2011 +1300 @@ -984,6 +984,7 @@ [ "${CT_ARCH_TUNE}" ] && { CT_ARCH_TUNE_CFLAG="-mtune=${CT_ARCH_TUNE}"; CT_ARCH_WITH_TUNE="--with-tune=${CT_ARCH_TUNE}"; } [ "${CT_ARCH_FPU}" ] && { CT_ARCH_FPU_CFLAG="-mfpu=${CT_ARCH_FPU}"; CT_ARCH_WITH_FPU="--with-fpu=${CT_ARCH_FPU}"; } [ "${CT_ARCH_FLOAT_SW}" ] && { CT_ARCH_FLOAT_CFLAG="-msoft-float"; CT_ARCH_WITH_FLOAT="--with-float=soft"; } + [ "${CT_ARCH_FLOAT_SOFTFP}" ] && { CT_ARCH_FLOAT_CFLAG="-mfloat-abi=softfp"; CT_ARCH_WITH_FLOAT="--with-float=softfp"; } # Build the default kernel tuple part CT_TARGET_KERNEL="${CT_KERNEL}" -- For unsubscribe information see http://sourceware.org/lists.html#faq
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |