Fixed (was Re: Linking panic)

Matthew Dillon dillon at apollo.backplane.com
Fri Nov 21 15:39:45 PST 2003


    The linking panic has been fixed.    Basically what was happening was
    that snd_cmi.ko has a dependancy on snd_pcm.ko.  The dependancy caused
    snd_pcm.ko to be linked up while the preload scan was working on
    snd_cmi.ko.  Then the preload scan continued onto snd_pcm.ko and 
    linked it up *AGAIN*.  That is, it executed snd_pcm.ko's relocations
    twice, leading to bad addresses.

    The reason the loader got confused was because the module name is
    '/modules/snd_pcm.ko' but the dependancy name is only 'snd_pcm'. 
    The linker already had hacks in it to add the '.ko' but it wasn't
    doing anything about the /modules/ prefix, so the second attempt
    to load /modules/snd_pcm.ko from the preload list failed to twig
    to the fact that snd_pcm.ko had already been linked up using the
    same image data.

    I hope it's fixed!

    Whew.  The module code is a major mess.  FreeBSD-5.x's code is a little
    better but not by much.  The whole thing needs to be rewritten.

						-Matt






More information about the Kernel mailing list