From 5ad49c070734c57f35cfe045572fb22158870c78 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Thu, 18 Jun 1998 16:51:12 +0000 Subject: Update. 1998-06-18 16:40 Ulrich Drepper * libc.map: Add _dl_profile_map, _dl_profile_output, _dl_start_profile, _dl_mcount, _dl_mcount_wrapper. * elf/Makefile (routines): Add dl-profstub. * elf/dl-profstub.c: New file. * elf/dl-support.c: Don't define _dl_profile_map. * elf/rtld.c: Likewise. * elf/dlfcn.h: Define DL_CALL_FCT macro. * elf/ldsodefs.h: Declare _dl_profile_output, _dl_mcount_wrapper. Define _CALL_DL_FCT. * iconv/gconv.c: Use _CALL_DL_FCT to call function from dynamically loaded object. * iconv/gconv_db.c: Likewise. * iconv/skeleton.c: Likewise. * nss/getXXbyYY_r.c: Likewise. * nss/getXXent_r.c: Likewise. * nss/nsswitch.c: Likewise. --- iconv/gconv.c | 9 ++++++--- iconv/gconv_db.c | 7 ++++--- iconv/skeleton.c | 8 +++++--- 3 files changed, 15 insertions(+), 9 deletions(-) (limited to 'iconv') diff --git a/iconv/gconv.c b/iconv/gconv.c index 24dc21e..9484fc8 100644 --- a/iconv/gconv.c +++ b/iconv/gconv.c @@ -22,6 +22,7 @@ #include #include #include +#include int @@ -40,7 +41,8 @@ __gconv (gconv_t cd, const char **inbuf, const char *inbufend, char **outbuf, if (inbuf == NULL || *inbuf == NULL) /* We just flush. */ - result = (*cd->steps->fct) (cd->steps, cd->data, NULL, NULL, converted, 1); + result = _CALL_DL_FCT (cd->steps->fct, + (cd->steps, cd->data, NULL, NULL, converted, 1)); else { const char *last_start; @@ -52,8 +54,9 @@ __gconv (gconv_t cd, const char **inbuf, const char *inbufend, char **outbuf, do { last_start = *inbuf; - result = (*cd->steps->fct) (cd->steps, cd->data, inbuf, inbufend, - converted, 0); + result = _CALL_DL_FCT (cd->steps->fct, + (cd->steps, cd->data, inbuf, inbufend, + converted, 0)); } while (result == GCONV_EMPTY_INPUT && last_start != *inbuf && *inbuf + cd->steps->min_needed_from <= inbufend); diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c index b98cc8f..2c66249 100644 --- a/iconv/gconv_db.c +++ b/iconv/gconv_db.c @@ -22,6 +22,7 @@ #include #include #include +#include #include @@ -154,7 +155,7 @@ free_derivation (void *p) for (cnt = 0; cnt < deriv->nsteps; ++cnt) if (deriv->steps[cnt].end_fct) - (*deriv->steps[cnt].end_fct) (&deriv->steps[cnt]); + _CALL_DL_FCT (deriv->steps[cnt].end_fct, (&deriv->steps[cnt])); free ((struct gconv_step *) deriv->steps); free (deriv); @@ -220,7 +221,7 @@ gen_steps (struct derivation_step *best, const char *toset, /* Call the init function. */ if (result[step_cnt].init_fct != NULL) - (*result[step_cnt].init_fct) (&result[step_cnt]); + _CALL_DL_FCT (result[step_cnt].init_fct, (&result[step_cnt])); current = current->last; } @@ -231,7 +232,7 @@ gen_steps (struct derivation_step *best, const char *toset, while (++step_cnt < *nsteps) { if (result[step_cnt].end_fct != NULL) - (*result[step_cnt].end_fct) (&result[step_cnt]); + _CALL_DL_FCT (result[step_cnt].end_fct, (&result[step_cnt])); #ifndef STATIC_GCONV __gconv_release_shlib (result[step_cnt].shlib_handle); #endif diff --git a/iconv/skeleton.c b/iconv/skeleton.c index 418247f..19e737a 100644 --- a/iconv/skeleton.c +++ b/iconv/skeleton.c @@ -82,6 +82,7 @@ #define __need_size_t #define __need_NULL #include +#include /* The direction objects. */ @@ -218,7 +219,8 @@ FUNCTION_NAME (struct gconv_step *step, struct gconv_step_data *data, if (status == GCONV_OK) #endif /* Give the modules below the same chance. */ - status = (*fct) (next_step, next_data, NULL, NULL, written, 1); + status = _CALL_DL_FCT (fct, (next_step, next_data, NULL, NULL, + written, 1)); } } else @@ -284,8 +286,8 @@ FUNCTION_NAME (struct gconv_step *step, struct gconv_step_data *data, const char *outerr = data->outbuf; int result; - result = (*fct) (next_step, next_data, &outerr, outbuf, - written, 0); + result = _CALL_DL_FCT (fct, (next_step, next_data, &outerr, + outbuf, written, 0)); if (result != GCONV_EMPTY_INPUT) { -- cgit v1.1