about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2014-12-04 17:12:46 +0000
committerJoseph Myers <joseph@codesourcery.com>2014-12-04 17:12:46 +0000
commit84dbedb6081f655bdfc4bf93a6e0e7f46234a8a7 (patch)
treedf548acb0c1b68f54e169b3ca3602a75cdaf4907
parentaf50dfc10ae33437d044fa040e3088452fa364a0 (diff)
downloadglibc-84dbedb6081f655bdfc4bf93a6e0e7f46234a8a7.tar.gz
glibc-84dbedb6081f655bdfc4bf93a6e0e7f46234a8a7.tar.xz
glibc-84dbedb6081f655bdfc4bf93a6e0e7f46234a8a7.zip
Fix linknamespace h_errno handling.
Some linknamespace tests were failing because of references to
h_errno.  References to this symbol should be allowed for XPG4, UNIX98
and XOPEN2K; this patch adds it to the list of allowed data symbols
for those standards.  (h_errno was removed in the 2008 edition of
POSIX, so POSIX2008 and XOPEN2K8 references to it are genuine bugs;
fortunately it's not a public data symbol - __h_errno_location is
public, TLS h_errno is GLIBC_PRIVATE - so the symbol can simply be
renamed to __h_errno to fix those bugs without the ABI complications
normally associated with namespace issues for data symbols.)

Tested for x86_64.

	* conform/list-header-symbols.pl (%extra_syms): Add h_errno for
	XPG4, UNIX98 and XOPEN2K.
	* conform/Makefile (test-xfail-XOPEN2K/grp.h/linknamespace):
	Remove variable.
	(test-xfail-XOPEN2K/pwd.h/linknamespace): Likewise.
-rw-r--r--ChangeLog8
-rw-r--r--conform/Makefile2
-rw-r--r--conform/list-header-symbols.pl7
3 files changed, 12 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index a6663377e6..5134d116c8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2014-12-04  Joseph Myers  <joseph@codesourcery.com>
+
+	* conform/list-header-symbols.pl (%extra_syms): Add h_errno for
+	XPG4, UNIX98 and XOPEN2K.
+	* conform/Makefile (test-xfail-XOPEN2K/grp.h/linknamespace):
+	Remove variable.
+	(test-xfail-XOPEN2K/pwd.h/linknamespace): Likewise.
+
 2014-12-04  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
 	* libio/fileops.c: Use ISO C style for function definitions.
diff --git a/conform/Makefile b/conform/Makefile
index e720ac63f3..a73b217005 100644
--- a/conform/Makefile
+++ b/conform/Makefile
@@ -410,11 +410,9 @@ test-xfail-XOPEN2K/fcntl.h/linknamespace = yes
 test-xfail-XOPEN2K/fmtmsg.h/linknamespace = yes
 test-xfail-XOPEN2K/fnmatch.h/linknamespace = yes
 test-xfail-XOPEN2K/glob.h/linknamespace = yes
-test-xfail-XOPEN2K/grp.h/linknamespace = yes
 test-xfail-XOPEN2K/libgen.h/linknamespace = yes
 test-xfail-XOPEN2K/mqueue.h/linknamespace = yes
 test-xfail-XOPEN2K/netdb.h/linknamespace = yes
-test-xfail-XOPEN2K/pwd.h/linknamespace = yes
 test-xfail-XOPEN2K/regex.h/linknamespace = yes
 test-xfail-XOPEN2K/search.h/linknamespace = yes
 test-xfail-XOPEN2K/semaphore.h/linknamespace = yes
diff --git a/conform/list-header-symbols.pl b/conform/list-header-symbols.pl
index 7d15a1b64c..bc2042946d 100644
--- a/conform/list-header-symbols.pl
+++ b/conform/list-header-symbols.pl
@@ -47,14 +47,15 @@ $extra_syms{"XPG3"} = ["errno", "setjmp", "va_end", "environ", "signgam",
 $extra_syms{"XPG4"} = ["errno", "setjmp", "va_end", "environ", "signgam",
 		       "loc1", "loc2", "locs", "sigsetjmp", "optarg",
 		       "optind", "opterr", "optopt", "daylight", "timezone",
-		       "tzname", "getdate_err"];
+		       "tzname", "getdate_err", "h_errno"];
 $extra_syms{"UNIX98"} = ["errno", "setjmp", "va_end", "environ", "signgam",
 			 "loc1", "loc2", "locs", "sigsetjmp", "optarg",
 			 "optind", "opterr", "optopt", "daylight", "timezone",
-			 "tzname", "getdate_err"];
+			 "tzname", "getdate_err", "h_errno"];
 $extra_syms{"XOPEN2K"} = ["errno", "setjmp", "va_end", "environ", "signgam",
 			  "sigsetjmp", "optarg", "optind", "opterr", "optopt",
-			  "daylight", "timezone", "tzname", "getdate_err"];
+			  "daylight", "timezone", "tzname", "getdate_err",
+			  "h_errno"];
 $extra_syms{"XOPEN2K8"} = ["errno", "setjmp", "va_end", "environ", "signgam",
 			   "sigsetjmp", "optarg", "optind", "opterr", "optopt",
 			   "daylight", "timezone", "tzname", "getdate_err"];