Compare commits

...
Author SHA1 Message Date
Ulrich Drepper a92f117fec . 1997-05-26 21:36:35 +00:00
Ulrich Drepper 5b9ac69a65 Use AC_PROG_CC_LOCAL instead of AC_PROC_CC. 1997-05-26 21:28:52 +00:00
Ulrich Drepper 654665b7c7 Add AC_PROG_CC_LOCAL which does not fail for environments in which linking
is not possible at configure time (since te libc is just build).
1997-05-26 21:28:20 +00:00
Ulrich Drepper f0271955ec Regenerated: autoconf configure.in 1997-05-26 21:21:00 +00:00
Ulrich Drepper aa01a02424 Regenerated: autoconf sysdeps/generic/configure.in 1997-05-26 21:18:57 +00:00
Ulrich Drepper 620432767f Regenerated: autoconf sysdeps/unix/configure.in 1997-05-26 21:18:55 +00:00
Ulrich Drepper 752069ed74 Regenerated: autoconf sysdeps/unix/common/configure.in 1997-05-26 21:18:54 +00:00
Ulrich Drepper b75d05951a Regenerated: autoconf configure.in 1997-05-26 21:18:52 +00:00
Ulrich Drepper 104f19466b Update. 1997-05-26 20:55:31 +00:00
Ulrich Drepper 8c557d5e3e (__initstate_r): Initialize randomizer type in state array only at
right place.
1997-05-26 20:51:30 +00:00
Ulrich Drepper aff7685365 Remade for experimental-2.0.4 1997-05-26 19:24:19 +00:00
Ulrich Drepper 27bd4a1e78 . 1997-05-26 17:00:08 +00:00
Ulrich Drepper 0a5d42def7 (__erand48_r): Don't generate numbers in [0.5,1.0) but really in [0.0, 1.0). 1997-05-26 16:59:47 +00:00
Ulrich Drepper 4d3a95a6b6 Clarify status of other ports. 1997-05-26 12:17:11 +00:00
Ulrich Drepper fdc5571f25 Update. 1997-05-26 12:14:16 +00:00
Ulrich Drepper 0e04de001a . 1997-05-25 19:08:30 +00:00
Ulrich Drepper 5d42a4c2cc (__data_start): Change local label "nofini" to ".Lnofini". 1997-05-25 19:08:15 +00:00
Ulrich Drepper 0ad9e46784 Use GOT, instead of GOTOFF. 1997-05-25 19:07:24 +00:00
Ulrich Drepper 68b192d0dd Print warning if _XOPEN_SOURCE and _SVID_SOURCE are not defined. 1997-05-25 18:22:14 +00:00
Ulrich Drepper c0a119316e Make 2nd para for scheck const. Update zic.c. 1997-05-25 15:50:36 +00:00
Ulrich Drepper ae2eaff13e updated to most recent tzdata 1997-05-25 01:46:21 +00:00
Ulrich Drepper 6a5f96bfef . 1997-05-25 01:25:42 +00:00
Ulrich Drepper 98bec7469c (_mcleanup): Free tostruct array allocated in monstartup. 1997-05-25 01:24:53 +00:00
Ulrich Drepper 4b4a00eb13 Fix typo. 1997-05-24 22:57:14 +00:00
Ulrich Drepper 51b2586797 Update. 1997-05-24 22:56:14 +00:00
Ulrich Drepper 4e5f9db6ba (elf_machine_runtime_setup): Update skeleton definition. 1997-05-24 22:55:58 +00:00
Ulrich Drepper 6cfad51303 (elf_machine_runtime_setup): Return lazy. 1997-05-24 22:55:45 +00:00
Ulrich Drepper 88c3891b7a atan2 for long double. 1997-05-24 22:55:25 +00:00
Ulrich Drepper 2c606f0f92 (elf_machine_runtime_setup): If we are
not looking at the new thread-safe .plt, don't be lazy about relocs.
(_dl_runtime_resolve): Fix up arithmetic for new .plt layout.
(elf_alpha_fix_plt): Insert wmb as appropriate to ensure safety.
1997-05-24 22:51:29 +00:00
Ulrich Drepper 62bb57925d (svc_register): Change type of protocol parameter to u_long. 1997-05-24 22:51:17 +00:00
Ulrich Drepper f844eec463 (ELF_DYNAMIC_RELOCATE): Let elf_machine_runtime_setup() decide if we
can actually be lazy.
1997-05-24 22:50:15 +00:00
Ulrich Drepper 0f1f93279b (_dl_relocate_object): Don't call elf_machine_runtime_setup. 1997-05-24 22:50:06 +00:00
Ulrich Drepper a83b0f09cb (logb): Fix thinko, reverse output values. 1997-05-24 22:45:51 +00:00
Ulrich Drepper c6c955c542 . 1997-05-22 23:59:20 +00:00
Ulrich Drepper 9e1cbaf632 . 1997-05-22 16:45:26 +00:00
Ulrich Drepper ee96242d57 (logb): Remove second value placed on stack by fxtract. 1997-05-22 16:37:46 +00:00
Ulrich Drepper db4703c178 . 1997-05-22 15:46:05 +00:00
Ulrich Drepper 6b280740cc _nl_current has LC_ALL + 1 elements. 1997-05-22 15:45:37 +00:00
Ulrich Drepper 22e8d11155 (seed48_r): Incldue limits.h to get definition of USHRT_MAX. 1997-05-22 15:44:55 +00:00
Ulrich Drepper 3ab24a1afb (shmat): Add cast to prevent warning. 1997-05-22 15:43:55 +00:00
Ulrich Drepper 396e0415e4 Update. 1997-05-21 23:34:07 +00:00
Ulrich Drepper 3ff6d686a4 Linux specific tty definitions 1997-05-21 22:30:17 +00:00
Ulrich Drepper 7f42b77318 SunOS specific tty definitions 1997-05-21 22:28:39 +00:00
Ulrich Drepper 9279ceae42 Generic tty definitions 1997-05-21 22:27:35 +00:00
Ulrich Drepper 0ed18d6c0c Remade for experimental-2.0.4 1997-05-21 22:02:08 +00:00
Ulrich Drepper f860dce906 (VERSION): Bump to 2.0.4. 1997-05-21 21:59:21 +00:00
Ulrich Drepper 7645b65271 . 1997-05-21 16:08:40 +00:00
Ulrich Drepper 079f7c691f Depend on libc.so for dynamic loading and for Linux ld.so. 1997-05-21 16:08:17 +00:00
Ulrich Drepper 00b97dc29c (CFLAGS-s_copysignl.c): Define for gcc bug workaround. 1997-05-21 00:20:00 +00:00
Ulrich Drepper 08ed359420 Update. 1997-05-21 00:08:19 +00:00
Ulrich Drepper 3090a1d9d9 (strptime_internal): Fix %I format specifier being off by one. 1997-05-21 00:08:10 +00:00
Ulrich Drepper ea72be0702 (add): Respect `0' padding flag. 1997-05-21 00:07:57 +00:00
Ulrich Drepper 780f64dfed Moved to sysdeps. 1997-05-21 00:07:41 +00:00
Ulrich Drepper 4360912968 Add cacheflush. 1997-05-21 00:07:27 +00:00
Ulrich Drepper 57790ddd15 Likewise tuck the thread data onto the new thread's stack. 1997-05-21 00:07:08 +00:00
Ulrich Drepper ae62f3fd1a Don't presume that the kernel will preserve non-call-saved registers;
save and restore a0 across the system call.
1997-05-21 00:07:00 +00:00
Ulrich Drepper a53b62005c Add nfsservctl. 1997-05-21 00:06:42 +00:00
Ulrich Drepper 4f81f15b9f Add cast in call to __ipc. 1997-05-21 00:06:27 +00:00
Ulrich Drepper caf512f51a (shmat): For Linux-2.0 and up the kernel can return negative values.
Only fail when return value is in range in range which is never
returned as valid address.
1997-05-21 00:05:52 +00:00
Ulrich Drepper f301b57542 Save errno. 1997-05-21 00:05:38 +00:00
Ulrich Drepper ba11b11f3f We have a real implementation now. 1997-05-21 00:05:21 +00:00
Ulrich Drepper 6750d9b090 Make second argument of setitimer const. 1997-05-21 00:05:00 +00:00
Ulrich Drepper 716a8a8a1a Fix test for sign of argument. 1997-05-21 00:04:31 +00:00
Ulrich Drepper 45ca822c29 Fix sign of result. 1997-05-21 00:04:23 +00:00
Ulrich Drepper 5d08e3e8ab Fix test for x < 1. 1997-05-21 00:04:16 +00:00
Ulrich Drepper 26753f62d6 Generate invalid exception correctly. 1997-05-21 00:03:54 +00:00
Ulrich Drepper 48956dfd0f Mmoved to here from inet/netinet. 1997-05-21 00:01:59 +00:00
Ulrich Drepper b7c667f2ff Fix typo. 1997-05-21 00:01:41 +00:00
Ulrich Drepper 54a1813de5 (svc_exit): New, declared. 1997-05-21 00:01:17 +00:00
Ulrich Drepper 402a46171b (svc_exit): New, defined.
(svc_run): Test for svc_stop variable.
1997-05-21 00:01:07 +00:00
Ulrich Drepper ae4b002f02 Also reset a' and c' to default values. 1997-05-21 00:00:01 +00:00
Ulrich Drepper 83817a84c3 (_sys_siglist, sys_siglist): Use _NSIG, not NSIG in declaration. 1997-05-20 23:58:24 +00:00
Ulrich Drepper 09390d612a Merge with GNU awk version. 1997-05-20 23:58:00 +00:00
Ulrich Drepper 311e8a4a28 Merge with GNU awk version.
(regex_compile): Use ISO C/amend 1 functions for character class handling.
1997-05-20 23:57:55 +00:00
Ulrich Drepper 0d0f83ce42 Declare as master copy. 1997-05-20 23:57:41 +00:00
Ulrich Drepper 12ef0fc101 eclare as master copy. 1997-05-20 23:57:35 +00:00
Ulrich Drepper 6eb3b349ee Updated. 1997-05-20 23:57:17 +00:00
Ulrich Drepper c5b46a461f Remove ENOMEDIUM and EMEDIUMTYPE errors. 1997-05-20 23:56:54 +00:00
Ulrich Drepper 430896bd6a (obstack_specify_allocation_with_arg, obstack_chunkfun,
obstack_freefun): Fix casts.
1997-05-20 23:56:09 +00:00
Ulrich Drepper 5dd4da2d24 Include <config.h>. Include <stdlib.h> only if __GNU_LIBRARY__ or
HAVE_STDLIB_H is defined.
1997-05-20 23:55:36 +00:00
Ulrich Drepper f688a75efb Check whether output of `locale -a' really is locale directory. Also
print locale aliases.
1997-05-20 23:54:01 +00:00
Ulrich Drepper 7bd83db5a4 (CPPFLAGS): Add definition for LOCALE_ALIAS_PATH. 1997-05-20 23:53:16 +00:00
Ulrich Drepper 04c524c4b0 Move to sysdeps/generic/netinet/tcp.h. 1997-05-20 23:52:22 +00:00
Ulrich Drepper 71584f8abc (_hurdsig_preemptors): Provide initialization.
(_hurdsig_init): Double size of sigthread stack; msg_add_auth was
overflowing it.
1997-05-20 23:51:55 +00:00
Ulrich Drepper 26765111ad (_hurdsig_fault_preemptor): Provide initialization. 1997-05-20 23:51:35 +00:00
Ulrich Drepper 066d68b563 (_S_msg_add_auth): Implement correctly. 1997-05-20 23:50:59 +00:00
Ulrich Drepper 65c0c1fd36 (_dl_lookup_symbol_skip): Call _dl_signal_error when we can't find the
symbol.
1997-05-20 23:50:34 +00:00
Ulrich Drepper ee815d3f29 ($(objpfx)initfini.s): Add CPPFLAGS, CFLAGS and -g0 to command line of
compiler.
1997-05-20 23:50:12 +00:00
Ulrich Drepper 4be6b7a59e Emit definition of `cross_compiling'. 1997-05-20 23:36:37 +00:00
Ulrich Drepper e4e9c3596e Set cross-compiling from configure result. 1997-05-20 23:36:29 +00:00
Ulrich Drepper a67fb77b6b Don't set cross-compiling based on $(BUILD_CC) != $(CC). 1997-05-20 23:36:22 +00:00
Ulrich Drepper 8bbe90f014 Regenerated from ../sysdeps/gnu/errlist.awk ../manual/errno.texi 1997-05-20 15:25:19 +00:00
Ulrich Drepper e13ea31465 Regenerated: autoconf configure.in 1997-05-20 14:56:34 +00:00
Ulrich Drepper b2cbddd0a4 . 1997-05-08 10:01:33 +00:00
Ulrich Drepper ba8c210b3e . 1997-05-02 01:15:24 +00:00
Ulrich Drepper bab0a98c67 Use <netinet/ip_icmp.h> not <netinet/icmp.h>. 1997-04-26 11:36:56 +00:00
Ulrich Drepper 758999db4f . 1997-04-21 14:29:19 +00:00
Ulrich Drepper 5346455569 Also reset a' and c' to default values. 1997-04-21 14:26:11 +00:00
Ulrich Drepper 8e619d6a10 Update. 1997-04-21 13:35:05 +00:00
Ulrich Drepper e9e8bfe716 Place ALIGN instruction at correct positions. 1997-04-21 13:34:44 +00:00
Ulrich Drepper e2d554858b Handle files in the same directory correctly. 1997-04-21 13:34:31 +00:00
Ulrich Drepper b9b2307456 Update. 1997-04-19 15:20:00 +00:00
Ulrich Drepper fdd1a62962 Update to XPG4.2 interface. 1997-04-19 15:19:45 +00:00
Ulrich Drepper e49ad9b365 Set *RESULT to NULL before returning error. 1997-04-19 15:19:31 +00:00
Ulrich Drepper 5105c5e94b Add prototype for updwtmp. 1997-04-19 15:19:19 +00:00
Ulrich Drepper 392ca57fdd Add new function updwtmp which allows to write a complete record to
the wtmp file.
1997-04-19 15:19:11 +00:00
Ulrich Drepper b0d7c39e33 (distribute): Add defs.awk. 1997-04-19 15:14:02 +00:00
Ulrich Drepper bb267dc296 Don't automatically ignore .c files os .S or .s files are ignored. 1997-04-19 15:13:27 +00:00
root 1769a89be6 Not used anymore. 1997-04-19 14:42:49 +00:00
Ulrich Drepper 54cd01e24f Update. 1997-04-18 15:39:46 +00:00
Ulrich Drepper 7384dd3fbe Remade for experimental-2.0.3 1997-04-18 15:37:54 +00:00
Ulrich Drepper 51b221ee43 Update. 1997-04-18 00:19:40 +00:00
Ulrich Drepper bff1832b2d Rewrite of initfini. 1997-04-18 00:17:44 +00:00
Ulrich Drepper 70d7ddbbcc (strftime): Remove __restrict in declaration. 1997-04-17 23:31:35 +00:00
Ulrich Drepper b7c5a468dc Interpret year number 00-59 as 2000--2059. 1997-04-17 23:30:22 +00:00
Ulrich Drepper f9652c80ae (memset_space): Increment pointer. 1997-04-17 23:30:13 +00:00
Ulrich Drepper 39dbc7be16 (TTYDEF_OFLAG): Use either OXTABS or TAB3, if one of them is defined. 1997-04-17 23:29:52 +00:00
Ulrich Drepper dd5aac0f53 (shmat, shmdt): Correct types. 1997-04-17 23:29:39 +00:00
Ulrich Drepper 1452bbc1aa Define _LINUX_TYPES_H to avoid use of kernel types. 1997-04-17 23:29:29 +00:00
Ulrich Drepper 4a6fbb12f2 (struct ip_timestamp): Correct typos. 1997-04-17 23:29:18 +00:00
Ulrich Drepper 3cf9054816 Include <sys/socket.h> to get definition of sa_family_t for
<linux/atalk.h>.
1997-04-17 23:29:03 +00:00
Ulrich Drepper fc8c13e9e1 (OXTABS): Don't define. 1997-04-17 23:28:40 +00:00
Ulrich Drepper 3cfd9c9ac9 Don't use kernel header because of type clashes. Add all definitions
here.
Correct types according to XPG4.2.
1997-04-17 23:28:26 +00:00
Ulrich Drepper 49d05ecd64 Don't use kernel header because of type clashes. Add all definitions
here.
1997-04-17 23:28:10 +00:00
Ulrich Drepper a0e78d4ebe Corrected. The mantissa has only 63 bits. 1997-04-17 23:27:35 +00:00
Ulrich Drepper da3b378848 Remove references to byte order macros. Don't include <endian.h>. 1997-04-17 23:26:52 +00:00
Ulrich Drepper 14f82daac6 [_LIBC]: Define __clearenv and make clearenv a weak alias. 1997-04-17 23:26:33 +00:00
Ulrich Drepper 0c07dfee2c Not needed anymore. 1997-04-17 23:26:23 +00:00
Ulrich Drepper cdd3026022 Remove old math implementation files. 1997-04-17 23:26:09 +00:00
Ulrich Drepper f21e0750a8 Correctly handle array of odd length. 1997-04-17 23:25:08 +00:00
Ulrich Drepper f854c0566e (tests): Correct 64-bit entry. 1997-04-17 23:24:55 +00:00
Ulrich Drepper b75f2c28f9 (erand48_r): Build double value using ieee754_double union and use
random bits in different order to increase effect of seed.
1997-04-17 23:24:44 +00:00
Ulrich Drepper 6393f70acb (__getopt_nonoption_flags): Remove extern. 1997-04-17 23:24:25 +00:00
Ulrich Drepper 3d5a869794 (_getopt_initialize): Preserve optind.
(_getopt_internal): Set optind to 1 if optind == 0 before
calling _getopt_initialize ().
1997-04-17 23:24:07 +00:00
Ulrich Drepper 12fc66d651 Correct prototype in memmem documentation. 1997-04-17 23:23:45 +00:00
Ulrich Drepper f1ecbef29e Correct a few typos and errors. 1997-04-17 23:23:26 +00:00
Ulrich Drepper 0c1ed45457 Update malloc documentation for new malloc. 1997-04-17 23:23:09 +00:00
Ulrich Drepper bf5806397a (dir-add.texi): Simplify. 1997-04-17 23:22:47 +00:00
Ulrich Drepper bf094836d8 (fREe): Small optimization. Before returning,
add fast check whether the heap containing top can go away.
(mALLOc, rEALLOc, cALLOc, mEMALIGn): When
failing to allocate a new chunk, also try the main_arena.  It may
be that we are only running out of mmapped regions, and other
arenas cannot be enlarged sufficiently.
(new_heap, malloc_extend_top): Handle top_pad more consistently,
i.e. only in new_heap().
1997-04-17 23:22:29 +00:00
Ulrich Drepper 0b67eee38b (proc_utmp_eq): Only use ut_id field if valid. 1997-04-17 23:22:11 +00:00
Ulrich Drepper 82bf05a0ce (_nl_current): Add element with index LC_ALL. 1997-04-17 23:21:42 +00:00
Ulrich Drepper ea09d877ca (_IO_flush_all_linebuffered): Don't flush on a read-only stream. 1997-04-17 23:21:30 +00:00
Ulrich Drepper aef475bc34 Rewrite. Don't use the ugly BSD way to write
headers but instead add comments and parameter names.
Don't use BSD specific types in prototypes.
1997-04-17 23:21:04 +00:00
Ulrich Drepper a0713d8d9b (iruserok): Use access instead of euidaccess. 1997-04-17 23:20:49 +00:00
Ulrich Drepper 5bae2227b8 Make work even in presence of symlinks. 1997-04-17 23:20:34 +00:00
Ulrich Drepper 5703aac7be (depfiles): Remove $(test-srcs). 1997-04-17 23:20:09 +00:00
Ulrich Drepper c9b41a4451 Add rule to easily generate dir-add.texi file. 1997-04-17 23:19:47 +00:00
Ulrich Drepper d78af38fec (all): Make sure this is always the default goal. 1997-04-17 23:18:16 +00:00
Ulrich Drepper f958e42835 Fix reverse arguments. 1997-04-10 20:01:42 +00:00
Ulrich Drepper 5e0fd15720 . 1997-04-10 18:23:27 +00:00
Ulrich Drepper 99f1dfad31 (sunrpc-headers): Add clnt.h. 1997-04-10 18:22:55 +00:00
Ulrich Drepper d33c4d286a . 1997-04-06 13:53:55 +00:00
Ulrich Drepper 7f0ddd1987 (ut_xtime): New symbol.
(ut_time): define it only if _NO_UT_TIME is not defined.
1997-04-06 01:01:56 +00:00
Ulrich Drepper 9359e4cbf3 (__finitel): Shift return value by 31 positions to get 0/1 result. 1997-04-06 00:48:10 +00:00
Ulrich Drepper 72de2dcd21 (_IO_file_overflow): Set error when try to write on a read-only
stream.
1997-04-06 00:43:48 +00:00
Ulrich Drepper ab8080455c Use autoconf macro to check for compiler. 1997-04-05 00:48:45 +00:00
Ulrich Drepper f1698e08cc Optimize writing of profiling info. 1997-04-05 00:48:13 +00:00
Ulrich Drepper b8a7384521 Correct result of parse_line correctly. 1997-04-05 00:47:27 +00:00
Ulrich Drepper d97aad47e3 Don't use fixed static buffers. 1997-04-05 00:47:09 +00:00
Ulrich Drepper 789a98d932 Describe new error codes and strerror_r function. 1997-04-05 00:46:39 +00:00
Ulrich Drepper c075fbc99c Make sure out of memory error is correctly signaled. 1997-04-05 00:46:10 +00:00
Ulrich Drepper eb0740ad73 Correct handling of overflow in reading trailing list. 1997-04-05 00:45:20 +00:00
Ulrich Drepper 9106c38136 Correct handling of installable printf handlers. 1997-04-05 00:43:06 +00:00
Ulrich Drepper 5cb9ee6746 Add prototype for __clearenv. 1997-04-05 00:42:16 +00:00
Ulrich Drepper 72b6c2b1c7 Fix typo. 1997-04-05 00:42:01 +00:00
Ulrich Drepper ffc30dcbea Correct handling of local labels. 1997-04-05 00:41:43 +00:00
Ulrich Drepper 0043ae9883 Update from tzcode1997d 1997-04-05 00:40:15 +00:00
Ulrich Drepper 477f40256e Provide ITIMER* values also as macros. 1997-04-05 00:30:24 +00:00
Ulrich Drepper 67c27119f8 Regenerated from ../sysdeps/gnu/errlist.awk ../manual/errno.texi 1997-04-04 22:56:12 +00:00
Ulrich Drepper f23649c50d Regenerated: autoconf configure.in 1997-04-04 22:34:32 +00:00
Ulrich Drepper 2143456bb3 . 1997-04-04 20:07:58 +00:00
Ulrich Drepper 473167dcc7 [$(subdir)=inet] (sysdep_headers): Remove netinet/icmp.h. 1997-04-04 20:03:48 +00:00
Ulrich Drepper 9216338892 Rename atalk.h to at.h 1997-04-04 15:46:30 +00:00
Ulrich Drepper 1559585ef1 Add former contents of <netinet/icmp.h>. 1997-04-04 15:45:15 +00:00
Ulrich Drepper dc0d0c616e Clear LD_LIBRARY_PATH environment variable before running process. 1997-04-04 15:42:45 +00:00
Ulrich Drepper 16afa991d0 Make string parameters `const'. 1997-04-04 15:39:36 +00:00
Ulrich Drepper 9ad114ad58 Add prototypes for rcmd, rexec, ruserok, and rresvport. 1997-04-04 15:37:54 +00:00
Ulrich Drepper b0b60fc2f1 Add sigisempty, sigorset, and sigandset 1997-04-04 15:34:33 +00:00
Ulrich Drepper 6a11e51e2c Add declaration for glob_pattern_p. 1997-04-04 15:29:23 +00:00
Ulrich Drepper 0f884de176 (next_brace_sub): Decrement depth counter when '}' is found.
Rename glob_pattern_p to __glob_pattern_p and
make glob_pattern_p a weak alias.  This function is used in other
packages (e.g. bash).
1997-04-04 15:29:09 +00:00
Ulrich Drepper 2c218fa5d9 Remove since we have ip_icmp.h 1997-04-04 15:25:12 +00:00
Ulrich Drepper 3c0bfe141d Include <stddef.h> only once. 1997-04-04 15:23:08 +00:00
Ulrich Drepper 58611c4757 Update. 1997-04-03 18:23:45 +00:00
Ulrich Drepper 6ad469c1c4 Regenerated from source files 1997-03-30 17:09:00 +00:00
Ulrich Drepper ca911f45cf (VERSION): Bump to 2.0.3. 1997-03-30 15:56:16 +00:00
Ulrich Drepper a80f36629b (BUILD_CFLAGS): Fix reference to config file. 1997-03-26 14:17:39 +00:00
Ulrich Drepper 133192c659 Update. 1997-03-22 04:10:50 +00:00
Ulrich Drepper 07e85a9e7e (OXTABS): Define as alias for XTABS. 1997-03-22 04:09:48 +00:00
Ulrich Drepper 6c60c46fcd Update. 1997-03-22 03:47:53 +00:00
Ulrich Drepper 438171b5ba Remove special case when OXTABS is not defined. Revert patch of
Sun Dec 15 16:33:44 1996.
1997-03-22 03:40:09 +00:00
Ulrich Drepper 4a764e3d3b Update. 1997-03-22 03:12:33 +00:00
Ulrich Drepper 0b25d4905e Update. 1997-03-22 01:16:50 +00:00
Ulrich Drepper 2dd2b17df7 i386 specific definitions for gmon. 1997-03-21 21:40:39 +00:00
Ulrich Drepper 870eeeb6b2 Update. 1997-03-21 21:26:15 +00:00
Ulrich Drepper 582b8e86e0 (distribute): Add BUGS. 1997-03-21 21:26:03 +00:00
Ulrich Drepper bab280f93a List of known bugs. 1997-03-21 21:25:26 +00:00
Ulrich Drepper 4749ee6c81 Update. 1997-03-21 20:56:28 +00:00
Ulrich Drepper 1a1f354cd7 (CALL_MCOUNT): Clear this macro so ENTRY(__syscall_error) doesn't
insert a call to _mcount, which clobbers %eax.
1997-03-21 20:33:04 +00:00
Ulrich Drepper 71e4ceb22b Include ctype.h for isdigit. 1997-03-21 20:32:45 +00:00
Ulrich Drepper 6f7922d89c Don't emulate writev with small UIO_FASTIOV value by multiple writev
calls since we need atomicity.
1997-03-21 20:32:23 +00:00
Ulrich Drepper a16d0942d7 Don't emulate readv with small UIO_FASTIOV value by multiple readv
calls since we need atomicity.
1997-03-21 20:32:12 +00:00
Ulrich Drepper fea444e4d2 Rename and alias readv to __readv and writev to __writev. 1997-03-21 20:31:55 +00:00
Ulrich Drepper 797f8dc9d5 Rename and alias readv to __readv. 1997-03-21 20:31:30 +00:00
Ulrich Drepper 20ce139ac1 Rename and alias writev to __writev. 1997-03-21 20:31:11 +00:00
Ulrich Drepper eb46a9a4e2 Define __LIBC_M81_MATH_INLINES instead of __NO_M81_MATH_INLINES. 1997-03-21 20:30:36 +00:00
Ulrich Drepper 0af17c40df [PROF] (_dl_runtime_resolve): Don't use regparam mechanism for call of
`fixup' call.
1997-03-21 20:27:07 +00:00
Ulrich Drepper b9cec87760 [$(subdir)=gmon] (sysdep_routines): Add i386-mcount. 1997-03-21 20:26:58 +00:00
Ulrich Drepper 98d289f6b6 Initialize quotient' and mask'. 1997-03-21 20:26:31 +00:00
Ulrich Drepper f175ece367 Exit with error status when we have an error. 1997-03-21 20:26:20 +00:00
Ulrich Drepper a91b462b62 (main): Save the value of errno since printf may modify it, use the
saved errno everywhere.
1997-03-21 20:25:54 +00:00
Ulrich Drepper 5e9e4d273d Correct tests.
(main): Save the value of errno since printf may modify it, use the
saved errno everywhere.
1997-03-21 20:25:44 +00:00
Ulrich Drepper a7071cbe63 It is not illegal to parse a minus sign in the strtouXX functions.
The results gets simply negated.
1997-03-21 20:25:21 +00:00
Ulrich Drepper ceb4bfd63d Declare __writev and __readv. 1997-03-21 20:25:02 +00:00
Ulrich Drepper 1cb5fbec42 Revert the bulk of the 960930 changes, as they affect the alignment,
and therefore the end padding of the structs.
1997-03-21 20:24:49 +00:00
Ulrich Drepper 6cc0f29734 Declare the variables with aligned tags to compensate.
Use __writev instead of write for the I/O.
1997-03-21 20:24:36 +00:00
Ulrich Drepper 7ec30d5937 [$(elf)=yes] (+prector, +postctor): New variables for
crtbegin.o/crtend.o, using gcc to find them.
(+link): Use them.
1997-03-21 20:24:04 +00:00
Ulrich Drepper ae6f93ebf0 Fix typo. 1997-03-21 20:23:20 +00:00
Ulrich Drepper 8fa5aed6e8 ix86 specific mcount entry point which preserves all registers. 1997-03-21 15:26:52 +00:00
Ulrich Drepper 1d7d57a23c Add machine-gmon.h. 1997-03-21 06:12:59 +00:00
Ulrich Drepper ec6bc3a6c1 Additional ix86 specific files to distribute. 1997-03-21 05:41:51 +00:00
Ulrich Drepper c544156ecf (glob): Fix completely broken handling of GLOB_BRACE and partly borken
handling of GLOB_TILDE:
1997-03-21 04:55:48 +00:00
Ulrich Drepper 14b1c93b79 Some more optimization and unused variables removed. 1997-03-20 03:46:05 +00:00
Ulrich Drepper 03a5167722 (RESOLVE): Don't try to resolve local symbols. 1997-03-20 03:39:46 +00:00
Ulrich Drepper d17c16a1c0 (tests): Add $(test-srcs). 1997-03-20 03:37:09 +00:00
Ulrich Drepper 46139b3cfb (depfiles, common-mostlyclean): Add $(test-srcs). 1997-03-20 03:37:00 +00:00
Ulrich Drepper ba18232742 (all-sources): Add $(test-srcs). 1997-03-20 03:36:48 +00:00
Ulrich Drepper d03cbf630d (srcs): Add $(test-srcs). 1997-03-20 03:36:33 +00:00
Ulrich Drepper d9c42342a1 Update. 1997-03-20 03:27:48 +00:00
Ulrich Drepper cfa805f954 (msync): Add parameter `flags' to match generic prototype. 1997-03-20 03:26:18 +00:00
Ulrich Drepper c55caac80e Add definition for `signbit' function. Future releases will have this
function.
1997-03-20 03:23:21 +00:00
Ulrich Drepper 46da0971fe Handle x == +-0 as a special case since tanh(-0) == -0. 1997-03-20 03:21:53 +00:00
Ulrich Drepper c1691f4661 Correct former completely bogus code. It never worked correctly. 1997-03-20 03:21:35 +00:00
Ulrich Drepper 41e2d09648 Optimize code by avoiding unneeded access to FP number. 1997-03-20 03:21:26 +00:00
Ulrich Drepper d69e5f014e Handle x == +-0 as a special case since expm1(-0) == -0. 1997-03-20 03:21:13 +00:00
Ulrich Drepper 630ee40e92 Correct recognition of mantissa overflow. 1997-03-20 03:20:56 +00:00
Ulrich Drepper 637a638f30 Correct fatal bug in jump to `__sigsetjmp' in PIC code. 1997-03-20 03:20:35 +00:00
Ulrich Drepper 0b4a289092 Include <sys/types.h>. 1997-03-20 03:19:46 +00:00
Ulrich Drepper d6b95af8bb Change references of ANSI C to ISO C. 1997-03-20 03:17:26 +00:00
Ulrich Drepper 80e41ab46e Avoid whitespace before argument of macro call that is used as
function name.
1997-03-20 03:16:24 +00:00
Ulrich Drepper f47163fad3 Make compatible with traditional preprocessor;
requires carefull placement of whitespace in macro arguments.
Use __CONCAT instead of ##.
Declare long double functions only if __STDC__ or __GNUC__.
Include <__math.h> also if __LIBC_M81_MATH_INLINES is defined.
Include <__math.h> if __NO_MATH_INLINES is not defined and we want
optimization.
1997-03-20 03:16:12 +00:00
Ulrich Drepper 4bf5771c23 (output/write_some): Don't try and write more than IO_INBAND_MAX in a
single call to device_write_inband.
1997-03-20 03:10:16 +00:00
Ulrich Drepper 66284f47ac Correct dependencies for test-tz. 1997-03-19 21:24:03 +00:00
Ulrich Drepper 43e2ba6ef6 Don't use MAX_IOVEC. Test for UIO_FASTIOV and set to 8 if not available. 1997-03-19 21:09:31 +00:00
Ulrich Drepper 6227894ac9 Update feature tests.
(fabs): Remove defininition, it is a gcc builtin.
(sqrt, __sqrt): Remove definition, they have wrappers in libm.
1997-03-19 20:56:14 +00:00
Ulrich Drepper fa8ceb1f2c Update. 1997-03-19 20:26:33 +00:00
Ulrich Drepper 2c44d7573c Include <kernel_stat.h>, not "kernel_stat.h". 1997-03-19 20:22:43 +00:00
Ulrich Drepper 35d80b24e3 Update. 1997-03-19 04:23:23 +00:00
Ulrich Drepper f6bf4da124 SCO 3.2.4 specific files to distribute. 1997-03-19 04:22:27 +00:00
Ulrich Drepper e22307c48b Add __getpgid.c and __setpgid.c. 1997-03-19 04:21:42 +00:00
Ulrich Drepper 9ca318cc03 Add glob. 1997-03-19 04:18:49 +00:00
Ulrich Drepper 254249b29a Add bsdstat.h, setrguid.c, and setruid.c. 1997-03-19 04:18:20 +00:00
Ulrich Drepper 288238a6ea Add direct.h. 1997-03-19 04:16:48 +00:00
Ulrich Drepper 5286bb7e27 Add netinet/tcp.h. 1997-03-19 04:16:17 +00:00
Ulrich Drepper 94941d2212 [$(subdir)=inet] (sysdep_headers): Remove netinet/ip.h. 1997-03-19 04:12:09 +00:00
Ulrich Drepper 257b878d90 (headers): Add netinet/ip.h again. 1997-03-19 04:11:33 +00:00
Ulrich Drepper 0e6e45afa2 Genric IP definitions 1997-03-19 04:10:36 +00:00
Ulrich Drepper 68c0fa52a2 Move to sysdeps/generic/netinet 1997-03-19 04:10:22 +00:00
Ulrich Drepper ff48318555 Update. 1997-03-19 03:45:17 +00:00
Ulrich Drepper daa5c348d6 ($(tardir).tar): Prefer writing temporary file to $TMPDIR is
available.  The default is /tmp.
1997-03-19 03:45:09 +00:00
Ulrich Drepper b234e8652a Update. 1997-03-19 03:41:44 +00:00
Ulrich Drepper 2018d9e2ee (headers): Remove netinet/ip.h. 1997-03-19 03:23:19 +00:00
Ulrich Drepper b8d4e46167 [$(subdir)=inet] (sysdep_headers): Add netinet/ip.h. 1997-03-19 03:23:02 +00:00
Ulrich Drepper f581e9ca08 Remade for experimental-2.0.2 1997-03-19 03:15:58 +00:00
Ulrich Drepper 0966931ed7 Compatibility versions for early 2.0 version of the kernel 1997-03-19 03:13:02 +00:00
Ulrich Drepper dd4831ce37 Update. 1997-03-19 03:11:23 +00:00
Ulrich Drepper db7cdaaaa4 Add stat, fstat, xstat, readv, and writev syscalls. 1997-03-19 03:11:05 +00:00
Ulrich Drepper 721869072d Update from 2.1.x branch. 1997-03-19 03:10:36 +00:00
Ulrich Drepper 83bbbdd08c (__setjmp): Fix fatal bug where 0 argument is placed in wrong place on
the stack.
1997-03-19 00:45:07 +00:00
Ulrich Drepper b44c1e14db (__offtime): Change type of `yg' to long int. 1997-03-18 22:19:12 +00:00
Ulrich Drepper 18d41844f1 (PPP_VERSION): Define to 2.2.0 to prevent version mismatch. 1997-03-18 22:09:30 +00:00
Ulrich Drepper ea00844dfb (_nss_nis_getservbyname_r): Allow protocol=NULL to match any protocol
rather than returning an error.
1997-03-18 04:24:53 +00:00
Ulrich Drepper 59c37b6b21 (servbyname): Match any protocol if proto==NULL. 1997-03-18 04:22:18 +00:00
Ulrich Drepper f42bf1bcfa Don't define O_NORW. 1997-03-18 04:16:04 +00:00
Ulrich Drepper 6718095b09 (setenv): Don't copy name when we reuse the buffer for replacement. 1997-03-18 04:13:50 +00:00
Ulrich Drepper b41fb4250f Update. 1997-03-17 05:49:11 +00:00
Ulrich Drepper 7e165c9059 update from main archive 970316 1997-03-17 05:25:34 +00:00
Ulrich Drepper d4fff052ce Add handling of correct stat structure 1997-03-17 04:34:39 +00:00
Ulrich Drepper 22c4356832 m68k specific infinity values 1997-03-17 04:33:29 +00:00
Ulrich Drepper 6f69fa17e5 ix87 specific infinity values 1997-03-17 04:33:16 +00:00
Ulrich Drepper a23087343b regex test suite 1997-03-17 04:32:23 +00:00
Ulrich Drepper ba2ccfa167 (recursive): Return rp to caller.
(strptime_internal): First check for long names, then abbreviated
(month & weekday).
strptime_internal) [case 'Y']: Always subtract 1900 from year,
regardless of century.
1997-03-17 04:14:50 +00:00
Ulrich Drepper 71c5289b0f Update from tzcode1997c. 1997-03-17 04:14:27 +00:00
Ulrich Drepper 1893ec6a38 Don't use incompatible kernel header. 1997-03-17 04:13:52 +00:00
Ulrich Drepper e2f8a38f47 Add PF_FILE as synonym for PF_LOCAL and AF_FILE as synonym for
AF_LOCAL.
1997-03-17 04:13:32 +00:00
Ulrich Drepper e16db41ba6 (struct stat): Change definition to use prescribed types for elements. 1997-03-17 04:13:15 +00:00
Ulrich Drepper 13babeb0d3 Add copyright. 1997-03-17 04:12:54 +00:00
Ulrich Drepper c424f2da59 [__USE_GNU]: Add O_READ, O_WRITE and O_NORW. 1997-03-17 04:12:44 +00:00
Ulrich Drepper cac34d519a Add kernel_stat.h. 1997-03-17 04:12:29 +00:00
Ulrich Drepper b47d1816eb Don't copy whole `struct dirent' record, only reclen bytes. 1997-03-17 04:11:37 +00:00
Ulrich Drepper 8fbe82ee26 Update copyright.
Define O_FSYNC as alias of O_SYNC.  Add BSD compatibility macros
FAPPEND, FFSYNC, FNONBLOCK, and FNDELAY.
1997-03-17 04:11:21 +00:00
Ulrich Drepper dd23f3b0d6 Update copyright. 1997-03-17 04:10:55 +00:00
Ulrich Drepper 3365152cb0 Define as __euidaccess and make euidaccess weak alias. 1997-03-17 04:10:16 +00:00
Ulrich Drepper 4b3769bc7c Add cast to prevent warning. 1997-03-17 04:10:07 +00:00
Ulrich Drepper cf2b29bfe0 Distinguish error cases for x is +0 or -0. 1997-03-17 04:09:18 +00:00
Ulrich Drepper 98e994340a Do not raise exception expect when in SVID mode. 1997-03-17 04:08:39 +00:00
Ulrich Drepper f4a0465b69 (huge, tiny): Adapt values for long double type. 1997-03-17 04:08:21 +00:00
Ulrich Drepper 1908c08641 Rewrite to return -1 for -inf. 1997-03-17 04:08:05 +00:00
Ulrich Drepper 31d7822815 Correct return value. Discard first stack element after fxtract. 1997-03-17 04:07:07 +00:00
Ulrich Drepper 9b5225b600 Return -1 for -inf. 1997-03-17 04:06:58 +00:00
Ulrich Drepper f13f1b26e4 Change return value for -inf argument to -1.0. 1997-03-17 04:06:49 +00:00
Ulrich Drepper 967578d96c Major rewrite to handle special cases. 1997-03-17 04:06:35 +00:00
Ulrich Drepper 421dcdf3a9 Optimize branch code. 1997-03-17 04:04:45 +00:00
Ulrich Drepper 87a5e8a7a4 Fix bug in FPU stack handling. 1997-03-17 04:04:21 +00:00
Ulrich Drepper a2a3fc55fd Remove definition of long double definition. Make it the same as the
double definition.
1997-03-17 04:03:42 +00:00
Ulrich Drepper 02f25bd59b (nofini): *Really* align stack to 8-byte boundary. 1997-03-17 04:02:41 +00:00
Ulrich Drepper c7b0194ac3 (msync): Add third parameter. 1997-03-17 04:02:24 +00:00
Ulrich Drepper 885ba00117 (__need_error_t): New macro, before including <errno.h>
[!__const] (__const): New macro.
[!__error_t_defined] (error_t): New typedef.
1997-03-17 04:00:15 +00:00
Ulrich Drepper 3cfcebc885 (_tens_in_limb) [BITS_PER_MP_LIMB > 32]: Make all numbers unsigned to
make buggy gccs happy.
1997-03-17 03:59:57 +00:00
Ulrich Drepper 2047317f3b Use __va_copy if available. 1997-03-17 03:59:42 +00:00
Ulrich Drepper ac7c207f14 (vasprintf): Give full prototype. 1997-03-17 03:59:30 +00:00
Ulrich Drepper a18be620a1 Add prototype for __euidaccess. 1997-03-17 03:59:07 +00:00
Ulrich Drepper 177f9d5cd4 Merge with regex sources from Arnold Robbins' version in GNU awk. 1997-03-17 03:58:51 +00:00
Ulrich Drepper afc1d235b7 (distribute): Add TESTS, TESTS2C.sed, and testcases.h.
(tests): Add runtests.
(before-compile): Add testcases.h.
(testcases.h): New rule to generate header with tests.
1997-03-17 03:58:40 +00:00
Ulrich Drepper c293f9bc63 (_nss_files_gethostbyname2_r): New functions. Compare result for
correct address type.
1997-03-17 03:57:34 +00:00
Ulrich Drepper 24ea71e942 (_nss_nis_gethostbyname2_r): New functions. Compare result for
correct address type.
(_nss_nis_gethostbyname_r): Use _nss_nis_gethostbyname2_r.
1997-03-17 03:57:03 +00:00
Ulrich Drepper 79df061031 Rewrite NIS code to allow empty keys. 1997-03-17 03:56:41 +00:00
Ulrich Drepper 375676b1b6 Rewrite NIS code to allow empty keys.
Don't ignore return value of yp_all.
1997-03-17 03:56:37 +00:00
Ulrich Drepper 94f1773041 (__yp_bind): Fix possible buffer overflow. 1997-03-17 03:55:56 +00:00
Ulrich Drepper 77055d99e4 New example for scandir function. 1997-03-17 03:55:21 +00:00
Ulrich Drepper fb63ae13d0 (EXIT_FAILURE): Fix typo. Patch by robbe@orcus.priv.at. 1997-03-17 03:54:07 +00:00
Ulrich Drepper 44a09a3306 Add documentation for scandir and alphasort. 1997-03-17 03:53:51 +00:00
Ulrich Drepper 579749498e (mprotect) [_LIBC]: Define as __mprotect to clean up namespace. 1997-03-17 03:53:39 +00:00
Ulrich Drepper 52cff2eeb6 Include <mach/kern_return.h>. 1997-03-17 03:53:24 +00:00
Ulrich Drepper 94f8647f1c Include <mach/mach_traps.h>.
(__spin_lock_solid): Provide arg to swtch_pri.
1997-03-17 03:53:15 +00:00
Ulrich Drepper 88f4537c77 Include <mach/mig_support.h>. 1997-03-17 03:52:56 +00:00
Ulrich Drepper 32fff90d82 (mach_error_string, mach_error, mach_error_type): Always provide
prototypes.
1997-03-17 03:52:48 +00:00
Ulrich Drepper 00aec83a30 (mach_error_string_int): Give full prototype. 1997-03-17 03:52:38 +00:00
Ulrich Drepper ff046934fd (__mach_error_map_compat): Give full prototype. 1997-03-17 03:52:14 +00:00
Ulrich Drepper 31f43cffe0 When named file not found and not absolute use path in I18NPATH. 1997-03-17 03:49:00 +00:00
Ulrich Drepper 4c2d948abe Don't use LOCALE_PATH to find binary locale files. Use LOCALEDIR
only.
1997-03-17 03:48:46 +00:00
Ulrich Drepper c5cb336b87 Use __ protected versions of non-standard functions.
(iruserok): Use euidaccess instead of half-hearted
switching of UID before opening .rhosts.
1997-03-17 03:44:01 +00:00
Ulrich Drepper 8d7899fbb6 (pwrite, vpprintf): Likewise. 1997-03-17 03:43:36 +00:00
Ulrich Drepper bca9fd93a8 (_hurd_set_host_config): Cast second arg to __file_name_split. 1997-03-17 03:43:27 +00:00
Ulrich Drepper 9f3168cf9a (vpprintf): Include <stdarg.h>. New declaration. 1997-03-17 03:43:17 +00:00
Ulrich Drepper 24a09ef771 Include <features.h>. 1997-03-17 03:42:40 +00:00
Ulrich Drepper f0427c13e4 (alphasort): Interpret arguments as pointers to pointers to directory
entries so that alphasort really can be used as argument for scandir.
1997-03-17 03:42:23 +00:00
Ulrich Drepper 347415b76e (__big_delete): Don't call __free_ovflpage without testing for
last_bfp to be NULL.
1997-03-17 03:42:07 +00:00
Ulrich Drepper ff407b13b9 (catopen): Always add NLSPATH to search path for catalogs, not only if
the envvar NLSPATH is not available.
1997-03-17 03:41:49 +00:00
Ulrich Drepper 265ede2a16 (build-shlib): Also create symlink if library is versioned. 1997-03-17 03:41:34 +00:00
Ulrich Drepper 1bdf7624dc (localtime-file): Don't define using installation directory.
(inst_localtime-file): New variable.
1997-03-17 03:41:17 +00:00
Ulrich Drepper 95a5089d2f The user- and kernel-level sigaction structure is different. handle
this correctly.
1997-03-07 04:27:25 +00:00
Ulrich Drepper 760f9f4cd0 (_dl_load_cache_lookup): Recognize cache type 1 or 3. 1997-03-06 20:36:16 +00:00
Ulrich Drepper 3a1db3bf88 . 1997-03-06 04:58:33 +00:00
Ulrich Drepper 0b7f4318c0 (_dl_load_cache_lookup): Also recognize cache entries with flag == 3. 1997-03-06 04:57:52 +00:00
Ulrich Drepper 3316c605ba update from tzdata1997c 1997-03-05 22:14:38 +00:00
Ulrich Drepper aa8ecd3c01 Add <sys/types.h>. 1997-03-05 21:41:57 +00:00
Ulrich Drepper d35ffac1c7 (_IO_str_finish): Add second parameter, which is ignored. 1997-03-05 21:17:30 +00:00
Ulrich Drepper b1f911a801 (_IO_file_finish): Add second parameter, which is ignored. 1997-03-05 21:16:43 +00:00
Ulrich Drepper 5b2cfa7797 (_IO_mem_finish): Add second parameter, which is ignored. 1997-03-05 21:15:19 +00:00
Ulrich Drepper 3967ae2f20 (_IO_default_finish): Add second parameter, which is ignored. 1997-03-05 21:13:53 +00:00
Ulrich Drepper 3a7c62f09a (_IO_finish_t): Take additional parameter, to match the hidden
__in_chrg parameter of the destructor.
(_IO_FINISH): Pass zero for it.
1997-03-05 21:12:58 +00:00
Ulrich Drepper 571286fe50 Don't disable canonical input. 1997-03-05 21:09:54 +00:00
Ulrich Drepper 28b5b97f16 Change prototypes to use types with explicit width. `unsigned long'
is different on 64 bit systems.
1997-03-05 21:08:28 +00:00
Ulrich Drepper 4db14580ca (htonl, htons, ntohl, ntohs): Change prototypes to use types with
explicit width.  `unsigned long' is different on 64 bit systems.
1997-03-05 21:06:12 +00:00
Ulrich Drepper 379091f89d Clear upper half of word containing exponent before comparing. 1997-03-05 21:01:25 +00:00
Ulrich Drepper a6a5f54f28 *** empty log message *** 1997-03-05 20:59:58 +00:00
Ulrich Drepper a06faff6c1 Add rules to run and distribute xtract-typefun. 1997-03-05 20:59:11 +00:00
Ulrich Drepper e3d3d6c990 $(tzfiles:%=$(objpfx)z.%): Remove unneeded depedencies between
installed $(tzlinks) and $(tzbases) files.
1997-03-05 20:56:54 +00:00
Ulrich Drepper 00926c6660 Add s_poll. 1997-03-05 20:51:56 +00:00
Ulrich Drepper 2f54e18d8b Update from tzdata1997b. 1997-03-05 20:51:24 +00:00
Ulrich Drepper eb3b8b2ea7 Update from tzcode1997b. 1997-03-05 20:51:02 +00:00
Ulrich Drepper 731640fc24 Implement poll function by falling back to select-based implementation
if syscall isn't available.
1997-03-05 20:46:08 +00:00
Ulrich Drepper 1f574fe0be Support both the Linux/i386 and OSF/1 style brk syscalls. We may want
to change Linux/Alpha for the benefit of running foreign binaries.
1997-03-05 20:36:45 +00:00
Ulrich Drepper 1b4d62a18d (STRTOF): Make sure return value is large enough so that clearing
second word is necessary.
1997-03-05 20:35:18 +00:00
Ulrich Drepper ce328bf180 Don't use kernel header since it is wrong for 64 bit systems. 1997-03-05 20:34:19 +00:00
Ulrich Drepper 58f6951944 (__ivaliduser): Don't use getline, but __getline instead to avoid
namespace problems.
1997-03-05 20:31:16 +00:00
Ulrich Drepper 450867ffea Update. 1997-03-05 20:29:21 +00:00
Ulrich Drepper 992b2c400b Correct handling of `position' levels with no non-IGNOREd element and
handling of NUL byte.
1997-03-05 20:28:57 +00:00
Ulrich Drepper 6145c5ea69 Implement --quiet option. 1997-03-05 20:26:24 +00:00
Ulrich Drepper e3f24cf1bf Declare be_quiet variable. 1997-03-05 20:26:15 +00:00
Ulrich Drepper 1217a671f4 Don't print warnings if quiet option was given. 1997-03-05 20:26:00 +00:00
Ulrich Drepper 8814d1a72e Ethernet specific definition, Linux versin 1997-02-26 03:37:26 +00:00
Ulrich Drepper d730f1d27c Update. 1997-02-26 03:31:13 +00:00
Ulrich Drepper 2e12a92961 (LINE_PARSER): Add missing ')'. 1997-02-26 03:30:27 +00:00
Ulrich Drepper 4f72518358 update from main archive 970226 1997-02-26 01:06:05 +00:00
Ulrich Drepper 655fe31070 update from main archive 970221 1997-02-22 01:07:27 +00:00
Ulrich Drepper 9652be3de8 update from main archive 970217 1997-02-18 04:08:52 +00:00
Ulrich Drepper 7434ccadbb update from main archive 970214
1997-02-13 11:44  Andreas Jaeger  <aj@arthur.pfalz.de>

	* stdlib/qsort.c: Add prototype for _quicksort.

	* stdlib/msort.c (qsort): Correct prototype for _quicksort.

	* sysdeps/i386/Makefile (CFLAGS-rtld.c): Change to prevent warning
	from dl-machine.h.

1997-02-13 18:18  Marcus G. Daniels  <marcus@sysc.pdx.edu>

	* sysdeps/generic/dl-cache.c: Don't hardwire name of cache file.
	Allow user to overwrite it.

1997-02-13 17:55  Ulrich Drepper  <drepper@cygnus.com>

	* libio/_G_config.h: Make sure win_t is also defined for old gcc
	versions.  Reported by Andreas Jaeger.

1997-02-13 11:44  Andreas Jaeger  <aj@arthur.pfalz.de>

	* db/btree/bt_split.c (bt_psplit): Fix typo in  change of
	1997-02-12.

	* time/tzfile.c (__tzfile_read): Change comment to follow
	change of 1997-02-12.
1997-02-15 02:32:58 +00:00
Ulrich Drepper 795fbc9aa1 update from main archive 970212
1997-02-13 02:32  Ulrich Drepper  <drepper@cygnus.com>

	* time/time.h (__nanosleep): Define only when struct timespec is
	also available.
	Reported by Ross Alexander <rossa@stimpy.cs.auckland.ac.nz>.

1997-02-12 21:34  a sun  <asun@zoology.washington.edu>

	* sysdeps/unix/sysv/linux/netinet/udp.h: New file.
	* sysdeps/unix/sysv/linux/Dist: Add netinet/udp.h.

1997-02-12 21:16  Ulrich Drepper  <drepper@cygnus.com>

	* resolv/nss_dns/dns-host.c (_nss_dns_gethostbyname_r): Follow patch
	of 1997-02-09 in resolv/gethnamaddr.c.

1997-02-11 18:52  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* libio/_G_config.h (_G_wint_t): New.

1997-02-09 11:31  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* resolv/gethnamaddr.c (gethostbyname2): Change sizeof (buf)
	to sizeof (buf.buf) while calling res_search ().

1997-02-03 20:01  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* nis/rpcsvc/yp_prot.h (ypresp_key_val): Change key to keydat,
	val to keydat, stat to status.

1997-02-12 20:45  Andreas Jaeger  <jaeger@informatik.uni-kl.de>

	* time/tzfile.c (__tzfile_read): Fix problem with SUID programs.

1997-02-12 19:55  Ulrich Drepper  <drepper@cygnus.com>

	* db/btree/bt_split.c (bt_psplit): Apply official patches #2 and #4
	by Keith Bostic.

1997-02-11 14:49  Andreas Jaeger  <jaeger@informatik.uni-kl.de>

	* stdlib/atoll.c: Undefined atoll, not atol.

1997-02-08 09:36  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/Makefile ($(common-objpfx)sysd-syscalls): Remove
	unused arguments of shell script.

	* Makeconfig (all-object-suffixes): New variable.
	* Makerules ($(+sysdir_pfx)sysd-rules, +make-deps): Use it instead
	of $(object-suffixes).
	* sysdeps/unix/make-syscalls.sh: Likewise.  Fix comment.
1997-02-13 05:10:35 +00:00
Ulrich Drepper 00de59a632 update from main archive 970210
1997-02-11 05:27  Ulrich Drepper  <drepper@cygnus.com>

	* locale/weight.h (collate_rules): It's an u_int32_t array.
	(get_weight): Compute initial SLOT value correctly.

1997-02-10 17:45  Ulrich Drepper  <drepper@cygnus.com>

	* string/argz-ctsep.c: Initialize *LEN when successful.

	* libio/vsnprintf.c: If MAXLEN is 0 return 0.
	* stdio/vsnprintf.c: Likewise.
	Reported by Philip Blundell <pjb27@cam.ac.uk>.

1997-02-06 13:49  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* rellns-sh: No need to check for existance of first parameter.
1997-02-11 04:45:23 +00:00
Ulrich Drepper 7cc27f440c update from main archive 970209
1997-02-09 02:59  Ulrich Drepper  <drepper@cygnus.com>

	* version.h (VERSION): Bump to 2.0.2.

	* posix/Makefile (routines): Add getopt_init.
	* posix/getopt.c: Don't get environment variable with nonoption
	flags here.  Depend on __getopt_nonoption_flags variable filled
	somewhere else.  This is necessary since the variable must be
	removed even when getopt isn't used in case exec(2) gets called.
	* posix/getopt_init.c: New file.  Initialize __getopt_nonoption_flags
	and remove environment variable.
	* sysdeps/i386/init-first.c: Call __getopt_clean_environment.
	* sysdeps/mach/hurd/i386/init-first.c: Likewise.
	* sysdeps/stub/init-first.c: Likewise.
	* sysdeps/unix/sysv/linux/init-first.c: Likewise.

	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_start): Recognize
	AT_PAGESZ entry in auxiliary vector and store value in _dl_pagesize.

	* sysdeps/generic/crypt-entry.h: Return EOPNOTSUPP when DES
	encryption is wanted.

	* libio/vsnprintf.c: If MAXLEN is 0 return 0.
	* stdio/vsnprintf.c: Likewise.
	Reported by Philip Blundell <pjb27@cam.ac.uk>.

1997-02-07 17:43  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/sysd-stdio.c: Include <errno.h>.
	Change PTR to void *.
	* sysdeps/posix/vdprintf.c: Change PTR to void *.
	Reported by Brian Oxley <boxley%dev.cm.ssb.com@clipper.ssb.com>.

1997-02-07 17:41  Philip Blundell <pjb27@cam.ac.uk>

	* sysdeps/unix/sysv/linux/socketbits.h: Fix typo.

1997-02-06 13:49  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* rellns-sh: No need to check for existance of first parameter.

1997-02-06 14:50  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/posix/getcwd.c (__getcwd): Fix resource leaks.  Reported
	by David Holland <dholland@eecs.harvard.edu>.

1997-02-06 14:38  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sunrpc/clnt_tcp.c (readtcp): Pass copy of timeout value to
	select, in case it is modified by the latter.
	* sunrpc/clnt_udp.c (clntudp_call): Likewise.
	* sunrpc/pmap_rmt.c (clnt_broadcast): Likewise.
	* sunrpc/svc_tcp.c (readtcp): Likewise.

	* sunrpc/svc_authux.c (_svcauth_unix): Fix type of area_gids
	array.

	* sunrpc/authuxprot.c (xdr_authunix_parms): Check size of uid_t
	and gid_t.

	* sunrpc/auth_unix.c (authunix_validate): Fix type of second
	argument.

1997-02-06 14:29  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/Makefile (extra-objs): Don't zap previous value.
	* Makefile (before-compile): Likewise.  Don't add gnu/lib-names.h
	twice.

1997-02-06 14:19  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/m68k/brk.c: Add workaround for
	braindamage (sigh!).

1997-02-06 17:10  Jim Meyering  <meyering@asic.sc.ti.com>

	* manual/memory.texi: Correct `copystring' example for obstacks.

1997-02-06 14:10  Ulrich Drepper  <drepper@cygnus.com>

	* Makeconfig: Don't use [:lower:] and [:upper:] in tr since old
	GNU tr don't grok it.

1997-02-03 21:13  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/socketbits.h [__GNUC__<2] (struct cmsghdr):
	Don't use GNU C extensions.
	(CMSG_DATA): Use portable definition.

1997-02-05 05:58  Ulrich Drepper  <drepper@cygnus.com>

	* elf/ldd.bash.in: Add test for read permission and print appropriate
	message.  Change warning and error messages to print "ldd: " at start.
	* elf/ldd.sh.in: Likewise.

	* stdlib/Makefile (routines): Add atoll.
	* stdlib/atoll.c: New file.
	* stdlib/stdlib.h: Add prototype and optimization for atoll.

	* stdlib/a64l.c: Update copyright.
	* stdlib/abs.c: Likewise.
	* stdlib/atof.c: Likewise.
	* stdlib/atoi.c: Likewise.
	* stdlib/atol.c: Likewise.
	* stdlib/bsearch.c: Likewise.
	* stdlib/exit.c: Likewise.
	* stdlib/fpioconst.c: Likewise.
	* stdlib/fpioconst.h: Likewise.
	* stdlib/jrand48.c: Likewise.
	* stdlib/jrand48_r.c: Likewise.
	* stdlib/labs.c: Likewise.
	* stdlib/lcong48.c: Likewise.
	* stdlib/lcong48_r.c: Likewise.
	* stdlib/llabs.c: Likewise.
	* stdlib/lrand48.c: Likewise.
	* stdlib/lrand48_r.c: Likewise.
	* stdlib/mblen.c: Likewise.
	* stdlib/mbstowcs.c: Likewise.
	* stdlib/mbtowc.c: Likewise.
	* stdlib/mp_clz_tab.c: Likewise.
	* stdlib/mrand48.c: Likewise.
	* stdlib/mrand48_r.c: Likewise.
	* stdlib/msort.c: Likewise.
	* stdlib/nrand48.c: Likewise.
	* stdlib/nrand48_r.c: Likewise.
	* stdlib/qsort.c: Likewise.
	* stdlib/rpmatch.c: Likewise.
	* stdlib/seed48.c: Likewise.
	* stdlib/seed48_r.c: Likewise.
	* stdlib/srand48.c: Likewise.
	* stdlib/srand48_r.c: Likewise.
	* stdlib/strtod.c: Likewise.
	* stdlib/wcstombs.c: Likewise.
	* stdlib/wctomb.c: Likewise.

1997-02-05 05:08  Ulrich Drepper  <drepper@cygnus.com>

	* stdlib/mp_clz_tab.c (__clz_tab): Follow change in GMP and define
	as const.

1997-02-04 23:57  Fila Kolodny  <fila@ibi.com>

	* sysdeps/unix/sysv/linux/socketbits.h: Define __need_NULL before
	including <stddef.h>.

1997-02-03 20:01  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* time/Makefile (tzbases, tzlinks): New.
	(tzfiles): Changed to $(tzbases) $(tzlinks).
	($(tzfiles:%=$(objpfx)z.%): Make $(tzlinks) depend on $(tzbases).

1997-02-02 12:13  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* Makefile (install): Ignore error from ldconfig.

	* time/zic.c (mkdirs): Double check the error return of mkdir ().

1997-02-04 22:01  Ulrich Drepper  <drepper@cygnus.com>

	* stdio-common/vfprintf.c: Prepare to use __va_copy for architectures
	like PPC where va_list is no integral type.

1997-02-04 15:27  Roma Ekzhanov  <ekzhanov@paragraph.com>

	* posix/getopt.c (exchange): Don't allocate nonoption_flags array
	if nonoption_flags_len == -1.
1997-02-10 03:19:57 +00:00
Ulrich Drepper 6952e59e25 update from main archive 970203
1997-02-04 02:08  Ulrich Drepper  <drepper@cygnus.com>

	* Version 2.0.1 net release.

1997-02-03 23:34  Stephen L Moshier  <moshier@world.std.com>

	* sysdeps/libm-ieee754/s_tanhl.c: Fix backwards result sign.

1997-02-03 19:59  Ulrich Drepper  <drepper@cygnus.com>

	* stdlib/getsubopt.c: Don't return `=' for suboption which has
	a parameter.  Reported by Gary L. Hennigan <glhenni@cs.sandia.gov>.

1997-02-03 18:20  Thorsten Kukuk  <kukuk@weber.uni-paderborn.de>

	* nis/rpcsvc/yp_proh.h (ypresp_key_val): Also change order of
	values as in yp.x and yp.h.

1997-02-03 16:58  Ulrich Drepper  <drepper@cygnus.com>

	* nis/rpcsvc/yp.x (struct ypresp_key_val): Revert patch from
	1997-02-03 02:17.  Sun's implementation internally corrects
	this bug but we don't want to hide this from the user.
	* nis/rpcsvc/yp.h: Likewise.

1997-02-01 18:28  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/net/ppp_defs.h: Protect against multiple
	inclusion.

1997-02-02 14:56  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* manual/nss.texi, manual/pattern.texi, manual/string.texi: Doc
	fixes.

1997-02-02 11:51  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* MakeTAGS (sysdep-sources, sysdep-headers): New variables.
	(all-sources, all-headers): Use them instead of $(sources) and
	$(headers) when searching in sysdep directories.

1997-02-02 11:49  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makerules (REAL_MAKE_VERSION): Use internal make function
	instead of shelling out.

1997-02-02 11:47  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* time/Makefile (install-test-data): Remove mkdir command, zic can
	handle that gracefully.

1997-02-03 14:07  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/asm-syntax.h: Add back file which got lost sometime
	somehow.

1997-02-02 07:46  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sunrpc/Makefile: Check $(cross-compiling) only after including
	../Makeconfig.
	($(objpfx)rpcsvc/%.h, $(objpfx)x%.c): Add empty command to force
	being considered as a rule.
	(generated): Add stamp files before the inclusion of Makerules to
	magically mark them as not being intermediate via the `generated'
	target.
1997-02-04 02:01:01 +00:00
Ulrich Drepper 1228ed5cd5 update from main archive 970202
1997-02-03 02:33  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dl-deps.c (_dl_map_object_deps): Handle multiple AUXILIARY
	entries.  This is still no complete implementation since AUXILIARY
	entries in other shared objects are not yet handled.

	* libio/libio.h (_IO_cookie_io_functions_t): Move to C++ protected
	place.

	* po/es.po: Update.
	* po/fr.po: Update.
	* po/nl.po: Update.

	* time/Makefile: Better cross-compile support.  Avoid test which
	cannot be run.
	(CFLAGS-tzset.c): New variable.  Overwrite TZDEFAULT value from
	tzfile.h file.
	* time/tzfile.c (__tzfile_read): Allow TZDEFAULT start with '/' even
	in SUID programs.
	* time/tzset.c (__tzset_internal): If TZ envvar is not set use same
	default values as in tzfile.c.

	* elf/dynamic-link.h (elf_get_dynamic_info): Recognize versioning
	tags.
	* elf/link.h: Likewise.
	* elf/elf.h: Add tag definitions and data structures for versioning.

1997-02-03 02:17  Ulrich Drepper  <drepper@cygnus.com>

	* nis/rpcsvc/yp.x (struct ypresp_key_val): There is not stupid
	"Sun bug".  This is the order of elements also used by 4.4BSD.
	* nis/rpcsvc/yp.h: Likewise.
	Reported by HJ Lu.

1997-02-02 12:13  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* sunrpc/Makefile ($(objpfx)x%.h, $(objpfx)x%.c): Add "@:" as
	action.

	* Makefile (install): Pass installation directories as arguments
	to ldconfig.

1997-02-02 23:15  Ulrich Drepper  <drepper@cygnus.com>

	* malloc/malloc.c (__after_morecore_hook): New variable.
	(malloc_extend_top): Call __after_morecore_hook if set.
	(main_trim): Likewise.
	* malloc/malloc.h: Add declaration of __after_morecore_hook.
	Suggested by Marcus Daniels.

1997-02-02 23:00  Marcus G. Daniels  <marcus@tdb.com>

	* malloc/malloc.c (rEALLOc): Protect tsd_setspecific call by
	#ifndef NO_THREADS.
	(mallinfo): Likewise.

	* malloc/malloc.c (__morecore): Make external since it is used in
	programs.

1997-02-02 15:10  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/statbuf.h (struct stat): Make st_dev field
	unsigned.

1997-02-01 23:36  Richard Henderson  <rth@tamu.edu>

	* sysdeps/alpha/stxncpy.S ($unaligned) [src % 8 > dst % 8]: Don't
	use t6 as a temporary; it contains bits we still need in $u_head.

1997-01-31 15:05  John Bowman  <bowman@ipp-garching.mpg.de>

	* sysdeps/i386/fpu/__math.h [__USE_MISC]: Don't declare prototypes
	using __ prefix.  Add prototype for log1p.
1997-02-03 03:18:58 +00:00
Ulrich Drepper c0e4567461 update from main archive 970201
1997-02-02 00:39  Ulrich Drepper  <drepper@cygnus.com>

	* dirent/dirent.h: Add description _DIRENT_HAVE_D_TYPE.

1997-02-01 17:04  Philip Blundell  <pjb27@cam.ac.uk>

	* inet/netinet/ip.h (MAX_IPOPTLEN): Add definition.

1997-02-01 17:00  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/socketbits.h: Add definition of cmsghdr
	structure plus related macros.
	* sysdeps/unix/sysv/linux/cmsg_nxthdr.c: New file.
	* sysdeps/unix/sysv/linux/Makefile [$(subdir)=socket]
	(sysdep_routines): Add cmsg_nxthdr.
	* sysdeps/unix/sysv/linux/Dist: Add cmsg_nxthdr.c.
	Suggested by Philip Blundell <pjb27@cam.ac.uk>.

1997-02-01 12:34  Ulrich Drepper  <drepper@cygnus.com>

	* time/strftime.c: Define _strftime_copytm without protecting arguments
	which breaks the definition.

1997-02-01 03:31  Thorsten Kukuk  <kukuk@weber.uni-paderborn.de>

	* nis/rpcsvc/yp_prot.h: Move definition of yppushresp_xfr after
	definition of type for element.

1997-02-01 03:28  Philip Blundell  <pjb27@cam.ac.uk>

	* sydsdeps/unix/sysv/linux/netinet/in.h: Add IPv6 related IPPROTO_*
	constants.

1997-02-01 03:09  H.J. Lu  <hjl@lucon.org>

	* Makefile: Pass PARALLELMFLAGS to sub-makes.
	* Makefile.in: Mention PARALLELMFLAGS and pass to main Makefile.

1997-01-31  Paul Eggert  <eggert@twinsun.com>

	* time/mktime.c (HAVE_LIMITS_H, HAVE_LOCALTIME_R, STDC_HEADERS):
	Define if _LIBC is defined.
	<limits.h>: Include if HAVE_LIMITS_H instead of if
	__STDC__ || __GNU_LIBRARY__ || STDC_HEADERS.
	<stdlib.h>: Similarly, include if STDC_HEADERS.
	(localtime_r): Redo #ifdef to make it clear that glibc has
	localtime_r now.

1997-02-29 20:08  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sunrpc/Makefile ($(objpfx)rpcsvc/%.h, $(objpfx)x%.c): Use stamp
	file to avoid unnecessary recompilation.

1997-01-29 19:33  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makefile: Set install-others, not install_others.
	(before-compile): Use += to preserve previous value.
	($(inst_includedir)/gnu/lib-names.h): Remove obsolete comment and
	fix dependency name.
	($(objpfx)lib-names.h): Remove rule.
	* Makeconfig ($(common-objpfx)gnu/lib-names.h): Generate it here,
	with correct name, using an intermediate stamp file.
	(common-generated): Add gnu/lib-names.h.
	(before-compile): Add $(common-objpfx)gnu/lib-names.h.

1997-01-30 18:29  Richard Henderson  <richard@atheist.tamu.edu>

	* malloc/malloc.c (MAGICBYTE): Use cast to size_t instead of unsigned
	to prevent warnings on 64 bit systems.
	Reported by Paul Wouters <paul@xtdnet.nl>.

	* sysdeps/alpha/dl-machine.h: Revert check for broken gas.  By default
	we assume it works.
1997-02-02 01:50:11 +00:00
Ulrich Drepper 19361cb768 update from main archive 970129
1997-01-30 03:24  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/i386/elf/start.S (_start): Align stack pointer to
	double word boundary before pushing args for main.  This way we
	don't get penalties for misaligned memory accesses.  Reported by
	Edward Seidl <seidl@janed.com>.

	* Makefile: Correct *my* changes of Richards patch of 1997-01-28 10:51.
	Patch by HJ Lu.

	* misc/bsd-compat.c: Update copyright.
	* misc/efgcvt.c: Likewise.
	* misc/efgcvt_r.c: Likewise.
	* misc/error.c: Likewise.
	* misc/error.h: Likewise.
	* misc/fstab.c: Likewise.
	* misc/init-misc.c: Likewise.
	* misc/lsearch.c: Likewise.
	* misc/mntent.c: Likewise.
	* misc/qefgcvt.c: Likewise.
	* misc/qefgcvt_r.c: Likewise.
	* nss/databases.def: Likewise.
	* nss/db-Makefile: Likewise.
	* nss/ethers-lookup.c: Likewise.
	* nss/hosts-lookup.c: Likewise.
	* nss/netgrp-lookup.c: Likewise.
	* nss/nsswitch.h: Likewise.
	* nss/proto-lookup.c: Likewise.
	* nss/rpc-lookup.c: Likewise.
	* nss/service-lookup.c: Likewise.
	* nss/nss_db/db-netgrp.c: Likewise.
	* nss/nss_files/files-grp.c: Likewise.
	* nss/nss_files/files-hosts.c: Likewise.
	* nss/nss_files/files-network.c: Likewise.
	* nss/nss_files/files-proto.c: Likewise.
	* nss/nss_files/files-pwd.c: Likewise.
	* nss/nss_files/files-rpc.c: Likewise.
	* nss/nss_files/files-service.c: Likewise.
	* nss/nss_files/files-spwd.c: Likewise.
	* shadow/fgetspent.c: Likewise.
	* shadow/fgetspent_r.c: Likewise.
	* shadow/getspent.c: Likewise.
	* shadow/getspent_r.c: Likewise.
	* shadow/getspnam.c: Likewise.
	* shadow/getspnam_r.c: Likewise.
	* shadow/putspent.c: Likewise.
	* shadow/sgetspent.c: Likewise.
	* shadow/sgetspent_r.c: Likewise.
	* sysdeps/i386/init-first.c: Likewise.
	* sysdeps/unix/i386/sysdep.S: Likewise.

	* shadow/shadow.h: Don't use __USE_REENTRENT.  All code must be
	prepared to be running in a multi-threaded environment.  Change
	to __USE_MISC unless the function is defined in POSIX.1 (in this
	case also test for __USE_POSIX).
	* dirent/dirent.h: Likewise.
	* grp/grp.h: Likewise.
	* inet/aliases.h: Likewise.
	* libio/libio.h: Likewise.
	* libio/stdio.h: Likewise.
	* login/utmp.h: Likewise.
	* math/mathcalls.h: Likewise.
	* misc/mntent.h: Likewise.
	* pwd/pwd.h: Likewise.
	* resolv/netdb.h: Likewise.
	* stdlib/stdlib.h: Likewise.
	* string/string.h: Likewise.
	* sunrpc/rpc/netdb.h: Likewise.
	* sysdeps/generic/crypt.h: Likewise.
	* sysdeps/unix/sysv/linux/errnos.h: Likewise.
	* time/time.h: Likewise.

1997-01-30 00:27  Fila Kolodny  <fila@ibi.com>

	* sunrpc/Makefile (install-others): Add rpcsvc/bootparam_prot.h
	only if not cross compiling.

1997-01-29 16:16  Fila Kolodny  <fila@ibi.com>

	* sysdeps/posix/sigpause.c: Include <stddef.h> to get definition of
	NULL.
	* sysdeps/posix/sigwait.c: Likewise.

1997-01-28 23:42  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makeconfig ($(common-objpfx)config.make): Depend on
	$(..)config.make.in.
1997-01-30 04:09:36 +00:00
Ulrich Drepper 56552e4257 update from main archive 970128
1997-01-29 04:30  Ulrich Drepper  <drepper@cygnus.com>

	* sunrpc/Makefile: Don't generate headers derived from .x files when
	crosscompiling.

1997-01-28 10:51  Richard Henderson  <rth@tamu.edu>

	* Makefile: Generate gnu/lib-names.h in before-compile.
	* nss/nss.h (NSS_SHLIB_REVISION): Turn it into a const variable.
	* nss/nssswitch.c (__nss_shlib_revision): New variable.  Initialize
	to the revision found for LIBNSS_FILES_SO.
	(nss_initilized): Removed.  It was tested but never set.
	(nss_lookup_function): Don't treat NSS_SHLIB_REVISION as a literal.

	* shlib-versions: Tag all alpha-linux shlibs with a .1 "minor"
	not just libc.  Except instead of ld.so.1.1 use ld-linux.so.2.

	* sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S: Typo in ldgp.

1997-01-28 12:16  Andreas Jaeger  <aj@arthur.pfalz.de>

	* elf/Makefile (CFLAGS-dl-load.c): Use += to not
	override the definition.

1997-01-28 20:13  Fila Kolodny  <fila@ibi.com>

	* config.make.in (malloc): Remove.
1997-01-29 03:50:12 +00:00
Ulrich Drepper 831372e7c1 update from main archive 970127
1997-01-28 04:23  Ulrich Drepper  <drepper@cygnus.com>
	* version.h (VERSION): Bump to 2.0.1.
	* posix/getopt.c: Handle another problem introduced by the
	nonoption_flags array.  We must be able to work with reordered
	argv arrays.  Reported by Andreas Schwab.
1997-01-28 02:38  Ulrich Drepper  <drepper@cygnus.com>
	* sysdeps/unix/sysv/linux/i386/clone.S: Correct handling of new
1997-01-27 17:34  Thorsten Kukuk <kukuk@weber.uni-paderborn.de>
	* nis/rpcsvc/yp_prot.h: Correct definitions and types in file so
	that it works with yp.h.
1997-01-27 13:28  Ulrich Drepper  <drepper@cygnus.com>
	* malloc/malloc.h (__malloc_initialized) [_LIBC]: Define as
	__libc_malloc_initialized so that this variable is not shared with
	other users of GNU malloc.
	Suggested by Martin von Loewis <martin@mira.isdn.cs.tu-berlin.de>.
	* mcheck.h: Correct typo.  Use malloc/ instead of new-malloc/.
	* sysdeps/i386/Makefile (CFLAGS-dl-load.c, CFLAGS-dl-reloc.c): New
	variables to prevent warnings.
	* sysdeps/i386/dl-machine.h (fixup): Add prototype and declare
	using attribute regparm.
	(ELF_MACHINE_RUNTIME_TRAMPOLINE): Rewrite so that no register
	is changed by the resolver code.
1997-01-14 14:20  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
	* malloc/malloc.c (weak_variable): Define.
	(__malloc_initialize_hook, __free_hook, __malloc_hook, __realloc_hook,
	__memalign_hook): Make them weak definitions.
1997-01-26 11:35  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
	* sysdeps/unix/sysv/linux/getdents.c: Don't write beyond buffer
	limits, correctly take structure padding into account, use correct
	offset when resetting the stream, change heuristic to assume an
	average name length of 14 characters.
1997-01-25 18:06  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
	* sysdeps/unix/sysv/linux/alpha/termbits.h: Protect against multiple
	inclusion.
See ChangeLog.6 for earlier changes.
1997-01-28 03:59:29 +00:00
Ulrich Drepper bdf289b222 update from main archive 970126
Sun Jan 26 19:40:17 1997  Ulrich Drepper  <drepper@cygnus.com>

	* Version 2.0 net release.

	* Make-dist: Don't take care for two malloc directories.

Sun Jan 26 13:39:31 1997  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/alpha/Dist: Correct distribution of
	kernel_*.h files.

	* Make-dist: Don't mention new-malloc for dirs with have to be
	processed.

	* sysdeps/unix/sysv/linux/netinet/in.h (SOL_IP): Added.
	* inet/netinet/tcp.h (SOL_TCP): Added.
	* sysdeps/unix/sysv/linux/socketbits.h (SOL_RAW): Added.
	Reported by a sun <asun@zoology.washington.edu>.

	* Makefile: Add special goal to generate only-MD5 based crypt
1997-01-27 06:02:03 +00:00
Ulrich Drepper 33a934a3ab update from main archive 970125
Sun Jan 26 05:41:42 1997  Ulrich Drepper  <drepper@cygnus.com>

	* version.h (VERSION): Bump to 2.0.
	(RELEASE): Now it's "experimental".

	* Makefile (subdirs): Change $(malloc) to malloc.  We have only
	one malloc implementation again.
	* malloc/*: Remove from GNU libc.
	* new-malloc/* Move to malloc/.
	* config.make.in (defines): Remove @USE_NEW_MALLOC@.
	* configure.in: Remove --enable-new-malloc option and check for
	malloc implementation choice.
	* malloc.h: We don't need to check for the implementation to use
	anymore.  Simply include malloc/malloc.h.
	* malloc/Makefile (subdir): Change to malloc.
	* sysdeps/unix/sysv/linux/configure.in: Don't set malloc anymore.

	* Makefile: Add special goal to call generate only-MD5 based crypt
	library.
	* md5-crypt/Makefile: Likewise.

	* stdio-common/tstscanf.c: De-ANSI-declfy.  Update copyright.
	(rounds): Change type to size_t to prevent warning.

	* wcsmbs/btowc.c: Reformat copyright.
	* wcsmbs/mbrlen.c: Likewise.
	* wcsmbs/mbsinit.c: Likewise.
	* wcsmbs/mbsnrtowcs.c: Likewise.
	* wcsmbs/mbsrtowcs.c: Likewise.
	* wcsmbs/wcpcpy.c: Likewise.
	* wcsmbs/wcpncpy.c: Likewise.
	* wcsmbs/wcscat.c: Likewise.
	* wcsmbs/wcscmp.c: Likewise.
	* wcsmbs/wcscoll.c: Likewise.
	* wcsmbs/wcscpy.c: Likewise.
	* wcsmbs/wcscspn.c: Likewise.
	* wcsmbs/wcsdup.c: Likewise.
	* wcsmbs/wcslen.c: Likewise.
	* wcsmbs/wcsncat.c: Likewise.
	* wcsmbs/wcsncpy.c: Likewise.
	* wcsmbs/wcsnrtombs.c: Likewise.
	* wcsmbs/wcsrtombs.c: Likewise.
	* wcsmbs/wcsspn.c: Likewise.
	* wcsmbs/wcsstr.c: Likewise.
	* wcsmbs/wcstod.c: Likewise.
	* wcsmbs/wcstof.c: Likewise.
	* wcsmbs/wcstok.c: Likewise.
	* wcsmbs/wcstol.c: Likewise.
	* wcsmbs/wcstold.c: Likewise.
	* wcsmbs/wcstoq.c: Likewise.
	* wcsmbs/wcstoul.c: Likewise.
	* wcsmbs/wcstouq.c: Likewise.
	* wcsmbs/wcswidth.c: Likewise.
	* wcsmbs/wcsxfrm.c: Likewise.
	* wcsmbs/wctob.c: Likewise.
	* wcsmbs/wcwidth.c: Likewise.
	* wcsmbs/wcwidth.h: Likewise.
	* wcsmbs/wmemchr.c: Likewise.
	* wcsmbs/wmemcmp.c: Likewise.
	* wcsmbs/wmemmove.c: Likewise.
	* wcsmbs/wmemset.c: Likewise.

Sat Jan 25 03:34:14 1997  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/termbits.h: Protect against multiple
	inclusion.  Reported by a sun <asun@zoology.washington.edu>.

	Likewise for scanf4.c
	* stdlib/stdlib.h: Declare reentrant function from rand48 family
1997-01-26 05:33:35 +00:00
Ulrich Drepper 5b82669229 update from main archive 970124
Sat Jan 25 02:05:19 1997  Eirik Fuller  <eirik@netcom.com>

	* sysdeps/unix/sysv/linux/alpha/ioperm.c: Rename T2_SPARSE_BASE and
	T2_DENSE_BASE to T2_SPARSE_MEM and T2_DENSE_MEM resp.

Thu Jan 23 11:13:46 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/usleep.c: Normalize the time
	specification.

Fri Jan 24 14:33:45 1997  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/generic/socketbits.h: Also make SOCK_* constants available
	as macros so that #ifdef works.
	* sysdeps/unix/sysv/linux/socketbits.h: Likewise.

1997-01-23  Paul Eggert  <eggert@twinsun.com>

	* login/utmp_db.c, manual/time.texi, shlib-versions, sunrpc/rpc/svc.h,
	sunrpc/rpcsvc/sm_inter.x, sysdeps/generic/abort.c,
	sysdeps/libm-ieee754/e_sinhl.c, sysdeps/unix/sysv/linux/net/route.h,
	sysdeps/unix/sysv/linux/sparc/__sigtrampoline.S: Spell fixes.
1997-01-25 02:36:37 +00:00
Ulrich Drepper 9d187dd4ad update from main archive 970122
1997-01-23  Paul Eggert  <eggert@twinsun.com>

	* mktime.c (mktime): Invoke __tzset, not __tzset_internal, to set tz,
	so that tzname is set as POSIX requires.

Fri Jan 24 02:49:18 1997  Ulrich Drepper  <drepper@cygnus.com>

	* dirent/dirent.h: Declare readdir_r also when __USE_POSIX.
	* grp/grp.h: Declare *_r functions also when __USE_POSIX.
	* pwd/pwd.h: Likewise.
	* time/time.h: Likewise.
	* posix/unistd.h: Declare ttyname_r also when __USE_POSIX.
	* string/string.h: Declare strtok_r also when __USE_POSIX.

	* stdio-common/bug7.c: Use tmpnam to generate names for test files.

	* stdio-common/tmpnam.c: Update copyright.
	* stdio-common/tmpnam_r.c: Likewise.

	* sysdeps/unix/sysv/linux/alpha/sys/kernel_termios.h: Protect
	against multiple inclusion.  Include <termbits.h>.
	* sysdeps/unix/sysv/linux/sys/kernel_termios.h: Likewise.

	* sysdeps/unix/sysv/linux/net/if.h: Update according to recent
	kernel headers.  Patch by Philip Blundell <pjb27@cam.ac.uk>.

Thu Jan 23 17:42:00 1997  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/sparc/clone.S: Correct author attribution.

	* sysdeps/unix/sysv/linux/net/if_arp (MAX_ADDR_LEN): Add definition.

Thu Jan 23 14:20:34 1997  Ulrich Drepper  <drepper@cygnus.com>

	* time/tzfile.c (__tzfile_read): Don't allow arbitrary files to be
	read when running a setuid program.
1997-01-24 02:23:54 +00:00
Ulrich Drepper 8d57beeab1 update from main archive 970121
Thu Jan 23 04:06:42 1997  Ulrich Drepper  <drepper@cygnus.com>

	* Make-dist (.PHONY: dist): Remove duplicate declaration.
	(README): Depend on version.h not version.c.
	* Makefile (README): Depend on version.h not version.c.

	* Makeconfig (inst_libdir, inst_slibdir, inst_includedir,
	inst_datadir, inst_zonedir, inst_localedir, inst_i18ndir, inst_bindir,
	inst_sbindir, inst_infodir, inst_sysconfdir): New variables.  Same
	as variable withough inst_ but prepended with $(install_root).
	(localtime-time): Use $(inst_sysconfdir) not $(sysconfdir).
	* Makefile (install-others): Use $(inst_includedir).
	(gnu/stabs.h, gnu/lib-names.h): Use $(inst_includedir).
	* Makerules (tons of install rules): Use inst_% variables.
	* elf/Makefile: Likewise.
	* hurd/Makefile: Likewise.
	* intl/Makefile: Likewise.
	* manual/Makefile: Likewise.
	* po/Makefile: Likewise.
	* sunrpc/Makefile: Likewise.
	* sysdeps/mach/hurd/Makefile: Likewise.
	* sysdeps/standalone/i386/force_cpu386/Makefile: Likewise.
	* time/Makefile: Likewise.

	* config.make.in: Revert patch from Sat Jan 18 22:15:26 1997,
	leave install_root in place.

	* gnu-versions.h (_GNU_GETOPT_INTERFACE_VERSION): Define to 2.
	* posix/getopt.c (GETOPT_INTERFACE_VERSION): Define to 2.
	* posix/getopt1.c (GETOPT_INTERFACE_VERSION): Define to 2.

	* elf/Makefile [yes==$(has-ldconfig)]: Correct dependencies of
	ldconfig.
	(CFLAGS-dl-load.c): New variable, avoid gcc warning.

	* sysdeps/mach/hurd/configure.in: Add _LIBC_REENTRENT to DEFINES.

	* sysdeps/mach/hurd/getdents.c: Update copyright.  De-ANSI-declfy.
	* sysdeps/stub/getdents.c: Likewise.  Correct return value.
	* sysdeps/unix/getdents.c: Likewise.
	* sysdeps/unix/sysv/getdents.c: Likewise.

	* sysdeps/unix/readdir.c: Update copyright.

	* sysdeps/unix/bsd/sony/newsos4/Makefile: Correct ifeq arguments.
	* sysdeps/unix/bsd/sun/sunos4/Makefile: Likewise.
	* sysdeps/unix/sysv/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/alpha/Makefile: Likewise.
	* sysdeps/unix/sysv/linux/i386/Makefile: Likewise.

	* sysdeps/unix/sysv/linux/Dist: Don't distribute kernel_termios.h,
	but sys/kernel_termios.h.
	* sysdeps/unix/sysv/linux/alpha/Dist: Likewise.
	* sysdeps/unix/sysv/linux/Makefile [$(subdir)==termios]
	(sysdep_headers): Add sys/kernel_termios.h.
	* sysdeps/unix/sysv/linux/kernel_termios.h: Moved to...
	* sysdeps/unix/sysv/linux/sys/kernel_termios.h: ...here.
	* sysdeps/unix/sysv/linux/sys/tcgetattr.c: Use __kernel_termios and
	__KERNEL_NCCS instead of kernel_termios and KERNEL_NCCS resp.

	* sysdeps/unix/sysv/linux/alpha/ioctls.h: New file.

	* sysdeps/unix/sysv/linux/getdents.c: Correct problems with alignment.
	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove getdents.
	Reported by Eirik Fuller <eirik@netcom.com>.

	* time/Banner: Removed.  Wrong and unnecessary information.  It's now
	in...
	* time/README: New file.
	* time/Makefile (distribute): Remove Banner, add README.

Wed Jan 22 13:19:56 1997  Richard Henderson  <rth@tamu.edu>

	* sysdeps/unix/sysv/linux/alpha/ioperm.c (platforms): Add Sable.
	(init_iosys): Recognize /etc/alpha_systype as a four-tuple for
	the purpose of supporting brand new systems.
	(*): The type of iosys variables should be iosys_t.

1997-01-22  Paul Eggert  <eggert@twinsun.com>

	* strftime.c (_strftime_copytm):
	New function, to work around Solaris 2.5 tzset bug.

Wed Jan 22 23:05:14 1997  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/mach/hurd/vdprintf.c: Complete de-ANSI-declfication.
	* sysdeps/posix/pipestream.c (writedecl): Fix typo.
	Reported by Marcus G. Daniels <marcus@shannon.sysc.pdx.edu>.

Wed Jan 22 13:58:56 1997  Andreas Jaeger  <aj@arthur.pfalz.de>

	* elf/Makefile (CFLAGS-dl-load.c): New Variable to keep gcc silent
	since name_copy is initialized.

Wed Jan 22 16:58:12 1997  Ulrich Drepper  <drepper@cygnus.com>

	* stdio-common/Makefile (tests): Remove scanf11.
	* stdio-common/scanf11.c: Removed.
	* stdio-common/vfscanf.c Revert patch of Thu Jan 16 23:39:25 1997.
	Although the Corrigendum 1 describes the result as implemented the
	even more recent Amendement 1 seconds the position of ISO C:1990
	where the %n directive has no effect on the assignment count.
	* stdio-common/bug10.c: Likewise.
	* stdio-common/scanf1.c: Likewise.
	* stdio-common/scanf3.c: Likewise.
	* stdio-common/scanf10.c: Likewise.
	* stdio-common/tstdiomisc.c: Likewise.

	* new-malloc/obstack.h: Don't define malloc using bcopy if malloc
	is not available.  This leads to problems since bcopy does not
	return a value.  Instead define _obstack_memcpy based on memcpy or
	bcopy.  This name isn't used outside obstack.h and so no problems
	from using the memcpy function in a file including obstack.h can
	result.
	Reported by Martin Trapp <trapp@ipd.info.uni-karlsruhe.de>.

Tue Jan 21 18:35:55 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* misc/regexp.h (compile): Fix typos.

Tue Jan 21 01:01:59 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/sys/procfs.h (struct elf_prpsinfo): Fix
	type of pr_{pid,ppid,pgrp,sid} fields.
	* sysdeps/unix/sysv/linux/alpha/sys/procfs.h (struct
	elf_prpsinfo): Likewise.
1997-01-23 04:24:20 +00:00
Ulrich Drepper 1ef32c3dc4 update from main archive 970121
1997-01-21  Paul Eggert  <eggert@twinsun.com>

	* posix/getopt.c (_getopt_internal): Return -1, not EOF, when args
	are exhausted; this is required by POSIX.2.
	* catgets/gencat.c, db/makedb.c, locale/programs/locale.c,
	locale/programs/localedef.c, manual/examples/subopt.c,
	posix/getopt.c, posix/getopt1.c, stdio-common/bug4.c,
	sunrpc/rpcinfo.c (main): Check getopt return value against -1, not EOF.

Tue Jan 21 23:10:40 1997  Ulrich Drepper  <drepper@cygnus.com>

	* version.h (VERSION): Bump to 1.102.

	* sysdeps/unix/sysv/linux/alpha/Dist: Add kernel_sigaction.h.

	* elf/Makefile: Don't use CFLAGS-dl-load.c, but instead
	CPPFLAGS-dl-load.c so that dependencies can be determined correctly.
	* elf/dl-load.c: Fix comment.

	* time/Banner: New file.
	* time/Makefile (distribute): Add Banner.

	Update from ADO tzcode1997a and tzdata1997a.
	* time/antarctica: Update.
	* time/australia: Update.
	* time/zdump.c: Update.
	* time/zic.c: Update.
	* time/zone.tab: Update.

Mon Jan 20 08:38:32 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* config.make.in (has-ldconfig): New variable.

	* configure, configure.in (has_ldconfig): New substitute.

	* sysdeps/unix/sysv/linux/configure.in (has_ldconfig): New,
	check if $srcdir/elf/ldconfig.c exists.

	* Makeconfig (rootsbindir): New, default as
	$(exec_prefix)/sbin.
	(rtld-version-installed-name): New, default as
	ld-$(version).so.

	* Makefile (install): Call `$(common-objpfx)elf/ldconfig -d'
	only if $(cross-compiling) is no and $(build-shared) is yes.

	* Makerules (make-shlib-link): New macro.
	($(slibdir)/libfoo.so.$(libfoo.so-version)): Use
	$(make-shlib-link) for symlink.
	(install-rootsbin, install-rootsbin-nosubdir): New.
	(install-no-libc.a-nosubdir): Add
	install-rootsbin-nosubdir.

	* Rules (others): Add $(install-rootsbin).

	* config.make.in (rootsbindir): New.

	* configure, configure.in (libc_cv_rootsbindir): New
	substitute.

	* elf/Makefile (others, install-rootsbin): New, set to
	ldconfig.
	(+link): New for static linking.
	($(slibdir)/$(rtld-version-installed-name)): New.
	($(slibdir)/$(rtld-installed-name)): Depend on
	$(slibdir)/$(rtld-version-installed-name) and use
	$(make-shlib-link) for symlink.

	* sunrpc/xdr.c (xdr_string): Return FALSE if sp == NULL
	while XDR_ENCODE.

	* sysdeps/unix/sysv/linux/a.out.h: Use #include_next for
	glibc internals.

	* sysdeps/unix/sysv/linux/configure.in (libc_cv_rootsbindir):
	New, set to "/sbin" if "$prefix" == "/usr".

Tue Jan 21 13:38:39 1997  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile (distribute): Add glibcbug.in.
	Reported by Philip Blundell <pjb27@cam.ac.uk>.

	* elf/Makefile ($(objpfx)trusted-dirs.h): Create elf/ subdir in
	build directory if necessary.
	Reported by marcus@shannon.sysc.pdx.edu (Marcus G. Daniels).
1997-01-22 05:26:05 +00:00
Ulrich Drepper fd26970f33 update from main archive 970120
Tue Jan 21 04:05:20 1997  Ulrich Drepper  <drepper@cygnus.com>

	* version.h (VERSION): Bump to 1.101.

	Implement -d and -r option to `ldd' to check relocations.
	* elf/dl-error.c: Add another method to intercept errors.
	(_dl_receive_error): New function.  Install user defined handler.
	(receiver): New variable.  Contains pointer to user provided handler.
	(_dl_signal_error): If user provided handler is installed call this.
	* elf/dl-load.c (_dl_map_object): When shared object is not found in
	trace mode initialize a few more fields so that lookup can actually
	happen but always fails.
	* elf/ldd.sh.in: Rewrite argument handling.  Recognize new arguments
	to trigger reloation test.  Return with appropriate error code if
	a file wasn't found.  Print warning if object is not executable.
	* elf/ldd.bash.in: Likewise.
	* elf/link.h (receiver_fct): New type.  Used in _dl_receive_error.
	(_dl_sysdep_error): New prototype.
	(_dl_receive_error): New prototype.
	(_dl_signal_error): Remove  __attribute__ ((__noreturn__)).
	* elf/rtld.c (dl_main): Rewrite argument handling.  More than
	one argument allowed.  Recognize --data-relocs and --function-relocs
	arguments.
	Don't determine `lazy' mode from LD_BIND_NOW environment variable
	when in trace mode.
	If in trace mode and either --data-relocs or --function-relocs is
	given perform relocation.  Report errors using print_unresolved
	function.
	(print_unresolved): New function.  Print information about missing
	symbol on stderr.
	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_error): New function.
	Like _dl_sysdep_message but print to stderr.
	* sysdeps/mach/hurd/dl-sysdep.c: Likewise.

	* sysdeps/generic/sockaddrcom.h: Add definition of sa_family_t.
	Reported by Andreas Schwab.
	(__SOCKADDR_COMMON): Use sa_family_t for family member.
	* sysdeps/unix/bsd/bsd4.4/sockaddrcom.h: Likewise.

	Linux/Sparc support by Miguel de Icaza.
	* sysdeps/sparc/fpu_control.h: New file.
	* sysdeps/unix/sysv/linux/sparc/__sigtrampoline.S: New file.
	* sysdeps/unix/sysv/linux/sparc/brk.c: New file.
	* sysdeps/unix/sysv/linux/sparc/profil-counter.h: New file.
	* sysdeps/unix/sysv/linux/sparc/sigaction.c: New file.
	* sysdeps/unix/sysv/linux/sparc/socket.S: New file.
	* sysdeps/unix/sysv/linux/sparc/syscall.S: New file.
	* sysdeps/unix/sysv/linux/sparc/sysdep.h: New file.
	* sysdeps/unix/sysv/linux/sparc/Dist: New file.
	* sysdeps/unix/sysv/linux/sparc/Makefile: New file.

	* sysdeps/unix/sysv/linux/net/if_arp.h: Don't use kernel header.
	Provide own definition based on 4.4BSD and Linux.
	* sysdeps/unix/sysv/linux/net/ppp_defs.h: Define __u32 before
	including <linux/ppp_defs.h>.
	* sysdeps/unix/sysv/linux/sys/msq_buf.h (struct msqid_ds): Don't
	use __pid_t since the kernel might have a different size.
	* sysdeps/unix/sysv/linux/sys/shm_buf.h (struct shmid_ds): Likewise.
	Reported by Andreas Schwab.

	* time/asctime.c: Update copyright.
	* time/dysize.c: Likewise.
	* time/gmtime.c: Likewise.
	* time/timegm.c: Likewise.
	* time/offtime.c: Likewise.  De-ANSI-declfy.

	* time/tzset.c (__tzset_internal): When TZ envvar does not name a
	DST timezone don't default to offset -1.

	* sysdeps/unix/sysv/linux/net/route.h: Don't use kernel header.
	Reported by a sun <asun@zoology.washington.edu>.

	* resolv/Makefile: Correct spelling: subdirs-dirs -> subdir-dirs.

	* sysdeps/stub/sysv_signal.c: New file.  Stub implementation.

	* Makefile (distribute): Add mcheck.h.

	* nis/Makefile (distribute): Add nss-nis.h.

	* libio/Makefile (routines): Change vdprintf to iovdprintf to prevent
	dist problem.

	* nss/Makefile (distribute): Add digits_dots.c.

	* sysdeps/unix/sysv/linux/Dist: Add kernel_sigaction.h.
	* sysdeps/unix/sysv/linux/alpha/Dist: Add sys/procfs.h.
	* sysdeps/unix/sysv/linux/sparc/Dist: Add clone.S.
	* new-malloc/Makefile (distribute): Add mcheck-init.c and mcheck.h.

Mon Jan 20 17:54:28 1997  Sven Verdoolaege  <skimo@breughel.ufsia.ac.be>

	* manual/filesys.texi: Fix little problem (reentrant->readdir).

Fri Jan 17 19:07:07 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* configure.in [$elf=yes]: Check for support of .previous and
	.popsection in the assembler.
	* config.h.in: Add HAVE_ASM_PREVIOUS_DIRECTIVE and
	HAVE_ASM_POPSECTION_DIRECTIVE.
	* libc-symbols.h (__make_section_unallocated) [HAVE_ELF]: Define
	appropriate if either .previous or .popsection is supported.
	(libc_warning) [HAVE_ELF]: Use it here.

Sat Jan 18 22:15:26 1997  Richard Henderson  <rth@tamu.edu>

	* Makeconfig (CFLAGS-.so): Add -fno-common to prevent odd sorts of
	errors that can occur when linking libc.so.

Mon Jan 20 05:20:49 1997  Ulrich Drepper  <drepper@cygnus.com>

	* elf/dl-load.c (open_path): When running setuid don't try
	a directory if it is not given with the full name.

	* elf/Makefile (before-compile): New variable.  Mention trusted-dirs.h.
	(trusted-dirs.h): Construct file from $(default-rpath) and
	$(user-defined-trusted-dirs) variables.
	* elf/dl-load.c (_dl_map_object): Pass additional argument to open_path
	which is NULL except for the LD_LIBRARY_PATH pass in which case it
	is a pointer to the list of directories from the trusted-dirs.h
	file.
	(open_path): Accept additional argument with list of trusted dirs.
	When running setuid and a list of trusted dirs is given only use
	those which are mentioned in the list.

	* elf/rtld.c (dl_main): Don't reject whole LD_LIBRARY_PATH when
	running setuid.  Instead accept entries which do not contain a '/'.

	* Makeconfig: Correct comment about +(default_cflags).

Mon Jan 20 05:11:14 1997  Hrvoje Niksic  <hniksic@srce.hr>

	* time/strptime.c (recursive): Use && not || to test for valid
	argument.

Mon Jan 20 05:06:50 1997  Ulrich Drepper  <drepper@cygnus.com>

	* elf/ldd.sh.in: Exit with value 1 if an error occured.
	* elf/ldd.bash.in: Likewise.

	* elf/rtld.c (dl_main): Do not always ignore LD_PRELOAD when the
	binary runs setuid.  It is save to use those entries which do not
	contain a '/'.  This is compatible with Solaris-2.
1997-01-21 06:10:42 +00:00
Thomas Bushnell, BSG f9c53d1159 Regenerated: autoconf configure.in 1997-01-20 18:45:02 +00:00
Thomas Bushnell, BSG 9381196a94 *** empty log message *** 1997-01-20 18:44:20 +00:00
Ulrich Drepper 0c5ecdc449 update from main arhive 970119
Mon Jan 20 03:02:50 1997  Ulrich Drepper  <drepper@cygnus.com>

	* Make-dist: Update and reformat copyright.
	* Makeconfig: Likewise.
	* assert/Makefile: Likewise.
	* bare/Makefile: Likewise.
	* ctype/Makefile: Likewise.
	* dirent/Makefile: Likewise.
	* gmon/Makefile: Likewise.
	* gnulib/Makefile: Likewise.
	* grp/Makefile: Likewise.
	* hurd/Makefile: Likewise.
	* intl/Makefile: Likewise.
	* mach/Makefile: Likewise.
	* malloc/Makefile: Likewise.
	* manual/Makefile: Likewise.
	* math/Makefile: Likewise.
	* po/Makefile: Likewise.
	* pwd/Makefile: Likewise.
	* resource/Makefile: Likewise.
	* setjmp/Makefile: Likewise.
	* socket/Makefile: Likewise.
	* string/Makefile: Likewise.
	* sunrpc/Makefile: Likewise.
	* sysdeps/alpha/Makefile: Likewise.
	* sysdeps/gnu/Makefile: Likewise.
	* sysdeps/m68k/fpu/switch/Makefile: Likewise.
	* sysdeps/m68k/fpu/switch/68881-sw.h: Likewise.
	* sysdeps/m68k/fpu/switch/switch.c: Likewise.
	* sysdeps/mach/Makefile: Likewise.
	* sysdeps/hurd/Makefile: Likewise.
	* sysdeps/sparc/Makefile: Likewise.
	* sysdeps/standalone/i960/nindy960/Makefile: Likewise.
	* sysdeps/standalone/m68k/m68020/mvme136/Makefile: Likewise.
	* sysdeps/unix/common/Makefile: Likewise.
	* sysdeps/unix/sysv/Makefile: Likewise.
	* sysdeps/unix/sysv/irix4/Makefile: Likewise.
	* sysdeps/unix/sysv/sco3.2/Makefile: Likewise.
	* sysdeps/unix/sysv/sysv4/Makefile: Likewise.
	* sysdeps/vax/Makefile: Likewise.
	* sysvipc/Makefile: Likewise.
	* wcsmbs/Makefile: Likewise.
	* wctype/Makefile: Likewise.
	* elf/rtld.c (dl_main): Objects in LD_PRELOAD environment variable
	are separated according to Sun docs by white space not colon.
	* locale/C-time.c (_nl_C_LC_TIME): Use empty string to initialize
	fields which are not defined for the C locale.
	* sysdeps/m68k/fpu/switch/Makefile: Don't use ansidecl.h in constructed
	files.
	* sysdeps/m68k/fpu/switch/68881-sw.h: Likewise.
	* sysdeps/m68k/fpu/switch/switch.c: Likewise.
Sun Jan 19 19:43:31 1997  Andreas Jaeger  <aj@arthur.pfalz.de>
	* time/strptime.c: Provide prototype for strptime_internal.
Sun Jan 19 23:46:27 1997  Ulrich Drepper  <drepper@cygnus.com>
	* glibcbug.in: We don't guarantee confidential handling.  Set
	field to always contain `no'.
Sun Jan 19 21:28:01 1997  Philippe De Muyter  <phdm@info.ucl.ac.be>

	* intl/explodename.c: Include sys/types.h.
	* intl/l10nflist.c: Likewise.

Sat Jan 18 22:15:26 1997  Richard Henderson  <rth@tamu.edu>

	* config.make.in (install_root): New variable to make it easy to
	install glibc somewhere other than /.

	* shlib-versions: alpha-*-linux-* libc=6.1.

	Since sigset_t no longer fits in a register, we can't pass in the
	thread's initial mask so easily.  Take this opportunity to simplify
	the clone implementation by only accepting a single void* argument.

	* sysdeps/unix/sysv/linux/alpha/clone.S: Only take one argument.
	* sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/m68k/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/sparc/clone.S: Likewise.
	* sysdeps/unix/sysv/linux/schedbits.h: Update clone prototypes.

	* sysdeps/unix/sysv/linux/alpha/ioctl-types.h: Remove.
	Default Linux version should be sufficient.

	* sysdeps/unix/sysv/linux/alpha/sigprocmask.c: The osf_sigprocmask
	system call wants the sigset dereferenced.

	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add entries for
	__syscall_ustat and __syscall_xmknod.
	* sysdeps/unix/sysv/linux/alpha/xmknod.c: Include sys/sysmacros.h.

	* sysdeps/unix/sysv/linux/sigset.h: Use longs instead of ints.

	* sysdeps/unix/sysv/linux/tcsetattr.c: Fix pointer dereferences.

	* sysdeps/unix/sysv/linux/alpha/sigsuspend.c: Add comment about
	dependency to kernel type.

	* sysdeps/unix/sysv/linux/alpha/termbits.h: Correct comment.
1997-01-20 02:49:49 +00:00
Ulrich Drepper 5290baf06c update from main archive 970118
Sun Jan 19 04:38:20 1997  Ulrich Drepper  <drepper@cygnus.com>

	* config.make.in (have-ksh, KSH): New variables.  Will be filled
	in by configure.
	* configure.in: Add test for ksh like shell (prefer bash).
	* time/Makefile (tests): Depend on install-test-data.
	(distribute): Add simplebackw.
	(generated-dirs): New variable.
	[$(have-ksh)==yes] (install-others): Add iso3166.tab and zone.tab.
	(install-bin): Add tzselect.
	(install-test-data): Install the zoneinfo files which are needed
	for the test case in the build directory.
	(test-tz-ENV): New variable.  Call test-tz program using data in
	build directory.
	* time/simpleback: New file.
	* time/test-tz.c: Pretty print.
	* time/tzfile.c: Use value of environment variable TZDIR as directory
	to look for zone info files.
	don't let search for DST data destroy already found values.
	* time/tzselect.ksh: Use @KSH@ and @TZDIR@ to be substituted when
	installing.
	* time/tzset.c (__tzset_internal): Avoid freeing string twice.
	Set DST zone name to normal zone name if no information is provided.

	* time/mktime.c (mktime): Call __tzset_internal to use current
	value of TZ.

	* Makerules (common-clean): Remove $(generated-dirs) inclusing content.

	* glibcbug.in: Fix several bugs.  Reported by several people.

	* elf/Makefile: Correct dependecies for $(objpfx)ldd.

	* inet/netinet/ip.h: Define IPTOS_LOWCOST and IPTOS_MINCOST.

	* locale/C-time.c: Update copyright.
	* locale/localeinfo.h: Likewise.
	* sysdeps/unix/bsd/bsd4.4/direntry.h: Likewise.

	* locale/programs/ld-time.c (time_finish): Correct message string.
	* locale/programs/linereader.c (lr_token): Use correctly `number'
	not `digit' in message string.

	* stdlib/strtol.c [UNSIGNED]: Don't punt immediately when `-' is
	seen.  Instead return ULONG_MAX and set ERANGE.
	* stdlib/tst-strtol.c: Correct test to reflect above change.

Sun Jan 19 03:22:30 1997  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/unix/sysv/linux/sys/mtio.h: Don't use <linux/mtio.h>.
	We must not use <linux/posix_types.h>.

	* sysdeps/unix/sysv/linux/sys/ipc_buf.h: Don't use __kernel_* types
	since we must not use <linux/posix_types.h>.
	* sysdeps/unix/sysv/linux/sys/procfs.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/sys/ipc_buf.h: New file.  Similar
	to sysdeps/unix/sysv/linux/sys/ipc_buf.h, but use alpha relavent
	types.
	* sysdeps/unix/sysv/linux/alpha/sys/procfs.h: New file.  Similar
	to sysdeps/unix/sysv/linux/sys/procfs.h, but use alpha relavent
	types.

Sun Jan 19 01:48:20 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* sysdeps/libm-i387/e_exp.S: Correct computation of fractional
	part.
	* sysdeps/libm-i387/e_expf.S: Likewise.
	* sysdeps/libm-i387/e_expl.S: Likewise.
	* sysdeps/libm-i387/s_expm1.S: Correct computation of fractional
	part.  Take care of additional value left on stack by fscale.
	* sysdeps/libm-i387/s_expm1f.S: Likewise.
	* sysdeps/libm-i387/s_expm1l.S: Likewise.

Fri Jan 17 17:45:32 1997  Ulrich Drepper  <drepper@cygnus.com>

	* posix/getopt.c: Change all direct usages of `gettext' to `_'.

	* sysdeps/generic/sysd-stdio.c (__stdio_reopen): Add missing
	parameter.
	Reported by Harmanjit Singh <harman@netearth.iitd.ernet.in>.

Thu Jan 16 23:39:25 1997  Ulrich Drepper  <drepper@cygnus.com>

	* stdio-common/Makefile (tests): Add scanf11.
	* stdio-common/scanf11.c: New file.
	* stdio-common/vfscanf.c (__vfscanf): Increment `done' when %n
	was processed and value is not suppressed.
	* stdio-common/bug10.c: Correct test to expect %n increment the
	return value of scanf.
	* stdio-common/scanf1.c: Likewise.
	* stdio-common/scanf3.c: Likewise.
	* stdio-common/scanf10.c: Likewise.
	* stdio-common/tstdiomisc.c: Likewise.

	* time/strptime.c: Add lots of conditional compiling to enable use
	outside glibc.  When used in glibc, make sure C locale format
	strings will always be recognized.

Sat Jan 11 18:53:47 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/sys/sysmacros.h (major, minor, makedev):
	Fix definitions so that they work with __kernel_dev_t.

Sat Jan 11 14:24:10 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/kernel_sigaction.h,
	sysdeps/unix/sysv/linux/alpha/kernel_sigaction.h,
	sysdeps/unix/sysv/linux/sigaction.c: New files.
	* sysdeps/unix/sysv/linux/syscalls.list: Add s_sigaction.

Sun Jan 12 15:22:33 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* libc-symbols.h (link_warning): Make sure that the .gnu.warning
	section is not allocated.
	Update and reformat copyright.

Sun Jan 12 12:19:28 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* elf/Makefile ($(objpfx)ldd): Fix depedency list.

Sat Jan 11 15:11:26 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/Makefile ($(common-objpfx)sysd-syscalls): Fix
	command so that it works in subdirectories.

Wed Jan  8 22:07:58 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/i386/syscalls.list: Add s_getgroups and
	s_setgroups.
	* sysdeps/unix/sysv/linux/m68k/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/i386/getgroups.c,
	sysdeps/unix/sysv/linux/i386/setgroups.c,
	sysdeps/unix/sysv/linux/m68k/getgroups.c,
	sysdeps/unix/sysv/linux/m68k/setgroups.c: New files.

Wed Jan  8 19:42:59 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makefile (config.status): Delete bogus rule.
	($(objpfx)glibcbug): Renamed from plain `glibcbug', depend on
	config.status in build directory, fix command to change to build
	directory.
	* Makeconfig ($(common-objpfx)config.status): Depend on version.h.

Thu Jan  9 08:47:54 1997  Andreas Jaeger  <aj@arthur.pfalz.de>

	* glibcbug.in (while): We test for four and not five conditions,
	set MAIL_AGENT instead of RMAIL, filter spaces and tabs.

Thu Jan 16 22:00:27 1997  Ulrich Drepper  <drepper@cygnus.com>

	* misc/syslog.c: Don't define cancel_handler if _LIBC_REENTRANT
	is not defined.  Reported by Andreas Jaeger.

Thu Jan  9 08:47:54 1997  Andreas Jaeger  <aj@arthur.pfalz.de>

	* new-malloc/malloc.c (__MALLOC_P): define call to pthread
	initializer only if NO_THREADS is not defined.

Wed Jan  8 21:28:58 1997  Andreas Jaeger  <aj@arthur.pfalz.de>

	* resolv/nss_dns/dns-host.c: Clean-up: delete unnecessary includes
	and variables.

Thu Jan 16 21:50:27 1997  Ulrich Drepper  <drepper@cygnus.com>

	* inet/arpa/inet.h: Include <netinet/in.h> to get struct in_addr
	defined.

Tue Jan  7 17:29:59 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makerules (LDLIBS-c.so): New variable.

Tue Jan  7 19:22:00 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makefile ($(includedir)/gnu/lib-names.h): Define the library
	names as strings, not as sequence of tokens that may fall apart.

Fri Jan 10 14:08:41 1997  Roland McGrath  <roland@fmh.frob.com>

	* time/tzfile.c (__tzfile_read): Check for bogus type and zone name
	indices in data file and punt, so a bogus file can't crash us.

Thu Jan 16 20:29:15 1997  Ulrich Drepper  <drepper@cygnus.com>

	* values.h [__USE_MISC]: Define BITSPERBYTE.

Fri Jan 17 14:16:28 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* stdio/vdprintf.c: Moved file to ...
	* sysdeps/posix/vdprintf.c: Here.  De-ansideclificate.
	* sysdeps/stub/vdprintf.c: New file.
	* sysdeps/mach/hurd/vdprintf.c: New file.

Thu Jan  9 15:59:35 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/posix_opt.h: New file.

	* sysdeps/mach/hurd/sigwait.c (sigwait): Don't affect signal mask.

	* sysdeps/unix/bsd/tcsendbrk.c (tcsendbreak): Finish
	deansideclification.

	* sysdeps/mach/libc-lock.h: Add kludges to pretend to implement
	recursive locks.

Tue Jan  7 09:48:15 1997  Andreas Jaeger  <aj@arthur.pfalz.de>

	* signal/sigempty.c (sigemptyset): Correct typo: Empty set should
	have all bits zero.
1997-01-19 04:54:28 +00:00
Thomas Bushnell, BSG b51c27c032 Fri Jan 17 14:16:28 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* stdio/vdprintf.c: Moved file to ...
	* sysdeps/posix/vdprintf.c: Here.  De-ansideclificate.
	* sysdeps/stub/vdprintf.c: New file.
	* sysdeps/mach/hurd/vdprintf.c: New file.
1997-01-17 19:29:07 +00:00
Thomas Bushnell, BSG 038ebe2459 *** empty log message ***
Fri Jan 17 14:16:28 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* stdio/vdprintf.c: Moved file to ...
	* sysdeps/posix/vdprintf.c: Here.  De-ansideclificate.
	* sysdeps/stub/vdprintf.c: New file.
	* sysdeps/mach/hurd/vdprintf.c: New file.
1997-01-17 19:27:54 +00:00
Thomas Bushnell, BSG f94d25d4ee *** empty log message ***
Thu Jan  9 15:59:35 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/mach/hurd/posix_opt.h: New file.

	* sysdeps/mach/hurd/sigwait.c (sigwait): Don't affect signal mask.

	* sysdeps/unix/bsd/tcsendbrk.c (tcsendbreak): Finish
	deansideclification. 

	* sysdeps/mach/libc-lock.h: Add kludges to pretend to implement
	recursive locks.
1997-01-13 18:58:09 +00:00
Ulrich Drepper 61c162b5bc update from main archive 960107
Tue Jan  7 09:48:15 1997  Andreas Jaeger  <aj@arthur.pfalz.de>

	* signal/sigempty.c (sigemptyset): Correct typo: Empty set should
	have all bits zero.

Tue Jan  7 23:44:39 1997  Ulrich Drepper  <drepper@cygnus.com>

	* inet/gethstbynm.c: Include additional headers for additional
	code in nss/digits_dots.c.
	* inet/gethstbynm_r.c: Likewise.
	* inet/gethstbynm2.c: Likewise.
	* inet/gethstbynm2_r.c: Likewise.
	* nss/digits_dots.c: New file.  Handle dotted pair notation for
	gethstbynm functions.
	* nss/getXXbyYY.c: Include digits_dots.c to get extra code for
	handling dotted pair notation.
	* nss/getXXbyYY_r.c: Likewise.
	Patches by HJ Lu.

	* resolv/nss_dns/dns-host.c: Don't handle dotted pair notation.

	* io/getwd.c: Optimized a bit.

	* signal/signal.h: Always declare __sysv_signal.

	* sysdeps/generic/setenv.c: Add some portability code.

	* sysdeps/unix/sysv/fcntlbits.h: Update copyright.

	* sysdeps/unix/sysv/linux/fcntlbits.h: Add definitions from kernel
	to avoid using kernel headers.
	* sysdeps/unix/sysv/linux/alpha/fcntlbits.h: New file.  Alpha
	specific version.

	* sysdeps/unix/sysv/linux/syscalls.list: Add sys_mknod.  Don't
	mark sigreturn as EXTRA.

	* sysdeps/unix/sysv/linux/ustat.c: Declare __syscall_ustat.
	* sysdeps/unix/sysv/linux/alpha/ustat.c: New file.  Alpha version.

Tue Jan  7 09:48:15 1997  Andreas Jaeger  <aj@arthur.pfalz.de>

	* io/fts.c (fts_alloc): Add const to second parameter of function.

	* io/Makefile: Change CFLAGS-fts.c and define CFLAGS-ftw.c to
	prevent warnings.

	* signal/sigfillset.c: Include <string.h> for memset declaration.

Tue Jan  7 11:14:32 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* sysdeps/generic/setenv.c: Fix portability problems.

Tue Jan  7 02:10:17 1997  Ulrich Drepper  <drepper@cygnus.com>

	* posix/getopt.c (_getopt_internal): Don't reset __getopt_initialized
	after the last option was seen.

Mon Jan  6 15:30:21 1997  Ulrich Drepper  <drepper@cygnus.com>

	* elf/elf.h (DT_EXTRANUM): Set to 3 since 0x7ffffffd is used.
1997-01-07 23:29:44 +00:00
David MacKenzie 2ca1375a22 Add hppa1.1-hitachi-hiuxmpp support, passed along by rms. 1997-01-07 19:29:28 +00:00
Ulrich Drepper df4ef2ab9c update from main archive 960105 1997-01-06 22:07:28 +00:00
Ulrich Drepper 6f9e7002f3 Mon Jan 6 13:57:05 1997 Ulrich Drepper <drepper@cygnus.com>
* io/ftw.c: Add `const' to second parameter of function given as
	second parameter to ftw.
	* io/ftw.h: Likewise for prototype.
	Reported by Ronald F. Guilmette <rfg@monkeys.com>.

Thu Jan  2 23:44:39 1997  Philip Blundell  <pjb27@cam.ac.uk>

	* inet/Makefile (headers): Add netinet/ip.h.
	* inet/netinet/ip.h: New file, contains BSD definitions for struct
	ip and friends.

Fri Jan  3 23:17:11 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* string/string.h (strnlen): Add cast for C++.

Mon Jan  6 03:31:46 1997  Ulrich Drepper  <drepper@cygnus.com>

	* Makefile (install-bin): Define as glibcbug to install script.
	(glibcbug): New rules.  Create from glibcbug.in.
	* configure.in (AC_OUTPUT): Generate glibcbug script.
	* glibcbug.in: New file.
	* version.c: Mention glibcbug to report bugs.
	* catgets/gencat.c: Likewise.
	* db/makedb.c: Likewise.
	* locale/programs/locale.c: Likewise.
	* locale/programs/localedef.c: Likewise.
	* elf/ldd.bash.in: Likewise.
	* elf/ldd.sh.in: Likewise.
	* intl/locale.alias: Likewise.

	* mcheck.h: New file.  Necessary since mcheck.h is used in time/ap.c.

	* set-init.c: Update and reformat copyright.
	* version.c: Likewise.
	* signal/sigaddset.c: Likewise.
	* signal/sigdelset.c: Likewise.
	* signal/sigempty.c: Likewise.
	* signal/sigfillset.c: Likewise.
	* signal/siggetmask.c: Likewise.
	* signal/sigismem.c: Likewise.
	* sysdeps/generic/speed.c: Likewise.
	* sysdeps/unix/getdents.c: Likewise.
	* sysdeps/unix/xmknod.c: Likewise.
	* sysdeps/unix/bsd/poll.c: Likewise.
	* sysdeps/unix/bsd/tcdrain.c: Likewise.
	* sysdeps/unix/bsd/tcflow.c: Likewise.
	* sysdeps/unix/bsd/tcflush.c: Likewise.
	* sysdeps/unix/bsd/tcgetpgrp.c: Likewise.
	* sysdeps/unix/bsd/tcsendbrk.c: Likewise.
	* sysdeps/unix/bsd/tcsetpgrp.c: Likewise.
	* sysdeps/unix/bsd/sun/sunos4/tcsetattr.c: Likewise.
	* sysdeps/unix/sysv/getdents.c: Likewise.
	* sysdeps/unix/sysv/i386/sigreturn.S: Likewise.
	* termios/Makefile: Likewise.
	* termios/cfmakeraw.c: Likewise.
	* termios/cfsetspeed.c: Likewise.

	* version.h: Bump VERSION to 1.100.

	* intl/finddomain.c: Defining stpcpy function isn't necessary.

	* libio/genops.c (_IO_init): Use _IO_lock_init instead of
	_IO_lock_init_recursive.
	* libio/stdfiles.c (DEF_STDFILE): Use _IO_lock_initializer instead
	of _IO_lock_init.

	* locale/programs/charmap.c (obstack_chunk_alloc): Use malloc instead
	of xmalloc.
	* locale/programs/ld-collate.c: Likewise.
	* locale/programs/simple-hash.c: Likewise.

	* misc/Makefile (headers): Add selectbits.h.
	* misc/sys/select.h: Include <selectbits.h> to get necessary
	definitions.
	* sysdeps/generic/selectbits.h: New file.  Generic macros for
	handling file descriptor sets.
	* sysdeps/i386/selectbits.h: New file.  i386 specific macros for
	handling file descriptor sets.
	* sysdeps/generic/gnu/types.h: Remove _FD_* macros.

	* misc/mntent_r.c: Fix handling of multiple, comma-separated
	options.  Patch by Sai-Lai Lo <sll@orl.co.uk>.

	* po/de.po: Update.
	* po/ko.po: Update.
	* po/sv.po: Update.

	* posix/getopt.c: Only use the bash generated environment variable
	to determine non-option parameters when using in GNU libc and if
	the argument vector given to getopt is the same as given to the
	program.

	* posix/unistd.h [__USE_GNU]: Declare environ.

	* posix/sys/types.h (key_t): Also define when __USE_XOPEN.

	* resolv/res_debug.c: Add casts to prevent warnings.
	* resolv/res_query.c: Likewise.

	* resolv/nss_dns/dns-host.c: Change type for buffer size arguments
	to `size_t'.
	* resolv/nss_dns/dns-network.c: Likewise.

	* signal/sigempty.c: Use memset to initialize variable.
	* signal/sigfillset.c: Likewise.

	* signal/signal.h: Change back handling of signal.  The BSD
 	version is preferred and the new sysv_signal is used when
 	__USE_XOPEN.
	* sysdeps/posix/sysv_signal.c: Renamed from signal.c.  Use SVID
	semantic.
	* sysdeps/posix/signal.c: Renamed from bsd_signal.c.  Use BSD
	semantic.
	* sysdpes/posix/sigpause.c: Correct comment.
	* sysdeps/stub/sigpause.c: Provide default implementation.
	* signal/Makefile (routines): Remove bsd_signal, add sysv_signal.

	* sysdeps/generic/abort.c: Allow repeated calls to abort if
	a user defined handler for SIGABRT is installed.

	* sysdeps/stub/libc-lock.h: Define separate set of macros for
	handling recursive mutexes.

	* sysdeps/unix/Makefile: Change rule to generate syscall.h file
	so that it is generate in the sys/ subdir.

	* sysdeps/unix/sysv/linux/Dist: Add kernel_termios.h.
	* sysdeps/unix/sysv/linux/alpha/Dist: Add kernel_termios.h and
	sys/acct.h.

	* sysdeps/unix/sysv/linux/direntry.h: Don't use struct dirent from
	kernel.  Define own version with additional field d_type.
	* sysdeps/unix/sysv/linux/getdents.c: New file.  Reformat dirent
	entries after reading from kernel.

	* sysdeps/unix/sysv/linux/gnu/types.h: Don't use kernel headers.
	Define types based on kernel types except for uid_t, gid_t, mode_t,
	dev_t which are larger now.
	* sysdeps/unix/sysv/linux/alpha/gnu/types.h: Likewise.

	* sysdeps/unix/sysv/linux/ioctl-types.h: Don't include
	<linux/termios.h>.  Define structure here.
	* sysdeps/unix/sysv/linux/alpha/ioctl-types.h: Likewise.
	* sysdeps/unix/sysv/linux/kernel_termios.h: New file. Define
	architecture dependent struct termio type.
	* sysdeps/unix/sysv/linux/alpha/kernel_termios.h: Likewise.
	* sysdeps/unix/sysv/linux/sigset.h: Define extended sigset_t type.
	* sysdeps/unix/sysv/linux/sigsuspend.c: Pass first word of array
	to syscall.

	* sysdeps/unix/sysv/linux/socketbits.h: Don't use kernel header.
	* sysdeps/unix/sysv/linux/statfsbuf.h: Likewise.
	* sysdeps/unix/sysv/linux/termbits.h: Likewise.
	* sysdeps/unix/sysv/linux/alpha/termbits.h: Likewise.
	* sysdeps/unix/sysv/linux/ustatbits.h: Likewise.
	* sysdeps/unix/sysv/linux/net/if.h: Likewise.
	* sysdeps/unix/sysv/linux/netinet/in.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/acct.h: Likewise.

	* sysdeps/unix/sysv/linux/sys/sysmacros.h (minor, major, mkdev):
	Change definitions to fit new dev_t definition.

	* sysdeps/unix/sysv/linux/syscalls.list: Add getdents and sigreturn.
	Rename ustat to s_ustat since wrapper is needed.

	* sysdeps/unix/sysv/linux/tcgetattr.c: After getting value from
	kernel rewrite it to userland level data format.
	* sysdeps/unix/sysv/linux/tcsetattr.c: Before calling kernel change
	data format to kernel format.
	* sysdeps/unix/sysv/linux/ustat.c: New file.  Change format of
	device parameter to format needed by kernel.
	* sysdeps/unix/sysv/linux/alpha/ustat.c: Likewise.
	* sysdeps/unix/sysv/linux/xmknod.c: New file.  Extend generic
	version to change device parameter to format needed by kernel.
	* sysdeps/unix/sysv/linux/alpha/xmknod.c: Likewise.

	* sysdeps/unix/sysv/linux/alpha/sys/acct.h: New file.  Alpha specific
	definition of accounting structure.

	* sysdeps/unix/sysv/linux/sys/ptrace.h: Include <asm/ptrace.h>.
	Patch by Andreas Schwab.

	* time/ap.c: Include <mcheck.h>.

	* time/tzset.c (__tzset_internal): Change to take one argument
	which tells whether examining of TZ is always wanted or only if
	no initialization happened before.
	* time/localtime.c: (localtime, __localtime_r): Change for new
	__tzset_internal form.

	* time/sys/time.h: Include <sys/select.h> to get select related
	declarations.

Mon Jan  6 01:58:21 1997  Richard Henderson  <richard@atheist.tamu.edu>

	* sysdeps/alpha/dl-machine.h (elf_machine_dynamic): Work around
	bug in GNU ld.

Mon Jan  6 01:35:29 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>

	* misc/getpass.c: Make sure the content of the input buffer is not
	printed if the getpass function is interrupted.

Sat Jan  4 17:07:08 1997  Roland McGrath  <roland@fmh.frob.com>

	* md5-crypt/Makefile (rpath-link): Add md5-crypt objdir, not crypt.

Thu Jan  2 17:58:23 1997  Roland McGrath  <roland@fmh.frob.com>

	* sysdeps/generic/abort.c: Include <string.h> for memset decl.

	* new-malloc/mcheck.c [_LIBC || STDC_HEADERS || USG]: Include
	<string.h> so memset is declared.

Tue Dec 31 21:16:05 1996  Roland McGrath  <roland@fmh.frob.com>

	* elf/dl-deps.c (_dl_map_object_deps): Support DT_AUXILIARY.

	* elf/dl-error.c (_dl_catch_error): Save and restore old catch site so
	calls can be nested.

	* elf/link.h (struct link_map): Extend `l_info' by DT_EXTRANUM elts.
	* elf/dynamic-link.h (elf_get_dynamic_info): Grok tags in the Sun
	extension range.

	* elf/elf.h (DT_AUXILIARY, DT_FILTER, DT_EXTRANUM): New constant
	macros, for Sun extensions.
	(DT_EXTRATAGID): New macro to convert Sun extension tag values placed
	near the top of the processor-specific range into zero-origin indices.

	* elf/dl-deps.c (_dl_map_object_deps): Check for malloc failure.

Sat Jan  4 22:25:01 1997  Andreas Jaeger  <aj@arthur.pfalz.de>

	* libio/fcloseall.c: Include stdio.h for prototype declaration for
	__fcloseall.

Thu Jan  2 17:35:20 1997  Thomas Bushnell, n/BSG  <thomas@gnu.ai.mit.edu>

	* sysdeps/posix/signal.c: Provide ignorable definitions of
	SA_ONESHOT, SA_NOMASK, and SA_INTERRUPT for non-threads Posix
	systems.

Thu Jan  2 23:20:51 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* MakeTAGS ($P/siglist.pot): Delete rule.
	(XGETTEXTFLAGS-siglist.pot): Remove definition.
	(all-pot): Remove $P/siglist.pot.
	* sysdeps/unix/siglist.c: Mark strings as translatable.
	* sysdeps/unix/sysv/linux/siglist.h: Likewise.

Wed Jan  1 22:21:18 1997  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* misc/syscall.h: New file.
	* misc/sys/syscall.h: Removed.  Forwarding to <syscall.h> might
	find user header, so do it the other way round.
	* sysdeps/mach/sys/syscall.h: Moved here from parent directory.
	* sysdeps/stub/sys/syscall.h: Likewise.
	* sysdeps/unix/sysv/linux/sys/syscall.h: Likewise.
	* sysdeps/unix/sysv/sco3.2.4/sys/syscall.h: Likewise.
	* sysdeps/unix/sysv/linux/Makefile ($(objpfx)syscall-%.h): Update
	dependency.
	* sysdeps/unix/sysdep.h: Include <sys/syscall.h> instead of
	<syscall.h>.

Tue Dec 31 00:03:18 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* features.h: Fix typo.

Thu Jan  2 00:46:09 1997  Ulrich Drepper  <drepper@cygnus.com>

	* libio/_G_config.h: Add _G_HAVE_LONG_DOUBLE_IO for libg++.

	function.  This is the old signal.c file.
	* sysdeps/posix/signal.c: Change to have semantic of X/Open.
1997-01-06 21:48:19 +00:00
Miles Bader 3aaa074393 (*:GNU:*:*): The machine/subtype separator printed by uname -m is now `-', not '/'. 1997-01-05 03:44:26 +00:00
Karl Berry 3e99cd6f00 Oops, did inadvertent branch. 1997-01-04 19:24:13 +00:00
Richard Kenner 4398fea0c2 (M68*:*:R3V[567]*:*): Use uppercase 'M'. 1997-01-03 13:38:47 +00:00
Ulrich Drepper 6a6836233e Instruction to abort any process 1997-01-02 18:38:59 +00:00
848 changed files with 40749 additions and 21590 deletions
+5 -1
View File
@@ -4,7 +4,7 @@
TODO COPYING* AUTHORS copyr-* copying.*
glibc-*
configparms
configparms
sun[43]* i[345]86* hp300*
@@ -13,3 +13,7 @@ ieeetest hppa-sysdeps regex
gpl2lgpl.sed
distinfo
distinfo
crypt
linuxthreads
localedata
+63
View File
@@ -0,0 +1,63 @@
List of known bugs (certainly very incomplete)
----------------------------------------------
Time-stamp: <1997-05-21T20:55:45+0200 drepper>
This following list contains those bugs which I'm aware of. Please
make sure that bugs you report are not listed here. If you can fix one
of these bugs/limitations I'll certainly be glad to receive a patch.
Another source of information about bugs is the problem data base of the
GNU project. There is an easy to use WWW interface is available at
http://www-gnats.gnu.ai.mit.edu:8080/cgi-bin/wwwgnats.pl
I would appreciate it very much if you could verify the problem was not
reported before by looking though the database. To make the information
in this data as useful as possible please report bugs always using the
`glibcbug' shell script which gets installed with GNU libc.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Severity: [ *] to [***]
[ **] For GNU libc on Linux, there is still no solution for the UTMP
problem. Two people are working on a possible solution.
[Among others: PR libc/39]
[ **] There are problems with signal handling when using LinuxThreads.
[ **] The `cbrtl' function for ix86 does not work in the moment.
[ *] The precision of the `sinhl' and/or `asinhl' function do not seem
to be the best.
[ *] The syslog function should print to the console if the LOG_CONS
flag was given.
[PR libc/72]
[ *] On Linux, the <linux/posix_types.h> is not clean enough to satisfy
the C++ namespace rules. Declaring `struct fd_set' also makes
`fd_set' available in the global namespace which conflicts with
the definition of `fd_set' in glibc.
[PR libc/79]
[ *] On Linux, there should be a way to prevent defining the symbol
NGROUPS_MAX in the <linux/limits.h> header file. In glibc it
is defined in <posix1_lim.h> which must not make the other
symbols in <linux/limits.h> available.
[PR libc/140]
[ *] The localedef program should interpret only the required categories
addressed by `copy' statements. This especially means that limited
character sets must not lead to errors if the LC_CTYPE category in
the locale addressed by `copy' is not really used.
[ *] Statically linking with libpthread leads to strange warnings
from the linker. I don't know why this happen so far.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ulrich Drepper
drepper@cygnus.com
+1904 -8978
View File
File diff suppressed because it is too large Load Diff
+10547
View File
File diff suppressed because it is too large Load Diff
+62 -24
View File
@@ -74,6 +74,9 @@ please let me know.
[Q20] ``How can I compile gcc 2.7.2.1 from the gcc source code using
glibc 2.x?
[Q21] ``On Linux I've got problems with the declarations in Linux
kernel headers.''
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q1] ``What systems does the GNU C Library run on?''
@@ -260,7 +263,7 @@ incompatibilities:
* swapon(): the interface of this function didn't changed, but the
prototype is in a separate header file <sys/swap.h>. For the additional
argument of of swapon() you should use the SWAP_* constants from
argument of swapon() you should use the SWAP_* constants from
<linux/swap.h>, which get defined when <sys/swap.h> is included.
* errno: If a program uses variable "errno", then it _must_ include header
@@ -298,6 +301,13 @@ incompatibilities:
a separate library libresolv. If you find some symbols starting with
`res_*' undefined simply add -lresolv to your call of the linker.
* the `signal' function's behaviour corresponds to the BSD semantic and
not the SysV semantic as it was in libc-5. The interface on all GNU
systems shall be the same and BSD is the semantic of choice. To use
the SysV behaviour simply use `sysv_signal'. The major difference is
that the SysV implementation sets the SA_ONESHOT flag and so the handler
gets removed after the first call.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q10] ``Why does getlogin() always return NULL on my Linux box?''
@@ -365,10 +375,10 @@ catalog files to the XPG4 form:
[Q13] ``How do I configure GNU libc so that the essential libraries
like libc.so go into /lib and the other into /usr/lib?''
[A13] {UD} Like all other GNU packages GNU libc is configured to use a
base directory and install all files relative to this. If you intend
to really use GNU libc on your system this base directory is /usr. I.e.,
you run
[A13] {UD,AJ} Like all other GNU packages GNU libc is configured to
use a base directory and install all files relative to this. If you
intend to really use GNU libc on your system this base directory is
/usr. I.e., you run
configure --prefix=/usr <other_options>
Some systems like Linux have a filesystem standard which makes a
@@ -378,10 +388,10 @@ located on the same disk partition as /. The /usr subtree might be
found on another partition/disk.
To install the essential libraries which come with GNU libc in /lib
one must explicitly tell this. Autoconf has no option for this so you
have to use the file where all user supplied additional information
should go in: `configparms' (see the `INSTALL' file). For Linux the
`configparms' file should contain:
one must explicitly tell this (except on Linux, see below). Autoconf
has no option for this so you have to use the file where all user
supplied additional information should go in: `configparms' (see the
`INSTALL' file). Therefore the `configparms' file should contain:
slibdir=/lib
sysconfdir=/etc
@@ -390,6 +400,10 @@ The first line specifies the directory for the essential libraries,
the second line the directory for file which are by tradition placed
in a directory named /etc.
No rule without an exception: If you configure for Linux with
--prefix=/usr, then slibdir and sysconfdir will automatically be
defined as stated above.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q14] ``When linking with the new libc I get unresolved symbols
@@ -534,9 +548,10 @@ a different name: ld-linux.so.2. So you have to replace
by
%{!dynamic-linker:-dynamic-linker=/home/gnu/lib/ld.so.1}
in the above example specs file ti make it work for other systems.
in the above example specs file to make it work for other systems.
Future versions of GCC will automatically provide the correct specs.
Version 2.7.2.2 does and future versions of GCC will automatically
provide the correct specs.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
@@ -554,12 +569,6 @@ something like this:
GROUP ( libc.so.6 ld.so.1 libc.a )
{UD} The Linux ldconfig file probably generates a link libc.so ->
libc.so.6 in /lib. This is not correct. There must not be such a
link. The linker script with the above contents is placed in
/usr/lib which is enough for the linker.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q18] ``The prototypes for `connect', `accept', `getsockopt',
`setsockopt', `getsockname', `getpeername', `send',
@@ -589,14 +598,42 @@ invalid. I.e., an emulated FPU is for the libc as good as a real one.
[Q20] ``How can I compile gcc 2.7.2.1 from the gcc source code using
glibc 2.x?
[A20] {HJL} There is no support in gcc for glibc 2.0 before gcc 2.8. It
is very tricky to compile gcc 2.7.2.1 using glibc 2.x. You have to
build it manually or with one pass only. You also have to use the
specs file in this FAQ while compiling gcc.
[A20] {AJ} There's only support for glibc 2.0 in gcc 2.7.2.2 or later.
For 2.7.2.2 you should use the following patch and configure for
e.g. i486-linux.
-----------------------------------------------------------------------
--- configure Tue Feb 11 15:57:17 1997
+++ configure Wed Feb 12 23:09:29 1997
@@ -1021,7 +1021,7 @@
gnu_ld=yes
# GNU libc version 2 does not supply these;
# we want them from GCC.
- extra_parts="crtbegin.o crtend.o"
+ extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
;;
i[3456]86-go32-msdos | i[3456]86-*-go32)
cpu_type=i386
-----------------------------------------------------------------------
A pre-compiled binary version of gcc 2.7.2.1 linked with glibc 2.x for
Linux/x86 is available in the same directory at the glibc 2.x source
code ftp sites.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
[Q21] ``On Linux I've got problems with the declarations in Linux
kernel headers.''
[A21] {UD,AJ} On Linux, the use of kernel headers is reduced to a very
minimum. Besides giving Linus the possibility to change the headers
more freely it has another reason: user level programs now do not
always use the same types like the kernel does.
I.e., the libc abstracts the use of types. E.g., the sigset_t type is
in the kernel 32 or 64 bits wide. In glibc it is 1024 bits wide, in
preparation for future development. The reasons are obvious: we don't
want to have a new major release when the Linux kernel gets these
functionality. Consult the headers for more information about the changes.
Therefore you shouldn't include Linux kernel header files directly if
glibc has defined a replacement. Otherwise you might get undefined
results because of type conflicts.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
@@ -606,6 +643,7 @@ Answers were given by:
{DMT} David Mosberger-Tang, <davidm@AZStarNet.com>
{RM} Roland McGrath, <roland@gnu.ai.mit.edu>
{HJL} H.J. Lu, <hjl@gnu.ai.mit.edu>
{AJ} Andreas Jaeger, <aj@arthur.pfalz.de>
Local Variables:
mode:text
+22 -69
View File
@@ -157,17 +157,17 @@ build the GNU C library:
recommend you port GNU `make' instead. *Really.* We recommend
version GNU `make' version 3.75 or later.
* GCC 2.7.2.1
* GCC 2.7.2
On most platforms, the GNU C library can only be compiled with the
GNU C compiler. We recommend GCC version 2.7.2 or later; earlier
versions may have problems.
* `binutils' 2.7
* `binutils' 2.8
Using the GNU `binutils' (assembler, linker, and related tools) is
preferable when possible, and they are required to build an ELF
shared C library. We recommend `binutils' version 2.7 or later;
shared C library. We recommend `binutils' version 2.8 or later;
earlier versions are known to have problems or to not support all
architectures.
@@ -183,8 +183,8 @@ following patterns:
iX86-ANYTHING-linux
m68k-ANYTHING-linux
Former versions of this library used to support the following
configurations but the current status is unknown:
Former releases of this library (version 1.09.1 and perhaps earlier
versions) used to run on the following configurations:
alpha-dec-osf1
iX86-ANYTHING-bsd4.3
@@ -208,7 +208,13 @@ configurations but the current status is unknown:
sparc-sun-solaris2.N
sparc-sun-sunos4.N
Each case of `iX86' can be `i386', `i486', `i586', or `i686'.. All
Since no one has volunteered to test and fix the above
configurations, these are not supported at the moment. It's expected
that these don't work anymore. Porting the library is not hard. If
you are interested in doing a port, please contact the glibc
maintainers by sending electronic mail to <bug-glibc@prep.ai.mit.edu>.
Each case of `iX86' can be `i386', `i486', `i586', or `i686'. All
of those configurations produce a library that can run on any of these
processors. The library will be optimized for the specified processor,
but will not use instructions not available on all of them.
@@ -258,11 +264,11 @@ and `config.make' which are created by running `configure'; they will
be in whatever directory was current when you ran `configure'.
If you think you have found some way in which the GNU C library does
not conform to the ANSI and POSIX standards (*note Standards and
not conform to the ISO and POSIX standards (*note Standards and
Portability::.), that is definitely a bug. Report it!
Send bug reports to the Internet address `bug-glibc@prep.ai.mit.edu'
or the UUCP path `mit-eddie!prep.ai.mit.edu!bug-glibc'. If you have
Send bug reports to the Internet address <bug-glibc@prep.ai.mit.edu>
or the UUCP path <mit-eddie!prep.ai.mit.edu!bug-glibc>. If you have
other problems with installation or use, please report those as well.
If you are not sure how a function should behave, and this manual
@@ -270,8 +276,8 @@ doesn't tell you, that's a bug in the manual. Report that too! If the
function's behavior disagrees with the manual, then either the library
or the manual has a bug, so report the disagreement. If you find any
errors or omissions in this manual, please report them to the Internet
address `bug-glibc-manual@prep.ai.mit.edu' or the UUCP path
`mit-eddie!prep.ai.mit.edu!bug-glibc-manual'.
address <bug-glibc-manual@prep.ai.mit.edu> or the UUCP path
<mit-eddie!prep.ai.mit.edu!bug-glibc-manual>.
Adding New Functions
====================
@@ -773,10 +779,9 @@ parts of the library were contributed or worked on by other people.
platforms was written by Per Bothner and modified by Ulrich
Drepper.
* Some of the Internet-related code (most of the `inet'
subdirectory) and several other miscellaneous functions and
header files have been included from 4.4 BSD with little or no
modification.
* The Internet-related code (most of the `inet' subdirectory) and
several other miscellaneous functions and header files have been
included from 4.4 BSD with little or no modification.
All code incorporated from 4.4 BSD is under the following
copyright:
@@ -827,7 +832,7 @@ parts of the library were contributed or worked on by other people.
`rand' and `srand' functions, were written by Earl T. Cohen for
the University of California at Berkeley and are copyrighted by the
Regents of the University of California. They have undergone minor
changes to fit into the GNU C library and to fit the ANSI C
changes to fit into the GNU C library and to fit the ISO C
standard, but the functional code is Berkeley's.
* The Internet resolver code is taken directly from BIND 4.9.5,
@@ -914,59 +919,7 @@ parts of the library were contributed or worked on by other people.
Carnegie Mellon University
Pittsburgh PA 15213-3890
or `Software.Distribution@CS.CMU.EDU' any improvements or
or <Software.Distribution@CS.CMU.EDU> any improvements or
extensions that they make and grant Carnegie Mellon the
rights to redistribute these changes.
* The `getaddrinfo' function is written by Craig Metz and it has the
following copyright:
The Inner Net License, Version 2.00
===================================
The author(s) grant permission for redistribution and use in source and
binary forms, with or without modification, of the software
and documentation provided that the following conditions are met:
0. If you receive a version of the software that is
specifically labelled as not being for redistribution
(check the version message and/or README), you are not
permitted to redistribute that version of the software in
any way or form.
1. All terms of the all other applicable copyrights and
licenses must be followed.
2. Redistributions of source code must retain the authors'
copyright notice(s), this list of conditions, and the
following disclaimer.
3. Redistributions in binary form must reproduce the authors'
copyright notice(s), this list of conditions, and the
following disclaimer in the documentation and/or other
materials provided with the distribution.
4. All advertising materials mentioning features or use of
this software must display the following acknowledgement
with the name(s) of the authors as specified in the
copyright notice(s) substituted where indicated:
This product includes software developed by <name(s)>, The Inner
Net, and other contributors.
5. Neither the name(s) of the author(s) nor the names of its
contributors may be used to endorse or promote products
derived from this software without specific prior written
permission.
THIS SOFTWARE IS PROVIDED BY ITS AUTHORS AND CONTRIBUTORS ``AS
IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
OF SUCH DAMAGE.
If these license terms cause you a real problem, contact the author.
+14 -18
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
# Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -12,9 +12,9 @@
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If
# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
# Cambridge, MA 02139, USA.
# License along with the GNU C Library; see the file COPYING.LIB. If not,
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
dist:
@@ -47,9 +47,6 @@ subdirs := $(filter-out $(add-ons),$(subdirs))
# Make sure both stdio and libio get in, whichever is in use.
subdirs += stdio libio
# The same must be true for the malloc directories.
subdirs += malloc new-malloc
sysdep-Subdir-files := $(wildcard $(addsuffix /Subdirs,$(sysdep_dirs)))
ifdef sysdep-Subdir-files
subdirs := $(sort $(subdirs) \
@@ -121,8 +118,8 @@ foo:=$(shell echo '+out=$(+out)' >&2; echo foofoo >&2)
$(+sysdeps)
foo:=$(shell echo 'made +tsrcs=$(+tsrcs)'>&2)
foo:=$(shell echo generated='$(generated)' >&2)
generated := $(sort $(generated) $(generated:.S=.c) $(generated:.s=.c))
foo:=$(shell echo now generated='$(generated)' >&2)
#generated := $(sort $(generated) $(generated:.S=.c) $(generated:.s=.c))
#foo:=$(shell echo now generated='$(generated)' >&2)
+tsrcs := $(sort $(filter-out $(generated),$(+tsrcs)))
foo:=$(shell echo '+tsrcs=$(+tsrcs)'>&2)
foo:=$(shell echo foobie, dammit! >&2)
@@ -145,10 +142,10 @@ ifdef subdir
foo:=$(shell echo subdir foo >&2)
+tsrcs := Makefile $(+tsrcs) \
$(addsuffix .c,$(others) $(tests)) \
$(wildcard $(addsuffix .input,$(tests)) \
$(addsuffix .args,$(tests)))
+tsrcs := Makefile $(+tsrcs) \
$(addsuffix .c,$(others) $(tests) $(test-srcs)) \
$(wildcard $(addsuffix .input,$(tests) $(test-srcs)) \
$(addsuffix .args,$(tests) $(test-srcs)))
+tardeps := $(strip $(+tsrcs))
verbose = v
@@ -190,7 +187,6 @@ endef
configure: configure.in aclocal.m4; $(autoconf-it)
%/configure: %/configure.in aclocal.m4; $(autoconf-it)
.PHONY: dist
dist: $(tardir).tar.gz
subdir_dist: dist.tar
@@ -199,9 +195,9 @@ dist.tar: README $(tardir) $(+tsrcs)
$(tardir).tar: dist.tar subdir_dist
@echo Files listed here have names exceeding 14 chars.
tar xfv $< -C /tmp | sed -n '/[^/]\{15,\}/p'
tar covf $@ -C /tmp $(tardir)
-rm -fr /tmp/$(tardir) dist.tar &
tar xfv $< -C $${TMPDIR-/tmp} | sed -n '/[^/]\{15,\}/p'
tar covf $@ -C $${TMPDIR-/tmp} $(tardir)
-rm -fr $${TMPDIR-/tmp}/$(tardir) dist.tar &
%.Z: %
compress -c $< > $@
@@ -217,7 +213,7 @@ $(dist-subdirs):
$(MAKE) -C $(patsubst dist-%,%,$@) dist
# This is here instead of in Makefile so it can use $(release) and $(version).
README: README.template version.c
README: README.template version.h
-rm -f $@
sed -e 's/RELEASE/$(release)/' -e 's/VERSION/$(version)/' < $< > $@
# Make it unwritable so I won't change it by mistake.
+10 -12
View File
@@ -84,17 +84,22 @@ sources += $(foreach lib,$(extra-libs),$($(lib)-routines:=.c))
# All different versions of $(sources), preserving the configured sysdep
# directory order.
# Files that are found in the current directory cannot occur in
# sysdep directories, so don't bother searching them.
sysdep-sources := $(filter-out $(wildcard $(sources)), $(sources))
all-sources = $(wildcard $(sort $(sources) $(sources:.c=.S) $(sources:.c=.s) \
$(others:=.c) $(tests:=.c))) \
$(others:=.c) $(tests:=.c) $(test-srcs:=.c))) \
$(foreach dir,$(all-dirs),\
$(wildcard \
$(addprefix $(dir)/,\
$(sort $(sources) $(sources:.c=.S) \
$(sources:.c=.s)))))
$(sort $(sysdep-sources) \
$(sysdep-sources:.c=.S) \
$(sysdep-sources:.c=.s)))))
sysdep-headers := $(filter-out $(wildcard $(headers)), $(headers))
all-headers = $(wildcard $(headers)) \
$(foreach dir,$(all-dirs),\
$(wildcard $(addprefix $(dir)/,$(headers))))
$(wildcard $(addprefix $(dir)/,$(sysdep-headers))))
tags_sources := $(strip $(tags_sources))
@@ -147,14 +152,7 @@ else
$(extract)
endif
#$P/siglist.pot: $(common-objpfx)stdio-common/siglist.c; $(extract)
$P/siglist.pot: siglist.c; $(extract)
# Extract all strings from this file; its strings are not marked.
# Their surroundings are also not interesting.
XGETTEXTFLAGS-siglist.pot = -a --no-location
all-pot = $P/libc-top.pot $P/subdirs.pot $P/siglist.pot
all-pot = $P/libc-top.pot $P/subdirs.pot
ifndef subdir
# Collect all the subdir messages, massaging the file names in comments
+65 -16
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
# Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -12,9 +12,9 @@
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If
# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
# Cambridge, MA 02139, USA.
# License along with the GNU C Library; see the file COPYING.LIB. If not,
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Makefile configuration options for the GNU C library.
@@ -23,6 +23,8 @@ ifneq (,)
This makefile requires GNU Make.
endif
all: # Make this the default goal
ifneq "$(origin +included-Makeconfig)" "file"
+included-Makeconfig := yes
@@ -91,12 +93,13 @@ export full-config-sysdirs := $(full-config-sysdirs)
# changes and so config.status would be run every time; the dependence of
# config.make should suffice to force regeneration and re-exec, and the new
# image will notice if config.h changed.
$(common-objpfx)config.make: $(common-objpfx)config.status $(..)config.h.in
$(common-objpfx)config.make: $(common-objpfx)config.status \
$(..)config.make.in $(..)config.h.in
cd $(<D); $(SHELL) $(<F)
# Find all the sysdeps configure fragments, to make sure we re-run
# configure when any of them changes.
$(common-objpfx)config.status: $(..)configure \
$(common-objpfx)config.status: $(..)version.h $(..)configure \
$(foreach dir,$(full-config-sysdirs),\
$(wildcard \
$(dir)/Implies) \
@@ -146,11 +149,13 @@ endif
ifndef libdir
libdir = $(exec_prefix)/lib
endif
inst_libdir = $(install_root)$(libdir)
# Where to install the shared library and dynamic linker.
ifndef slibdir
slibdir = $(exec_prefix)/lib
endif
inst_slibdir = $(install_root)$(slibdir)
# Prefix to put on files installed in $(libdir). For libraries `libNAME.a',
# the prefix is spliced between `lib' and the name, so the linker switch
@@ -164,50 +169,64 @@ endif
ifndef includedir
includedir = $(exec_prefix)/include
endif
inst_includedir = $(install_root)$(includedir)
# Where to install machine-independent data files.
# These are the timezone database, and the locale database.
ifndef datadir
datadir = $(prefix)/share
endif
inst_datadir = $(install_root)$(datadir)
# Where to install the timezone data files (which are machine-independent).
ifndef zonedir
zonedir = $(datadir)/zoneinfo
endif
inst_zonedir = $(install_root)$(zonedir)
# Where to install the locale and message catalog data files (which are
# machine-independent).
ifndef localedir
localedir = $(datadir)/locale
endif
inst_localedir = $(install_root)$(localedir)
# Where to install the locale charmap source files.
ifndef i18ndir
i18ndir = $(datadir)/i18n
endif
inst_i18ndir = $(install_root)$(i18ndir)
# Where to install programs.
ifndef bindir
bindir = $(exec_prefix)/bin
endif
inst_bindir = $(install_root)$(bindir)
# Where to install administrative programs.
ifndef rootsbindir
rootsbindir = $(exec_prefix)/sbin
endif
inst_rootsbindir = $(install_root)$(rootsbindir)
ifndef sbindir
sbindir = $(exec_prefix)/sbin
endif
inst_sbindir = $(install_root)$(sbindir)
# Where to install the Info files.
ifndef infodir
infodir = $(prefix)/info
endif
inst_infodir = $(install_root)$(infodir)
# Where to install default configuration files. These include the local
# timezone specification and network data base files.
ifndef sysconfdir
sysconfdir = $(prefix)/etc
endif
inst_sysconfdir = $(install_root)$(sysconfdir)
# What timezone should be the installed default (e.g., US/Eastern).
# Run `make -C time echo-zonenames' to see a list of available zone names.
@@ -223,6 +242,7 @@ endif
# localizing the configuration data elsewhere.
ifndef localtime-file
localtime-file = $(sysconfdir)/localtime
inst_localtime-file = $(install_root)$(localtime-file)
endif
# What to use for leap second specifications in compiling the default
@@ -302,10 +322,10 @@ endif
ifndef +link
+link = $(CC) -nostdlib -nostartfiles -o $@ \
$(sysdep-LDFLAGS) $(config-LDFLAGS) $(LDFLAGS) \
$(addprefix $(csu-objpfx),start.o) $(+preinit) \
$(addprefix $(csu-objpfx),start.o) $(+preinit) $(+prector) \
$(filter-out $(addprefix $(csu-objpfx),start.o) $(+preinit) \
$(link-extra-libs) $(common-objpfx)libc% $(+postinit),$^) \
$(link-extra-libs) $(link-libc) $(+postinit)
$(link-extra-libs) $(link-libc) $(+postctor) $(+postinit)
endif
ifndef config-LDFLAGS
ifeq (yes,$(build-shared))
@@ -349,6 +369,8 @@ endif
ifeq ($(elf),yes)
+preinit = $(addprefix $(csu-objpfx),crti.o)
+postinit = $(addprefix $(csu-objpfx),crtn.o)
+prector = `$(CC) --print-file-name=crtbegin.o`
+postctor = `$(CC) --print-file-name=crtend.o`
endif
csu-objpfx = $(common-objpfx)csu/
elf-objpfx = $(common-objpfx)elf/
@@ -421,7 +443,7 @@ ifdef CFLAGS
endif # CFLAGS
endif # +cflags
# If none of the above worked, default to "-g".
# If none of the above worked, default to "-g -O".
ifeq "$(strip $(+cflags))" ""
+cflags := $(default_cflags)
endif # $(+cflags) == ""
@@ -464,13 +486,14 @@ endif
# to pass different flags for each flavor.
libtypes = $(foreach o,$(object-suffixes),$(libtype$o))
object-suffixes := .o
all-object-suffixes := .o .so .po .go
libtype.o := lib%.a
ifeq (yes,$(build-shared))
# Under --enable-shared, we will build a shared library of PIC objects.
# The PIC object files are named foo.so.
object-suffixes += .so
CPPFLAGS-.so = -DPIC
CFLAGS-.so = -fPIC
CFLAGS-.so = -fPIC -fno-common
libtype.so := lib%_pic.a
endif
ifeq (yes,$(build-profile))
@@ -498,12 +521,6 @@ endif
ifndef BUILD_CC
BUILD_CC = $(CC)
endif
ifneq ($(BUILD_CC),$(CC))
cross-compiling := yes
else
cross-compiling := no
endif
# Figure out the version numbers from version.h.
@@ -549,6 +566,34 @@ $(common-objpfx)soversions.mk: $(..)shlib-versions $(..)Makeconfig \
# Get $(version) defined with the release version number.
-include $(common-objpfx)version.mk
# Generate the header containing the names of all shared libraries.
# We use a stamp file to avoid uncessary recompilations.
before-compile += $(common-objpfx)gnu/lib-names.h
$(common-objpfx)gnu/lib-names.h: $(common-objpfx)gnu/lib-names.stmp
$(common-objpfx)gnu/lib-names.stmp: $(common-objpfx)soversions.mk
$(make-target-directory)
@rm -f ${@:stmp=T} $@
(echo '/* This file is automatically generated.';\
echo ' It defines macros to allow user program to find the shared';\
echo ' library files which come as part of GNU libc. */';\
echo '#ifndef __GNU_LIB_NAMES_H'; \
echo '#define __GNU_LIB_NAMES_H 1'; \
echo; \
(libs='$(all-sonames)';\
for l in $$libs; do \
upname=`echo $$l | sed 's/[.]so.*//' | \
tr 'abcdefghijklmnopqrstuvwxyz-' \
'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`; \
echo "#define $${upname}_SO \"$$l\""; \
done;) | sort; \
echo; \
echo '#endif /* gnu/lib-names.h */';) > ${@:stmp=T}
if test -r ${@:stmp=h} && cmp -s ${@:stmp=h} ${@:stmp=T}; \
then rm -f ${@:stmp=T}; \
else mv -f ${@:stmp=T} ${@:stmp=h}; fi
touch $@
common-generated += gnu/lib-names.h gnu/lib-names.stmp
# The name under which the run-time dynamic linker is installed.
# We are currently going for the convention that `/lib/ld.so.1'
@@ -561,6 +606,10 @@ rtld-installed-name = ld.so.1
endif
endif
ifndef rtld-version-installed-name
rtld-version-installed-name = ld-$(version).so
endif
endif # build-shared
endif # Makeconfig not yet included
+41 -33
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
# Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -52,7 +52,7 @@ endif
# These are the subdirectories containing the library source.
subdirs = csu assert ctype db locale intl catgets math setjmp signal stdlib \
stdio-common $(stdio) $(malloc) string wcsmbs time dirent grp pwd \
stdio-common $(stdio) malloc string wcsmbs time dirent grp pwd \
posix io termios resource misc login socket sysvipc gmon gnulib \
wctype manual shadow md5-crypt nss $(sysdep-subdirs) po \
$(add-ons) elf
@@ -85,14 +85,16 @@ subdirs := $(filter mach,$(subdirs)) $(filter hurd,$(subdirs)) \
headers := errno.h sys/errno.h errnos.h limits.h values.h \
features.h gnu-versions.h libc-lock.h xopen_lim.h
aux = sysdep $(libc-init) version
before-compile = $(objpfx)version-info.h
before-compile += $(objpfx)version-info.h
echo-headers: subdir_echo-headers
# What to install.
install-others = $(includedir)/gnu/stubs.h
install-others = $(inst_includedir)/gnu/stubs.h
install-bin = glibcbug
ifeq (yes,$(build-shared))
install-others += $(includedir)/gnu/lib-names.h
install-others += $(inst_includedir)/gnu/lib-names.h
endif
ifeq (yes,$(gnu-ld))
@@ -111,6 +113,16 @@ include Makerules
# Install from subdirectories too.
install: subdir_install
# Create linkfs for shared libraries using the `ldconfig' program is possible.
# Ignore the error if we cannot update /etc/ld.so.cache.
ifeq (no,$(cross-compiling))
ifeq (yes,$(build-shared))
install:
-test ! -x $(common-objpfx)elf/ldconfig || \
$(common-objpfx)elf/ldconfig -d $(inst_slibdir) $(inst_libdir)
endif
endif
# Build subdirectory lib objects.
lib-noranlib: subdir_lib
@@ -168,7 +180,7 @@ subdir-stubs := $(foreach dir,$(subdirs),$(common-objpfx)stub-$(dir))
# iterates over all the subdirs; subdir_install in each subdir depends on
# the subdir's stubs file. Having more direct dependencies would result in
# extra iterations over the list for subdirs and many recursive makes.
$(includedir)/gnu/stubs.h: subdir_install
$(inst_includedir)/gnu/stubs.h: subdir_install
@rm -f $(objpfx)stubs.h
(echo '/* This file is automatically generated.';\
echo ' It defines a symbol `__stub_FUNCTION'\'' for each function';\
@@ -182,34 +194,21 @@ $(includedir)/gnu/stubs.h: subdir_install
ifeq (yes,$(build-shared))
# Like gnu/stubs.h the gnu/lib-names.h header is not used while building the
# libc itself. So we generate it while installing.
$(includedir)/gnu/lib-names.h: $(common-objpfx)soversions.mk
@rm -f $(objpfx)lib-names.h
(echo '/* This file is automatically generated.';\
echo ' It defines macros to allow user program to find the shared';\
echo ' library files which come as part of GNU libc. */';\
echo '#ifndef __GNU_LIB_NAMES_H'; \
echo '#define __GNU_LIB_NAMES_H 1'; \
echo; \
(libs='$(all-sonames)';\
for l in $$libs; do \
upname=`echo $$l | sed 's/[.]so.*//' | \
tr '[:lower:]-' '[:upper:]_'`; \
echo "#define $${upname}_SO $$l"; \
done;) | sort; \
echo; \
echo '#endif /* gnu/lib-names.h */';) > $(objpfx)lib-names.h
if test -r $@ && cmp -s $(objpfx)lib-names.h $@; \
$(inst_includedir)/gnu/lib-names.h: $(common-objpfx)gnu/lib-names.h
if test -r $@ && cmp -s $< $@; \
then echo 'gnu/lib-names.h unchanged'; \
else $(INSTALL_DATA) $(objpfx)lib-names.h $@; fi
rm -f $(objpfx)lib-names.h
else $(INSTALL_DATA) $< $@; fi
endif
# The `glibcbug' script contains the version number and it shall be rebuild
# whenever this changes or the `glibcbug.in' file.
$(objpfx)glibcbug: $(common-objpfx)config.status glibcbug.in
cd $(<D); CONFIG_FILES=$(@F) CONFIG_HEADERS= $(SHELL) $(<F)
# This makes the Info or DVI file of the documentation from the Texinfo source.
.PHONY: info dvi
info dvi:
$(MAKE) -C manual $@
$(MAKE) $(PARALLELMFLAGS) -C manual $@
# This makes all the subdirectory targets.
@@ -223,7 +222,7 @@ all-subdirs-targets := $(foreach dir,$(subdirs),\
# The action for each of those is to cd into the directory and make the
# target there.
$(all-subdirs-targets):
$(MAKE) -C $(@D) $(@F)
$(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F)
.PHONY: $(+subdir_targets) $(all-subdirs-targets)
@@ -280,7 +279,7 @@ parent_echo-distinfo:
# Make the distribution tarfile.
distribute := README INSTALL FAQ NOTES NEWS PROJECTS \
distribute := README INSTALL FAQ NOTES NEWS PROJECTS BUGS \
COPYING.LIB COPYING ChangeLog ChangeLog.[0-9] \
Makefile Makeconfig Makerules Rules Make-dist MakeTAGS \
extra-lib.mk o-iterator.mk \
@@ -289,12 +288,13 @@ distribute := README INSTALL FAQ NOTES NEWS PROJECTS \
config.h.in config.make.in config-name.in Makefile.in \
autolock.sh rellns-sh munch-tmpl.c munch.awk interp.c \
sysdep.h set-hooks.h libc-symbols.h version.h shlib-versions \
rpm/Makefile rpm/template rpm/rpmrc nsswitch.h netgroup.h
rpm/Makefile rpm/template rpm/rpmrc nsswitch.h netgroup.h \
mcheck.h glibcbug.in
distribute := $(strip $(distribute))
generated := $(generated) stubs.h version-info.h
README: README.template version.c ; # Make-dist should update README.
README: README.template version.h ; # Make-dist should update README.
define format-me
@rm -f $@
@@ -303,6 +303,14 @@ makeinfo --no-validate --no-warn --no-headers $< -o $@
endef
INSTALL: manual/maint.texi; $(format-me)
NOTES: manual/creature.texi; $(format-me)
manual/dir-add.texi:
$(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F)
rpm/%: subdir_distinfo
$(MAKE) -C $(@D) subdirs='$(subdirs)' $(@F)
$(MAKE) $(PARALLELMFLAGS) -C $(@D) subdirs='$(subdirs)' $(@F)
# This is a special goal for people making binary distributions. Normally
# everybody uses the DES based crypt library but for the distribution we
# need the only-MD5 based one as well.
md5-crypt/libmd5crypt:
$(MAKE) $(PARALLELMFLAGS) -C $(@D) $(@F)
+4 -1
View File
@@ -2,5 +2,8 @@
srcdir = @srcdir@
# Uncomment the line below if you want to do parallel build.
# PARALLELMFLAGS = -j 4
all .DEFAULT:
$(MAKE) -C $(srcdir) objdir=`pwd` $@
$(MAKE) PARALLELMFLAGS="$(PARALLELMFLAGS)" -C $(srcdir) objdir=`pwd` $@
+82 -54
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
# Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -26,7 +26,7 @@ This makefile requires GNU Make.
endif
REQUIRED_MAKE_VERSION = 3.74
REAL_MAKE_VERSION = $(shell echo "$(MAKE_VERSION)" | sed 's/ .*//')
REAL_MAKE_VERSION = $(firstword $(MAKE_VERSION))
ifneq ($(REQUIRED_MAKE_VERSION), \
$(firstword $(sort $(REAL_MAKE_VERSION) $(REQUIRED_MAKE_VERSION))))
@@ -238,7 +238,7 @@ $(+sysdir_pfx)sysd-rules: $(+sysdir_pfx)config.make $(..)Makerules \
/*) dir=$$sysdir ;; \
*) dir="\$$(..)$$sysdir" ;; \
esac; \
for o in $(object-suffixes); do \
for o in $(all-object-suffixes); do \
$(open-check-inhibit-asm) \
echo "\$$(objpfx)%$$o: $$dir/%.S \$$(before-compile); \
\$$(compile-command.S)"; \
@@ -292,7 +292,8 @@ define +make-deps
$(make-target-directory)
-@rm -f $@
$(+mkdep) $< $(CPPFLAGS) $($(<:$*.%=%)-CPPFLAGS) | \
sed -e 's,$(subst .,\.,$*)\.o,$(foreach o,$(object-suffixes),$(@:.d=$o)) $@,' \
sed \
-e 's,$(subst .,\.,$*)\.o,$(foreach o,$(all-object-suffixes),$(@:.d=$o)) $@,' \
$(sed-remove-objpfx) > $(@:.d=.T)
mv -f $(@:.d=.T) $@
endef
@@ -338,12 +339,16 @@ $(LINK.o) -shared -o $@ $(sysdep-LDFLAGS) $(config-LDFLAGS) \
-L$(subst :, -L,$(rpath-link)) -Wl,-rpath-link=$(rpath-link) \
-Wl,--whole-archive $^ $(no-whole-archive) \
$(LDLIBS-$(@F:lib%.so=%).so)
test -z "$($(@F)-version)" || \
(rm -f $@$($(@F)-version); $(LN_S) $(@F) $@$($(@F)-version))
endef
# Don't try to use -lc when making libc.so itself.
# Also omits crti.o and crtn.o, which we do not want
# since we define our own `.init' section specially.
LDFLAGS-c.so = -nostdlib -nostartfiles
# But we still want to link libc.so against -lgcc.
LDLIBS-c.so = -lgcc
# Give libc.so an entry point and make it directly runnable itself.
LDFLAGS-c.so += -e __libc_main
# Use our own special initializer and finalizer files for libc.so.
@@ -351,12 +356,6 @@ $(common-objpfx)libc.so: $(elfobjdir)/soinit.so \
$(common-objpfx)libc_pic.a \
$(elfobjdir)/sofini.so $(elfobjdir)/ld.so
$(build-shlib)
ifdef libc.so-version
$(common-objpfx)libc.so$(libc.so-version): $(common-objpfx)libc.so
rm -f $@
ln -s $(<F) $@ || ln $< $@
endif
endif
# Some files must not be compiled with the exception handler mechanism
@@ -567,11 +566,11 @@ endef
# to install everything it changes.
ifdef objects
installed-libcs := $(foreach o,$(object-suffixes),\
$(libdir)/$(patsubst %,$(libtype$o),\
$(libprefix)$(libc-name)))
$(inst_libdir)/$(patsubst %,$(libtype$o),\
$(libprefix)$(libc-name)))
installed-libcs := $(filter-out %_pic.a,$(installed-libcs))
install: $(installed-libcs)
$(installed-libcs): $(libdir)/lib$(libprefix)%: lib
$(installed-libcs): $(inst_libdir)/lib$(libprefix)%: lib
$(make-target-directory)
$(INSTALL_DATA) $(common-objpfx)lib$(*:$(libc-name)%=c%) $@
# Running ranlib after installing makes the __.SYMDEF time stamp up to
@@ -589,15 +588,15 @@ install-lib.so := $(filter %.so,$(install-lib:%_pic.a=%.so))
install-lib := $(filter-out %.so %_pic.a,$(install-lib))
ifeq (yes,$(build-shared))
install-lib-nosubdir: $(install-lib.so:%=$(libdir)/%)
install-lib-nosubdir: $(install-lib.so:%=$(inst_libdir)/%)
# Find which .so's have versions.
versioned := $(strip $(foreach so,$(install-lib.so),\
$(patsubst %,$(so),$($(so)-version))))
# Install all the unversioned shared libraries.
$(addprefix $(slibdir)/,$(filter-out $(versioned),$(install-lib.so))): \
$(slibdir)/%.so: $(objpfx)%.so; $(do-install-program)
$(addprefix $(inst_slibdir)/, $(filter-out $(versioned),$(install-lib.so))): \
$(inst_slibdir)/%.so: $(objpfx)%.so; $(do-install-program)
ifneq ($(findstring -s,$(LN_S)),)
define make-link
@@ -614,25 +613,40 @@ mv -f $@.new $@
endef
endif
# XXX The following will have to be changed when `ldconfig' is available.
ifneq (yes,$(cross-compiling))
ifeq (yes,$(has-ldconfig))
define make-shlib-link
@:
endef
endif
endif
ifndef make-shlib-link
define make-shlib-link
$(make-link)
endef
endif
ifdef libc.so-version
# For a library specified to be version N, install three files:
# libc.so -> libc.so.N (e.g. libc.so.6)
# libc.so.6 -> libc-VERSION.so (e.g. libc-1.10.so)
$(slibdir)/libc.so$(libc.so-version): $(slibdir)/libc-$(version).so
$(make-link)
$(slibdir)/libc-$(version).so: $(common-objpfx)libc.so; $(do-install-program)
install: $(slibdir)/libc.so$(libc.so-version)
$(inst_slibdir)/libc.so$(libc.so-version): $(inst_slibdir)/libc-$(version).so
$(make-shlib-link)
$(inst_slibdir)/libc-$(version).so: $(common-objpfx)libc.so
$(do-install-program)
install: $(inst_slibdir)/libc.so$(libc.so-version)
ifndef subdir
# What we install as libc.so for programs to link against is in fact a
# link script. It contains references for the various libraries we need.
# The libc.so object is not complete since some functions are only defined
# in libc.a and the dynamic linker is an etra object.
install: $(libdir)/libc.so
$(libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \
$(elfobjdir)/$(rtld-installed-name) \
$(libdir)/lib$(libc-name).a
install: $(inst_libdir)/libc.so
$(inst_libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \
$(elfobjdir)/$(rtld-installed-name) \
$(inst_libdir)/lib$(libc-name).a
(echo '/* GNU ld script';\
echo ' Use the shared library, but some functions are only in';\
echo ' the static library, so try that secondarily.'; \
@@ -645,8 +659,9 @@ $(libdir)/libc.so: $(common-objpfx)libc.so$(libc.so-version) \
endif
else
install: $(slibdir)/libc.so
$(slibdir)/libc.so: $(common-objpfx)libc.so; $(do-install-program)
install: $(inst_slibdir)/libc.so
$(inst_slibdir)/libc.so: $(common-objpfx)libc.so
$(do-install-program)
endif
@@ -654,7 +669,7 @@ ifneq (,$(versioned))
# Produce three sets of rules as above for all the smaller versioned libraries.
define o-iterator-doit
$(libdir)/$o: $(slibdir)/$o$($o-version); $$(make-link)
$(inst_libdir)/$o: $(inst_slibdir)/$o$($o-version); $$(make-link)
endef
object-suffixes-left := $(versioned)
include $(o-iterator)
@@ -670,26 +685,28 @@ include $(o-iterator)
ifeq (,$($(subdir)-version))
define o-iterator-doit
$(slibdir)/$o$($o-version): $(slibdir)/$(o:.so=)-$(version).so; $$(make-link)
$(inst_slibdir)/$o$($o-version): $(inst_slibdir)/$(o:.so=)-$(version).so;
$$(make-shlib-link)
endef
object-suffixes-left := $(versioned)
include $(o-iterator)
define o-iterator-doit
$(slibdir)/$(o:.so=)-$(version).so: $(objpfx)$o; $$(do-install-program)
$(inst_slibdir)/$(o:.so=)-$(version).so: $(objpfx)$o; $$(do-install-program)
endef
object-suffixes-left := $(versioned)
include $(o-iterator)
else
define o-iterator-doit
$(slibdir)/$o$($o-version): $(slibdir)/$(o:.so=)-$($(subdir)-version).so;
$$(make-link)
$(inst_slibdir)/$o$($o-version): \
$(inst_slibdir)/$(o:.so=)-$($(subdir)-version).so;
$$(make-shlib-link)
endef
object-suffixes-left := $(versioned)
include $(o-iterator)
define o-iterator-doit
$(slibdir)/$(o:.so=)-$($(subdir)-version).so: $(objpfx)$o;
$(inst_slibdir)/$(o:.so=)-$($(subdir)-version).so: $(objpfx)$o;
$$(do-install-program)
endef
object-suffixes-left := $(versioned)
@@ -705,54 +722,62 @@ endef
so-versions := $(sort $(foreach so,$(install-lib.so),.so$($(so)-version)))
$(foreach v,$(so-versions),\
$(slibdir)/lib$(libprefix)%$v): $(common-objpfx)lib%.so
$(inst_slibdir)/lib$(libprefix)%$v): $(common-objpfx)lib%.so
$(do-install-so)
$(foreach v,$(so-versions),\
$(slibdir)/$(libprefix)%$v): $(common-objpfx)%.so
$(inst_slibdir)/$(libprefix)%$v): $(common-objpfx)%.so
$(do-install-so)
endif
ifdef install-bin
$(addprefix $(bindir)/,$(install-bin)): $(bindir)/%: $(objpfx)%
$(addprefix $(inst_bindir)/,$(install-bin)): $(inst_bindir)/%: $(objpfx)%
$(do-install-program)
endif
ifdef install-rootsbin
$(addprefix $(inst_rootsbindir)/,$(install-rootsbin)):
$(inst_rootsbindir)/%: $(objpfx)%
$(do-install-program)
endif
ifdef install-sbin
$(addprefix $(sbindir)/,$(install-sbin)): $(sbindir)/%: $(objpfx)%
$(addprefix $(inst_sbindir)/,$(install-sbin)): $(inst_sbindir)/%: $(objpfx)%
$(do-install-program)
endif
ifdef install-lib
install-lib.a := $(filter lib%.a,$(install-lib))
install-lib-non.a := $(filter-out lib%.a,$(install-lib))
ifdef install-lib-non.a
$(addprefix $(libdir)/$(libprefix),$(install-lib-non.a)): \
$(libdir)/$(libprefix)%: $(objpfx)%
$(addprefix $(inst_libdir)/$(libprefix),$(install-lib-non.a)): \
$(inst_libdir)/$(libprefix)%: $(objpfx)%
$(do-install)
endif
ifdef install-lib.a
$(install-lib.a:lib%.a=$(libdir)/lib$(libprefix)%.a): \
$(libdir)/lib$(libprefix)%.a: $(objpfx)lib%.a
$(install-lib.a:lib%.a=$(inst_libdir)/lib$(libprefix)%.a): \
$(inst_libdir)/lib$(libprefix)%.a: $(objpfx)lib%.a
$(do-install)
$(patsubst %,$(RANLIB) $@,$(filter-out $(non-lib.a),$(<F)))
endif
endif
ifdef install-data
$(addprefix $(datadir)/,$(install-data)): $(datadir)/%: %;$(do-install)
$(addprefix $(inst_datadir)/,$(install-data)): $(inst_datadir)/%: %;
$(do-install)
endif
headers := $(strip $(headers))
ifdef headers
$(addprefix $(includedir)/,$(headers)): \
$(includedir)/%: %;$(do-install)
$(addprefix $(inst_includedir)/,$(headers)): $(inst_includedir)/%: %;
$(do-install)
endif # headers
.PHONY: install-bin-nosubdir install-sbin-nosubdir install-lib-nosubdir \
install-data-nosubdir install-headers-nosubdir
install-bin-nosubdir: $(addprefix $(bindir)/,$(install-bin))
install-sbin-nosubdir: $(addprefix $(sbindir)/,$(install-sbin))
install-lib-nosubdir: $(addprefix $(libdir)/,\
.PHONY: install-bin-nosubdir install-rootsbin-nosubdir install-sbin-nosubdir \
install-lib-nosubdir install-data-nosubdir install-headers-nosubdir
install-bin-nosubdir: $(addprefix $(inst_bindir)/,$(install-bin))
install-rootsbin-nosubdir: \
$(addprefix $(inst_rootsbindir)/,$(install-rootsbin))
install-sbin-nosubdir: $(addprefix $(inst_sbindir)/,$(install-sbin))
install-lib-nosubdir: $(addprefix $(inst_libdir)/,\
$(patsubst lib%.a,lib$(libprefix)%.a,$(install-lib.a)) \
$(addprefix $(libprefix),$(install-lib-non.a)))
install-data-nosubdir: $(addprefix $(datadir)/,$(install-data))
install-headers-nosubdir: $(addprefix $(includedir)/,$(headers))
install-data-nosubdir: $(addprefix $(inst_datadir)/,$(install-data))
install-headers-nosubdir: $(addprefix $(inst_includedir)/,$(headers))
install-others-nosubdir: $(install-others)
# We need all the `-nosubdir' targets so that `install' in the parent
@@ -764,7 +789,8 @@ install-%:: install-%-nosubdir ;
.PHONY: install install-no-libc.a-nosubdir
install-no-libc.a-nosubdir: install-headers-nosubdir install-data-nosubdir\
install-bin-nosubdir install-lib-nosubdir \
install-others-nosubdir install-sbin-nosubdir
install-others-nosubdir install-rootsbin-nosubdir \
install-sbin-nosubdir
install: install-no-libc.a-nosubdir
# Command to compile $< in $(objdir) using the native libraries.
@@ -809,9 +835,10 @@ mostlyclean: common-mostlyclean
# Remove the object files.
common-mostlyclean:
-rm -f $(addprefix $(objpfx),$(tests) $(others) \
$(addsuffix .o,$(tests) $(others)) \
$(addsuffix .out,$(tests)))
-rm -f $(addprefix $(objpfx),$(tests) $(test-srcs) $(others) \
$(addsuffix .o,$(tests) $(test-srcs) \
$(others)) \
$(addsuffix .out,$(tests) $(test-srcs)))
-rm -f $(addprefix $(objpfx),$(extra-objs) $(install-lib))
-rm -f core $(common-objpfx)stub-$(subdir)
$(rmobjs)
@@ -823,6 +850,7 @@ endef
# Also remove the dependencies and generated source files.
common-clean: common-mostlyclean
-rm -f $(addprefix $(objpfx),$(generated)) $(+depfiles)
-rm -fr $(addprefix $(objpfx),$(generated-dirs))
-rm -f $(addprefix $(common-objpfx),$(common-generated))
-rm -f $(common-objpfx)distinfo-$(subdir)
+114 -22
View File
@@ -1,9 +1,32 @@
GNU C Library NEWS -- history of user-visible changes. 25 August 1996
GNU C Library NEWS -- history of user-visible changes. 1997-03-18
Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
Copyright (C) 1992, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
See the end for copying conditions.
Please send GNU C library bug reports to bug-glibc@prep.ai.mit.edu.
Please send GNU C library bug reports using the `glibcbug' script to
<bugs@gnu.ai.mit.edu>. Questions and suggestions should be send to
<bug-glibc@prep.ai.mit.edu>.
Version 2.0.2
* more bug fixes
* add atoll function
* fix complex problems in Berkeley DB code
* fix math functions
Version 2.0.1
* fixed lots of header problems (especially Linux/GNU specific)
* dynamic loader preserves all registers
* Roland McGrath provided support for handling of auxiliary objects in
the ELF dynamic loader.
* support for parallel builds is improved
Version 2.0
@@ -34,7 +57,9 @@ Version 2.0
are enabled, the new library `-ldl' is available for arbitrary run-time
loading of shared objects; its interface is defined in <dlfcn.h>. The
new header file <link.h> gives access to the internals of the run-time
dynamic linker, `ld.so'.
dynamic linker, `ld.so'. The shell script `ldd' is similar to the
application of same name on other systems and it provides information
about dynamically linked binaries.
* The C library now provides the run-time support code for profiling
executables compiled with `-pg'. Programs can control the profiling code
@@ -43,18 +68,22 @@ Version 2.0
the support for this file format was contributed by David Mosberger-Tang.
* The math code has been replaced with a math library based on fdlibm from
Sun, and modified by JT Conklin with i387 support and by Ian Taylor with
`float' functions. The math functions now reside in a separate library,
so programs using them will need to use `-lm' their linking commands.
Sun, and modified by JT Conklin and Ulrich Drepper with i387 support, by
Ian Taylor with `float' functions and by Ulrich Drepper with `long double'
functions. The math functions now reside in a separate library, so
programs using them will need to use `-lm' their linking commands.
* John C. Bowman contributed optimized ix87 assembler inline functions.
* Ulrich Drepper has contributed support for an `/etc/nsswitch.conf'
mechanism similar to that found in Solaris 2. This is now used for the
group, passwd, hosts, networks, services, protocols, and rpc databases.
The `nsswitch.conf' file controls what services are used for each
individual database. This works by loading shared libraries with names
specified in `nsswitch.conf', so service modules can be changed or added at
any time without even relinking any program. A future release of the
separate NYS package will provide NIS/YP and NIS+ modules for this interface.
group, passwd, hosts, networks, services, protocols, rpc, ethers,
shadow, netgroup, publickey, and alias databases. The `nsswitch.conf'
file controls what services are used for each individual database. This
works by loading shared libraries with names specified in `nsswitch.conf',
so service modules can be changed or added at any time without even
relinking any program. Currently there are the file, db, and NIS based
NSS services available.
* The new functions `strtoq' and `strtouq' parse integer values from
strings, like `strtol' and `strtoul', but they return `long long int' and
@@ -69,13 +98,25 @@ Version 2.0
`strtod', `strtof', and `strtold'. These new functions are perfectly
accurate, and much faster than the old ones.
* The implementation of the POSIX locale model was completely rewritten by
Ulrich Drepper. This includes the new programs `localedef' and `locale'
to compile the POSIX locale definition.
* The former dummy implementations of the strcoll and strxfrm function are
now replaced by fully functional code contributed by Ulrich Drepper. The
collation information comes from the POSIX locale definitions.
* The new header <langinfo.h> defines an interface for accessing
various locale-dependent data (using the locale chosen with `setlocale').
* Ulrich Drepper has contributed a new suite of functions for operation on
wide-character and multibyte-character strings, in <wcstr.h> and <mbstr.h>;
wide-character and multibyte-character strings, in <wchar.h>;
and classification and case conversion of wide characters, in <wctype.h>.
These new functions are intended to conform to the ISO C specification.
These new functions are conforming to the ISO C, Amendement 1 specification.
* There is now a second implementation of the standard I/O library available.
It comes from GNU libg++ as was written by Per Bothner, heavily modified
by Hongjiu Lu and made thread safe by Ulrich Drepper.
* You can now use positional parameter specifications in format strings
for the `printf' and `scanf' families of functions. For example,
@@ -104,7 +145,9 @@ Version 2.0
* The new header file <fts.h> and suite of functions simplify programs that
operate on directory trees. This code comes from 4.4 BSD.
* The resolver code has been updated from the BIND 4.9.5-T4B release.
* The resolver code has been updated from the BIND 4.9.5-P1 release.
Parts of the code were heavily modified by Ulrich Drepper to fit in the
NSS scheme used in glibc.
* The new function `malloc_find_object_address' finds the starting address
of a malloc'd block, given any address within the block;
@@ -132,7 +175,9 @@ Version 2.0
* The new functions `ecvt', `fcvt', and `gcvt' provide an obsolete interface
for formatting floating-point numbers. They are provided only for
compatibility; new programs should use `sprintf' instead.
compatibility; new programs should use `sprintf' instead. There are
also equivalent function for the `long double' floating-point type and
all functions also exist in a reentrant form.
* The new auxiliary library `-lutil' from 4.4 BSD contains various
functions for maintaining the login-record files (primarily of use to
@@ -156,13 +201,17 @@ Version 2.0
* Ulrich Drepper has updated the Linux-specific code, based largely
on work done in Hongjiu Lu's version of GNU libc for Linux.
The GNU library now supports Linux versions 1.3.29 and later,
using the ELF object file format (i[345]86-*-linux).
The GNU library now supports Linux versions 2.0.10 and later,
using the ELF object file format (i[3456]86-*-linux).
* Andreas Schwab has ported the C library to Linux/m68k (m68k-*-linux).
* David Mosberger-Tang has ported the C library to Linux/Alpha (alpha-*-linux).
Richard Henderson contributed the dynamic linking support for ELF/Alpha.
* David Mosberger-Tang and Richard Henderson have ported the C library
to Linux/Alpha (alpha-*-linux). Richard Henderson contributed the
dynamic linking support for ELF/Alpha.
* Richard Henderson contributed several Alpha optimized assembler function
for arithmetic and string handling.
* Ulrich Drepper has contributed a new set of message catalog functions to
support multiple languages using the <libintl.h> interface, for use with
@@ -199,6 +248,7 @@ Version 2.0
POSIX.2 `glob' function to do ~ and {...} expansion.
* New function `unsetenv' complements `setenv' for compatibility with 4.4 BSD.
`clearenv' which is used in POSIX.9 is also available.
* New function `getsid' returns session ID number on systems that support it.
@@ -212,7 +262,9 @@ Version 2.0
space from `alloca' instead of dynamic heap space from `malloc'.
* New function `strnlen' is like `strlen' but searches only a given maximum
number of characters for the null terminator.
number of characters for the null terminator. `stpncpy', `strndup' and
`strndupa' are similar variants for the `stpcpy', `strdup' and `strdupa'
function.
* New function `statfs' in header <sys/statfs.h>.
@@ -222,6 +274,46 @@ Version 2.0
* A new suite of functions in <utmp.h> handle all the details of reading
and writing the utmp file.
* An implementation of the NIS/YP(tm) based NSS service was contributed by
Thorsten Kukuk.
* Paul Eggert and Ulrich Drepper modified the `strftime' function to be
completely POSIX compliant and also implemented the extended functionality
to handle alternate digit representation and alternate era date formats.
* Ulrich Drepper provided an implementation of the `strptime' function
defined in XPG4.2 which transforms a string into a `struct tm' value.
* Paul Eggert provided the tzselect shell script as part of the timezone
code. The shell script makes it easy to select the correct timezone
specification.
* The implementation of the malloc family of functions is completely replaced
by a new implementation by Doug Lea with many improvements by Wolfram Gloger.
The implementation uses the mmap function (if available) and it is
optimized for the use in multi threaded programs.
* Ulrich Drepper contributed a MD5 "encryption" for the crypt family of
functions. This new functionality is usable by specifying a special
salt string and it is compatible with implementation on *BSD systems.
* Lots of functions from the XPG4.2 standard were added by Ulrich Drepper:
`getsubopt' to handle second level command line options, `bsd_signal'
to access BSD style `signal' functionality, the obsolete `regexp' style
expression matcher.
* the `lchown' function is available on system which support this
functionality.
* The implementation of the shadow password handling function was contributed
by Ulrich Drepper.
* David Mosberger-Tang changed the SunRPC implementation to be 64bit safe.
* POSIX.1g support was added. The <sys/select.h> header is available,
`isfdtype' and `pselect' are implemented. Craig Metz contributed an
implementation of `getaddrinfo'.
Version 1.09
+17 -3
View File
@@ -1,6 +1,6 @@
Open jobs for finishing GNU libc:
---------------------------------
Status: October 1996
Status: January 1997
If you have time and talent to take over any of the jobs below please
contact <bug-glibc@prep.ai.mit.edu>
@@ -10,6 +10,8 @@ contact <bug-glibc@prep.ai.mit.edu>
[ 1] Port to new platforms or test current version on formerly supported
platforms.
**** See http://www.gnu.org/software/libc/porting.html for more details.
[ 2] Test compliance with standards. If you have access to recent
standards (IEEE, ISO, ANSI, X/Open, ...) and/or test suites you
@@ -31,6 +33,8 @@ contact <bug-glibc@prep.ai.mit.edu>
Implementation idea: use some functions from bash.
**** Somebody is working on this. Help may or may not be appreciated.
[ 5] Write `long double' versions of the math functions. This should be
done in collaboration with the NetBSD and FreeBSD people.
@@ -83,5 +87,15 @@ contact <bug-glibc@prep.ai.mit.edu>
[11] Rewrite utmp/wtmp functions to use database functions. This is much
better than the normal flat file format.
Please contact bug-glibc@prep.ai.mit.edu before starting to avoid
duplicated work.
**** There are plans for a new approach to this problem. Please contact
bug-glibc@prep.ai.mit.edu before starting to work.)
[12] Several more or less small functions have to be written:
+ tcgetid() and waitid() from XPG4.2
+ grantpt(), ptsname(), unlockpt() from XPG4.2
+ getdate() from XPG4.2
+ fmtmsg() from SVID
More information are available on request.
+29 -16
View File
@@ -1,14 +1,14 @@
This directory contains the version 1.96 test release of the GNU C Library.
This directory contains the version 2.0.4 test release of the GNU C Library.
Many bugs have been fixed since the last release.
Some bugs surely remain.
As of this release, the GNU C library is known to run on the following
configurations:
*-*-gnu GNU Hurd
i[3456]86-*-linux Linux-2.0 on Intel
m68k-*-linux Linux-2.0 on Motorola 680x0
alpha-*-linux Linux-2.0 on DEC Alpha
i[3456]86-*-gnu GNU Hurd
i[3456]86-*-linux-gnu Linux-2.0 on Intel
m68k-*-linux-gnu Linux-2.0 on Motorola 680x0
alpha-*-linux-gnu Linux-2.0 on DEC Alpha
Former releases of this library (version 1.09.1 and perhaps earlier
@@ -36,41 +36,54 @@ versions) used to run on the following configurations:
sparc-sun-solaris2
sparc-sun-sunos4
Whether this is still true for this release is unknown. Porting the
library is not hard. If you are interested in doing a port, please
get on the mailing list by sending electronic mail to
bug-glibc-request@prep.ai.mit.edu.
Since no one has volunteered to test and fix the above configurations,
these are not supported at the moment. It's expected that these don't
work anymore. Porting the library is not hard. If you are interested
in doing a port, please contact the glibc maintainers by sending
electronic mail to <bug-glibc@prep.ai.mit.edu>.
The GNU C library now includes Michael Glad's Ultra Fast Crypt, which
provides the Unix `crypt' function, plus some other entry points.
Because of the United States export restriction on DES implementations,
we are distributing this code separately from the rest of the C
library. There is an extra distribution tar file just for crypt; it is
called `glibc-1.96-crypt.tar.gz'. You can just unpack the crypt
called `glibc-crypt-2.0.4.tar.gz'. You can just unpack the crypt
distribution along with the rest of the C library and build; you can
also build the library without getting crypt. Users outside the USA
can get the crypt distribution via anonymous FTP from ftp.uni-c.dk
[129.142.6.74], or another archive site outside the USA. Archive
can get the crypt distribution via anonymous FTP from ftp.ifi.uio.no
[129.240.64.21], or another archive site outside the USA. Archive
maintainers are encouraged to copy this distribution to their archives
outside the USA. Please get it from ftp.uni-c.dk; transferring this
outside the USA. Please get it from ftp.ifi.uio.no; transferring this
distribution from prep.ai.mit.edu (or any other site in the USA) to a
site outside the USA is in violation of US export laws.
Beside the separate crypt tar file there are some more add-ons which can be
used together with GNU libc. They are designed in a way to ease the
installation by integrating them in the libc source tree. Simply get the
add-ons you need and use the --enable-add-ons option of the `configure'
script to tell where the add-ons are found. Please read the FAQ file for
more details.
See the file INSTALL to find out how to configure, build, install, and port
the GNU C library.
the GNU C library. You might also consider reading the WWW pages for the
GNU libc at http://www.gnu.org/software/libc/libc.html.
The GNU C Library is completely documented by the Texinfo manual found
in the `manual/' subdirectory. The manual is still being updated and
contains some known errors and omissions; we regret that we do not have
the resources to work on the manual as much as we would like. Please
send comments on the manual to bug-glibc-manual@prep.ai.mit.edu, and
send comments on the manual to <bug-glibc-manual@prep.ai.mit.edu>, and
not to the library bug-reporting address.
The file NOTES contains a description of the feature-test macros used
in the GNU C library, explaining how you can tell the library what
facilities you want it to make available.
Send bug reports to bug-glibc@prep.ai.mit.edu.
We prefer to get bug reports sent using the `glibcbug' shell script which
is install together with the rest of the GNU libc to <bugs@gnu.ai.mit.edu>.
Simply run this shell script and fill in the information. Nevertheless
you can still send bug reports to <bug-glibc@prep.ai.mit.edu> as normal
electronic mails.
The GNU C Library is free software. See the file COPYING.LIB for copying
conditions.
+28 -15
View File
@@ -5,10 +5,10 @@ Some bugs surely remain.
As of this release, the GNU C library is known to run on the following
configurations:
*-*-gnu GNU Hurd
i[3456]86-*-linux Linux-2.0 on Intel
m68k-*-linux Linux-2.0 on Motorola 680x0
alpha-*-linux Linux-2.0 on DEC Alpha
i[3456]86-*-gnu GNU Hurd
i[3456]86-*-linux-gnu Linux-2.0 on Intel
m68k-*-linux-gnu Linux-2.0 on Motorola 680x0
alpha-*-linux-gnu Linux-2.0 on DEC Alpha
Former releases of this library (version 1.09.1 and perhaps earlier
@@ -36,41 +36,54 @@ versions) used to run on the following configurations:
sparc-sun-solaris2
sparc-sun-sunos4
Whether this is still true for this release is unknown. Porting the
library is not hard. If you are interested in doing a port, please
get on the mailing list by sending electronic mail to
bug-glibc-request@prep.ai.mit.edu.
Since no one has volunteered to test and fix the above configurations,
these are not supported at the moment. It's expected that these don't
work anymore. Porting the library is not hard. If you are interested
in doing a port, please contact the glibc maintainers by sending
electronic mail to <bug-glibc@prep.ai.mit.edu>.
The GNU C library now includes Michael Glad's Ultra Fast Crypt, which
provides the Unix `crypt' function, plus some other entry points.
Because of the United States export restriction on DES implementations,
we are distributing this code separately from the rest of the C
library. There is an extra distribution tar file just for crypt; it is
called `glibc-VERSION-crypt.tar.gz'. You can just unpack the crypt
called `glibc-crypt-VERSION.tar.gz'. You can just unpack the crypt
distribution along with the rest of the C library and build; you can
also build the library without getting crypt. Users outside the USA
can get the crypt distribution via anonymous FTP from ftp.uni-c.dk
[129.142.6.74], or another archive site outside the USA. Archive
can get the crypt distribution via anonymous FTP from ftp.ifi.uio.no
[129.240.64.21], or another archive site outside the USA. Archive
maintainers are encouraged to copy this distribution to their archives
outside the USA. Please get it from ftp.uni-c.dk; transferring this
outside the USA. Please get it from ftp.ifi.uio.no; transferring this
distribution from prep.ai.mit.edu (or any other site in the USA) to a
site outside the USA is in violation of US export laws.
Beside the separate crypt tar file there are some more add-ons which can be
used together with GNU libc. They are designed in a way to ease the
installation by integrating them in the libc source tree. Simply get the
add-ons you need and use the --enable-add-ons option of the `configure'
script to tell where the add-ons are found. Please read the FAQ file for
more details.
See the file INSTALL to find out how to configure, build, install, and port
the GNU C library.
the GNU C library. You might also consider reading the WWW pages for the
GNU libc at http://www.gnu.org/software/libc/libc.html.
The GNU C Library is completely documented by the Texinfo manual found
in the `manual/' subdirectory. The manual is still being updated and
contains some known errors and omissions; we regret that we do not have
the resources to work on the manual as much as we would like. Please
send comments on the manual to bug-glibc-manual@prep.ai.mit.edu, and
send comments on the manual to <bug-glibc-manual@prep.ai.mit.edu>, and
not to the library bug-reporting address.
The file NOTES contains a description of the feature-test macros used
in the GNU C library, explaining how you can tell the library what
facilities you want it to make available.
Send bug reports to bug-glibc@prep.ai.mit.edu.
We prefer to get bug reports sent using the `glibcbug' shell script which
is install together with the rest of the GNU libc to <bugs@gnu.ai.mit.edu>.
Simply run this shell script and fill in the information. Nevertheless
you can still send bug reports to <bug-glibc@prep.ai.mit.edu> as normal
electronic mails.
The GNU C Library is free software. See the file COPYING.LIB for copying
conditions.
+7 -6
View File
@@ -39,7 +39,8 @@ export subdir := $(subdir)
all: objs lib others
others: $(addprefix $(objpfx),$(extra-objs) \
$(install-lib) $(install-bin) $(install-sbin))
$(install-lib) $(install-bin) \
$(install-rootsbin) $(install-sbin))
ifneq "$(findstring env,$(origin headers))" ""
headers :=
@@ -82,19 +83,19 @@ common-generated := $(common-generated) dummy.o dummy.c empty.c empty.o
.PHONY: others tests
others: $(addprefix $(objpfx),$(others) $(extra-objs))
ifeq ($(cross-compiling),yes)
tests: $(addprefix $(objpfx),$(tests))
tests: $(addprefix $(objpfx),$(tests) $(test-srcs))
else
tests: $(tests:%=$(objpfx)%.out)
tests: $(tests:%=$(objpfx)%.out) $(addprefix $(objpfx),$(test-srcs))
endif
ifneq "$(strip $(others) $(tests))" ""
$(addprefix $(objpfx),$(others) $(tests)): %: %.o \
ifneq "$(strip $(others) $(tests) $(test-srcs))" ""
$(addprefix $(objpfx),$(others) $(tests) $(test-srcs)): %: %.o \
$(sort $(filter $(common-objpfx)libc%,$(link-libc))) \
$(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
$(+link)
endif
ifneq "$(strip $(tests))" ""
ifneq "$(strip $(tests) $(test-srcs))" ""
# These are the implicit rules for making test outputs
# from the test programs and whatever input files are present.
$(objpfx)%.out: %.args $(objpfx)% %.input
Vendored
+59
View File
@@ -31,3 +31,62 @@ changequote([,])dnl
fi
AC_MSG_RESULT($ac_cv_check_symbol_$1)])dnl
dnl
dnl These modifications are to allow for an empty cross compiler tree.
dnl In the situation that cross-linking is impossible, the variable
dnl `cross_linkable' will be substituted with "yes".
AC_DEFUN(AC_PROG_CC_LOCAL,
[AC_BEFORE([$0], [AC_PROG_CPP])dnl
AC_CHECK_PROG(CC, gcc, gcc)
if test -z "$CC"; then
AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
fi
AC_PROG_CC_WORKS_LOCAL
AC_PROG_CC_GNU
dnl The following differs from the AC_PROG_CC macro in autoconf. Since
dnl we require a recent version of gcc to be used we do not need to go
dnl into lengths and test for bugs in old versions. It must be gcc 2.7
dnl or above.
if test $ac_cv_prog_gcc = yes; then
GCC=yes
dnl Check the version
cat > conftest.c <<EOF
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
yes;
#endif
EOF
if AC_TRY_COMMAND(${CC-cc} -E conftest.c) | egrep yes >/dev/null 2>&1; then
if test -z "$CFLAGS"; then
CFLAGS="-g -O2"
fi
else
AC_MSG_ERROR([We require GNU CC version 2.7 or newer])
fi
else
AC_MSG_ERROR([GNU libc must be compiled using GNU CC])
fi
])
AC_DEFUN(AC_PROG_CC_WORKS_LOCAL,
[AC_MSG_CHECKING([whether the C compiler ($CC $CFLAGS $LDFLAGS) works])
AC_LANG_SAVE
AC_LANG_C
AC_TRY_COMPILER([main(){return(0);}], ac_cv_prog_cc_works, ac_cv_prog_cc_cross)
AC_LANG_RESTORE
AC_MSG_RESULT($ac_cv_prog_cc_works)
if test $ac_cv_prog_cc_works = no; then
cross_linkable=no
ac_cv_prog_cc_cross=yes
dnl AC_MSG_ERROR([installation or configuration problem: C compiler cannot create executables.])
else
cross_linkable=yes
fi
AC_MSG_CHECKING([whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler])
AC_MSG_RESULT($ac_cv_prog_cc_cross)
AC_SUBST(cross_linkable)
cross_compiling=$ac_cv_prog_cc_cross
])
+4 -4
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991, 1994 Free Software Foundation, Inc.
# Copyright (C) 1991, 1994, 1997 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -12,9 +12,9 @@
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If
# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
# Cambridge, MA 02139, USA.
# License along with the GNU C Library; see the file COPYING.LIB. If not,
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Sub-makefile for assert portion of the library.
+12 -13
View File
@@ -1,23 +1,22 @@
# Copyright (C) 1994 Free Software Foundation, Inc.
# Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
# On-Line Applications Research Corporation.
#
# Copyright (C) 1994, 1997 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
# On-Line Applications Research Corporation.
#
# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
#
# The GNU C Library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
#
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If
# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
# Cambridge, MA 02139, USA.
# License along with the GNU C Library; see the file COPYING.LIB. If not,
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
subdir := bare
@@ -33,11 +32,11 @@ include ../Rules
#
# For bare targets, the $(config-vendor) is the name of the board.
# We will place the board dependent code ONLY in a library which
# is board dependent. This way many target boards can share a
# is board dependent. This way many target boards can share a
# single libc.a. To resolve all symbols and successfully link
# a program, the application must link against libc.a and libMY_TARGET.a.
# For example, the target specific library for the Motorola MVME135
# board will be named libmvme135.a. To link a program for the
# For example, the target specific library for the Motorola MVME135
# board will be named libmvme135.a. To link a program for the
# MVME135, one must link against -lc and -lmvme135.
#
+12 -3
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1996 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
@@ -34,6 +34,7 @@ catopen (const char *cat_name, int flag)
{
__nl_catd result;
const char *env_var;
const char *nlspath;
result = (__nl_catd) malloc (sizeof (*result));
if (result == NULL)
@@ -82,8 +83,16 @@ catopen (const char *cat_name, int flag)
return (nl_catd) -1;
}
if (__secure_getenv ("NLSPATH") != NULL)
result->nlspath = __strdup (getenv ("NLSPATH"));
nlspath = __secure_getenv ("NLSPATH");
if (nlspath != NULL && *nlspath != '\0')
{
/* Append the system dependent directory. */
size_t len = strlen (nlspath + 1 + sizeof NLSPATH);
char *tmp = alloca (len);
__stpcpy (__stpcpy (__stpcpy (tmp, nlspath), ":"), NLSPATH);
nlspath = tmp;
}
else
result->nlspath = __strdup (NLSPATH);
+20 -19
View File
@@ -1,21 +1,21 @@
/* Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>.
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -141,7 +141,7 @@ main (int argc, char *argv[])
header_name = NULL;
result = NULL;
while ((opt = getopt_long (argc, argv, "hH:o:V", long_options, NULL)) != EOF)
while ((opt = getopt_long (argc, argv, "hH:o:V", long_options, NULL)) != -1)
switch (opt)
{
case '\0': /* Long option. */
@@ -170,7 +170,7 @@ main (int argc, char *argv[])
Copyright (C) %s Free Software Foundation, Inc.\n\
This is free software; see the source for copying conditions. There is NO\n\
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
"), "1996");
"), "1996, 1997");
printf (_("Written by %s.\n"), "Ulrich Drepper");
exit (EXIT_SUCCESS);
@@ -221,7 +221,8 @@ Mandatory arguments to long options are mandatory for short options too.\n\
If INPUT-FILE is -, input is read from standard input. If OUTPUT-FILE\n\
is -, output is written to standard output.\n"),
program_invocation_name, program_invocation_name);
fputs (gettext ("Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"),
fputs (gettext ("\
Report bugs using the `glibcbug' script to <bugs@gnu.ai.mit.edu>.\n"),
stdout);
}
@@ -270,7 +271,7 @@ read_input_file (struct catalog *current, const char *fname)
current->last_set = 0;
current->current_set = find_set (current, NL_SETD);
#define obstack_chunk_alloc xmalloc
#define obstack_chunk_alloc malloc
#define obstack_chunk_free free
obstack_init (&current->mem_pool);
}
+31 -10
View File
@@ -1,6 +1,6 @@
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 93, 94, 95, 1996 Free Software Foundation, Inc.
# Copyright (C) 1992, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
#
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@@ -68,11 +68,26 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo m68k-cbm-netbsd${UNAME_RELEASE}
exit 0 ;;
amiga:OpenBSD:*:*)
echo m68k-cbm-openbsd${UNAME_RELEASE}
exit 0 ;;
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
arc:OpenBSD:*:*)
echo mips64el-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
laguna:OpenBSD:*:*)
echo mips64-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
pmax:OpenBSD:*:*)
echo mips64el-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
wgrisc:OpenBSD:*:*)
echo mips64el-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
exit 0;;
SR2?01:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
exit 0;;
Pyramid*:OSx*:*:*|MIS*:OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
@@ -115,19 +130,25 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
echo m68k-atari-netbsd${UNAME_RELEASE}
exit 0 ;;
atari*:OpenBSD:*:*)
echo m68k-atari-openbsd${UNAME_RELEASE}
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
sun3*:NetBSD:*:*)
echo m68k-sun-netbsd${UNAME_RELEASE}
exit 0 ;;
sun3*:OpenBSD:*:*)
echo m68k-sun-openbsd${UNAME_RELEASE}
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mac68k:NetBSD:*:*)
echo m68k-apple-netbsd${UNAME_RELEASE}
exit 0 ;;
mac68k:OpenBSD:*:*)
echo m68k-apple-openbsd${UNAME_RELEASE}
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mvme68k:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
mvme88k:OpenBSD:*:*)
echo m88k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
@@ -375,8 +396,8 @@ EOF
hp3[0-9][05]:NetBSD:*:*)
echo m68k-hp-netbsd${UNAME_RELEASE}
exit 0 ;;
hp3[0-9][05]:OpenBSD:*:*)
echo m68k-hp-openbsd${UNAME_RELEASE}
hp300:OpenBSD:*:*)
echo m68k-unknown-openbsd${UNAME_RELEASE}
exit 0 ;;
i?86:BSD/386:*:* | *:BSD/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
@@ -400,7 +421,7 @@ EOF
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
exit 0 ;;
*:GNU:*:*)
echo `echo ${UNAME_MACHINE}|sed -e 's,/.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
echo `echo ${UNAME_MACHINE}|sed -e 's,-.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
exit 0 ;;
*:Linux:*:*)
# The BFD linker knows what the default object file format is, so
@@ -504,7 +525,7 @@ EOF
# "miniframe"
echo m68010-convergent-sysv
exit 0 ;;
m68*:*:R3V[567]*:*)
M68*:*:R3V[567]*:*)
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
OS_REL=''
+8
View File
@@ -35,6 +35,14 @@
This is defined by configure under --enable-libio. */
#undef USE_IN_LIBIO
/* Define if using ELF and the assembler supports the `.previous'
directive. */
#undef HAVE_ASM_PREVIOUS_DIRECTIVE
/* Define if using ELF and the assembler supports the `.popsection'
directive. */
#undef HAVE_ASM_POPSECTION_DIRECTIVE
/*
*/
+10 -2
View File
@@ -3,10 +3,16 @@
# Don't edit this file. Put configuration parameters in configparms instead.
# Installation prefixes.
install_root =
prefix = @prefix@
exec_prefix = @exec_prefix@
slibdir = @libc_cv_slibdir@
sysconfdir = @libc_cv_sysconfdir@
rootsbindir = @libc_cv_rootsbindir@
# If ldconfig exists. This will go away as soon as `ldconfig' is available
# in GNU libc.
has-ldconfig = @has_ldconfig@
# System configuration.
config-machine = @host_cpu@
@@ -15,7 +21,7 @@ config-vendor = @host_vendor@
config-os = @host_os@
config-sysdirs = @sysnames@
defines = @DEFINES@ @USE_NEW_MALLOC@
defines = @DEFINES@
elf = @elf@
have-initfini = @libc_cv_have_initfini@
@@ -23,6 +29,7 @@ have-initfini = @libc_cv_have_initfini@
have-no-whole-archive = @libc_cv_ld_no_whole_archive@
have-no-exceptions = @libc_cv_gcc_no_exceptions@
have-bash2 = @libc_cv_have_bash2@
have-ksh = @libc_cv_have_ksh@
# Configuration options.
gnu-as = @gnu_as@
@@ -31,8 +38,8 @@ build-shared = @shared@
build-profile = @profile@
build-omitfp = @omitfp@
stdio = @stdio@
malloc = @malloc@
add-ons = @subdirs@
cross-compiling = @cross_compiling@
# Build tools.
CC = @CC@
@@ -49,5 +56,6 @@ INSTALL_DATA = @INSTALL_DATA@
LN_S = @LN_S@
MSGFMT = @MSGFMT@
BASH = @BASH@
KSH = @KSH@
# More variables may be inserted below by configure.
Vendored
+330 -110
View File
@@ -1,8 +1,12 @@
#! /bin/sh
# From configure.in CVSid
# Guess values for system-dependent variables and create Makefiles.
# Generated automatically using autoconf version 2.11.2
# Generated automatically using autoconf version 2.12
# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
#
# This configure script is free software; the Free Software Foundation
@@ -28,9 +32,6 @@ ac_help="$ac_help
--with-elf if using the ELF object format"
ac_help="$ac_help
--enable-libio build in GNU libio instead of GNU stdio"
ac_help="$ac_help
--enable-new-malloc use the new malloc implementation. This is the
default for Linux, others use the old malloc."
ac_help="$ac_help
--disable-sanity-checks really do not use threads (should not be used
except in special situations) [default=yes]"
@@ -363,7 +364,7 @@ EOF
verbose=yes ;;
-version | --version | --versio | --versi | --vers)
echo "configure generated by autoconf version 2.11.2"
echo "configure generated by autoconf version 2.12"
exit 0 ;;
-with-* | --with-*)
@@ -646,19 +647,6 @@ else
fi
# Check whether --enable-new-malloc or --disable-new-malloc was given.
if test "${enable_new_malloc+set}" = set; then
enableval="$enable_new_malloc"
if test $enableval = yes; then
malloc=new-malloc
else
malloc=malloc
fi
else
malloc=default
fi
# Check whether --enable-sanity-checks or --disable-sanity-checks was given.
if test "${enable_sanity_checks+set}" = set; then
enableval="$enable_sanity_checks"
@@ -736,7 +724,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
fi
echo $ac_n "checking host system type""... $ac_c" 1>&6
echo "configure:740: checking host system type" >&5
echo "configure:728: checking host system type" >&5
host_alias=$host
case "$host_alias" in
@@ -816,7 +804,7 @@ esac
# This can take a while to compute.
sysdep_dir=$srcdir/sysdeps
echo $ac_n "checking sysdep dirs""... $ac_c" 1>&6
echo "configure:820: checking sysdep dirs" >&5
echo "configure:808: checking sysdep dirs" >&5
# Make sco3.2v4 become sco3.2.4 and sunos4.1.1_U1 become sunos4.1.1.U1.
os="`echo $os | sed 's/\([0-9A-Z]\)[v_]\([0-9A-Z]\)/\1.\2/g'`"
@@ -1017,7 +1005,7 @@ echo "$ac_t""sysdeps/generic sysdeps/stub" 1>&6
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
echo "configure:1021: checking for a BSD compatible install" >&5
echo "configure:1009: checking for a BSD compatible install" >&5
if test -z "$INSTALL"; then
if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -1071,7 +1059,7 @@ if test "$INSTALL" = "${srcdir}/install-sh -c"; then
INSTALL='$(..)./install-sh -c'
fi
echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
echo "configure:1075: checking whether ln -s works" >&5
echo "configure:1063: checking whether ln -s works" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1096,7 +1084,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:1100: checking for $ac_word" >&5
echo "configure:1088: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1126,8 +1114,168 @@ done
test -n "$MSGFMT" || MSGFMT=":"
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:1121: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_CC="gcc"
break
fi
done
IFS="$ac_save_ifs"
fi
fi
CC="$ac_cv_prog_CC"
if test -n "$CC"; then
echo "$ac_t""$CC" 1>&6
else
echo "$ac_t""no" 1>&6
fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:1150: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
ac_prog_rejected=no
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
ac_prog_rejected=yes
continue
fi
ac_cv_prog_CC="cc"
break
fi
done
IFS="$ac_save_ifs"
if test $ac_prog_rejected = yes; then
# We found a bogon in the path, so make sure we never use it.
set dummy $ac_cv_prog_CC
shift
if test $# -gt 0; then
# We chose a different compiler from the bogus one.
# However, it has the same basename, so the bogon will be chosen
# first if we set CC to just the basename; use the full file name.
shift
set dummy "$ac_dir/$ac_word" "$@"
shift
ac_cv_prog_CC="$@"
fi
fi
fi
fi
CC="$ac_cv_prog_CC"
if test -n "$CC"; then
echo "$ac_t""$CC" 1>&6
else
echo "$ac_t""no" 1>&6
fi
test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
echo "configure:1198: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
#line 1208 "configure"
#include "confdefs.h"
main(){return(0);}
EOF
if { (eval echo configure:1212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
ac_cv_prog_cc_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
ac_cv_prog_cc_cross=no
else
ac_cv_prog_cc_cross=yes
fi
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
ac_cv_prog_cc_works=no
fi
rm -fr conftest*
echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
if test $ac_cv_prog_cc_works = no; then
cross_linkable=no
ac_cv_prog_cc_cross=yes
else
cross_linkable=yes
fi
echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
echo "configure:1235: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
cross_compiling=$ac_cv_prog_cc_cross
echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
echo "configure:1241: checking whether we are using GNU C" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.c <<EOF
#ifdef __GNUC__
yes;
#endif
EOF
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1250: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gcc=yes
else
ac_cv_prog_gcc=no
fi
fi
echo "$ac_t""$ac_cv_prog_gcc" 1>&6
if test $ac_cv_prog_gcc = yes; then
GCC=yes
cat > conftest.c <<EOF
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
yes;
#endif
EOF
if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1267: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
if test -z "$CFLAGS"; then
CFLAGS="-g -O2"
fi
else
{ echo "configure: error: We require GNU CC version 2.7 or newer" 1>&2; exit 1; }
fi
else
{ echo "configure: error: GNU libc must be compiled using GNU CC" 1>&2; exit 1; }
fi
echo $ac_n "checking build system type""... $ac_c" 1>&6
echo "configure:1131: checking build system type" >&5
echo "configure:1279: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -1145,47 +1293,12 @@ build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
echo "$ac_t""$build" 1>&6
if test $host != $build; then
ac_tool_prefix=${host_alias}-
else
ac_tool_prefix=
fi
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
for ac_prog in gcc cc
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:1157: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test -n "$CC"; then
ac_cv_prog_CC="$CC" # Let the user override the test.
else
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_CC="${ac_tool_prefix}gcc"
break
fi
done
IFS="$ac_save_ifs"
test -z "$ac_cv_prog_CC" && ac_cv_prog_CC="gcc"
fi
fi
CC="$ac_cv_prog_CC"
if test -n "$CC"; then
echo "$ac_t""$CC" 1>&6
else
echo "$ac_t""no" 1>&6
fi
if test $host != $build; then
# Extract the first word of "gcc cc", so it can be a program name with args.
set dummy gcc cc; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:1189: checking for $ac_word" >&5
echo "configure:1302: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_BUILD_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1196,7 +1309,7 @@ else
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_prog_BUILD_CC=""
ac_cv_prog_BUILD_CC="$ac_prog"
break
fi
done
@@ -1210,9 +1323,13 @@ else
echo "$ac_t""no" 1>&6
fi
test -n "$BUILD_CC" && break
done
fi
echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
echo "configure:1216: checking how to run the C preprocessor" >&5
echo "configure:1333: checking how to run the C preprocessor" >&5
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
@@ -1227,13 +1344,13 @@ else
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp.
cat > conftest.$ac_ext <<EOF
#line 1231 "configure"
#line 1348 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1237: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1354: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1244,13 +1361,13 @@ else
rm -rf conftest*
CPP="${CC-cc} -E -traditional-cpp"
cat > conftest.$ac_ext <<EOF
#line 1248 "configure"
#line 1365 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax Error
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:1254: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
{ (eval echo configure:1371: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out`
if test -z "$ac_err"; then
:
@@ -1272,10 +1389,16 @@ else
fi
echo "$ac_t""$CPP" 1>&6
if test $host != $build; then
ac_tool_prefix=${host_alias}-
else
ac_tool_prefix=
fi
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:1279: checking for $ac_word" >&5
echo "configure:1402: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1306,7 +1429,7 @@ fi
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:1310: checking for $ac_word" >&5
echo "configure:1433: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1337,7 +1460,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:1341: checking for $ac_word" >&5
echo "configure:1464: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1372,7 +1495,7 @@ fi
# Extract the first word of "bash", so it can be a program name with args.
set dummy bash; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:1376: checking for $ac_word" >&5
echo "configure:1499: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1409,8 +1532,53 @@ else
fi
if test "$BASH" = no; then
# Extract the first word of "ksh", so it can be a program name with args.
set dummy ksh; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
echo "configure:1540: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_KSH'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
case "$KSH" in
/*)
ac_cv_path_KSH="$KSH" # Let the user override the test with a path.
;;
*)
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
for ac_dir in $PATH; do
test -z "$ac_dir" && ac_dir=.
if test -f $ac_dir/$ac_word; then
ac_cv_path_KSH="$ac_dir/$ac_word"
break
fi
done
IFS="$ac_save_ifs"
test -z "$ac_cv_path_KSH" && ac_cv_path_KSH="no"
;;
esac
fi
KSH="$ac_cv_path_KSH"
if test -n "$KSH"; then
echo "$ac_t""$KSH" 1>&6
else
echo "$ac_t""no" 1>&6
fi
if test "$KSH" = no; then
libc_cv_have_ksh=no
else
libc_cv_have_ksh=yes
fi
else
KSH="$BASH"
libc_cv_have_ksh=yes
fi
echo $ac_n "checking for signed size_t type""... $ac_c" 1>&6
echo "configure:1414: checking for signed size_t type" >&5
echo "configure:1582: checking for signed size_t type" >&5
if eval "test \"`echo '$''{'libc_cv_signed_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1434,12 +1602,12 @@ EOF
fi
echo $ac_n "checking for libc-friendly stddef.h""... $ac_c" 1>&6
echo "configure:1438: checking for libc-friendly stddef.h" >&5
echo "configure:1606: checking for libc-friendly stddef.h" >&5
if eval "test \"`echo '$''{'libc_cv_friendly_stddef'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1443 "configure"
#line 1611 "configure"
#include "confdefs.h"
#define __need_size_t
#define __need_wchar_t
@@ -1454,7 +1622,7 @@ size_t size; wchar_t wchar;
if (&size == NULL || &wchar == NULL) abort ();
; return 0; }
EOF
if { (eval echo configure:1458: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:1626: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_friendly_stddef=yes
else
@@ -1473,7 +1641,7 @@ override stddef.h = # The installed <stddef.h> seems to be libc-friendly."
fi
echo $ac_n "checking whether we need to use -P to assemble .S files""... $ac_c" 1>&6
echo "configure:1477: checking whether we need to use -P to assemble .S files" >&5
echo "configure:1645: checking whether we need to use -P to assemble .S files" >&5
if eval "test \"`echo '$''{'libc_cv_need_minus_P'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1496,7 +1664,7 @@ asm-CPPFLAGS = -P # The assembler can't grok cpp's # line directives."
fi
echo $ac_n "checking for assembler global-symbol directive""... $ac_c" 1>&6
echo "configure:1500: checking for assembler global-symbol directive" >&5
echo "configure:1668: checking for assembler global-symbol directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_global_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1526,7 +1694,7 @@ EOF
fi
echo $ac_n "checking for .set assembler directive""... $ac_c" 1>&6
echo "configure:1530: checking for .set assembler directive" >&5
echo "configure:1698: checking for .set assembler directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_set_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1559,14 +1727,66 @@ EOF
fi
if test $elf = yes; then
echo $ac_n "checking for .previous assembler directive""... $ac_c" 1>&6
echo "configure:1733: checking for .previous assembler directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_previous_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.s <<EOF
.section foo_section
.previous
EOF
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1741: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_asm_previous_directive=yes
else
libc_cv_asm_previous_directive=no
fi
rm -f conftest*
fi
echo "$ac_t""$libc_cv_asm_previous_directive" 1>&6
if test $libc_cv_asm_previous_directive = yes; then
cat >> confdefs.h <<\EOF
#define HAVE_ASM_PREVIOUS_DIRECTIVE 1
EOF
else
echo $ac_n "checking for .popsection assembler directive""... $ac_c" 1>&6
echo "configure:1757: checking for .popsection assembler directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_popsection_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.s <<EOF
.pushsection foo_section
.popsection
EOF
if { ac_try='${CC-cc} -c $CFLAGS conftest.s 1>&5'; { (eval echo configure:1765: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_asm_popsection_directive=yes
else
libc_cv_asm_popsection_directive=no
fi
rm -f conftest*
fi
echo "$ac_t""$libc_cv_asm_popsection_directive" 1>&6
if test $libc_cv_asm_popsection_directive = yes; then
cat >> confdefs.h <<\EOF
#define HAVE_ASM_POPSECTION_DIRECTIVE 1
EOF
fi
fi
fi
if test $elf != yes; then
echo $ac_n "checking for .init and .fini sections""... $ac_c" 1>&6
echo "configure:1565: checking for .init and .fini sections" >&5
echo "configure:1785: checking for .init and .fini sections" >&5
if eval "test \"`echo '$''{'libc_cv_have_initfini'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1570 "configure"
#line 1790 "configure"
#include "confdefs.h"
int main() {
@@ -1575,7 +1795,7 @@ asm (".section .init");
asm (".text");
; return 0; }
EOF
if { (eval echo configure:1579: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if { (eval echo configure:1799: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_have_initfini=yes
else
@@ -1600,19 +1820,19 @@ if test $elf = yes; then
libc_cv_asm_underscores=no
else
echo $ac_n "checking for _ prefix on C symbol names""... $ac_c" 1>&6
echo "configure:1604: checking for _ prefix on C symbol names" >&5
echo "configure:1824: checking for _ prefix on C symbol names" >&5
if eval "test \"`echo '$''{'libc_cv_asm_underscores'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 1609 "configure"
#line 1829 "configure"
#include "confdefs.h"
asm ("_glibc_foobar:");
int main() {
glibc_foobar ();
; return 0; }
EOF
if { (eval echo configure:1616: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
if { (eval echo configure:1836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
rm -rf conftest*
libc_cv_asm_underscores=yes
else
@@ -1639,7 +1859,7 @@ if test $elf = yes; then
libc_cv_asm_weakext_directive=no
else
echo $ac_n "checking for assembler .weak directive""... $ac_c" 1>&6
echo "configure:1643: checking for assembler .weak directive" >&5
echo "configure:1863: checking for assembler .weak directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_weak_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1662,7 +1882,7 @@ echo "$ac_t""$libc_cv_asm_weak_directive" 1>&6
if test $libc_cv_asm_weak_directive = no; then
echo $ac_n "checking for assembler .weakext directive""... $ac_c" 1>&6
echo "configure:1666: checking for assembler .weakext directive" >&5
echo "configure:1886: checking for assembler .weakext directive" >&5
if eval "test \"`echo '$''{'libc_cv_asm_weakext_directive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1699,7 +1919,7 @@ EOF
fi
echo $ac_n "checking for ld --no-whole-archive""... $ac_c" 1>&6
echo "configure:1703: checking for ld --no-whole-archive" >&5
echo "configure:1923: checking for ld --no-whole-archive" >&5
if eval "test \"`echo '$''{'libc_cv_ld_no_whole_archive'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1710,7 +1930,7 @@ __throw () {}
EOF
if { ac_try='${CC-cc} $CFLAGS
-nostdlib -nostartfiles -Wl,--no-whole-archive
-o conftest conftest.c'; { (eval echo configure:1714: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
-o conftest conftest.c'; { (eval echo configure:1934: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_ld_no_whole_archive=yes
else
libc_cv_ld_no_whole_archive=no
@@ -1721,7 +1941,7 @@ fi
echo "$ac_t""$libc_cv_ld_no_whole_archive" 1>&6
echo $ac_n "checking for gcc -fno-exceptions""... $ac_c" 1>&6
echo "configure:1725: checking for gcc -fno-exceptions" >&5
echo "configure:1945: checking for gcc -fno-exceptions" >&5
if eval "test \"`echo '$''{'libc_cv_gcc_no_exceptions'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1732,7 +1952,7 @@ __throw () {}
EOF
if { ac_try='${CC-cc} $CFLAGS
-nostdlib -nostartfiles -fno-exceptions
-o conftest conftest.c'; { (eval echo configure:1736: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
-o conftest conftest.c'; { (eval echo configure:1956: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
libc_cv_gcc_no_exceptions=yes
else
libc_cv_gcc_no_exceptions=no
@@ -1784,7 +2004,7 @@ if test "$uname" = generic; then
fi
echo $ac_n "checking OS release for uname""... $ac_c" 1>&6
echo "configure:1788: checking OS release for uname" >&5
echo "configure:2008: checking OS release for uname" >&5
if eval "test \"`echo '$''{'libc_cv_uname_release'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1806,7 +2026,7 @@ echo "$ac_t""$libc_cv_uname_release" 1>&6
uname_release="$libc_cv_uname_release"
echo $ac_n "checking OS version for uname""... $ac_c" 1>&6
echo "configure:1810: checking OS version for uname" >&5
echo "configure:2030: checking OS version for uname" >&5
if eval "test \"`echo '$''{'libc_cv_uname_version'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -1828,7 +2048,7 @@ else
fi
echo $ac_n "checking stdio selection""... $ac_c" 1>&6
echo "configure:1832: checking stdio selection" >&5
echo "configure:2052: checking stdio selection" >&5
case $stdio in
libio) cat >> confdefs.h <<\EOF
@@ -1839,15 +2059,7 @@ default) stdio=stdio ;;
esac
echo "$ac_t""$stdio" 1>&6
echo $ac_n "checking malloc selection""... $ac_c" 1>&6
echo "configure:1844: checking malloc selection" >&5
case $malloc in
new-malloc) USE_NEW_MALLOC=-DUSE_NEW_MALLOC ;;
default) malloc=malloc ;;
esac
echo "$ac_t""$malloc" 1>&6
@@ -1894,6 +2106,9 @@ else
config_makefile=Makefile
fi
VERSION=`sed -e 's/^#define VERSION "\([^"]*\)"/\1/p' -e d < $srcdir/version.h`
trap '' 1 2 15
cat > confcache <<\EOF
# This file is a shell script that caches the results of configure
@@ -1984,7 +2199,7 @@ do
echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-version | --version | --versio | --versi | --vers | --ver | --ve | --v)
echo "$CONFIG_STATUS generated by autoconf version 2.11.2"
echo "$CONFIG_STATUS generated by autoconf version 2.12"
exit 0 ;;
-help | --help | --hel | --he | --h)
echo "\$ac_cs_usage"; exit 0 ;;
@@ -1995,7 +2210,7 @@ done
ac_given_srcdir=$srcdir
ac_given_INSTALL="$INSTALL"
trap 'rm -fr `echo "config.make ${config_makefile} ${config_uname} config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
trap 'rm -fr `echo "config.make glibcbug ${config_makefile} ${config_uname} config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF
@@ -2037,18 +2252,22 @@ s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
s%@INSTALL_DATA@%$INSTALL_DATA%g
s%@LN_S@%$LN_S%g
s%@MSGFMT@%$MSGFMT%g
s%@CC@%$CC%g
s%@cross_linkable@%$cross_linkable%g
s%@build@%$build%g
s%@build_alias@%$build_alias%g
s%@build_cpu@%$build_cpu%g
s%@build_vendor@%$build_vendor%g
s%@build_os@%$build_os%g
s%@CC@%$CC%g
s%@BUILD_CC@%$BUILD_CC%g
s%@cross_compiling@%$cross_compiling%g
s%@CPP@%$CPP%g
s%@AR@%$AR%g
s%@RANLIB@%$RANLIB%g
s%@BASH@%$BASH%g
s%@libc_cv_have_bash2@%$libc_cv_have_bash2%g
s%@KSH@%$KSH%g
s%@libc_cv_have_ksh@%$libc_cv_have_ksh%g
s%@libc_cv_have_initfini@%$libc_cv_have_initfini%g
s%@libc_cv_ld_no_whole_archive@%$libc_cv_ld_no_whole_archive%g
s%@libc_cv_gcc_no_exceptions@%$libc_cv_gcc_no_exceptions%g
@@ -2056,10 +2275,10 @@ s%@uname_sysname@%$uname_sysname%g
s%@uname_release@%$uname_release%g
s%@uname_version@%$uname_version%g
s%@stdio@%$stdio%g
s%@malloc@%$malloc%g
s%@USE_NEW_MALLOC@%$USE_NEW_MALLOC%g
s%@libc_cv_slibdir@%$libc_cv_slibdir%g
s%@libc_cv_sysconfdir@%$libc_cv_sysconfdir%g
s%@libc_cv_rootsbindir@%$libc_cv_rootsbindir%g
s%@has_ldconfig@%$has_ldconfig%g
s%@gnu_ld@%$gnu_ld%g
s%@gnu_as@%$gnu_as%g
s%@elf@%$elf%g
@@ -2067,6 +2286,7 @@ s%@shared@%$shared%g
s%@profile@%$profile%g
s%@omitfp@%$omitfp%g
s%@DEFINES@%$DEFINES%g
s%@VERSION@%$VERSION%g
CEOF
EOF
@@ -2108,7 +2328,7 @@ EOF
cat >> $CONFIG_STATUS <<EOF
CONFIG_FILES=\${CONFIG_FILES-"config.make ${config_makefile} ${config_uname}"}
CONFIG_FILES=\${CONFIG_FILES-"config.make glibcbug ${config_makefile} ${config_uname}"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+60 -23
View File
@@ -59,16 +59,6 @@ AC_ARG_ENABLE(libio, dnl
fi],
stdio=default)
AC_ARG_ENABLE(new-malloc, dnl
[ --enable-new-malloc use the new malloc implementation. This is the
default for Linux, others use the old malloc.],
[if test $enableval = yes; then
malloc=new-malloc
else
malloc=malloc
fi],
malloc=default)
AC_ARG_ENABLE(sanity-checks, dnl
[ --disable-sanity-checks really do not use threads (should not be used
except in special situations) [default=yes]],
@@ -366,10 +356,12 @@ fi
AC_PROG_LN_S
AC_CHECK_PROGS(MSGFMT, msgfmt gmsgfmt, :)
AC_CHECK_TOOL(CC, gcc)
AC_PROG_CC_LOCAL
AC_CANONICAL_BUILD
if test $host != $build; then
AC_CHECK_PROG(BUILD_CC, gcc cc)
AC_CHECK_PROGS(BUILD_CC, gcc cc)
fi
AC_SUBST(cross_compiling)
AC_PROG_CPP
AC_CHECK_TOOL(AR, ar)
AC_CHECK_TOOL(RANLIB, ranlib, :)
@@ -383,6 +375,21 @@ else
fi
AC_SUBST(libc_cv_have_bash2)
dnl We need a ksh compatible shell for tzselect.
if test "$BASH" = no; then
AC_PATH_PROG(KSH, ksh, no)
if test "$KSH" = no; then
libc_cv_have_ksh=no
else
libc_cv_have_ksh=yes
fi
else
KSH="$BASH"
AC_SUBST(KSH)
libc_cv_have_ksh=yes
fi
AC_SUBST(libc_cv_have_ksh)
AC_CACHE_CHECK(for signed size_t type, libc_cv_signed_size_t, [dnl
echo '#include <stddef.h>
FOOBAR __SIZE_TYPE__ FOOBAR' > conftest.c
@@ -481,6 +488,40 @@ if test $libc_cv_asm_set_directive = yes; then
AC_DEFINE(HAVE_ASM_SET_DIRECTIVE)
fi
if test $elf = yes; then
AC_CACHE_CHECK(for .previous assembler directive,
libc_cv_asm_previous_directive, [dnl
cat > conftest.s <<EOF
.section foo_section
.previous
EOF
if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
libc_cv_asm_previous_directive=yes
else
libc_cv_asm_previous_directive=no
fi
rm -f conftest*])
if test $libc_cv_asm_previous_directive = yes; then
AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE)
else
AC_CACHE_CHECK(for .popsection assembler directive,
libc_cv_asm_popsection_directive, [dnl
cat > conftest.s <<EOF
.pushsection foo_section
.popsection
EOF
if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
libc_cv_asm_popsection_directive=yes
else
libc_cv_asm_popsection_directive=no
fi
rm -f conftest*])
if test $libc_cv_asm_popsection_directive = yes; then
AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE)
fi
fi
fi
if test $elf != yes; then
AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini,
[AC_TRY_COMPILE(, [asm (".section .init");
@@ -687,18 +728,11 @@ default) stdio=stdio ;;
esac
AC_MSG_RESULT($stdio)
AC_MSG_CHECKING(malloc selection)
AC_SUBST(malloc)
case $malloc in
new-malloc) USE_NEW_MALLOC=-DUSE_NEW_MALLOC ;;
default) malloc=malloc ;;
esac
AC_SUBST(USE_NEW_MALLOC)
AC_MSG_RESULT($malloc)
AC_SUBST(libc_cv_slibdir)
AC_SUBST(libc_cv_sysconfdir)
AC_SUBST(libc_cv_rootsbindir)
AC_SUBST(has_ldconfig)
AC_SUBST(gnu_ld) AC_SUBST(gnu_as) AC_SUBST(elf)
if test $gnu_ld = yes; then
@@ -732,5 +766,8 @@ else
config_makefile=Makefile
fi
AC_OUTPUT(config.make ${config_makefile} ${config_uname}, ,
VERSION=`sed -e 's/^#define VERSION "\([^"]*\)"/\1/p' -e d < $srcdir/version.h`
AC_SUBST(VERSION)
AC_OUTPUT(config.make glibcbug ${config_makefile} ${config_uname}, ,
[echo '$config_vars' >> config.make])
+24 -21
View File
@@ -1,6 +1,6 @@
# Makefile for csu code for GNU C library.
# Copyright (C) 1995, 1996 Free Software Foundation, Inc.
# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -36,7 +36,7 @@ omit-deps = $(patsubst %.o,%,$(start-installed-name) g$(start-installed-name) \
$(csu-dummies))
install-lib = $(start-installed-name) g$(start-installed-name) \
$(csu-dummies)
distribute = initfini.c gmon-start.c start.c
distribute = initfini.c gmon-start.c start.c defs.awk
all: # Make this the default target; it will be defined in Rules.
@@ -56,7 +56,7 @@ have-initfini = yes
endif
ifeq (yes,$(have-initfini))
ifeq ($(have-initfini),yes)
CPPFLAGS += -DHAVE_INITFINI
@@ -67,27 +67,30 @@ crtstuff = crti crtn
install-lib += $(crtstuff:=.o)
extra-objs += $(crtstuff:=.o)
generated += $(crtstuff:=.s)
generated += $(crtstuff:=.S) initfini.s align.h end.h
omit-deps += $(crtstuff)
# Compile initfini.c to assembly code, which contains embedded shell
# commands that produce crti.s-new and crtn.s-new when run. We need to
# disable emission of .size directives and debugging information, since
# they will get confused by the splitting of the output we do.
$(objpfx)cr%i.s $(objpfx)cr%n.s: initfini.c; $(initfini)
# Special rules for the building of crti.o and crtn.o
$(objpfx)crt%.o: $(objpfx)crt%.S $(objpfx)defs.h
$(CC) -c -fPIC -g0 -I$(..) -I$(common-objpfx) -DASSEMBLER $< -o $@
define initfini
-rm -f $(objpfx)crtcommon.tmp
(echo 'cat > crtcommon.tmp <<\EOF_common'; \
$(CC) $< $(CPPFLAGS) $(CFLAGS) \
-fPIC -finhibit-size-directive $(no-exceptions) -g0 -S -o -; \
echo 'EOF_common') | (cd $(@D); $(SHELL))
cat $(objpfx)crtcommon.tmp >> $(objpfx)crti.s-new
cat $(objpfx)crtcommon.tmp >> $(objpfx)crtn.s-new
rm -f $(objpfx)crtcommon.tmp
mv -f $(objpfx)crti.s-new $(subst crtn,crti,$@)
mv -f $(objpfx)crtn.s-new $(subst crti,crtn,$@)
endef
$(objpfx)initfini.s: initfini.c
$(CC) $(CPPFLAGS) $(CFLAGS) -g0 -S -fPIC -finhibit-size-directive \
$(no-exceptions) $< -o $@
$(objpfx)crti.S: $(objpfx)initfini.s
sed -n -e '1,/@HEADER_ENDS/p' \
-e '/@_.*_PROLOG_BEGINS/,/@_.*_PROLOG_ENDS/p' \
-e '/@TRAILER_BEGINS/,$$p' $< > $@
$(objpfx)crtn.S: $(objpfx)initfini.s
sed -n -e '1,/@HEADER_ENDS/p' \
-e '/@_.*_EPILOG_BEGINS/,/@_.*_EPILOG_ENDS/p' \
-e '/@TRAILER_BEGINS/,$$p' $< > $@
$(objpfx)defs.h: $(objpfx)initfini.s
sed -n -e '/@TESTS_BEGIN/,/@TESTS_END/p' $< | \
awk -f defs.awk > $@
endif
+22
View File
@@ -0,0 +1,22 @@
/.end/ { need_end = 1 }
/.align/ { if($2 > max) max = $2; }
END {
if(need_end)
{
print "#define END_INIT .end _init";
print "#define END_FINI .end _fini";
}
else
{
print "#define END_INIT";
print "#define END_FINI";
}
if(max)
print "#define ALIGN .align", max;
else
print "#define ALIGN";
print "#include <libc-symbols.h>";
print "weak_extern (__gmon_start__)";
}
+47 -79
View File
@@ -1,5 +1,5 @@
/* Special .init and .fini section support.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it
@@ -26,68 +26,40 @@
write to the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/* This file is compiled into assembly code which is then surrounded by the
lines `cat > crtcommon.tmp <<\EOF_common' and `EOF_common' and thus
becomes a shell script which creates three files of assembly code.
/* This file is compiled into assembly code which is then munged by a sed
script into two files: crti.s and crtn.s.
* The first file is crti.s-new; this puts a function prologue at the
beginning of the .init and .fini sections and defines global symbols for
* crti.s puts a function prologue at the beginning of the
.init and .fini sections and defines global symbols for
those addresses, so they can be called as functions.
* The second file is crtn.s-new; this puts the corresponding function
epilogues in the .init and .fini sections.
* The third file is crtcommon.tmp, which is whatever miscellaneous cruft
the compiler generated at the end; it should be appended to both crti.s-new
and crtn.s-new. */
* crtn.s puts the corresponding function epilogues
in the .init and .fini sections. */
#include <stdlib.h>
/* We use embedded asm for .section unconditionally, as this makes it
easier to insert the necessary directives into crtn.S. */
#define SECTION(x) asm (".section \"" x "\"");
#ifdef HAVE_ELF
/* These declarations make the functions go in the right sections when
we define them below. GCC syntax does not allow the attribute
specifications to be in the function definitions themselves. */
void _init (void) __attribute__ ((section (".init")));
void _fini (void) __attribute__ ((section (".fini")));
/* Embed an #include to pull in the alignment and .end directives. */
asm ("\n#include \"defs.h\"");
#define SECTION(x) /* Put nothing extra before the defn. */
/* The initial common code ends here. */
asm ("\n/*@HEADER_ENDS*/");
#else
/* Some non-ELF systems support .init and .fini sections,
but the __attribute__ syntax only works for ELF. */
#define SECTION(x) asm (".section " x);
#endif
/* End the here document containing the initial common code.
Then move the output file crtcommon.tmp to crti.s-new and crtn.s-new. */
asm ("\nEOF_common\n\
rm -f crti.s-new crtn.s-new\n\
mv crtcommon.tmp crti.s-new\n\
cp crti.s-new crtn.s-new");
/* Extract a `.end' if one is produced by the compiler. */
asm ("fgrep .end >/dev/null 2>&1 <<\\EOF.end && need_end=yes");
/* To determine whether we need .end and .align: */
asm ("\n/*@TESTS_BEGIN*/");
void
useless_function (void)
{
return;
}
asm ("\nEOF.end\n");
/* Find out how much alignment is produced by the compiler. */
asm ("align=`awk '$1==\".align\" { if ($2>max) max=$2; } END { print max; }' \
<<\\EOF.align");
void
useless_function2 (void (*foo) (void))
dummy (void (*foo) (void))
{
if (foo)
(*foo) ();
}
asm ("\nEOF.align\n`\n");
asm ("\n/*@TESTS_END*/");
/* Append the .init prologue to crti.s-new. */
asm ("cat >> crti.s-new <<\\EOF.crti.init");
/* The beginning of _init: */
asm ("\n/*@_init_PROLOG_BEGINS*/");
SECTION (".init")
void
@@ -99,38 +71,33 @@ _init (void)
gcrt1.o to reference a symbol which would be defined by some library
module which has a constructor; but then user code's constructors
would come first, and not be profiled. */
extern void __gmon_start__ (void); weak_extern (__gmon_start__)
extern void __gmon_start__ (void) __attribute__ ((weak)); /*weak_extern (__gmon_start__);*/
if (__gmon_start__)
__gmon_start__ ();
/* End the here document containing the .init prologue code.
Then fetch the .section directive just written and append that
to crtn.s-new, followed by the function epilogue. */
asm ("\n\
EOF.crti.init\n\
test -n \"$align\" && echo .align $align >> crti.s-new\n\
test -n \"$need_end\" && echo .end _init >> crti.s-new\n\
fgrep .init crti.s-new >>crtn.s-new\n\
fgrep -v .end >> crtn.s-new <<\\EOF.crtn.init");
asm ("ALIGN");
asm("END_INIT");
/* Now the epilog. */
asm ("\n/*@_init_PROLOG_ENDS*/");
asm ("\n/*@_init_EPILOG_BEGINS*/");
SECTION(".init");
}
asm ("END_INIT");
/* End the here document containing the .init epilogue code.
Then append the .fini prologue to crti.s-new. */
asm ("\nEOF.crtn.init\
\n\
cat >> crti.s-new <<\\EOF.crti.fini");
/* End of the _init epilog, beginning of the _fini prolog. */
asm ("\n/*@_init_EPILOG_ENDS*/");
asm ("\n/*@_fini_PROLOG_BEGINS*/");
SECTION (".fini")
void
_fini (void)
{
/* End the here document containing the .fini prologue code.
Then fetch the .section directive just written and append that
to crtn.s-new, followed by the function epilogue. */
asm ("\nEOF.crti.fini\n\
test -n \"$align\" && echo .align $align >> crti.s-new\n\
test -n \"$need_end\" && echo .end _fini >> crti.s-new\n\
cat > /dev/null <<\\EOF.fini.skip");
/* End of the _fini prolog. */
asm ("ALIGN");
asm ("END_FINI");
asm ("\n/*@_fini_PROLOG_ENDS*/");
{
/* Let GCC know that _fini is not a leaf function by having a dummy
@@ -140,14 +107,15 @@ cat > /dev/null <<\\EOF.fini.skip");
i_am_not_a_leaf ();
}
asm ("\nEOF.fini.skip\
\n\
fgrep .fini crti.s-new >>crtn.s-new\n\
fgrep -v .end >> crtn.s-new <<\\EOF.crtn.fini");
/* Beginning of the _fini epilog. */
asm ("\n/*@_fini_EPILOG_BEGINS*/");
SECTION (".fini");
}
asm ("END_FINI");
/* End the here document containing the .fini epilogue code.
Finally, put the remainder of the generated assembly into crtcommon.tmp. */
asm ("\nEOF.crtn.fini\
\n\
cat > crtcommon.tmp <<\\EOF_common");
/* End of the _fini epilog. Any further generated assembly (e.g. .ident)
is shared between both crt files. */
asm ("\n/*@_fini_EPILOG_ENDS*/");
asm ("\n/*@TRAILER_BEGINS*/");
/* End of file. */
+4 -4
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991, 1992, 1993 Free Software Foundation, Inc.
# Copyright (C) 1991, 1992, 1993, 1997 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -12,9 +12,9 @@
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If
# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
# Cambridge, MA 02139, USA.
# License along with the GNU C Library; see the file COPYING.LIB. If not,
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Sub-makefile for ctype portion of the library.
+5
View File
@@ -45,3 +45,8 @@ $(objpfx)makedb: $(objpfx)libdb.so$(libdb.so-version)
else
$(objpfx)makedb: $(objpfx)libdb.a
endif
# Depend on libc.so so a DT_NEEDED is generated in the shared objects.
# This ensures they will load libc.so for needed symbols if loaded by
# a statically-linked program that hasn't already loaded it.
$(objpfx)libdb.so: $(common-objpfx)libc.so
+3 -2
View File
@@ -674,7 +674,8 @@ bt_psplit(t, h, l, r, pskip, ilen)
* where we decide to try and copy too much onto the left page.
* Make sure that doesn't happen.
*/
if (skip <= off && used + nbytes >= full) {
if (skip <= off &&
used + nbytes + sizeof(indx_t) >= full || nxt == top - 1) {
--off;
break;
}
@@ -687,7 +688,7 @@ bt_psplit(t, h, l, r, pskip, ilen)
memmove((char *)l + l->upper, src, nbytes);
}
used += nbytes;
used += nbytes + sizeof(indx_t);
if (used >= half) {
if (!isbigkey || bigkeycnt == 3)
break;
+1 -1
View File
@@ -249,7 +249,7 @@ __big_delete(hashp, bufp)
bufp->flags |= BUF_MOD;
if (rbufp)
__free_ovflpage(hashp, rbufp);
if (last_bfp != rbufp)
if (last_bfp && last_bfp != rbufp)
__free_ovflpage(hashp, last_bfp);
hashp->NKEYS--;
+5 -4
View File
@@ -1,5 +1,5 @@
/* makedb -- create simple DB database from textual input.
Copyright (C) 1996 Free Software Foundation, Inc.
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@@ -86,7 +86,7 @@ main (argc, argv)
be_quiet = 0;
output_name = NULL;
while ((opt = getopt_long (argc, argv, "fho:uV", long_options, NULL)) != EOF)
while ((opt = getopt_long (argc, argv, "fho:uV", long_options, NULL)) != -1)
switch (opt)
{
case '\0': /* Long option. */
@@ -121,7 +121,7 @@ main (argc, argv)
Copyright (C) %s Free Software Foundation, Inc.\n\
This is free software; see the source for copying conditions. There is NO\n\
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\
"), "1996");
"), "1996, 1997");
printf (_("Written by %s.\n"), "Ulrich Drepper");
exit (EXIT_SUCCESS);
@@ -224,7 +224,8 @@ Mandatory arguments to long options are mandatory for short options too.\n\
If INPUT-FILE is -, input is read from standard input.\n"),
program_invocation_name, program_invocation_name,
program_invocation_name);
fputs (gettext ("Report bugs to <bug-glibc@prep.ai.mit.edu>.\n"),
fputs (gettext ("\
Report bugs using the `glibcbug' script to <bugs@gnu.ai.mit.edu>.\n"),
stdout);
}
+4 -4
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
# Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -12,9 +12,9 @@
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If
# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
# Cambridge, MA 02139, USA.
# License along with the GNU C Library; see the file COPYING.LIB. If not,
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Sub-makefile for dirent portion of the library.
+17 -19
View File
@@ -1,29 +1,27 @@
/* Copyright (C) 1992 Free Software Foundation, Inc.
This file is part of the GNU C Library.
/* Copyright (C) 1992, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <ansidecl.h>
#include <dirent.h>
#include <string.h>
int
DEFUN(alphasort, (a, b),
CONST PTR a AND CONST PTR b)
alphasort (const void *a, const void *b)
{
return strcmp (((struct dirent *) a)->d_name,
((struct dirent *) b)->d_name);
return strcmp ((*(const struct dirent **) a)->d_name,
(*(const struct dirent **) b)->d_name);
}
+38 -35
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -39,12 +39,15 @@ __BEGIN_DECLS
It defines the macro `_DIRENT_HAVE_D_OFF' iff there is a `d_off'
member that gives the file offset of the next directory entry.
It defines the macro `_DIRENT_HAVE_D_TYPE' iff there is a `d_type'
member that gives the type of the file.
*/
#include <direntry.h>
#if (defined(__USE_BSD) || defined(__USE_MISC)) && !defined(d_fileno)
#define d_ino d_fileno /* Backward compatibility. */
#if (defined __USE_BSD || defined __USE_MISC) && !defined d_fileno
# define d_ino d_fileno /* Backward compatibility. */
#endif
/* These macros extract size information from a `struct dirent *'.
@@ -62,16 +65,16 @@ __BEGIN_DECLS
*/
#ifdef _DIRENT_HAVE_D_NAMLEN
#define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
#define _D_ALLOC_NAMLEN(d) (_D_EXACT_NAMLEN (d) + 1)
# define _D_EXACT_NAMLEN(d) ((d)->d_namlen)
# define _D_ALLOC_NAMLEN(d) (_D_EXACT_NAMLEN (d) + 1)
#else
#define _D_EXACT_NAMLEN(d) (strlen ((d)->d_name))
#ifdef _DIRENT_HAVE_D_RECLEN
#define _D_ALLOC_NAMLEN(d) (((char *) (d) + (d)->d_reclen) - &(d)->d_name[0])
#else
#define _D_ALLOC_NAMLEN(d) (sizeof (d)->d_name > 1 ? sizeof (d)->d_name : \
_D_EXACT_NAMLEN (d) + 1)
#endif
# define _D_EXACT_NAMLEN(d) (strlen ((d)->d_name))
# ifdef _DIRENT_HAVE_D_RECLEN
# define _D_ALLOC_NAMLEN(d) (((char *) (d) + (d)->d_reclen) - &(d)->d_name[0])
# else
# define _D_ALLOC_NAMLEN(d) (sizeof (d)->d_name > 1 ? sizeof (d)->d_name : \
_D_EXACT_NAMLEN (d) + 1)
# endif
#endif
@@ -90,8 +93,8 @@ enum
};
/* Convert between stat structure types and directory types. */
#define IFTODT(mode) (((mode) & 0170000) >> 12)
#define DTTOIF(dirtype) ((dirtype) << 12)
# define IFTODT(mode) (((mode) & 0170000) >> 12)
# define DTTOIF(dirtype) ((dirtype) << 12)
#endif
@@ -116,42 +119,42 @@ extern int closedir __P ((DIR *__dirp));
extern struct dirent *__readdir __P ((DIR *__dirp));
extern struct dirent *readdir __P ((DIR *__dirp));
#ifdef __USE_REENTRANT
#if defined __USE_POSIX || defined __USE_MISC
/* Reentrant version of `readdir'. Return in RESULT a pointer to the
next entry. */
extern int __readdir_r __P ((DIR *__dirp, struct dirent *entry,
struct dirent **result));
extern int readdir_r __P ((DIR *__dirp, struct dirent *entry,
struct dirent **result));
#endif
extern int __readdir_r __P ((DIR *__dirp, struct dirent *__entry,
struct dirent **__result));
extern int readdir_r __P ((DIR *__dirp, struct dirent *__entry,
struct dirent **__result));
#endif /* POSIX or misc */
/* Rewind DIRP to the beginning of the directory. */
extern void rewinddir __P ((DIR *__dirp));
#if defined(__USE_BSD) || defined(__USE_MISC)
#if defined __USE_BSD || defined __USE_MISC
/* Return the file descriptor used by DIRP. */
extern int dirfd __P ((DIR *__dirp));
#if defined (__OPTIMIZE__) && defined (_DIR_dirfd)
#define dirfd(dirp) _DIR_dirfd (dirp)
#endif
# if defined __OPTIMIZE__ && defined _DIR_dirfd
# define dirfd(dirp) _DIR_dirfd (dirp)
# endif
#ifndef MAXNAMLEN
# ifndef MAXNAMLEN
/* Get the definitions of the POSIX.1 limits. */
#include <posix1_lim.h>
# include <posix1_lim.h>
/* `MAXNAMLEN' is the BSD name for what POSIX calls `NAME_MAX'. */
#ifdef NAME_MAX
#define MAXNAMLEN NAME_MAX
#else
#define MAXNAMLEN 255
#endif
#endif
# ifdef NAME_MAX
# define MAXNAMLEN NAME_MAX
# else
# define MAXNAMLEN 255
# endif
# endif
#include <gnu/types.h>
#define __need_size_t
#include <stddef.h>
# include <gnu/types.h>
# define __need_size_t
# include <stddef.h>
/* Seek to position POS on DIRP. */
extern void seekdir __P ((DIR *__dirp, __off_t __pos));
+41 -7
View File
@@ -1,6 +1,6 @@
# Makefile for elf subdirectory of GNU C Library.
# Copyright (C) 1995, 1996 Free Software Foundation, Inc.
# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -41,6 +41,8 @@ extra-libs = libdl
extra-libs-others = $(extra-libs)
libdl-routines := dlopen dlclose dlsym dlerror dladdr
before-compile = $(objpfx)trusted-dirs.h
all: # Make this the default target; it will be defined in Rules.
@@ -49,14 +51,26 @@ include ../Makeconfig
ifeq (yes,$(build-shared))
extra-objs = $(rtld-routines:=.so) soinit.so sofini.so eval.so
generated = librtld.so dl-allobjs.so
install-others = $(slibdir)/$(rtld-installed-name)
install-others = $(inst_slibdir)/$(rtld-installed-name)
install-bin = ldd
endif
ifeq (yes,$(has-ldconfig))
extra-objs += ldconfig.o
install-rootsbin = ldconfig
$(objpfx)ldconfig: $(objpfx)ldconfig.o
$(CC) -nostdlib -nostartfiles -o $@ $(sysdep-LDFLAGS) -static \
$(addprefix $(csu-objpfx),start.o) $(+preinit) \
$(filter-out $(addprefix $(csu-objpfx),start.o) $(+preinit) \
$(link-extra-libs) $(common-objpfx)libc% $(+postinit),$^) \
$(link-extra-libs) $(common-objpfx)libc.a $(gnulib) $(+postinit)
endif
include ../Rules
ifeq (yes, $(build-shared))
ifeq (yes,$(build-shared))
# Make sure these things are built in the `make lib' pass so they can be used
# to run programs during the `make others' pass.
lib-noranlib: $(objpfx)$(rtld-installed-name) \
@@ -84,7 +98,7 @@ endef
# The dl code in the static libc needs a default library path.
CFLAGS-dl-support.c = -D'DEFAULT_RPATH="$(default-rpath)"'
ifneq (ld.so, $(rtld-installed-name))
ifneq (ld.so,$(rtld-installed-name))
# Make sure ld.so.1 exists in the build directory so we can link
# against it.
$(objpfx)$(rtld-installed-name): $(objpfx)ld.so
@@ -92,21 +106,41 @@ $(objpfx)$(rtld-installed-name): $(objpfx)ld.so
ln -s $(<F) $@
endif
# Build a file mentioning all trustworthy directories to look for shared
# libraries when using LD_LIBRARY_PATH in a setuid program. The user can
# add directories to the list by defining $(user-defined-trusted-dirs)
# before starting make.
$(objpfx)trusted-dirs.h: Makefile
$(make-target-directory)
(for dir in `echo "$(default-rpath) $(user-defined-trusted-dirs)" | \
sed 's/:/ /g'`; do \
echo " \"$$dir\","; \
done;) > $@T
mv -f $@T $@
CPPFLAGS-dl-load.c = -I$(objdir)/$(subdir)
CFLAGS-dl-load.c += -Wno-uninitialized
# Specify the dependencies of libdl.so; its commands come from the generic
# rule to build a shared library.
$(objpfx)libdl.so: $(objpfx)libdl_pic.a $(common-objpfx)libc.so $(objpfx)ld.so
$(slibdir)/$(rtld-installed-name): $(objpfx)ld.so; $(do-install-program)
$(inst_slibdir)/$(rtld-version-installed-name): $(objpfx)ld.so
$(do-install-program)
$(inst_slibdir)/$(rtld-installed-name): \
$(inst_slibdir)/$(rtld-version-installed-name)
$(make-shlib-link)
ifneq ($(have-bash2),yes)
$(objpfx)ldd: ldd.sh.in Makefile
$(objpfx)ldd: ldd.sh.in $(common-objpfx)version.mk \
$(common-objpfx)soversions.mk $(common-objpfx)config.make
sed -e 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' \
-e 's%@VERSION@%$(version)%g' < $< > $@.new
chmod 555 $@.new
mv -f $@.new $@
else
$(objpfx)ldd: ldd.bash.in Makefile
$(objpfx)ldd: ldd.bash.in $(common-objpfx)version.mk \
$(common-objpfx)soversions.mk $(common-objpfx)config.make
sed -e 's%@BASH@%$(BASH)%g' \
-e 's%@RTLD@%$(slibdir)/$(rtld-installed-name)%g' \
-e 's%@VERSION@%$(version)%g' \
+79 -20
View File
@@ -1,5 +1,5 @@
/* Load the dependencies of a mapped object.
Copyright (C) 1996 Free Software Foundation, Inc.
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,33 +32,86 @@ _dl_map_object_deps (struct link_map *map,
struct link_map *map;
struct list *next;
};
struct list head[1 + npreloads], *tailp, *scanp;
struct list *head, *tailp, *scanp;
struct list duphead, *duptailp;
unsigned int nlist;
unsigned int nduplist;
/* Start the search list with one element: MAP itself. */
head[0].map = map;
/* We use `l_reserved' as a mark bit to detect objects we have already
put in the search list and avoid adding duplicate elements later in
the list. */
map->l_reserved = 1;
/* Add the preloaded items after MAP but before any of its dependencies. */
for (nlist = 0; nlist < npreloads; ++nlist)
unsigned int nlist, naux, i;
inline void preload (struct link_map *map)
{
head[nlist].next = &head[nlist + 1];
head[nlist + 1].map = preloads[nlist];
preloads[nlist]->l_reserved = 1;
head[nlist++].map = map;
/* We use `l_reserved' as a mark bit to detect objects we have
already put in the search list and avoid adding duplicate
elements later in the list. */
map->l_reserved = 1;
}
naux = nlist = 0;
/* XXX The AUXILIARY implementation isn't correct in the moment. XXX
XXX The problem is that we currently do not handle auxiliary XXX
XXX entries in the loaded objects. XXX */
#define AUXTAG (DT_NUM + DT_PROCNUM + DT_VERSIONTAGNUM \
+ DT_EXTRATAGIDX (DT_AUXILIARY))
/* First determine the number of auxiliary objects we have to load. */
if (map->l_info[AUXTAG])
{
ElfW(Dyn) *d;
for (d = map->l_ld; d->d_tag != DT_NULL; ++d)
if (d->d_tag == DT_AUXILIARY)
++naux;
}
/* Now we can allocate the array for the linker maps. */
head = (struct list *) alloca (sizeof (struct list)
* (naux + npreloads + 2));
/* Load the auxiliary objects, even before the object itself. */
if (map->l_info[AUXTAG])
{
/* There is at least one auxiliary library specified. We try to
load it, and if we can, use its symbols in preference to our
own. But if we can't load it, we just silently ignore it. */
const char *strtab
= ((void *) map->l_addr + map->l_info[DT_STRTAB]->d_un.d_ptr);
ElfW(Dyn) *d;
for (d = map->l_ld; d->d_tag != DT_NULL; ++d)
if (d->d_tag == DT_AUXILIARY)
{
struct link_map *aux;
void openaux (void)
{
aux = _dl_map_object (map, strtab + d->d_un.d_val,
(map->l_type == lt_executable
? lt_library : map->l_type),
trace_mode);
}
char *errstring;
const char *objname;
if (! _dl_catch_error (&errstring, &objname, openaux))
/* The auxiliary object is actually there. Use it as
the first search element, even before MAP itself. */
preload (aux);
}
}
/* Next load MAP itself. */
preload (map);
/* Add the preloaded items after MAP but before any of its dependencies. */
for (i = 0; i < npreloads; ++i)
preload (preloads[i]);
/* Terminate the lists. */
head[nlist].next = NULL;
head[nlist - 1].next = NULL;
duphead.next = NULL;
/* Start here for adding dependencies to the list. */
tailp = &head[nlist++];
tailp = &head[nlist - 1];
/* Until now we have the same number of libraries in the normal and
the list with duplicates. */
@@ -104,7 +157,7 @@ _dl_map_object_deps (struct link_map *map,
dep->l_reserved = 1;
}
/* In any case Append DEP to the duplicates search list. */
/* In any case append DEP to the duplicates search list. */
duptailp->next = alloca (sizeof *duptailp);
duptailp = duptailp->next;
duptailp->map = dep;
@@ -117,6 +170,9 @@ _dl_map_object_deps (struct link_map *map,
/* Store the search list we built in the object. It will be used for
searches in the scope of this object. */
map->l_searchlist = malloc (nlist * sizeof (struct link_map *));
if (map->l_searchlist == NULL)
_dl_signal_error (ENOMEM, map->l_name,
"cannot allocate symbol search list");
map->l_nsearchlist = nlist;
nlist = 0;
@@ -130,9 +186,12 @@ _dl_map_object_deps (struct link_map *map,
}
map->l_dupsearchlist = malloc (nduplist * sizeof (struct link_map *));
if (map->l_dupsearchlist == NULL)
_dl_signal_error (ENOMEM, map->l_name,
"cannot allocate symbol search list");
map->l_ndupsearchlist = nduplist;
for (nlist = 0; nlist < npreloads + 1; ++nlist)
for (nlist = 0; nlist < naux + 1 + npreloads; ++nlist)
map->l_dupsearchlist[nlist] = head[nlist].map;
for (scanp = duphead.next; scanp; scanp = scanp->next)
map->l_dupsearchlist[nlist++] = scanp->map;
+38 -4
View File
@@ -1,5 +1,5 @@
/* Error handling for runtime dynamic linker.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -37,6 +37,11 @@ struct catch
this is null. */
static struct catch *catch;
/* This points to a function which is called when an error is
received. Unlike the handling of `catch' this function may return.
The arguments will be the `errstring' and `objname'. */
static receiver_fct receiver;
void
_dl_signal_error (int errcode,
@@ -58,6 +63,13 @@ _dl_signal_error (int errcode,
catch->objname = objname;
longjmp (catch->env, errcode ?: -1);
}
else if (receiver)
{
/* We are inside _dl_receive_error. Call the user supplied
handler and resume the work. The receiver will still
installed. */
(*receiver) (errstring, objname);
}
else
{
/* Lossage while resolving the program's own symbols is always fatal. */
@@ -76,22 +88,44 @@ _dl_catch_error (char **errstring,
void (*operate) (void))
{
int errcode;
struct catch c = { errstring: NULL, objname: NULL };
struct catch *old, c = { errstring: NULL, objname: NULL };
/* We need not handle `receiver' since setting a `catch' is handle
before it. */
old = catch;
errcode = setjmp (c.env);
if (errcode == 0)
{
catch = &c;
(*operate) ();
catch = NULL;
catch = old;
*errstring = NULL;
*objname = NULL;
return 0;
}
/* We get here only if we longjmp'd out of OPERATE. */
catch = NULL;
catch = old;
*errstring = c.errstring;
*objname = c.objname;
return errcode == -1 ? 0 : errcode;
}
void
_dl_receive_error (receiver_fct fct, void (*operate) (void))
{
struct catch *old_catch;
receiver_fct old_receiver;
old_catch = catch;
old_receiver = receiver;
/* Set the new values. */
catch = NULL;
receiver = fct;
(*operate) ();
catch = old_catch;
receiver = old_receiver;
}
+58 -14
View File
@@ -1,5 +1,5 @@
/* _dl_map_object -- Map in a shared object's segments from the file.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -409,7 +409,8 @@ _dl_map_object_from_fd (char *name, int fd, char *realname,
static int
open_path (const char *name, size_t namelen,
const char *dirpath,
char **realname)
char **realname,
const char *trusted_dirs[])
{
char *buf;
const char *p;
@@ -426,13 +427,42 @@ open_path (const char *name, size_t namelen,
do
{
size_t buflen;
size_t this_len;
dirpath = p;
p = strpbrk (dirpath, ":;");
if (p == NULL)
p = strchr (dirpath, '\0');
if (p == dirpath)
this_len = p - dirpath;
/* When we run a setuid program we do not accept any directory. */
if (__libc_enable_secure)
{
/* All trusted directory must be complete name. */
if (dirpath[0] != '/')
continue;
/* If we got a list of trusted directories only accept one
of these. */
if (trusted_dirs != NULL)
{
const char **trust = trusted_dirs;
while (*trust != NULL)
if (memcmp (dirpath, *trust, this_len) == 0
&& (*trust)[this_len] == '\0')
break;
else
++trust;
/* If directory is not trusted, ignore this directory. */
if (*trust == NULL)
continue;
}
}
if (this_len == 0)
{
/* Two adjacent colons, or a colon at the beginning or the end of
the path means to search the current directory. */
@@ -442,10 +472,10 @@ open_path (const char *name, size_t namelen,
else
{
/* Construct the pathname to try. */
(void) memcpy (buf, dirpath, p - dirpath);
buf[p - dirpath] = '/';
(void) memcpy (&buf[(p - dirpath) + 1], name, namelen);
buflen = p - dirpath + 1 + namelen;
(void) memcpy (buf, dirpath, this_len);
buf[this_len] = '/';
(void) memcpy (&buf[this_len + 1], name, namelen);
buflen = this_len + 1 + namelen;
}
fd = __open (buf, O_RDONLY);
@@ -508,9 +538,9 @@ _dl_map_object (struct link_map *loader, const char *name, int type,
size_t namelen = strlen (name) + 1;
inline void trypath (const char *dirpath)
inline void trypath (const char *dirpath, const char *trusted[])
{
fd = open_path (name, namelen, dirpath, &realname);
fd = open_path (name, namelen, dirpath, &realname, trusted);
}
fd = -1;
@@ -521,16 +551,24 @@ _dl_map_object (struct link_map *loader, const char *name, int type,
if (l && l->l_info[DT_RPATH])
trypath ((const char *) (l->l_addr +
l->l_info[DT_STRTAB]->d_un.d_ptr +
l->l_info[DT_RPATH]->d_un.d_val));
l->l_info[DT_RPATH]->d_un.d_val), NULL);
/* If dynamically linked, try the DT_RPATH of the executable itself. */
l = _dl_loaded;
if (fd == -1 && l && l->l_type != lt_loaded && l->l_info[DT_RPATH])
trypath ((const char *) (l->l_addr +
l->l_info[DT_STRTAB]->d_un.d_ptr +
l->l_info[DT_RPATH]->d_un.d_val));
l->l_info[DT_RPATH]->d_un.d_val), NULL);
/* Try an environment variable (unless setuid). */
if (fd == -1 && ! __libc_enable_secure)
trypath (getenv ("LD_LIBRARY_PATH"));
{
static const char *trusted_dirs[] =
{
#include "trusted-dirs.h"
NULL
};
trypath (getenv ("LD_LIBRARY_PATH"), trusted_dirs);
}
if (fd == -1)
{
/* Check the list of libraries in the file /etc/ld.so.cache,
@@ -555,7 +593,7 @@ _dl_map_object (struct link_map *loader, const char *name, int type,
if (fd == -1)
{
extern const char *_dl_rpath; /* Set in rtld.c. */
trypath (_dl_rpath);
trypath (_dl_rpath, NULL);
}
}
else
@@ -589,7 +627,8 @@ _dl_map_object (struct link_map *loader, const char *name, int type,
/* We haven't found an appropriate library. But since we
are only interested in the list of libraries this isn't
so severe. Fake an entry with all the information we
have (in fact only the name). */
have. */
static const ElfW(Symndx) dummy_bucket = STN_UNDEF;
/* Enter the new object in the list of loaded objects. */
if ((name_copy = local_strdup (name)) == NULL
@@ -599,6 +638,11 @@ _dl_map_object (struct link_map *loader, const char *name, int type,
/* We use an opencount of 0 as a sign for the faked entry. */
l->l_opencount = 0;
l->l_reserved = 0;
l->l_buckets = &dummy_bucket;
l->l_nbuckets = 1;
l->l_relocated = 1;
return l;
}
else
_dl_signal_error (errno, name, "cannot open shared object file");
+14 -2
View File
@@ -1,5 +1,5 @@
/* Look up a symbol in the loaded objects.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -162,7 +162,7 @@ _dl_lookup_symbol (const char *undef_name, const ElfW(Sym) **ref,
(*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK))
{
/* We could find no value for a strong reference. */
const char msg[] = "undefined symbol: ";
static const char msg[] = "undefined symbol: ";
const size_t len = strlen (undef_name);
char buf[sizeof msg + len];
memcpy (buf, msg, sizeof msg - 1);
@@ -206,6 +206,18 @@ _dl_lookup_symbol_skip (const char *undef_name, const ElfW(Sym) **ref,
reference_name, skip_map, flags))
break;
if (current_value.s == NULL &&
(*ref == NULL || ELFW(ST_BIND) ((*ref)->st_info) != STB_WEAK))
{
/* We could find no value for a strong reference. */
static const char msg[] = "undefined symbol: ";
const size_t len = strlen (undef_name);
char buf[sizeof msg + len];
memcpy (buf, msg, sizeof msg - 1);
memcpy (&buf[sizeof msg - 1], undef_name, len + 1);
_dl_signal_error (0, reference_name, buf);
}
*ref = current_value.s;
return current_value.a;
}
+6 -7
View File
@@ -1,5 +1,5 @@
/* Relocate a shared object and resolve its references to other loaded objects.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -58,17 +58,16 @@ _dl_relocate_object (struct link_map *l, struct link_map *scope[], int lazy)
/* This macro is used as a callback from the ELF_DYNAMIC_RELOCATE code. */
#define RESOLVE(ref, flags) \
(_dl_lookup_symbol (strtab + (*ref)->st_name, ref, scope, \
l->l_name, flags))
(((*ref)->st_shndx != SHN_UNDEF && \
ELFW(ST_BIND) ((*ref)->st_info) == STB_LOCAL) \
? l->l_addr \
: _dl_lookup_symbol (strtab + (*ref)->st_name, ref, scope, \
l->l_name, flags))
#include "dynamic-link.h"
ELF_DYNAMIC_RELOCATE (l, lazy);
}
/* Set up the PLT so its unrelocated entries will jump to
_dl_runtime_resolve (dl-runtime.c), which will relocate them. */
elf_machine_runtime_setup (l, lazy);
/* Mark the object so we know ths work has been done. */
l->l_relocated = 1;
+16 -6
View File
@@ -1,5 +1,5 @@
/* Inline functions for dynamic linking.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -25,11 +25,13 @@
/* Read the dynamic section at DYN and fill in INFO with indices DT_*. */
static inline void __attribute__ ((unused))
elf_get_dynamic_info (ElfW(Dyn) *dyn, ElfW(Dyn) *info[DT_NUM + DT_PROCNUM])
elf_get_dynamic_info (ElfW(Dyn) *dyn,
ElfW(Dyn) *info[DT_NUM + DT_PROCNUM + DT_VERSIONTAGNUM
+ DT_EXTRANUM])
{
unsigned int i;
for (i = 0; i < DT_NUM + DT_PROCNUM; ++i)
for (i = 0; i < DT_NUM + DT_PROCNUM + DT_VERSIONTAGNUM + DT_EXTRANUM; ++i)
info[i] = NULL;
if (! dyn)
@@ -42,6 +44,11 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn, ElfW(Dyn) *info[DT_NUM + DT_PROCNUM])
else if (dyn->d_tag >= DT_LOPROC &&
dyn->d_tag < DT_LOPROC + DT_PROCNUM)
info[dyn->d_tag - DT_LOPROC + DT_NUM] = dyn;
else if ((Elf32_Word) DT_VERSIONTAGIDX (dyn->d_tag) < DT_VERSIONTAGNUM)
info[DT_VERSIONTAGIDX (dyn->d_tag) + DT_NUM + DT_PROCNUM] = dyn;
else if ((Elf32_Word) DT_EXTRATAGIDX (dyn->d_tag) < DT_EXTRANUM)
info[DT_EXTRATAGIDX (dyn->d_tag) + DT_NUM + DT_PROCNUM
+ DT_VERSIONTAGNUM] = dyn;
else
assert (! "bad dynamic tag");
dyn++;
@@ -90,8 +97,11 @@ elf_get_dynamic_info (ElfW(Dyn) *dyn, ElfW(Dyn) *info[DT_NUM + DT_PROCNUM])
/* This can't just be an inline function because GCC is too dumb
to inline functions containing inlines themselves. */
#define ELF_DYNAMIC_RELOCATE(map, lazy) \
do { ELF_DYNAMIC_DO_REL ((map), (lazy)); \
ELF_DYNAMIC_DO_RELA ((map), (lazy)); } while (0)
#define ELF_DYNAMIC_RELOCATE(map, lazy) \
do { \
int edr_lazy = elf_machine_runtime_setup((map), (lazy)); \
ELF_DYNAMIC_DO_REL ((map), edr_lazy); \
ELF_DYNAMIC_DO_RELA ((map), edr_lazy); \
} while (0)
#endif
+93 -1
View File
@@ -1,5 +1,5 @@
/* This file defines standard ELF types, structures, and macros.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ian Lance Taylor <ian@cygnus.com>.
@@ -232,6 +232,11 @@ typedef struct
#define SHT_SHLIB 10 /* Reserved */
#define SHT_DYNSYM 11 /* Dynamic linker symbol table */
#define SHT_NUM 12 /* Number of defined types. */
#define SHT_LOSUNW 0x6ffffffd /* Sun-specific low bound. */
#define SHT_GNU_verdef 0x6ffffffd /* Version definition section. */
#define SHT_GNU_verneed 0x6ffffffe /* Version needs section. */
#define SHT_GNU_versym 0x6fffffff /* Version symbol table. */
#define SHT_HISUNW 0x6fffffff /* Sun-specific high bound. */
#define SHT_LOPROC 0x70000000 /* Start of processor-specific */
#define SHT_HIPROC 0x7fffffff /* End of processor-specific */
#define SHT_LOUSER 0x80000000 /* Start of application-specific */
@@ -464,6 +469,93 @@ typedef struct
#define DT_HIPROC 0x7fffffff /* End of processor-specific */
#define DT_PROCNUM DT_MIPS_NUM /* Most used by any processor */
/* The versioning entry types. The next are defined as part of the
GNU extension. */
#define DT_VERSYM 0x6ffffff0
/* These were chosen by Sun. */
#define DT_VERDEF 0x6ffffffc /* Address of version definition
table */
#define DT_VERDEFNUM 0x6ffffffd /* Number of version definitions */
#define DT_VERNEED 0x6ffffffe /* Address of table with needed
versions */
#define DT_VERNEEDNUM 0x6fffffff /* Number of needed versions */
#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) /* Reverse order! */
#define DT_VERSIONTAGNUM 16
/* Sun added these machine-independent extensions in the "processor-specific"
range. Be compatible. */
#define DT_AUXILIARY 0x7ffffffd /* Shared object to load before self */
#define DT_FILTER 0x7fffffff /* Shared object to get values from */
#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
#define DT_EXTRANUM 3
/* Version definition sections. */
typedef struct
{
Elf32_Half vd_version; /* Version revision */
Elf32_Half vd_flags; /* Version information */
Elf32_Half vd_ndx; /* Version Index */
Elf32_Half vd_cnt; /* Number of associated aux entries */
Elf32_Word vd_hash; /* Version name hash value */
Elf32_Word vd_aux; /* Offset in bytes to verdaux array */
Elf32_Word vd_next; /* Offset in bytes to next verdef
entry */
} Elf32_Verdef;
/* Legal values for vd_version (version revision). */
#define VER_DEF_NONE 0 /* No version */
#define VER_DEF_CURRENT 1 /* Current version */
#define VER_DEF_NUM 2 /* Given version number */
/* Legal values for vd_flags (version information flags). */
#define VER_FLG_BASE 0x1 /* Version definition of file itself */
#define VER_FLG_WEAK 0x2 /* Weak version identifier */
/* Auxialiary version information. */
typedef struct
{
Elf32_Addr vda_name; /* Version or dependency names */
Elf32_Word vda_next; /* Offset in bytes to next verdaux
entry */
} Elf32_Verdaux;
/* Version dependency section. */
typedef struct
{
Elf32_Half vn_version; /* Version of structure */
Elf32_Half vn_cnt; /* Number of associated aux entries */
Elf32_Addr vn_file; /* Offset of filename for this
dependency */
Elf32_Word vn_aux; /* Offset in bytes to vernaux array */
Elf32_Word vn_next; /* Offset in bytes to next verneed
entry */
} Elf32_Verneed;
/* Legal values for vn_version (version revision). */
#define VER_NEED_NONE 0 /* No version */
#define VER_NEED_CURRENT 1 /* Current version */
#define VER_NEED_NUM 2 /* Given version number */
/* Auxiliary needed version information. */
typedef struct
{
Elf32_Word vna_hash; /* Hash value of dependency name */
Elf32_Half vna_flags; /* Dependency specific information */
Elf32_Half vna_other; /* Unused */
Elf32_Addr vna_name; /* Dependency name string offset */
Elf32_Word vna_next; /* Offset in bytes to next vernaux
entry */
} Elf32_Vernaux;
/* Legal values for vna_flags. */
#define VER_FLG_WEAK 0x2 /* Weak verison identifier */
/* Auxiliary vector. */
/* This vector is normally only used by the program interpreter. The
+53 -19
View File
@@ -1,6 +1,6 @@
#! @BASH@
# Copyright (C) 1996 Free Software Foundation, Inc.
# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -29,23 +29,39 @@ TEXTDOMAIN=libc
TEXTDOMAINDIR=@TEXTDOMAINDIR@
RTLD=@RTLD@
RELOCS=
while test $# -gt 0; do
case "$1" in
--v*)
--v | --ve | --ver | --vers | --versi | --versio | --version)
echo $"ldd (GNU libc) @VERSION@
Copyright (C) 1996 Free Software Foundation, Inc.
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
exit 0 ;;
--h*)
--h | --he | --hel | --help)
echo $"ldd [OPTION]... FILE...
--help print this help and exit
--version print version information and exit
Report bugs to <bug-glibc@prep.ai.mit.edu>."
--help print this help and exit
--version print version information and exit
-d, --data-relocs process data relocations
-r, --function-relocs process data and function relocations
Report bugs using the \`glibcbug' script to <bugs@gnu.ai.mit.edu>."
exit 0 ;;
-d | --d | --da | --dat | --data | --data- | --data-r | --data-re | \
--data-rel | --data-relo | --data-reloc | --data-relocs)
RELOCS='--data-relocs'
shift ;;
-r | --f | --fu | --fun | --func | --funct | --functi | --functio | \
--function | --function- | --function-r | --function-re | --function-rel | \
--function-relo | --function-reloc | --function-relocs)
RELOCS='--function-relocs'
shift ;;
--) # Stop option processing.
shift; break ;;
-*)
echo >&2 $"ldd: unrecognized option" "\`$1'"
echo >&2 $"Try \`ldd --help' for more information."
exit 1 ;;
*)
break ;;
esac
@@ -53,9 +69,8 @@ done
case $# in
0)
echo >&2 $"\
ldd: missing file arguments
Try \`ldd --help' for more information."
echo >&2 $"ldd: missing file arguments"
echo >&2 $"Try \`ldd --help' for more information."
exit 1 ;;
1)
# We don't list the file name when there is only one.
@@ -64,15 +79,25 @@ Try \`ldd --help' for more information."
*) file="./$1" ;;
esac
if test ! -f "$file"; then
echo "${file}:" $"no such file"
elif ${RTLD} --verify "$file"; then
LD_TRACE_LOADED_OBJECTS=1 exec ${RTLD} "$file" && exit 1
echo "ldd: ${file}:" $"no such file"
exit 1
elif test -r "$file"; then
test -x "$file" ||
echo $"ldd: warning: you do not have execution permission for" "\`$file'"
if ${RTLD} --verify "$file"; then
LD_TRACE_LOADED_OBJECTS=1 exec ${RTLD} ${RELOCS} "$file" || exit 1
else
echo $" not a dynamic executable"
exit 1
fi
else
echo $" not a dynamic executable"
echo $"ldd: error: you do not have read permission for" "\`$file'"
exit 1
fi
exit ;;
*)
set -e # Bail out immediately if ${RTLD} loses on any argument.
result=0
for file; do
echo "${file}:"
case "$file" in
@@ -80,16 +105,25 @@ Try \`ldd --help' for more information."
*) file="./$file" ;;
esac
if test ! -f "$file"; then
echo "$file:" $"no such file"
elif ${RTLD} --verify "$file"; then
LD_TRACE_LOADED_OBJECTS=1 ${RTLD} "$file"
echo "ldd: ${file}:" $"no such file"
result=1
elif test -r "$file"; then
test -x "$file" || echo $"\
ldd: warning: you do not have execution permission for" "\`$file'"
if ${RTLD} --verify "$file"; then
LD_TRACE_LOADED_OBJECTS=1 ${RTLD} ${RELOCS} "$file" || result=1
else
echo $" not a dynamic executable"
result=1
fi
else
echo $" not a dynamic executable"
echo $"ldd: error: you do not have read permission for" "\`$file'"
result=1
fi
done
esac
exit 0
exit $result
# Local Variables:
# mode:ksh
# End:
+57 -17
View File
@@ -1,6 +1,6 @@
#! /bin/sh
# Copyright (C) 1996 Free Software Foundation, Inc.
# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -25,23 +25,40 @@
# variable LD_TRACE_LOADED_OBJECTS to a non-empty value.
RTLD=@RTLD@
RELOCS=
while test $# -gt 0; do
case "$1" in
--v*)
--v | --ve | --ver | --vers | --versi | --versio | --version)
echo 'ldd (GNU libc) @VERSION@
Copyright (C) 1996 Free Software Foundation, Inc.
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.'
exit 0 ;;
--h*)
echo 'ldd [OPTION]... FILE...
--help print this help and exit
--version print version information and exit
Report bugs to <bug-glibc@prep.ai.mit.edu>.'
--h | --he | --hel | --help)
echo "ldd [OPTION]... FILE...
--help print this help and exit
--version print version information and exit
-d, --data-relocs process data relocations
-r, --function-relocs process data and function relocations
Report bugs using the \`glibcbug' script to <bugs@gnu.ai.mit.edu>."
exit 0 ;;
-d | --d | --da | --dat | --data | --data- | --data-r | --data-re | \
--data-rel | --data-relo | --data-reloc | --data-relocs)
RELOCS='--data-relocs'
shift ;;
-r | --f | --fu | --fun | --func | --funct | --functi | --functio | \
--function | --function- | --function-r | --function-re | --function-rel | \
--function-relo | --function-reloc | --function-relocs)
RELOCS='--function-relocs'
shift ;;
--) # Stop option processing.
shift; break ;;
-*)
echo >&2 "\
ldd: unrecognized option \`$1'
Try \`ldd --help' for more information."
exit 1 ;;
*)
break ;;
esac
@@ -60,15 +77,27 @@ Try \`ldd --help' for more information."
*) file="./$1" ;;
esac
if test ! -f "$file"; then
echo "${file}: no such file"
elif ${RTLD} --verify "$file"; then
LD_TRACE_LOADED_OBJECTS=1 exec ${RTLD} "$file" && exit 1
echo "ldd: ${file}: no such file"
exit 1
else
echo ' not a dynamic executable'
if test -r "$file"; then
test -x "$file" ||
echo "ldd: warning: you do not have execution permission for \`$file'"
if ${RTLD} --verify "$file"; then
LD_TRACE_LOADED_OBJECTS=1 exec ${RTLD} ${RELOCS} "$file" || exit 1
else
echo ' not a dynamic executable'
exit 1
fi
else
echo "ldd: error: you do not have read permission for \`$file'"
exit 1
fi
fi
exit ;;
*)
set -e # Bail out immediately if ${RTLD} loses on any argument.
result=0
for file; do
echo "${file}:"
case "$file" in
@@ -76,13 +105,24 @@ Try \`ldd --help' for more information."
*) file="./$file" ;;
esac
if test ! -f "$file"; then
echo "$file: no such file"
elif ${RTLD} --verify "$file"; then
LD_TRACE_LOADED_OBJECTS=1 ${RTLD} "$file"
echo "ldd: ${file}: no such file"
result=1
else
echo ' not a dynamic executable'
if test -r "$file"; then
test -x "$file" || echo "\
ldd: warning: you do not have execution permission for \`$file'"
if ${RTLD} --verify "$file"; then
LD_TRACE_LOADED_OBJECTS=1 ${RTLD} ${RELOCS} "$file" || result=1
else
echo ' not a dynamic executable'
result=1
fi
else
echo "ldd: error: you do not have read permission for \`$file'"
result=1
fi
fi
done
esac
exit 0
exit $result
+31 -6
View File
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -18,13 +18,17 @@
Boston, MA 02111-1307, USA. */
#ifndef _LINK_H
#define _LINK_H 1
#include <features.h>
#define __need_size_t
#include <stddef.h>
#include <elf.h>
__BEGIN_DECLS
/* We use this macro to refer to ELF types independent of the native wordsize.
`ElfW(TYPE)' is used in place of `Elf32_TYPE' or `Elf64_TYPE'. */
#define ElfW(type) _ElfW (Elf, __ELF_NATIVE_CLASS, type)
@@ -97,8 +101,14 @@ struct link_map
const char *l_libname; /* Name requested (before search). */
/* Indexed pointers to dynamic section.
[0,DT_NUM) are indexed by the processor-independent tags.
[DT_NUM,DT_NUM+DT_PROCNUM] are indexed by the tag minus DT_LOPROC. */
ElfW(Dyn) *l_info[DT_NUM + DT_PROCNUM];
[DT_NUM,DT_NUM+DT_PROCNUM) are indexed by the tag minus DT_LOPROC.
[DT_NUM+DT_PROCNUM,DT_NUM+DT_PROCNUM+DT_EXTRANUM) are indexed
by DT_EXTRATAGIDX(tagvalue) and
[DT_NUM+DT_PROCNUM+DT_VERSIONTAGNUM,
DT_NUM+DT_PROCNUM+DT_VERSIONTAGNUM+DT_EXTRANUM)
are indexed by DT_EXTRATAGIDX(tagvalue) (see <elf.h>). */
ElfW(Dyn) *l_info[DT_NUM + DT_PROCNUM + DT_VERSIONTAGNUM + DT_EXTRANUM];
const ElfW(Phdr) *l_phdr; /* Pointer to program header table in core. */
ElfW(Addr) l_entry; /* Entry point location. */
ElfW(Half) l_phnum; /* Number of program header entries. */
@@ -134,6 +144,12 @@ struct link_map
unsigned int l_global:1; /* Nonzero if object in _dl_global_scope. */
unsigned int l_reserved:2; /* Reserved for internal use. */
};
/* Function used as argument for `_dl_receive_error' function. The
arguments are the error string and the objname the error occurred
in. */
typedef void (*receiver_fct) (const char *, const char *);
/* Internal functions of the run-time dynamic linker.
These can be accessed if you link again the dynamic linker
@@ -158,6 +174,11 @@ extern int _dl_sysdep_open_zero_fill (void); /* dl-sysdep.c */
are concatenated to form the message to print. */
extern void _dl_sysdep_message (const char *string, ...);
/* OS-dependent function to write a message on the standard error.
All arguments are `const char *'; args until a null pointer
are concatenated to form the message to print. */
extern void _dl_sysdep_error (const char *string, ...);
/* OS-dependent function to give a fatal error message and exit
when the dynamic linker fails before the program is fully linked.
All arguments are `const char *'; args until a null pointer
@@ -174,11 +195,9 @@ extern int _dl_secure;
zero; OBJECT is the name of the problematical shared object, or null if
it is a general problem; ERRSTRING is a string describing the specific
problem. */
extern void _dl_signal_error (int errcode,
const char *object,
const char *errstring)
__attribute__ ((__noreturn__));
const char *errstring);
/* Call OPERATE, catching errors from `dl_signal_error'. If there is no
error, *ERRSTRING is set to null. If there is an error, *ERRSTRING and
@@ -189,6 +208,11 @@ extern int _dl_catch_error (char **errstring,
const char **object,
void (*operate) (void));
/* Call OPERATE, receiving errors from `dl_signal_error'. Unlike
`_dl_catch_error' the operation is resumed after the OPERATE
function returns. */
extern void _dl_receive_error (receiver_fct fct, void (*operate) (void));
/* Helper function for <dlfcn.h> functions. Runs the OPERATE function via
_dl_catch_error. Returns zero for success, nonzero for failure; and
@@ -320,5 +344,6 @@ extern void _dl_debug_state (void);
in the `r_ldbase' member. Returns the address of the structure. */
extern struct r_debug *_dl_debug_initialize (ElfW(Addr) ldbase);
__END_DECLS
#endif /* link.h */
+93 -32
View File
@@ -1,5 +1,5 @@
/* Run time dynamic linker.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -44,6 +44,10 @@ extern void *_dl_sysdep_read_whole_file (const char *filename,
size_t *filesize_ptr,
int mmap_prot);
/* Helper function to handle errors while resolving symbols. */
static void print_unresolved (const char *errstring, const char *objname);
int _dl_argc;
char **_dl_argv;
const char *_dl_rpath;
@@ -142,11 +146,19 @@ dl_main (const ElfW(Phdr) *phdr,
enum { normal, list, verify, trace } mode;
struct link_map **preloads;
unsigned int npreloads;
const char *preloadlist;
size_t file_size;
char *file;
mode = getenv ("LD_TRACE_LOADED_OBJECTS") != NULL ? trace : normal;
/* LAZY is determined by the parameters --datadeps and --function-deps
if we trace the binary. */
if (mode == trace)
lazy = -1;
else
lazy = !__libc_enable_secure && *(getenv ("LD_BIND_NOW") ?: "") == '\0';
/* Set up a flag which tells we are just starting. */
_dl_starting_up = 1;
@@ -186,22 +198,44 @@ of this helper program; chances are you did not intend to run this program.\n",
/* Note the place where the dynamic linker actually came from. */
_dl_rtld_map.l_name = _dl_argv[0];
if (! strcmp (_dl_argv[1], "--list"))
{
mode = list;
while (_dl_argc > 1)
if (! strcmp (_dl_argv[1], "--list"))
{
mode = list;
lazy = -1; /* This means do no dependency analysis. */
++_dl_skip_args;
--_dl_argc;
++_dl_argv;
}
else if (! strcmp (_dl_argv[1], "--verify"))
{
mode = verify;
++_dl_skip_args;
--_dl_argc;
++_dl_argv;
}
else if (! strcmp (_dl_argv[1], "--verify"))
{
mode = verify;
++_dl_skip_args;
--_dl_argc;
++_dl_argv;
}
++_dl_skip_args;
--_dl_argc;
++_dl_argv;
}
else if (! strcmp (_dl_argv[1], "--data-relocs"))
{
mode = trace;
lazy = 1; /* This means do only data relocation analysis. */
++_dl_skip_args;
--_dl_argc;
++_dl_argv;
}
else if (! strcmp (_dl_argv[1], "--function-relocs"))
{
mode = trace;
lazy = 0; /* This means do also function relocation analysis. */
++_dl_skip_args;
--_dl_argc;
++_dl_argv;
}
else
break;
++_dl_skip_args;
--_dl_argc;
@@ -311,22 +345,22 @@ of this helper program; chances are you did not intend to run this program.\n",
preloads = NULL;
npreloads = 0;
if (! __libc_enable_secure)
preloadlist = getenv ("LD_PRELOAD");
if (preloadlist)
{
const char *preloadlist = getenv ("LD_PRELOAD");
if (preloadlist)
{
/* The LD_PRELOAD environment variable gives a colon-separated
list of libraries that are loaded before the executable's
dependencies and prepended to the global scope list. */
char *list = strdupa (preloadlist);
char *p;
while ((p = strsep (&list, ":")) != NULL)
{
(void) _dl_map_object (NULL, p, lt_library, 0);
++npreloads;
}
}
/* The LD_PRELOAD environment variable gives a white space
separated list of libraries that are loaded before the
executable's dependencies and prepended to the global scope
list. If the binary is running setuid all elements
containing a '/' are ignored since it is insecure. */
char *list = strdupa (preloadlist);
char *p;
while ((p = strsep (&list, " ")) != NULL)
if (! __libc_enable_secure || strchr (p, '/') == NULL)
{
(void) _dl_map_object (NULL, p, lt_library, 0);
++npreloads;
}
}
/* Read the contents of the file. */
@@ -495,12 +529,31 @@ of this helper program; chances are you did not intend to run this program.\n",
*--bp = '0';
_dl_sysdep_message (" in object at 0x", bp, "\n", NULL);
}
else if (lazy >= 0)
{
/* We have to do symbol dependency testing. */
void doit (void)
{
_dl_relocate_object (l, _dl_object_relocation_scope (l), lazy);
}
l = _dl_loaded;
while (l->l_next)
l = l->l_next;
do
{
if (l != &_dl_rtld_map && l->l_opencount > 0)
{
_dl_receive_error (print_unresolved, doit);
*_dl_global_scope_end = NULL;
}
l = l->l_prev;
} while (l);
}
_exit (0);
}
lazy = !__libc_enable_secure && *(getenv ("LD_BIND_NOW") ?: "") == '\0';
{
/* Now we have all the objects loaded. Relocate them all except for
the dynamic linker itself. We do this in reverse order so that copy
@@ -572,3 +625,11 @@ of this helper program; chances are you did not intend to run this program.\n",
/* Once we return, _dl_sysdep_start will invoke
the DT_INIT functions and then *USER_ENTRY. */
}
/* This is a little helper function for resolving symbols while
tracing the binary. */
static void
print_unresolved (const char *errstring, const char *objname)
{
_dl_sysdep_error (errstring, " (", objname, ")\n", NULL);
}
+2 -2
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 92, 93, 95, 96 Free Software Foundation, Inc.
/* Copyright (C) 1991, 92, 93, 95, 96, 97 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -95,7 +95,7 @@
/* If _BSD_SOURCE was defined by the user, favor BSD over POSIX. */
#if defined _BSD_SOURCE && \
!(defined _POSIX_SOURCE || defined _POSIX_C_SOURCE || \
defined _XOPEN_SOURCE || defined _XOPEN_SOURCE_DEFINED || \
defined _XOPEN_SOURCE || defined _XOPEN_SOURCE_EXTENDED || \
defined _GNU_SOURCE || defined _SVID_SOURCE)
# define __FAVOR_BSD 1
#endif
+244
View File
@@ -0,0 +1,244 @@
#! /bin/sh
#
# glibcbug - create a bug report and mail it to the bug address.
#
# configuration section:
# these variables are filled in by configure
#
VERSION="@VERSION@"
BUGGLIBC="bugs@gnu.ai.mit.edu"
ADDONS="@subdirs@"
PATH=/bin:/usr/bin:/usr/local/bin:$PATH
export PATH
TEMP=/tmp/glibcbug.$$
BUGADDR=${1-$BUGGLIBC}
ENVIRONMENT=`uname -a`
: ${EDITOR=emacs}
: ${USER=${LOGNAME-`whoami`}}
trap 'rm -f $TEMP $TEMP.x; exit 1' 1 2 3 13 15
trap 'rm -f $TEMP $TEMP.x' 0
# How to read the passwd database.
PASSWD="cat /etc/passwd"
if [ -f /usr/lib/sendmail ] ; then
MAIL_AGENT="/usr/lib/sendmail -oi -t"
elif [ -f /usr/sbin/sendmail ] ; then
MAIL_AGENT="/usr/sbin/sendmail -oi -t"
else
MAIL_AGENT=rmail
fi
# Figure out how to echo a string without a trailing newline
N=`echo 'hi there\c'`
case "$N" in
*c) ECHON1='echo -n' ECHON2= ;;
*) ECHON1=echo ECHON2='\c' ;;
esac
# Find out the name of the originator of this PR.
if [ -n "$NAME" ]; then
ORIGINATOR="$NAME"
elif [ -f $HOME/.fullname ]; then
ORIGINATOR="`sed -e '1q' $HOME/.fullname`"
else
# Must use temp file due to incompatibilities in quoting behavior
# and to protect shell metacharacters in the expansion of $LOGNAME
$PASSWD | grep "^$LOGNAME:" | awk -F: '{print $5}' | sed -e 's/,.*//' > $TEMP
ORIGINATOR="`cat $TEMP`"
rm -f $TEMP
fi
if [ -n "$ORGANIZATION" ]; then
if [ -f "$ORGANIZATION" ]; then
ORGANIZATION="`cat $ORGANIZATION`"
fi
else
if [ -f $HOME/.organization ]; then
ORGANIZATION="`cat $HOME/.organization`"
elif [ -f $HOME/.signature ]; then
ORGANIZATION=`sed -e "s/^/ /" $HOME/.signature; echo ">"`
fi
fi
# If they don't have a preferred editor set, then use
if [ -z "$VISUAL" ]; then
if [ -z "$EDITOR" ]; then
EDIT=vi
else
EDIT="$EDITOR"
fi
else
EDIT="$VISUAL"
fi
# Find out some information.
SYSTEM=`( [ -f /bin/uname ] && /bin/uname -a ) || \
( [ -f /usr/bin/uname ] && /usr/bin/uname -a ) || echo ""`
ARCH=`[ -f /bin/arch ] && /bin/arch`
MACHINE=`[ -f /bin/machine ] && /bin/machine`
ORGANIZATION_C='<organization of PR author (multiple lines)>'
SYNOPSIS_C='<synopsis of the problem (one line)>'
SEVERITY_C='<[ non-critical | serious | critical ] (one line)>'
PRIORITY_C='<[ low | medium | high ] (one line)>'
CLASS_C='<[ sw-bug | doc-bug | change-request | support ] (one line)>'
RELEASE_C='<release number or tag (one line)>'
ENVIRONMENT_C='<machine, os, target, libraries (multiple lines)>'
DESCRIPTION_C='<precise description of the problem (multiple lines)>'
HOW_TO_REPEAT_C='<code/input/activities to reproduce the problem (multiple lines)>'
FIX_C='<how to correct or work around the problem, if known (multiple lines)>'
cat > $TEMP <<EOF
SEND-PR: -*- send-pr -*-
SEND-PR: Lines starting with \`SEND-PR' will be removed automatically, as
SEND-PR: will all comments (text enclosed in \`<' and \`>').
SEND-PR:
From: ${USER}
To: ${BUGADDR}
Subject: [50 character or so descriptive subject here (for reference)]
>Submitter-Id: net
>Originator: ${ORIGINATOR}
>Organization:
${ORGANIZATION- $ORGANIZATION_C}
>Confidential: no
>Synopsis: $SYNOPSIS_C
>Severity: $SEVERITY_C
>Priority: $PRIORITY_C
>Category: libc
>Class: $CLASS_C
>Release: libc-${VERSION}
>Environment:
$ENVIRONMENT_C
`[ -n "$SYSTEM" ] && echo System: $SYSTEM`
`[ -n "$ARCH" ] && echo Architecture: $ARCH`
`[ -n "$MACHINE" ] && echo Machine: $MACHINE`
`[ -n "$ADDONS" ] && echo Addons: $ADDONS`
>Description:
$DESCRIPTION_C
>How-To-Repeat:
$HOW_TO_REPEAT_C
>Fix:
$FIX_C
EOF
chmod u+w $TEMP
cp $TEMP $TEMP.x
eval $EDIT $TEMP
if cmp -s $TEMP $TEMP.x; then
echo "File not changed, no bug report submitted."
exit 1
fi
#
# Check the enumeration fields
# This is a "sed-subroutine" with one keyword parameter
# (with workaround for Sun sed bug)
#
SED_CMD='
/$PATTERN/{
s|||
s|<.*>||
s|^[ ]*||
s|[ ]*$||
p
q
}'
while :; do
CNT=0
#
# 1) Severity
#
PATTERN=">Severity:"
SEVERITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
case "$SEVERITY" in
""|non-critical|serious|critical) CNT=`expr $CNT + 1` ;;
*) echo "$COMMAND: \`$SEVERITY' is not a valid value for \`Severity'."
esac
#
# 2) Priority
#
PATTERN=">Priority:"
PRIORITY=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
case "$PRIORITY" in
""|low|medium|high) CNT=`expr $CNT + 1` ;;
*) echo "$COMMAND: \`$PRIORITY' is not a valid value for \`Priority'."
esac
#
# 3) Class
#
PATTERN=">Class:"
CLASS=`eval sed -n -e "\"$SED_CMD\"" $TEMP`
case "$CLASS" in
""|sw-bug|doc-bug|change-request|support) CNT=`expr $CNT + 1` ;;
*) echo "$COMMAND: \`$CLASS' is not a valid value for \`Class'."
esac
[ $CNT -lt 3 ] &&
echo "Errors were found with the problem report."
while :; do
$ECHON1 "a)bort, e)dit or s)end? $ECHON2"
read input
case "$input" in
a*)
echo "$COMMAND: problem report saved in $HOME/dead.glibcbug."
cat $TEMP >> $HOME/dead.glibcbug
xs=1; exit
;;
e*)
eval $EDIT $TEMP
continue 2
;;
s*)
break 2
;;
esac
done
done
#
# Remove comments and send the problem report
# (we have to use patterns, where the comment contains regex chars)
#
# /^>Originator:/s;$ORIGINATOR;;
sed -e "
/^SEND-PR:/d
/^>Organization:/,/^>[A-Za-z-]*:/s;$ORGANIZATION_C;;
/^>Confidential:/s;<.*>;;
/^>Synopsis:/s;$SYNOPSIS_C;;
/^>Severity:/s;<.*>;;
/^>Priority:/s;<.*>;;
/^>Class:/s;<.*>;;
/^>Release:/,/^>[A-Za-z-]*:/s;$RELEASE_C;;
/^>Environment:/,/^>[A-Za-z-]*:/s;$ENVIRONMENT_C;;
/^>Description:/,/^>[A-Za-z-]*:/s;$DESCRIPTION_C;;
/^>How-To-Repeat:/,/^>[A-Za-z-]*:/s;$HOW_TO_REPEAT_C;;
/^>Fix:/,/^>[A-Za-z-]*:/s;$FIX_C;;
" $TEMP > $TEMP.x
if $MAIL_AGENT < $TEMP.x; then
echo "$COMMAND: problem report sent"
xs=0; exit
else
echo "$COMMAND: mysterious mail failure, report not sent."
echo "$COMMAND: problem report saved in $HOME/dead.glibcbug."
cat $TEMP >> $HOME/dead.glibcbug
fi
exit 0
+4 -4
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1995, 1996 Free Software Foundation, Inc.
# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -12,9 +12,9 @@
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If
# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
# Cambridge, MA 02139, USA.
# License along with the GNU C Library; see the file COPYING.LIB. If not,
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Sub-makefile for gmon portion of the library.
+86 -37
View File
@@ -34,6 +34,7 @@
#include <sys/time.h>
#include <sys/gmon.h>
#include <sys/gmon_out.h>
#include <sys/uio.h>
#include <stdio.h>
#include <fcntl.h>
@@ -165,21 +166,26 @@ static void
write_hist (fd)
int fd;
{
const u_char tag = GMON_TAG_TIME_HIST;
struct gmon_hist_hdr thdr;
u_char tag = GMON_TAG_TIME_HIST;
struct gmon_hist_hdr thdr __attribute__ ((aligned (__alignof__ (char *))));
if (_gmonparam.kcountsize > 0)
{
thdr.low_pc = _gmonparam.lowpc;
thdr.high_pc = _gmonparam.highpc;
thdr.hist_size = _gmonparam.kcountsize / sizeof(HISTCOUNTER);
thdr.prof_rate = __profile_frequency();
strncpy(thdr.dimen, "seconds", sizeof(thdr.dimen));
struct iovec iov[3] =
{
{ &tag, sizeof (tag) },
{ &thdr, sizeof (struct gmon_hist_hdr) },
{ _gmonparam.kcount, _gmonparam.kcountsize }
};
*(char **) thdr.low_pc = (char *) _gmonparam.lowpc;
*(char **) thdr.high_pc = (char *) _gmonparam.highpc;
*(int *) thdr.hist_size = _gmonparam.kcountsize / sizeof (HISTCOUNTER);
*(int *) thdr.prof_rate = __profile_frequency ();
strncpy (thdr.dimen, "seconds", sizeof (thdr.dimen));
thdr.dimen_abbrev = 's';
write(fd, &tag, sizeof(tag));
write(fd, &thdr, sizeof(thdr));
write(fd, _gmonparam.kcount, _gmonparam.kcountsize);
__writev (fd, iov, 3);
}
}
@@ -188,12 +194,26 @@ static void
write_call_graph (fd)
int fd;
{
const u_char tag = GMON_TAG_CG_ARC;
struct gmon_cg_arc_record raw_arc;
u_char tag = GMON_TAG_CG_ARC;
struct gmon_cg_arc_record raw_arc[4]
__attribute__ ((aligned (__alignof__ (char*))));
int from_index, to_index, from_len;
u_long frompc;
from_len = _gmonparam.fromssize / sizeof(*_gmonparam.froms);
struct iovec iov[8] =
{
{ &tag, sizeof (tag) },
{ &raw_arc[0], sizeof (struct gmon_cg_arc_record) },
{ &tag, sizeof (tag) },
{ &raw_arc[1], sizeof (struct gmon_cg_arc_record) },
{ &tag, sizeof (tag) },
{ &raw_arc[2], sizeof (struct gmon_cg_arc_record) },
{ &tag, sizeof (tag) },
{ &raw_arc[3], sizeof (struct gmon_cg_arc_record) },
};
int nfilled = 0;
from_len = _gmonparam.fromssize / sizeof (*_gmonparam.froms);
for (from_index = 0; from_index < from_len; ++from_index)
{
if (_gmonparam.froms[from_index] == 0)
@@ -201,19 +221,24 @@ write_call_graph (fd)
frompc = _gmonparam.lowpc;
frompc += (from_index * _gmonparam.hashfraction
* sizeof(*_gmonparam.froms));
* sizeof (*_gmonparam.froms));
for (to_index = _gmonparam.froms[from_index];
to_index != 0;
to_index = _gmonparam.tos[to_index].link)
{
raw_arc.from_pc = frompc;
raw_arc.self_pc = _gmonparam.tos[to_index].selfpc;
raw_arc.count = _gmonparam.tos[to_index].count;
write(fd, &tag, sizeof(tag));
write(fd, &raw_arc, sizeof(raw_arc));
if (nfilled > 3)
{
__writev (fd, iov, 2 * nfilled);
nfilled = 0;
}
*(char **) raw_arc[nfilled].from_pc = (char *)frompc;
*(char **) raw_arc[nfilled].self_pc =
(char *)_gmonparam.tos[to_index].selfpc;
*(int *) raw_arc[nfilled].count = _gmonparam.tos[to_index].count;
++nfilled;
}
}
__writev (fd, iov, 2 * nfilled);
}
@@ -222,55 +247,79 @@ write_bb_counts (fd)
int fd;
{
struct __bb *grp;
const u_char tag = GMON_TAG_BB_COUNT;
u_char tag = GMON_TAG_BB_COUNT;
int ncounts;
int i;
struct iovec bbhead[2] =
{
{ &tag, sizeof (tag) },
{ &ncounts, sizeof (ncounts) }
};
struct iovec bbbody[8];
int nfilled;
for (i = 0; i < (sizeof (bbbody) / sizeof (bbbody[0])); i += 2)
{
bbbody[i].iov_len = sizeof (grp->addresses[0]);
bbbody[i + 1].iov_len = sizeof (grp->counts[0]);
}
/* Write each group of basic-block info (all basic-blocks in a
compilation unit form a single group). */
nfilled = 0;
for (grp = __bb_head; grp; grp = grp->next)
{
ncounts = grp->ncounts;
write(fd, &tag, sizeof(tag));
write(fd, &ncounts, sizeof(ncounts));
__writev (fd, bbhead, 2);
for (i = 0; i < ncounts; ++i)
{
write(fd, &grp->addresses[i], sizeof(grp->addresses[0]));
write(fd, &grp->counts[i], sizeof(grp->counts[0]));
if (nfilled > (sizeof (bbbody) / sizeof (bbbody[0])) - 2)
{
__writev (fd, bbbody, nfilled);
nfilled = 0;
}
bbbody[nfilled++].iov_base = (char *) &grp->addresses[i];
bbbody[nfilled++].iov_base = &grp->counts[i];
}
}
__writev (fd, bbbody, nfilled);
}
void
_mcleanup ()
{
struct gmon_hdr ghdr;
struct gmon_hdr ghdr __attribute__ ((aligned (__alignof__ (int))));
int fd;
moncontrol(0);
fd = open("gmon.out", O_CREAT|O_TRUNC|O_WRONLY, 0666);
moncontrol (0);
fd = __open ("gmon.out", O_CREAT|O_TRUNC|O_WRONLY, 0666);
if (fd < 0)
{
perror("_mcleanup: gmon.out");
perror ("_mcleanup: gmon.out");
return;
}
/* write gmon.out header: */
memset(&ghdr, 0, sizeof(ghdr));
memcpy(&ghdr.cookie[0], GMON_MAGIC, sizeof(ghdr.cookie));
ghdr.version = GMON_VERSION;
write(fd, &ghdr, sizeof(ghdr));
memset (&ghdr, 0, sizeof (struct gmon_hdr));
memcpy (&ghdr.cookie[0], GMON_MAGIC, sizeof (ghdr.cookie));
*(int *) ghdr.version = GMON_VERSION;
__write (fd, &ghdr, sizeof (struct gmon_hdr));
/* write PC histogram: */
write_hist(fd);
write_hist (fd);
/* write call-graph: */
write_call_graph(fd);
write_call_graph (fd);
/* write basic-block execution counts: */
write_bb_counts(fd);
write_bb_counts (fd);
close(fd);
__close (fd);
/* free the memory. */
free (_gmonparam.tos);
}
+27 -21
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1996 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by David Mosberger <davidm@cs.arizona.edu>.
@@ -40,30 +40,36 @@ __BEGIN_DECLS
* always comes first in gmon.out and is then followed by a series
* records defined below.
*/
struct gmon_hdr {
char cookie[4];
int version;
int spare[3];
};
struct gmon_hdr
{
char cookie[4];
char version[4];
char spare[3 * 4];
};
/* types of records in this file: */
typedef enum {
GMON_TAG_TIME_HIST = 0, GMON_TAG_CG_ARC = 1, GMON_TAG_BB_COUNT = 2
} GMON_Record_Tag;
typedef enum
{
GMON_TAG_TIME_HIST = 0,
GMON_TAG_CG_ARC = 1,
GMON_TAG_BB_COUNT = 2
} GMON_Record_Tag;
struct gmon_hist_hdr {
unsigned long low_pc; /* base pc address of sample buffer */
unsigned long high_pc; /* max pc address of sampled buffer */
int hist_size; /* size of sample buffer */
int prof_rate; /* profiling clock rate */
char dimen[15]; /* phys. dim., usually "seconds" */
char dimen_abbrev; /* usually 's' for "seconds" */
};
struct gmon_hist_hdr
{
char low_pc[sizeof (char *)]; /* base pc address of sample buffer */
char high_pc[sizeof (char *)]; /* max pc address of sampled buffer */
char hist_size[4]; /* size of sample buffer */
char prof_rate[4]; /* profiling clock rate */
char dimen[15]; /* phys. dim., usually "seconds" */
char dimen_abbrev; /* usually 's' for "seconds" */
};
struct gmon_cg_arc_record {
unsigned long from_pc; /* address within caller's body */
unsigned long self_pc; /* address within callee's body */
int count; /* number of arc traversals */
struct gmon_cg_arc_record
{
char from_pc[sizeof (char *)]; /* address within caller's body */
char self_pc[sizeof (char *)]; /* address within callee's body */
char count[4]; /* number of arc traversals */
};
__END_DECLS
+2 -2
View File
@@ -1,5 +1,5 @@
/* Header with interface version macros for library pieces copied elsewhere.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -47,7 +47,7 @@
#define _GNU_OBSTACK_INTERFACE_VERSION 1 /* vs malloc/obstack.c */
#define _GNU_REGEX_INTERFACE_VERSION 1 /* vs posix/regex.c */
#define _GNU_GLOB_INTERFACE_VERSION 1 /* vs posix/glob.c */
#define _GNU_GETOPT_INTERFACE_VERSION 1 /* vs posix/getopt.c and
#define _GNU_GETOPT_INTERFACE_VERSION 2 /* vs posix/getopt.c and
posix/getopt1.c */
#endif /* gnu-versions.h */
+4 -4
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991 Free Software Foundation, Inc.
# Copyright (C) 1991, 1997 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -12,9 +12,9 @@
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If
# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
# Cambridge, MA 02139, USA.
# License along with the GNU C Library; see the file COPYING.LIB. If not,
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
subdir := gnulib
+4 -4
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991, 1992, 1996 Free Software Foundation, Inc.
# Copyright (C) 1991, 1992, 1996, 1997 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -12,9 +12,9 @@
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If
# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
# Cambridge, MA 02139, USA.
# License along with the GNU C Library; see the file COPYING.LIB. If not,
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
# Sub-makefile for grp portion of the library.
+58 -18
View File
@@ -1,35 +1,75 @@
/* Copyright (C) 1991, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
/* Copyright (C) 1991, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <errno.h>
#include <grp.h>
#include <stdio.h>
#include <libc-lock.h>
#include <stdlib.h>
/* We need to protect the dynamic buffer handling. */
__libc_lock_define_initialized (static, lock);
/* Read one entry from the given stream. */
struct group *
fgetgrent (FILE *stream)
{
static char buffer[BUFSIZ];
static char *buffer;
static size_t buffer_size;
static struct group resbuf;
struct group *result;
int save;
if (__fgetgrent_r (stream, &resbuf, buffer, sizeof buffer, &result) != 0)
return NULL;
/* Get lock. */
__libc_lock_lock (lock);
/* Allocate buffer if not yet available. */
if (buffer == NULL)
{
buffer_size = NSS_BUFLEN_GROUP;
buffer = malloc (buffer_size);
}
while (buffer != NULL
&& __fgetgrent_r (stream, &resbuf, buffer, buffer_size, &result) != 0
&& errno == ERANGE)
{
char *new_buf;
buffer_size += NSS_BUFLEN_GROUP;
new_buf = realloc (buffer, buffer_size);
if (new_buf == NULL)
{
/* We are out of memory. Free the current buffer so that the
process gets a chance for a normal termination. */
save = errno;
free (buffer);
__set_errno (save);
}
buffer = new_buf;
}
if (buffer == NULL)
result = NULL;
/* Release lock. Preserve error value. */
save = errno;
__libc_lock_unlock (lock);
__set_errno (save);
return result;
}
+12 -3
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1996 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -56,6 +56,7 @@ __fgetgrent_r (FILE *stream, struct group *resbuf, char *buffer, size_t buflen,
struct group **result)
{
char *p;
int parse_result;
do
{
@@ -69,10 +70,18 @@ __fgetgrent_r (FILE *stream, struct group *resbuf, char *buffer, size_t buflen,
/* Skip leading blanks. */
while (isspace (*p))
++p;
} while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
} while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
/* Parse the line. If it is invalid, loop to
get the next line of the file to parse. */
! parse_line (p, resbuf, (void *) buffer, buflen));
|| ! (parse_result = parse_line (p, resbuf,
(void *) buffer, buflen)));
if (parse_result == -1)
{
/* The parser ran out of space. */
*result = NULL;
return errno;
}
*result = resbuf;
return 0;
+6 -6
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 1992, 1995, 1996 Free Software Foundation, Inc.
/* Copyright (C) 1991, 1992, 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -32,9 +32,6 @@ __BEGIN_DECLS
#define __need_size_t
#include <stddef.h>
#define __need_size_t
#include <stddef.h>
/* The group structure. */
struct group
@@ -91,10 +88,13 @@ extern struct group *getgrgid __P ((__gid_t __gid));
/* Search for an entry with a matching group name. */
extern struct group *getgrnam __P ((__const char *__name));
#ifdef __USE_REENTRANT
#if defined __USE_POSIX || defined __USE_MISC
#ifdef __USE_MISC
/* Reasonable value for the buffer sized used in the reentrant
functions below. But better use `sysconf'. */
#define NSS_BUFLEN_GROUP 1024
#endif
/* Reentrant versions of some of the functions above.
@@ -132,7 +132,7 @@ extern int fgetgrent_r __P ((FILE * __stream, struct group *__resultbuf,
struct group **__result));
#endif
#endif /* reentrant */
#endif /* POSIX or reentrant */
#ifdef __USE_BSD
+8 -7
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
# Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -12,9 +12,9 @@
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If
# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
# Cambridge, MA 02139, USA.
# License along with the GNU C Library; see the file COPYING.LIB. If not,
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
subdir := hurd
@@ -73,10 +73,11 @@ include ../Rules
# from $(subdirs), and this rule arranges for the headers in question
# to get installed.
sunrpc-headers = netdb.h pmap_prot.h xdr.h types.h auth.h \
rpc_msg.h auth_unix.h
installed-sunrpc-headers = $(addprefix $(includedir)/rpc/,$(sunrpc-headers))
rpc_msg.h auth_unix.h clnt.h
installed-sunrpc-headers = $(addprefix $(inst_includedir)/rpc/, \
$(sunrpc-headers))
install-headers-nosubdir: $(installed-sunrpc-headers)
$(installed-sunrpc-headers): $(includedir)/%: $(..)sunrpc/%
$(installed-sunrpc-headers): $(inst_includedir)/%: $(..)sunrpc/%
$(do-install)
+22 -17
View File
@@ -1,22 +1,21 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
This file is part of the GNU C Library.
/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <ansidecl.h>
#include <unistd.h>
#include <hurd.h>
#include <hurd/fd.h>
@@ -24,7 +23,7 @@ Cambridge, MA 02139, USA. */
/* Change the current root directory to FD. */
int
DEFUN(fchroot, (fd), int fd)
fchroot (int fd)
{
error_t err;
file_t dir;
@@ -36,7 +35,13 @@ DEFUN(fchroot, (fd), int fd)
}));
if (! err)
_hurd_port_set (&_hurd_ports[INIT_PORT_CRDIR], dir);
{
file_t root;
err = __file_reparent (dir, MACH_PORT_NULL, &root);
__mach_port_deallocate (__mach_task_self (), dir);
if (! err)
_hurd_port_set (&_hurd_ports[INIT_PORT_CRDIR], root);
}
return err ? __hurd_fail (err) : 0;
}
+17 -16
View File
@@ -1,26 +1,27 @@
/* Copyright (C) 1991, 1992, 1994, 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library.
/* Copyright (C) 1991, 1992, 1994, 1995, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <hurd.h>
/* This is initialized in dtable.c when that gets linked in.
If dtable.c is not linked in, it will be zero. */
file_t (*_hurd_getdport_fn) (int fd);
static file_t (*_default_hurd_getdport_fn) (int fd) = 0;
weak_alias (_default_hurd_getdport_fn, _hurd_getdport_fn)
file_t
__getdport (int fd)
@@ -43,7 +44,7 @@ __getdport (int fd)
errno = EBADF;
return MACH_PORT_NULL;
}
else
else
{
__mach_port_mod_refs (__mach_task_self (), _hurd_init_dtable[fd],
MACH_PORT_RIGHT_SEND, 1);
+23 -17
View File
@@ -1,20 +1,20 @@
/* Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
/* Copyright (C) 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _HURD_H
@@ -109,11 +109,10 @@ extern pid_t _hurd_pid, _hurd_ppid, _hurd_pgrp;
extern int _hurd_orphaned;
/* This variable is incremented every time the process IDs change. */
unsigned int _hurd_pids_changed_stamp;
extern unsigned int _hurd_pids_changed_stamp;
/* This condition is broadcast every time the process IDs change. */
struct condition _hurd_pids_changed_sync;
extern struct condition _hurd_pids_changed_sync;
/* Unix `data break', for brk and sbrk.
If brk and sbrk are not used, this info will not be initialized or used. */
@@ -304,4 +303,11 @@ extern int hurd_check_cancel (void);
extern io_t __getdport (int fd), getdport (int fd);
#include <stdarg.h>
/* Write formatted output to PORT, a Mach port supporting the i/o protocol,
according to the format string FORMAT, using the argument list in ARG. */
int vpprintf (io_t port, const char *format, va_list arg);
#endif /* hurd.h */
+16 -15
View File
@@ -1,21 +1,21 @@
/* Internal per-thread variables for the Hurd.
Copyright (C) 1994, 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Copyright (C) 1994, 1995, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _HURD_THREADVAR_H
#define _HURD_THREADVAR_H
@@ -33,7 +33,7 @@ Cambridge, MA 02139, USA. */
stack pointer is ignored; and __hurd_threadvar_stack_offset gives the
address of a small allocated region which contains the variables for the
single thread. */
extern unsigned long int __hurd_threadvar_stack_mask;
extern unsigned long int __hurd_threadvar_stack_offset;
@@ -60,6 +60,7 @@ enum __hurd_threadvar_index
_HURD_THREADVAR_ERRNO, /* `errno' value for this thread. */
_HURD_THREADVAR_SIGSTATE, /* This thread's `struct hurd_sigstate'. */
_HURD_THREADVAR_DYNAMIC_USER, /* Dynamically-assigned user variables. */
_HURD_THREADVAR_MALLOC, /* For use of malloc. */
_HURD_THREADVAR_MAX /* Default value for __hurd_threadvar_max. */
};
+130 -23
View File
@@ -1,20 +1,20 @@
/* Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
This file is part of the GNU C Library.
/* Copyright (C) 1991, 92, 93, 94, 95, 97 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <hurd.h>
#include <hurd/msg_server.h>
@@ -37,17 +37,124 @@ _S_msg_add_auth (mach_port_t me,
{
error_t err;
auth_t newauth;
uid_t *genuids, *gengids, *auxuids, *auxgids;
mach_msg_type_number_t ngenuids, ngengids, nauxuids, nauxgids;
uid_t *newgenuids, *newgengids, *newauxuids, *newauxgids;
mach_msg_type_number_t nnewgenuids, nnewgengids, nnewauxuids, nnewauxgids;
if (err = __USEPORT (AUTH,
__auth_makeauth (port,
&addauth, 1, MACH_MSG_TYPE_MOVE_SEND,
NULL, 0,
NULL, 0,
NULL, 0,
NULL, 0,
&newauth)))
/* Create a list of ids and store it in NEWLISTP, length NEWLISTLEN.
Keep all the ids in EXIST (len NEXIST), adding in those from NEW
(len NNEW) which are not already there. */
error_t make_list (uid_t **newlistp, mach_msg_type_number_t *newlistlen,
uid_t *exist, mach_msg_type_number_t nexist,
uid_t *new, mach_msg_type_number_t nnew)
{
error_t urp;
int i, j, k;
vm_size_t offset;
urp = vm_allocate (mach_task_self (), (vm_address_t *) newlistp,
nexist + nnew * sizeof (uid_t), 1);
if (urp)
return urp;
j = 0;
for (i = 0; i < nexist; i++)
(*newlistp)[j++] = exist[i];
for (i = 0; i < nnew; i++)
{
for (k = 0; k < nexist; k++)
if (exist[k] == new[i])
break;
if (k < nexist)
continue;
(*newlistp)[j++] = new[i];
}
offset = (round_page (nexist + nnew * sizeof (uid_t))
- round_page (j * sizeof (uid_t)));
if (offset)
vm_deallocate (mach_task_self (),
(vm_address_t) (*newlistp
+ (nexist + nnew * sizeof (uid_t))),
offset);
*newlistlen = j;
return 0;
}
/* Find out what ids ADDAUTH refers to */
genuids = gengids = auxuids = auxgids = 0;
ngenuids = ngengids = nauxuids = nauxgids = 0;
err = __auth_getids (addauth,
&genuids, &ngenuids,
&auxuids, &nauxuids,
&gengids, &ngengids,
&auxgids, &nauxgids);
if (err)
return err;
/* OR in these ids to what we already have, creating a new list. */
HURD_CRITICAL_BEGIN;
__mutex_lock (&_hurd_id.lock);
_hurd_check_ids ();
#define MAKE(genaux,uidgid) \
make_list (&new ## genaux ## uidgid ## s, \
&nnew ## genaux ## uidgid ## s, \
_hurd_id.genaux.uidgid ## s, \
_hurd_id.genaux.n ## uidgid ## s, \
genaux ## uidgid ## s, \
n ## genaux ## uidgid ## s)
err = MAKE (gen, uid);
if (!err)
MAKE (aux, uid);
if (!err)
MAKE (gen, gid);
if (!err)
MAKE (aux, gid);
#undef MAKE
__mutex_unlock (&_hurd_id.lock);
HURD_CRITICAL_END;
/* Create the new auth port */
if (!err)
err = __USEPORT (AUTH,
__auth_makeauth (port,
&addauth, MACH_MSG_TYPE_MOVE_SEND, 1,
newgenuids, nnewgenuids,
newauxuids, nnewauxuids,
newgengids, nnewgengids,
newauxgids, nnewauxgids,
&newauth));
#define freeup(array, len) \
if (array) \
vm_deallocate (mach_task_self (), (vm_address_t) array, \
len * sizeof (uid_t));
freeup (genuids, ngenuids);
freeup (auxuids, nauxuids);
freeup (gengids, ngengids);
freeup (auxgids, nauxgids);
freeup (newgenuids, nnewgenuids);
freeup (newauxuids, nnewauxuids);
freeup (newgengids, nnewgengids);
freeup (newauxgids, nnewauxgids);
#undef freeup
if (err)
return err;
/* And install it. */
err = __setauth (newauth);
__mach_port_deallocate (__mach_task_self (), newauth);
if (err)
@@ -108,7 +215,7 @@ _S_msg_del_auth (mach_port_t me,
err = __USEPORT (AUTH, __auth_makeauth
(port,
NULL, 0, MACH_MSG_TYPE_COPY_SEND,
NULL, MACH_MSG_TYPE_COPY_SEND, 0,
newu, nu,
_hurd_id.aux.uids, _hurd_id.aux.nuids,
newg, ng,
+5 -2
View File
@@ -1,5 +1,5 @@
/* Handle faults in the signal thread.
Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,10 @@
#include <assert.h>
jmp_buf _hurdsig_fault_env;
struct hurd_signal_preemptor _hurdsig_fault_preemptor;
struct hurd_signal_preemptor _hurdsig_fault_preemptor = {0};
/* XXX temporary to deal with spelling fix */
weak_alias (_hurdsig_fault_preemptor, _hurdsig_fault_preempter)
static mach_port_t forward_sigexc;
+16 -14
View File
@@ -1,20 +1,20 @@
/* Copyright (C) 1992, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
/* Copyright (C) 1992, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <sys/stat.h>
#include <stdlib.h>
@@ -31,7 +31,9 @@ struct hurd_port *_hurd_ports;
unsigned int _hurd_nports;
mode_t _hurd_umask;
sigset_t _hurdsig_traced;
char **__libc_argv;
int __libc_argc;
error_t
+11 -3
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1991, 92, 93, 94, 95, 96, 1996 Free Software Foundation, Inc.
/* Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -39,6 +39,11 @@ thread_t _hurd_msgport_thread;
/* Thread which receives task-global signals. */
thread_t _hurd_sigthread;
/* These are set up by _hurdsig_init. */
unsigned long int __hurd_sigthread_stack_base;
unsigned long int __hurd_sigthread_stack_end;
unsigned long int *__hurd_sigthread_variables;
/* Linked-list of per-thread signal state. */
struct hurd_sigstate *_hurd_sigstates;
@@ -421,9 +426,12 @@ abort_all_rpcs (int signo, struct machine_thread_all_state *state, int live)
}
}
struct hurd_signal_preemptor *_hurdsig_preemptors;
struct hurd_signal_preemptor *_hurdsig_preemptors = 0;
sigset_t _hurdsig_preempted_set;
/* XXX temporary to deal with spelling fix */
weak_alias (_hurdsig_preemptors, _hurdsig_preempters)
/* Mask of stop signals. */
#define STOPSIGS (sigmask (SIGTTIN) | sigmask (SIGTTOU) | \
sigmask (SIGSTOP) | sigmask (SIGTSTP))
@@ -1186,7 +1194,7 @@ _hurdsig_init (void)
err = __thread_create (__mach_task_self (), &_hurd_msgport_thread);
assert_perror (err);
stacksize = __vm_page_size * 4; /* Small stack for signal thread. */
stacksize = __vm_page_size * 8; /* Small stack for signal thread. */
err = __mach_setup_thread (__mach_task_self (), _hurd_msgport_thread,
_hurd_msgport_receive,
(vm_address_t *) &__hurd_sigthread_stack_base,
+14 -23
View File
@@ -1,21 +1,21 @@
/* Initial program startup for running under the GNU Hurd.
Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <errno.h>
#include <stdlib.h>
@@ -35,15 +35,6 @@ Cambridge, MA 02139, USA. */
mach_port_t *_hurd_init_dtable;
mach_msg_type_number_t _hurd_init_dtablesize;
unsigned int __hurd_threadvar_max;
unsigned long int __hurd_threadvar_stack_mask;
unsigned long int __hurd_threadvar_stack_offset;
/* These are set up by _hurdsig_init. */
unsigned long int __hurd_sigthread_stack_base;
unsigned long int __hurd_sigthread_stack_end;
unsigned long int *__hurd_sigthread_variables;
extern void __mach_init (void);
/* Entry point. This is the first thing in the text segment.
+24 -17
View File
@@ -1,21 +1,21 @@
/* Report on what a thread in our task is waiting for.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <hurd.h>
#include <hurd/signal.h>
@@ -93,8 +93,15 @@ describe_port (string_t description, mach_port_t port)
}
/* Common defn so we don't link in the itimer code unnecessarily. */
thread_t _hurd_itimer_thread; /* XXX */
/* We want _HURD_ITIMER_THREAD, but don't want to link in the itimer code
unnecessarily. */
#if 0 /* libc.so.0.0 needs this defined, so make it a weak alias for now. */
extern thread_t _hurd_itimer_thread; /* XXX */
weak_extern (_hurd_itimer_thread)
#else
static thread_t default_hurd_itimer_thread;
weak_alias (default_hurd_itimer_thread, _hurd_itimer_thread)
#endif
kern_return_t
_S_msg_report_wait (mach_port_t msgport, thread_t thread,
@@ -105,7 +112,7 @@ _S_msg_report_wait (mach_port_t msgport, thread_t thread,
if (thread == _hurd_msgport_thread)
/* Cute. */
strcpy (description, "msgport");
else if (thread == _hurd_itimer_thread)
else if (&_hurd_msgport_thread && thread == _hurd_itimer_thread)
strcpy (description, "itimer");
else
{
+15 -15
View File
@@ -1,21 +1,21 @@
/* Set a host configuration item kept as the whole contents of a file.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <fcntl.h>
#include <hurd.h>
@@ -28,7 +28,7 @@ _hurd_set_host_config (const char *item, const char *value, size_t valuelen)
mach_msg_type_number_t nwrote;
file_t new, dir;
dir = __file_name_split (item, &item);
dir = __file_name_split (item, (char **)&item);
if (dir == MACH_PORT_NULL)
return -1;
+23 -22
View File
@@ -1,30 +1,30 @@
/* Copyright (C) 1991, 1994 Free Software Foundation, Inc.
This file is part of the GNU C Library.
/* Copyright (C) 1991, 1994, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <ansidecl.h>
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <hurd.h>
static ssize_t
DEFUN(pwrite, (cookie, buf, n),
PTR cookie AND CONST char *buf AND size_t n)
pwrite (void *cookie,
const char *buf,
size_t n)
{
error_t error = __io_write ((io_t) cookie, buf, n, -1,
(mach_msg_type_number_t *) &n);
@@ -37,24 +37,25 @@ DEFUN(pwrite, (cookie, buf, n),
/* Write formatted output to PORT, a Mach port supporting the i/o protocol,
according to the format string FORMAT, using the argument list in ARG. */
int
DEFUN(vpprintf, (port, format, arg),
io_t port AND CONST char *format AND va_list arg)
vpprintf (io_t port,
const char *format,
va_list arg)
{
int done;
FILE f;
/* Create an unbuffered stream talking to PORT on the stack. */
memset((PTR) &f, 0, sizeof(f));
memset ((void *) &f, 0, sizeof (f));
f.__magic = _IOMAGIC;
f.__mode.__write = 1;
f.__cookie = (PTR) port;
f.__cookie = (void *) port;
f.__room_funcs = __default_room_functions;
f.__io_funcs.__write = pwrite;
f.__seen = 1;
f.__userbuf = 1;
/* vfprintf will use a buffer on the stack for the life of the call. */
done = vfprintf(&f, format, arg);
done = vfprintf (&f, format, arg);
return done;
}
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
# Copyright (C) 1991, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -22,7 +22,7 @@
subdir := inet
headers := netinet/ether.h netinet/in.h netinet/if_ether.h \
netinet/tcp.h $(wildcard arpa/*.h protocols/*.h) \
netinet/tcp.h netinet/ip.h $(wildcard arpa/*.h protocols/*.h) \
aliases.h
distribute := netgroup.h
+12 -13
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1996 Free Software Foundation, Inc.
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,12 +28,12 @@ __BEGIN_DECLS
/* Structure to represent one entry of the alias data base. */
struct aliasent
{
char *alias_name;
size_t alias_members_len;
char **alias_members;
int alias_local;
};
{
char *alias_name;
size_t alias_members_len;
char **alias_members;
int alias_local;
};
/* Open alias data base files. */
@@ -45,19 +45,18 @@ extern void endaliasent __P ((void));
/* Get the next entry from the alias data base. */
extern struct aliasent *getaliasent __P ((void));
/* Get alias entry corresponding to NAME. */
extern struct aliasent *getaliasbyname __P ((__const char *__name));
#ifdef __USE_REENTRANT
/* Reentrant versions of some of the functions above. */
/* Get the next entry from the alias data base and put it in RESULT_BUF. */
extern int getaliasent_r __P ((struct aliasent *__result_buf, char *__buffer,
size_t __buflen, struct aliasent **__result));
/* Get alias entry corresponding to NAME. */
extern struct aliasent *getaliasbyname __P ((__const char *__name));
/* Get alias entry corresponding to NAME and put it in RESULT_BUF. */
extern int getaliasbyname_r __P ((__const char *__name,
struct aliasent *__result_buf,
char *__buffer, size_t __buflen,
struct aliasent **__result));
#endif /* reentrant */
__END_DECLS
+87 -53
View File
@@ -1,61 +1,95 @@
/*
* Copyright (c) 1983, 1993
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)inet.h 8.1 (Berkeley) 6/2/93
*/
/* Copyright (C) 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
#ifndef _INET_H_
#define _INET_H_
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
/* External definitions for functions in inet(3) */
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _ARPA_INET_H
#define _ARPA_INET_H 1
#include <features.h>
#include <sys/cdefs.h>
#include <sys/types.h>
#include <netinet/in.h> /* To define `struct in_addr'. */
__BEGIN_DECLS
u_long inet_addr __P((const char *));
int inet_aton __P((const char *, struct in_addr *));
u_int32_t inet_lnaof __P((struct in_addr));
struct in_addr inet_makeaddr __P((u_int32_t , u_int32_t));
char * inet_neta __P((u_long, char *, size_t));
u_int32_t inet_netof __P((struct in_addr));
u_int32_t inet_network __P((const char *));
char *inet_net_ntop __P((int, const void *, int, char *, size_t));
int inet_net_pton __P((int, const char *, void *, size_t));
char *inet_ntoa __P((struct in_addr));
int inet_pton __P((int, const char *, void *));
const char *inet_ntop __P((int, const void *, char *, size_t));
u_int inet_nsap_addr __P((const char *, u_char *, int));
char *inet_nsap_ntoa __P((int, const u_char *, char *));
/* Convert Internet host address from numbers-and-dots notation in CP
into binary data in network byte order. */
extern unsigned long int inet_addr __P ((__const char *__cp));
/* Convert Internet host address from numbers-and-dots notation in CP
into binary data and store the result in the structure INP. */
extern int inet_aton __P ((__const char *__cp, struct in_addr *__inp));
/* Return the local host address part of the Internet address in IN. */
extern u_int32_t inet_lnaof __P ((struct in_addr __in));
/* Make Internet host address in network byte order by combining the
network number NET with the local address HOST. */
extern struct in_addr inet_makeaddr __P ((u_int32_t __net, u_int32_t __host));
/* Format a network number NET into presentation format and place result
in buffer starting at BUF with length of LEN bytes. */
extern char *inet_neta __P ((u_long __net, char *__buf, size_t __len));
/* Return network number part of the Internet address IN. */
extern u_int32_t inet_netof __P ((struct in_addr __in));
/* Extract the network number in network byte order from the address
in numbers-and-dots natation starting at CP. */
extern u_int32_t inet_network __P ((__const char *__cp));
/* Convert network number for interface type AF in buffer starting at
CP to presentation format. The result will specifiy BITS bits of
the number. */
extern char *inet_net_ntop __P((int __af, __const void *__cp, int __bits,
char *__buf, size_t __len));
/* Convert network number for interface type AF from presentation in
buffer starting at CP to network format and store result int
buffer starting at BUF of size LEN. */
extern int inet_net_pton __P ((int __af, __const char *__cp,
void *__buf, size_t __len));
/* Convert Internet number in IN to ASCII representation. The return value
is a pointer to an internal array containing the string. */
extern char *inet_ntoa __P ((struct in_addr __in));
/* Convert from presentation format of an Internet number in buffer
starting at CP to the binary network format and store result for
interface type AF in buffer starting at BUF. */
extern int inet_pton __P ((int __af, __const char *__cp, void *__buf));
/* Convert a Internet address in binary network format for interface
type AF in buffer starting at CP to presentation form and place
result in buffer of length LEN astarting at BUF. */
extern __const char *inet_ntop __P ((int __af, __const void *__cp,
char *__buf, size_t __len));
/* Convert ASCII representation in hexadecimal form of the Internet
address to binary form and place result in buffer of length LEN
starting at BUF. */
extern unsigned int inet_nsap_addr __P ((__const char *__cp,
unsigned char *__buf, int __len));
/* Convert internet address in binary form in LEN bytes starting at CP
a presentation form and place result in BUF. */
extern char *inet_nsap_ntoa __P ((int __len, __const unsigned char *__cp,
char *__buf));
__END_DECLS
#endif /* !_INET_H_ */
#endif /* arpa/inet.h */
+22 -15
View File
@@ -1,23 +1,28 @@
/* Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <ctype.h>
#include <errno.h>
#include <netdb.h>
#include <string.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#define LOOKUP_TYPE struct hostent
@@ -28,4 +33,6 @@ Boston, MA 02111-1307, USA. */
#define BUFLEN 1024
#define NEED_H_ERRNO 1
#define HANDLE_DIGITS_DOTS 1
#include "../nss/getXXbyYY.c"
+23 -15
View File
@@ -1,23 +1,28 @@
/* Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <ctype.h>
#include <errno.h>
#include <netdb.h>
#include <string.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#define LOOKUP_TYPE struct hostent
@@ -28,4 +33,7 @@ Boston, MA 02111-1307, USA. */
#define BUFLEN 1024
#define NEED_H_ERRNO 1
#define HANDLE_DIGITS_DOTS 1
#define HAVE_AF 1
#include "../nss/getXXbyYY.c"
+24 -15
View File
@@ -1,23 +1,28 @@
/* Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <ctype.h>
#include <errno.h>
#include <netdb.h>
#include <string.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#define LOOKUP_TYPE struct hostent
@@ -27,4 +32,8 @@ Boston, MA 02111-1307, USA. */
#define ADD_VARIABLES name, af
#define NEED_H_ERRNO 1
#define HANDLE_DIGITS_DOTS 1
#define HAVE_LOOKUP_BUFFER 1
#define HAVE_AF 1
#include "../nss/getXXbyYY_r.c"
+23 -15
View File
@@ -1,23 +1,28 @@
/* Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <ctype.h>
#include <errno.h>
#include <netdb.h>
#include <string.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#define LOOKUP_TYPE struct hostent
@@ -28,4 +33,7 @@ Boston, MA 02111-1307, USA. */
#define NEED_H_ERRNO 1
#define NEED__RES 1
#define HANDLE_DIGITS_DOTS 1
#define HAVE_LOOKUP_BUFFER 1
#include "../nss/getXXbyYY_r.c"
+29 -23
View File
@@ -1,21 +1,21 @@
/* Functions for storing Ethernet addresses in ASCII and mapping to hostnames.
Copyright (C) 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef __NETINET_ETHER_H
@@ -25,24 +25,30 @@ Boston, MA 02111-1307, USA. */
/* Get definition of `struct ether_addr'. */
#include <netinet/if_ether.h>
__BEGIN_DECLS
/* Convert 48 bit Ethernet ADDRess to ASCII. */
char *ether_ntoa __P ((const struct ether_addr *__addr));
char *ether_ntoa_r __P ((const struct ether_addr *__addr, char *__buf));
extern char *ether_ntoa __P ((__const struct ether_addr *__addr));
extern char *ether_ntoa_r __P ((__const struct ether_addr *__addr,
char *__buf));
/* Convert ASCII string S to 48 bit Ethernet address. */
struct ether_addr *ether_aton __P ((const char *__asc));
struct ether_addr *ether_aton_r __P ((const char *__asc,
struct ether_addr *__addr));
extern struct ether_addr *ether_aton __P ((__const char *__asc));
extern struct ether_addr *ether_aton_r __P ((__const char *__asc,
struct ether_addr *__addr));
/* Map 48 bit Ethernet number ADDR to HOSTNAME. */
int ether_ntohost __P ((char *__hostname, const struct ether_addr *__addr));
extern int ether_ntohost __P ((char *__hostname,
__const struct ether_addr *__addr));
/* Map HOSTNAME to 48 bit Ethernet address. */
int ether_hostton __P ((const char *__hostname, struct ether_addr *__addr));
extern int ether_hostton __P ((__const char *__hostname,
struct ether_addr *__addr));
/* Scan LINE and set ADDR and HOSTNAME. */
int ether_line __P ((const char *__line, struct ether_addr *__addr,
char *__hostname));
extern int ether_line __P ((__const char *__line, struct ether_addr *__addr,
char *__hostname));
__END_DECLS
#endif /* netinet/ether.h */
+11 -7
View File
@@ -306,7 +306,6 @@ iruserok(raddr, superuser, ruser, luser)
struct stat sbuf;
struct passwd pwdbuf, *pwd;
FILE *hostf;
uid_t uid;
int first;
first = 1;
@@ -326,7 +325,7 @@ again:
char *buffer = __alloca (buflen);
first = 0;
if (getpwnam_r (luser, &pwdbuf, buffer, buflen, &pwd) < 0)
if (__getpwnam_r (luser, &pwdbuf, buffer, buflen, &pwd) < 0)
return -1;
dirlen = strlen (pwd->pw_dir);
@@ -339,10 +338,15 @@ again:
* reading an NFS mounted file system, can't read files that
* are protected read/write owner only.
*/
uid = geteuid();
(void)seteuid(pwd->pw_uid);
hostf = fopen(pbuf, "r");
(void)seteuid(uid);
if (__access (pbuf, R_OK) != 0)
hostf = NULL;
else
{
uid_t uid = geteuid ();
seteuid (pwd->pw_uid);
hostf = fopen (pbuf, "r");
seteuid (uid);
}
if (hostf == NULL)
return (-1);
@@ -390,7 +394,7 @@ __ivaliduser(hostf, raddr, luser, ruser)
size_t bufsize = 0;
ssize_t nread;
while ((nread = getline (&buf, &bufsize, hostf)) > 0) {
while ((nread = __getline (&buf, &bufsize, hostf)) > 0) {
buf[bufsize - 1] = '\0'; /* Make sure it's terminated. */
p = buf;
while (*p != '\n' && *p != ' ' && *p != '\t' && *p != '\0') {
+1 -1
View File
@@ -53,7 +53,7 @@ int
rexec(ahost, rport, name, pass, cmd, fd2p)
char **ahost;
int rport;
char *name, *pass, *cmd;
const char *name, *pass, *cmd;
int *fd2p;
{
struct sockaddr_in sin, sin2, from;
+8 -8
View File
@@ -1,6 +1,4 @@
# Makefile for intl subdirectory: message handling code from GNU gettext.
# Copyright (C) 1995, 1996 Free Software Foundation, Inc.
# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -14,9 +12,11 @@
# Library General Public License for more details.
# You should have received a copy of the GNU Library General Public
# License along with the GNU C Library; see the file COPYING.LIB. If
# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
# Cambridge, MA 02139, USA.
# License along with the GNU C Library; see the file COPYING.LIB. If not,
# write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
# Makefile for intl subdirectory: message handling code from GNU gettext.
subdir = intl
headers = libintl.h
@@ -25,14 +25,14 @@ routines = bindtextdom dcgettext dgettext gettext \
l10nflist explodename
distribute = gettext.h gettextP.h hash-string.h loadinfo.h locale.alias
install-others = $(localedir)/locale.alias
install-others = $(inst_localedir)/locale.alias
include ../Rules
CPPFLAGS += -D'GNULOCALEDIR="$(localedir)"' \
-D'LOCALE_ALIAS_PATH="$(localedir):$(i18ndir)"'
$(localedir)/locale.alias: locale.alias
$(inst_localedir)/locale.alias: locale.alias
$(do-install)
ifdef gettext-srcdir
+17 -16
View File
@@ -1,23 +1,23 @@
/* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in /gd/gnu/lib.
This file is part of the GNU C Library. Its master source is NOT part of
the C library, however. The master source lives in /gd/gnu/lib.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifdef HAVE_CONFIG_H
# include <config.h>
@@ -25,6 +25,7 @@ Cambridge, MA 02139, USA. */
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include "loadinfo.h"
+1 -31
View File
@@ -1,5 +1,5 @@
/* finddomain.c -- handle list of needed message catalogs
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This file is part of the GNU C Library. Its master source is NOT part of
@@ -63,18 +63,6 @@ void free ();
#endif
/* @@ end of prolog @@ */
#ifdef _LIBC
/* Rename the non ANSI C functions. This is required by the standard
because some ANSI C functions will require linking with this object
file and the name space must not be polluted. */
# define stpcpy(dest, src) __stpcpy(dest, src)
#else
# ifndef HAVE_STPCPY
static char *stpcpy PARAMS ((char *dest, const char *src));
# endif
#endif
/* List of already loaded domains. */
static struct loaded_l10nfile *_nl_loaded_domains;
@@ -200,21 +188,3 @@ _nl_find_domain (dirname, locale, domainname)
return retval;
}
/* @@ begin of epilog @@ */
/* We don't want libintl.a to depend on any other library. So we
avoid the non-standard function stpcpy. In GNU C Library this
function is available, though. Also allow the symbol HAVE_STPCPY
to be defined. */
#if !_LIBC && !HAVE_STPCPY
static char *
stpcpy (dest, src)
char *dest;
const char *src;
{
while ((*dest++ = *src++) != '\0')
/* Do nothing. */ ;
return dest - 1;
}
#endif
+4 -2
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1995, 1996 Free Software Foundation, Inc.
/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.
This file is part of the GNU C Library. Its master source is NOT part of
@@ -42,6 +42,7 @@
# include <argz.h>
#endif
#include <ctype.h>
#include <sys/types.h>
#if defined STDC_HEADERS || defined _LIBC
# include <stdlib.h>
@@ -205,7 +206,8 @@ _nl_make_l10nflist (l10nfile_list, dirlist, dirlist_len, mask, language,
? strlen (modifier) + 1 : 0)
+ ((mask & CEN_SPECIAL) != 0
? strlen (special) + 1 : 0)
+ ((mask & (CEN_SPONSOR | CEN_REVISION) != 0)
+ (((mask & CEN_SPONSOR) != 0
|| (mask & CEN_REVISION) != 0)
? (1 + ((mask & CEN_SPONSOR) != 0
? strlen (sponsor) + 1 : 0)
+ ((mask & CEN_REVISION) != 0
+5 -4
View File
@@ -1,5 +1,5 @@
# Locale name alias data base
# Copyright (C) 1996 Free Software Foundation, Inc.
# Locale name alias data base.
# Copyright (C) 1996, 1997 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -22,8 +22,9 @@
# All entries are case independent.
# Note: This file is far from being complete. If you have a value for
# your own site which you think might be useful for others too, share it
# with the rest of us. Send it to bug-gnu-utils@prep.ai.mit.edu.
# your own site which you think might be useful for others too, share
# it with the rest of us. Send it using the `glibcbug' script to
# bugs@gnu.ai.mit.edu.
czech cs_CZ.ISO-8859-2
danish da_DK.ISO-8859-1
+3 -2
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1992, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
# Copyright (C) 1992, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -55,4 +55,5 @@ tests := test-utime
include ../Rules
CFLAGS-fts.c = -Wno-write-strings
CFLAGS-fts.c = -Wno-uninitialized
CFLAGS-ftw.c = -Wno-uninitialized
+2 -2
View File
@@ -57,7 +57,7 @@ static char sccsid[] = "@(#)fts.c 8.2 (Berkeley) 1/2/94";
#endif
static FTSENT *fts_alloc __P((FTS *, char *, int));
static FTSENT *fts_alloc __P((FTS *, const char *, int));
static FTSENT *fts_build __P((FTS *, int));
static void fts_lfree __P((FTSENT *));
static void fts_load __P((FTS *, FTSENT *));
@@ -886,7 +886,7 @@ fts_sort(sp, head, nitems)
static FTSENT *
fts_alloc(sp, name, namelen)
FTS *sp;
char *name;
const char *name;
register int namelen;
{
register FTSENT *p;
+3 -3
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1992, 1995, 1996 Free Software Foundation, Inc.
/* Copyright (C) 1992, 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ian Lance Taylor (ian@airs.com).
@@ -36,7 +36,7 @@
static int
ftw_dir (DIR **dirs, int level, int descriptors, char *dir, size_t len,
int (*func) (const char *file, struct stat *status, int flag))
int (*func) (const char *file, const struct stat *status, int flag))
{
int got;
struct dirent *entry;
@@ -151,7 +151,7 @@ ftw_dir (DIR **dirs, int level, int descriptors, char *dir, size_t len,
int
ftw (const char *dir,
int (*func) (const char *file, struct stat *status, int flag),
int (*func) (const char *file, const struct stat *status, int flag),
int descriptors)
{
DIR **dirs;
+6 -2
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 1992, 1996 Free Software Foundation, Inc.
/* Copyright (C) 1992, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ian Lance Taylor (ian@airs.com).
@@ -26,6 +26,8 @@
#define _FTW_H 1
#include <features.h>
__BEGIN_DECLS
#include <statbuf.h>
/* The FLAG argument to the user function passed to ftw. */
@@ -37,8 +39,10 @@
/* Call a function on every element in a directory tree. */
extern int ftw __P ((__const char *__dir,
int (*__func) (__const char *__file,
struct stat *__status,
__const struct stat *__status,
int __flag),
int __descriptors));
__END_DECLS
#endif /* ftw.h */
+2 -4
View File
@@ -1,5 +1,5 @@
/* Obsolete function to get current working directory.
Copyright (C) 1991, 1992, 1996 Free Software Foundation, Inc.
Copyright (C) 1991, 1992, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -49,9 +49,7 @@ getwd (buf)
/* This is completely unsafe. Nobody can say how big the user
provided buffer is. Perhaps the application and the libc
disagree about the value of PATH_MAX. */
strcpy (buf, tmpbuf);
return buf;
return strcpy (buf, tmpbuf);
}
link_warning (getwd,
+28 -15
View File
@@ -1,25 +1,25 @@
/* Support macros for making weak and strong aliases for symbols,
and for using symbol sets and linker warnings with GNU ld.
Copyright (C) 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 675 Mass Ave,
Cambridge, MA 02139, USA. */
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#ifndef _LIBC_SYMBOLS_H
#define _LIBC_SYMBOLS_H
#define _LIBC_SYMBOLS_H 1
/* This file's macros are included implicitly in the compilation of every
file in the C library by -imacros.
@@ -224,7 +224,20 @@ extern const char _libc_intl_domainname[];
warning message MSG. */
#ifdef HAVE_GNU_LD
#ifdef HAVE_ELF
/* We want the .gnu.warning.SYMBOL section to be unallocated. */
#ifdef HAVE_ASM_PREVIOUS_DIRECTIVE
#define __make_section_unallocated(section_string) \
asm(".section " section_string "; .previous");
#elif defined (HAVE_ASM_POPSECTION_DIRECTIVE)
#define __make_section_unallocated(section_string) \
asm(".pushsection " section_string "; .popsection");
#else
#define __make_section_unallocated(section_string)
#endif
#define link_warning(symbol, msg) \
__make_section_unallocated (".gnu.warning." #symbol) \
static const char __evoke_link_warning_##symbol[] \
__attribute__ ((section (".gnu.warning." #symbol))) = msg;
#else
+2 -2
View File
@@ -1,4 +1,4 @@
# Copyright (C) 1995, 1996 Free Software Foundation, Inc.
# Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
@@ -32,7 +32,7 @@ routines := \
\
clearerr feof ferror fgetc fileno fputc freopen fseek getc getchar \
memstream pclose putc putchar rewind setbuf setlinebuf vasprintf \
vdprintf vscanf vsnprintf obprintf fcloseall \
iovdprintf vscanf vsnprintf obprintf fcloseall \
\
libc_fatal
+11
View File
@@ -8,13 +8,23 @@
#include <gnu/types.h>
#define __need_size_t
#define __need_wint_t
#include <stddef.h>
#ifndef _WINT_T
/* Integral type unchanged by default argument promotions that can
hold any value corresponding to members of the extended character
set, as well as at least one value that does not correspond to any
member of the extended character set. */
#define _WINT_T
typedef unsigned int wint_t;
#endif
#define _G_size_t size_t
#define _G_fpos_t __off_t
#define _G_ssize_t __ssize_t
#define _G_off_t __off_t
#define _G_pid_t __pid_t
#define _G_uid_t __uid_t
#define _G_wint_t wint_t
typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
@@ -33,6 +43,7 @@ typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
#define _G_HAVE_PRINTF_FP 1
#define _G_HAVE_MMAP 1
#define _G_HAVE_LONG_DOUBLE_IO 1
/* This is defined by <statbuf.h> if `st_blksize' exists. */
#define _G_HAVE_ST_BLKSIZE defined (_STATBUF_ST_BLKSIZE)
+2 -4
View File
@@ -1,5 +1,5 @@
/*
Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1993, 1995, 1996, 1997 Free Software Foundation, Inc.
This file is part of the GNU IO Library. This library is free
software; you can redistribute it and/or modify it under the
@@ -23,9 +23,7 @@ This exception does not however invalidate any other reasons why
the executable file might be covered by the GNU General Public License. */
#include "libioP.h"
#ifdef __STDC__
#include <stdlib.h>
#endif
#include <stdio.h>
int
__fcloseall ()
+4 -3
View File
@@ -138,8 +138,8 @@ DEFUN(_IO_file_close_it, (fp),
}
void
DEFUN(_IO_file_finish, (fp),
register _IO_FILE* fp)
DEFUN(_IO_file_finish, (fp, dummy),
register _IO_FILE* fp AND int dummy)
{
if (_IO_file_is_open(fp))
{
@@ -147,7 +147,7 @@ DEFUN(_IO_file_finish, (fp),
if (!(fp->_flags & _IO_DELETE_DONT_CLOSE))
_IO_SYSCLOSE (fp);
}
_IO_default_finish(fp);
_IO_default_finish(fp, 0);
}
_IO_FILE *
@@ -317,6 +317,7 @@ DEFUN(_IO_file_overflow, (f, ch),
{
if (f->_flags & _IO_NO_WRITES) /* SET ERROR */
{
f->_flags |= _IO_ERR_SEEN;
__set_errno (EBADF);
return EOF;
}
+4 -4
View File
@@ -466,7 +466,7 @@ DEFUN(_IO_init, (fp, flags),
fp->_markers = NULL;
fp->_cur_column = 0;
#ifdef _IO_MTSAFE_IO
_IO_lock_init_recursive (*fp->_lock);
_IO_lock_init (*fp->_lock);
#endif
}
@@ -481,8 +481,8 @@ DEFUN(_IO_default_sync, (fp),
current implementation, this function can get called twice! */
void
DEFUN(_IO_default_finish, (fp),
_IO_FILE *fp)
DEFUN(_IO_default_finish, (fp, dummy),
_IO_FILE *fp AND int dummy)
{
struct _IO_marker *mark;
if (fp->_IO_buf_base && !(fp->_flags & _IO_USER_BUF))
@@ -615,7 +615,7 @@ DEFUN_VOID(_IO_flush_all_linebuffered)
{
_IO_FILE *fp;
for (fp = _IO_list_all; fp != NULL; fp = fp->_chain)
if (fp->_flags & _IO_LINE_BUF)
if ((fp->_flags & _IO_NO_WRITES) == 0 && fp->_flags & _IO_LINE_BUF)
_IO_OVERFLOW (fp, EOF);
}

Some files were not shown because too many files have changed in this diff Show More