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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
#include <gconv.h>
/* hj's gconv stubs, a little modified */
/* Define ALIASNAME as a strong alias for NAME. */
# define strong_alias(name, aliasname) _strong_alias(name, aliasname)
# define _strong_alias(name, aliasname) \
extern __typeof (name) aliasname __attribute__ ((alias (#name)));
/* Don't drag in the dynamic linker. */
void *__libc_stack_end;
int
__gconv_OK () {
#if __GLIBC__ > 2 || __GLIBC_MINOR__ > 1
return __GCONV_OK;
#else
return GCONV_OK;
#endif
}
int
__gconv_NOCONV () {
#if __GLIBC__ > 2 || __GLIBC_MINOR__ > 1
return __GCONV_NOCONV;
#else
return GCONV_NOCONV;
#endif
}
strong_alias (__gconv_OK,
__gconv_close_transform);
strong_alias (__gconv_OK,
__gconv_close);
strong_alias (__gconv_NOCONV,
__gconv);
strong_alias (__gconv_NOCONV,
__gconv_find_transform);
strong_alias (__gconv_NOCONV,
__gconv_open);
/* These transformations should not fail in normal conditions */
strong_alias (__gconv_OK,
__gconv_transform_ascii_internal);
strong_alias (__gconv_OK,
__gconv_transform_ucs2little_internal);
strong_alias (__gconv_OK,
__gconv_transform_utf16_internal);
strong_alias (__gconv_OK,
__gconv_transform_utf8_internal);
strong_alias (__gconv_OK,
__gconv_transform_ucs2_internal);
/* We can assume no conversion for these ones */
strong_alias (__gconv_NOCONV,
__gconv_transform_internal_ascii);
strong_alias (__gconv_NOCONV,
__gconv_transform_internal_ucs2);
strong_alias (__gconv_NOCONV,
__gconv_transform_internal_ucs2little);
strong_alias (__gconv_NOCONV,
__gconv_transform_internal_ucs4);
strong_alias (__gconv_NOCONV,
__gconv_transform_internal_utf16);
strong_alias (__gconv_NOCONV,
__gconv_transform_internal_utf8);
strong_alias (__gconv_OK,
__gconv_transliterate);
|