summaryrefslogtreecommitdiffstats
path: root/loader/stubs.c
blob: b1fb30430fb0bb262f829f3b43cb66591af9fb58 (plain)
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
#include <gconv.h>
 
#if !defined(UNKNOWN_10646_CHAR) && defined(__UNKNOWN_10646_CHAR)
/* Newer glibcs use underscores in gconv.h */
#define GCONV_OK       __GCONV_OK
#define GCONV_NOCONV   __GCONV_NOCONV
#endif

#define ASM_GLOBAL_DIRECTIVE .globl
#define __SYMBOL_PREFIX

/* Define ALIAS as a strong alias for ORIGINAL.  */
#define strong_alias(original, alias) \
  asm (__string_1 (ASM_GLOBAL_DIRECTIVE) " " __SYMBOL_PREFIX #alias "\n" \
       ".set " __SYMBOL_PREFIX #alias "," __SYMBOL_PREFIX #original);

/* Helper macros used above.  */
#define __string_1(x) __string_0(x)
#define __string_0(x) #x

/* Don't drag in the dynamic linker. */
void *__libc_stack_end;

int
__gconv_OK () {return GCONV_OK;}

/*
int
__gconv_NOCONV () {return GCONV_NOCONV;}
*/

strong_alias (__gconv_OK, __gconv_close_transform); 
strong_alias (__gconv_OK, __gconv);
strong_alias (__gconv_OK, __gconv_find_transform);
strong_alias (__gconv_OK, __gconv_open);
strong_alias (__gconv_OK, __gconv_transform_ascii_internal);
strong_alias (__gconv_OK, __gconv_transform_internal_ascii);
strong_alias (__gconv_OK, __gconv_transform_internal_ucs2);
strong_alias (__gconv_OK, __gconv_transform_internal_ucs2little);
strong_alias (__gconv_OK, __gconv_transform_internal_ucs4);
strong_alias (__gconv_OK, __gconv_transform_internal_utf16);
strong_alias (__gconv_OK, __gconv_transform_internal_utf8);
strong_alias (__gconv_OK, __gconv_transform_ucs2_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);