(root)/
glibc-2.38/
sysdeps/
x86_64/
multiarch/
strcmp-naming.h
       1  #ifndef _STRCMP_NAMING_H_
       2  #define _STRCMP_NAMING_H_
       3  
       4  /* Utility macros.  */
       5  #define STRCMP_SUFFIX(x, y) x##y
       6  #define STRCMP_NAME(x, y) STRCMP_SUFFIX (x, y)
       7  
       8  /* Setup base of all definitions.  */
       9  #define STRNCASECMP_BASE __strncasecmp
      10  #define STRCASECMP_BASE __strcasecmp
      11  #define WCSCMP_BASE __wcscmp
      12  
      13  #if defined USE_MULTIARCH && IS_IN (libc)
      14  # define WCSNCMP_BASE __wcsncmp
      15  # define STRNCMP_BASE __strncmp
      16  # define STRCMP_BASE __strcmp
      17  
      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
      23  
      24  # undef STRCMP_ISA
      25  # define STRCMP_ISA
      26  #endif
      27  
      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
      33  
      34  /* Get correct symbol for OVERFLOW_STRCMP, STRCMP, and
      35     STRCASECMP.  */
      36  #if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
      37  
      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
      48  
      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
      60  
      61  # define STRCASECMP_SYM STRCASECMP_BASE
      62  #endif
      63  
      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)
      67  
      68  #endif