Hi,

Im trying to put callweaver on a embeeded device with gsm support, and i've 
converted the gsm drivers, they compile but when they start i get a...

/usr/lib/callweaver/modules/chan_gsm.so: undefined symbol: cm_create

Thing is , the symbol is part of a res_configman included on the driver and 
that loads fine.

Can please please please someone explain me how the symbol lookup works in 
callweaver? How do i put the res_something symbols in the global symbol table , 
im a 0 in C. Im doing this by trial and error  (mostly error)

Regards

Carlos Galveias


PS: configman.h

#ifndef _CALLWEAVER_CONFIGMAN_H
#define _CALLWEAVER_CONFIGMAN_H

#include <stdlib.h>
#include <sys/types.h>

#include "callweaver/strings.h"

typedef struct cm    cm_t;

typedef struct {
        char           * name;
        char           * def;
        char           * desc;
} cm_dir_t;

enum ktype {
        KTYPE_NONE = 0,
        KTYPE_INTEGER,
        KTYPE_STRING,
};

typedef struct {
        char           * section_name;      /* Name of the section. */
        char           * default_name;      /* If you want this section to 
collect config categories with
                                           any name and have a special category 
for default values,
                                           name it here. */
        char           * key_field;         /* If you specify a key field, then 
this will be the key to
                                           access values, specify the key_type 
below. */
        enum ktype       key_type;          /* The type of the key field. */
        int              num_directives;    /* Number of the directives array 
elements. */
        const cm_dir_t * directives;        /* The first directive targets the 
string between the '[ ]'.
                                                If key_type == KEY_NONE, let 
the first one be empty, i.e.
                                                { 0, 0, 0 } or { } or { 0 } or 
whatever you like most. */
} cm_section_t;

/*! \brief Create a new config manager object
 * \param modname Name to identify the owner, used in log messages and for 
registering cli commands like
 *                {modname} show config [...]
 * \param sections Array of sections, must be static or allocated until after 
cm_destroy
 * \param num Number of elemenets in sections
 * Creates a cm_t structure from given cm_section_t's.
 *
 * Returns NULL on error, or a cm_t data structure on success.
 */
cm_t *  cm_create (const char *modname, const cm_section_t *sections, int num);
...

<<Emoticon1.gif>>

_______________________________________________
Callweaver-dev mailing list
[email protected]
http://lists.callweaver.org/mailman/listinfo/callweaver-dev

Reply via email to