Codec Keeper - plugins *.so are in incompatible format

Alexandre Parent <[email protected]> Fri, 11 Mar 2005 10:39:37 +0100
Newsgroups gmane.comp.multimedia.avifile.general
Message-ID <[email protected]>
Dear Programmers,

I compiled avifile on a  Linux Suse 9.1 (gcc 3.3.3), all the compilation 
works but when I execute aviplay I have the following messages :

<codec keeper> : Found 11 plugins (/usr/local/lib/avifile-0.7,A:40,V:89)
<codec keeper> : WARNING: plugin /usr/local/lib/avifile-0.7/divx4.so is 
in incompatible format

I don't have any previous installation of avifile, and I tried on a 
Debian (gcc 3.2.2), everythig works perfectly.

After little invesigation on the mailing list, it seems that the symbol 
in the *.so files differ on the Suse.

I've made a nm on the win32.so on Debian and I found the symbol

00038080 D avm_codec_plugin_win32
On the Suse version, this symbol doesn't exist.

It's this part of codeckeeper which doesn't work on the Suse :

<codekeeper.cpp>
    codec_plugin_t* plugin = (codec_plugin_t*) dlsym(pi->dlhandle, plgn);

    if (!plugin || (plugin->version != PLUGIN_API_VERSION))
    {
            if (plugin)
        AVM_WRITE("codec keeper", "WARNING: plugin %s has version %d, 
expected %d (should be removed)\n",
              name, plugin->version, PLUGIN_API_VERSION);
        else
        AVM_WRITE("codec keeper", "WARNING: plugin %s is in incompatible 
format\n",
              name);
        plugin_close(ci);
        return 0;
    }

The code is good, but why on Suse the symbols are not defined like on 
the others Linux ?
I think it's only a problem of gcc, but I really don't know how to fix 
it ...

Kind regards.

PS : I've compiled, avifile v. 7.38, 7.41, 7.43 and the cvs version.
Always with the same result... :'(
-- 
  Alexandre