[lug] more rio associated questions :)

D. Stimits stimits at idcomm.com
Fri Feb 9 14:30:04 MST 2001


charles at lunarmedia.net wrote:
> 
> i am not much of a programmer, so this whole topic of errors seen in
> attempts to compile an application is black magic to me.
> 
> i have the rio500 utilities working, and i have the latest set of the
> utils (0.7). this is all happening under 2.4.1.
> the guy that wrote the utilities also created a gnome based front end for
> accessing them.
> 
> i have downloaded and ran ./configure within the untarred directory.
> however, when i attempt to run make, i get:
> 
> callbacks.c:1516: warning: implicit declaration of function `rio_get_song'
> 
> i am not very certain what an implicit declaration entails, but it seems
> to the the start of the problem.
> 
> is this too vague for troubleshooting?
> 
> -thanks -charles
> 

It means that somewhere the function rio_get_song() was used, but not
declared officially. One common theme for this is that a particular
header file was included from the usual libraries, but in the meantime,
the library has evolved and moved the declaration elsewhere. Possibly
(probably) sometime during running of the application it will fail when
the function is used, but it can't find it (if it moved out of a header,
then probably it moved to a different lib than linked with as well,
assuming it is a lib file that implements it). For the emu10k1 driver
(soundblaster live), I've seen a progression of similar problems when
kernel source is changed and the function of the driver still uses
something that was removed or altered (especially for SMP). In the case
of the kernel source, and modules, you need to be sure the current
kernel source tree of /usr/src/linux/ is configured to match the
installed kernel during compile; the config process alters the source
somewhat, and can make some function prototypes disappear based on
unconfigured items. Advice #1 is make sure your kernel source tree is
installed AND configured for module/driver compiles, and #2 is to give
it a try before worrying too much...it might find the function
somewhere, despite the improper lack of declaration. If it still fails,
then probably the source needs to be adjusted for that kernel version.

D. Stimits, stimits at idcomm.com



More information about the LUG mailing list