linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] powerpc/boot: Only build board support files when required.
@ 2012-04-03  0:55 Tony Breeds
  2012-04-03  1:00 ` David Gibson
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Tony Breeds @ 2012-04-03  0:55 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, LinuxPPC-dev, Josh Boyer
  Cc: Frank Svendsbøe, Wolfgang Denk, robert.karl.berger

[-- Attachment #1: Type: text/plain, Size: 3791 bytes --]

Currently we build all board files regardless of the final zImage
target.  This is sub-optimal (in terms on compilation) and leads to
problems in one platform needlessly causing failures for other
platforms.

Use the Kconfig variables to selectively construct this board files to
build.

Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
---
 arch/powerpc/boot/Makefile |   69 +++++++++++++++++++++++++++++++++-----------
 1 files changed, 52 insertions(+), 17 deletions(-)

diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index e8461cb..3d4d9ea 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -65,23 +65,58 @@ $(addprefix $(obj)/,$(libfdt) libfdt-wrapper.o simpleboot.o epapr.o): \
 src-wlib := string.S crt0.S crtsavres.S stdio.c main.c \
 		$(libfdt) libfdt-wrapper.c \
 		ns16550.c serial.c simple_alloc.c div64.S util.S \
-		gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \
-		4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \
-		cpm-serial.c stdlib.c mpc52xx-psc.c planetcore.c uartlite.c \
-		fsl-soc.c mpc8xx.c pq2.c ugecon.c
-src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c \
-		cuboot-ebony.c cuboot-hotfoot.c epapr.c treeboot-ebony.c \
-		prpmc2800.c \
-		ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \
-		cuboot-pq2.c cuboot-sequoia.c treeboot-walnut.c \
-		cuboot-bamboo.c cuboot-mpc7448hpc2.c cuboot-taishan.c \
-		fixed-head.S ep88xc.c ep405.c cuboot-c2k.c \
-		cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \
-		cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \
-		virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c \
-		cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c \
-		gamecube-head.S gamecube.c wii-head.S wii.c treeboot-iss4xx.c \
-		treeboot-currituck.c
+		gunzip_util.c elf_util.c $(zlib) devtree.c stdlib.c \
+		oflib.c ofconsole.c cuboot.c mpsc.c cpm-serial.c \
+		uartlite.c mpc52xx-psc.c
+src-plat := of.c
+ifeq ($(CONFIG_40x),y)
+src-wlib  += 4xx.c planetcore.c
+src-plat += fixed-head.S ep405.c cuboot-hotfoot.c treeboot-walnut.c \
+		cuboot-acadia.c cuboot-kilauea.c \
+		simpleboot.c virtex405-head.S virtex.c
+endif
+ifeq ($(CONFIG_44x),y)
+src-wlib  += 4xx.c ebony.c bamboo.c
+src-plat  += treeboot-ebony cuboot-ebony treeboot-bamboo cuboot-bamboo \
+		cuboot-sam440ep.c cuboot-sequoia.c cuboot-rainier.c \
+		cuboot-taishan.c cuboot-katmai.c cuboot-warp.c \
+		cuboot-yosemite.c treeboot-iss4xx.c treeboot-currituck.c \
+		simpleboot.c fixed-head.S virtex.c
+endif
+ifeq ($(CONFIG_8xx),y)
+src-wlib  += mpc8xx.c planetcore.c
+src-plat  += cuboot-8xx.c fixed-head.S ep88xc.c redboot-8xx.c
+endif
+ifeq ($(CONFIG_PPC_MPC52xx),y)
+src-plat  += cuboot-52xx.c
+endif
+ifeq ($(CONFIG_PPC_82xx),y)
+src-wlib  += pq2.c fsl-soc.c
+src-plat  += cuboot-pq2.c fixed-head.S ep8248e.c cuboot-824x.c
+endif
+ifeq ($(CONFIG_PPC_83xx),y)
+src-plat  += cuboot-83xx.c fixed-head.S redboot-83xx.c
+endif
+ifeq ($(CONFIG_FSL_SOC_BOOKE),y)
+src-plat  += cuboot-85xx.c cuboot-85xx-cpm2.c
+endif
+ifeq ($(CONFIG_EMBEDDED6xx),y)
+src-wlib  += mv64x60.c mv64x60_i2c.c ugecon.c
+src-plat  += cuboot-pq2.c cuboot-mpc7448hpc2.c cuboot-c2k.c \
+		gamecube-head.S gamecube.c wii-head.S wii.c holly.c \
+		prpmc2800.c
+endif
+ifeq ($(CONFIG_AMIGAONE),y)
+src-plat  += cuboot-amigaone.c
+endif
+ifeq ($(CONFIG_PPC_PS3),y)
+src-plat  += ps3-head.S ps3-hvcall.S ps3.c
+endif
+ifeq ($(CONFIG_EPAPR_BOOT),y)
+src-plat  += epapr.c
+endif
+src-wlib := $(sort $(src-wlib))
+src-plat := $(sort $(src-plat))
 src-boot := $(src-wlib) $(src-plat) empty.c
 
 src-boot := $(addprefix $(obj)/, $(src-boot))
-- 
1.7.7.6



Yours Tony

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [PATCH] powerpc/boot: Only build board support files when required.
  2012-04-03  0:55 [PATCH] powerpc/boot: Only build board support files when required Tony Breeds
@ 2012-04-03  1:00 ` David Gibson
  2012-04-03  1:26   ` Benjamin Herrenschmidt
  2012-04-03  1:31   ` Tony Breeds
  2012-04-03  1:41 ` Stephen Rothwell
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 9+ messages in thread
From: David Gibson @ 2012-04-03  1:00 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, LinuxPPC-dev, Josh Boyer, Wolfgang Denk,
	robert.karl.berger, Frank Svendsbøe

[-- Attachment #1: Type: text/plain, Size: 694 bytes --]

On Tue, Apr 03, 2012 at 10:55:59AM +1000, Tony Breeds wrote:
> Currently we build all board files regardless of the final zImage
> target.  This is sub-optimal (in terms on compilation) and leads to
> problems in one platform needlessly causing failures for other
> platforms.

Um.. I believe the one platform breaking another is actually working
as intended.  I think Paulus did it this way to stop people breaking
platforms other than the one they were working on without realising
it.

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

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

* Re: [PATCH] powerpc/boot: Only build board support files when required.
  2012-04-03  1:00 ` David Gibson
@ 2012-04-03  1:26   ` Benjamin Herrenschmidt
  2012-04-03  1:31   ` Tony Breeds
  1 sibling, 0 replies; 9+ messages in thread
From: Benjamin Herrenschmidt @ 2012-04-03  1:26 UTC (permalink / raw)
  To: David Gibson
  Cc: Frank Svendsbøe, LinuxPPC-dev, Wolfgang Denk,
	robert.karl.berger

On Tue, 2012-04-03 at 11:00 +1000, David Gibson wrote:
> On Tue, Apr 03, 2012 at 10:55:59AM +1000, Tony Breeds wrote:
> > Currently we build all board files regardless of the final zImage
> > target.  This is sub-optimal (in terms on compilation) and leads to
> > problems in one platform needlessly causing failures for other
> > platforms.
> 
> Um.. I believe the one platform breaking another is actually working
> as intended.  I think Paulus did it this way to stop people breaking
> platforms other than the one they were working on without realising
> it.

But that doesn't make sense to enforce that accross CPU families since
they cannot be built together within a single kernel anyway...

Cheers,
Ben.

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

* Re: [PATCH] powerpc/boot: Only build board support files when required.
  2012-04-03  1:00 ` David Gibson
  2012-04-03  1:26   ` Benjamin Herrenschmidt
@ 2012-04-03  1:31   ` Tony Breeds
  1 sibling, 0 replies; 9+ messages in thread
From: Tony Breeds @ 2012-04-03  1:31 UTC (permalink / raw)
  To: David Gibson
  Cc: Frank Svendsbøe, Wolfgang Denk, robert.karl.berger,
	LinuxPPC-dev

[-- Attachment #1: Type: text/plain, Size: 799 bytes --]

On Tue, Apr 03, 2012 at 11:00:02AM +1000, David Gibson wrote:
 
> Um.. I believe the one platform breaking another is actually working
> as intended.  I think Paulus did it this way to stop people breaking
> platforms other than the one they were working on without realising
> it.

Well that may have been the original intent but in the thread "Re:
kilauea compilation breaks with v3.3 kernel and ELDK 4.2" we're seeing
4xx break 8xx as the 8xx binutils (in use) doesn't have a mfdcrx
instruction.

So by breaking it up we gain a small decrease in compile times, less
chance of a very targeted build breaking an unrelated board.  We do as
you point out potentially delay discovery of breakage for some time.

I don't mind either way but the patch is out there now :)

Yours Tony

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [PATCH] powerpc/boot: Only build board support files when required.
  2012-04-03  0:55 [PATCH] powerpc/boot: Only build board support files when required Tony Breeds
  2012-04-03  1:00 ` David Gibson
@ 2012-04-03  1:41 ` Stephen Rothwell
  2012-04-03  1:55   ` Tony Breeds
  2012-04-04  1:00 ` [PATCH v2] " Tony Breeds
  2012-04-05  3:44 ` [PATCH] " Geoff Levand
  3 siblings, 1 reply; 9+ messages in thread
From: Stephen Rothwell @ 2012-04-03  1:41 UTC (permalink / raw)
  To: Tony Breeds
  Cc: Frank Svendsbøe, Wolfgang Denk, robert.karl.berger,
	LinuxPPC-dev

[-- Attachment #1: Type: text/plain, Size: 2448 bytes --]

Hi Tony,

On Tue, 3 Apr 2012 10:55:59 +1000 Tony Breeds <tony@bakeyournoodle.com> wrote:
>
>  arch/powerpc/boot/Makefile |   69 +++++++++++++++++++++++++++++++++-----------
>  1 files changed, 52 insertions(+), 17 deletions(-)
> 
> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> index e8461cb..3d4d9ea 100644
> --- a/arch/powerpc/boot/Makefile
> +++ b/arch/powerpc/boot/Makefile
> @@ -65,23 +65,58 @@ $(addprefix $(obj)/,$(libfdt) libfdt-wrapper.o simpleboot.o epapr.o): \
>  src-wlib := string.S crt0.S crtsavres.S stdio.c main.c \
>  		$(libfdt) libfdt-wrapper.c \
>  		ns16550.c serial.c simple_alloc.c div64.S util.S \
> -		gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \
> -		4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \
> -		cpm-serial.c stdlib.c mpc52xx-psc.c planetcore.c uartlite.c \
> -		fsl-soc.c mpc8xx.c pq2.c ugecon.c
> -src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c \
> -		cuboot-ebony.c cuboot-hotfoot.c epapr.c treeboot-ebony.c \
> -		prpmc2800.c \
> -		ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \
> -		cuboot-pq2.c cuboot-sequoia.c treeboot-walnut.c \
> -		cuboot-bamboo.c cuboot-mpc7448hpc2.c cuboot-taishan.c \
> -		fixed-head.S ep88xc.c ep405.c cuboot-c2k.c \
> -		cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \
> -		cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \
> -		virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c \
> -		cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c \
> -		gamecube-head.S gamecube.c wii-head.S wii.c treeboot-iss4xx.c \
> -		treeboot-currituck.c
> +		gunzip_util.c elf_util.c $(zlib) devtree.c stdlib.c \
> +		oflib.c ofconsole.c cuboot.c mpsc.c cpm-serial.c \
> +		uartlite.c mpc52xx-psc.c
> +src-plat := of.c
> +ifeq ($(CONFIG_40x),y)
> +src-wlib  += 4xx.c planetcore.c
> +src-plat += fixed-head.S ep405.c cuboot-hotfoot.c treeboot-walnut.c \
> +		cuboot-acadia.c cuboot-kilauea.c \
> +		simpleboot.c virtex405-head.S virtex.c
> +endif

It is more ususal in the kernel makefiles to do something like:

src-wlib-$(CONFIG_40x) += 4xx.c planetcore.c
src-plat-$(CONFIG_40x) += fixed-head.S ep405.c cuboot-hotfoot.c treeboot-walnut.c \

...

and then use $(src-wlib-y) and $(src-plat-y)

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [PATCH] powerpc/boot: Only build board support files when required.
  2012-04-03  1:41 ` Stephen Rothwell
@ 2012-04-03  1:55   ` Tony Breeds
  2012-04-03  1:57     ` Stephen Rothwell
  0 siblings, 1 reply; 9+ messages in thread
From: Tony Breeds @ 2012-04-03  1:55 UTC (permalink / raw)
  To: Stephen Rothwell
  Cc: Frank Svendsbøe, Wolfgang Denk, robert.karl.berger,
	LinuxPPC-dev

[-- Attachment #1: Type: text/plain, Size: 4519 bytes --]

On Tue, Apr 03, 2012 at 11:41:50AM +1000, Stephen Rothwell wrote:

> It is more ususal in the kernel makefiles to do something like:
> 
> src-wlib-$(CONFIG_40x) += 4xx.c planetcore.c
> src-plat-$(CONFIG_40x) += fixed-head.S ep405.c cuboot-hotfoot.c treeboot-walnut.c \

Gah you are right.  How about this.

From b59e3f86d72fe3e16881ec972602a9bb3e28045a Mon Sep 17 00:00:00 2001
From: Tony Breeds <tony@bakeyournoodle.com>
Date: Mon, 2 Apr 2012 16:20:35 +1000
Subject: [PATCH] powerpc/boot: Only build board support files when required.

Currently we build all board files regardless of the final zImage
target.  This is sub-optimal (in terms on compilation) and leads to
problems in one platform needlessly causing failures for other
platforms.

Use the Kconfig variables to selectively construct this board files to
build.

Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
---
 arch/powerpc/boot/Makefile |   57 +++++++++++++++++++++++++++++--------------
 1 files changed, 38 insertions(+), 19 deletions(-)

diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index e8461cb..a05d32d 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -62,27 +62,46 @@ libfdtheader := fdt.h libfdt.h libfdt_internal.h
 $(addprefix $(obj)/,$(libfdt) libfdt-wrapper.o simpleboot.o epapr.o): \
 	$(addprefix $(obj)/,$(libfdtheader))
 
-src-wlib := string.S crt0.S crtsavres.S stdio.c main.c \
+src-wlib-y := string.S crt0.S crtsavres.S stdio.c main.c \
 		$(libfdt) libfdt-wrapper.c \
 		ns16550.c serial.c simple_alloc.c div64.S util.S \
-		gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \
-		4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \
-		cpm-serial.c stdlib.c mpc52xx-psc.c planetcore.c uartlite.c \
-		fsl-soc.c mpc8xx.c pq2.c ugecon.c
-src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c \
-		cuboot-ebony.c cuboot-hotfoot.c epapr.c treeboot-ebony.c \
-		prpmc2800.c \
-		ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \
-		cuboot-pq2.c cuboot-sequoia.c treeboot-walnut.c \
-		cuboot-bamboo.c cuboot-mpc7448hpc2.c cuboot-taishan.c \
-		fixed-head.S ep88xc.c ep405.c cuboot-c2k.c \
-		cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \
-		cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \
-		virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c \
-		cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c \
-		gamecube-head.S gamecube.c wii-head.S wii.c treeboot-iss4xx.c \
-		treeboot-currituck.c
-src-boot := $(src-wlib) $(src-plat) empty.c
+		gunzip_util.c elf_util.c $(zlib) devtree.c stdlib.c \
+		oflib.c ofconsole.c cuboot.c mpsc.c cpm-serial.c \
+		uartlite.c mpc52xx-psc.c
+src-wlib-$(CONFIG_40x) += 4xx.c planetcore.c
+src-wlib-$(CONFIG_44x) += 4xx.c ebony.c bamboo.c
+src-wlib-$(CONFIG_8xx) += mpc8xx.c planetcore.c
+src-wlib-$(CONFIG_PPC_82xx) += pq2.c fsl-soc.c
+src-wlib-$(CONFIG_EMBEDDED6xx) += mv64x60.c mv64x60_i2c.c ugecon.c
+
+src-plat-y := of.c
+src-plat-$(CONFIG_40x) += fixed-head.S ep405.c cuboot-hotfoot.c \
+				treeboot-walnut.c cuboot-acadia.c \
+				cuboot-kilauea.c simpleboot.c \
+				virtex405-head.S virtex.c
+src-plat-$(CONFIG_44x) += treeboot-ebony cuboot-ebony treeboot-bamboo \
+				cuboot-bamboo cuboot-sam440ep.c \
+				cuboot-sequoia.c cuboot-rainier.c \
+				cuboot-taishan.c cuboot-katmai.c \
+				cuboot-warp.c cuboot-yosemite.c \
+				treeboot-iss4xx.c treeboot-currituck.c \
+				simpleboot.c fixed-head.S virtex.c
+src-plat-$(CONFIG_8xx) += cuboot-8xx.c fixed-head.S ep88xc.c redboot-8xx.c
+src-plat-$(CONFIG_PPC_MPC52xx) += cuboot-52xx.c
+src-plat-$(CONFIG_PPC_82xx) += cuboot-pq2.c fixed-head.S ep8248e.c cuboot-824x.c
+src-plat-$(CONFIG_PPC_83xx) += cuboot-83xx.c fixed-head.S redboot-83xx.c
+src-plat-$(CONFIG_FSL_SOC_BOOKE) += cuboot-85xx.c cuboot-85xx-cpm2.c
+src-plat-$(CONFIG_EMBEDDED6xx) += cuboot-pq2.c cuboot-mpc7448hpc2.c \
+					cuboot-c2k.c gamecube-head.S \
+					gamecube.c wii-head.S wii.c holly.c \
+					prpmc2800.c
+src-plat-$(CONFIG_AMIGAONE) += cuboot-amigaone.c
+src-plat-$(CONFIG_PPC_PS3) += ps3-head.S ps3-hvcall.S ps3.c
+src-plat-$(CONFIG_EPAPR_BOOT) += epapr.c
+
+src-wlib := $(sort $(src-wlib-y))
+src-plat := $(sort $(src-plat-y))
+src-boot := $(src-wlib-y) $(src-plat-y) empty.c
 
 src-boot := $(addprefix $(obj)/, $(src-boot))
 obj-boot := $(addsuffix .o, $(basename $(src-boot)))
-- 
1.7.7.6

Yours Tony

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [PATCH] powerpc/boot: Only build board support files when required.
  2012-04-03  1:55   ` Tony Breeds
@ 2012-04-03  1:57     ` Stephen Rothwell
  0 siblings, 0 replies; 9+ messages in thread
From: Stephen Rothwell @ 2012-04-03  1:57 UTC (permalink / raw)
  To: Tony Breeds
  Cc: Frank Svendsbøe, Wolfgang Denk, robert.karl.berger,
	LinuxPPC-dev

[-- Attachment #1: Type: text/plain, Size: 522 bytes --]

Hi Tony,

On Tue, 3 Apr 2012 11:55:08 +1000 Tony Breeds <tony@bakeyournoodle.com> wrote:
>
> On Tue, Apr 03, 2012 at 11:41:50AM +1000, Stephen Rothwell wrote:
> 
> > It is more ususal in the kernel makefiles to do something like:
> > 
> > src-wlib-$(CONFIG_40x) += 4xx.c planetcore.c
> > src-plat-$(CONFIG_40x) += fixed-head.S ep405.c cuboot-hotfoot.c treeboot-walnut.c \
> 
> Gah you are right.  How about this.

Looks better to me.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [PATCH v2] powerpc/boot: Only build board support files when required.
  2012-04-03  0:55 [PATCH] powerpc/boot: Only build board support files when required Tony Breeds
  2012-04-03  1:00 ` David Gibson
  2012-04-03  1:41 ` Stephen Rothwell
@ 2012-04-04  1:00 ` Tony Breeds
  2012-04-05  3:44 ` [PATCH] " Geoff Levand
  3 siblings, 0 replies; 9+ messages in thread
From: Tony Breeds @ 2012-04-04  1:00 UTC (permalink / raw)
  To: Benjamin Herrenschmidt, LinuxPPC-dev, Josh Boyer
  Cc: Frank Svendsbøe, Wolfgang Denk, robert.karl.berger

[-- Attachment #1: Type: text/plain, Size: 5113 bytes --]

Currently we build all board files regardless of the final zImage
target.  This is sub-optimal (in terms on compilation) and leads to
problems in one platform needlessly causing failures for other
platforms.

Use the Kconfig variables to selectively construct this board files to
build.

Signed-off-by: Tony Breeds <tony@bakeyournoodle.com>
---
 arch/powerpc/boot/Makefile |   56 +++++++++++++++++++++++++++++---------------
 1 files changed, 37 insertions(+), 19 deletions(-)

Changes since v1:
 - I missed a dependancy for ep8248e.c on planetcore.c, this caused the
   6xx_defconfig to fail.
 - Use the sorted and de-duplicated src-wlib and src-plat to setup
   src-boot
 - Built:
	40x/ep405_defconfig		44x/arches_defconfig
	44x/bamboo_defconfig		44x/bluestone_defconfig
	44x/canyonlands_defconfig	44x/currituck_defconfig
	44x/ebony_defconfig		44x/eiger_defconfig
	44x/icon_defconfig		44x/iss476-smp_defconfig
	44x/katmai_defconfig		44x/rainier_defconfig
	44x/redwood_defconfig		44x/sam440ep_defconfig
	44x/sequoia_defconfig		44x/taishan_defconfig
	44x/virtex5_defconfig		44x/warp_defconfig
	86xx/sbc8641d_defconfig		cell_defconfig
	celleb_defconfig		chrp32_defconfig
	g5_defconfig			maple_defconfig
	mpc7448_hpc2_defconfig		mpc83xx_defconfig
	mpc85xx_defconfig		mpc86xx_defconfig
	mpc885_ads_defconfig		pasemi_defconfig
	pmac32_defconfig		powerpc-allmodconfig
	powerpc-allnoconfig		ppc40x_defconfig
	ppc44x_defconfig		ppc64_defconfig
	ppc6xx_defconfig		ps3_defconfig
    Without problems.

diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index e8461cb..c802a90 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -62,26 +62,45 @@ libfdtheader := fdt.h libfdt.h libfdt_internal.h
 $(addprefix $(obj)/,$(libfdt) libfdt-wrapper.o simpleboot.o epapr.o): \
 	$(addprefix $(obj)/,$(libfdtheader))
 
-src-wlib := string.S crt0.S crtsavres.S stdio.c main.c \
+src-wlib-y := string.S crt0.S crtsavres.S stdio.c main.c \
 		$(libfdt) libfdt-wrapper.c \
 		ns16550.c serial.c simple_alloc.c div64.S util.S \
-		gunzip_util.c elf_util.c $(zlib) devtree.c oflib.c ofconsole.c \
-		4xx.c ebony.c mv64x60.c mpsc.c mv64x60_i2c.c cuboot.c bamboo.c \
-		cpm-serial.c stdlib.c mpc52xx-psc.c planetcore.c uartlite.c \
-		fsl-soc.c mpc8xx.c pq2.c ugecon.c
-src-plat := of.c cuboot-52xx.c cuboot-824x.c cuboot-83xx.c cuboot-85xx.c holly.c \
-		cuboot-ebony.c cuboot-hotfoot.c epapr.c treeboot-ebony.c \
-		prpmc2800.c \
-		ps3-head.S ps3-hvcall.S ps3.c treeboot-bamboo.c cuboot-8xx.c \
-		cuboot-pq2.c cuboot-sequoia.c treeboot-walnut.c \
-		cuboot-bamboo.c cuboot-mpc7448hpc2.c cuboot-taishan.c \
-		fixed-head.S ep88xc.c ep405.c cuboot-c2k.c \
-		cuboot-katmai.c cuboot-rainier.c redboot-8xx.c ep8248e.c \
-		cuboot-warp.c cuboot-85xx-cpm2.c cuboot-yosemite.c simpleboot.c \
-		virtex405-head.S virtex.c redboot-83xx.c cuboot-sam440ep.c \
-		cuboot-acadia.c cuboot-amigaone.c cuboot-kilauea.c \
-		gamecube-head.S gamecube.c wii-head.S wii.c treeboot-iss4xx.c \
-		treeboot-currituck.c
+		gunzip_util.c elf_util.c $(zlib) devtree.c stdlib.c \
+		oflib.c ofconsole.c cuboot.c mpsc.c cpm-serial.c \
+		uartlite.c mpc52xx-psc.c
+src-wlib-$(CONFIG_40x) += 4xx.c planetcore.c
+src-wlib-$(CONFIG_44x) += 4xx.c ebony.c bamboo.c
+src-wlib-$(CONFIG_8xx) += mpc8xx.c planetcore.c
+src-wlib-$(CONFIG_PPC_82xx) += pq2.c fsl-soc.c planetcore.c
+src-wlib-$(CONFIG_EMBEDDED6xx) += mv64x60.c mv64x60_i2c.c ugecon.c
+
+src-plat-y := of.c
+src-plat-$(CONFIG_40x) += fixed-head.S ep405.c cuboot-hotfoot.c \
+				treeboot-walnut.c cuboot-acadia.c \
+				cuboot-kilauea.c simpleboot.c \
+				virtex405-head.S virtex.c
+src-plat-$(CONFIG_44x) += treeboot-ebony.c cuboot-ebony.c treeboot-bamboo.c \
+				cuboot-bamboo.c cuboot-sam440ep.c \
+				cuboot-sequoia.c cuboot-rainier.c \
+				cuboot-taishan.c cuboot-katmai.c \
+				cuboot-warp.c cuboot-yosemite.c \
+				treeboot-iss4xx.c treeboot-currituck.c \
+				simpleboot.c fixed-head.S virtex.c
+src-plat-$(CONFIG_8xx) += cuboot-8xx.c fixed-head.S ep88xc.c redboot-8xx.c
+src-plat-$(CONFIG_PPC_MPC52xx) += cuboot-52xx.c
+src-plat-$(CONFIG_PPC_82xx) += cuboot-pq2.c fixed-head.S ep8248e.c cuboot-824x.c
+src-plat-$(CONFIG_PPC_83xx) += cuboot-83xx.c fixed-head.S redboot-83xx.c
+src-plat-$(CONFIG_FSL_SOC_BOOKE) += cuboot-85xx.c cuboot-85xx-cpm2.c
+src-plat-$(CONFIG_EMBEDDED6xx) += cuboot-pq2.c cuboot-mpc7448hpc2.c \
+					cuboot-c2k.c gamecube-head.S \
+					gamecube.c wii-head.S wii.c holly.c \
+					prpmc2800.c
+src-plat-$(CONFIG_AMIGAONE) += cuboot-amigaone.c
+src-plat-$(CONFIG_PPC_PS3) += ps3-head.S ps3-hvcall.S ps3.c
+src-plat-$(CONFIG_EPAPR_BOOT) += epapr.c
+
+src-wlib := $(sort $(src-wlib-y))
+src-plat := $(sort $(src-plat-y))
 src-boot := $(src-wlib) $(src-plat) empty.c
 
 src-boot := $(addprefix $(obj)/, $(src-boot))
@@ -412,4 +431,3 @@ $(wrapper-installed): $(DESTDIR)$(WRAPPER_BINDIR) $(srctree)/$(obj)/wrapper | $(
 	$(call cmd,install_wrapper)
 
 $(obj)/bootwrapper_install: $(all-installed)
-
-- 
1.7.7.6

Yours Tony

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [PATCH] powerpc/boot: Only build board support files when required.
  2012-04-03  0:55 [PATCH] powerpc/boot: Only build board support files when required Tony Breeds
                   ` (2 preceding siblings ...)
  2012-04-04  1:00 ` [PATCH v2] " Tony Breeds
@ 2012-04-05  3:44 ` Geoff Levand
  3 siblings, 0 replies; 9+ messages in thread
From: Geoff Levand @ 2012-04-05  3:44 UTC (permalink / raw)
  To: Tony Breeds
  Cc: Frank Svendsbøe, Wolfgang Denk, robert.karl.berger,
	LinuxPPC-dev

On Tue, 2012-04-03 at 10:55 +1000, Tony Breeds wrote:
> Currently we build all board files regardless of the final zImage
> target.  This is sub-optimal (in terms on compilation) and leads to
> problems in one platform needlessly causing failures for other
> platforms.
> 
> Use the Kconfig variables to selectively construct this board files to
> build.
> 
> +ifeq ($(CONFIG_PPC_PS3),y)
> +src-plat  += ps3-head.S ps3-hvcall.S ps3.c
> +endif

PS3 part looks good.

Acked-by: Geoff Levand <geoff@infradead.org>

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

end of thread, other threads:[~2012-04-05  3:44 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-03  0:55 [PATCH] powerpc/boot: Only build board support files when required Tony Breeds
2012-04-03  1:00 ` David Gibson
2012-04-03  1:26   ` Benjamin Herrenschmidt
2012-04-03  1:31   ` Tony Breeds
2012-04-03  1:41 ` Stephen Rothwell
2012-04-03  1:55   ` Tony Breeds
2012-04-03  1:57     ` Stephen Rothwell
2012-04-04  1:00 ` [PATCH v2] " Tony Breeds
2012-04-05  3:44 ` [PATCH] " Geoff Levand

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