diff mbox series

MIPS: VDSO: Include $(ccflags-vdso) in o32,n32 .lds builds

Message ID 20190128231518.31459-1-paul.burton@mips.com (mailing list archive)
State Mainlined
Commit 67fc5dc8a541e8f458d7f08bf88ff55933bf9f9d
Headers show
Series MIPS: VDSO: Include $(ccflags-vdso) in o32,n32 .lds builds | expand

Commit Message

Paul Burton Jan. 28, 2019, 11:16 p.m. UTC
When generating vdso-o32.lds & vdso-n32.lds for use with programs
running as compat ABIs under 64b kernels, we previously haven't included
the compiler flags that are supposedly common to all ABIs - ie. those in
the ccflags-vdso variable.

This is problematic in cases where we need to provide the -m%-float flag
in order to ensure that we don't attempt to use a floating point ABI
that's incompatible with the target CPU & ABI. For example a toolchain
using current gcc trunk configured --with-fp-32=xx fails to build a
64r6el_defconfig kernel with the following error:

  cc1: error: '-march=mips1' requires '-mfp32'
  make[2]: *** [arch/mips/vdso/Makefile:135: arch/mips/vdso/vdso-o32.lds] Error 1

Include $(ccflags-vdso) for the compat VDSO .lds builds, just as it is
included for the native VDSO .lds & when compiling objects for the
compat VDSOs. This ensures we consistently provide the -msoft-float flag
amongst others, avoiding the problem by ensuring we're agnostic to the
toolchain defaults.

Signed-off-by: Paul Burton <paul.burton@mips.com>
---
 arch/mips/vdso/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Paul Burton Jan. 29, 2019, 7:51 p.m. UTC | #1
Hello,

Paul Burton wrote:
> When generating vdso-o32.lds & vdso-n32.lds for use with programs
> running as compat ABIs under 64b kernels, we previously haven't included
> the compiler flags that are supposedly common to all ABIs - ie. those in
> the ccflags-vdso variable.
> 
> This is problematic in cases where we need to provide the -m%-float flag
> in order to ensure that we don't attempt to use a floating point ABI
> that's incompatible with the target CPU & ABI. For example a toolchain
> using current gcc trunk configured --with-fp-32=xx fails to build a
> 64r6el_defconfig kernel with the following error:
> 
> cc1: error: '-march=mips1' requires '-mfp32'
> make[2]: *** [arch/mips/vdso/Makefile:135: arch/mips/vdso/vdso-o32.lds] Error 1
> 
> Include $(ccflags-vdso) for the compat VDSO .lds builds, just as it is
> included for the native VDSO .lds & when compiling objects for the
> compat VDSOs. This ensures we consistently provide the -msoft-float flag
> amongst others, avoiding the problem by ensuring we're agnostic to the
> toolchain defaults.
> 
> Signed-off-by: Paul Burton <paul.burton@mips.com>

Applied to mips-fixes.

Thanks,
    Paul

[ This message was auto-generated; if you believe anything is incorrect
  then please email paul.burton@mips.com to report it. ]
diff mbox series

Patch

diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile
index 314949b2261d..0ede4deb8181 100644
--- a/arch/mips/vdso/Makefile
+++ b/arch/mips/vdso/Makefile
@@ -130,7 +130,7 @@  $(obj)/%-o32.o: $(src)/%.c FORCE
 	$(call cmd,force_checksrc)
 	$(call if_changed_rule,cc_o_c)
 
-$(obj)/vdso-o32.lds: KBUILD_CPPFLAGS := -mabi=32
+$(obj)/vdso-o32.lds: KBUILD_CPPFLAGS := $(ccflags-vdso) -mabi=32
 $(obj)/vdso-o32.lds: $(src)/vdso.lds.S FORCE
 	$(call if_changed_dep,cpp_lds_S)
 
@@ -170,7 +170,7 @@  $(obj)/%-n32.o: $(src)/%.c FORCE
 	$(call cmd,force_checksrc)
 	$(call if_changed_rule,cc_o_c)
 
-$(obj)/vdso-n32.lds: KBUILD_CPPFLAGS := -mabi=n32
+$(obj)/vdso-n32.lds: KBUILD_CPPFLAGS := $(ccflags-vdso) -mabi=n32
 $(obj)/vdso-n32.lds: $(src)/vdso.lds.S FORCE
 	$(call if_changed_dep,cpp_lds_S)