linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* 2.6: spurious recompiles
@ 2003-09-06 20:14 Adrian Bunk
  2003-09-06 22:33 ` Randy.Dunlap
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Adrian Bunk @ 2003-09-06 20:14 UTC (permalink / raw)
  To: Randy.Dunlap, jsimmons, Justin T. Gibbs; +Cc: linux-kernel

When doing a "make" inside an already compiled kernel source there 
shouldn't be anything rebuilt. I've identified three places where this 
isn't the case in recent 2.6 kernels:

1. ikconfig
  CC      kernel/configs.o
even when the .config wasn't changed

2. pnmtologo
The following happens again once, but not when doing a third "make":
  ./scripts/pnmtologo -t mono -n logo_linux_mono -o drivers/video/logo/logo_linux_mono.c drivers/video/logo/logo_linux_mono.pbm
  CC      drivers/video/logo/logo_linux_mono.o
  ./scripts/pnmtologo -t vga16 -n logo_linux_vga16 -o drivers/video/logo/logo_linux_vga16.c drivers/video/logo/logo_linux_vga16.ppm
  CC      drivers/video/logo/logo_linux_vga16.o
  ./scripts/pnmtologo -t clut224 -n logo_linux_clut224 -o drivers/video/logo/logo_linux_clut224.c drivers/video/logo/logo_linux_clut224.ppm
  CC      drivers/video/logo/logo_linux_clut224.o
  LD      drivers/video/logo/built-in.o
  LD      drivers/video/built-in.o

3. aic7xxx
  drivers/scsi/aic7xxx/aicasm/aicasm -Idrivers/scsi/aic7xxx -r 
  drivers/scsi/aic7xxx/aic79xx_reg.h \
                      -p drivers/scsi/aic7xxx/aic79xx_reg_print.c -i 
  aic79xx_osm.h -o drivers/scsi/aic7xxx/aic79xx_seq.h \
                      drivers/scsi/aic7xxx/aic79xx.seq
  drivers/scsi/aic7xxx/aicasm/aicasm: 785 instructions used
  CC      drivers/scsi/aic7xxx/aic79xx_core.o
  CC      drivers/scsi/aic7xxx/aic79xx_pci.o
  CC      drivers/scsi/aic7xxx/aic79xx_reg_print.o
  CC      drivers/scsi/aic7xxx/aic79xx_osm.o
  CC      drivers/scsi/aic7xxx/aic79xx_proc.o
  CC      drivers/scsi/aic7xxx/aic79xx_osm_pci.o
  drivers/scsi/aic7xxx/aicasm/aicasm -Idrivers/scsi/aic7xxx -r 
  drivers/scsi/aic7xxx/aic7xxx_reg.h \
                      -p drivers/scsi/aic7xxx/aic7xxx_reg_print.c -i 
  aic7xxx_osm.h -o drivers/scsi/aic7xxx/aic7xxx_seq.h \
                      drivers/scsi/aic7xxx/aic7xxx.seq
  drivers/scsi/aic7xxx/aicasm/aicasm: 879 instructions used
  CC      drivers/scsi/aic7xxx/aic7xxx_core.o
  CC      drivers/scsi/aic7xxx/aic7xxx_93cx6.o
  CC      drivers/scsi/aic7xxx/aic7770.o
  CC      drivers/scsi/aic7xxx/aic7xxx_pci.o
  CC      drivers/scsi/aic7xxx/aic7xxx_reg_print.o
  CC      drivers/scsi/aic7xxx/aic7xxx_osm.o
  CC      drivers/scsi/aic7xxx/aic7xxx_proc.o
  CC      drivers/scsi/aic7xxx/aic7770_osm.o
  CC      drivers/scsi/aic7xxx/aic7xxx_osm_pci.o
  LD      drivers/scsi/aic7xxx/aic7xxx.o
  LD      drivers/scsi/aic7xxx/aic79xx.o
  LD      drivers/scsi/aic7xxx/built-in.o


cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


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

* Re: 2.6: spurious recompiles
  2003-09-06 20:14 2.6: spurious recompiles Adrian Bunk
@ 2003-09-06 22:33 ` Randy.Dunlap
  2003-09-07 10:37   ` Adrian Bunk
  2003-09-07  5:33 ` Sam Ravnborg
  2003-09-07  5:51 ` Sam Ravnborg
  2 siblings, 1 reply; 11+ messages in thread
From: Randy.Dunlap @ 2003-09-06 22:33 UTC (permalink / raw)
  To: bunk; +Cc: linux-kernel

> When doing a "make" inside an already compiled kernel source there
> shouldn't be anything rebuilt. I've identified three places where this
> isn't the case in recent 2.6 kernels:
>
> 1. ikconfig
>   CC      kernel/configs.o
> even when the .config wasn't changed

This is probably the same thing that Steve Hemminger posted about
yesterday:
http://marc.theaimsgroup.com/?l=linux-kernel&m=106270067411137&w=2

I posted a patch based on Sam Ravnborg's comments that might fix it,
but I haven't verified it yet... The patch is in this message:
http://marc.theaimsgroup.com/?l=linux-kernel&m=106272687506379&w=2

or it may be some other dependency.  I'll look into it.

Thanks,
~Randy




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

* Re: 2.6: spurious recompiles
  2003-09-06 20:14 2.6: spurious recompiles Adrian Bunk
  2003-09-06 22:33 ` Randy.Dunlap
@ 2003-09-07  5:33 ` Sam Ravnborg
  2003-09-08 23:45   ` James Simmons
  2003-09-07  5:51 ` Sam Ravnborg
  2 siblings, 1 reply; 11+ messages in thread
From: Sam Ravnborg @ 2003-09-07  5:33 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Randy.Dunlap, jsimmons, Justin T. Gibbs, linux-kernel

On Sat, Sep 06, 2003 at 10:14:18PM +0200, Adrian Bunk wrote:
> When doing a "make" inside an already compiled kernel source there 
> shouldn't be anything rebuilt. I've identified three places where this 
> isn't the case in recent 2.6 kernels:
> 
> 1. ikconfig
>   CC      kernel/configs.o
> even when the .config wasn't changed

configs.o included compile.h. Compile.h contains date when kernel was
compiled, and gets updated each time there is new .o files.
That is fixed in patch sent to Randy.

> 2. pnmtologo
> The following happens again once, but not when doing a third "make":
>   ./scripts/pnmtologo -t mono -n logo_linux_mono -o drivers/video/logo/logo_linux_mono.c drivers/video/logo/logo_linux_mono.pbm
>   CC      drivers/video/logo/logo_linux_mono.o
>   ./scripts/pnmtologo -t vga16 -n logo_linux_vga16 -o drivers/video/logo/logo_linux_vga16.c drivers/video/logo/logo_linux_vga16.ppm
>   CC      drivers/video/logo/logo_linux_vga16.o
>   ./scripts/pnmtologo -t clut224 -n logo_linux_clut224 -o drivers/video/logo/logo_linux_clut224.c drivers/video/logo/logo_linux_clut224.ppm
>   CC      drivers/video/logo/logo_linux_clut224.o
>   LD      drivers/video/logo/built-in.o
>   LD      drivers/video/built-in.o

I have sent a patch to James Simmons some time ago. I will try to dig it
up and  see if it still applies, and fixes the problem.


> 3. aic7xxx
>   drivers/scsi/aic7xxx/aicasm/aicasm -Idrivers/scsi/aic7xxx -r 
>   drivers/scsi/aic7xxx/aic79xx_reg.h \
>                       -p drivers/scsi/aic7xxx/aic79xx_reg_print.c -i 
>   aic79xx_osm.h -o drivers/scsi/aic7xxx/aic79xx_seq.h \
>                       drivers/scsi/aic7xxx/aic79xx.seq
>   drivers/scsi/aic7xxx/aicasm/aicasm: 785 instructions used
>   CC      drivers/scsi/aic7xxx/aic79xx_core.o

New to me, I will take a look.

	Sam

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

* Re: 2.6: spurious recompiles
  2003-09-06 20:14 2.6: spurious recompiles Adrian Bunk
  2003-09-06 22:33 ` Randy.Dunlap
  2003-09-07  5:33 ` Sam Ravnborg
@ 2003-09-07  5:51 ` Sam Ravnborg
  2003-09-07  7:00   ` Sam Ravnborg
  2 siblings, 1 reply; 11+ messages in thread
From: Sam Ravnborg @ 2003-09-07  5:51 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Randy.Dunlap, jsimmons, Justin T. Gibbs, linux-kernel

On Sat, Sep 06, 2003 at 10:14:18PM +0200, Adrian Bunk wrote:
> 2. pnmtologo
> The following happens again once, but not when doing a third "make":
>   ./scripts/pnmtologo -t mono -n logo_linux_mono -o drivers/video/logo/logo_linux_mono.c drivers/video/logo/logo_linux_mono.pbm

Would you mind to give this patch a spin. Only lightly tested here.

===== drivers/video/aty/Makefile 1.10 vs edited =====
--- 1.10/drivers/video/aty/Makefile	Thu May  1 18:32:15 2003
+++ edited/drivers/video/aty/Makefile	Sun Sep  7 07:45:54 2003
@@ -4,4 +4,3 @@
 atyfb-y				:= atyfb_base.o mach64_accel.o
 atyfb-$(CONFIG_FB_ATY_GX)	+= mach64_gx.o
 atyfb-$(CONFIG_FB_ATY_CT)	+= mach64_ct.o mach64_cursor.o
-atyfb-objs			:= $(atyfb-y)
===== drivers/video/console/Makefile 1.15 vs edited =====
--- 1.15/drivers/video/console/Makefile	Mon Feb  3 23:19:38 2003
+++ edited/drivers/video/console/Makefile	Sun Sep  7 07:45:55 2003
@@ -3,18 +3,16 @@
 # Rewritten to use lists instead of if-statements.
 
 # Font handling
-font-objs := fonts.o
+font-y := fonts.o
 
-font-objs-$(CONFIG_FONT_SUN8x16)   += font_sun8x16.o
-font-objs-$(CONFIG_FONT_SUN12x22)  += font_sun12x22.o
-font-objs-$(CONFIG_FONT_8x8)       += font_8x8.o
-font-objs-$(CONFIG_FONT_8x16)      += font_8x16.o
-font-objs-$(CONFIG_FONT_6x11)      += font_6x11.o
-font-objs-$(CONFIG_FONT_PEARL_8x8) += font_pearl_8x8.o
-font-objs-$(CONFIG_FONT_ACORN_8x8) += font_acorn_8x8.o
-font-objs-$(CONFIG_FONT_MINI_4x6)  += font_mini_4x6.o
-
-font-objs += $(font-objs-y)
+font-$(CONFIG_FONT_SUN8x16)   += font_sun8x16.o
+font-$(CONFIG_FONT_SUN12x22)  += font_sun12x22.o
+font-$(CONFIG_FONT_8x8)       += font_8x8.o
+font-$(CONFIG_FONT_8x16)      += font_8x16.o
+font-$(CONFIG_FONT_6x11)      += font_6x11.o
+font-$(CONFIG_FONT_PEARL_8x8) += font_pearl_8x8.o
+font-$(CONFIG_FONT_ACORN_8x8) += font_acorn_8x8.o
+font-$(CONFIG_FONT_MINI_4x6)  += font_mini_4x6.o
 
 # Each configuration option enables a list of files.
 
@@ -31,8 +29,11 @@
 # Files generated that shall be removed upon make clean
 clean-files := promcon_tbl.c
 
-$(obj)/promcon_tbl.c: $(src)/prom.uni
-	$(objtree)/scripts/conmakehash $< | \
+
+quiet_cmd_promtbl = GEN     $@
+      cmd_promtbl = scripts/conmakehash $< | \
 	sed -e '/#include <[^>]*>/p' -e 's/types/init/' \
 	    -e 's/dfont\(_uni.*\]\)/promfont\1 __initdata/' > $@
 
+$(obj)/promcon_tbl.c: $(src)/prom.uni
+	$(call cmd,promtbl)
===== drivers/video/i810/Makefile 1.2 vs edited =====
--- 1.2/drivers/video/i810/Makefile	Wed Jan  1 14:00:16 2003
+++ edited/drivers/video/i810/Makefile	Sun Sep  7 07:45:56 2003
@@ -1,15 +1,8 @@
 #
 # Makefile for the Intel 810/815 framebuffer driver
 #
-# Note! Dependencies are done automagically by 'make dep', which also
-# removes any old dependencies. DON'T put your own dependencies here
-# unless it's something special (ie not a .c file).
-#
-# Note 2! The CFLAGS definitions are now in the main makefile...
-
 
 obj-$(CONFIG_FB_I810)		+= i810fb.o
-
 
 i810fb-objs                     := i810_main.o i810_accel.o
 
===== drivers/video/logo/Makefile 1.3 vs edited =====
--- 1.3/drivers/video/logo/Makefile	Mon Jul 21 23:30:38 2003
+++ edited/drivers/video/logo/Makefile	Sun Sep  7 07:47:00 2003
@@ -25,18 +25,23 @@
 
 # How to generate them
 
+# Create commands like "pnmtologo -t mono -n logo_mac_mono -o ..."
+quiet_cmd_logo = LOGO    $@
+      cmd_logo = scripts/pnmtologo \
+		 -t $(patsubst $*_%,%,$(notdir $(basename $<))) \
+		 -n $(notdir $(basename $<)) -o $@ $<
+
 $(obj)/%_mono.c:	$(src)/%_mono.pbm
-		$(objtree)/scripts/pnmtologo -t mono -n $*_mono -o $@ $<
+	$(call cmd,logo)
 
 $(obj)/%_vga16.c:	$(src)/%_vga16.ppm
-		$(objtree)/scripts/pnmtologo -t vga16 -n $*_vga16 -o $@ $<
+	$(call cmd,logo)
 
 $(obj)/%_clut224.c:	$(src)/%_clut224.ppm
-		$(objtree)/scripts/pnmtologo -t clut224 -n $*_clut224 -o $@ $<
+	$(call cmd,logo)
 
 $(obj)/%_gray256.c:	$(src)/%_gray256.pgm
-		$(objtree)/scripts/pnmtologo -t gray256 -n $*_gray256 -o $@ $<
-
+	$(call cmd,logo)
 
 # Files generated that shall be removed upon make clean
 clean-files := *_mono.c *_vga16.c *_clut224.c *_gray256.c

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

* Re: 2.6: spurious recompiles
  2003-09-07  5:51 ` Sam Ravnborg
@ 2003-09-07  7:00   ` Sam Ravnborg
  2003-09-07 10:17     ` Adrian Bunk
  2003-09-08 23:45     ` James Simmons
  0 siblings, 2 replies; 11+ messages in thread
From: Sam Ravnborg @ 2003-09-07  7:00 UTC (permalink / raw)
  To: Adrian Bunk, Randy.Dunlap, jsimmons, Justin T. Gibbs, linux-kernel

On Sun, Sep 07, 2003 at 07:51:44AM +0200, Sam Ravnborg wrote:
> On Sat, Sep 06, 2003 at 10:14:18PM +0200, Adrian Bunk wrote:
> > 2. pnmtologo
> > The following happens again once, but not when doing a third "make":
> >   ./scripts/pnmtologo -t mono -n logo_linux_mono -o drivers/video/logo/logo_linux_mono.c drivers/video/logo/logo_linux_mono.pbm
> 
> Would you mind to give this patch a spin. Only lightly tested here.
Tested it a bit more, it was not good. Corrected patch follows.
I had to spell out the dependencies, otherwise make saw them
as implicit targets, and deleted the .c files afterwards.

Btw the patch contains some general clean-up as well, unrelated to
the 'spurious recompile' issue.

	Sam

===== drivers/video/aty/Makefile 1.10 vs edited =====
--- 1.10/drivers/video/aty/Makefile	Thu May  1 18:32:15 2003
+++ edited/drivers/video/aty/Makefile	Sun Sep  7 07:45:54 2003
@@ -4,4 +4,3 @@
 atyfb-y				:= atyfb_base.o mach64_accel.o
 atyfb-$(CONFIG_FB_ATY_GX)	+= mach64_gx.o
 atyfb-$(CONFIG_FB_ATY_CT)	+= mach64_ct.o mach64_cursor.o
-atyfb-objs			:= $(atyfb-y)
===== drivers/video/console/Makefile 1.15 vs edited =====
--- 1.15/drivers/video/console/Makefile	Mon Feb  3 23:19:38 2003
+++ edited/drivers/video/console/Makefile	Sun Sep  7 07:45:55 2003
@@ -3,18 +3,16 @@
 # Rewritten to use lists instead of if-statements.
 
 # Font handling
-font-objs := fonts.o
+font-y := fonts.o
 
-font-objs-$(CONFIG_FONT_SUN8x16)   += font_sun8x16.o
-font-objs-$(CONFIG_FONT_SUN12x22)  += font_sun12x22.o
-font-objs-$(CONFIG_FONT_8x8)       += font_8x8.o
-font-objs-$(CONFIG_FONT_8x16)      += font_8x16.o
-font-objs-$(CONFIG_FONT_6x11)      += font_6x11.o
-font-objs-$(CONFIG_FONT_PEARL_8x8) += font_pearl_8x8.o
-font-objs-$(CONFIG_FONT_ACORN_8x8) += font_acorn_8x8.o
-font-objs-$(CONFIG_FONT_MINI_4x6)  += font_mini_4x6.o
-
-font-objs += $(font-objs-y)
+font-$(CONFIG_FONT_SUN8x16)   += font_sun8x16.o
+font-$(CONFIG_FONT_SUN12x22)  += font_sun12x22.o
+font-$(CONFIG_FONT_8x8)       += font_8x8.o
+font-$(CONFIG_FONT_8x16)      += font_8x16.o
+font-$(CONFIG_FONT_6x11)      += font_6x11.o
+font-$(CONFIG_FONT_PEARL_8x8) += font_pearl_8x8.o
+font-$(CONFIG_FONT_ACORN_8x8) += font_acorn_8x8.o
+font-$(CONFIG_FONT_MINI_4x6)  += font_mini_4x6.o
 
 # Each configuration option enables a list of files.
 
@@ -31,8 +29,11 @@
 # Files generated that shall be removed upon make clean
 clean-files := promcon_tbl.c
 
-$(obj)/promcon_tbl.c: $(src)/prom.uni
-	$(objtree)/scripts/conmakehash $< | \
+
+quiet_cmd_promtbl = GEN     $@
+      cmd_promtbl = scripts/conmakehash $< | \
 	sed -e '/#include <[^>]*>/p' -e 's/types/init/' \
 	    -e 's/dfont\(_uni.*\]\)/promfont\1 __initdata/' > $@
 
+$(obj)/promcon_tbl.c: $(src)/prom.uni
+	$(call cmd,promtbl)
===== drivers/video/i810/Makefile 1.2 vs edited =====
--- 1.2/drivers/video/i810/Makefile	Wed Jan  1 14:00:16 2003
+++ edited/drivers/video/i810/Makefile	Sun Sep  7 07:45:56 2003
@@ -1,15 +1,8 @@
 #
 # Makefile for the Intel 810/815 framebuffer driver
 #
-# Note! Dependencies are done automagically by 'make dep', which also
-# removes any old dependencies. DON'T put your own dependencies here
-# unless it's something special (ie not a .c file).
-#
-# Note 2! The CFLAGS definitions are now in the main makefile...
-
 
 obj-$(CONFIG_FB_I810)		+= i810fb.o
-
 
 i810fb-objs                     := i810_main.o i810_accel.o
 
===== drivers/video/logo/Makefile 1.3 vs edited =====
--- 1.3/drivers/video/logo/Makefile	Mon Jul 21 23:30:38 2003
+++ edited/drivers/video/logo/Makefile	Sun Sep  7 08:57:22 2003
@@ -14,29 +14,38 @@
 obj-$(CONFIG_LOGO_SUPERH_CLUT224)	+= logo_superh_clut224.o
 
 # Dependencies on generated files need to be listed explicitly
-
-$(obj)/%_mono.o: $(src)/%_mono.c
-
-$(obj)/%_vga16.o: $(src)/%_vga16.c
-
-$(obj)/%_clut224.o: $(src)/%_clut224.c
-
-$(obj)/%_gray256.o: $(src)/%_gray256.c
+# mono logo's
+$(obj)/logo_linux_mono.o:	$(obj)/logo_linux_mono.c
+$(obj)/logo_superh_mono.o:	$(obj)/logo_superh_mono.c
+
+# vga16 logo's
+$(obj)/logo_linux_vga16.o:	$(obj)/logo_linux_vga16.c
+$(obj)/logo_superh_vga16.o:	$(obj)/logo_superh_vga16.c
+
+# clut224 logo's
+$(obj)/logo_linux_clut224.o:	$(obj)/logo_linux_clut224.c
+$(obj)/logo_dec_clut224.o:	$(obj)/logo_dec_clut224.c
+$(obj)/logo_mac_clut224.o:	$(obj)/logo_mac_clut224.c
+$(obj)/logo_sgi_clut224.o:	$(obj)/logo_sgi_clut224.c
+$(obj)/logo_sun_clut224.o:	$(obj)/logo_sun_clut224.c
+$(obj)/logo_superh_clut224.o:	$(obj)/logo_superh_clut224.c
 
 # How to generate them
 
+# Create commands like "pnmtologo -t mono -n logo_mac_mono -o ..."
+quiet_cmd_logo = LOGO    $@
+      cmd_logo = scripts/pnmtologo \
+		 -t $(patsubst $*_%,%,$(notdir $(basename $<))) \
+		 -n $(notdir $(basename $<)) -o $@ $<
+
 $(obj)/%_mono.c:	$(src)/%_mono.pbm
-		$(objtree)/scripts/pnmtologo -t mono -n $*_mono -o $@ $<
+	$(call cmd,logo)
 
 $(obj)/%_vga16.c:	$(src)/%_vga16.ppm
-		$(objtree)/scripts/pnmtologo -t vga16 -n $*_vga16 -o $@ $<
+	$(call cmd,logo)
 
 $(obj)/%_clut224.c:	$(src)/%_clut224.ppm
-		$(objtree)/scripts/pnmtologo -t clut224 -n $*_clut224 -o $@ $<
-
-$(obj)/%_gray256.c:	$(src)/%_gray256.pgm
-		$(objtree)/scripts/pnmtologo -t gray256 -n $*_gray256 -o $@ $<
-
+	$(call cmd,logo)
 
 # Files generated that shall be removed upon make clean
-clean-files := *_mono.c *_vga16.c *_clut224.c *_gray256.c
+clean-files := *_mono.c *_vga16.c *_clut224.c 

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

* Re: 2.6: spurious recompiles
  2003-09-07  7:00   ` Sam Ravnborg
@ 2003-09-07 10:17     ` Adrian Bunk
  2003-09-08 23:45     ` James Simmons
  1 sibling, 0 replies; 11+ messages in thread
From: Adrian Bunk @ 2003-09-07 10:17 UTC (permalink / raw)
  To: jsimmons, linux-kernel

On Sun, Sep 07, 2003 at 09:00:25AM +0200, Sam Ravnborg wrote:
> On Sun, Sep 07, 2003 at 07:51:44AM +0200, Sam Ravnborg wrote:
> > On Sat, Sep 06, 2003 at 10:14:18PM +0200, Adrian Bunk wrote:
> > > 2. pnmtologo
> > > The following happens again once, but not when doing a third "make":
> > >   ./scripts/pnmtologo -t mono -n logo_linux_mono -o drivers/video/logo/logo_linux_mono.c drivers/video/logo/logo_linux_mono.pbm
> > 
> > Would you mind to give this patch a spin. Only lightly tested here.
> Tested it a bit more, it was not good. Corrected patch follows.
> I had to spell out the dependencies, otherwise make saw them
> as implicit targets, and deleted the .c files afterwards.

Thanks, this patch seems to fix it.

> Btw the patch contains some general clean-up as well, unrelated to
> the 'spurious recompile' issue.

These are the places where I got rejects in 2.6.0-test4-mm6 (these 
changes are already in the -mm tree).

> 	Sam
>...

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


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

* Re: 2.6: spurious recompiles
  2003-09-06 22:33 ` Randy.Dunlap
@ 2003-09-07 10:37   ` Adrian Bunk
  0 siblings, 0 replies; 11+ messages in thread
From: Adrian Bunk @ 2003-09-07 10:37 UTC (permalink / raw)
  To: Randy.Dunlap; +Cc: linux-kernel

On Sat, Sep 06, 2003 at 03:33:21PM -0700, Randy.Dunlap wrote:
> > When doing a "make" inside an already compiled kernel source there
> > shouldn't be anything rebuilt. I've identified three places where this
> > isn't the case in recent 2.6 kernels:
> >
> > 1. ikconfig
> >   CC      kernel/configs.o
> > even when the .config wasn't changed
>...
> I posted a patch based on Sam Ravnborg's comments that might fix it,
> but I haven't verified it yet... The patch is in this message:
> http://marc.theaimsgroup.com/?l=linux-kernel&m=106272687506379&w=2
>...

It seems I missed this mail.

The patch in this mail seems to fix the recompiles.

> Thanks,
> ~Randy

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


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

* Re: 2.6: spurious recompiles
  2003-09-07  5:33 ` Sam Ravnborg
@ 2003-09-08 23:45   ` James Simmons
  0 siblings, 0 replies; 11+ messages in thread
From: James Simmons @ 2003-09-08 23:45 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Adrian Bunk, Randy.Dunlap, Justin T. Gibbs, linux-kernel


> > 2. pnmtologo
> > The following happens again once, but not when doing a third "make":
> >   ./scripts/pnmtologo -t mono -n logo_linux_mono -o drivers/video/logo/logo_linux_mono.c drivers/video/logo/logo_linux_mono.pbm
> >   CC      drivers/video/logo/logo_linux_mono.o
> >   ./scripts/pnmtologo -t vga16 -n logo_linux_vga16 -o drivers/video/logo/logo_linux_vga16.c drivers/video/logo/logo_linux_vga16.ppm
> >   CC      drivers/video/logo/logo_linux_vga16.o
> >   ./scripts/pnmtologo -t clut224 -n logo_linux_clut224 -o drivers/video/logo/logo_linux_clut224.c drivers/video/logo/logo_linux_clut224.ppm
> >   CC      drivers/video/logo/logo_linux_clut224.o
> >   LD      drivers/video/logo/built-in.o
> >   LD      drivers/video/built-in.o
> 
> I have sent a patch to James Simmons some time ago. I will try to dig it
> up and  see if it still applies, and fixes the problem.

I have the patch in the fbdev BK tree.



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

* Re: 2.6: spurious recompiles
  2003-09-07  7:00   ` Sam Ravnborg
  2003-09-07 10:17     ` Adrian Bunk
@ 2003-09-08 23:45     ` James Simmons
  1 sibling, 0 replies; 11+ messages in thread
From: James Simmons @ 2003-09-08 23:45 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: Adrian Bunk, Randy.Dunlap, Justin T. Gibbs, linux-kernel


I have most of this patch already. I applied your logo Makefile changes. I 
will test them tonight.


> ===== drivers/video/aty/Makefile 1.10 vs edited =====
> --- 1.10/drivers/video/aty/Makefile	Thu May  1 18:32:15 2003
> +++ edited/drivers/video/aty/Makefile	Sun Sep  7 07:45:54 2003
> @@ -4,4 +4,3 @@
>  atyfb-y				:= atyfb_base.o mach64_accel.o
>  atyfb-$(CONFIG_FB_ATY_GX)	+= mach64_gx.o
>  atyfb-$(CONFIG_FB_ATY_CT)	+= mach64_ct.o mach64_cursor.o
> -atyfb-objs			:= $(atyfb-y)
> ===== drivers/video/console/Makefile 1.15 vs edited =====
> --- 1.15/drivers/video/console/Makefile	Mon Feb  3 23:19:38 2003
> +++ edited/drivers/video/console/Makefile	Sun Sep  7 07:45:55 2003
> @@ -3,18 +3,16 @@
>  # Rewritten to use lists instead of if-statements.
>  
>  # Font handling
> -font-objs := fonts.o
> +font-y := fonts.o
>  
> -font-objs-$(CONFIG_FONT_SUN8x16)   += font_sun8x16.o
> -font-objs-$(CONFIG_FONT_SUN12x22)  += font_sun12x22.o
> -font-objs-$(CONFIG_FONT_8x8)       += font_8x8.o
> -font-objs-$(CONFIG_FONT_8x16)      += font_8x16.o
> -font-objs-$(CONFIG_FONT_6x11)      += font_6x11.o
> -font-objs-$(CONFIG_FONT_PEARL_8x8) += font_pearl_8x8.o
> -font-objs-$(CONFIG_FONT_ACORN_8x8) += font_acorn_8x8.o
> -font-objs-$(CONFIG_FONT_MINI_4x6)  += font_mini_4x6.o
> -
> -font-objs += $(font-objs-y)
> +font-$(CONFIG_FONT_SUN8x16)   += font_sun8x16.o
> +font-$(CONFIG_FONT_SUN12x22)  += font_sun12x22.o
> +font-$(CONFIG_FONT_8x8)       += font_8x8.o
> +font-$(CONFIG_FONT_8x16)      += font_8x16.o
> +font-$(CONFIG_FONT_6x11)      += font_6x11.o
> +font-$(CONFIG_FONT_PEARL_8x8) += font_pearl_8x8.o
> +font-$(CONFIG_FONT_ACORN_8x8) += font_acorn_8x8.o
> +font-$(CONFIG_FONT_MINI_4x6)  += font_mini_4x6.o
>  
>  # Each configuration option enables a list of files.
>  
> @@ -31,8 +29,11 @@
>  # Files generated that shall be removed upon make clean
>  clean-files := promcon_tbl.c
>  
> -$(obj)/promcon_tbl.c: $(src)/prom.uni
> -	$(objtree)/scripts/conmakehash $< | \
> +
> +quiet_cmd_promtbl = GEN     $@
> +      cmd_promtbl = scripts/conmakehash $< | \
>  	sed -e '/#include <[^>]*>/p' -e 's/types/init/' \
>  	    -e 's/dfont\(_uni.*\]\)/promfont\1 __initdata/' > $@
>  
> +$(obj)/promcon_tbl.c: $(src)/prom.uni
> +	$(call cmd,promtbl)
> ===== drivers/video/i810/Makefile 1.2 vs edited =====
> --- 1.2/drivers/video/i810/Makefile	Wed Jan  1 14:00:16 2003
> +++ edited/drivers/video/i810/Makefile	Sun Sep  7 07:45:56 2003
> @@ -1,15 +1,8 @@
>  #
>  # Makefile for the Intel 810/815 framebuffer driver
>  #
> -# Note! Dependencies are done automagically by 'make dep', which also
> -# removes any old dependencies. DON'T put your own dependencies here
> -# unless it's something special (ie not a .c file).
> -#
> -# Note 2! The CFLAGS definitions are now in the main makefile...
> -
>  
>  obj-$(CONFIG_FB_I810)		+= i810fb.o
> -
>  
>  i810fb-objs                     := i810_main.o i810_accel.o
>  
> ===== drivers/video/logo/Makefile 1.3 vs edited =====
> --- 1.3/drivers/video/logo/Makefile	Mon Jul 21 23:30:38 2003
> +++ edited/drivers/video/logo/Makefile	Sun Sep  7 08:57:22 2003
> @@ -14,29 +14,38 @@
>  obj-$(CONFIG_LOGO_SUPERH_CLUT224)	+= logo_superh_clut224.o
>  
>  # Dependencies on generated files need to be listed explicitly
> -
> -$(obj)/%_mono.o: $(src)/%_mono.c
> -
> -$(obj)/%_vga16.o: $(src)/%_vga16.c
> -
> -$(obj)/%_clut224.o: $(src)/%_clut224.c
> -
> -$(obj)/%_gray256.o: $(src)/%_gray256.c
> +# mono logo's
> +$(obj)/logo_linux_mono.o:	$(obj)/logo_linux_mono.c
> +$(obj)/logo_superh_mono.o:	$(obj)/logo_superh_mono.c
> +
> +# vga16 logo's
> +$(obj)/logo_linux_vga16.o:	$(obj)/logo_linux_vga16.c
> +$(obj)/logo_superh_vga16.o:	$(obj)/logo_superh_vga16.c
> +
> +# clut224 logo's
> +$(obj)/logo_linux_clut224.o:	$(obj)/logo_linux_clut224.c
> +$(obj)/logo_dec_clut224.o:	$(obj)/logo_dec_clut224.c
> +$(obj)/logo_mac_clut224.o:	$(obj)/logo_mac_clut224.c
> +$(obj)/logo_sgi_clut224.o:	$(obj)/logo_sgi_clut224.c
> +$(obj)/logo_sun_clut224.o:	$(obj)/logo_sun_clut224.c
> +$(obj)/logo_superh_clut224.o:	$(obj)/logo_superh_clut224.c
>  
>  # How to generate them
>  
> +# Create commands like "pnmtologo -t mono -n logo_mac_mono -o ..."
> +quiet_cmd_logo = LOGO    $@
> +      cmd_logo = scripts/pnmtologo \
> +		 -t $(patsubst $*_%,%,$(notdir $(basename $<))) \
> +		 -n $(notdir $(basename $<)) -o $@ $<
> +
>  $(obj)/%_mono.c:	$(src)/%_mono.pbm
> -		$(objtree)/scripts/pnmtologo -t mono -n $*_mono -o $@ $<
> +	$(call cmd,logo)
>  
>  $(obj)/%_vga16.c:	$(src)/%_vga16.ppm
> -		$(objtree)/scripts/pnmtologo -t vga16 -n $*_vga16 -o $@ $<
> +	$(call cmd,logo)
>  
>  $(obj)/%_clut224.c:	$(src)/%_clut224.ppm
> -		$(objtree)/scripts/pnmtologo -t clut224 -n $*_clut224 -o $@ $<
> -
> -$(obj)/%_gray256.c:	$(src)/%_gray256.pgm
> -		$(objtree)/scripts/pnmtologo -t gray256 -n $*_gray256 -o $@ $<
> -
> +	$(call cmd,logo)
>  
>  # Files generated that shall be removed upon make clean
> -clean-files := *_mono.c *_vga16.c *_clut224.c *_gray256.c
> +clean-files := *_mono.c *_vga16.c *_clut224.c 
> 


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

* Re: 2.6: spurious recompiles
  2003-09-06 22:44   ` Andi Kleen
@ 2003-09-07  5:36     ` Sam Ravnborg
  0 siblings, 0 replies; 11+ messages in thread
From: Sam Ravnborg @ 2003-09-07  5:36 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Randy.Dunlap, linux-kernel

On Sun, Sep 07, 2003 at 12:44:24AM +0200, Andi Kleen wrote:
> "Randy.Dunlap" <rddunlap@osdl.org> writes:
> 
> x86-64 has the same problem. It always rebuilds arch/x86_64/ia32/vsyscall32.so,
> no matter if it has changed or not. I have not figured out why it does that.
> 
> vsyscall.S is an assembly file which depends on asm/offset.h, which 
> is regenerated each build. But the regeneration is written in a way to 
> not trigger rebuilds when nothing has changed. That works for everything
> else, just apparently not for the vsyscall.S file.

Hi Andi, I recall I have a mail from you about this.
Last time I looked I could not figure out what was wrong, but let
me try again.
Could you send me the output of "make V=1" for an otherwise clean compile.

	Sam

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

* Re: 2.6: spurious recompiles
       [not found] ` <33384.4.4.25.4.1062887601.squirrel@www.osdl.org.suse.lists.linux.kernel>
@ 2003-09-06 22:44   ` Andi Kleen
  2003-09-07  5:36     ` Sam Ravnborg
  0 siblings, 1 reply; 11+ messages in thread
From: Andi Kleen @ 2003-09-06 22:44 UTC (permalink / raw)
  To: Randy.Dunlap; +Cc: linux-kernel

"Randy.Dunlap" <rddunlap@osdl.org> writes:

> > When doing a "make" inside an already compiled kernel source there
> > shouldn't be anything rebuilt. I've identified three places where this
> > isn't the case in recent 2.6 kernels:
> >
> > 1. ikconfig
> >   CC      kernel/configs.o
> > even when the .config wasn't changed
> 
> This is probably the same thing that Steve Hemminger posted about
> yesterday:
> http://marc.theaimsgroup.com/?l=linux-kernel&m=106270067411137&w=2
> 
> I posted a patch based on Sam Ravnborg's comments that might fix it,
> but I haven't verified it yet... The patch is in this message:
> http://marc.theaimsgroup.com/?l=linux-kernel&m=106272687506379&w=2
> 
> or it may be some other dependency.  I'll look into it.

x86-64 has the same problem. It always rebuilds arch/x86_64/ia32/vsyscall32.so,
no matter if it has changed or not. I have not figured out why it does that.

vsyscall.S is an assembly file which depends on asm/offset.h, which 
is regenerated each build. But the regeneration is written in a way to 
not trigger rebuilds when nothing has changed. That works for everything
else, just apparently not for the vsyscall.S file.

-Andi

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

end of thread, other threads:[~2003-09-08 23:46 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-09-06 20:14 2.6: spurious recompiles Adrian Bunk
2003-09-06 22:33 ` Randy.Dunlap
2003-09-07 10:37   ` Adrian Bunk
2003-09-07  5:33 ` Sam Ravnborg
2003-09-08 23:45   ` James Simmons
2003-09-07  5:51 ` Sam Ravnborg
2003-09-07  7:00   ` Sam Ravnborg
2003-09-07 10:17     ` Adrian Bunk
2003-09-08 23:45     ` James Simmons
     [not found] <20030906201417.GI14436@fs.tum.de.suse.lists.linux.kernel>
     [not found] ` <33384.4.4.25.4.1062887601.squirrel@www.osdl.org.suse.lists.linux.kernel>
2003-09-06 22:44   ` Andi Kleen
2003-09-07  5:36     ` Sam Ravnborg

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