Re: Missing symbols since 1.0.14rc1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



At Thu, 08 Mar 2007 08:14:45 -0800,
Tobin Davis wrote:
> 
> On Thu, 2007-03-08 at 15:07 +0100, Takashi Iwai wrote:
> > At Wed, 07 Mar 2007 15:09:34 -0800,
> > Tobin Davis wrote:
> > > 
> > > I had a couple of users report that alsa-driver-1.0.14rc2 and alsa-driver-1.0.14rc3
> > > would no longer load due to missing symbols.  I am able to reproduce this on a RedHat
> > > Enterprise Linux 4 update 4 kernel (2.6.9-42.0.0.0.1.EL) after modifying ./alsa-driver
> > > /include/adriver.h to not typedef gfp_t (Redhat pulled that typedef in starting with
> > > 4U3).
> > 
> > Oh that RH kernel... Since I personally never used RH kernels, it's
> > hard to debug.  Could you check whether it has any RH-specific defines
> > or such so that we can add another ifdef, e.g. #ifdef
> > CONFIG_REDHAT_KERNEL or so...?
> 
> No, nothing that I can find.  That of course would be too easy.

Grmble...

> > > The error when loading snd.ko is:
> > > 
> > >     snd:  Unknown symbol sound_class1
> > >     FATAL:  Error inserting snd (<path to module>): Unknown symbol in module, or
> > >     unknown parameter (see dmesg).
> > > 
> > > dmesg reports the same thing.
> > > 
> > > This worked fine in 1.0.14rc1.  I'm looking through the change logs to see what may
> > > have broken it.
> > 
> > Looks like a typo during conversion.  Simply replace from sound_class1
> > to sound_class in alsa-driver/acore/sound.c.
> > 
> 
> The change took place in the "reflect 'struct device *' changes from
> 2.6, add SND_AC97_BUS kernel dependancy" patch from Dec 15.  Patch ID
> 3208:965d76adda57.  
> 
> The patch you just added, while correcting the typo, now creates a
> compiler error:
> 
>          CC [M]  /usr/src/alsa/alsa-driver-1.0.14rc2/acore/sound.o
>         /usr/src/alsa/alsa-driver-1.0.14rc2/acore/sound.c:72: error:
>         conflicting types for 'sound_class'
>         /usr/src/alsa/alsa-driver-1.0.14rc2/include/sound/core.h:198:
>         error: previous declaration of 'sound_class' was here
>         /usr/src/alsa/alsa-driver-1.0.14rc2/acore/sound.c:72: error:
>         conflicting types for 'sound_class'
>         /usr/src/alsa/alsa-driver-1.0.14rc2/include/sound/core.h:198:
>         error: previous declaration of 'sound_class' was here
>         /usr/src/alsa/alsa-driver-1.0.14rc2/acore/sound.c: In function
>         `snd_open':
>         /usr/src/alsa/alsa-driver-1.0.14rc2/acore/sound.c:171: warning:
>         assignment discards qualifiers from pointer target type
>         /usr/src/alsa/alsa-driver-1.0.14rc2/acore/sound.c:176: warning:
>         assignment discards qualifiers from pointer target type
>         make[4]: *** [/usr/src/alsa/alsa-driver-1.0.14rc2/acore/sound.o]
>         Error 1
> 
> And I'm not sure if it will break other distributions or not.  There is
> always the off chance that this is also a Redhat backporting issue, rare
> as it seams. :) 

OK, that's a mess.  How about the patch (over patch) below?


thanks,

Takashi

diff -r e40d8bc191ea acore/sound.patch
--- a/acore/sound.patch	Thu Mar 08 15:06:39 2007 +0100
+++ b/acore/sound.patch	Thu Mar 08 17:24:20 2007 +0100
@@ -1,5 +1,5 @@
---- ../alsa-kernel/core/sound.c	2006-12-14 15:41:34.000000000 +0100
-+++ sound.c	2006-12-15 14:08:46.000000000 +0100
+--- ../alsa-kernel/core/sound.c	2007-02-13 14:53:03.000000000 +0100
++++ sound.c	2007-03-08 17:21:01.000000000 +0100
 @@ -41,6 +41,9 @@
  EXPORT_SYMBOL(snd_major);
  
@@ -21,20 +21,9 @@
  MODULE_ALIAS_CHARDEV_MAJOR(CONFIG_SND_MAJOR);
  
  /* this one holds the actual max. card number currently available.
-@@ -61,6 +68,10 @@
- static struct snd_minor *snd_minors[SNDRV_OS_MINORS];
- static DEFINE_MUTEX(sound_mutex);
- 
-+#ifdef CONFIG_SND_HAVE_CLASS_SIMPLE
-+extern struct class_simple *sound_class;
-+#endif
-+
- #ifdef CONFIG_KMOD
- 
- /**
-@@ -170,7 +181,9 @@
- 
- static struct file_operations snd_fops =
+@@ -170,7 +177,9 @@
+ 
+ static const struct file_operations snd_fops =
  {
 +#ifndef LINUX_2_2
  	.owner =	THIS_MODULE,
@@ -42,7 +31,7 @@
  	.open =		snd_open
  };
  
-@@ -242,7 +255,11 @@
+@@ -242,7 +251,11 @@
  	struct snd_minor *preg;
  
  	snd_assert(name, return -EINVAL);
@@ -54,7 +43,7 @@
  	if (preg == NULL)
  		return -ENOMEM;
  	preg->type = type;
-@@ -250,6 +267,9 @@
+@@ -250,6 +263,9 @@
  	preg->device = dev;
  	preg->f_ops = f_ops;
  	preg->private_data = private_data;
@@ -64,7 +53,7 @@
  	mutex_lock(&sound_mutex);
  #ifdef CONFIG_SND_DYNAMIC_MINORS
  	minor = snd_find_free_minor();
-@@ -264,10 +284,25 @@
+@@ -264,10 +280,26 @@
  		return minor;
  	}
  	snd_minors[minor] = preg;
@@ -79,7 +68,8 @@
  	if (preg->dev)
  		dev_set_drvdata(preg->dev, private_data);
 +#elif defined(CONFIG_SND_HAVE_CLASS_SIMPLE)
-+	class_simple_device_add(sound_class, MKDEV(major, minor), device, name);
++	class_simple_device_add((struct class_simple *)sound_class,
++				MKDEV(major, minor), device, name);
 +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 2)
 +	preg->dev = (struct device *)class_device_create(sound_class, NULL,
 +							 MKDEV(major, minor),
@@ -90,7 +80,7 @@
  
  	mutex_unlock(&sound_mutex);
  	return 0;
-@@ -307,6 +342,9 @@
+@@ -307,6 +339,9 @@
  int snd_unregister_device(int type, struct snd_card *card, int dev)
  {
  	int minor;
@@ -100,7 +90,7 @@
  
  	mutex_lock(&sound_mutex);
  	minor = find_snd_minor(type, card, dev);
-@@ -315,7 +353,20 @@
+@@ -315,7 +350,20 @@
  		return -EINVAL;
  	}
  
@@ -121,7 +111,7 @@
  
  	kfree(snd_minors[minor]);
  	snd_minors[minor] = NULL;
-@@ -328,16 +379,28 @@
+@@ -328,16 +376,28 @@
  int snd_add_device_sysfs_file(int type, struct snd_card *card, int dev,
  			      struct device_attribute *attr)
  {
@@ -151,7 +141,7 @@
  }
  
  EXPORT_SYMBOL(snd_add_device_sysfs_file);
-@@ -423,32 +486,81 @@
+@@ -423,32 +483,81 @@
   *  INIT PART
   */
  

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux