sparc64: Remove unwind information from signal return stubs [BZ#31244]
[glibc.git] / sysdeps / x86_64 / multiarch / strcmp-naming.h
blob6a7529b6a4b5cbfb65ba2780a6f47f0078f802d4
1 #ifndef _STRCMP_NAMING_H_
2 #define _STRCMP_NAMING_H_
4 /* Utility macros. */
5 #define STRCMP_SUFFIX(x, y) x##y
6 #define STRCMP_NAME(x, y) STRCMP_SUFFIX (x, y)
8 /* Setup base of all definitions. */
9 #define STRNCASECMP_BASE __strncasecmp
10 #define STRCASECMP_BASE __strcasecmp
11 #define WCSCMP_BASE __wcscmp
13 #if defined USE_MULTIARCH && IS_IN (libc)
14 # define WCSNCMP_BASE __wcsncmp
15 # define STRNCMP_BASE __strncmp
16 # define STRCMP_BASE __strcmp
18 #else
19 /* Covers IS_IN (rtld) or non-multiarch build. */
20 # define WCSNCMP_BASE wcsncmp
21 # define STRNCMP_BASE strncmp
22 # define STRCMP_BASE strcmp
24 # undef STRCMP_ISA
25 # define STRCMP_ISA
26 #endif
28 #if IS_IN (rtld) || defined USE_MULTIARCH
29 # define ISA_HIDDEN_JUMPTARGET(...) __VA_ARGS__
30 #else
31 # define ISA_HIDDEN_JUMPTARGET(...) HIDDEN_JUMPTARGET (__VA_ARGS__)
32 #endif
34 /* Get correct symbol for OVERFLOW_STRCMP, STRCMP, and
35 STRCASECMP. */
36 #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
38 # if defined USE_AS_WCSCMP || defined USE_AS_WCSNCMP
39 # define OVERFLOW_STRCMP_SYM WCSCMP_BASE
40 # define STRCMP_SYM WCSNCMP_BASE
41 # elif defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
42 # define OVERFLOW_STRCMP_SYM STRCMP_NAME (STRCASECMP_BASE, _l)
43 # define STRCMP_SYM STRCMP_NAME (STRNCASECMP_BASE, _l)
44 # else
45 # define OVERFLOW_STRCMP_SYM STRCMP_BASE
46 # define STRCMP_SYM STRNCMP_BASE
47 # endif
49 # define STRCASECMP_SYM STRNCASECMP_BASE
50 # define OVERFLOW_STRCMP \
51 ISA_HIDDEN_JUMPTARGET (STRCMP_NAME (OVERFLOW_STRCMP_SYM, STRCMP_ISA))
52 #else
53 # ifdef USE_AS_WCSCMP
54 # define STRCMP_SYM WCSCMP_BASE
55 # elif defined USE_AS_STRCASECMP_L
56 # define STRCMP_SYM STRCMP_NAME (STRCASECMP_BASE, _l)
57 # else
58 # define STRCMP_SYM STRCMP_BASE
59 # endif
61 # define STRCASECMP_SYM STRCASECMP_BASE
62 #endif
64 #define STRCASECMP_L_NONASCII STRCMP_NAME (STRCASECMP_SYM, _l_nonascii)
65 #define STRCASECMP STRCMP_NAME (STRCASECMP_SYM, STRCMP_ISA)
66 #define STRCMP STRCMP_NAME (STRCMP_SYM, STRCMP_ISA)
68 #endif