/* This file is automatically generated.
   It defines macros to allow user program to find the shared
   library files which come as part of GNU libc.  */
#ifndef __GNU_LIB_NAMES_H
#define __GNU_LIB_NAMES_H	1

#include <bits/wordsize.h>

#if __WORDSIZE == 32
# define LD_LINUX_SO                    "ld-linux.so.2"
# define LD_SO                          "ld-linux.so.2"
# define LIBANL_SO                      "libanl.so.1"
# define LIBBROKENLOCALE_SO             "libBrokenLocale.so.1"
# define LIBCIDN_SO                     "libcidn.so.1"
# define LIBCRYPT_SO                    "libcrypt.so.1"
# define LIBC_SO                        "libc.so.6"
# define LIBDL_SO                       "libdl.so.2"
# define LIBM_SO                        "libm.so.6"
# define LIBNSL_SO                      "libnsl.so.1"
# define LIBNSS_COMPAT_SO               "libnss_compat.so.2"
# define LIBNSS_DNS_SO                  "libnss_dns.so.2"
# define LIBNSS_FILES_SO                "libnss_files.so.2"
# define LIBNSS_HESIOD_SO               "libnss_hesiod.so.2"
# define LIBNSS_LDAP_SO                 "libnss_ldap.so.2"
# define LIBNSS_NISPLUS_SO              "libnss_nisplus.so.2"
# define LIBNSS_NIS_SO                  "libnss_nis.so.2"
# define LIBPTHREAD_SO                  "libpthread.so.0"
# define LIBRESOLV_SO                   "libresolv.so.2"
# define LIBRT_SO                       "librt.so.1"
# define LIBTHREAD_DB_SO                "libthread_db.so.1"
# define LIBUTIL_SO                     "libutil.so.1"
#else
# define LD_LINUX_X86_64_SO             "ld-linux-x86-64.so.2"
# define LD_SO                          "ld-linux-x86-64.so.2"
# define LIBANL_SO                      "libanl.so.1"
# define LIBBROKENLOCALE_SO             "libBrokenLocale.so.1"
# define LIBCIDN_SO                     "libcidn.so.1"
# define LIBCRYPT_SO                    "libcrypt.so.1"
# define LIBC_SO                        "libc.so.6"
# define LIBDL_SO                       "libdl.so.2"
# define LIBM_SO                        "libm.so.6"
# define LIBNSL_SO                      "libnsl.so.1"
# define LIBNSS_COMPAT_SO               "libnss_compat.so.2"
# define LIBNSS_DNS_SO                  "libnss_dns.so.2"
# define LIBNSS_FILES_SO                "libnss_files.so.2"
# define LIBNSS_HESIOD_SO               "libnss_hesiod.so.2"
# define LIBNSS_LDAP_SO                 "libnss_ldap.so.2"
# define LIBNSS_NISPLUS_SO              "libnss_nisplus.so.2"
# define LIBNSS_NIS_SO                  "libnss_nis.so.2"
# define LIBPTHREAD_SO                  "libpthread.so.0"
# define LIBRESOLV_SO                   "libresolv.so.2"
# define LIBRT_SO                       "librt.so.1"
# define LIBTHREAD_DB_SO                "libthread_db.so.1"
# define LIBUTIL_SO                     "libutil.so.1"
#endif

#endif	/* gnu/lib-names.h */
