lkml.org 
[lkml]   [2019]   [Sep]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 22/74] MIPS: VDSO: Use same -m%-float cflag as the kernel proper
    Date
    From: Paul Burton <paul.burton@mips.com>

    commit 0648e50e548d881d025b9419a1a168753c8e2bf7 upstream.

    The MIPS VDSO build currently doesn't provide the -msoft-float flag to
    the compiler as the kernel proper does. This results in an attempt to
    use the compiler's default floating point configuration, which can be
    problematic in cases where this is incompatible with the target CPU's
    -march= flag. For example decstation_defconfig fails to build using
    toolchains in which gcc was configured --with-fp-32=xx with the
    following error:

    LDS arch/mips/vdso/vdso.lds
    cc1: error: '-march=r3000' requires '-mfp32'
    make[2]: *** [scripts/Makefile.build:379: arch/mips/vdso/vdso.lds] Error 1

    The kernel proper avoids this error because we build with the
    -msoft-float compiler flag, rather than using the compiler's default.
    Pass this flag through to the VDSO build so that it too becomes agnostic
    to the toolchain's floating point configuration.

    Note that this is filtered out from KBUILD_CFLAGS rather than simply
    always using -msoft-float such that if we switch the kernel to use
    -mno-float in the future the VDSO will automatically inherit the change.

    The VDSO doesn't actually include any floating point code, and its
    .MIPS.abiflags section is already manually generated to specify that
    it's compatible with any floating point ABI. As such this change should
    have no effect on the resulting VDSO, apart from fixing the build
    failure for affected toolchains.

    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Reported-by: Kevin Hilman <khilman@baylibre.com>
    Reported-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Kevin Hilman <khilman@baylibre.com>
    Fixes: ebb5e78cc634 ("MIPS: Initial implementation of a VDSO")
    Cc: Maciej W. Rozycki <macro@linux-mips.org>
    Cc: linux-mips@vger.kernel.org
    Cc: stable@vger.kernel.org # v4.4+
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/mips/vdso/Makefile | 1 +
    1 file changed, 1 insertion(+)

    --- a/arch/mips/vdso/Makefile
    +++ b/arch/mips/vdso/Makefile
    @@ -7,6 +7,7 @@ ccflags-vdso := \
    $(filter -E%,$(KBUILD_CFLAGS)) \
    $(filter -mmicromips,$(KBUILD_CFLAGS)) \
    $(filter -march=%,$(KBUILD_CFLAGS)) \
    + $(filter -m%-float,$(KBUILD_CFLAGS)) \
    -D__VDSO__
    cflags-vdso := $(ccflags-vdso) \
    $(filter -W%,$(filter-out -Wa$(comma)%,$(KBUILD_CFLAGS))) \

    \
     
     \ /
      Last update: 2019-09-20 00:19    [W:4.094 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site