summaryrefslogtreecommitdiff
path: root/iconv/gconv_db.c
diff options
context:
space:
mode:
Diffstat (limited to 'iconv/gconv_db.c')
-rw-r--r--iconv/gconv_db.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/iconv/gconv_db.c b/iconv/gconv_db.c
index 9f4366b7df..62d8f0540c 100644
--- a/iconv/gconv_db.c
+++ b/iconv/gconv_db.c
@@ -192,6 +192,7 @@ gen_steps (struct derivation_step *best, const char *toset,
? __strdup (current->result_set)
: result[step_cnt + 1].from_name);
+#ifndef STATIC_GCONV
if (current->code->module_name[0] == '/')
{
/* Load the module, return handle for it. */
@@ -212,6 +213,7 @@ gen_steps (struct derivation_step *best, const char *toset,
result[step_cnt].end_fct = shlib_handle->end_fct;
}
else
+#endif
/* It's a builtin transformation. */
__gconv_get_builtin_trans (current->code->module_name,
&result[step_cnt]);
@@ -230,7 +232,9 @@ gen_steps (struct derivation_step *best, const char *toset,
{
if (result[step_cnt].end_fct != NULL)
(*result[step_cnt].end_fct) (&result[step_cnt]);
+#ifndef STATIC_GCONV
__gconv_release_shlib (result[step_cnt].shlib_handle);
+#endif
}
free (result);
*nsteps = 0;
@@ -525,6 +529,7 @@ __gconv_find_transform (const char *toset, const char *fromset,
result = find_derivation (toset, toset_expand, fromset, fromset_expand,
handle, nsteps);
+#ifndef STATIC_GCONV
/* Increment the user counter. */
if (result == GCONV_OK)
{
@@ -548,6 +553,7 @@ __gconv_find_transform (const char *toset, const char *fromset,
}
while (cnt > 0);
}
+#endif
/* Release the lock. */
__libc_lock_unlock (lock);
@@ -568,6 +574,7 @@ __gconv_close_transform (struct gconv_step *steps, size_t nsteps)
{
int result = GCONV_OK;
+#ifndef STATIC_GCONV
/* Acquire the lock. */
__libc_lock_lock (lock);
@@ -583,6 +590,7 @@ __gconv_close_transform (struct gconv_step *steps, size_t nsteps)
/* Release the lock. */
__libc_lock_unlock (lock);
+#endif
return result;
}