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

* [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
  1 sibling, 0 replies; 10+ messages in thread
From: Mark Rutland @ 2014-06-25 16:33 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Jun 25, 2014 at 04:09:38PM +0100, arun chandran wrote:
> From 85134076eb06b90e295e46b083dc180a91c61ea2 Mon Sep 17 00:00:00 2001
> From: Arun Chandran <achandran@mvista.com>
> Date: Wed, 25 Jun 2014 19:36:54 +0530
> Subject: [PATCH] Arm64: Fix build error while switching from LE to BE
> 
> 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

I see that Documentation/kbuild/makefiles.txt describes that if_changed
requires FORCE, and forgetting FORCE is a common mistake. See "6.7
Commands useful for building a boot image".

It's probably worth mentioning that in the commit message.

I was able to build and boot LE, BE, and LE arm64 (defconfig) kernels in
turn with this patch applied, and I didn't receive any unexpected errors
from gcc or ld.

So FWIW:

Tested-by: Mark Rutland <mark.rutland@arm.com>

Thanks,
Mark.

> 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	[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
  2014-06-26  6:03   ` Arun Chandran
  1 sibling, 1 reply; 10+ messages in thread
From: Geoff Levand @ 2014-06-25 19:28 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Arun,

On Wed, 2014-06-25 at 20:39 +0530, arun chandran wrote:
> 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>

This seems like a bit too much to put into the commit log.  What about
something like:

  Selecting CPU_BIG_ENDIAN and building the kernel fails just after
  building it for little endian.  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

-Geoff

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

* [PATCH] Arm64: Fix build error while switching from LE to BE
  2014-06-25 19:28 ` Geoff Levand
@ 2014-06-26  6:03   ` Arun Chandran
  0 siblings, 0 replies; 10+ messages in thread
From: Arun Chandran @ 2014-06-26  6:03 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Geoff,


>
> On Wed, 2014-06-25 at 20:39 +0530, arun chandran wrote:
> > 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>
>
> This seems like a bit too much to put into the commit log.  What about
> something like:
>
>   Selecting CPU_BIG_ENDIAN and building the kernel fails just after
>   building it for little endian.  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
>
Ok I will do that and resend it.

--Arun

^ permalink raw reply	[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-26  6:46 Arun Chandran
@ 2014-06-26  9:29 ` Mark Rutland
  2014-06-26  9:37   ` Arun Chandran
  0 siblings, 1 reply; 10+ messages in thread
From: Mark Rutland @ 2014-06-26  9:29 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jun 26, 2014 at 07:46:44AM +0100, Arun Chandran wrote:
> 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'

This is a little confusing, because we jump from the high level problem
to a very specific problem detail with nothing to link the two.

How about:

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>

Any reason for bot picking up my Tested-by [1]? The patch seems to be
the same.

Mark.

[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2014-June/266571.html

> ---
>  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	[flat|nested] 10+ messages in thread

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

Hi,

On Thu, Jun 26, 2014 at 2:59 PM, Mark Rutland <mark.rutland@arm.com> wrote:
> On Thu, Jun 26, 2014 at 07:46:44AM +0100, Arun Chandran wrote:
>> 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'
>
> This is a little confusing, because we jump from the high level problem
> to a very specific problem detail with nothing to link the two.
>
> How about:
>
> 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.
>

Yes that is a better one. I will make the change.

>> 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>
>
> Any reason for bot picking up my Tested-by [1]? The patch seems to be
> the same.

Sorry I missed that. Will include in my next patch

--Arun

>
> Mark.
>
> [1] http://lists.infradead.org/pipermail/linux-arm-kernel/2014-June/266571.html
>
>> ---
>>  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	[flat|nested] 10+ messages in thread

* [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  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
  0 siblings, 1 reply; 10+ messages in thread
From: Arun Chandran @ 2014-07-30 14:01 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Jun 26, 2014 at 3:16 PM, Arun Chandran <achandran@mvista.com> wrote:
> 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
>

Any update on this?

--Arun

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

* [PATCH] Arm64: Fix build error while switching from LE to BE
  2014-07-30 14:01 ` Arun Chandran
@ 2014-07-30 14:09   ` Will Deacon
  0 siblings, 0 replies; 10+ messages in thread
From: Will Deacon @ 2014-07-30 14:09 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Jul 30, 2014 at 03:01:35PM +0100, Arun Chandran wrote:
> On Thu, Jun 26, 2014 at 3:16 PM, Arun Chandran <achandran@mvista.com> wrote:
> > 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
> >
> 
> Any update on this?

Sorry, this slipped through the cracks (neither myself or Catalin were on CC
and we didn't spot it on the list).

I've applied it to our for-next branch targetting 3.17 and will push out
after a bit of testing.

Will

^ permalink raw reply	[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).