Dlopen hpux et coredump au dlclose sur linux
Salut tout le monde,
Voila, j'ai un petit fichier c qui fait ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#ifdef _HPUX_SOURCE
#include <dl.h>
#else
#include <dlfcn.h>
#endif
....
char name[10+1];
/* chargement ... */
handle = dlopen(data.lib,RTLD_NOW);
if (!handle)
{
errstr = dlerror();
if (errstr != NULL)
fprintf(stdout,"lib could not be loaded(%s)\n",data.lib,errstr);
else
fprintf(stdout,"lib could not be loaded\n",data.lib);
return uxspv_strerror(ERROR,NULL);
}
/* Recherche la fonction de la librairie */
ptr_u_get_func = (void (*)(char *)) dlsym(handle,"u_get_name");
if (!ptr_u_get_func)
{
if (handle)
dlclose(handle);
fprintf(stdout,"The function (u_get_name) of the library could not be loaded.\n");
return uxspv_strerror(UNKNOWN,NULL);
}
(*ptr_u_get_func)(name); |
Le problème c'est que quand j'essaye de compiler ce fichier sur HPUX (10 ou 11) avec CC (j'ai pas gcc), j'ai ces erreurs:
Code:
1 2 3 4 5
|
cc: "../src/load.c", line 140: error 1588: "RTLD_NOW" undefined.
cc: "../src/load.c", line 140: warning 527: Integral value implicitly converted to pointer in assignment.
cc: "../src/load.c", line 143: warning 527: Integral value implicitly converted to pointer in assignment.
*** Error exit code 1 |
voilà mes options de compilations (sur hp10):
Code:
1 2 3 4
|
LFLAGS=-Aa -v +Z -D_HPUX_SOURCE -D_OPT_THREAD
CFLAGS=-Ae
LDFLAGS=-L/usr/bin -lm -lc -lrfc -lBSD -lDCE -ldl |
Quelqu'un peut me dire ce qui va pas, ce que j'ai oublié ?
Merci
:wink:
dlopen sur linux -> segmentation fault signal 11
Salut
voila, j'ai fait un prog qui load et unload une lib
sur linux, ca marche, mais a la fin (au moment du dlclose) ça plante :
segmentation fault signal 11
pourtant que test bien le handle
if (handle)
dlclose(handle);
Et le handle n'est pas vide, puisque j'arrive bien a appeler une fonction de cette lib dynamique que je charge avec dlopen
mais au dlclose ça me fait un coredump !!!!!
help! please!
Delphine. :wink: