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

Re: [HS] Modules charges dynamiquement



On Thu, Apr 05, 2001 at 09:58:00AM +0200, Charles Goyard wrote:
> Denis Barbier a écrit :
> > Désolé du hors-sujet, je cherche de la doc sur la création de modules
> > chargés dynamiquement à l'exécution (comme ce que fait Perl par
> > exemple). J'arrive à m'en sortir si le module ne fait pas lui-même appel
> > à des routines extérieures, mais je sèche lamentablement si le module a
> > besoin d'une librairie extérieure.
> > Il va de soi que j'ai épluché dans tous les sens la doc de libtool, et
> > trouvé quelques références sur google à des posts du même acabit, mais
> > je n'ai pas trouvé de réponse. Peut-être que la compilation de PHP4 ou
> > Apache peut me donner une idée de ce qu'il faut faire, mais une bonne
> > doc serait préférable. Tous pointeurs (même basiques) bienvenus, merci.
> 
> Des modules écrits en quoi, et pour quoi ? Des modules Apache ? Des
> modules Perl ? Des modules Perl pour Apache ?

Ni l'un ni l'autre. J'ai hacké m4 pour pouvoir utiliser des macros avec
des balises à la sauce chteumeuleu. Ce programme peut charger des modules
à l'exécution. Maintenant, je voudrais pouvoir utiliser javascript comme
langage de script embarqué dans mes macros (tout comme en TeX on peut
insérer des commandes shell-scripts), en appelant un interpréteur
javascript à partir d'un module.
J'ai donc les briques suivantes:
  - njs  : interpréteur javascript
  - mp4h : programme principal
  - mod_js : nom de mon module à charger dynamiquement

Le problème, c'est que le module mod_js fait appel à la librairie
libnjs. Il me semble donc qu'il faudrait
 (a) soit indiquer lors du chargement du module mod_js que certaines
     fonctions sont dans libnjs.so
 (b) soit compiler le module dynamique en embarquant la libnjs.a

Actuellement, je ne sais faire que le 2nd point, avec
   gcc -shared mod_js.lo -Wl,--whole-archive /usr/local/lib/libnjs.a \
     -Wl,--no-whole-archive -ldl -o .libs/mod_js.so

C'est crado, biscotte ça nécessite gcc, j'aimerai une solution plus
portable.
Et bien sûr, je n'y connais rien en bibliothèques partagées, donc toute
référence de doc est bienvenue.

Denis



Reply to: