diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-02-18 18:47:34 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-02-18 18:47:34 +0000 |
commit | 4ffb1771554dd4661beb44be2036c598aa56c80a (patch) | |
tree | 28c5450c2dca041865cd73a3b1f90178fd7f20ba /misc/hsearch.c | |
parent | 94c5a52a841f807a23dbdd19a5ddeb505cc1d543 (diff) | |
download | glibc-4ffb1771554dd4661beb44be2036c598aa56c80a.tar.gz |
Fix search.h namespace (bug 17996).
The implementation of the (XSI POSIX) functions hsearch / hcreate /
hdestroy uses hsearch_r / hcreate_r / hdestroy_r, which are not POSIX
functions. This patch makes those into weak aliases for __*_r and
uses those names for the calls within libc.
Tested for x86_64 that the disassembly of installed shared libraries
is unchanged by this patch.
[BZ #17996]
* include/search.h (hcreate_r): Don't use libc_hidden_proto.
(hdestroy_r): Likewise.
(hsearch_r): Likewise.
(__hcreate_r): Declare and use libc_hidden_proto.
(__hdestroy_r): Likewise.
(__hsearch_r): Likewise.
* misc/hsearch.c (hsearch): Call __hsearch_r instead of hsearch_r.
(hcreate): Call __hcreate_r instead of hcreate_r.
(__hdestroy): Call __hdestroy_r instead of hdestroy_r.
* misc/hsearch_r.c (hcreate_r): Rename to __hcreate_r and define
as weak alias of __hcreate_r.
(hdestroy_r): Rename to __hdestroy_r and define as weak alias of
__hdestroy_r.
(hsearch_r): Rename to __hsearch_r and define as weak alias of
__hsearch_r.
* conform/Makefile (test-xfail-XPG3/search.h/linknamespace):
Remove variable.
(test-xfail-XPG4/search.h/linknamespace): Likewise.
(test-xfail-UNIX98/search.h/linknamespace): Likewise.
(test-xfail-XOPEN2K/search.h/linknamespace): Likewise.
(test-xfail-XOPEN2K8/search.h/linknamespace): Likewise.
Diffstat (limited to 'misc/hsearch.c')
-rw-r--r-- | misc/hsearch.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/misc/hsearch.c b/misc/hsearch.c index 510f170885..7a0b0dc406 100644 --- a/misc/hsearch.c +++ b/misc/hsearch.c @@ -30,7 +30,7 @@ hsearch (item, action) { ENTRY *result; - (void) hsearch_r (item, action, &result, &htab); + (void) __hsearch_r (item, action, &result, &htab); return result; } @@ -40,14 +40,14 @@ int hcreate (nel) size_t nel; { - return hcreate_r (nel, &htab); + return __hcreate_r (nel, &htab); } void __hdestroy (void) { - hdestroy_r (&htab); + __hdestroy_r (&htab); } weak_alias (__hdestroy, hdestroy) |