All of lore.kernel.org
 help / color / mirror / Atom feed
From: Manuel Lauss <manuel.lauss@gmail.com>
To: Linux-MIPS <linux-mips@linux-mips.org>
Cc: Manuel Lauss <manuel.lauss@gmail.com>
Subject: [RFC PATCH V2] MIPS: fix build with binutils 2.24.51+
Date: Tue, 19 Aug 2014 18:27:12 +0200	[thread overview]
Message-ID: <1408465632-34262-1-git-send-email-manuel.lauss@gmail.com> (raw)

With binutils snapshots since 29.07.2014 I get the following build failure:
{standard input}: Warning: .gnu_attribute 4,3 requires `softfloat'
  LD      arch/mips/alchemy/common/built-in.o
mipsel-softfloat-linux-gnu-ld: Warning: arch/mips/alchemy/common/built-in.o
 uses -msoft-float (set by arch/mips/alchemy/common/prom.o),
 arch/mips/alchemy/common/sleeper.o uses -mhard-float

Extend cflags with a soft-float directive for the assembler, and add
hardfloat directives to assembler files dealing with FPU
registers to compensate.

Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
---
V2: cover more assembler files.

This was introduced in binutils commit  351cdf24d223290b15fa991e5052ec9e9bd1e284
("[MIPS] Implement O32 FPXX, FP64 and FP64A ABI extensions"), and it seems is only
a problem with my gcc 4.9 or a very recent snapshot of gcc-4.10.
With gcc-4.8, the source builds, with 4.9 it aborts after the above error,
with 4.10 (which apparently passes -msoft-float along to the assembler automatically)
the .hardfloat directives are required.

 arch/mips/Makefile              | 2 +-
 arch/mips/kernel/r2300_switch.S | 1 +
 arch/mips/kernel/r4k_fpu.S      | 1 +
 arch/mips/kernel/r4k_switch.S   | 1 +
 arch/mips/kernel/r6000_fpu.S    | 1 +
 5 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 9336509..cffbd49 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -88,7 +88,7 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlinuz
 # crossformat linking we rely on the elf2ecoff tool for format conversion.
 #
 cflags-y			+= -G 0 -mno-abicalls -fno-pic -pipe
-cflags-y			+= -msoft-float
+cflags-y			+= -msoft-float -Wa,-msoft-float
 LDFLAGS_vmlinux			+= -G 0 -static -n -nostdlib
 KBUILD_AFLAGS_MODULE		+= -mlong-calls
 KBUILD_CFLAGS_MODULE		+= -mlong-calls
diff --git a/arch/mips/kernel/r2300_switch.S b/arch/mips/kernel/r2300_switch.S
index 20b7b04..f33bf8b 100644
--- a/arch/mips/kernel/r2300_switch.S
+++ b/arch/mips/kernel/r2300_switch.S
@@ -22,6 +22,7 @@
 #include <asm/asmmacro.h>
 
 	.set	mips1
+	.set	hardfloat
 	.align	5
 
 /*
diff --git a/arch/mips/kernel/r4k_fpu.S b/arch/mips/kernel/r4k_fpu.S
index 8352523..722962c 100644
--- a/arch/mips/kernel/r4k_fpu.S
+++ b/arch/mips/kernel/r4k_fpu.S
@@ -21,6 +21,7 @@
 
 	.macro	EX insn, reg, src
 	.set	push
+	.set	hardfloat
 	.set	nomacro
 .ex\@:	\insn	\reg, \src
 	.set	pop
diff --git a/arch/mips/kernel/r4k_switch.S b/arch/mips/kernel/r4k_switch.S
index 4c4ec18..5313b6f 100644
--- a/arch/mips/kernel/r4k_switch.S
+++ b/arch/mips/kernel/r4k_switch.S
@@ -34,6 +34,7 @@
  *		       struct thread_info *next_ti, s32 fp_save)
  */
 	.align	5
+	.set hardfloat
 	LEAF(resume)
 	mfc0	t1, CP0_STATUS
 	LONG_S	t1, THREAD_STATUS(a0)
diff --git a/arch/mips/kernel/r6000_fpu.S b/arch/mips/kernel/r6000_fpu.S
index da0fbe4..c13e3ff 100644
--- a/arch/mips/kernel/r6000_fpu.S
+++ b/arch/mips/kernel/r6000_fpu.S
@@ -17,6 +17,7 @@
 #include <asm/regdef.h>
 
 	.set	noreorder
+	.set	hardfloat
 	.set	mips2
 	/* Save floating point context */
 	LEAF(_save_fp_context)
-- 
2.0.4

             reply	other threads:[~2014-08-19 16:27 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-19 16:27 Manuel Lauss [this message]
2014-08-25 12:51 ` [RFC PATCH V2] MIPS: fix build with binutils 2.24.51+ Ralf Baechle
2014-08-25 14:27   ` Maciej W. Rozycki
2014-08-25 19:29     ` Manuel Lauss
2014-08-25 19:57       ` Ralf Baechle
2014-08-25 19:57       ` Maciej W. Rozycki
2014-08-26 10:45         ` Matthew Fortune
2014-08-26 10:45           ` Matthew Fortune
2014-10-10 14:39       ` Markos Chandras
2014-10-10 14:39         ` Markos Chandras
2014-10-10 14:40         ` Markos Chandras
2014-10-10 14:40           ` Markos Chandras
2014-10-11  6:53           ` Manuel Lauss

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1408465632-34262-1-git-send-email-manuel.lauss@gmail.com \
    --to=manuel.lauss@gmail.com \
    --cc=linux-mips@linux-mips.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.