This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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."


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]