parent
508bd4d357
commit
0e51913595
@ -0,0 +1,87 @@
|
||||
commit 78a90c2f74a2012dd3eff302189e47ff6779a757
|
||||
Author: Andreas Schwab <schwab@linux-m68k.org>
|
||||
Date: Fri Mar 2 23:07:14 2018 +0100
|
||||
|
||||
Fix multiple definitions of __nss_*_database (bug 22918)
|
||||
|
||||
(cherry picked from commit eaf6753f8aac33a36deb98c1031d1bad7b593d2d)
|
||||
|
||||
diff --git a/nscd/gai.c b/nscd/gai.c
|
||||
index d081747797..576fd0045b 100644
|
||||
--- a/nscd/gai.c
|
||||
+++ b/nscd/gai.c
|
||||
@@ -45,3 +45,6 @@
|
||||
#ifdef HAVE_LIBIDN
|
||||
# include <libidn/idn-stub.c>
|
||||
#endif
|
||||
+
|
||||
+/* Some variables normally defined in libc. */
|
||||
+service_user *__nss_hosts_database attribute_hidden;
|
||||
diff --git a/nss/nsswitch.c b/nss/nsswitch.c
|
||||
index d5e655974f..b0f0c11a3e 100644
|
||||
--- a/nss/nsswitch.c
|
||||
+++ b/nss/nsswitch.c
|
||||
@@ -62,7 +62,7 @@ static service_library *nss_new_service (name_database *database,
|
||||
|
||||
/* Declare external database variables. */
|
||||
#define DEFINE_DATABASE(name) \
|
||||
- extern service_user *__nss_##name##_database attribute_hidden; \
|
||||
+ service_user *__nss_##name##_database attribute_hidden; \
|
||||
weak_extern (__nss_##name##_database)
|
||||
#include "databases.def"
|
||||
#undef DEFINE_DATABASE
|
||||
diff --git a/nss/nsswitch.h b/nss/nsswitch.h
|
||||
index eccb535ef5..63573b9ebc 100644
|
||||
--- a/nss/nsswitch.h
|
||||
+++ b/nss/nsswitch.h
|
||||
@@ -226,10 +226,10 @@ libc_hidden_proto (__nss_hostname_digits_dots)
|
||||
#define MAX_NR_ADDRS 48
|
||||
|
||||
/* Prototypes for __nss_*_lookup2 functions. */
|
||||
-#define DEFINE_DATABASE(arg) \
|
||||
- service_user *__nss_##arg##_database attribute_hidden; \
|
||||
- int __nss_##arg##_lookup2 (service_user **, const char *, \
|
||||
- const char *, void **); \
|
||||
+#define DEFINE_DATABASE(arg) \
|
||||
+ extern service_user *__nss_##arg##_database attribute_hidden; \
|
||||
+ int __nss_##arg##_lookup2 (service_user **, const char *, \
|
||||
+ const char *, void **); \
|
||||
libc_hidden_proto (__nss_##arg##_lookup2)
|
||||
#include "databases.def"
|
||||
#undef DEFINE_DATABASE
|
||||
diff --git a/posix/tst-rfc3484-2.c b/posix/tst-rfc3484-2.c
|
||||
index f509534ca9..8c64ac59ff 100644
|
||||
--- a/posix/tst-rfc3484-2.c
|
||||
+++ b/posix/tst-rfc3484-2.c
|
||||
@@ -58,6 +58,7 @@ _res_hconf_init (void)
|
||||
#undef USE_NSCD
|
||||
#include "../sysdeps/posix/getaddrinfo.c"
|
||||
|
||||
+service_user *__nss_hosts_database attribute_hidden;
|
||||
|
||||
/* This is the beginning of the real test code. The above defines
|
||||
(among other things) the function rfc3484_sort. */
|
||||
diff --git a/posix/tst-rfc3484-3.c b/posix/tst-rfc3484-3.c
|
||||
index ae44087a10..1c61aaf844 100644
|
||||
--- a/posix/tst-rfc3484-3.c
|
||||
+++ b/posix/tst-rfc3484-3.c
|
||||
@@ -58,6 +58,7 @@ _res_hconf_init (void)
|
||||
#undef USE_NSCD
|
||||
#include "../sysdeps/posix/getaddrinfo.c"
|
||||
|
||||
+service_user *__nss_hosts_database attribute_hidden;
|
||||
|
||||
/* This is the beginning of the real test code. The above defines
|
||||
(among other things) the function rfc3484_sort. */
|
||||
diff --git a/posix/tst-rfc3484.c b/posix/tst-rfc3484.c
|
||||
index 7f191abbbc..8f45848e44 100644
|
||||
--- a/posix/tst-rfc3484.c
|
||||
+++ b/posix/tst-rfc3484.c
|
||||
@@ -58,6 +58,7 @@ _res_hconf_init (void)
|
||||
#undef USE_NSCD
|
||||
#include "../sysdeps/posix/getaddrinfo.c"
|
||||
|
||||
+service_user *__nss_hosts_database attribute_hidden;
|
||||
|
||||
/* This is the beginning of the real test code. The above defines
|
||||
(among other things) the function rfc3484_sort. */
|
Loading…
Reference in new issue