This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] Don't use GLIBC_PRIVATE errno outside of libraries
- From: Andreas Schwab <schwab at suse dot de>
- To: libc-alpha at sourceware dot org
- Date: Tue, 29 Jan 2013 09:47:31 +0100
- Subject: [PATCH] Don't use GLIBC_PRIVATE errno outside of libraries
Now that IN_LIB is always defined while building a library, this is easy
to fix.
Andreas.
[BZ #14142]
* include/errno.h: Redefine errno only if !NOT_IN_libc || IN_LIB.
* include/netdb.h: Likewise for h_errno.
* elf/tst-stackguard1.c: Include <tls.h>.
* tst-cancel14.c: Include <sys/time.h>.
* tst-cancel15.c: Likewise.
* tst-mutex9.c: Include <stdint.h>, <stdlib.h> and <sys/time.h>.
* tst-stackguard1.c: Include <tls.h>
diff --git a/NEWS b/NEWS
index 9a039d8..32a95cd 100644
--- a/NEWS
+++ b/NEWS
@@ -9,8 +9,8 @@ Version 2.18
* The following bugs are resolved with this release:
- 13951, 14200, 14317, 14327, 14496, 14964, 14981, 14982, 14985, 14994,
- 14996, 15003, 15020, 15023, 15036.
+ 13951, 14142, 14200, 14317, 14327, 14496, 14964, 14981, 14982, 14985,
+ 14994, 14996, 15003, 15020, 15023, 15036.
Version 2.17
diff --git a/elf/tst-stackguard1.c b/elf/tst-stackguard1.c
index 2b4fd9a..fba60bd 100644
--- a/elf/tst-stackguard1.c
+++ b/elf/tst-stackguard1.c
@@ -23,6 +23,7 @@
#include <string.h>
#include <sys/wait.h>
#include <stackguard-macros.h>
+#include <tls.h>
#include <unistd.h>
static const char *command;
diff --git a/include/errno.h b/include/errno.h
index 98c6080..f1b93a8 100644
--- a/include/errno.h
+++ b/include/errno.h
@@ -17,7 +17,7 @@
# define errno rtld_errno
extern int rtld_errno attribute_hidden;
-# else
+# elif !defined NOT_IN_libc || defined IN_LIB
# include <tls.h>
@@ -29,7 +29,7 @@ extern int rtld_errno attribute_hidden;
# endif
extern __thread int errno attribute_tls_model_ie;
-# endif /* RTLD_PRIVATE_ERRNO */
+# endif /* !NOT_IN_libc || IN_LIB */
# define __set_errno(val) (errno = (val))
diff --git a/include/netdb.h b/include/netdb.h
index 3f2ae06..8a569ba 100644
--- a/include/netdb.h
+++ b/include/netdb.h
@@ -3,18 +3,20 @@
#ifndef _ISOMAC
/* Macros for accessing h_errno from inside libc. */
-# undef h_errno
-# ifdef _LIBC_REENTRANT
-# include <tls.h>
-# ifndef NOT_IN_libc
-# define h_errno __libc_h_errno
-# else
-# define h_errno h_errno /* For #ifndef h_errno tests. */
-# endif
+# if !defined NOT_IN_libc || defined IN_LIB
+# undef h_errno
+# ifdef _LIBC_REENTRANT
+# include <tls.h>
+# ifndef NOT_IN_libc
+# define h_errno __libc_h_errno
+# else
+# define h_errno h_errno /* For #ifndef h_errno tests. */
+# endif
extern __thread int h_errno attribute_tls_model_ie;
-# else
+# else
extern int h_errno;
-# endif /* _LIBC_REENTRANT */
+# endif /* _LIBC_REENTRANT */
+# endif /* !NOT_IN_libc || IN_LIB */
# define __set_h_errno(x) (h_errno = (x))
libc_hidden_proto (hstrerror)
diff --git a/nptl/tst-cancel14.c b/nptl/tst-cancel14.c
index fbaed49..ca9042d 100644
--- a/nptl/tst-cancel14.c
+++ b/nptl/tst-cancel14.c
@@ -23,6 +23,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <sys/time.h>
static pthread_barrier_t bar;
diff --git a/nptl/tst-cancel15.c b/nptl/tst-cancel15.c
index 0119cc7..3f320ad 100644
--- a/nptl/tst-cancel15.c
+++ b/nptl/tst-cancel15.c
@@ -23,6 +23,7 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <sys/time.h>
static pthread_barrier_t bar;
diff --git a/nptl/tst-mutex9.c b/nptl/tst-mutex9.c
index adb3b61..1d689bd 100644
--- a/nptl/tst-mutex9.c
+++ b/nptl/tst-mutex9.c
@@ -18,10 +18,13 @@
#include <errno.h>
#include <pthread.h>
+#include <stdint.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/mman.h>
+#include <sys/time.h>
#include <sys/wait.h>
diff --git a/nptl/tst-stackguard1.c b/nptl/tst-stackguard1.c
index f0f707f..57a48ad 100644
--- a/nptl/tst-stackguard1.c
+++ b/nptl/tst-stackguard1.c
@@ -24,6 +24,7 @@
#include <string.h>
#include <sys/wait.h>
#include <stackguard-macros.h>
+#include <tls.h>
#include <unistd.h>
static const char *command;
--
1.8.1.2
--
Andreas Schwab, SUSE Labs, schwab@suse.de
GPG Key fingerprint = 0196 BAD8 1CE9 1970 F4BE 1748 E4D4 88E3 0EEA B9D7
"And now for something completely different."