linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Arm64: Fix build error while switching from LE to BE
@ 2014-06-26  9:46 Arun Chandran
  2014-07-30 14:01 ` Arun Chandran
  0 siblings, 1 reply; 10+ messages in thread
From: Arun Chandran @ 2014-06-26  9:46 UTC (permalink / raw)
  To: linux-arm-kernel

Building a kernel with CPU_BIG_ENDIAN fails if there are stale objects
from a !CPU_BIG_ENDIAN build. Due to a missing FORCE prerequisite on an
if_changed rule in the VDSO Makefile, we attempt to link a stale LE
object into the new BE kernel. According to Documentation/kbuild/makefiles.txt
FORCE is required for if_changed rules, and forgetting it is a common mistake

So fix it by 'Forcing' the build of vdso.  Fixes build errors like these:

arch/arm64/kernel/vdso/note.o: compiled for a little endian system and target is big endian
failed to merge target specific data of file arch/arm64/kernel/vdso/note.o

arch/arm64/kernel/vdso/sigreturn.o: compiled for a little endian system and target is big endian
failed to merge target specific data of file arch/arm64/kernel/vdso/sigreturn.o

Signed-off-by: Arun Chandran <achandran@mvista.com>
Tested-by: Mark Rutland <mark.rutland@arm.com>
---
 arch/arm64/kernel/vdso/Makefile |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
index 6d20b7d..a268a9a 100644
--- a/arch/arm64/kernel/vdso/Makefile
+++ b/arch/arm64/kernel/vdso/Makefile
@@ -43,7 +43,7 @@ $(obj)/vdso-offsets.h: $(obj)/vdso.so.dbg FORCE
 	$(call if_changed,vdsosym)
 
 # Assembly rules for the .S files
-$(obj-vdso): %.o: %.S
+$(obj-vdso): %.o: %.S FORCE
 	$(call if_changed_dep,vdsoas)
 
 # Actual build commands
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [PATCH] Arm64: Fix build error while switching from LE to BE
@ 2014-06-26  6:46 Arun Chandran
  2014-06-26  9:29 ` Mark Rutland
  0 siblings, 1 reply; 10+ messages in thread
From: Arun Chandran @ 2014-06-26  6:46 UTC (permalink / raw)
  To: linux-arm-kernel

Selecting CPU_BIG_ENDIAN and building the kernel fails just after
building it for little endian. According to Documentation/kbuild/makefiles.txt,
it is a common mistake to forget 'FORCE' while using 'if_changed'

So fix it by 'Forcing' the build of vdso.  Fixes build errors like these:

arch/arm64/kernel/vdso/note.o: compiled for a little endian system and target is big endian
failed to merge target specific data of file arch/arm64/kernel/vdso/note.o

arch/arm64/kernel/vdso/sigreturn.o: compiled for a little endian system and target is big endian
failed to merge target specific data of file arch/arm64/kernel/vdso/sigreturn.o

Signed-off-by: Arun Chandran <achandran@mvista.com>
---
 arch/arm64/kernel/vdso/Makefile |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
index 6d20b7d..a268a9a 100644
--- a/arch/arm64/kernel/vdso/Makefile
+++ b/arch/arm64/kernel/vdso/Makefile
@@ -43,7 +43,7 @@ $(obj)/vdso-offsets.h: $(obj)/vdso.so.dbg FORCE
 	$(call if_changed,vdsosym)
 
 # Assembly rules for the .S files
-$(obj-vdso): %.o: %.S
+$(obj-vdso): %.o: %.S FORCE
 	$(call if_changed_dep,vdsoas)
 
 # Actual build commands
-- 
1.7.9.5

^ permalink raw reply related	[flat|nested] 10+ messages in thread
* [PATCH] Arm64: Fix build error while switching from LE to BE
@ 2014-06-25 15:09 arun chandran
  2014-06-25 16:33 ` Mark Rutland
  2014-06-25 19:28 ` Geoff Levand
  0 siblings, 2 replies; 10+ messages in thread
From: arun chandran @ 2014-06-25 15:09 UTC (permalink / raw)
  To: linux-arm-kernel

Selecting CPU_BIG_ENDIAN and building the kernel fails just after
building it for little endian with the message

   VDSOA arch/arm64/kernel/vdso/gettimeofday.o
   VDSOL arch/arm64/kernel/vdso/vdso.so.dbg
/gcc-linaro-aarch64_be-linux-gnu-4.9-2014.05_linux/bin/../lib/gcc/aarch64_be-linux-gnu/4.9.1/../../../../aarch64_be-linux-gnu/bin/ld:
arch/arm64/kernel/vdso/note.o: compiled for a little endian system and
target is big endian
/gcc-linaro-aarch64_be-linux-gnu-4.9-2014.05_linux/bin/../lib/gcc/aarch64_be-linux-gnu/4.9.1/../../../../aarch64_be-linux-gnu/bin/ld:
failed to merge target specific data of file
arch/arm64/kernel/vdso/note.o
/gcc-linaro-aarch64_be-linux-gnu-4.9-2014.05_linux/bin/../lib/gcc/aarch64_be-linux-gnu/4.9.1/../../../../aarch64_be-linux-gnu/bin/ld:
arch/arm64/kernel/vdso/sigreturn.o: compiled for a little endian system
and target is big endian
/gcc-linaro-aarch64_be-linux-gnu-4.9-2014.05_linux/bin/../lib/gcc/aarch64_be-linux-gnu/4.9.1/../../../../aarch64_be-linux-gnu/bin/ld:
failed to merge target specific data of file
arch/arm64/kernel/vdso/sigreturn.o
collect2: error: ld returned 1 exit status
make[2]: *** [arch/arm64/kernel/vdso/vdso.so.dbg] Error 1
make[1]: *** [arch/arm64/kernel/vdso] Error 2
make: *** [arch/arm64/kernel] Error 2
make: *** Waiting for unfinished jobs....

Fix it by 'Forcing' the build in arch/arm64/kernel/vdso/Makefile

Signed-off-by: Arun Chandran <achandran@mvista.com>
---
  arch/arm64/kernel/vdso/Makefile |    2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/kernel/vdso/Makefile 
b/arch/arm64/kernel/vdso/Makefile
index 6d20b7d..a268a9a 100644
--- a/arch/arm64/kernel/vdso/Makefile
+++ b/arch/arm64/kernel/vdso/Makefile
@@ -43,7 +43,7 @@ $(obj)/vdso-offsets.h: $(obj)/vdso.so.dbg FORCE
      $(call if_changed,vdsosym)

  # Assembly rules for the .S files
-$(obj-vdso): %.o: %.S
+$(obj-vdso): %.o: %.S FORCE
      $(call if_changed_dep,vdsoas)

  # Actual build commands
-- 
1.7.9.5

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Arm64-Fix-build-error-while-switching-from-LE-to-BE.patch
Type: text/x-patch
Size: 2189 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20140625/dff48525/attachment.bin>

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2014-07-30 14:09 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-26  9:46 [PATCH] Arm64: Fix build error while switching from LE to BE Arun Chandran
2014-07-30 14:01 ` Arun Chandran
2014-07-30 14:09   ` Will Deacon
  -- strict thread matches above, loose matches on Subject: below --
2014-06-26  6:46 Arun Chandran
2014-06-26  9:29 ` Mark Rutland
2014-06-26  9:37   ` Arun Chandran
2014-06-25 15:09 arun chandran
2014-06-25 16:33 ` Mark Rutland
2014-06-25 19:28 ` Geoff Levand
2014-06-26  6:03   ` Arun Chandran

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).