kopensolaris-gnu/glibc.git
25 years agoCheck for `profil' syscall.
roland [Thu, 21 Sep 1995 23:17:14 +0000 (23:17 +0000)]
Check for `profil' syscall.

25 years ago.
roland [Thu, 21 Sep 1995 21:41:20 +0000 (21:41 +0000)]
.

25 years ago(infodir, prefix, INSTALL, INSTALL_DATA): Variables removed.
roland [Thu, 21 Sep 1995 21:40:24 +0000 (21:40 +0000)]
(infodir, prefix, INSTALL, INSTALL_DATA): Variables removed.

25 years ago.
roland [Thu, 21 Sep 1995 16:21:49 +0000 (16:21 +0000)]
.

25 years agoNew data from ADO tzdata95h
roland [Thu, 21 Sep 1995 16:19:28 +0000 (16:19 +0000)]
New data from ADO tzdata95h

25 years ago.
roland [Thu, 21 Sep 1995 16:12:57 +0000 (16:12 +0000)]
.

25 years ago(build-shlib): Use $(@F:lib%.so=%) in place of $(notdir $*), so it wins for
roland [Thu, 21 Sep 1995 16:11:47 +0000 (16:11 +0000)]
(build-shlib): Use $(@F:lib%.so=%) in place of $(notdir $*), so it wins for
the explicit libc.so rule as well as the pattern rule.

25 years ago.
roland [Thu, 21 Sep 1995 15:16:01 +0000 (15:16 +0000)]
.

25 years ago(build-shlib): Use $(@F:lib%=%) in place of $(notdir $*), so it wins for
roland [Thu, 21 Sep 1995 15:02:58 +0000 (15:02 +0000)]
(build-shlib): Use $(@F:lib%=%) in place of $(notdir $*), so it wins for
the explicit libc.so rule as well as the pattern rule.

25 years ago.
roland [Thu, 21 Sep 1995 06:24:21 +0000 (06:24 +0000)]
.

25 years ago(init1) [PIC]: Call __libc_global_ctors.
roland [Thu, 21 Sep 1995 06:23:19 +0000 (06:23 +0000)]
(init1) [PIC]: Call __libc_global_ctors.

25 years ago(union semun): New type.
roland [Thu, 21 Sep 1995 06:22:16 +0000 (06:22 +0000)]
(union semun): New type.

25 years agoRewritten.
roland [Thu, 21 Sep 1995 06:12:43 +0000 (06:12 +0000)]
Rewritten.

25 years agoNew file.
roland [Thu, 21 Sep 1995 06:11:08 +0000 (06:11 +0000)]
New file.

25 years agoFix name in decl of ___fpu_control.
roland [Thu, 21 Sep 1995 06:08:47 +0000 (06:08 +0000)]
Fix name in decl of ___fpu_control.

25 years agoObsoleted by init-first.c.
roland [Thu, 21 Sep 1995 06:02:42 +0000 (06:02 +0000)]
Obsoleted by init-first.c.

25 years ago(build-shlib): New canned sequence, broken out of lib%.so rule.
roland [Thu, 21 Sep 1995 06:00:05 +0000 (06:00 +0000)]
(build-shlib): New canned sequence, broken out of lib%.so rule.
Link in $^ instead of just $<.
(lib%.so: lib%_pic.a): Use it.
(libc.so): New target; use $(build-shlib) for cmds, but also depend
on soinit.so first and sofini.so last.

25 years ago(distribute): Add soinit.c and sofini.c.
roland [Thu, 21 Sep 1995 05:57:43 +0000 (05:57 +0000)]
(distribute): Add soinit.c and sofini.c.
(extra-objs): Add soinit.so and sofini.so.

25 years agoNew file.
roland [Thu, 21 Sep 1995 05:56:46 +0000 (05:56 +0000)]
New file.

25 years agoNew file.
roland [Thu, 21 Sep 1995 05:56:15 +0000 (05:56 +0000)]
New file.

25 years ago(shmat): Fix return type to char *.
roland [Thu, 21 Sep 1995 04:18:53 +0000 (04:18 +0000)]
(shmat): Fix return type to char *.

25 years ago(key_t): Type removed.
roland [Thu, 21 Sep 1995 04:17:45 +0000 (04:17 +0000)]
(key_t): Type removed.

25 years ago(vsyslog): Rewritten using open_memstream to dynamically allocate buffers.
roland [Thu, 21 Sep 1995 04:13:06 +0000 (04:13 +0000)]
(vsyslog): Rewritten using open_memstream to dynamically allocate buffers.

25 years ago(install-lib-nosubdir): Make this, rather than install-no-libc.a, depend on
roland [Thu, 21 Sep 1995 04:03:29 +0000 (04:03 +0000)]
(install-lib-nosubdir): Make this, rather than install-no-libc.a, depend on
the installed shared libraries.

25 years ago.
roland [Thu, 21 Sep 1995 04:01:40 +0000 (04:01 +0000)]
.

25 years agoInclude errno.h.
roland [Wed, 20 Sep 1995 22:02:48 +0000 (22:02 +0000)]
Include errno.h.

25 years agoInclude errno.h.
roland [Wed, 20 Sep 1995 22:01:49 +0000 (22:01 +0000)]
Include errno.h.

25 years agoChanges from Paul Eggert:
roland [Tue, 19 Sep 1995 19:31:10 +0000 (19:31 +0000)]
Changes from Paul Eggert:

. Clarify behavior with regard to leap seconds.
. Nail down more precisely when static data gets munged.
. Time zone names are not necessarily 3 letters (e.g. `NZDT').
. Posix does not require that time_t be long int.
. The max tm_sec value is 60, not 61 (the C Standard is buggy here).
. tzset sets `daylight', `timezone'.
. `timezone' does not necessarily reflect US DST rules.
. Correct a common misconception regarding the `timezone' variable.

25 years ago(parent-mostlyclean): Remove all flavors of the parent library.
roland [Tue, 19 Sep 1995 16:23:25 +0000 (16:23 +0000)]
(parent-mostlyclean): Remove all flavors of the parent library.

25 years ago(distclean-1): Remove config.cache, config.log, config.h.
roland [Tue, 19 Sep 1995 16:19:16 +0000 (16:19 +0000)]
(distclean-1): Remove config.cache, config.log, config.h.

25 years ago(distclean-1): Remove config.cache and config.log.
roland [Tue, 19 Sep 1995 16:18:57 +0000 (16:18 +0000)]
(distclean-1): Remove config.cache and config.log.

25 years ago(getmntent): Skip multiple whitespace chars between fields.
roland [Tue, 19 Sep 1995 04:22:37 +0000 (04:22 +0000)]
(getmntent): Skip multiple whitespace chars between fields.

25 years ago(_hurd_startup): If RPC returns EXEC_STACK_ARGS flag, get args from stack.
roland [Tue, 19 Sep 1995 04:01:44 +0000 (04:01 +0000)]
(_hurd_startup): If RPC returns EXEC_STACK_ARGS flag, get args from stack.
If args on stack but have info from RPC, relocate args on stack to make
space for struct hurd_startup_data.

25 years agoMany decls for hsearch functions.
roland [Tue, 19 Sep 1995 02:55:01 +0000 (02:55 +0000)]
Many decls for hsearch functions.

25 years agoInclude errno.h.
roland [Tue, 19 Sep 1995 02:50:52 +0000 (02:50 +0000)]
Include errno.h.

25 years agoInclude errno.h.
roland [Mon, 18 Sep 1995 22:28:26 +0000 (22:28 +0000)]
Include errno.h.

25 years agoInclude errno.h.
roland [Mon, 18 Sep 1995 22:14:11 +0000 (22:14 +0000)]
Include errno.h.

25 years agoInclude errno.h.
roland [Mon, 18 Sep 1995 21:50:56 +0000 (21:50 +0000)]
Include errno.h.

25 years agoDon't check for null argument; let it fault.
roland [Mon, 18 Sep 1995 21:49:57 +0000 (21:49 +0000)]
Don't check for null argument; let it fault.

25 years agoDon't check for null argument; let it fault.
roland [Mon, 18 Sep 1995 21:49:23 +0000 (21:49 +0000)]
Don't check for null argument; let it fault.

25 years agoDon't check for null argument; let it fault.
roland [Mon, 18 Sep 1995 21:48:31 +0000 (21:48 +0000)]
Don't check for null argument; let it fault.

25 years agoDon't check for null argument; let it fault.
roland [Mon, 18 Sep 1995 21:47:47 +0000 (21:47 +0000)]
Don't check for null argument; let it fault.

25 years agoDon't check for null argument; let it fault.
roland [Mon, 18 Sep 1995 21:46:58 +0000 (21:46 +0000)]
Don't check for null argument; let it fault.

25 years agoInclude errno.h.
roland [Mon, 18 Sep 1995 21:45:30 +0000 (21:45 +0000)]
Include errno.h.

25 years agoInclude errno.h.
roland [Mon, 18 Sep 1995 21:44:33 +0000 (21:44 +0000)]
Include errno.h.

25 years agoInclude errno.h.
roland [Mon, 18 Sep 1995 21:18:01 +0000 (21:18 +0000)]
Include errno.h.

25 years agoInclude errno.h.
roland [Mon, 18 Sep 1995 21:17:07 +0000 (21:17 +0000)]
Include errno.h.

25 years agoInclude errno.h.
roland [Mon, 18 Sep 1995 21:16:12 +0000 (21:16 +0000)]
Include errno.h.

25 years agoInclude errno.h.
roland [Mon, 18 Sep 1995 21:14:53 +0000 (21:14 +0000)]
Include errno.h.

25 years agoInclude errno.h.
roland [Mon, 18 Sep 1995 20:56:29 +0000 (20:56 +0000)]
Include errno.h.

25 years agoInclude errno.h.
roland [Mon, 18 Sep 1995 20:47:24 +0000 (20:47 +0000)]
Include errno.h.

25 years ago.
roland [Mon, 18 Sep 1995 19:06:33 +0000 (19:06 +0000)]
.

25 years ago(+gccwarn): Remove -Wbad-function-cast, which seems to be useless.
roland [Mon, 18 Sep 1995 19:05:43 +0000 (19:05 +0000)]
(+gccwarn): Remove -Wbad-function-cast, which seems to be useless.

25 years ago.
roland [Mon, 18 Sep 1995 19:00:32 +0000 (19:00 +0000)]
.

25 years agoMon Sep 18 12:39:22 1995 Paul Eggert <eggert@twinsun.com>
roland [Mon, 18 Sep 1995 18:58:37 +0000 (18:58 +0000)]
Mon Sep 18 12:39:22 1995  Paul Eggert  <eggert@twinsun.com>

* mktime.c (localtime_r): Add substitute if the system doesn't
provide one.

25 years ago(gmtime_r): Define as weak alias.
roland [Mon, 18 Sep 1995 18:55:32 +0000 (18:55 +0000)]
(gmtime_r): Define as weak alias.

25 years ago(localtime_r): Define as weak alias.
roland [Mon, 18 Sep 1995 18:54:33 +0000 (18:54 +0000)]
(localtime_r): Define as weak alias.

25 years ago[__USE_REENTRANT] (gmtime_r, localtime_r): Declare them.
roland [Mon, 18 Sep 1995 18:52:38 +0000 (18:52 +0000)]
[__USE_REENTRANT] (gmtime_r, localtime_r): Declare them.

25 years agoSun Sep 17 08:22:12 1995 Paul Eggert <eggert@twinsun.com>
roland [Mon, 18 Sep 1995 18:50:41 +0000 (18:50 +0000)]
Sun Sep 17 08:22:12 1995  Paul Eggert  <eggert@twinsun.com>

Fix mktime so that it does not write over localtime's returned value.
* localtime.c (__localtime_r): New function, with extra arg
specifying where to store result.
(localtime): Use it.
(_tmbuf): New var.
* gmtime.c (__gmtime_r, gmtime, _tmbuf): Likewise.
* mktime.c (__mktime_internal): Conversion function is now
__localtime_r style, not localtime style.
(mktime): Pass __localtime_r, not localtime.
* timegm.c (timegm): Pass __gmtime_r, not gmtime.
* offtime.c (__offtime): New arg specifying where to store result.
* time.h (__mktime_internal, __offtime): Adjust decls accordingly.
(__gmtime_r, __localtime_r): New decls.

25 years agoOnly define _ERRNO_H #ifndef __need_Emath.
roland [Mon, 18 Sep 1995 18:39:08 +0000 (18:39 +0000)]
Only define _ERRNO_H #ifndef __need_Emath.
#undef __need_Emath after including errnos.h.
[_ERRNO_H]: Protect decls with this.

25 years agoRevert last change.
roland [Mon, 18 Sep 1995 18:36:16 +0000 (18:36 +0000)]
Revert last change.

25 years agoRevert last change.
roland [Mon, 18 Sep 1995 18:35:39 +0000 (18:35 +0000)]
Revert last change.

25 years agoSat Sep 16 18:32:06 1995 Paul Eggert <eggert@twinsun.com>
roland [Mon, 18 Sep 1995 18:22:33 +0000 (18:22 +0000)]
Sat Sep 16 18:32:06 1995  Paul Eggert  <eggert@twinsun.com>

* time/gmtime.c: Clear tm_isdst.

25 years agoSat Sep 16 21:54:59 1995 Paul Eggert <eggert@twinsun.com>
roland [Mon, 18 Sep 1995 18:21:30 +0000 (18:21 +0000)]
Sat Sep 16 21:54:59 1995  Paul Eggert  <eggert@twinsun.com>

* time/mktime.c, time/time.h, time/timegm.c (__mktime_internal):
Renamed from _mktime_internal to avoid namespace pollution.

25 years agoSun Sep 17 08:22:12 1995 Paul Eggert <eggert@twinsun.com>
roland [Mon, 18 Sep 1995 18:15:22 +0000 (18:15 +0000)]
Sun Sep 17 08:22:12 1995  Paul Eggert  <eggert@twinsun.com>

* time/localtime.c: <stddef.h>, <ctype.h>, <stdio.h>,
<stdlib.h>, <string.h>: Remove includes.
<errno.h>: Add include.

25 years agoInclude errnos.h instead of errno.h.
roland [Mon, 18 Sep 1995 18:12:59 +0000 (18:12 +0000)]
Include errnos.h instead of errno.h.

25 years agoInclude errnos.h instead of errno.h.
roland [Mon, 18 Sep 1995 18:12:13 +0000 (18:12 +0000)]
Include errnos.h instead of errno.h.

25 years ago(ecvt_r, fcvt_r): Last arg is size_t, not int.
roland [Mon, 18 Sep 1995 17:38:07 +0000 (17:38 +0000)]
(ecvt_r, fcvt_r): Last arg is size_t, not int.

25 years ago(ecvt_r, fcvt_r): Fix type of last arg: make it size_t.
roland [Mon, 18 Sep 1995 17:37:20 +0000 (17:37 +0000)]
(ecvt_r, fcvt_r): Fix type of last arg: make it size_t.

25 years agoCall __io_pathconf instead of __file_pathconf.
roland [Mon, 18 Sep 1995 17:33:39 +0000 (17:33 +0000)]
Call __io_pathconf instead of __file_pathconf.

25 years agoCall __io_pathconf instead of __file_pathconf.
roland [Mon, 18 Sep 1995 17:32:51 +0000 (17:32 +0000)]
Call __io_pathconf instead of __file_pathconf.

25 years ago.
roland [Mon, 18 Sep 1995 09:00:07 +0000 (09:00 +0000)]
.

25 years ago(subdirs): Add sysvipc.
roland [Mon, 18 Sep 1995 06:49:54 +0000 (06:49 +0000)]
(subdirs): Add sysvipc.

25 years ago(srand48_r): Use UL suffix for huge constant.
roland [Mon, 18 Sep 1995 06:06:28 +0000 (06:06 +0000)]
(srand48_r): Use UL suffix for huge constant.

25 years ago(__drand48_iterate): Use UL suffix for huge constant.
roland [Mon, 18 Sep 1995 06:05:41 +0000 (06:05 +0000)]
(__drand48_iterate): Use UL suffix for huge constant.

25 years ago(__drand48_iterate): Use U suffix for huge constant.
roland [Mon, 18 Sep 1995 06:01:18 +0000 (06:01 +0000)]
(__drand48_iterate): Use U suffix for huge constant.

25 years ago(srand48_r): Use U suffix for huge constant.
roland [Mon, 18 Sep 1995 05:58:27 +0000 (05:58 +0000)]
(srand48_r): Use U suffix for huge constant.

25 years ago(__hurd_file_name_lookup_retry): Call __file_set_size instead of
roland [Mon, 18 Sep 1995 03:59:30 +0000 (03:59 +0000)]
(__hurd_file_name_lookup_retry): Call __file_set_size instead of
__file_truncate.

25 years ago(__USE_REENTRANT): New macro.
roland [Mon, 18 Sep 1995 03:31:21 +0000 (03:31 +0000)]
(__USE_REENTRANT): New macro.

25 years ago.
roland [Mon, 18 Sep 1995 03:28:15 +0000 (03:28 +0000)]
.

25 years agoCall __file_set_size instead of __file_truncate.
roland [Mon, 18 Sep 1995 03:27:29 +0000 (03:27 +0000)]
Call __file_set_size instead of __file_truncate.

25 years agoCall __file_set_size instead of __file_truncate.
roland [Mon, 18 Sep 1995 03:26:42 +0000 (03:26 +0000)]
Call __file_set_size instead of __file_truncate.

25 years ago.
roland [Sun, 17 Sep 1995 22:28:51 +0000 (22:28 +0000)]
.

25 years ago.
roland [Sun, 17 Sep 1995 20:23:15 +0000 (20:23 +0000)]
.

25 years ago * posix/sys/types.h [__USE_SVID] (key_t): New type.
roland [Sun, 17 Sep 1995 20:19:43 +0000 (20:19 +0000)]
* posix/sys/types.h [__USE_SVID] (key_t): New type.
* sysvipc/Makefile, sysvipc/ftok.c, sysvipc/sys/ipc.h,
sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h,
sysdeps/stub/sys/msq_buf.h, sysdeps/stub/sys/sem_buf.h,
sysdeps/stub/sys/shm_buf.h, sysdeps/stub/sys/ipc_buf.h,
sysdeps/stub/semctl.c, sysdeps/stub/semget.c, sysdeps/stub/semop.c,
sysdeps/stub/shmat.c, sysdeps/stub/shmctl.c, sysdeps/stub/shmdt.c,
sysdeps/stub/shmget.c, sysdeps/stub/msgctl.c, sysdeps/stub/msgget.c,
sysdeps/stub/msgrcv.c, sysdeps/stub/msgsnd.c: New files.
Add implementation of System V IPC.

25 years ago * posix/sys/types.h [__USE_SVID] (key_t): New type.
roland [Sun, 17 Sep 1995 20:19:23 +0000 (20:19 +0000)]
* posix/sys/types.h [__USE_SVID] (key_t): New type.
* sysvipc/Makefile, sysvipc/ftok.c, sysvipc/sys/ipc.h,
sysvipc/sys/msg.h, sysvipc/sys/sem.h, sysvipc/sys/shm.h,
sysdeps/stub/sys/msq_buf.h, sysdeps/stub/sys/sem_buf.h,
sysdeps/stub/sys/shm_buf.h, sysdeps/stub/sys/ipc_buf.h,
sysdeps/stub/semctl.c, sysdeps/stub/semget.c, sysdeps/stub/semop.c,
sysdeps/stub/shmat.c, sysdeps/stub/shmctl.c, sysdeps/stub/shmdt.c,
sysdeps/stub/shmget.c, sysdeps/stub/msgctl.c, sysdeps/stub/msgget.c,
sysdeps/stub/msgrcv.c, sysdeps/stub/msgsnd.c: New files.
Add implementation of System V IPC.

25 years ago * sysdeps/generic/_strerror.c: _strerror_internal now takes
roland [Sun, 17 Sep 1995 20:16:43 +0000 (20:16 +0000)]
* sysdeps/generic/_strerror.c: _strerror_internal now takes
three argument and has and explicit buffer length.
* sysdeps/mach/_strerror.c: Change for new interface with three
arguments.
* stdio/perror.c, stdio/vfprintf.c: Callers changed.

25 years ago[__USE_SVID] (key_t): New type.
roland [Sun, 17 Sep 1995 20:14:42 +0000 (20:14 +0000)]
[__USE_SVID] (key_t): New type.

25 years agoNew file.
roland [Sun, 17 Sep 1995 20:13:09 +0000 (20:13 +0000)]
New file.

25 years agoNew file; reentrant version.
roland [Sun, 17 Sep 1995 20:08:57 +0000 (20:08 +0000)]
New file; reentrant version.

25 years agoNew file; reentrant version.
roland [Sun, 17 Sep 1995 20:07:52 +0000 (20:07 +0000)]
New file; reentrant version.

25 years ago * sysdeps/posix/sysconf.c (__sysconf): Test for CLK_TCK in case
roland [Sun, 17 Sep 1995 20:07:40 +0000 (20:07 +0000)]
* sysdeps/posix/sysconf.c (__sysconf): Test for CLK_TCK in case
_SC_CLK_TCK and return it when available.
Test for STREAM_MAX in case _SC_STREAM_MAX and return it when
available.
Add case for _SC_2_LOCALEDEF which is now available.

25 years ago * sysdeps/posix/utimes.c: Include <utime.h> for prototype.
roland [Sun, 17 Sep 1995 20:07:26 +0000 (20:07 +0000)]
* sysdeps/posix/utimes.c: Include <utime.h> for prototype.
(utimes): First parameter to utime must be file, not path.

25 years ago * sysdeps/mach/hurd/ttyname_r.c: New file. Reentrant version.
roland [Sun, 17 Sep 1995 20:06:13 +0000 (20:06 +0000)]
* sysdeps/mach/hurd/ttyname_r.c: New file.  Reentrant version.
* sysdeps/mach/_strerror.c: Change for new interface with three
arguments.

25 years ago * sysdeps/mach/hurd/ttyname_r.c: New file. Reentrant version.
roland [Sun, 17 Sep 1995 20:06:04 +0000 (20:06 +0000)]
* sysdeps/mach/hurd/ttyname_r.c: New file.  Reentrant version.
* sysdeps/mach/_strerror.c: Change for new interface with three
arguments.

25 years ago * sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Set default
roland [Sun, 17 Sep 1995 20:04:15 +0000 (20:04 +0000)]
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Set default
value of user_entry to `_start.

25 years ago * string/strerror_r.c: New file. Reentrant version.
roland [Sun, 17 Sep 1995 20:03:21 +0000 (20:03 +0000)]
* string/strerror_r.c: New file.  Reentrant version.
* string/strerror.c: Change for new _strerror_internal form.
* string/Makefile (routines): Add strerror_r.

25 years ago * stdlib/drand48_r.c, stdlib/erand48_r.c, stdlib/jrand48_r.c,
roland [Sun, 17 Sep 1995 20:00:41 +0000 (20:00 +0000)]
* stdlib/drand48_r.c, stdlib/erand48_r.c, stdlib/jrand48_r.c,
stdlib/lrand48_r.c, stdlib/mrand48_r.c, stdlib/nrand48_r.c,
stdlib/seed48_r.c, stdlib/srand48_r.c, stdlib/lcong48_r.c,
stdlib/drand48-iter.c: New files implementing reentrant versions
of functions from drand48 family.
* stdlib/seed48.c, stdlib/drand48.c, stdlib/erand48.c,
stdlib/jrand48.c, stdlib/lrand48.c, stdlib/mrand48.c,
stdlib/nrand48.c, stdlib/srand48.c, stdlib/lcong48.c:
Rewrite to use reentrant versions.
* stdlib/a64l.c, stdlib/l64a.c: New files.  Implement a64l()
and l64a() functions from SysV library.
* stdlib/Makefile (routines): Add drand48_r, erand48_r, lrand48_r,
nrand48_r, mrand48_r, jrand48_r, srand48_r, seed48_r, lcong48_r,
drand48-iter, a64l, l64a.
* stdlib/stdlib.h: Declare them.

25 years ago(ttyname_r): Add prototype for new function.
roland [Sun, 17 Sep 1995 19:56:19 +0000 (19:56 +0000)]
(ttyname_r): Add prototype for new function.

25 years ago* misc/efgvt_r.c: New file. Reentrant version of [efg]cvt functions.
roland [Sun, 17 Sep 1995 19:55:12 +0000 (19:55 +0000)]
* misc/efgvt_r.c: New file.  Reentrant version of [efg]cvt functions.
misc/hsearch_r.c: New file.  Reentrant version of functions from
hsearch family.
misc/efgcvt.c, misc/hsearch.c: Rewrite to use reentrant functions.
misc/Makefile: Add efgcvt_r.c and hsearch_r.c.