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 |
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 --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)
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(-)