public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* 2.5.51 breaks ALSA AWE32
@ 2002-12-10 11:58 John Bradford
  2002-12-10 20:53 ` Sam Ravnborg
  0 siblings, 1 reply; 8+ messages in thread
From: John Bradford @ 2002-12-10 11:58 UTC (permalink / raw)
  To: linux-kernel

make -f scripts/Makefile.build obj=sound/synth/emux
   ld -m elf_i386  -r -o sound/synth/built-in.o sound/synth/emux/built-in.o
ld: cannot open sound/synth/emux/built-in.o: No such file or directory
make[2]: *** [sound/synth/built-in.o] Error 1
make[1]: *** [sound/synth] Error 2
make: *** [sound] Error 2

#
# Advanced Linux Sound Architecture
#
CONFIG_SND=y
# CONFIG_SND_SEQUENCER is not set
# CONFIG_SND_OSSEMUL is not set
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set

#
# Generic devices
#
CONFIG_SND_DUMMY=y
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set

#
# ISA devices
#
# CONFIG_SND_AD1848 is not set
# CONFIG_SND_CS4231 is not set
# CONFIG_SND_CS4232 is not set
# CONFIG_SND_CS4236 is not set
# CONFIG_SND_ES1688 is not set
# CONFIG_SND_ES18XX is not set
# CONFIG_SND_GUSCLASSIC is not set
# CONFIG_SND_GUSEXTREME is not set
# CONFIG_SND_GUSMAX is not set
# CONFIG_SND_INTERWAVE is not set
# CONFIG_SND_INTERWAVE_STB is not set
# CONFIG_SND_OPTI92X_AD1848 is not set
# CONFIG_SND_OPTI92X_CS4231 is not set
# CONFIG_SND_OPTI93X is not set
# CONFIG_SND_SB8 is not set
# CONFIG_SND_SB16 is not set
CONFIG_SND_SBAWE=y
# CONFIG_SND_SB16_CSP is not set
# CONFIG_SND_WAVEFRONT is not set
# CONFIG_SND_CMI8330 is not set
# CONFIG_SND_OPL3SA2 is not set
# CONFIG_SND_SGALAXY is not set

John

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

* Re: 2.5.51 breaks ALSA AWE32
  2002-12-10 11:58 2.5.51 breaks ALSA AWE32 John Bradford
@ 2002-12-10 20:53 ` Sam Ravnborg
  2002-12-11 13:47   ` John Bradford
  0 siblings, 1 reply; 8+ messages in thread
From: Sam Ravnborg @ 2002-12-10 20:53 UTC (permalink / raw)
  To: John Bradford, Jaroslav Kysela; +Cc: linux-kernel, Kai Germaschewski

On Tue, Dec 10, 2002 at 11:58:28AM +0000, John Bradford wrote:
> make -f scripts/Makefile.build obj=sound/synth/emux
>    ld -m elf_i386  -r -o sound/synth/built-in.o sound/synth/emux/built-in.o
> ld: cannot open sound/synth/emux/built-in.o: No such file or directory
> make[2]: *** [sound/synth/built-in.o] Error 1
> make[1]: *** [sound/synth] Error 2
> make: *** [sound] Error 2

kbuild in 2.5.51 requires that there exist one variable named obj-*
before built-in.o is generated.
In the Makefile for sound/synth/emux the variables obj-* is only set if
CONFIG_SND_SEQUENCER is set to y or m.

The best approach may be a derived bool defined in Kconfig, but
an alterneative solution is to rearrange the Makefile a bit.

Try the following (untested) patch.

	Sam

===== Makefile 1.4 vs edited =====
--- 1.4/sound/synth/emux/Makefile	Tue Jun 18 11:16:20 2002
+++ edited/Makefile	Tue Dec 10 21:49:49 2002
@@ -5,16 +5,13 @@
 
 export-objs  := emux.o
 
+snd-emux-synth-objs-$(CONFIG_SND_SEQUENCER_OSS) := emux_oss.o
 snd-emux-synth-objs := emux.o emux_synth.o emux_seq.o emux_nrpn.o \
-		       emux_effect.o emux_proc.o soundfont.o
-ifeq ($(CONFIG_SND_SEQUENCER_OSS),y)
-  snd-emux-synth-objs += emux_oss.o
-endif
+		       emux_effect.o emux_proc.o soundfont.o \
+		       $(snd-emux-synth-objs-y)
 
 # Toplevel Module Dependency
-ifeq ($(subst m,y,$(CONFIG_SND_SEQUENCER)),y)
-  obj-$(CONFIG_SND_SBAWE) += snd-emux-synth.o
-  obj-$(CONFIG_SND_EMU10K1) += snd-emux-synth.o
-endif
+sequencer-$(CONFIG_SND_SEQUENCER) += snd-emux-synth.o
+obj-$(CONFIG_SND_SBAWE)   := $(sequencer-y) $(sequencer-m)
+obj-$(CONFIG_SND_EMU10K1) += $(sequencer-y) $(sequencer-m)
 
-include $(TOPDIR)/Rules.make

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

* Re: 2.5.51 breaks ALSA AWE32
  2002-12-10 20:53 ` Sam Ravnborg
@ 2002-12-11 13:47   ` John Bradford
  2002-12-12 19:52     ` Sam Ravnborg
  0 siblings, 1 reply; 8+ messages in thread
From: John Bradford @ 2002-12-11 13:47 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: perex, kai, linux-kernel

> > make -f scripts/Makefile.build obj=sound/synth/emux
> >    ld -m elf_i386  -r -o sound/synth/built-in.o sound/synth/emux/built-in.o
> > ld: cannot open sound/synth/emux/built-in.o: No such file or directory
> > make[2]: *** [sound/synth/built-in.o] Error 1
> > make[1]: *** [sound/synth] Error 2
> > make: *** [sound] Error 2
> 
> kbuild in 2.5.51 requires that there exist one variable named obj-*
> before built-in.o is generated.
> In the Makefile for sound/synth/emux the variables obj-* is only set if
> CONFIG_SND_SEQUENCER is set to y or m.
> 
> The best approach may be a derived bool defined in Kconfig, but
> an alterneative solution is to rearrange the Makefile a bit.
> 
> Try the following (untested) patch.

Same error I'm afraid :-/

John.

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

* Re: 2.5.51 breaks ALSA AWE32
  2002-12-11 13:47   ` John Bradford
@ 2002-12-12 19:52     ` Sam Ravnborg
  2002-12-12 20:26       ` Kai Germaschewski
  0 siblings, 1 reply; 8+ messages in thread
From: Sam Ravnborg @ 2002-12-12 19:52 UTC (permalink / raw)
  To: John Bradford, Kai Germaschewski; +Cc: Sam Ravnborg, perex, linux-kernel

On ons, dec 11, 2002 at 01:47:00 +0000, John Bradford wrote:
> > kbuild in 2.5.51 requires that there exist one variable named obj-*
> > before built-in.o is generated.
> > In the Makefile for sound/synth/emux the variables obj-* is only set if
> > CONFIG_SND_SEQUENCER is set to y or m.
> > 
> > The best approach may be a derived bool defined in Kconfig, but
> > an alterneative solution is to rearrange the Makefile a bit.
> > 
> > Try the following (untested) patch.
> 
> Same error I'm afraid :-/

Yep, sorry.
kbuild check if any obj-* value has been assigned a value,
so an empty assignment does not help.

I have made a patch that works this time.

Kai, any ideas how to do this in a better way?
- I have considered a derived symbol in sound/isa/Kconfig,
something like:
bool SND_EMUX_SYNTH
depends on SND && SND_SEQUENCER && SND_SBAWE

and then in the Makefile:
obj-$(CONFIG_SND_EMUX_SYNTH) := snd-emux-synth.o

That would make the Makefile trivial, but sound/ did not use any derived
symbols in the Kconfig file, so I did not test this approach.

I'm prepared to clean up all sound/ makefiles if this approach is
considered better than what is used today.

	Sam

===== sound/synth/emux/Makefile 1.4 vs edited =====
--- 1.4/sound/synth/emux/Makefile	Tue Jun 18 11:16:20 2002
+++ edited/sound/synth/emux/Makefile	Thu Dec 12 20:38:42 2002
@@ -5,16 +5,13 @@
 
 export-objs  := emux.o
 
+snd-emux-synth-objs-$(CONFIG_SND_SEQUENCER_OSS) := emux_oss.o
 snd-emux-synth-objs := emux.o emux_synth.o emux_seq.o emux_nrpn.o \
-		       emux_effect.o emux_proc.o soundfont.o
-ifeq ($(CONFIG_SND_SEQUENCER_OSS),y)
-  snd-emux-synth-objs += emux_oss.o
-endif
+		       emux_effect.o emux_proc.o soundfont.o \
+		       $(snd-emux-synth-objs-y)
 
 # Toplevel Module Dependency
-ifeq ($(subst m,y,$(CONFIG_SND_SEQUENCER)),y)
-  obj-$(CONFIG_SND_SBAWE) += snd-emux-synth.o
-  obj-$(CONFIG_SND_EMU10K1) += snd-emux-synth.o
-endif
+seq := $(filter m y,$(CONFIG_SND_SEQUENCER))
+obj-$(if $(seq),$(CONFIG_SND_SBAWE))   += snd-emux-synth.o
+obj-$(if $(seq),$(CONFIG_SND_EMU10K1)) += snd-emux-synth.o
 
-include $(TOPDIR)/Rules.make

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

* Re: 2.5.51 breaks ALSA AWE32
  2002-12-12 19:52     ` Sam Ravnborg
@ 2002-12-12 20:26       ` Kai Germaschewski
  2002-12-12 20:52         ` Sam Ravnborg
  0 siblings, 1 reply; 8+ messages in thread
From: Kai Germaschewski @ 2002-12-12 20:26 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: John Bradford, perex, linux-kernel

On Thu, 12 Dec 2002, Sam Ravnborg wrote:

> kbuild check if any obj-* value has been assigned a value,
> so an empty assignment does not help.
> 
> I have made a patch that works this time.
> 
> Kai, any ideas how to do this in a better way?

The minimal fix I can think of would be

===== sound/synth/Makefile 1.8 vs edited =====
--- 1.8/sound/synth/Makefile	Mon Jun 10 19:49:43 2002
+++ edited/sound/synth/Makefile	Thu Dec 12 14:16:02 2002
@@ -14,6 +14,6 @@
   obj-$(CONFIG_SND_SBAWE) += snd-util-mem.o
 endif
 
-obj-$(CONFIG_SND) += emux/
+obj-$(CONFIG_SND_SEQUENCER) += emux/
 
 include $(TOPDIR)/Rules.make


While we're at it, a bit of cleaning up shouldn't hurt, though, so the 
complete suggested patch would be

===== sound/synth/Makefile 1.8 vs edited =====
--- 1.8/sound/synth/Makefile	Mon Jun 10 19:49:43 2002
+++ edited/sound/synth/Makefile	Thu Dec 12 14:20:47 2002
@@ -10,10 +10,10 @@
 # Toplevel Module Dependency
 obj-$(CONFIG_SND_EMU10K1) += snd-util-mem.o
 obj-$(CONFIG_SND_TRIDENT) += snd-util-mem.o
-ifeq ($(subst m,y,$(CONFIG_SND_SEQUENCER)),y)
+ifdef CONFIG_SND_SEQUENCER
   obj-$(CONFIG_SND_SBAWE) += snd-util-mem.o
 endif
 
-obj-$(CONFIG_SND) += emux/
+obj-$(CONFIG_SND_SEQUENCER) += emux/
 
 include $(TOPDIR)/Rules.make
===== sound/synth/emux/Makefile 1.4 vs edited =====
--- 1.4/sound/synth/emux/Makefile	Tue Jun 18 04:16:20 2002
+++ edited/sound/synth/emux/Makefile	Thu Dec 12 14:20:08 2002
@@ -5,16 +5,11 @@
 
 export-objs  := emux.o
 
-snd-emux-synth-objs := emux.o emux_synth.o emux_seq.o emux_nrpn.o \
-		       emux_effect.o emux_proc.o soundfont.o
-ifeq ($(CONFIG_SND_SEQUENCER_OSS),y)
-  snd-emux-synth-objs += emux_oss.o
-endif
+snd-emux-synth-y := emux.o emux_synth.o emux_seq.o emux_nrpn.o \
+		    emux_effect.o emux_proc.o soundfont.o
+snd-emux-synth-$(CONFIG_SND_SEQUENCER_OSS) += emux_oss.o
 
-# Toplevel Module Dependency
-ifeq ($(subst m,y,$(CONFIG_SND_SEQUENCER)),y)
-  obj-$(CONFIG_SND_SBAWE) += snd-emux-synth.o
-  obj-$(CONFIG_SND_EMU10K1) += snd-emux-synth.o
-endif
+obj-$(CONFIG_SND_SBAWE) += snd-emux-synth.o
+obj-$(CONFIG_SND_EMU10K1) += snd-emux-synth.o
 
 include $(TOPDIR)/Rules.make

However, synth/Makefile still has the ugly ifdef in there, which wouldn't
be necessary if we entered synth/ just when CONFIG_SND_SEQUENCER is set.
It looks like more generic routines are in synth/ (util-mem), though,
which IMO shouldn't be there, but rather in some lib/ or whatever dir. So
there's the opportunity for further cleanup, but I'll leave that to the
ALSA people. Anybody care for testing the second patch above?

--Kai



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

* Re: 2.5.51 breaks ALSA AWE32
  2002-12-12 20:26       ` Kai Germaschewski
@ 2002-12-12 20:52         ` Sam Ravnborg
  2002-12-12 20:55           ` Kai Germaschewski
  0 siblings, 1 reply; 8+ messages in thread
From: Sam Ravnborg @ 2002-12-12 20:52 UTC (permalink / raw)
  To: Kai Germaschewski; +Cc: Sam Ravnborg, John Bradford, perex, linux-kernel

On tor, dec 12, 2002 at 02:26:26 -0600, Kai Germaschewski wrote:
> > Kai, any ideas how to do this in a better way?
> 
> The minimal fix I can think of would be

Looks good - thanks.

One detail when looking at the patch:

> ===== sound/synth/emux/Makefile 1.4 vs edited =====
> --- 1.4/sound/synth/emux/Makefile	Tue Jun 18 04:16:20 2002
> +++ edited/sound/synth/emux/Makefile	Thu Dec 12 14:20:08 2002
> @@ -5,16 +5,11 @@
>  
>  export-objs  := emux.o
>  
> -snd-emux-synth-objs := emux.o emux_synth.o emux_seq.o emux_nrpn.o \
> -		       emux_effect.o emux_proc.o soundfont.o
> -ifeq ($(CONFIG_SND_SEQUENCER_OSS),y)
> -  snd-emux-synth-objs += emux_oss.o
> -endif
> +snd-emux-synth-y := emux.o emux_synth.o emux_seq.o emux_nrpn.o \
> +		    emux_effect.o emux_proc.o soundfont.o
> +snd-emux-synth-$(CONFIG_SND_SEQUENCER_OSS) += emux_oss.o

snd-emux-synth-objs := $(snd-emux-synth-y)

>  
> -# Toplevel Module Dependency
> -ifeq ($(subst m,y,$(CONFIG_SND_SEQUENCER)),y)
> -  obj-$(CONFIG_SND_SBAWE) += snd-emux-synth.o
> -  obj-$(CONFIG_SND_EMU10K1) += snd-emux-synth.o
> -endif
> +obj-$(CONFIG_SND_SBAWE) += snd-emux-synth.o
> +obj-$(CONFIG_SND_EMU10K1) += snd-emux-synth.o
>  
>  include $(TOPDIR)/Rules.make
> 
> However, synth/Makefile still has the ugly ifdef in there, which wouldn't
> be necessary if we entered synth/ just when CONFIG_SND_SEQUENCER is set.
> It looks like more generic routines are in synth/ (util-mem), though,
> which IMO shouldn't be there, but rather in some lib/ or whatever dir. So
> there's the opportunity for further cleanup, but I'll leave that to the
> ALSA people. Anybody care for testing the second patch above?
> 
> --Kai
> 

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

* Re: 2.5.51 breaks ALSA AWE32
  2002-12-12 20:52         ` Sam Ravnborg
@ 2002-12-12 20:55           ` Kai Germaschewski
  2002-12-12 21:32             ` Sam Ravnborg
  0 siblings, 1 reply; 8+ messages in thread
From: Kai Germaschewski @ 2002-12-12 20:55 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: John Bradford, perex, linux-kernel

On Thu, 12 Dec 2002, Sam Ravnborg wrote:

> One detail when looking at the patch:
> 
> > ===== sound/synth/emux/Makefile 1.4 vs edited =====
> > --- 1.4/sound/synth/emux/Makefile	Tue Jun 18 04:16:20 2002
> > +++ edited/sound/synth/emux/Makefile	Thu Dec 12 14:20:08 2002
> > @@ -5,16 +5,11 @@
> >  
> >  export-objs  := emux.o
> >  
> > -snd-emux-synth-objs := emux.o emux_synth.o emux_seq.o emux_nrpn.o \
> > -		       emux_effect.o emux_proc.o soundfont.o
> > -ifeq ($(CONFIG_SND_SEQUENCER_OSS),y)
> > -  snd-emux-synth-objs += emux_oss.o
> > -endif
> > +snd-emux-synth-y := emux.o emux_synth.o emux_seq.o emux_nrpn.o \
> > +		    emux_effect.o emux_proc.o soundfont.o
> > +snd-emux-synth-$(CONFIG_SND_SEQUENCER_OSS) += emux_oss.o
> 
> snd-emux-synth-objs := $(snd-emux-synth-y)

Nope, kbuild does that for you ;)
(And yes, lots of places still do it manually, but it's not necessary 
anymore).

--Kai



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

* Re: 2.5.51 breaks ALSA AWE32
  2002-12-12 20:55           ` Kai Germaschewski
@ 2002-12-12 21:32             ` Sam Ravnborg
  0 siblings, 0 replies; 8+ messages in thread
From: Sam Ravnborg @ 2002-12-12 21:32 UTC (permalink / raw)
  To: Kai Germaschewski; +Cc: Sam Ravnborg, John Bradford, perex, linux-kernel

On tor, dec 12, 2002 at 02:55:28 -0600, Kai Germaschewski wrote:
> Nope, kbuild does that for you ;)

I recall this - now. Anyway the following fragment teels the full story :-)
cmd_link_multi-y = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) -r -o $@ $(filter $(addprefix $(obj)/,$($(subst $(obj)/,,$(@:.o=-objs))) $($(subst $(obj)/,,$(@:.o=-y)))),$^)

In clear text:
For all prerequisite .o files (file.o) where there exist a -objs (file-objs)
or a -y (file-y) variable use the value of that variable instead.

> (And yes, lots of places still do it manually, but it's not necessary 
> anymore).

I will take a look some day.

	Sam

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

end of thread, other threads:[~2002-12-12 21:25 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-12-10 11:58 2.5.51 breaks ALSA AWE32 John Bradford
2002-12-10 20:53 ` Sam Ravnborg
2002-12-11 13:47   ` John Bradford
2002-12-12 19:52     ` Sam Ravnborg
2002-12-12 20:26       ` Kai Germaschewski
2002-12-12 20:52         ` Sam Ravnborg
2002-12-12 20:55           ` Kai Germaschewski
2002-12-12 21:32             ` Sam Ravnborg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox