LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* `make checkstack' and cross-compilation
@ 2006-12-01 13:58 Geert Uytterhoeven
  2006-12-01 15:30 ` Jeff Dike
  0 siblings, 1 reply; 5+ messages in thread
From: Geert Uytterhoeven @ 2006-12-01 13:58 UTC (permalink / raw)
  To: Linux Kernel Development


Makefile has:
| # Use $(SUBARCH) here instead of $(ARCH) so that this works for UML.
| # In the UML case, $(SUBARCH) is the name of the underlying
| # architecture, while for all other arches, it is the same as $(ARCH).
| checkstack:
|         $(OBJDUMP) -d vmlinux $$(find . -name '*.ko') | \
|         $(PERL) $(src)/scripts/checkstack.pl $(SUBARCH)

While this may fix `make checkstack' for UML, it breaks cross-compilation.
E.g. when cross-compiling for PPC on ia32, ARCH=powerpc, but SUBARCH=i386.

Probably it should use SUBARCH if ARCH=um, and ARCH otherwise?

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- Sony Network and Software Technology Center Europe (NSCE)
Geert.Uytterhoeven@sonycom.com ------- The Corporate Village, Da Vincilaan 7-D1
Voice +32-2-7008453 Fax +32-2-7008622 ---------------- B-1935 Zaventem, Belgium

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

* Re: `make checkstack' and cross-compilation
  2006-12-01 13:58 `make checkstack' and cross-compilation Geert Uytterhoeven
@ 2006-12-01 15:30 ` Jeff Dike
  2006-12-01 16:09   ` Geert Uytterhoeven
  0 siblings, 1 reply; 5+ messages in thread
From: Jeff Dike @ 2006-12-01 15:30 UTC (permalink / raw)
  To: Geert Uytterhoeven; +Cc: Linux Kernel Development

On Fri, Dec 01, 2006 at 02:58:16PM +0100, Geert Uytterhoeven wrote:
> Makefile has:
> | # Use $(SUBARCH) here instead of $(ARCH) so that this works for UML.
> | # In the UML case, $(SUBARCH) is the name of the underlying
> | # architecture, while for all other arches, it is the same as $(ARCH).
> | checkstack:
> |         $(OBJDUMP) -d vmlinux $$(find . -name '*.ko') | \
> |         $(PERL) $(src)/scripts/checkstack.pl $(SUBARCH)
> 
> While this may fix `make checkstack' for UML, it breaks cross-compilation.
> E.g. when cross-compiling for PPC on ia32, ARCH=powerpc, but SUBARCH=i386.
> 
> Probably it should use SUBARCH if ARCH=um, and ARCH otherwise?

Whoops, you're right.  

Do you have a patch?  If not, I'll make one.

And, do you have a cross-compilation environment which tests this?

				Jeff

-- 
Work email - jdike at linux dot intel dot com

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

* Re: `make checkstack' and cross-compilation
  2006-12-01 15:30 ` Jeff Dike
@ 2006-12-01 16:09   ` Geert Uytterhoeven
  2006-12-05 18:10     ` Jeff Dike
  0 siblings, 1 reply; 5+ messages in thread
From: Geert Uytterhoeven @ 2006-12-01 16:09 UTC (permalink / raw)
  To: Jeff Dike; +Cc: Linux Kernel Development

On Fri, 1 Dec 2006, Jeff Dike wrote:
> On Fri, Dec 01, 2006 at 02:58:16PM +0100, Geert Uytterhoeven wrote:
> > Makefile has:
> > | # Use $(SUBARCH) here instead of $(ARCH) so that this works for UML.
> > | # In the UML case, $(SUBARCH) is the name of the underlying
> > | # architecture, while for all other arches, it is the same as $(ARCH).
> > | checkstack:
> > |         $(OBJDUMP) -d vmlinux $$(find . -name '*.ko') | \
> > |         $(PERL) $(src)/scripts/checkstack.pl $(SUBARCH)
> > 
> > While this may fix `make checkstack' for UML, it breaks cross-compilation.
> > E.g. when cross-compiling for PPC on ia32, ARCH=powerpc, but SUBARCH=i386.
> > 
> > Probably it should use SUBARCH if ARCH=um, and ARCH otherwise?
> 
> Whoops, you're right.  
> 
> Do you have a patch?  If not, I'll make one.

No.

> And, do you have a cross-compilation environment which tests this?

Yes :-)

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- Sony Network and Software Technology Center Europe (NSCE)
Geert.Uytterhoeven@sonycom.com ------- The Corporate Village, Da Vincilaan 7-D1
Voice +32-2-7008453 Fax +32-2-7008622 ---------------- B-1935 Zaventem, Belgium

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

* Re: `make checkstack' and cross-compilation
  2006-12-01 16:09   ` Geert Uytterhoeven
@ 2006-12-05 18:10     ` Jeff Dike
  2006-12-06  9:35       ` Geert Uytterhoeven
  0 siblings, 1 reply; 5+ messages in thread
From: Jeff Dike @ 2006-12-05 18:10 UTC (permalink / raw)
  To: Geert Uytterhoeven; +Cc: Linux Kernel Development

On Fri, Dec 01, 2006 at 05:09:17PM +0100, Geert Uytterhoeven wrote:
> On Fri, 1 Dec 2006, Jeff Dike wrote:
> > And, do you have a cross-compilation environment which tests this?
> 
> Yes :-)

Can you test this patch?  It works for UML and native x86_64 - if it works
for your cross-build, I'll send it in.

				Jeff

Index: linux-2.6.18-mm/Makefile
===================================================================
--- linux-2.6.18-mm.orig/Makefile	2006-11-24 14:36:32.000000000 -0500
+++ linux-2.6.18-mm/Makefile	2006-12-05 13:08:20.000000000 -0500
@@ -1390,12 +1390,18 @@ endif #ifeq ($(mixed-targets),1)
 
 PHONY += checkstack kernelrelease kernelversion
 
-# Use $(SUBARCH) here instead of $(ARCH) so that this works for UML.
-# In the UML case, $(SUBARCH) is the name of the underlying
-# architecture, while for all other arches, it is the same as $(ARCH).
+# UML needs a little special treatment here.  It wants to use the host
+# toolchain, so needs $(SUBARCH) passed to checkstack.pl.  Everyone
+# else wants $(ARCH), including people doing cross-builds, which means
+# that $(SUBARCH) doesn't work here.
+ifeq ($(ARCH), um)
+CHECKSTACK_ARCH := $(SUBARCH)
+else
+CHECKSTACK_ARCH := $(ARCH)
+endif
 checkstack:
 	$(OBJDUMP) -d vmlinux $$(find . -name '*.ko') | \
-	$(PERL) $(src)/scripts/checkstack.pl $(SUBARCH)
+	$(PERL) $(src)/scripts/checkstack.pl $(CHECKSTACK_ARCH)
 
 kernelrelease:
 	$(if $(wildcard include/config/kernel.release), $(Q)echo $(KERNELRELEASE), \


-- 
Work email - jdike at linux dot intel dot com

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

* Re: `make checkstack' and cross-compilation
  2006-12-05 18:10     ` Jeff Dike
@ 2006-12-06  9:35       ` Geert Uytterhoeven
  0 siblings, 0 replies; 5+ messages in thread
From: Geert Uytterhoeven @ 2006-12-06  9:35 UTC (permalink / raw)
  To: Jeff Dike; +Cc: Linux Kernel Development

On Tue, 5 Dec 2006, Jeff Dike wrote:
> On Fri, Dec 01, 2006 at 05:09:17PM +0100, Geert Uytterhoeven wrote:
> > On Fri, 1 Dec 2006, Jeff Dike wrote:
> > > And, do you have a cross-compilation environment which tests this?
> > 
> > Yes :-)
> 
> Can you test this patch?  It works for UML and native x86_64 - if it works
> for your cross-build, I'll send it in.

Thanks, works fine for cross-compiling for powerpc.

Acked-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>

> Index: linux-2.6.18-mm/Makefile
> ===================================================================
> --- linux-2.6.18-mm.orig/Makefile	2006-11-24 14:36:32.000000000 -0500
> +++ linux-2.6.18-mm/Makefile	2006-12-05 13:08:20.000000000 -0500
> @@ -1390,12 +1390,18 @@ endif #ifeq ($(mixed-targets),1)
>  
>  PHONY += checkstack kernelrelease kernelversion
>  
> -# Use $(SUBARCH) here instead of $(ARCH) so that this works for UML.
> -# In the UML case, $(SUBARCH) is the name of the underlying
> -# architecture, while for all other arches, it is the same as $(ARCH).
> +# UML needs a little special treatment here.  It wants to use the host
> +# toolchain, so needs $(SUBARCH) passed to checkstack.pl.  Everyone
> +# else wants $(ARCH), including people doing cross-builds, which means
> +# that $(SUBARCH) doesn't work here.
> +ifeq ($(ARCH), um)
> +CHECKSTACK_ARCH := $(SUBARCH)
> +else
> +CHECKSTACK_ARCH := $(ARCH)
> +endif
>  checkstack:
>  	$(OBJDUMP) -d vmlinux $$(find . -name '*.ko') | \
> -	$(PERL) $(src)/scripts/checkstack.pl $(SUBARCH)
> +	$(PERL) $(src)/scripts/checkstack.pl $(CHECKSTACK_ARCH)
>  
>  kernelrelease:
>  	$(if $(wildcard include/config/kernel.release), $(Q)echo $(KERNELRELEASE), \

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- Sony Network and Software Technology Center Europe (NSCE)
Geert.Uytterhoeven@sonycom.com ------- The Corporate Village, Da Vincilaan 7-D1
Voice +32-2-7008453 Fax +32-2-7008622 ---------------- B-1935 Zaventem, Belgium

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

end of thread, other threads:[~2006-12-06  9:35 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-12-01 13:58 `make checkstack' and cross-compilation Geert Uytterhoeven
2006-12-01 15:30 ` Jeff Dike
2006-12-01 16:09   ` Geert Uytterhoeven
2006-12-05 18:10     ` Jeff Dike
2006-12-06  9:35       ` Geert Uytterhoeven

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